return ((Mapping) parent).getObjectMap().getTable();
final Table[] result = { null }; ((Mapping) parent).dispatch(new Mapping.Switch() { public void onValue(Value v) { result[0] = v.getColumn().getTable(); } public void onStatic(Static s) { result[0] = s.getObjectMap().getTable(); } public void onNested(Nested n) { result[0] = n.getObjectMap().getTable(); } public void onJoinTo(JoinTo j) { result[0] = j.getKey().getUniqueKey().getTable(); } public void onJoinFrom(JoinFrom j) { result[0] = j.getKey().getTable(); } public void onJoinThrough(JoinThrough j) { throw new Error("i dunno"); } public void onQualias(Qualias q) { throw new IllegalStateException(); } }); return result[0];
    public Table getTable() {        Object parent = getParent();        if (m_table == null && parent instanceof Mapping) {            return ((Mapping) parent).getObjectMap().getTable();        } else {            return m_table;        }    }