📄 compositequerycreator.java
字号:
package queries;
import java.util.Deque;
public class CompositeQueryCreator extends QueryCreator {
private Deque<Query> operandStack;
private volatile static CompositeQueryCreator uniqueInstance;
private CompositeQueryCreator(Deque<Query> operandStack){
this.operandStack = operandStack;
}
@Override
public Query buildQuery(String expression) {
Query result = null;
if(expression.equals("and")){
Query right = operandStack.pop();
Query left = operandStack.pop();
result = new AndQuery(left,right);
}
else if(expression.equals("or")){
Query right = operandStack.pop();
Query left = operandStack.pop();
result = new OrQuery(left,right);
}
else if(expression.equals("not")){
Query query = operandStack.pop();
result = new NotQuery(query);
}
return result;
}
public static CompositeQueryCreator getInstance(Deque<Query> operandStack){
if(uniqueInstance == null){
synchronized(CompositeQueryCreator.class){
if(uniqueInstance == null){
uniqueInstance = new CompositeQueryCreator(operandStack);
}
}
}
return uniqueInstance;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -