private static boolean structTypeContainsLastFieldNameComponent(StructDataType structType, StringTokenizer fieldNames) { return structType.getField(fieldNames.nextToken()) != null && !fieldNames.hasMoreTokens(); } }
private static boolean changedType(StructDataType currentType, StructDataType nextType) { for (Field currentField : currentType.getFields()) { Field nextField = nextType.getField(currentField.getName()); if (nextField != null) { if (areStructFields(currentField, nextField)) { if (changedType((StructDataType) currentField.getDataType(), (StructDataType) nextField.getDataType())) { return true; } } else { if (!currentField.getDataType().equals(nextField.getDataType())) { return true; } } } } return false; }
@Override public Field getField(String name) { Field field = header.getField(name); if (field == null) { field = body.getField(name); } if (field == null) { for (NewDocumentType inheritedType : inherits.values()) { field = inheritedType.getField(name); if (field != null) { return field; } } } return field; }
@Override public Field getField(Integer fieldId, int version) { Field f = super.getField(fieldId, version); if (f == null && superType != null) { f = superType.getField(fieldId, version); } return f; }
@Override public Field getField(int id) { Field f = super.getField(id); if (f == null && superType != null) { f = superType.getField(id); } return f; }
@Override public Field getField(String fieldName) { Field f = super.getField(fieldName); if (f == null && superType != null) { f = superType.getField(fieldName); } return f; }
@Override public Field getField(int id) { Field field = headerType.getField(id); if (field == null) { field = bodyType.getField(id); } if (field == null && !isRegistered()) { for (DocumentType inheritedType : inherits) { field = inheritedType.getField(id); if (field != null) break; } } return field; }
@Override public Field getField(String fieldName) { return getDataType().getField(fieldName); }
public Field getKey() { return getDataType().getField(id); }
/** * Gets the field matching a given name. * * @param name The name of a field. * @return Returns the matching field, or null if not found. */ public Field getField(String name) { Field field = headerType.getField(name); if (field == null) { field = bodyType.getField(name); } if (field == null && !isRegistered()) { for (DocumentType inheritedType : inherits) { field = inheritedType.getField(name); if (field != null) break; } } return field; }
/** * Gets the field matching a given ID. * * @param id The ID of a field. * @param version The serialization version of the document. * @return Returns the matching field, or null if not found. */ public Field getField(Integer id, int version) { Field field = headerType.getField(id, version); if (field == null) { field = bodyType.getField(id, version); } if (field == null && !isRegistered()) { for (DocumentType inheritedType : inherits) { field = inheritedType.getField(id, version); if (field != null) break; } } return field; }
@Override public String toString() { StringBuilder retVal = new StringBuilder(); retVal.append("Struct (").append(getDataType()).append("): "); int [] increasing = getInOrder(); for (int i = 0; i < increasing.length; i++) { int id = increasing[i]; retVal.append(getDataType().getField(id)).append("=").append(values.get(id)).append(", "); } return retVal.toString(); }
@Override protected void doSetFieldValue(Field field, FieldValue value) { if (field == null) { throw new IllegalArgumentException("Invalid null field pointer"); } Field myField = getDataType().getField(field.getId()); if (myField==null) { throw new IllegalArgumentException("No such field in "+getDataType()+" : "+field.getName()); } if (!myField .getDataType().isValueCompatible(value)) { throw new IllegalArgumentException( "Incompatible data types. Got " + value.getDataType() + ", expected " + myField.getDataType()); } if (myField.getId() != field.getId()) { throw new IllegalArgumentException( "Inconsistent field: " + field); } int index = values.getIndexOfKey(field.getId()); if (index == -1) { values.put(field.getId(), value); invalidateOrder(); } else { values.setValue(index, value); } }
StructDataType type = s.getDataType(); for (int i=0; i<numberOfFields; ++i) { Field structField = type.getField(fieldIdsAndLengths.get(i).first, version); if (structField == null) {
StructDataType type = s.getDataType(); for (int i=0; i<numberOfFields; ++i) { Field structField = type.getField(fieldIdsAndLengths.get(i).first, version); if (structField == null) {