Class OCompositeIndexDefinition

java.lang.Object
com.orientechnologies.orient.core.index.OAbstractIndexDefinition
com.orientechnologies.orient.core.index.OCompositeIndexDefinition
All Implemented Interfaces:
OIndexCallback, OIndexDefinition

public class OCompositeIndexDefinition extends OAbstractIndexDefinition
Index that consist of several indexDefinitions like OPropertyIndexDefinition.
  • Constructor Details

    • OCompositeIndexDefinition

      public OCompositeIndexDefinition()
    • OCompositeIndexDefinition

      public OCompositeIndexDefinition(String iClassName)
      Constructor for new index creation.
      Parameters:
      iClassName - - name of class which is owner of this index
    • OCompositeIndexDefinition

      public OCompositeIndexDefinition(String iClassName, List<? extends OIndexDefinition> iIndexes, int version)
      Constructor for new index creation.
      Parameters:
      iClassName - - name of class which is owner of this index
      iIndexes - List of indexDefinitions to add in given index.
  • Method Details

    • getClassName

      public String getClassName()
      Returns:
      Name of the class which this index belongs to.
    • addIndex

      public void addIndex(OIndexDefinition indexDefinition)
      Add new indexDefinition in current composite.
      Parameters:
      indexDefinition - Index to add.
    • getFields

      public List<String> getFields()
      Returns:
      Names of fields which given index is used to calculate key value. Order of fields is important.
    • getFieldsToIndex

      public List<String> getFieldsToIndex()
      Returns:
      Names of fields and their index modifiers (like "by value" for fields that hold Map values) which given index is used to calculate key value. Order of fields is important.
    • getDocumentValueToIndex

      public Object getDocumentValueToIndex(ODocument iDocument)
    • getMultiValueDefinitionIndex

      public int getMultiValueDefinitionIndex()
    • getMultiValueField

      public String getMultiValueField()
    • createValue

      public Object createValue(List<?> params)
      Calculates key value by passed in parameters.

      If it is impossible to calculate key value by given parameters null will be returned.

      Parameters:
      params - Parameters from which index key will be calculated.
      Returns:
      Key value or null if calculation is impossible.
    • getMultiValueDefinition

      public OIndexDefinitionMultiValue getMultiValueDefinition()
    • createSingleValue

      public OCompositeKey createSingleValue(List<?> params)
    • createValue

      public Object createValue(Object... params)
      Calculates key value by passed in parameters.

      If it is impossible to calculate key value by given parameters null will be returned.

      Parameters:
      params - Parameters from which index key will be calculated.
      Returns:
      Key value or null if calculation is impossible.
    • processChangeEvent

      public void processChangeEvent(OMultiValueChangeEvent<?,?> changeEvent, Map<OCompositeKey,Integer> keysToAdd, Map<OCompositeKey,Integer> keysToRemove, Object... params)
    • getParamCount

      public int getParamCount()
      Returns amount of parameters that are used to calculate key value. It does not mean that all parameters should be supplied. It only means that if you provide more parameters they will be ignored and will not participate in index key calculation.
      Returns:
      Amount of that are used to calculate key value. Call result should be equals to getTypes().length.
    • getTypes

      public OType[] getTypes()
      Return types of values from which index key consist. In case of index that is built on single document property value single array that contains property type will be returned. In case of composite indexes result will contain several key types.
      Returns:
      Types of values from which index key consist.
    • equals

      public boolean equals(Object o)
      Description copied from interface: OIndexDefinition
      Specified by:
      equals in interface OIndexDefinition
      Overrides:
      equals in class OAbstractIndexDefinition
    • hashCode

      public int hashCode()
      Description copied from interface: OIndexDefinition
      Specified by:
      hashCode in interface OIndexDefinition
      Overrides:
      hashCode in class OAbstractIndexDefinition
    • toString

      public String toString()
      Description copied from interface: OIndexDefinition
      Specified by:
      toString in interface OIndexDefinition
      Overrides:
      toString in class Object
    • toStream

      public ODocument toStream()
      Serializes internal index state to document.
      Returns:
      Document that contains internal index state.
    • serializeToStream

      protected void serializeToStream()
      Overrides:
      serializeToStream in class OAbstractIndexDefinition
    • toCreateIndexDDL

      public String toCreateIndexDDL(String indexName, String indexType, String engine)
    • fromStream

      public void fromStream(ODocument document)
      Description copied from interface: OIndexDefinition
      Deserialize internal index state from document.
      Parameters:
      document - Serialized index presentation.
    • serializeFromStream

      protected void serializeFromStream()
      Overrides:
      serializeFromStream in class OAbstractIndexDefinition
    • getCollate

      public OCollate getCollate()
      Specified by:
      getCollate in interface OIndexDefinition
      Overrides:
      getCollate in class OAbstractIndexDefinition
    • setCollate

      public void setCollate(OCollate collate)
      Specified by:
      setCollate in interface OIndexDefinition
      Overrides:
      setCollate in class OAbstractIndexDefinition
    • isAutomatic

      public boolean isAutomatic()