public List<OIndex<?>> getInvolvedIndexes(OClass iSchemaClass, OIndexSearchResult searchResultFields) { final Set<OIndex<?>> involvedIndexes = iSchemaClass.getInvolvedIndexes(searchResultFields.fields()); final List<OIndex<?>> result = new ArrayList<OIndex<?>>(involvedIndexes.size()); if (searchResultFields.lastField.isLong()) { result.addAll(OChainedIndexProxy.createProxies(iSchemaClass, searchResultFields.lastField)); } else { for (OIndex<?> involvedIndex : involvedIndexes) { result.add(involvedIndex); } } return result; }
public static boolean checkIndexExistence(final OClass iSchemaClass, final OIndexSearchResult result) { if (!iSchemaClass.areIndexed(result.fields())) return false; if (result.lastField.isLong()) { final int fieldCount = result.lastField.getItemCount(); OClass cls = iSchemaClass.getProperty(result.lastField.getItemName(0)).getLinkedClass(); for (int i = 1; i < fieldCount; i++) { if (cls == null || !cls.areIndexed(result.lastField.getItemName(i))) { return false; } cls = cls.getProperty(result.lastField.getItemName(i)).getLinkedClass(); } } return true; }
public static boolean checkIndexExistence(final OClass iSchemaClass, final OIndexSearchResult result) { if (!iSchemaClass.areIndexed(result.fields())) return false; if (result.lastField.isLong()) { final int fieldCount = result.lastField.getItemCount(); OClass cls = iSchemaClass.getProperty(result.lastField.getItemName(0)).getLinkedClass(); for (int i = 1; i < fieldCount; i++) { if (cls == null || !cls.areIndexed(result.lastField.getItemName(i))) { return false; } cls = cls.getProperty(result.lastField.getItemName(i)).getLinkedClass(); } } return true; }
/** * @param searchResult * Query subset is going to be merged with given one. * @return <code>true</code> if two query subsets can be merged. */ boolean canBeMerged(final OIndexSearchResult searchResult) { if (lastField.isLong() || searchResult.lastField.isLong()) { return false; } if (!lastOperator.canBeMerged() || !searchResult.lastOperator.canBeMerged()) { return false; } return isIndexEqualityOperator(lastOperator) || isIndexEqualityOperator(searchResult.lastOperator); }
private boolean checkIndexExistence(final OClass iSchemaClass, final OIndexSearchResult result) { return iSchemaClass.areIndexed(result.fields()) && (!result.lastField.isLong() || checkIndexChainExistence(iSchemaClass, result)); }