package com.revolsys.geometry.model;
public final class EndAndSide {
public static final EndAndSide FROM = new EndAndSide(End.FROM, null);
public static final EndAndSide FROM_LEFT = new EndAndSide(End.FROM, Side.LEFT);
public static final EndAndSide FROM_RIGHT = new EndAndSide(End.FROM, Side.RIGHT);
public static final EndAndSide LEFT = new EndAndSide(null, Side.LEFT);
public static final EndAndSide NONE = new EndAndSide(null, null);
public static final EndAndSide RIGHT = new EndAndSide(null, Side.RIGHT);
public static final EndAndSide TO = new EndAndSide(End.FROM, null);
public static final EndAndSide TO_LEFT = new EndAndSide(End.TO, Side.LEFT);
public static final EndAndSide TO_RIGHT = new EndAndSide(End.TO, Side.RIGHT);
public static EndAndSide get(final End end, final Side side) {
if (End.isFrom(end)) {
if (Side.isLeft(side)) {
return FROM_LEFT;
} else if (Side.isRight(side)) {
return FROM_RIGHT;
} else {
return FROM;
}
} else if (End.isTo(end)) {
if (Side.isLeft(side)) {
return TO_LEFT;
} else if (Side.isRight(side)) {
return TO_RIGHT;
} else {
return FROM;
}
} else {
if (Side.isLeft(side)) {
return LEFT;
} else if (Side.isRight(side)) {
return RIGHT;
} else {
return NONE;
}
}
}
private final End end;
private final Side side;
private EndAndSide(final End end, final Side side) {
this.end = end;
this.side = side;
}
public End getEnd() {
return this.end;
}
public Side getSide() {
return this.side;
}
@Override
public String toString() {
return this.end + " " + this.side;
}
}