private void saveGizmos(Board board) { int x, y; for (IGizmo gizmo : board.getGizmos()) { switch (gizmo.getType()) { case CircleBumper: saveGizmo(gizmo, "Circle"); break; case SquareBumper: saveGizmo(gizmo, "Square"); break; case TriangleBumper: saveGizmo(gizmo, "Triangle"); break; case Flipper: Class<? extends IGizmo> cls = gizmo.getClass(); if (cls.equals(LeftFlipper.class)) { saveGizmo(gizmo, "LeftFlipper"); } else if (cls.equals(RightFlipper.class)) { saveGizmo(gizmo, "RightFlipper"); } break; case Absorber: x = gizmo.getX(); y = gizmo.getY(); fileOutput.format( ABSORBER_FORMAT, giveName(gizmo, "Absorber"), x, y, x + gizmo.getWidth(), y + gizmo.getHeight()); break; case AcceleratorGizmo: saveGizmo(gizmo, "Accelerator"); break; case GateGizmo: saveGizmo(gizmo, "Gate"); break; case SpinnerGizmo: saveGizmo(gizmo, "Spinner"); break; case MultiballGizmo: saveGizmo(gizmo, "Multiball"); break; case PortalGizmo: saveGizmo(gizmo, "Portal"); break; default: throw new IllegalStateException( String.format("Unknown gizmo type '%s'.", gizmo.getType())); } } }