com.helger.commons.hierarchy.visit.DefaultHierarchyVisitorCallback Java Examples
The following examples show how to use
com.helger.commons.hierarchy.visit.DefaultHierarchyVisitorCallback.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: TreeWithIDSorter.java From ph-commons with Apache License 2.0 | 6 votes |
private static <KEYTYPE, DATATYPE, ITEMTYPE extends ITreeItemWithID <KEYTYPE, DATATYPE, ITEMTYPE>> void _sort (@Nonnull final IBasicTree <DATATYPE, ITEMTYPE> aTree, @Nonnull final Comparator <? super ITEMTYPE> aComparator) { ValueEnforcer.notNull (aTree, "Tree"); ValueEnforcer.notNull (aComparator, "Comparator"); // sort root manually aTree.getRootItem ().reorderChildrenByItems (aComparator); // and now start iterating TreeVisitor.visitTree (aTree, new DefaultHierarchyVisitorCallback <ITEMTYPE> () { @Override public EHierarchyVisitorReturn onItemBeforeChildren (@Nullable final ITEMTYPE aTreeItem) { if (aTreeItem != null) aTreeItem.reorderChildrenByItems (aComparator); return EHierarchyVisitorReturn.CONTINUE; } }); }
Example #2
Source File: TreeSorter.java From ph-commons with Apache License 2.0 | 6 votes |
private static <DATATYPE, ITEMTYPE extends ITreeItem <DATATYPE, ITEMTYPE>> void _sort (@Nonnull final IBasicTree <? extends DATATYPE, ITEMTYPE> aTree, @Nonnull final Comparator <? super ITEMTYPE> aComparator) { ValueEnforcer.notNull (aTree, "Tree"); ValueEnforcer.notNull (aComparator, "Comparator"); // and now start iterating (including the root item) ChildrenProviderHierarchyVisitor.visitFrom (aTree.getRootItem (), new DefaultHierarchyVisitorCallback <ITEMTYPE> () { @Override @Nonnull public EHierarchyVisitorReturn onItemBeforeChildren (@Nullable final ITEMTYPE aTreeItem) { if (aTreeItem != null) aTreeItem.reorderChildItems (aComparator); return EHierarchyVisitorReturn.CONTINUE; } }, true); }
Example #3
Source File: TreeWithIDSearcher.java From ph-commons with Apache License 2.0 | 6 votes |
/** * Fill all items with the same ID by linearly scanning the tree. * * @param <KEYTYPE> * tree ID type * @param <DATATYPE> * tree data type * @param <ITEMTYPE> * tree item type * @param aTreeItem * The tree item to search. May not be <code>null</code>. * @param aSearchID * The ID to search. May not be <code>null</code>. * @return A non-<code>null</code> list with all matching items. */ @Nonnull @ReturnsMutableCopy public static <KEYTYPE, DATATYPE, ITEMTYPE extends ITreeItemWithID <KEYTYPE, DATATYPE, ITEMTYPE>> ICommonsList <ITEMTYPE> findAllItemsWithIDRecursive (@Nonnull final ITEMTYPE aTreeItem, @Nullable final KEYTYPE aSearchID) { final ICommonsList <ITEMTYPE> aRetList = new CommonsArrayList <> (); TreeVisitor.visitTreeItem (aTreeItem, new DefaultHierarchyVisitorCallback <ITEMTYPE> () { @Override @Nonnull public EHierarchyVisitorReturn onItemBeforeChildren (@Nullable final ITEMTYPE aItem) { if (aItem != null && aItem.getID ().equals (aSearchID)) aRetList.add (aItem); return EHierarchyVisitorReturn.CONTINUE; } }); return aRetList; }
Example #4
Source File: TreeXMLConverter.java From ph-commons with Apache License 2.0 | 5 votes |
public static <KEYTYPE, DATATYPE, ITEMTYPE extends ITreeItemWithID <KEYTYPE, DATATYPE, ITEMTYPE>> void fillXMLAsTreeWithID (@Nonnull final IMicroElement aElement, @Nonnull final Function <? super String, ? extends KEYTYPE> aIDConverter, @Nonnull final IConverterMicroNodeToTreeItem <? extends DATATYPE> aDataConverter, @Nonnull final BasicTreeWithID <KEYTYPE, DATATYPE, ITEMTYPE> aTree) { final String sNamespaceURI = aDataConverter.getNamespaceURI (); final NonBlockingStack <ITEMTYPE> aParents = new NonBlockingStack <> (); aParents.push (aTree.getRootItem ()); MicroVisitor.visit (aElement, new ChildrenProviderElementWithName (sNamespaceURI, ELEMENT_ITEM), new DefaultHierarchyVisitorCallback <IMicroElement> () { @Override @Nonnull public EHierarchyVisitorReturn onItemBeforeChildren (@Nullable final IMicroElement eItem) { if (eItem != null) { final KEYTYPE aTreeItemID = aIDConverter.apply (eItem.getAttributeValue (ATTR_ID)); final IMicroElement eData = eItem.getFirstChildElement (sNamespaceURI, ELEMENT_DATA); final DATATYPE aTreeItemValue = aDataConverter.getAsDataValue (eData); final ITEMTYPE aTreeItem = aParents.peek ().createChildItem (aTreeItemID, aTreeItemValue); aParents.push (aTreeItem); } return EHierarchyVisitorReturn.CONTINUE; } @Override @Nonnull public EHierarchyVisitorReturn onItemAfterChildren (@Nullable final IMicroElement aItem) { if (aItem != null) aParents.pop (); return EHierarchyVisitorReturn.CONTINUE; } }); }