@Override public CompositeRouteFinish validator(String key, JSONRequired required, DecimalValidator validator) { long fieldLookup = scs.registry.fieldLookup(key, structId); if (-1 == fieldLookup) { throw new UnsupportedOperationException("The field "+key+" was not found defined above"); } scs.registry.setValidator(fieldLookup, required, validator); return this; }
@Override public CompositeRouteFinish validator(String key, JSONRequired required, ByteSequenceValidator validator) { long fieldLookup = scs.registry.fieldLookup(key, structId); if (-1 == fieldLookup) { throw new UnsupportedOperationException("The field "+key+" was not found defined above"); } scs.registry.setValidator(fieldLookup, required, validator); return this; }
@Override public CompositeRouteFinish validator(String key, JSONRequired required, LongValidator validator) { long fieldLookup = scs.registry.fieldLookup(key, structId); if (-1 == fieldLookup) { throw new UnsupportedOperationException("The field "+key+" was not found defined above"); } scs.registry.setValidator(fieldLookup, required, validator); return this; }
public void setValidator(final long id, JSONRequired isRequired, Object validator) { assert( (null == validator || validator instanceof LongValidator || validator instanceof ByteSequenceValidator || validator instanceof DecimalValidator )) : "unsupported validator"; int structIdx = extractStructId(id); int fieldIdx = extractFieldPosition(id); assert(structIdx < fieldLocals.length); assert(fieldIdx < fieldLocals[structIdx].length); setValidator(isRequired, validator, structIdx, fieldIdx); }
public void setValidator(final long id, JSONRequired isRequired, Object validator) { assert( (null == validator || validator instanceof LongValidator || validator instanceof ByteSequenceValidator || validator instanceof DecimalValidator )) : "unsupported validator"; int structIdx = extractStructId(id); int fieldIdx = extractFieldPosition(id); assert(structIdx < fieldLocals.length); assert(fieldIdx < fieldLocals[structIdx].length); setValidator(isRequired, validator, structIdx, fieldIdx); }
@Override public CompositeRouteFinish refineText(String key, Object associatedObject, ByteSequenceValidator validator) { long fieldLookup = scs.registry.fieldLookup(key, structId); if (-1 == fieldLookup) { throw new UnsupportedOperationException("The field "+key+" was not found defined above"); } scs.registry.setAssociatedObject(fieldLookup, associatedObject); assert(fieldLookup == scs.registry.fieldLookupByIdentity(associatedObject, structId)); scs.registry.setValidator(fieldLookup, JSONRequired.REQUIRED, validator); return this; }
@Override public CompositeRouteFinish refineDecimal(String key, Object associatedObject, DecimalValidator validator) { long fieldLookup = scs.registry.fieldLookup(key, structId); if (-1 == fieldLookup) { throw new UnsupportedOperationException("The field "+key+" was not found defined above"); } scs.registry.setAssociatedObject(fieldLookup, associatedObject); assert(fieldLookup == scs.registry.fieldLookupByIdentity(associatedObject, structId)); scs.registry.setValidator(fieldLookup, JSONRequired.REQUIRED, validator); return this; }
@Override public CompositeRouteFinish refineInteger(String key, Object associatedObject, LongValidator validator) { long fieldLookup = scs.registry.fieldLookup(key, structId); if (-1 == fieldLookup) { throw new UnsupportedOperationException("The field "+key+" was not found defined above"); } scs.registry.setAssociatedObject(fieldLookup, associatedObject); assert(fieldLookup == scs.registry.fieldLookupByIdentity(associatedObject, structId)); scs.registry.setValidator(fieldLookup, JSONRequired.REQUIRED, validator); return this; }
@Override public CompositeRouteFinish refineInteger(String key, Object associatedObject, long defaultValue, LongValidator validator) { long fieldLookup = scs.registry.fieldLookup(key, structId); if (-1 == fieldLookup) { throw new UnsupportedOperationException("The field "+key+" was not found defined above"); } scs.registry.setAssociatedObject(fieldLookup, associatedObject); assert(fieldLookup == scs.registry.fieldLookupByIdentity(associatedObject, structId)); scs.registry.setValidator(fieldLookup, JSONRequired.REQUIRED, validator); defaultInteger(key, defaultValue); return this; }
@Override public CompositeRouteFinish refineText(String key, Object associatedObject, String defaultValue, ByteSequenceValidator validator) { long fieldLookup = scs.registry.fieldLookup(key, structId); if (-1 == fieldLookup) { throw new UnsupportedOperationException("The field "+key+" was not found defined above"); } scs.registry.setAssociatedObject(fieldLookup, associatedObject); assert(fieldLookup == scs.registry.fieldLookupByIdentity(associatedObject, structId)); scs.registry.setValidator(fieldLookup, JSONRequired.REQUIRED, validator); defaultText(key, defaultValue); return this; }
@Override public CompositeRouteFinish refineDecimal(String key, Object associatedObject, long defaultMantissa, byte defaultExponent, DecimalValidator validator) { long fieldLookup = scs.registry.fieldLookup(key, structId); if (-1 == fieldLookup) { throw new UnsupportedOperationException("The field "+key+" was not found defined above"); } scs.registry.setAssociatedObject(fieldLookup, associatedObject); assert(fieldLookup == scs.registry.fieldLookupByIdentity(associatedObject, structId)); scs.registry.setValidator(fieldLookup, JSONRequired.REQUIRED, validator); defaultDecimal(key, defaultMantissa, defaultExponent);//NOTE: we must always set the default AFTER the validator return this; }
public int[] addToStruct(StructRegistry struct, int structId) { int length = mappings.length; int[] jsonIndexLookup = new int[length]; int i = length; assert(i>0) : "Must not add an empty extraction"; while (--i>=0) { JSONFieldMapping mapping = mappings[i]; long fieldId = struct.growStruct(structId, mapTypes(mapping), mapping.dimensions(), mapping.getName().getBytes()); jsonIndexLookup[i] = StructRegistry.FIELD_MASK&(int)fieldId; Object assoc = mapping.getAssociatedObject(); if (null!=assoc) { if (!struct.setAssociatedObject(fieldId, assoc)) { throw new UnsupportedOperationException("An object with the same identity hash is already held, can not add "+assoc); } } struct.setValidator(fieldId, mapping.isRequired(), mapping.getValidator()); } return jsonIndexLookup; }
public int[] addToStruct(StructRegistry struct, int structId) { int length = mappings.length; int[] jsonIndexLookup = new int[length]; int i = length; assert(i>0) : "Must not add an empty extraction"; while (--i>=0) { JSONFieldMapping mapping = mappings[i]; long fieldId = struct.growStruct(structId, mapTypes(mapping), mapping.dimensions(), mapping.getName().getBytes()); jsonIndexLookup[i] = StructRegistry.FIELD_MASK&(int)fieldId; Object assoc = mapping.getAssociatedObject(); if (null!=assoc) { if (!struct.setAssociatedObject(fieldId, assoc)) { throw new UnsupportedOperationException("An object with the same identity hash is already held, can not add "+assoc); } } struct.setValidator(fieldId, mapping.isRequired(), mapping.getValidator()); } return jsonIndexLookup; }
while (--fieldId >= 0) { if (null!=fieldValidators[fieldId]) { setValidator(fieldRequired[fieldId], fieldValidators[fieldId], structIdx, fieldId);
while (--fieldId >= 0) { if (null!=fieldValidators[fieldId]) { setValidator(fieldRequired[fieldId], fieldValidators[fieldId], structIdx, fieldId);