@Override public StructDataType getDataType() { return (StructDataType)super.getDataType(); }
@Override public DocumentType getDataType() { return (DocumentType)super.getDataType(); }
private FieldValue convertStructured(StructuredFieldValue val) { StructuredFieldValue ret = val.getDataType().createFieldValue(); for (Iterator<Map.Entry<Field, FieldValue>> it = val.iterator(); it.hasNext();) { Map.Entry<Field, FieldValue> entry = it.next(); FieldValue prev = entry.getValue(); FieldValue next = convert(prev); if (next == null) { continue; } ret.setFieldValue(entry.getKey(), next); } return ret; }
private void setCorrectAnnotationReference(StructuredFieldValue struct, IdentityHashMap<Annotation, Integer> originalAnnotations, List<Annotation> newAnnotations) { for (Field f : struct.getDataType().getFields()) { setCorrectAnnotationReference(struct.getFieldValue(f), originalAnnotations, newAnnotations); } }
public static Field getField(TokenBuffer buffer, StructuredFieldValue parent) { Field f = parent.getField(buffer.currentName()); if (f == null) { throw new NullPointerException("Could not get field \"" + buffer.currentName() + "\" in the structure of type \"" + parent.getDataType().getDataTypeName() + "\"."); } return f; }
private boolean removeObsoleteReferencesFromStructuredType(StructuredFieldValue struct, Map<Annotation, Annotation> selectedAnnotations, boolean removeIfPresent) { for (Field f : struct.getDataType().getFields()) { FieldValue fValue = struct.getFieldValue(f); if (removeObsoleteReferencesFromFieldValue(fValue, selectedAnnotations, removeIfPresent)) { struct.removeFieldValue(f); } } return false; }
@Override protected void doExecute(ExecutionContext ctx) { FieldValue input = ctx.getValue(); if (!(input instanceof StructuredFieldValue)) { throw new IllegalArgumentException("Expected structured input, got " + input.getDataType().getName() + "."); } StructuredFieldValue struct = (StructuredFieldValue)input; Field field = struct.getField(fieldName); if (field == null) { throw new IllegalArgumentException("Field '" + fieldName + "' not found in struct type '" + struct.getDataType().getName() + "'"); } ctx.setValue(struct.getFieldValue(field)); }