private static int determineKeySize(final OIndexDefinition indexDefinition) { if (indexDefinition == null || indexDefinition instanceof ORuntimeKeyIndexDefinition) { return 1; } else { return indexDefinition.getTypes().length; } }
public OType[] getKeyTypes() { if (indexDefinition != null) return indexDefinition.getTypes(); return new OType[0]; }
/** * {@inheritDoc} */ public OType[] getTypes() { final List<OType> types = new LinkedList<OType>(); for (final OIndexDefinition indexDefinition : indexDefinitions) Collections.addAll(types, indexDefinition.getTypes()); return types.toArray(new OType[types.size()]); }
protected Query buildQuery(OIndexDefinition index, String query, ODocument metadata, Analyzer queryAnalyzer) throws ParseException { String[] fields; if (index.isAutomatic()) { fields = index.getFields().toArray(new String[index.getFields().size()]); } else { int length = index.getTypes().length; fields = new String[length]; for (int i = 0; i < length; i++) { fields[i] = "k" + i; } } Map<String, OType> types = new HashMap<>(); for (int i = 0; i < fields.length; i++) { String field = fields[i]; types.put(field, index.getTypes()[i]); } return getQuery(index, query, metadata, queryAnalyzer, fields, types); }
private static Dependency[] getIndexFieldRidDependencies(OIndex<?> index) { final OIndexDefinition definition = index.getDefinition(); if (definition == null) // type for untyped index is still not resolved return null; final OType[] types = definition.getTypes(); final Dependency[] dependencies = new Dependency[types.length]; for (int i = 0; i < types.length; ++i) dependencies[i] = getTypeRidDependency(types[i]); return dependencies; }
public OType[] getKeyTypes() { acquireSharedLock(); try { if (indexDefinition == null) return null; return indexDefinition.getTypes(); } finally { releaseSharedLock(); } }
private static Dependency[] getIndexFieldRidDependencies(OIndex<?> index) { final OIndexDefinition definition = index.getDefinition(); if (definition == null) // type for untyped index is still not resolved return null; final OType[] types = definition.getTypes(); final Dependency[] dependencies = new Dependency[types.length]; for (int i = 0; i < types.length; ++i) dependencies[i] = getTypeRidDependency(types[i]); return dependencies; }
private OBinarySerializer determineKeySerializer(final OIndexDefinition indexDefinition) { final OBinarySerializer keySerializer; if (indexDefinition != null) { if (indexDefinition instanceof ORuntimeKeyIndexDefinition) { keySerializer = ((ORuntimeKeyIndexDefinition) indexDefinition).getSerializer(); } else { if (indexDefinition.getTypes().length > 1) { keySerializer = OCompositeKeySerializer.INSTANCE; } else { final OType keyType = indexDefinition.getTypes()[0]; if (keyType == OType.STRING && configuration.getBinaryFormatVersion() >= 13) { return OUTF8Serializer.INSTANCE; } final OCurrentStorageComponentsFactory currentStorageComponentsFactory = componentsFactory; if (currentStorageComponentsFactory != null) { keySerializer = currentStorageComponentsFactory.binarySerializerFactory.getObjectSerializer(keyType); } else { throw new IllegalStateException("Cannot load binary serializer, storage is not properly initialized"); } } } } else { keySerializer = new OSimpleKeySerializer(); } return keySerializer; }
Object key = null; if (definition instanceof OPropertyIndexDefinition) { key = convert(conditions.get(definitionFields.get(0)), definition.getTypes()[0]); } else if (definition instanceof OCompositeIndexDefinition) { key = new OCompositeKey(); break; Object keyValue = convert(conditions.get(keyName), definition.getTypes()[i]); ((OCompositeKey) key).addKey(conditions.get(keyName));
Object key = null; if (definition instanceof OPropertyIndexDefinition) { key = convert(conditions.get(definitionFields.get(0)), definition.getTypes()[0]); } else if (definition instanceof OCompositeIndexDefinition) { key = new OCompositeKey(); for (int i = 0; i < nMatchingKeys; i++) { Object keyValue = convert(conditions.get(definitionFields.get(i)), definition.getTypes()[i]); ((OCompositeKey) key).addKey(keyValue);
protected static Query getQueryParser(OIndexDefinition index, String key, Analyzer analyzer, Version version) throws ParseException { QueryParser queryParser; if ((key).startsWith("(")) { queryParser = new QueryParser(version, "", analyzer); } else { String[] fields = null; if (index.isAutomatic()) { fields = index.getFields().toArray(new String[index.getFields().size()]); } else { int length = index.getTypes().length; fields = new String[length]; for (int i = 0; i < length; i++) { fields[i] = "k" + i; } } queryParser = new MultiFieldQueryParser(version, fields, analyzer); } return queryParser.parse(key); }
buffer.append(indexDefinition.getTypes()[i]); buffer.append(")");
final OType idxFieldType = index.getDefinition().getTypes()[0]; joinValue = OType.convert(joinValue, idxFieldType.getDefaultJavaType()); result = index.get(joinValue);
final OType idxFieldType = index.getDefinition().getTypes()[0]; joinValue = OType.convert(joinValue, idxFieldType.getDefaultJavaType()); result = index.get(joinValue);
final OType[] keyTypes = indexDefinition != null ? indexDefinition.getTypes() : null; final boolean nullValuesSupport = indexDefinition != null && !indexDefinition.isNullValuesIgnored(); final byte serializerId;
final OType[] keyTypes = indexDefinition != null ? indexDefinition.getTypes() : null; final boolean nullValuesSupport = indexDefinition != null && !indexDefinition.isNullValuesIgnored();
final OBaseIndexEngine engine = indexFactory .createIndexEngine(index.getAlgorithm(), index.getName(), false, storage, 0, 1, indexDefinition.getTypes().length > 1, null);
if (index.getDefinition().getParamCount() == 1) { final OType type = index.getDefinition().getTypes()[0]; keyValue = OType.convert(keyValue, type.getDefaultJavaType());