Interface PropertyContainer

All Superinterfaces:
IdentifiableElement, Named
All Known Subinterfaces:
Node, Relationship
All Known Implementing Classes:
NodeBase, RelationshipBase

@API(status=STABLE, since="1.1") public interface PropertyContainer extends Named
A container having properties. A property container must be Named with a non empty name to be able to refer to properties.
Since:
1.1
Author:
Andreas Berger, Michael J. Simons
  • Method Details

    • property

      @NotNull @Contract(pure=true) @NotNull Property property(@NotNull @NotNull String name)
      Creates a new Property associated with this property container. This property can be used as a lookup in other expressions. It does not add a value to the property.

      Note: The property container does not track property creation and there is no possibility to enumerate all properties that have been created for this property container.

      Parameters:
      name - property name, must not be null or empty.
      Returns:
      a new Property associated with this named container
    • property

      @NotNull @Contract(pure=true) @NotNull Property property(String... names)
      Parameters:
      names - a list of nested property names
      Returns:
      a new Property associated with this named container
      See Also:
    • property

      @NotNull @Contract(pure=true) @NotNull Property property(Expression lookup)
      Creates a new Property associated with this property container. This property can be used as a lookup in other expressions. It does not add a value to the property.

      The new Property object is a dynamic lookup, based on the expression passed to this method. The expression can be example another property, a function result or a Cypher parameter. A property defined in such a way will render as p[expression].

      Note: The property container does not track property creation and there is no possibility to enumerate all properties that have been created for this property container.

      Parameters:
      lookup - the expression that is evaluated to lookup this property.
      Returns:
      a new Property associated with this named container
      Since:
      2021.0.0
    • mutate

      @NotNull @Contract(pure=true) @NotNull Operation mutate(Parameter<?> parameter)
      Creates an Operation mutating the properties of this container to a new value. The container does not track the operations created with this method.
      Parameters:
      parameter - the new properties
      Returns:
      A new operation.
      Since:
      2020.1.5
    • mutate

      @NotNull @Contract(pure=true) @NotNull Operation mutate(MapExpression properties)
      Creates an Operation mutating the properties of this container to a new value. The container does not track the operations created with this method.
      Parameters:
      properties - the new properties
      Returns:
      A new operation.
      Since:
      2020.1.5
    • set

      @NotNull @Contract(pure=true) @NotNull Operation set(Parameter<?> parameter)
      Creates an SET operation setting the properties of this container to a new value. The container does not track the operations created with this method.
      Parameters:
      parameter - the new properties
      Returns:
      A new operation.
      Since:
      2022.5.0
    • set

      @NotNull @Contract(pure=true) @NotNull Operation set(MapExpression properties)
      Creates an SET operation setting the properties of this container to a new value. The container does not track the operations created with this method.
      Parameters:
      properties - the new properties
      Returns:
      A new operation.
      Since:
      2022.5.0
    • project

      @NotNull @Contract(pure=true) @NotNull MapProjection project(List<Object> entries)
      Unwraps the list of entries into an array before creating a projection out of it.
      Parameters:
      entries - A list of entries for the projection
      Returns:
      A map projection.
      See Also:
    • project

      @NotNull @Contract(pure=true) @NotNull MapProjection project(Object... entries)
      Creates a map projection based on this container. The container needs a symbolic name for this to work.
      Parameters:
      entries - A list of entries for the projection
      Returns:
      A map projection.
      See Also: