blob: 39b50fbd0125a2f16a725c2d2af8f043a124d3f2 [file] [log] [blame]
package com.intellij.tasks.jira.jql.psi.impl;
import com.intellij.lang.ASTNode;
import com.intellij.psi.PsiElement;
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.JqlSimpleClause;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
/**
* @author Mikhail Golubev
*/
public class JqlSimpleClauseImpl extends JqlTerminalClauseImpl implements JqlSimpleClause {
public JqlSimpleClauseImpl(@NotNull ASTNode node) {
super(node);
}
@Override
public void accept(JqlElementVisitor visitor) {
visitor.visitJqlSimpleClause(this);
}
@NotNull
@Override
public Type getType() {
if (findChildByType(JqlTokenTypes.IN_KEYWORD) != null) {
return findChildByType(JqlTokenTypes.NOT_KEYWORD) != null ? Type.NOT_IN : Type.IN;
}
if (findChildByType(JqlTokenTypes.IS_KEYWORD) != null) {
return findChildByType(JqlTokenTypes.NOT_KEYWORD) != null ? Type.IS_NOT : Type.IS;
}
PsiElement opElem = findChildByType(JqlTokenTypes.SIGN_OPERATORS);
assert opElem != null;
Type type = Type.fromTokenType(opElem.getNode().getElementType());
assert type != null;
return type;
}
/**
* Operand can be missing in malformed query.
*/
@Nullable
@Override
public JqlOperand getOperand() {
return findChildByClass(JqlOperand.class);
}
}