} else {
throw new IllegalArgumentException("Invalid part: " + o.getClass().getName());
}
}
} else if (pConstraint instanceof BooleanConstraint) {
BooleanConstraint source = (BooleanConstraint) pConstraint;
BooleanConstraint target;
BooleanConstraint.Type sourceType = source.getType();
if (BooleanConstraint.Type.EQ.equals(sourceType)) {
target = createEQ();
} else if (BooleanConstraint.Type.NE.equals(sourceType)) {
target = createNE();
} else if (BooleanConstraint.Type.GT.equals(sourceType)) {
target = createGT();
} else if (BooleanConstraint.Type.LT.equals(sourceType)) {
target = createLT();
} else if (BooleanConstraint.Type.GE.equals(sourceType)) {
target = createGE();
} else if (BooleanConstraint.Type.LE.equals(sourceType)) {
target = createLE();
} else if (BooleanConstraint.Type.LIKE.equals(sourceType)) {
target = createLIKE();
} else if (BooleanConstraint.Type.ISNULL.equals(sourceType)) {
target = createISNULL();
} else if (BooleanConstraint.Type.IN.equals(sourceType)) {
target = createIN();
} else {
throw new IllegalArgumentException("Invalid boolean constraint type: " + sourceType);
}
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 {