public abstract class StandardRelationTypeMaker extends Object implements RelationTypeMaker
Modifier and Type | Field and Description |
---|---|
protected AttributeHandler |
attributeHandler |
protected IndexSerializer |
indexSerializer |
protected Multiplicity |
multiplicity |
protected StandardJanusGraphTx |
tx |
Constructor and Description |
---|
StandardRelationTypeMaker(StandardJanusGraphTx tx,
String name,
IndexSerializer indexSerializer,
AttributeHandler attributeHandler) |
Modifier and Type | Method and Description |
---|---|
protected Multiplicity |
getMultiplicity() |
String |
getName()
Returns the name of this configured relation type.
|
protected boolean |
hasSortKey() |
StandardRelationTypeMaker |
invisible() |
protected TypeDefinitionMap |
makeDefinition() |
StandardRelationTypeMaker |
multiplicity(Multiplicity multiplicity) |
StandardRelationTypeMaker |
name(String name) |
StandardRelationTypeMaker |
signature(PropertyKey... types)
Configures the signature of this relation type.
|
StandardRelationTypeMaker |
sortKey(PropertyKey... keys)
Configures the composite sort key for this label.
|
StandardRelationTypeMaker |
sortOrder(Order order)
Defines in which order to sort the relations for efficient retrieval, i.e.
|
StandardRelationTypeMaker |
status(SchemaStatus status) |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
make
protected final StandardJanusGraphTx tx
protected final IndexSerializer indexSerializer
protected final AttributeHandler attributeHandler
protected Multiplicity multiplicity
public StandardRelationTypeMaker(StandardJanusGraphTx tx, String name, IndexSerializer indexSerializer, AttributeHandler attributeHandler)
public String getName()
RelationTypeMaker
getName
in interface RelationTypeMaker
protected boolean hasSortKey()
protected Multiplicity getMultiplicity()
protected final TypeDefinitionMap makeDefinition()
public StandardRelationTypeMaker multiplicity(Multiplicity multiplicity)
public StandardRelationTypeMaker signature(PropertyKey... types)
RelationTypeMaker
Specifying the signature of a type tells the graph database to expect that relations of this type
always have or are likely to have an incident property or unidirected edge of the type included in the
signature. This allows the graph database to store such relations more compactly and retrieve them more quickly.
For instance, if all edges with label friend have a property with key createdOn, then specifying
(createdOn) as the signature for label friend allows friend edges to be stored more efficiently.
RelationType
s used in the signature must be either property out-unique keys or out-unique unidirected edge labels.
The signature is empty by default.
signature
in interface RelationTypeMaker
types
- PropertyKey composing the signature for the configured relation type. The order is irrelevant.public StandardRelationTypeMaker status(SchemaStatus status)
public StandardRelationTypeMaker sortKey(PropertyKey... keys)
Specifying the sort key of a type allows relations of this type to be efficiently retrieved in the order of
the sort key.
For instance, if the edge label friend has the sort key (since), which is a property key
with a timestamp data type, then one can efficiently retrieve all edges with label friend in a specified
time interval using JanusGraphVertexQuery.interval(java.lang.String, T, T)
.
In other words, relations are stored on disk in the order of the configured sort key. The sort key is empty
by default.
If multiple types are specified as sort key, then those are considered as a composite sort key, i.e. taken jointly
in the given order.
RelationType
s used in the sort key must be either property out-unique keys or out-unique unidirected edge labels.
keys
- JanusGraphTypes composing the sort key. The order is relevant.public StandardRelationTypeMaker sortOrder(Order order)
Order.ASC
) or
decreasing (Order.DESC
).
Note, that only one sort order can be specified and that a sort key must be defined to use a sort order.order
- sortKey(PropertyKey... keys)
public StandardRelationTypeMaker name(String name)
public StandardRelationTypeMaker invisible()
Copyright © 2012–2024. All rights reserved.