/**
* Alipay.com Inc.
* Copyright (c) 2004-2012 All Rights Reserved.
*/
package com.alipay.zdal.client.util.condition;
import com.alipay.zdal.common.sqljep.function.Comparative;
import com.alipay.zdal.common.sqljep.function.ComparativeAND;
import com.alipay.zdal.common.sqljep.function.ComparativeBaseList;
import com.alipay.zdal.common.sqljep.function.ComparativeOR;
/**
*
* @author ����
* @version $Id: AdvanceCondition.java, v 0.1 2014-1-6 ����05:15:57 Exp $
*/
public class AdvanceCondition extends SimpleCondition {
public static final int GT = Comparative.GreaterThan;
public static final int LT = Comparative.LessThan;
public static final int GTE = Comparative.GreaterThanOrEqual;
public static final int LTE = Comparative.LessThanOrEqual;
@Deprecated
public static ComparativeAND getAnd(ComparativeBaseList l, Comparative c) {
if (l != null && l instanceof ComparativeAND) {
l.addComparative(c);
return (ComparativeAND) l;
} else {
ComparativeAND a = new ComparativeAND();
a.addComparative(c);
return a;
}
}
public static Comparative or(Comparative parent, Comparative target) {
if (parent == null) {
ComparativeOR or = new ComparativeOR();
or.addComparative(target);
return or;
} else {
if (parent instanceof ComparativeOR) {
((ComparativeOR) parent).addComparative(target);
return parent;
} else {
ComparativeOR or = new ComparativeOR();
or.addComparative(parent);
or.addComparative(target);
return or;
}
}
}
public static Comparative and(Comparative parent, Comparative target) {
if (parent == null) {
ComparativeAND and = new ComparativeAND();
and.addComparative(target);
return and;
} else {
if (parent instanceof ComparativeAND) {
ComparativeAND and = ((ComparativeAND) parent);
if (and.getList().size() == 1) {
and.addComparative(target);
return and;
} else {
ComparativeAND andNew = new ComparativeAND();
andNew.addComparative(and);
andNew.addComparative(target);
return andNew;
}
} else {
ComparativeAND and = new ComparativeAND();
and.addComparative(parent);
and.addComparative(target);
return and;
}
}
}
@Deprecated
public static ComparativeOR getOr(ComparativeBaseList l, Comparative c) {
if (l != null && l instanceof ComparativeOR) {
l.addComparative(c);
return (ComparativeOR) l;
} else {
ComparativeOR a = new ComparativeOR();
a.addComparative(c);
return a;
}
}
}