List of usage examples for com.google.common.collect BinaryTreeTraverser BinaryTreeTraverser
BinaryTreeTraverser
From source file:org.asoem.greyfish.core.space.WalledPointSpace.java
@Override @Nullable/*from www. j a va2 s . co m*/ public Point2D getProjection(final O object) { final BinaryTreeTraverser<TwoDimTree.Node<O>> traverser = new BinaryTreeTraverser<TwoDimTree.Node<O>>() { @Override public Optional<TwoDimTree.Node<O>> leftChild(final TwoDimTree.Node<O> root) { return root.leftChild(); } @Override public Optional<TwoDimTree.Node<O>> rightChild(final TwoDimTree.Node<O> root) { return root.rightChild(); } }; final TwoDimTree.Node<O> root = tree.get().rootNode().orNull(); if (root != null) { final Optional<TwoDimTree.Node<O>> node = traverser.postOrderTraversal(root) .firstMatch(new Predicate<TwoDimTree.Node<O>>() { @Override public boolean apply(final TwoDimTree.Node<O> input) { return object.equals(input.value()); } }); return node.isPresent() ? ImmutablePoint2D.at(node.get().xCoordinate(), node.get().yCoordinate()) : null; } else { return null; } }