public void testFree() { final ColoredAlligator coloredAlligator = new ColoredAlligator(false, false, new Color(0), false); final Egg egg = new Egg(false, false, new Color(1), false); coloredAlligator.addChild(egg); assertTrue(Boundedness.isFree(egg)); assertFalse(Boundedness.isBound(egg)); }
/** {@inheritDoc} */ @Override public void visitEgg(Egg egg) { final Color eggColor = egg.getColor(); if (egg != family) { for (Parent parent : GetParentHierarchy.get(egg)) { // TODO find a way to remove instanceof if (parent instanceof ColoredAlligator) { final ColoredAlligator colored = (ColoredAlligator) parent; if (eggColor.equals(colored.getColor())) { return; } } if (parent == family) { break; } } } freeColors.add(eggColor); }
/** {@inheritDoc} */ @Override public void visitColoredAlligator(ColoredAlligator alligator) { alligator.acceptOnChildren(this); }