public static JavacElementRefBase fromElement()

in javac-ast-extension/src/org/jetbrains/jps/javac/ast/api/JavacRef.java [257:280]


    public static JavacElementRefBase fromElement(@Nullable String containigClass, Element element, Element qualifier, JavacNameTable nameTableCache, @Nullable ImportProperties importProps) {
      if (qualifier != null) {
        TypeMirror type = qualifier.asType();
        if (!isValidType(type)) {
          return null;
        }
      }
      if (element instanceof TypeElement) {
        return new JavacElementClassImpl(element, qualifier, nameTableCache, importProps);
      }
      else if (element instanceof VariableElement) {
        if (qualifier == null && !checkEnclosingElement(element)) return null;
        return new JavacElementFieldImpl(containigClass, element, qualifier, nameTableCache, importProps);
      }
      else if (element instanceof ExecutableElement) {
        if (qualifier == null && !checkEnclosingElement(element)) return null;
        return new JavacElementMethodImpl(containigClass, element, qualifier, nameTableCache, importProps);
      }
      else if (element == null || element.getKind() == ElementKind.OTHER || element.getKind() == ElementKind.TYPE_PARAMETER) {
        // javac reserved symbol kind (e.g: com.sun.tools.javac.comp.Resolve.ResolveError)
        return null;
      }
      throw new AssertionError("unexpected element: " + element + " class: " + element.getClass());
    }