private OCompositeKey convertToCompositeKey(Object key) { final OCompositeKey compositeKey = new OCompositeKey(); int paramsIndex = 0; for (int i = 0; i < indexDefinitions.size(); i++) { final OIndexDefinition indexDefinition = indexDefinitions.get(i); if (i != multiValueIndex) { compositeKey.addKey(indexDefinition.createValue(params[paramsIndex])); paramsIndex++; } else compositeKey.addKey(((OIndexDefinitionMultiValue) indexDefinition).createSingleValue(key)); } return compositeKey; } }
public OCompositeKey createSingleValue(final List<?> params) { final OCompositeKey compositeKey = new OCompositeKey(); int currentParamIndex = 0; for (final OIndexDefinition indexDefinition : indexDefinitions) { if (currentParamIndex + 1 > params.size()) break; final int endIndex; if (currentParamIndex + indexDefinition.getParamCount() > params.size()) endIndex = params.size(); else endIndex = currentParamIndex + indexDefinition.getParamCount(); final List<?> indexParams = params.subList(currentParamIndex, endIndex); currentParamIndex += indexDefinition.getParamCount(); final Object keyValue; if (indexDefinition instanceof OIndexDefinitionMultiValue) keyValue = ((OIndexDefinitionMultiValue) indexDefinition).createSingleValue(indexParams.toArray()); else keyValue = indexDefinition.createValue(indexParams); if (keyValue == null && isNullValuesIgnored()) return null; compositeKey.addKey(keyValue); } return compositeKey; }
private static Object getIndexKey(final OIndexDefinition indexDefinition, Object value, OCommandContext context) { if (indexDefinition instanceof OCompositeIndexDefinition || indexDefinition.getParamCount() > 1) { if (value instanceof List) { final List<?> values = (List<?>) value; List<Object> keyParams = new ArrayList<Object>(values.size()); for (Object o : values) { keyParams.add(OSQLHelper.getValue(o, null, context)); } return indexDefinition.createValue(keyParams); } else { value = OSQLHelper.getValue(value); if (value instanceof OCompositeKey) { return value; } else { return indexDefinition.createValue(value); } } } else { if (indexDefinition instanceof OIndexDefinitionMultiValue) return ((OIndexDefinitionMultiValue) indexDefinition).createSingleValue(OSQLHelper.getValue(value)); else return indexDefinition.createValue(OSQLHelper.getValue(value, null, context)); } }
final Object key; if (indexDefinition instanceof OIndexDefinitionMultiValue) key = ((OIndexDefinitionMultiValue) indexDefinition).createSingleValue(OSQLHelper.getValue(keyValue)); else key = indexDefinition.createValue(OSQLHelper.getValue(keyValue));
final Object key; if (indexDefinition instanceof OIndexDefinitionMultiValue) key = ((OIndexDefinitionMultiValue) indexDefinition).createSingleValue(keyParams.get(0)); else key = indexDefinition.createValue(keyParams);
final Object key; if (indexDefinition instanceof OIndexDefinitionMultiValue) key = ((OIndexDefinitionMultiValue) indexDefinition).createSingleValue(keyParams.get(0)); else key = indexDefinition.createValue(keyParams);
final Object key; if (indexDefinition instanceof OIndexDefinitionMultiValue) key = ((OIndexDefinitionMultiValue) indexDefinition).createSingleValue(keyParams.get(0)); else key = indexDefinition.createValue(keyParams);
final Object key; if (indexDefinition instanceof OIndexDefinitionMultiValue) key = ((OIndexDefinitionMultiValue) indexDefinition).createSingleValue(keyParams.get(0)); else key = indexDefinition.createValue(keyParams);
final Object key; if (indexDefinition instanceof OIndexDefinitionMultiValue) key = ((OIndexDefinitionMultiValue) indexDefinition).createSingleValue(keyParams.get(0)); else key = indexDefinition.createValue(keyParams);
final Object key; if (indexDefinition instanceof OIndexDefinitionMultiValue) key = ((OIndexDefinitionMultiValue) indexDefinition).createSingleValue(keyParams.get(0)); else key = indexDefinition.createValue(keyParams);
final Object key; if (indexDefinition instanceof OIndexDefinitionMultiValue) key = ((OIndexDefinitionMultiValue) indexDefinition).createSingleValue(keyParams.get(0)); else key = indexDefinition.createValue(keyParams);
return null; final Object key = ((OIndexDefinitionMultiValue) indexDefinition).createSingleValue(keyParams.get(0));
return null; final Object key = ((OIndexDefinitionMultiValue) indexDefinition).createSingleValue(keyParams.get(0));