public class StandardPropertyKeyMaker extends StandardRelationTypeMaker implements PropertyKeyMaker
attributeHandler, indexSerializer, multiplicity, tx
Constructor and Description |
---|
StandardPropertyKeyMaker(StandardJanusGraphTx tx,
String name,
IndexSerializer indexSerializer,
AttributeHandler attributeHandler) |
Modifier and Type | Method and Description |
---|---|
StandardPropertyKeyMaker |
cardinality(Cardinality cardinality)
Configures the
Cardinality of this property key. |
StandardPropertyKeyMaker |
cardinality(org.apache.tinkerpop.gremlin.structure.VertexProperty.Cardinality cardinality)
Configures the
VertexProperty.Cardinality of this property key. |
boolean |
cardinalityIsSet()
This method allows to check if is set using method cardinality();
|
StandardPropertyKeyMaker |
dataType(Class<?> clazz)
Configures the data type for this property key.
|
StandardPropertyKeyMaker |
invisible() |
PropertyKey |
make()
Defines the
PropertyKey specified by this PropertyKeyMaker and returns the resulting key. |
StandardPropertyKeyMaker |
signature(PropertyKey... types)
Configures the signature of this relation type.
|
StandardPropertyKeyMaker |
sortKey(PropertyKey... types)
Configures the composite sort key for this label.
|
StandardPropertyKeyMaker |
sortOrder(Order order)
Defines in which order to sort the relations for efficient retrieval, i.e.
|
getMultiplicity, getName, hasSortKey, makeDefinition, multiplicity, name, status
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getName
public StandardPropertyKeyMaker(StandardJanusGraphTx tx, String name, IndexSerializer indexSerializer, AttributeHandler attributeHandler)
public StandardPropertyKeyMaker dataType(Class<?> clazz)
PropertyKeyMaker
Property instances for this key will only accept values that are instances of this class. Every property key must have its data type configured. Setting the data type to Object.class allows any type of value but comes at the expense of longer serialization because class information is stored with the value.
It is strongly advised to pick an appropriate data type class so JanusGraph can enforce it throughout the database.
dataType
in interface PropertyKeyMaker
clazz
- Data type to be configured.PropertyKey.dataType()
public StandardPropertyKeyMaker cardinality(Cardinality cardinality)
PropertyKeyMaker
Cardinality
of this property key.cardinality
in interface PropertyKeyMaker
public StandardPropertyKeyMaker cardinality(org.apache.tinkerpop.gremlin.structure.VertexProperty.Cardinality cardinality)
PropertyKeyMaker
VertexProperty.Cardinality
of this property key.cardinality
in interface PropertyKeyMaker
public boolean cardinalityIsSet()
PropertyKeyMaker
cardinalityIsSet
in interface PropertyKeyMaker
public StandardPropertyKeyMaker invisible()
invisible
in class StandardRelationTypeMaker
public StandardPropertyKeyMaker 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 PropertyKeyMaker
signature
in interface RelationTypeMaker
signature
in class StandardRelationTypeMaker
types
- PropertyKey composing the signature for the configured relation type. The order is irrelevant.public StandardPropertyKeyMaker sortKey(PropertyKey... types)
StandardRelationTypeMaker
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.
sortKey
in class StandardRelationTypeMaker
types
- JanusGraphTypes composing the sort key. The order is relevant.public StandardPropertyKeyMaker sortOrder(Order order)
StandardRelationTypeMaker
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.sortOrder
in class StandardRelationTypeMaker
StandardRelationTypeMaker.sortKey(PropertyKey... keys)
public PropertyKey make()
PropertyKeyMaker
PropertyKey
specified by this PropertyKeyMaker and returns the resulting key.make
in interface PropertyKeyMaker
make
in interface RelationTypeMaker
PropertyKey
Copyright © 2012–2023. All rights reserved.