ASTNode (int role) { LOG.assertTrue(ChildRole.isUnique(role)); switch (role) { case ChildRole.REFERENCE_NAME: TreeElement lastChild = getLastChildNode(); return lastChild == null || getChildRole(lastChild) == role ? lastChild : findChildByType(JavaTokenType.IDENTIFIER); case ChildRole.QUALIFIER: TreeElement firstChild = getFirstChildNode(); return firstChild != null && getChildRole(firstChild) == ChildRole.QUALIFIER ? firstChild : null; case ChildRole.REFERENCE_PARAMETER_LIST: return findChildByType(JavaElementType.REFERENCE_PARAMETER_LIST); case ChildRole.DOT: return findChildByType(JavaTokenType.DOT); } return null; }