Interface Property<V>
-
- All Known Subinterfaces:
VertexProperty<V>
public interface Property<V>
AProperty
denotes a key/value pair associated with anEdge
. A property is much like a Java8Optional
in that a property can be not present (i.e. empty). The key of a property is always a String and the value of a property is an arbitrary Java object. Each underlying graph engine will typically have constraints on what Java objects are allowed to be used as values.- Author:
- Marko A. Rodriguez (http://markorodriguez.com), Stephen Mallette (http://stephen.genoprime.com)
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static class
Property.Exceptions
Common exceptions to use with a property.
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description Element
element()
Get the element that this property is associated with.static <V> Property<V>
empty()
Create an empty property that is not present.default void
ifPresent(Consumer<? super V> consumer)
If the property is present, the consume the value as specified by theConsumer
.boolean
isPresent()
Whether the property is empty or not.String
key()
The key of the property.default V
orElse(V otherValue)
If the value is present, return the value, else return the provided value.default V
orElseGet(Supplier<? extends V> valueSupplier)
If the value is present, return the value, else generate a value given theSupplier
.default <E extends Throwable>
VorElseThrow(Supplier<? extends E> exceptionSupplier)
If the value is present, return the value, else throw the exception generated by theSupplier
.void
remove()
Remove the property from the associated element.V
value()
The value of the property.
-
-
-
Method Detail
-
key
String key()
The key of the property.- Returns:
- The property key
-
value
V value() throws NoSuchElementException
The value of the property.- Returns:
- The property value
- Throws:
NoSuchElementException
- thrown if the property is empty
-
isPresent
boolean isPresent()
Whether the property is empty or not.- Returns:
- True if the property exists, else false
-
ifPresent
default void ifPresent(Consumer<? super V> consumer)
If the property is present, the consume the value as specified by theConsumer
.- Parameters:
consumer
- The consumer to process the existing value.
-
orElse
default V orElse(V otherValue)
If the value is present, return the value, else return the provided value.- Parameters:
otherValue
- The value to return if the property is not present- Returns:
- A value
-
orElseGet
default V orElseGet(Supplier<? extends V> valueSupplier)
If the value is present, return the value, else generate a value given theSupplier
.- Parameters:
valueSupplier
- The supplier to use to generate a value if the property is not present- Returns:
- A value
-
orElseThrow
default <E extends Throwable> V orElseThrow(Supplier<? extends E> exceptionSupplier) throws E extends Throwable
If the value is present, return the value, else throw the exception generated by theSupplier
.- Type Parameters:
E
- The exception type- Parameters:
exceptionSupplier
- The supplier to generate an exception if the property is not present- Returns:
- A value
- Throws:
E
- if the property is not present, the exception is thrownE extends Throwable
-
element
Element element()
Get the element that this property is associated with.- Returns:
- The element associated with this property (i.e.
Vertex
,Edge
, orVertexProperty
).
-
remove
void remove()
Remove the property from the associated element.
-
empty
static <V> Property<V> empty()
Create an empty property that is not present.- Type Parameters:
V
- The value class of the empty property- Returns:
- A property that is not present
-
-