package com.intellij.tasks.jira.jql.psi.impl; import com.intellij.lang.ASTNode; import com.intellij.tasks.jira.jql.JqlTokenTypes; import com.intellij.tasks.jira.jql.psi.JqlElementVisitor; import com.intellij.tasks.jira.jql.psi.JqlOperand; import com.intellij.tasks.jira.jql.psi.JqlWasClause; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; /** * @author Mikhail Golubev */ public class JqlWasClauseImpl extends JqlClauseWithHistoryPredicatesImpl implements JqlWasClause { public JqlWasClauseImpl(@NotNull ASTNode node) { super(node); } @Override public void accept(JqlElementVisitor visitor) { visitor.visitJqlWasClause(this); } /** * Operand can be missing in malformed query. */ @Nullable @Override public JqlOperand getOperand() { return findChildByClass(JqlOperand.class); } @NotNull @Override public Type getType() { boolean hasNot = getNode().findChildByType(JqlTokenTypes.NOT_KEYWORD) != null; boolean hasIn = getNode().findChildByType(JqlTokenTypes.IN_KEYWORD) != null; if (hasIn && hasNot) { return Type.WAS_NOT_IN; } else if (hasIn) { return Type.WAS_IN; } else if (hasNot) { return Type.WAS_NOT; } else { return Type.WAS; } } }