@Override public int getChildRole(ASTNode child) { LOG.assertTrue(child.getTreeParent() == this); if (ElementType.EXPRESSION_BIT_SET.contains(child.getElementType())) { if (child == getFirstChildNode()) return ChildRole.LOPERAND; if (child == getLastChildNode()) return ChildRole.ROPERAND; return ChildRoleBase.NONE; } if (OUR_OPERATIONS_BIT_SET.contains(child.getElementType())) { return ChildRole.OPERATION_SIGN; } return ChildRoleBase.NONE; }
@Override public int getChildRole(ASTNode child) { LOG.assertTrue(child.getTreeParent() == this); IElementType i = child.getElementType(); if (i == JavaElementType.EXPRESSION_LIST) { return ChildRole.ARGUMENT_LIST; } else { if (ElementType.EXPRESSION_BIT_SET.contains(child.getElementType())) { return ChildRole.METHOD_EXPRESSION; } return ChildRoleBase.NONE; } }
@Override public ASTNode findChildByRole(int role) { LOG.assertTrue(ChildRole.isUnique(role)); switch (role) { default: return null; case ChildRole.LOPERAND: return getFirstChildNode(); case ChildRole.ROPERAND: return ElementType.EXPRESSION_BIT_SET.contains(getLastChildNode().getElementType()) ? getLastChildNode() : null; case ChildRole.OPERATION_SIGN: return findChildByType(OUR_OPERATIONS_BIT_SET); } }