public VariableLengthByteIndexFieldDefinition addVariableLengthByteField(String name, int fixedPrefixLength) { validateName(name); final VariableLengthByteIndexFieldDefinition definition = new VariableLengthByteIndexFieldDefinition(name, fixedPrefixLength); add(definition); return definition; }
public VariableLengthByteIndexFieldDefinition addVariableLengthByteField(String name) { validateName(name); final VariableLengthByteIndexFieldDefinition definition = new VariableLengthByteIndexFieldDefinition(name); add(definition); return definition; }
public StringIndexFieldDefinition addStringField(String name) { validateName(name); StringIndexFieldDefinition definition = new StringIndexFieldDefinition(name); add(definition); return definition; }
public IntegerIndexFieldDefinition addIntegerField(String name) { validateName(name); IntegerIndexFieldDefinition definition = new IntegerIndexFieldDefinition(name); add(definition); return definition; }
public FloatIndexFieldDefinition addFloatField(String name) { validateName(name); FloatIndexFieldDefinition definition = new FloatIndexFieldDefinition(name); add(definition); return definition; }
public LongIndexFieldDefinition addLongField(String name) { validateName(name); LongIndexFieldDefinition definition = new LongIndexFieldDefinition(name); add(definition); return definition; }
public DecimalIndexFieldDefinition addDecimalField(String name) { validateName(name); DecimalIndexFieldDefinition definition = new DecimalIndexFieldDefinition(name); add(definition); return definition; }
public ByteIndexFieldDefinition addByteField(String name, int lengthInBytes) { validateName(name); ByteIndexFieldDefinition definition = new ByteIndexFieldDefinition(name, lengthInBytes); add(definition); return definition; }
public IndexDefinition(String name, ObjectNode jsonObject) { this.name = name; if (jsonObject.get("identifierOrder") != null) { setIdentifierOrder(Order.valueOf(jsonObject.get("identifierOrder").getTextValue())); } else { setIdentifierOrder(Order.ASCENDING); } try { ObjectNode fields = (ObjectNode) jsonObject.get("fields"); Iterator<Map.Entry<String, JsonNode>> fieldsIt = fields.getFields(); while (fieldsIt.hasNext()) { Map.Entry<String, JsonNode> entry = fieldsIt.next(); String className = entry.getValue().get("class").getTextValue(); Class<IndexFieldDefinition> clazz = (Class<IndexFieldDefinition>) getClass().getClassLoader().loadClass(className); Constructor<IndexFieldDefinition> constructor = clazz.getConstructor(String.class, ObjectNode.class); IndexFieldDefinition field = constructor.newInstance(entry.getKey(), entry.getValue()); add(field); } } catch (Exception e) { throw new RuntimeException("Error instantiating IndexDefinition.", e); } }