@Override
 public void setOrientation(final int orientation) {
   final ConnectionDirection[] dirs = ConnectionDirection.values();
   checkArgument(orientation >= 0 && orientation < dirs.length, "orientation out of range");
   this.missingDir = dirs[orientation];
 }
 @Override
 public void nextOrientation() {
   missingDir = missingDir.next();
 }
 @Override
 public void prevOrientation() {
   missingDir = missingDir.prev();
 }
 @Override
 public int currentOrientation() {
   return missingDir.ordinal();
 }