package net.sourceforge.mayfly.evaluation; import net.sourceforge.mayfly.MayflyException; import net.sourceforge.mayfly.datastore.Column; import net.sourceforge.mayfly.parser.Location; import net.sourceforge.mayfly.util.CaseInsensitiveString; public class NoColumn extends MayflyException { private final String displayName; public NoColumn(String name, Location location) { super("no column " + name, location); this.displayName = name; } public NoColumn(String tableOrAlias, String columnName, Location location) { this( Column.displayName(tableOrAlias, columnName), location); } public NoColumn(String columnName) { this(columnName, Location.UNKNOWN); } private NoColumn(String message, Location location, boolean isDummy) { super(message, location); displayName = null; } public NoColumn(CaseInsensitiveString column) { this(column.getString()); } public static NoColumn dummyExceptionForSubselect(Location location) { return new NoColumn( "The query optimizer shouldn't try to move subselects", location, true); } public String displayName() { return displayName; } }