package net.sourceforge.mayfly.datastore;
import net.sourceforge.mayfly.MayflyInternalException;
import net.sourceforge.mayfly.parser.Location;
public class Position {
public static final Position FIRST = new Position() {
@Override
public boolean isFirst() {
return true;
}
};
public static final Position LAST = new Position() {
@Override
public boolean isLast() {
return true;
}
};
public static Position after(String existingName) {
return after(existingName, Location.UNKNOWN);
}
public static Position after(final String existingName,
final Location location) {
return new Position() {
@Override
public boolean isAfter(String candidate) {
return existingName.equalsIgnoreCase(candidate);
}
@Override
public String afterWhat() {
return existingName;
}
@Override
public Location location() {
return location;
}
};
}
public boolean isFirst() {
return false;
}
public boolean isLast() {
return false;
}
public boolean isAfter(String existingName) {
return false;
}
public String afterWhat() {
throw new MayflyInternalException("shouldn't need what for first/last");
}
public Location location() {
return Location.UNKNOWN;
}
}