Class Topology

java.lang.Object
org.umlg.sqlg.structure.topology.Topology

public class Topology extends Object
Date: 2016/09/04 Time: 8:49 AM
  • Field Details

    • GRAPH

      public static final String GRAPH
      See Also:
    • VERTEX_PREFIX

      public static final String VERTEX_PREFIX
      See Also:
    • EDGE_PREFIX

      public static final String EDGE_PREFIX
      See Also:
    • VERTICES

      public static final String VERTICES
      See Also:
    • ID

      public static final String ID
      See Also:
    • VERTEX_SCHEMA

      public static final String VERTEX_SCHEMA
      See Also:
    • VERTEX_TABLE

      public static final String VERTEX_TABLE
      See Also:
    • LABEL_SEPARATOR

      public static final String LABEL_SEPARATOR
      See Also:
    • IN_VERTEX_COLUMN_END

      public static final String IN_VERTEX_COLUMN_END
      See Also:
    • OUT_VERTEX_COLUMN_END

      public static final String OUT_VERTEX_COLUMN_END
      See Also:
    • ZONEID

      public static final String ZONEID
      See Also:
    • MONTHS

      public static final String MONTHS
      See Also:
    • DAYS

      public static final String DAYS
      See Also:
    • DURATION_NANOS

      public static final String DURATION_NANOS
      See Also:
    • BULK_TEMP_EDGE

      public static final String BULK_TEMP_EDGE
      See Also:
    • OBJECT_MAPPER

      public static final com.fasterxml.jackson.databind.ObjectMapper OBJECT_MAPPER
    • SQLG_NOTIFICATION_CHANNEL

      public static final String SQLG_NOTIFICATION_CHANNEL
      See Also:
    • CREATED_ON

      public static final String CREATED_ON
      See Also:
    • UPDATED_ON

      public static final String UPDATED_ON
      See Also:
    • SCHEMA_VERTEX_DISPLAY

      public static final String SCHEMA_VERTEX_DISPLAY
      See Also:
    • SQLG_SCHEMA

      public static final String SQLG_SCHEMA
      Rdbms schema that holds sqlg topology.
      See Also:
    • SQLG_SCHEMA_GRAPH

      public static final String SQLG_SCHEMA_GRAPH
      Table storing the graph's graph meta data.
      See Also:
    • SQLG_SCHEMA_GRAPH_VERSION

      public static final String SQLG_SCHEMA_GRAPH_VERSION
      graph's sqlg version.
      See Also:
    • SQLG_SCHEMA_GRAPH_DB_VERSION

      public static final String SQLG_SCHEMA_GRAPH_DB_VERSION
      graph's database version. This is sourced from DatabaseMetaData.getDatabaseProductVersion()
      See Also:
    • SQLG_SCHEMA_SCHEMA

      public static final String SQLG_SCHEMA_SCHEMA
      Table storing the graph's schemas.
      See Also:
    • SQLG_SCHEMA_SCHEMA_NAME

      public static final String SQLG_SCHEMA_SCHEMA_NAME
      Schema's name.
      See Also:
    • SQLG_SCHEMA_VERTEX_LABEL

      public static final String SQLG_SCHEMA_VERTEX_LABEL
      Table storing the graphs vertex labels.
      See Also:
    • SQLG_SCHEMA_VERTEX_LABEL_NAME

      public static final String SQLG_SCHEMA_VERTEX_LABEL_NAME
      VertexLabel's name property.
      See Also:
    • SQLG_SCHEMA_VERTEX_LABEL_PARTITION_TYPE

      public static final String SQLG_SCHEMA_VERTEX_LABEL_PARTITION_TYPE
      VertexLabel's partition type. PartitionType
      See Also:
    • SQLG_SCHEMA_VERTEX_LABEL_PARTITION_EXPRESSION

      public static final String SQLG_SCHEMA_VERTEX_LABEL_PARTITION_EXPRESSION
      VertexLabel's partition expression.
      See Also:
    • SQLG_SCHEMA_EDGE_LABEL

      public static final String SQLG_SCHEMA_EDGE_LABEL
      Table storing the graphs edge labels.
      See Also:
    • SQLG_SCHEMA_EDGE_LABEL_NAME

      public static final String SQLG_SCHEMA_EDGE_LABEL_NAME
      EdgeLabel's name property.
      See Also:
    • SQLG_SCHEMA_EDGE_LABEL_PARTITION_TYPE

      public static final String SQLG_SCHEMA_EDGE_LABEL_PARTITION_TYPE
      EdgeLabel's partition type. PartitionType
      See Also:
    • SQLG_SCHEMA_EDGE_LABEL_PARTITION_EXPRESSION

      public static final String SQLG_SCHEMA_EDGE_LABEL_PARTITION_EXPRESSION
      EdgeLabel's partition expression.
      See Also:
    • SQLG_SCHEMA_PARTITION

      public static final String SQLG_SCHEMA_PARTITION
      Table storing the partition.
      See Also:
    • SQLG_SCHEMA_PARTITION_NAME

      public static final String SQLG_SCHEMA_PARTITION_NAME
      The Partition's name.
      See Also:
    • SQLG_SCHEMA_PARTITION_SCHEMA_NAME

      public static final String SQLG_SCHEMA_PARTITION_SCHEMA_NAME
      See Also:
    • SQLG_SCHEMA_PARTITION_ABSTRACT_LABEL_NAME

      public static final String SQLG_SCHEMA_PARTITION_ABSTRACT_LABEL_NAME
      See Also:
    • SQLG_SCHEMA_PARTITION_FROM

      public static final String SQLG_SCHEMA_PARTITION_FROM
      The Partition's from spec.
      See Also:
    • SQLG_SCHEMA_PARTITION_TO

      public static final String SQLG_SCHEMA_PARTITION_TO
      The Partition's to spec.
      See Also:
    • SQLG_SCHEMA_PARTITION_IN

      public static final String SQLG_SCHEMA_PARTITION_IN
      The Partition's in spec. i.e. CREATE TABLE "public"."TEST1" PARTITION OF "public"."V_RealWorkspaceElement" FOR VALUES IN ('TEST1');
      See Also:
    • SQLG_SCHEMA_PARTITION_MODULUS

      public static final String SQLG_SCHEMA_PARTITION_MODULUS
      The Partition's modulus spec. i.e. CREATE TABLE "public"."TEST1" PARTITION OF "public"."V_RealWorkspaceElement" FOR VALUES (MODULUS m, REMAINDER r);
      See Also:
    • SQLG_SCHEMA_PARTITION_REMAINDER

      public static final String SQLG_SCHEMA_PARTITION_REMAINDER
      The Partition's remainder spec. i.e. CREATE TABLE "public"."TEST1" PARTITION OF "public"."V_RealWorkspaceElement" FOR VALUES (MODULUS m, REMAINDER r);
      See Also:
    • SQLG_SCHEMA_PARTITION_PARTITION_TYPE

      public static final String SQLG_SCHEMA_PARTITION_PARTITION_TYPE
      The Partition's sub-partition's PartitionType.
      See Also:
    • SQLG_SCHEMA_PARTITION_PARTITION_EXPRESSION

      public static final String SQLG_SCHEMA_PARTITION_PARTITION_EXPRESSION
      The Partition's sub-partition's partitionExpression.
      See Also:
    • SQLG_SCHEMA_VERTEX_PARTITION_EDGE

      public static final String SQLG_SCHEMA_VERTEX_PARTITION_EDGE
      Edge table for the vertex's partitions.
      See Also:
    • SQLG_SCHEMA_EDGE_PARTITION_EDGE

      public static final String SQLG_SCHEMA_EDGE_PARTITION_EDGE
      Edge table for the edge's partitions.
      See Also:
    • SQLG_SCHEMA_PARTITION_PARTITION_EDGE

      public static final String SQLG_SCHEMA_PARTITION_PARTITION_EDGE
      Partition table for the partition's partitions.
      See Also:
    • SQLG_SCHEMA_VERTEX_DISTRIBUTION_COLUMN_EDGE

      public static final String SQLG_SCHEMA_VERTEX_DISTRIBUTION_COLUMN_EDGE
      Edge table for the vertex's distribution column.
      See Also:
    • SQLG_SCHEMA_VERTEX_DISTRIBUTION_COLOCATE_EDGE

      public static final String SQLG_SCHEMA_VERTEX_DISTRIBUTION_COLOCATE_EDGE
      Edge table for the vertex's colocate label.
      See Also:
    • SQLG_SCHEMA_VERTEX_LABEL_DISTRIBUTION_SHARD_COUNT

      public static final String SQLG_SCHEMA_VERTEX_LABEL_DISTRIBUTION_SHARD_COUNT
      vertex's shard_count property.
      See Also:
    • SQLG_SCHEMA_EDGE_DISTRIBUTION_COLUMN_EDGE

      public static final String SQLG_SCHEMA_EDGE_DISTRIBUTION_COLUMN_EDGE
      Edge table for the edge's distribution column.
      See Also:
    • SQLG_SCHEMA_EDGE_DISTRIBUTION_COLOCATE_EDGE

      public static final String SQLG_SCHEMA_EDGE_DISTRIBUTION_COLOCATE_EDGE
      Edge table for the edge's colocate label. The edge's colocate will always be to its incoming vertex label.
      See Also:
    • SQLG_SCHEMA_EDGE_LABEL_DISTRIBUTION_SHARD_COUNT

      public static final String SQLG_SCHEMA_EDGE_LABEL_DISTRIBUTION_SHARD_COUNT
      Edge's shard_count property.
      See Also:
    • SQLG_SCHEMA_PROPERTY

      public static final String SQLG_SCHEMA_PROPERTY
      Table storing the graphs element properties.
      See Also:
    • SQLG_SCHEMA_SCHEMA_VERTEX_EDGE

      public static final String SQLG_SCHEMA_SCHEMA_VERTEX_EDGE
      Edge table for the schema to vertex edge.
      See Also:
    • SQLG_SCHEMA_IN_EDGES_EDGE

      public static final String SQLG_SCHEMA_IN_EDGES_EDGE
      Edge table for the vertices in edges.
      See Also:
    • SQLG_SCHEMA_OUT_EDGES_EDGE

      public static final String SQLG_SCHEMA_OUT_EDGES_EDGE
      Edge table for the vertices out edges.
      See Also:
    • SQLG_SCHEMA_IN_EDGES_LOWER_MULTIPLICITY

      public static final String SQLG_SCHEMA_IN_EDGES_LOWER_MULTIPLICITY
      See Also:
    • SQLG_SCHEMA_IN_EDGES_UPPER_MULTIPLICITY

      public static final String SQLG_SCHEMA_IN_EDGES_UPPER_MULTIPLICITY
      See Also:
    • SQLG_SCHEMA_IN_EDGES_UNIQUE

      public static final String SQLG_SCHEMA_IN_EDGES_UNIQUE
      See Also:
    • SQLG_SCHEMA_IN_EDGES_ORDERED

      public static final String SQLG_SCHEMA_IN_EDGES_ORDERED
      See Also:
    • SQLG_SCHEMA_OUT_EDGES_LOWER_MULTIPLICITY

      public static final String SQLG_SCHEMA_OUT_EDGES_LOWER_MULTIPLICITY
      See Also:
    • SQLG_SCHEMA_OUT_EDGES_UPPER_MULTIPLICITY

      public static final String SQLG_SCHEMA_OUT_EDGES_UPPER_MULTIPLICITY
      See Also:
    • SQLG_SCHEMA_OUT_EDGES_UNIQUE

      public static final String SQLG_SCHEMA_OUT_EDGES_UNIQUE
      See Also:
    • SQLG_SCHEMA_OUT_EDGES_ORDERED

      public static final String SQLG_SCHEMA_OUT_EDGES_ORDERED
      See Also:
    • SQLG_SCHEMA_VERTEX_PROPERTIES_EDGE

      public static final String SQLG_SCHEMA_VERTEX_PROPERTIES_EDGE
      Edge table for the vertex's properties.
      See Also:
    • SQLG_SCHEMA_EDGE_PROPERTIES_EDGE

      public static final String SQLG_SCHEMA_EDGE_PROPERTIES_EDGE
      Edge table for the edge's properties.
      See Also:
    • SQLG_SCHEMA_VERTEX_IDENTIFIER_EDGE

      public static final String SQLG_SCHEMA_VERTEX_IDENTIFIER_EDGE
      Edge table for the vertex's identifier properties. i.e. user defined primary key columns
      See Also:
    • SQLG_SCHEMA_VERTEX_IDENTIFIER_INDEX_EDGE

      public static final String SQLG_SCHEMA_VERTEX_IDENTIFIER_INDEX_EDGE
      Indicates the primary key order.
      See Also:
    • SQLG_SCHEMA_EDGE_IDENTIFIER_EDGE

      public static final String SQLG_SCHEMA_EDGE_IDENTIFIER_EDGE
      Edge table for the edge's identifier properties. i.e. user defined primary key columns
      See Also:
    • SQLG_SCHEMA_EDGE_IDENTIFIER_INDEX_EDGE

      public static final String SQLG_SCHEMA_EDGE_IDENTIFIER_INDEX_EDGE
      Indicates the primary key order.
      See Also:
    • SQLG_SCHEMA_PROPERTY_NAME

      public static final String SQLG_SCHEMA_PROPERTY_NAME
      Property table's name property
      See Also:
    • SQLG_SCHEMA_INDEX

      public static final String SQLG_SCHEMA_INDEX
      Table storing the graphs indexes.
      See Also:
    • SQLG_SCHEMA_INDEX_NAME

      public static final String SQLG_SCHEMA_INDEX_NAME
      Index table's name property
      See Also:
    • SQLG_SCHEMA_INDEX_INDEX_TYPE

      public static final String SQLG_SCHEMA_INDEX_INDEX_TYPE
      Index table's index_type property
      See Also:
    • SQLG_SCHEMA_VERTEX_INDEX_EDGE

      public static final String SQLG_SCHEMA_VERTEX_INDEX_EDGE
      Edge table for the VertexLabel to Index.
      See Also:
    • SQLG_SCHEMA_EDGE_INDEX_EDGE

      public static final String SQLG_SCHEMA_EDGE_INDEX_EDGE
      Edge table for the EdgeLabel to Index.
      See Also:
    • SQLG_SCHEMA_INDEX_PROPERTY_EDGE

      public static final String SQLG_SCHEMA_INDEX_PROPERTY_EDGE
      Edge table for Index to Property
      See Also:
    • SQLG_SCHEMA_INDEX_PROPERTY_EDGE_SEQUENCE

      public static final String SQLG_SCHEMA_INDEX_PROPERTY_EDGE_SEQUENCE
      See Also:
    • SQLG_SCHEMA_LOG

      public static final String SQLG_SCHEMA_LOG
      Table storing the logs.
      See Also:
    • SQLG_SCHEMA_LOG_TIMESTAMP

      public static final String SQLG_SCHEMA_LOG_TIMESTAMP
      See Also:
    • SQLG_SCHEMA_LOG_LOG

      public static final String SQLG_SCHEMA_LOG_LOG
      See Also:
    • SQLG_SCHEMA_LOG_PID

      public static final String SQLG_SCHEMA_LOG_PID
      See Also:
    • SQLG_SCHEMA_PROPERTY_TYPE

      public static final String SQLG_SCHEMA_PROPERTY_TYPE
      Property table's type property
      See Also:
    • SQLG_SCHEMA_PROPERTY_MULTIPLICITY_LOWER

      public static final String SQLG_SCHEMA_PROPERTY_MULTIPLICITY_LOWER
      Lower multiplicity of the property. > 0 indicates the property is required
      See Also:
    • SQLG_SCHEMA_PROPERTY_MULTIPLICITY_UPPER

      public static final String SQLG_SCHEMA_PROPERTY_MULTIPLICITY_UPPER
      Upper multiplicity of the property. -1 indicates the property has no upper limit
      See Also:
    • SQLG_SCHEMA_PROPERTY_DEFAULT_LITERAL

      public static final String SQLG_SCHEMA_PROPERTY_DEFAULT_LITERAL
      The default value for the property. The value gets passed straight into the db without inspection.
      See Also:
    • SQLG_SCHEMA_PROPERTY_CHECK_CONSTRAINT

      public static final String SQLG_SCHEMA_PROPERTY_CHECK_CONSTRAINT
      A check constraint for the property. The value gets passed straight into the db without inspection.
      See Also:
  • Constructor Details

    • Topology

      public Topology(SqlgGraph sqlgGraph)
      Topology is a singleton created when the SqlgGraph is opened. As the topology, i.e. sqlg_schema is created upfront the meta topology is pre-loaded.
      Parameters:
      sqlgGraph - The graph.
  • Method Details

    • getSqlgGraph

      public SqlgGraph getSqlgGraph()
    • close

      public void close()
    • getValidationErrors

      public List<Topology.TopologyValidationError> getValidationErrors()
    • isImplementingForeignKeys

      public boolean isImplementingForeignKeys()
    • threadWriteLock

      public void threadWriteLock()
    • lock

      public void lock()
    • unlock

      public void unlock()
    • isLocked

      public boolean isLocked()
    • ensureSchemaExist

      public Schema ensureSchemaExist(String schemaName)
      Ensures that the schema exists.
      Parameters:
      schemaName - The schema to create if it does not exist.
    • importForeignSchemas

      public void importForeignSchemas(Set<Schema> originalSchemas)
      Import the foreign schema into the local graph's meta data.
      Parameters:
      originalSchemas - The foreign schemas to import.
    • clearForeignSchemas

      public void clearForeignSchemas(Set<String> schemasToClear)
    • clearForeignSchemas

      public void clearForeignSchemas()
    • importForeignVertexEdgeLabels

      public void importForeignVertexEdgeLabels(Schema importIntoSchema, Set<VertexLabel> vertexLabels, Set<EdgeLabel> edgeLabels)
    • ensureVertexLabelExist

      public VertexLabel ensureVertexLabelExist(String label)
      Ensures that the vertex table exist in the db. The default schema is assumed. @See SqlDialect.getPublicSchema() If any element does not exist the a lock is first obtained. After the lock is obtained the maps are rechecked to see if the element has not been added in the mean time.
      Parameters:
      label - The vertex's label. Translates to a table prepended with 'V_' and the table's name being the label.
    • ensureVertexLabelExist

      public VertexLabel ensureVertexLabelExist(String label, Map<String,PropertyDefinition> columns)
      Ensures that the vertex table and property columns exist in the db. The default schema is assumed. @See SqlDialect.getPublicSchema() If any element does not exist the a lock is first obtained. After the lock is obtained the maps are rechecked to see if the element has not been added in the mean time.
      Parameters:
      label - The vertex's label. Translates to a table prepended with 'V_' and the table's name being the label.
      columns - The properties with their types.
      See Also:
    • ensureVertexLabelExist

      public VertexLabel ensureVertexLabelExist(String label, Map<String,PropertyDefinition> columns, org.apache.commons.collections4.set.ListOrderedSet<String> identifiers)
    • ensureVertexLabelExist

      public VertexLabel ensureVertexLabelExist(String schemaName, String label)
      Ensures that the schema, vertex table exist in the db. If any element does not exist the a lock is first obtained. After the lock is obtained the maps are rechecked to see if the element has not been added in the mean time.
      Parameters:
      schemaName - The schema the vertex is in.
      label - The vertex's label. Translates to a table prepended with 'V_' and the table's name being the label.
    • ensureVertexLabelExist

      public VertexLabel ensureVertexLabelExist(String schemaName, String label, Map<String,PropertyDefinition> properties)
      Ensures that the schema, vertex table and property columns exist in the db. If any element does not exist the a lock is first obtained. After the lock is obtained the maps are rechecked to see if the element has not been added in the mean time.
      Parameters:
      schemaName - The schema the vertex is in.
      label - The vertex's label. Translates to a table prepended with 'V_' and the table's name being the label.
      properties - The properties with their types.
      See Also:
    • ensureVertexLabelExist

      public VertexLabel ensureVertexLabelExist(String schemaName, String label, Map<String,PropertyDefinition> properties, org.apache.commons.collections4.set.ListOrderedSet<String> identifiers)
      Ensures that the schema, vertex table and property columns exist in the db. If any element does not exist the a lock is first obtained. After the lock is obtained the maps are rechecked to see if the element has not been added in the mean time.
      Parameters:
      schemaName - The schema the vertex is in.
      label - The vertex's label. Translates to a table prepended with 'V_' and the table's name being the label.
      properties - The properties with their types.
      identifiers - The Vertex's identifiers. i.e. it will be the primary key.
      See Also:
    • ensureTemporaryVertexTableExist

      public void ensureTemporaryVertexTableExist(String schema, String label, Map<String,PropertyDefinition> properties)
    • ensureEdgeLabelExist

      public EdgeLabel ensureEdgeLabelExist(String edgeLabelName, VertexLabel outVertexLabel, VertexLabel inVertexLabel, Map<String,PropertyDefinition> properties)
      Ensures that the edge table with out and in VertexLabels and property columns exists. The edge table will reside in the out vertex's schema. If a table, a foreign key or a column needs to be created a lock is first obtained.
      Parameters:
      edgeLabelName - The label of the edge for which a table will be created.
      outVertexLabel - The edge's out VertexLabel
      inVertexLabel - The edge's in VertexLabel
      properties - The edge's properties with their type.
      Returns:
      The EdgeLabel
    • ensureEdgeLabelExist

      public EdgeLabel ensureEdgeLabelExist(String edgeLabelName, VertexLabel outVertexLabel, VertexLabel inVertexLabel, Map<String,PropertyDefinition> properties, org.apache.commons.collections4.set.ListOrderedSet<String> identifiers)
      Ensures that the edge table with out and in VertexLabels and property columns exists. The edge table will reside in the out vertex's schema. If a table, a foreign key or a column needs to be created a lock is first obtained.
      Parameters:
      edgeLabelName - The label of the edge for which a table will be created.
      outVertexLabel - The edge's out VertexLabel
      inVertexLabel - The edge's in VertexLabel
      properties - The edge's properties with their type.
      identifiers - The edge's user supplied identifiers. They will make up the edge's primary key.
      Returns:
      The EdgeLabel
    • ensureEdgeLabelExist

      public void ensureEdgeLabelExist(String edgeLabelName, SchemaTable foreignKeyOut, SchemaTable foreignKeyIn, Map<String,PropertyDefinition> properties)
      Ensures that the edge table with out and in foreign keys and property columns exists. The edge table will reside in the out vertex's schema. If a table, a foreign key or a column needs to be created a lock is first obtained.
      Parameters:
      edgeLabelName - The label for the edge.
      foreignKeyOut - The SchemaTable that represents the out vertex.
      foreignKeyIn - The SchemaTable that represents the in vertex.
      properties - The edge's properties with their type.
    • ensureVertexLabelPropertiesExist

      public void ensureVertexLabelPropertiesExist(String label, Map<String,PropertyDefinition> properties)
      Ensures that the vertex's table has the required columns. If a columns needs to be created a lock will be obtained. The vertex's schema and table must already exists. The default "public" schema will be used. SqlDialect.getPublicSchema()
      Parameters:
      label - The vertex's label.
      properties - The properties to create if they do not exist.
    • ensureVertexLabelPropertiesExist

      public void ensureVertexLabelPropertiesExist(String schemaName, String label, Map<String,PropertyDefinition> properties)
      Ensures that the vertex's table has the required columns. If a columns needs to be created a lock will be obtained. The vertex's schema and table must already exists.
      Parameters:
      schemaName - The schema the vertex resides in.
      label - The vertex's label.
      properties - The properties to create if they do not exist.
    • ensureEdgePropertiesExist

      public void ensureEdgePropertiesExist(String label, Map<String,PropertyDefinition> properties)
      Ensures that the edge's table has the required columns. The default schema is assumed. @see SqlDialect.getPublicSchema() If a columns needs to be created a lock will be obtained. The edge's schema and table must already exists.
      Parameters:
      label - The edge's label.
      properties - The properties to create if they do not exist.
    • ensureEdgePropertiesExist

      public void ensureEdgePropertiesExist(String schemaName, String label, Map<String,PropertyDefinition> properties)
      Ensures that the edge's table has the required columns. If a columns needs to be created a lock will be obtained. The edge's schema and table must already exists.
      Parameters:
      schemaName - The schema the edge resides in.
      label - The edge's label.
      properties - The properties to create if they do not exist.
    • cacheTopology

      public void cacheTopology()
    • validateTopology

      public void validateTopology()
    • toJson

      public com.fasterxml.jackson.databind.JsonNode toJson()
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • fromNotifyJson

      public void fromNotifyJson(int pid, LocalDateTime notifyTimestamp)
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • getSchemas

      public Set<Schema> getSchemas()
    • getPublicSchema

      public Schema getPublicSchema()
    • getSchema

      public Optional<Schema> getSchema(String schema)
    • getVertexLabel

      public Optional<VertexLabel> getVertexLabel(String schemaName, String label)
    • getEdgeLabel

      public Optional<EdgeLabel> getEdgeLabel(String schemaName, String edgeLabelName)
    • getAllTables

      public Map<String,Map<String,PropertyDefinition>> getAllTables()
      get all tables by schema, with their properties does not return schema tables
      Returns:
      the map of all tables.
    • getAllTables

      public Map<String,Map<String,PropertyDefinition>> getAllTables(boolean sqlgSchema)
      get all tables by schema, with their properties
      Parameters:
      sqlgSchema - do we want the sqlg_schema tables?
      Returns:
      a map of all tables and their properties.
    • getPropertiesFor

      public Map<String,PropertyColumn> getPropertiesFor(SchemaTable schemaTable)
    • getTableFor

      public Map<String,PropertyDefinition> getTableFor(SchemaTable schemaTable)
    • getTableLabels

      public Map<SchemaTable,org.apache.commons.lang3.tuple.Pair<Set<SchemaTable>,Set<SchemaTable>>> getTableLabels()
    • getTableLabels

      public org.apache.commons.lang3.tuple.Pair<Set<SchemaTable>,Set<SchemaTable>> getTableLabels(SchemaTable schemaTable)
      Returns all the in and out SchemaTables that schemaTable has edges to.
      Parameters:
      schemaTable - The schemaTable for whom we want the in and out SchemaTables
      Returns:
      a Pair of in and out SchemaTables.
    • getEdgeForeignKeys

      public Map<String,Set<ForeignKey>> getEdgeForeignKeys()
    • registerListener

      public void registerListener(TopologyListener topologyListener)
    • markAsDistributed

      public void markAsDistributed()