public boolean canCastFrom(SqlTypeName to, SqlTypeName from, boolean coerce) { assert (null != to); assert (null != from); Map<SqlTypeName, Set<SqlTypeName>> ruleset = coerce ? coerceRules : rules; if (to.equals(SqlTypeName.NULL)) { return false; } else if (from.equals(SqlTypeName.NULL)) { return true; } Set<SqlTypeName> rule = ruleset.get(to); if (null == rule) { // if you hit this assert, see the constructor of this class on how // to add new rule throw Util.newInternal("No assign rules for " + to + " defined"); } return rule.contains(from); }