Interface GraphImplementor<J>

All Superinterfaces:
Graph<J>, Graph<J>, GraphNode<J>, GraphNodeImplementor<J>
All Known Subinterfaces:
RootGraphImplementor<J>, SubGraphImplementor<J>
All Known Implementing Classes:
GraphImpl, RootGraphImpl, SubGraphImpl

public interface GraphImplementor<J> extends Graph<J>, GraphNodeImplementor<J>
Integration version of the Graph contract.
  • Method Details

    • merge

      void merge(GraphImplementor<J> other)
    • mergeInternal

      @Internal void mergeInternal(GraphImplementor<J> graph)
    • makeRootGraph

      @Deprecated(forRemoval=true) RootGraphImplementor<J> makeRootGraph(String name, boolean mutable)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from interface: Graph
      Create a named root graph representing this node.
      Specified by:
      makeRootGraph in interface Graph<J>
      mutable - controls whether the resulting graph is mutable
    • makeSubGraph

      @Deprecated(forRemoval=true) SubGraphImplementor<J> makeSubGraph(boolean mutable)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Description copied from interface: Graph
      Create a new subgraph representing this node.
      Specified by:
      makeSubGraph in interface Graph<J>
    • makeCopy

      GraphImplementor<J> makeCopy(boolean mutable)
      Description copied from interface: Graph
      Make a copy of this graph node, with the given mutability.

      If this graph is immutable, and the argument is false, simply return this instance.

      Specified by:
      makeCopy in interface Graph<J>
      Specified by:
      makeCopy in interface GraphNode<J>
      Specified by:
      makeCopy in interface GraphNodeImplementor<J>
    • getAttributeNodeList

      List<? extends AttributeNodeImplementor<?,?,?>> getAttributeNodeList()
      Description copied from interface: Graph
      All nodes belonging to this container.
      Specified by:
      getAttributeNodeList in interface Graph<J>
      See Also:
    • getNodes

      Map<PersistentAttribute<? super J,?>,AttributeNodeImplementor<?,?,?>> getNodes()
    • getTreatedSubgraphs

      Map<Class<? extends J>,SubGraphImplementor<? extends J>> getTreatedSubgraphs()
    • getAttributeNode

      <Y> AttributeNodeImplementor<Y,?,?> getAttributeNode(String attributeName)
      Description copied from interface: Graph
      Find an existing AttributeNode by name within this container.
      Specified by:
      getAttributeNode in interface Graph<J>
      Specified by:
      getAttributeNode in interface Graph<J>
    • getAttributeNode

      <Y> AttributeNodeImplementor<Y,?,?> getAttributeNode(Attribute<? super J,Y> attribute)
      Description copied from interface: Graph
      Find an existing AttributeNode by corresponding attribute reference, within this container.
      Specified by:
      getAttributeNode in interface Graph<J>
      Specified by:
      getAttributeNode in interface Graph<J>
    • findAttributeNode

      <AJ> AttributeNodeImplementor<AJ,?,?> findAttributeNode(String attributeName)
      Description copied from interface: Graph
      Find an existing AttributeNode by name within this container.
      Specified by:
      findAttributeNode in interface Graph<J>
    • findAttributeNode

      <AJ> AttributeNodeImplementor<AJ,?,?> findAttributeNode(PersistentAttribute<? super J,AJ> attribute)
      Description copied from interface: Graph
      Find an existing AttributeNode by corresponding attribute reference, within this container.
      Specified by:
      findAttributeNode in interface Graph<J>
    • findOrCreateAttributeNode

      <AJ> AttributeNodeImplementor<AJ,?,?> findOrCreateAttributeNode(String name)
    • findOrCreateAttributeNode

      <AJ> AttributeNodeImplementor<AJ,?,?> findOrCreateAttributeNode(PersistentAttribute<? super J,AJ> attribute)
    • addAttributeNode

      <AJ> AttributeNodeImplementor<AJ,?,?> addAttributeNode(PersistentAttribute<? super J,AJ> attribute)
    • addAttributeNode

      <Y> AttributeNodeImplementor<Y,?,?> addAttributeNode(Attribute<? super J,Y> attribute)
      Description copied from interface: Graph
      Add an AttributeNode representing the given Attribute to this node of the graph without creating any associated SubGraph.
      Specified by:
      addAttributeNode in interface Graph<J>
      Specified by:
      addAttributeNode in interface Graph<J>
    • addTreatedSubgraph

      <Y extends J> SubGraphImplementor<Y> addTreatedSubgraph(Class<Y> type)
      Description copied from interface: Graph
      Create and return a new (mutable) SubGraph representing the given subtype of the type of this node, or return an existing such SubGraph if there is one.
      Specified by:
      addTreatedSubgraph in interface Graph<J>
      See Also:
    • addTreatedSubgraph

      <Y extends J> SubGraphImplementor<Y> addTreatedSubgraph(ManagedType<Y> type)
      Description copied from interface: Graph
      Create and return a new (mutable) SubGraph representing the given subtype of the type of this node, or return an existing such SubGraph if there is one.
      Specified by:
      addTreatedSubgraph in interface Graph<J>
    • addSubgraph

      <X> SubGraphImplementor<X> addSubgraph(String attributeName)
      Description copied from interface: Graph
      Create and return a new (mutable) SubGraph associated with the named Attribute, or return an existing such SubGraph if there is one.
      Specified by:
      addSubgraph in interface Graph<J>
      Specified by:
      addSubgraph in interface Graph<J>
      Parameters:
      attributeName - The name of an attribute of the represented type
    • addSubGraph

      <AJ> SubGraphImplementor<AJ> addSubGraph(String attributeName)
      Description copied from interface: Graph
      Create and return a new (mutable) SubGraph associated with the named Attribute, or return an existing such SubGraph if there is one.
      Specified by:
      addSubGraph in interface Graph<J>
      Parameters:
      attributeName - The name of an attribute of the represented type
    • addSubGraph

      <AJ> SubGraphImplementor<AJ> addSubGraph(String attributeName, Class<AJ> subType)
      Description copied from interface: Graph
      Create and return a new (mutable) SubGraph associated with the named Attribute, and with the given type, which may be a subtype of the attribute type, or return an existing such SubGraph if there is one.

      If the given type is a proper subtype of the attribute type, the result is a treated subgraph.

      Specified by:
      addSubGraph in interface Graph<J>
      Parameters:
      attributeName - The name of an attribute of the represented type
      subType - A subtype of the attribute type
    • addSubGraph

      <AJ> SubGraphImplementor<AJ> addSubGraph(PersistentAttribute<? super J,AJ> attribute)
      Description copied from interface: Graph
      Create and return a new (mutable) SubGraph associated with the given Attribute of the represented type, or return an existing such SubGraph if there is one.
      Specified by:
      addSubGraph in interface Graph<J>
      Parameters:
      attribute - An attribute of the represented type
      See Also:
    • addSubGraph

      <AJ> SubGraphImplementor<AJ> addSubGraph(PersistentAttribute<? super J,? super AJ> attribute, Class<AJ> subtype)
      Description copied from interface: Graph
      Create and return a new (mutable) SubGraph associated with the given PersistentAttribute, and with the given type, which may be a subtype of the attribute type, or return an existing such SubGraph if there is one.

      If the given type is a proper subtype of the attribute type, the result is a treated subgraph.

      Specified by:
      addSubGraph in interface Graph<J>
      Parameters:
      attribute - An attribute of the represented type
      subtype - A subtype of the attribute type
      See Also:
    • addKeySubGraph

      <AJ> SubGraphImplementor<AJ> addKeySubGraph(String attributeName)
      Description copied from interface: Graph
      Create and return a new (mutable) SubGraph associated with the key of the named map or return an existing such SubGraph if there is one.
      Specified by:
      addKeySubGraph in interface Graph<J>
      Parameters:
      attributeName - The name of an attribute of the represented type
    • addKeySubGraph

      <AJ> SubGraphImplementor<AJ> addKeySubGraph(String attributeName, Class<AJ> subtype)
      Description copied from interface: Graph
      Create and return a new (mutable) SubGraph associated with the key of the named map, and with the given type, which may be a subtype of the attribute type, or return an existing such SubGraph if there is one.

      If the given type is a proper subtype of the key type, the result is a treated subgraph.

      Specified by:
      addKeySubGraph in interface Graph<J>
      Parameters:
      attributeName - The name of a map-valued attribute of the represented type
      subtype - A subtype of the key type
    • addKeySubGraph

      <AJ> SubGraphImplementor<AJ> addKeySubGraph(MapPersistentAttribute<? super J,? super AJ,?> attribute, Class<AJ> subtype)
      Description copied from interface: Graph
      Create and return a new (mutable) SubGraph associated with the key of the named map, and with the given type, which may be a subtype of the attribute type, or return an existing such SubGraph if there is one.

      If the given type is a proper subtype of the key type, the result is a treated subgraph.

      Specified by:
      addKeySubGraph in interface Graph<J>
      Parameters:
      attribute - A map-valued attribute of the represented type
      subtype - A subtype of the key type
    • addSubgraph

      <X> SubGraphImplementor<X> addSubgraph(String attributeName, Class<X> type)
      Description copied from interface: Graph
      Create and return a new (mutable) SubGraph associated with the named Attribute, and with the given type, which may be a subtype of the attribute type, or return an existing such SubGraph if there is one.

      If the given type is a proper subtype of the attribute type, the result is a treated subgraph.

      Specified by:
      addSubgraph in interface Graph<J>
      Specified by:
      addSubgraph in interface Graph<J>
      Parameters:
      attributeName - The name of an attribute of the represented type
      type - A subtype of the attribute type
    • addSubgraph

      <X> SubGraphImplementor<X> addSubgraph(Attribute<? super J,X> attribute)
      Description copied from interface: Graph
      Create and return a new (mutable) SubGraph associated with the given Attribute of the represented type, or return an existing such SubGraph if there is one.
      Specified by:
      addSubgraph in interface Graph<J>
      Specified by:
      addSubgraph in interface Graph<J>
      Parameters:
      attribute - An attribute of the represented type
      See Also:
    • addTreatedSubgraph

      <Y> SubGraphImplementor<Y> addTreatedSubgraph(Attribute<? super J,? super Y> attribute, Class<Y> type)
      Description copied from interface: Graph
      Create and return a new (mutable) SubGraph associated with the given Attribute, and with the given type, which may be a subtype of the attribute type, or return an existing such SubGraph if there is one.

      If the given type is a proper subtype of the attribute type, the result is a treated subgraph.

      Specified by:
      addTreatedSubgraph in interface Graph<J>
      Specified by:
      addTreatedSubgraph in interface Graph<J>
      Parameters:
      attribute - An attribute of the represented type
      type - A subtype of the attribute type
      See Also:
    • addTreatedSubgraph

      <AJ> SubGraphImplementor<AJ> addTreatedSubgraph(Attribute<? super J,? super AJ> attribute, ManagedType<AJ> type)
      Description copied from interface: Graph
      Create and return a new (mutable) SubGraph associated with the given Attribute, and with the given type, which may be a subtype of the attribute type, or return an existing such SubGraph if there is one.

      If the given type is a proper subtype of the attribute type, the result is a treated subgraph.

      Specified by:
      addTreatedSubgraph in interface Graph<J>
      Parameters:
      attribute - An attribute of the represented type
      type - A subtype of the attribute type
    • addTreatedElementSubgraph

      <E> SubGraphImplementor<E> addTreatedElementSubgraph(PluralAttribute<? super J,?,? super E> attribute, Class<E> type)
      Description copied from interface: Graph
      Create and return a new (mutable) SubGraph associated with the element of the given collection, and with the given type, which may be a subtype of the element type, or return an existing such SubGraph if there is one.

      If the given type is a proper subtype of the element type, the result is a treated subgraph.

      Specified by:
      addTreatedElementSubgraph in interface Graph<J>
      Specified by:
      addTreatedElementSubgraph in interface Graph<J>
      Parameters:
      attribute - A collection-valued attribute of the represented type
      type - A subtype of the element type
    • addTreatedElementSubgraph

      <AJ> SubGraph<AJ> addTreatedElementSubgraph(PluralAttribute<? super J,?,? super AJ> attribute, ManagedType<AJ> type)
      Description copied from interface: Graph
      Create and return a new (mutable) SubGraph associated with the element of the given collection, and with the given type, which may be a subtype of the attribute type, or return an existing such SubGraph if there is one.

      If the given type is a proper subtype of the element type, the result is a treated subgraph.

      Specified by:
      addTreatedElementSubgraph in interface Graph<J>
      Parameters:
      attribute - A collection-valued attribute of the represented type
      type - A subtype of the element type
    • addKeySubgraph

      <X> SubGraphImplementor<X> addKeySubgraph(String attributeName)
      Description copied from interface: Graph
      Create and return a new (mutable) SubGraph associated with the key of the named map or return an existing such SubGraph if there is one.
      Specified by:
      addKeySubgraph in interface Graph<J>
      Specified by:
      addKeySubgraph in interface Graph<J>
      Parameters:
      attributeName - The name of an attribute of the represented type
    • addKeySubgraph

      <X> SubGraphImplementor<X> addKeySubgraph(String attributeName, Class<X> type)
      Description copied from interface: Graph
      Create and return a new (mutable) SubGraph associated with the key of the named map, and with the given type, which may be a subtype of the attribute type, or return an existing such SubGraph if there is one.
      Specified by:
      addKeySubgraph in interface Graph<J>
      Specified by:
      addKeySubgraph in interface Graph<J>
      Parameters:
      attributeName - The name of a map-valued attribute of the represented type
      type - A subtype of the key type
    • addTreatedMapKeySubgraph

      <K> SubGraphImplementor<K> addTreatedMapKeySubgraph(MapAttribute<? super J,? super K,?> attribute, Class<K> type)
      Description copied from interface: Graph
      Create and return a new (mutable) SubGraph associated with the key of the named map, and with the given type, which may be a subtype of the attribute type, or return an existing such SubGraph if there is one.

      If the given type is a proper subtype of the key type, the result is a treated subgraph.

      Specified by:
      addTreatedMapKeySubgraph in interface Graph<J>
      Specified by:
      addTreatedMapKeySubgraph in interface Graph<J>
      Parameters:
      attribute - A map-valued attribute of the represented type
      type - A subtype of the key type
    • addTreatedMapKeySubgraph

      <AJ> SubGraphImplementor<AJ> addTreatedMapKeySubgraph(MapAttribute<? super J,? super AJ,?> attribute, ManagedType<AJ> type)
      Description copied from interface: Graph
      Create and return a new (mutable) SubGraph associated with the key of the named map, and with the given type, which may be a subtype of the attribute type, or return an existing such SubGraph if there is one.

      If the given type is a proper subtype of the key type, the result is a treated subgraph.

      Specified by:
      addTreatedMapKeySubgraph in interface Graph<J>
      Parameters:
      attribute - A map-valued attribute of the represented type
      type - A subtype of the key type
    • hasAttributeNode

      default boolean hasAttributeNode(String attributeName)
      Specified by:
      hasAttributeNode in interface Graph<J>
    • hasAttributeNode

      default boolean hasAttributeNode(Attribute<? super J,?> attribute)
      Specified by:
      hasAttributeNode in interface Graph<J>