/** * Add new indexDefinition in current composite. * * @param indexDefinition Index to add. */ public void addIndex(final OIndexDefinition indexDefinition) { indexDefinitions.add(indexDefinition); if (indexDefinition instanceof OIndexDefinitionMultiValue) { if (multiValueDefinitionIndex == -1) multiValueDefinitionIndex = indexDefinitions.size() - 1; else throw new OIndexException("Composite key cannot contain more than one collection item"); } collate.addCollate(indexDefinition.getCollate()); }
/** * Constructor for new index creation. * * @param iClassName - name of class which is owner of this index * @param iIndexes List of indexDefinitions to add in given index. */ public OCompositeIndexDefinition(final String iClassName, final List<? extends OIndexDefinition> iIndexes, int version) { super(); indexDefinitions = new ArrayList<OIndexDefinition>(5); for (OIndexDefinition indexDefinition : iIndexes) { indexDefinitions.add(indexDefinition); collate.addCollate(indexDefinition.getCollate()); if (indexDefinition instanceof OIndexDefinitionMultiValue) if (multiValueDefinitionIndex == -1) multiValueDefinitionIndex = indexDefinitions.size() - 1; else throw new OIndexException("Composite key cannot contain more than one collection item"); } className = iClassName; }
protected Object getCollatingValue(final Object key) { final OIndexDefinition definition = getDefinition(); if (key != null && definition != null) return definition.getCollate().transform(key); return key; }
@SuppressWarnings("unchecked") @Override protected V getValue(OIndex<?> entity, String critery) { if(OIndexPrototyper.DEF_COLLATE.equals(critery)) { OIndexDefinition definition = entity.getDefinition(); if(definition instanceof OCompositeIndexDefinition) return (V)"composite"; OCollate collate = definition.getCollate(); return (V)(collate!=null?collate.getName():null); } else { return (V) PropertyResolver.getValue(critery, entity); } }
public Object getCollatingValue(final Object key) { if (key != null && getDefinition() != null) return getDefinition().getCollate().transform(key); return key; }
collate.addCollate(indexDefinition.getCollate());
if (indexDefinition != null) { row.field("CLASS", indexDefinition.getClassName()); row.field("COLLATE", indexDefinition.getCollate().getName());