public FieldValue getValue() { return values.get(id); }
@Override public FieldValue getFieldValue(Field field) { return values.get(field.getId()); }
@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 public FieldValue removeFieldValue(Field field) { FieldValue found = values.get(field.getId()); if (found != null) { Hashlet<Integer, FieldValue> copy = new Hashlet<>(); copy.reserve(values.size() - 1); for (int i=0; i < values.size(); i++) { if (values.key(i) != field.getId()) { copy.put(values.key(i), values.value(i)); } } values = copy; invalidateOrder(); } return found; }