for (Iterator iter = source.getParts(); iter.hasNext(); ) {
Object o = iter.next();
if (o instanceof Value) {
target.addPart((Value) o);
} else if (o instanceof ColumnReference) {
ColumnReference colRef = (ColumnReference) o;
TableReference tableRef = (TableReference) pMap.get(colRef.getTableReference());
if (tableRef == null) {
throw new IllegalStateException("Unknown reference to table " + colRef.getTableReference().getTable().getQName());
}
target.addPart(tableRef.newColumnReference(colRef.getColumn()));
} else {
throw new IllegalStateException("Unknown part type: " + o.getClass().getName());
}
}
} else {