Class NodeBase<SELF extends Node>

    • Constructor Detail

      • NodeBase

        protected NodeBase​(java.lang.String primaryLabel,
                           java.lang.String... additionalLabels)
    • Method Detail

      • named

        public final SELF named​(java.lang.String newSymbolicName)
        Description copied from interface: Node
        Creates a copy of this node with a new symbolic name.
        Specified by:
        named in interface Node
        Parameters:
        newSymbolicName - the new symbolic name.
        Returns:
        The new node.
      • named

        public abstract SELF named​(SymbolicName newSymbolicName)
        This method needs to be implemented to provide new, type safe instances of this node.
        Specified by:
        named in interface Node
        Parameters:
        newSymbolicName - the new symbolic name.
        Returns:
        A new node
      • withProperties

        public final SELF withProperties​(java.lang.Object... keysAndValues)
        Description copied from interface: ExposesProperties
        Creates a a copy of this property container with additional properties. Creates a property container without properties when no properties are passed to this method.
        Specified by:
        withProperties in interface ExposesProperties<SELF extends Node>
        Parameters:
        keysAndValues - A list of key and values. Must be an even number, with alternating String and Expression.
        Returns:
        The new property container.
      • withProperties

        public final SELF withProperties​(java.util.Map<java.lang.String,​java.lang.Object> newProperties)
        Description copied from interface: ExposesProperties
        Creates a a copy of this property container with additional properties.
        Specified by:
        withProperties in interface ExposesProperties<SELF extends Node>
        Parameters:
        newProperties - A map with the new properties
        Returns:
        The new property container.
      • withProperties

        public abstract SELF withProperties​(MapExpression newProperties)
        This method needs to be implemented to provide new, type safe instances of this node.
        Specified by:
        withProperties in interface ExposesProperties<SELF extends Node>
        Parameters:
        newProperties - the new properties (can be null to remove exiting properties).
        Returns:
        A new node
      • getProperties

        protected final Properties getProperties()
      • getSymbolicName

        public final java.util.Optional<SymbolicName> getSymbolicName()
        Specified by:
        getSymbolicName in interface Named
        Returns:
        An optional symbolic name.
      • accept

        public final void accept​(Visitor visitor)
        Description copied from interface: Visitable
        Accept a Visitor visiting this Visitable and its nested Visitables if applicable.
        Specified by:
        accept in interface Visitable
        Parameters:
        visitor - the visitor to notify, must not be null.
      • hasLabels

        public final Condition hasLabels​(java.lang.String... labelsToQuery)
        Description copied from interface: Node
        A condition that checks for the presence of labels on a node.
        Specified by:
        hasLabels in interface Node
        Parameters:
        labelsToQuery - A list of labels to query
        Returns:
        A condition that checks whether this node has all of the labels to query
      • isEqualTo

        public final Condition isEqualTo​(Node otherNode)
        Description copied from interface: Node
        Creates a new condition whether this node is equal to otherNode.
        Specified by:
        isEqualTo in interface Node
        Parameters:
        otherNode - The node to compare this node to.
        Returns:
        A condition.
      • isNotEqualTo

        public final Condition isNotEqualTo​(Node otherNode)
        Description copied from interface: Node
        Creates a new condition whether this node is not equal to otherNode.
        Specified by:
        isNotEqualTo in interface Node
        Parameters:
        otherNode - The node to compare this node to.
        Returns:
        A condition.
      • isNull

        public final Condition isNull()
        Description copied from interface: Node
        Creates a new condition based on this node whether it is null.
        Specified by:
        isNull in interface Node
        Returns:
        A condition.
      • isNotNull

        public final Condition isNotNull()
        Description copied from interface: Node
        Creates a new condition based on this node whether it is not null.
        Specified by:
        isNotNull in interface Node
        Returns:
        A condition.
      • descending

        public final SortItem descending()
        Description copied from interface: Node
        Creates a new sort item of this node in descending order.
        Specified by:
        descending in interface Node
        Returns:
        A sort item.
      • ascending

        public final SortItem ascending()
        Description copied from interface: Node
        Creates a new sort item of this node in ascending order.
        Specified by:
        ascending in interface Node
        Returns:
        A sort item.
      • as

        public final AliasedExpression as​(java.lang.String alias)
        Description copied from interface: Node
        Creates an alias for this node.
        Specified by:
        as in interface Node
        Parameters:
        alias - The alias to use.
        Returns:
        The aliased expression.
      • internalId

        public final FunctionInvocation internalId()
        Specified by:
        internalId in interface Node
        Returns:
        A new function invocation returning the internal id of this node.
      • labels

        public final FunctionInvocation labels()
        Specified by:
        labels in interface Node
        Returns:
        A new function invocation returning the labels of this node.
      • relationshipTo

        public final Relationship relationshipTo​(Node other,
                                                 java.lang.String... types)
        Description copied from interface: ExposesRelationships
        Starts building an outgoing relationship to the other node.
        Specified by:
        relationshipTo in interface ExposesRelationships<Relationship>
        Parameters:
        other - The other end of the outgoing relationship
        types - The types to match
        Returns:
        An ongoing relationship definition, that can be used to specify the type
      • relationshipFrom

        public final Relationship relationshipFrom​(Node other,
                                                   java.lang.String... types)
        Description copied from interface: ExposesRelationships
        Starts building an incoming relationship starting at the other node.
        Specified by:
        relationshipFrom in interface ExposesRelationships<Relationship>
        Parameters:
        other - The source of the incoming relationship
        types - The types to match
        Returns:
        An ongoing relationship definition, that can be used to specify the type
      • relationshipBetween

        public final Relationship relationshipBetween​(Node other,
                                                      java.lang.String... types)
        Description copied from interface: ExposesRelationships
        Starts building an undirected relationship between this node and the other.
        Specified by:
        relationshipBetween in interface ExposesRelationships<Relationship>
        Parameters:
        other - The other end of the relationship
        types - The types to match
        Returns:
        An ongoing relationship definition, that can be used to specify the type
      • property

        public final Property property​(java.lang.String name)
        Description copied from interface: PropertyContainer
        Creates a new Property associated with this property container. This property can be used as a lookup in other expressions. It does not add a value to the property.

        Note: The property container does not track property creation and there is no possibility to enumerate all properties that have been created for this property container.

        Specified by:
        property in interface PropertyContainer
        Parameters:
        name - property name, must not be null or empty.
        Returns:
        a new Property associated with this named container
      • property

        public final Property property​(Expression lookup)
        Description copied from interface: PropertyContainer
        Creates a new Property associated with this property container. This property can be used as a lookup in other expressions. It does not add a value to the property.

        The new Property object is a dynamic lookup, based on the expression passed to this method. The expression can be example another property, a function result or a Cypher parameter. A property defined in such a way will render as p[expression].

        Note: The property container does not track property creation and there is no possibility to enumerate all properties that have been created for this property container.

        Specified by:
        property in interface PropertyContainer
        Parameters:
        lookup - the expression that is evaluated to lookup this property.
        Returns:
        a new Property associated with this named container
      • mutate

        public final Operation mutate​(Parameter parameter)
        Description copied from interface: PropertyContainer
        Creates an Operation mutating the properties of this container to a new value. The container does not track the operations created with this method.
        Specified by:
        mutate in interface PropertyContainer
        Parameters:
        parameter - the new properties
        Returns:
        A new operation.
      • mutate

        public final Operation mutate​(MapExpression properties)
        Description copied from interface: PropertyContainer
        Creates an Operation mutating the properties of this container to a new value. The container does not track the operations created with this method.
        Specified by:
        mutate in interface PropertyContainer
        Parameters:
        properties - the new properties
        Returns:
        A new operation.
      • project

        public final MapProjection project​(java.util.List<java.lang.Object> entries)
        Description copied from interface: PropertyContainer
        Unwraps the list of entries into an array before creating a projection out of it.
        Specified by:
        project in interface PropertyContainer
        Parameters:
        entries - A list of entries for the projection
        Returns:
        A map projection.
        See Also:
        SymbolicName.project(List)