private void appendTextEntriesFlat(final IIOMetadataNode node, final Directory directory, final FilterIterator.Filter<Entry> filter) { FilterIterator<Entry> entries = new FilterIterator<>(directory.iterator(), filter); while (entries.hasNext()) { Entry entry = entries.next(); if (entry.getValue() instanceof Directory) { appendTextEntriesFlat(node, (Directory) entry.getValue(), filter); } else if (entry.getValue() instanceof String) { IIOMetadataNode tag = new IIOMetadataNode("TextEntry"); String fieldName = entry.getFieldName(); if (fieldName != null) { tag.setAttribute("keyword", fieldName); } else { // NOTE: This should never happen, as we filter out only specific nodes tag.setAttribute("keyword", String.format("%s", entry.getIdentifier())); } tag.setAttribute("value", entry.getValueAsString()); node.appendChild(tag); } } }
Predicate eq = new EqualPredicate(new Object(ID)); FilterIterator filter = new FilterIterator(set.iterator(), eq); Object o = (Object) filter.next();
private void appendTextEntriesFlat(final IIOMetadataNode node, final Directory directory, final FilterIterator.Filter<Entry> filter) { FilterIterator<Entry> entries = new FilterIterator<>(directory.iterator(), filter); while (entries.hasNext()) { Entry entry = entries.next(); if (entry.getValue() instanceof Directory) { appendTextEntriesFlat(node, (Directory) entry.getValue(), filter); } else if (entry.getValue() instanceof String) { IIOMetadataNode tag = new IIOMetadataNode("TextEntry"); String fieldName = entry.getFieldName(); if (fieldName != null) { tag.setAttribute("keyword", fieldName); } else { // NOTE: This should never happen, as we filter out only specific nodes tag.setAttribute("keyword", String.format("%s", entry.getIdentifier())); } tag.setAttribute("value", entry.getValueAsString()); node.appendChild(tag); } } }