Interface EntityGraph

All Known Implementing Classes:
EmptyEntityGraphImpl, EntityGraphImpl

public interface EntityGraph
Class available to entity-filtering processors providing means to add/remove entity-filtering scopes (e.g. based on annotations) for entity members.

Differences between this class and object graph:

  • EntityGraph can be modified, ObjectGraph is read-only.
  • EntityGraph contains information about all entity-filtering scopes found during inspecting an entity class, ObjectGraph provides information about entity to create a filtering object for a subset of these scopes (which are determined from the current context).

Note: Definition of entity-filtering scopes can be found in ScopeResolver.

See Also:
  • Method Details

    • addField

      EntityGraph addField(String fieldName)
      Add a field into this graph for all existing entity-filtering scopes.
      Parameters:
      fieldName - name of the field to be added.
      Returns:
      an entity-filtering graph instance.
    • addField

      EntityGraph addField(String fieldName, String... filteringScopes)
      Add a field into this graph for given list of entity-filtering scopes.
      Parameters:
      fieldName - name of the field to be added.
      filteringScopes - entity-filtering scopes for the field.
      Returns:
      an entity-filtering graph instance.
    • addField

      EntityGraph addField(String fieldName, Set<String> filteringScopes)
      Add a field into this graph for given set of entity-filtering scopes.
      Parameters:
      fieldName - name of the field to be added.
      filteringScopes - entity-filtering scopes for the field.
      Returns:
      an entity-filtering graph instance.
    • addSubgraph

      EntityGraph addSubgraph(String fieldName, Class<?> fieldClass)
      Add a subgraph into this graph for all existing entity-filtering scopes.
      Parameters:
      fieldName - name of the subgraph field to be added.
      fieldClass - entity class representing the subgraph.
      Returns:
      an entity-filtering graph instance.
    • addSubgraph

      EntityGraph addSubgraph(String fieldName, Class<?> fieldClass, String... filteringScopes)
      Add a subgraph into this graph for given list of entity-filtering scopes.
      Parameters:
      fieldName - name of the subgraph field to be added.
      fieldClass - entity class representing the subgraph.
      filteringScopes - entity-filtering scopes for the subgraph.
      Returns:
      an entity-filtering graph instance.
    • addSubgraph

      EntityGraph addSubgraph(String fieldName, Class<?> fieldClass, Set<String> filteringScopes)
      Add a subgraph into this graph for given set of entity-filtering scopes.
      Parameters:
      fieldName - name of the subgraph field to be added.
      fieldClass - entity class representing the subgraph.
      filteringScopes - entity-filtering scopes for the subgraph.
      Returns:
      an entity-filtering graph instance.
    • addFilteringScopes

      EntityGraph addFilteringScopes(Set<String> filteringScopes)
      Add a set of entity-filtering scopes to this graph.
      Parameters:
      filteringScopes - entity-filtering scopes to be added.
      Returns:
      an entity-filtering graph instance.
    • presentInScope

      boolean presentInScope(String field, String filteringScope)
      Determines whether a field/subgraph is present in ANY of the given scopes. If no scopes are given the return value determines whether the field is present in any scope.
      Parameters:
      field - field to be checked.
      filteringScope - entity-filtering scope.
      Returns:
      true if field is present in the given scope, false otherwise.
    • presentInScopes

      boolean presentInScopes(String field)
      Determines whether a field/subgraph is present in ANY of the existing scopes.
      Parameters:
      field - field to be checked.
      Returns:
      true if field is present in ANY of the existing scopes, false otherwise.
    • getEntityClass

      Class<?> getEntityClass()
      Get an entity class this graph is created for.
      Returns:
      an entity class.
    • getFields

      Set<String> getFields(String filteringScope)
      Get fields for given entity-filtering scope.
      Parameters:
      filteringScope - scope the returned fields have to be in.
      Returns:
      set of fields present in given scope.
    • getFields

      Set<String> getFields(String... filteringScopes)
      Get fields for given entity-filtering scopes.
      Parameters:
      filteringScopes - scopes the returned fields have to be in.
      Returns:
      set of fields present in given scopes.
    • getFields

      Set<String> getFields(Set<String> filteringScopes)
      Get fields for given entity-filtering scopes.
      Parameters:
      filteringScopes - scopes the returned fields have to be in.
      Returns:
      set of fields present in given scopes.
    • getFilteringScopes

      Set<String> getFilteringScopes()
      Get all available entity-filtering scopes.
      Returns:
      all available entity-filtering scopes.
    • getClassFilteringScopes

      Set<String> getClassFilteringScopes()
      Get all available entity-filtering scopes defined on a class.
      Returns:
      all available entity-filtering scopes.
    • getSubgraphs

      Map<String,Class<?>> getSubgraphs(String filteringScope)
      Get subgraphs for given entity-filtering scope.
      Parameters:
      filteringScope - scope the returned subgraphs have to be in.
      Returns:
      map of subgraphs present in given scope.
    • getSubgraphs

      Map<String,Class<?>> getSubgraphs(String... filteringScopes)
      Get subgraphs for given entity-filtering scopes.
      Parameters:
      filteringScopes - scopes the returned subgraphs have to be in.
      Returns:
      map of subgraphs present in given scopes.
    • getSubgraphs

      Map<String,Class<?>> getSubgraphs(Set<String> filteringScopes)
      Get subgraphs for given entity-filtering scopes.
      Parameters:
      filteringScopes - scopes the returned subgraphs have to be in.
      Returns:
      map of subgraphs present in given scopes.
    • remove

      EntityGraph remove(String name)
      Remove a field/subgraph from the graph (all entity-filtering scopes).
      Parameters:
      name - name of the field/subgraph to be removed.
      Returns:
      an entity-filtering graph instance.