javax.lang.model.element.ExecutableElement#getThrownTypes ( )源码实例Demo

下面列出了javax.lang.model.element.ExecutableElement#getThrownTypes ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: jdk8u60   文件: WebServiceWrapperGenerator.java
private boolean generateExceptionBeans(ExecutableElement method) {
    String beanPackage = packageName + PD_JAXWS_PACKAGE_PD.getValue();
    if (packageName.length() == 0)
        beanPackage = JAXWS_PACKAGE_PD.getValue();
    boolean beanGenerated = false;
    for (TypeMirror thrownType : method.getThrownTypes()) {
        TypeElement typeDecl = (TypeElement) ((DeclaredType) thrownType).asElement();
        if (typeDecl == null) {
            builder.processError(WebserviceapMessages.WEBSERVICEAP_COULD_NOT_FIND_TYPEDECL(
                    thrownType.toString(), context.getRound()));
            return false;
        }
        boolean tmp = generateExceptionBean(typeDecl, beanPackage);
        beanGenerated = beanGenerated || tmp;
    }
    return beanGenerated;
}
 
源代码2 项目: TencentKona-8   文件: PubapiVisitor.java
/**
 * Creates a String representation of a method element with everything
 * necessary to track all public aspects of it in an API.
 * @param e Element to create String for.
 * @return String representation of element.
 */
protected String makeMethodString(ExecutableElement e) {
    StringBuilder result = new StringBuilder();
    for (Modifier modifier : e.getModifiers()) {
        result.append(modifier.toString());
        result.append(" ");
    }
    result.append(e.getReturnType().toString());
    result.append(" ");
    result.append(e.toString());

    List<? extends TypeMirror> thrownTypes = e.getThrownTypes();
    if (!thrownTypes.isEmpty()) {
        result.append(" throws ");
        for (Iterator<? extends TypeMirror> iterator = thrownTypes
                .iterator(); iterator.hasNext();) {
            TypeMirror typeMirror = iterator.next();
            result.append(typeMirror.toString());
            if (iterator.hasNext()) {
                result.append(", ");
            }
        }
    }
    return result.toString();
}
 
源代码3 项目: openjdk-jdk9   文件: WebServiceWrapperGenerator.java
private boolean generateExceptionBeans(ExecutableElement method) {
    String beanPackage = packageName + PD_JAXWS_PACKAGE_PD.getValue();
    if (packageName.length() == 0)
        beanPackage = JAXWS_PACKAGE_PD.getValue();
    boolean beanGenerated = false;
    for (TypeMirror thrownType : method.getThrownTypes()) {
        TypeElement typeDecl = (TypeElement) ((DeclaredType) thrownType).asElement();
        if (typeDecl == null) {
            builder.processError(WebserviceapMessages.WEBSERVICEAP_COULD_NOT_FIND_TYPEDECL(
                    thrownType.toString(), context.getRound()));
            return false;
        }
        boolean tmp = generateExceptionBean(typeDecl, beanPackage);
        beanGenerated = beanGenerated || tmp;
    }
    return beanGenerated;
}
 
源代码4 项目: Intimate   文件: IntimateProcesser.java
private void processMethod(RoundEnvironment roundEnv) {
    for (Element element : roundEnv.getElementsAnnotatedWith(Method.class)) {
        RefTargetModel targetModel = getTargetModel(element);
        if (targetModel == null) {
            continue;
        }
        ExecutableElement executableElement = (ExecutableElement) element;
        Method method = executableElement.getAnnotation(Method.class);

        List<CName> parameterTypes = getParameterTypes(executableElement);
        String name = method.value();
        if ("".equals(name)) {
            name = executableElement.getSimpleName().toString();
        }

        RefMethodModel methodModel = new RefMethodModel(name,
                executableElement.getReturnType(),
                parameterTypes,
                executableElement.getThrownTypes());
        targetModel.addMethod(methodModel);
    }
}
 
源代码5 项目: Intimate   文件: IntimateProcesser.java
private void processGetField(RoundEnvironment roundEnv) {
    for (Element element : roundEnv.getElementsAnnotatedWith(GetField.class)) {
        RefTargetModel targetModel = getTargetModel(element);
        if (targetModel == null) {
            continue;
        }
        ExecutableElement executableElement = (ExecutableElement) element;
        GetField field = executableElement.getAnnotation(GetField.class);
        List<CName> parameterTypes = getParameterTypes(executableElement);
        if (parameterTypes.size() > 0) {
            Throw.error("@GetField Don't need parameter.  method:"
                    + executableElement.getSimpleName().toString());
        }

        RefFieldModel fieldModel = new RefFieldModel(field.value(),
                executableElement.getSimpleName().toString(),
                new CName(executableElement.getReturnType()),
                false,
                executableElement.getReturnType(),
                executableElement.getThrownTypes());
        targetModel.addField(fieldModel);
    }

}
 
源代码6 项目: openjdk-8-source   文件: PubapiVisitor.java
/**
 * Creates a String representation of a method element with everything
 * necessary to track all public aspects of it in an API.
 * @param e Element to create String for.
 * @return String representation of element.
 */
protected String makeMethodString(ExecutableElement e) {
    StringBuilder result = new StringBuilder();
    for (Modifier modifier : e.getModifiers()) {
        result.append(modifier.toString());
        result.append(" ");
    }
    result.append(e.getReturnType().toString());
    result.append(" ");
    result.append(e.toString());

    List<? extends TypeMirror> thrownTypes = e.getThrownTypes();
    if (!thrownTypes.isEmpty()) {
        result.append(" throws ");
        for (Iterator<? extends TypeMirror> iterator = thrownTypes
                .iterator(); iterator.hasNext();) {
            TypeMirror typeMirror = iterator.next();
            result.append(typeMirror.toString());
            if (iterator.hasNext()) {
                result.append(", ");
            }
        }
    }
    return result.toString();
}
 
private boolean generateExceptionBeans(ExecutableElement method) {
    String beanPackage = packageName + PD_JAXWS_PACKAGE_PD.getValue();
    if (packageName.length() == 0)
        beanPackage = JAXWS_PACKAGE_PD.getValue();
    boolean beanGenerated = false;
    for (TypeMirror thrownType : method.getThrownTypes()) {
        TypeElement typeDecl = (TypeElement) ((DeclaredType) thrownType).asElement();
        if (typeDecl == null) {
            builder.processError(WebserviceapMessages.WEBSERVICEAP_COULD_NOT_FIND_TYPEDECL(
                    thrownType.toString(), context.getRound()));
            return false;
        }
        boolean tmp = generateExceptionBean(typeDecl, beanPackage);
        beanGenerated = beanGenerated || tmp;
    }
    return beanGenerated;
}
 
private boolean generateExceptionBeans(ExecutableElement method) {
    String beanPackage = packageName + PD_JAXWS_PACKAGE_PD.getValue();
    if (packageName.length() == 0)
        beanPackage = JAXWS_PACKAGE_PD.getValue();
    boolean beanGenerated = false;
    for (TypeMirror thrownType : method.getThrownTypes()) {
        TypeElement typeDecl = (TypeElement) ((DeclaredType) thrownType).asElement();
        if (typeDecl == null) {
            builder.processError(WebserviceapMessages.WEBSERVICEAP_COULD_NOT_FIND_TYPEDECL(
                    thrownType.toString(), context.getRound()));
            return false;
        }
        boolean tmp = generateExceptionBean(typeDecl, beanPackage);
        beanGenerated = beanGenerated || tmp;
    }
    return beanGenerated;
}
 
源代码9 项目: hottub   文件: PubapiVisitor.java
/**
 * Creates a String representation of a method element with everything
 * necessary to track all public aspects of it in an API.
 * @param e Element to create String for.
 * @return String representation of element.
 */
protected String makeMethodString(ExecutableElement e) {
    StringBuilder result = new StringBuilder();
    for (Modifier modifier : e.getModifiers()) {
        result.append(modifier.toString());
        result.append(" ");
    }
    result.append(e.getReturnType().toString());
    result.append(" ");
    result.append(e.toString());

    List<? extends TypeMirror> thrownTypes = e.getThrownTypes();
    if (!thrownTypes.isEmpty()) {
        result.append(" throws ");
        for (Iterator<? extends TypeMirror> iterator = thrownTypes
                .iterator(); iterator.hasNext();) {
            TypeMirror typeMirror = iterator.next();
            result.append(typeMirror.toString());
            if (iterator.hasNext()) {
                result.append(", ");
            }
        }
    }
    return result.toString();
}
 
源代码10 项目: j2objc   文件: SignatureGenerator.java
/**
 * MethodTypeSignature ::= [FormalTypeParameters]
 *         "(" {TypeSignature} ")" ReturnType {ThrowsSignature}.
 */
private void genMethodTypeSignature(ExecutableElement method, StringBuilder sb) {
  genOptFormalTypeParameters(method.getTypeParameters(), sb);
  sb.append('(');
  for (VariableElement param : method.getParameters()) {
    genTypeSignature(param.asType(), sb);
  }
  sb.append(')');
  genTypeSignature(method.getReturnType(), sb);
  List<? extends TypeMirror> thrownTypes = method.getThrownTypes();
  if (hasGenericSignature(thrownTypes)) {
    for (TypeMirror thrownType : thrownTypes) {
      sb.append('^');
      genTypeSignature(thrownType, sb);
    }
  }
}
 
源代码11 项目: jeddict   文件: JavaSourceParserUtil.java
public static List<String> getExceptionsThrown(WorkingCopy workingCopy, String fqClass, String methodName, List<String> formalParamFqTypes) {
    if (formalParamFqTypes == null) {
        formalParamFqTypes = Collections.<String>emptyList();
    }
    ExecutableElement desiredMethodElement = null;
    TypeElement suppliedTypeElement = workingCopy.getElements().getTypeElement(fqClass);
    TypeElement typeElement = suppliedTypeElement;
    whileloop:
    while (typeElement != null) {
        for (ExecutableElement methodElement : ElementFilter.methodsIn(typeElement.getEnclosedElements())) {
            if (methodElement.getSimpleName().contentEquals(methodName)) {
                List<? extends VariableElement> formalParamElements = methodElement.getParameters();
                //for now, just check sizes
                if (formalParamElements.size() == formalParamFqTypes.size()) {
                    desiredMethodElement = methodElement;
                    break whileloop;
                }
            }
        }
        typeElement = getSuperclassTypeElement(typeElement);
    }
    if (desiredMethodElement == null) {
        throw new IllegalArgumentException("Could not find " + methodName + " in " + fqClass);
    }
    List<String> result = new ArrayList<>();
    List<? extends TypeMirror> thrownTypes = desiredMethodElement.getThrownTypes();
    for (TypeMirror thrownType : thrownTypes) {
        if (thrownType.getKind() == TypeKind.DECLARED) {
            DeclaredType thrownDeclaredType = (DeclaredType) thrownType;
            TypeElement thrownElement = (TypeElement) thrownDeclaredType.asElement();
            String thrownFqClass = thrownElement.getQualifiedName().toString();
            result.add(thrownFqClass);
        } else {
            result.add(null);
        }
    }
    return result;
}
 
源代码12 项目: openjdk-jdk8u-backup   文件: WebServiceVisitor.java
protected boolean isValidOneWayMethod(ExecutableElement method, TypeElement typeElement) {
    boolean valid = true;
    if (!(method.getReturnType().accept(NO_TYPE_VISITOR, null))) {
        // this is an error, cannot be OneWay and have a return type
        builder.processError(WebserviceapMessages.WEBSERVICEAP_ONEWAY_OPERATION_CANNOT_HAVE_RETURN_TYPE(typeElement.getQualifiedName(), method.toString()), method);
        valid = false;
    }
    VariableElement outParam = getOutParameter(method);
    if (outParam != null) {
        builder.processError(WebserviceapMessages.WEBSERVICEAP_ONEWAY_AND_OUT(typeElement.getQualifiedName(), method.toString()), outParam);
        valid = false;
    }
    if (!isDocLitWrapped() && soapStyle.equals(SOAPStyle.DOCUMENT)) {
        int inCnt = getModeParameterCount(method, WebParam.Mode.IN);
        if (inCnt != 1) {
            builder.processError(WebserviceapMessages.WEBSERVICEAP_ONEWAY_AND_NOT_ONE_IN(typeElement.getQualifiedName(), method.toString()), method);
            valid = false;
        }
    }
    for (TypeMirror thrownType : method.getThrownTypes()) {
        TypeElement thrownElement = (TypeElement) ((DeclaredType) thrownType).asElement();
        if (builder.isServiceException(thrownType)) {
            builder.processError(WebserviceapMessages.WEBSERVICEAP_ONEWAY_OPERATION_CANNOT_DECLARE_EXCEPTIONS(
                    typeElement.getQualifiedName(), method.toString(), thrownElement.getQualifiedName()), method);
            valid = false;
        }
    }
    return valid;
}
 
源代码13 项目: jdk8u60   文件: WebServiceVisitor.java
protected boolean isValidOneWayMethod(ExecutableElement method, TypeElement typeElement) {
    boolean valid = true;
    if (!(method.getReturnType().accept(NO_TYPE_VISITOR, null))) {
        // this is an error, cannot be OneWay and have a return type
        builder.processError(WebserviceapMessages.WEBSERVICEAP_ONEWAY_OPERATION_CANNOT_HAVE_RETURN_TYPE(typeElement.getQualifiedName(), method.toString()), method);
        valid = false;
    }
    VariableElement outParam = getOutParameter(method);
    if (outParam != null) {
        builder.processError(WebserviceapMessages.WEBSERVICEAP_ONEWAY_AND_OUT(typeElement.getQualifiedName(), method.toString()), outParam);
        valid = false;
    }
    if (!isDocLitWrapped() && soapStyle.equals(SOAPStyle.DOCUMENT)) {
        int inCnt = getModeParameterCount(method, WebParam.Mode.IN);
        if (inCnt != 1) {
            builder.processError(WebserviceapMessages.WEBSERVICEAP_ONEWAY_AND_NOT_ONE_IN(typeElement.getQualifiedName(), method.toString()), method);
            valid = false;
        }
    }
    for (TypeMirror thrownType : method.getThrownTypes()) {
        TypeElement thrownElement = (TypeElement) ((DeclaredType) thrownType).asElement();
        if (builder.isServiceException(thrownType)) {
            builder.processError(WebserviceapMessages.WEBSERVICEAP_ONEWAY_OPERATION_CANNOT_DECLARE_EXCEPTIONS(
                    typeElement.getQualifiedName(), method.toString(), thrownElement.getQualifiedName()), method);
            valid = false;
        }
    }
    return valid;
}
 
源代码14 项目: sundrio   文件: ElementTo.java
public Method apply(ExecutableElement executableElement) {
    Map<AttributeKey, Object> attributes = new HashMap<>();
    if (executableElement.getDefaultValue() != null) {
       attributes.put(Attributeable.DEFAULT_VALUE, executableElement.getDefaultValue().getValue());
    }
    MethodBuilder methodBuilder = new MethodBuilder()
            .withModifiers(TypeUtils.modifiersToInt(executableElement.getModifiers()))
            .withName(executableElement.getSimpleName().toString())
            .withReturnType(MIRROR_TO_TYPEREF.apply(executableElement.getReturnType()))
            .withAttributes(attributes);



    //Populate constructor parameters
    for (VariableElement variableElement : executableElement.getParameters()) {
        methodBuilder = methodBuilder.addToArguments(PROPERTY.apply(variableElement));

        List<ClassRef> exceptionRefs = new ArrayList<ClassRef>();
        for (TypeMirror thrownType : executableElement.getThrownTypes()) {
            if (thrownType instanceof ClassRef) {
                exceptionRefs.add((ClassRef) thrownType);
            }
        }
        methodBuilder = methodBuilder.withExceptions(exceptionRefs);
    }

    List<ClassRef> annotationRefs = new ArrayList<ClassRef>();
    for (AnnotationMirror annotationMirror : executableElement.getAnnotationMirrors()) {
        methodBuilder.withAnnotations(ANNOTATION_REF.apply(annotationMirror));
    }
    return methodBuilder.build();
}
 
源代码15 项目: OkDeepLink   文件: MethodGenerator.java
void addExceptions(ExecutableElement annotatedMtd, MethodSpec.Builder builder) {
    List<? extends TypeMirror> exceptions = annotatedMtd.getThrownTypes();
    if (exceptions != null){
        for (TypeMirror exc : exceptions) {
            builder.addException(ClassName.get(exc));
        }
    }
}
 
源代码16 项目: JReFrameworker   文件: MethodSpec.java
/**
 * Returns a new method spec builder that overrides {@code method}.
 *
 * <p>This will copy its visibility modifiers, type parameters, return type, name, parameters, and
 * throws declarations. An {@link Override} annotation will be added.
 *
 * <p>Note that in JavaPoet 1.2 through 1.7 this method retained annotations from the method and
 * parameters of the overridden method. Since JavaPoet 1.8 annotations must be added separately.
 */
public static Builder overriding(ExecutableElement method) {
  checkNotNull(method, "method == null");

  Set<Modifier> modifiers = method.getModifiers();
  if (modifiers.contains(Modifier.PRIVATE)
      || modifiers.contains(Modifier.FINAL)
      || modifiers.contains(Modifier.STATIC)) {
    throw new IllegalArgumentException("cannot override method with modifiers: " + modifiers);
  }

  String methodName = method.getSimpleName().toString();
  MethodSpec.Builder methodBuilder = MethodSpec.methodBuilder(methodName);

  methodBuilder.addAnnotation(Override.class);

  modifiers = new LinkedHashSet<>(modifiers);
  modifiers.remove(Modifier.ABSTRACT);
  modifiers.remove(Util.DEFAULT); // LinkedHashSet permits null as element for Java 7
  methodBuilder.addModifiers(modifiers);

  for (TypeParameterElement typeParameterElement : method.getTypeParameters()) {
    TypeVariable var = (TypeVariable) typeParameterElement.asType();
    methodBuilder.addTypeVariable(TypeVariableName.get(var));
  }

  methodBuilder.returns(TypeName.get(method.getReturnType()));
  methodBuilder.addParameters(ParameterSpec.parametersOf(method));
  methodBuilder.varargs(method.isVarArgs());

  for (TypeMirror thrownType : method.getThrownTypes()) {
    methodBuilder.addException(TypeName.get(thrownType));
  }

  return methodBuilder;
}
 
源代码17 项目: j2objc   文件: DebugASTPrinter.java
@Override
public boolean visit(MethodDeclaration node) {
  sb.printIndent();
  printAnnotations(node.getAnnotations());
  printModifiers(node.getModifiers());
  ExecutableElement meth = node.getExecutableElement();
  printTypeParameters(meth.getTypeParameters());
  if (!node.isConstructor()) {
    sb.print(node.getReturnTypeMirror().toString());
    sb.print(' ');
  }
  sb.print(ElementUtil.getName(meth));
  sb.print("(");
  for (Iterator<SingleVariableDeclaration> it = node.getParameters().iterator(); it.hasNext(); ) {
    it.next().accept(this);
    if (it.hasNext()) {
      sb.print(',');
    }
  }
  sb.print(")");
  List<? extends TypeMirror> exceptions = meth.getThrownTypes();
  if (exceptions.size() > 0) {
    sb.print(" throws ");
    for (int i = 0; i < exceptions.size(); ) {
      sb.print(exceptions.get(i).toString());
      if (++i < exceptions.size()){
        sb.print(',');
      }
    }
    sb.print(' ');
  }
  printMethodBody(node);
  return false;
}
 
源代码18 项目: toothpick   文件: ToothpickProcessor.java
protected List<TypeElement> getExceptionTypes(ExecutableElement methodElement) {
  List<TypeElement> exceptionClassNames = new ArrayList<>();
  for (TypeMirror thrownTypeMirror : methodElement.getThrownTypes()) {
    DeclaredType thrownDeclaredType = (DeclaredType) thrownTypeMirror;
    TypeElement thrownType = (TypeElement) thrownDeclaredType.asElement();
    exceptionClassNames.add(thrownType);
  }

  return exceptionClassNames;
}
 
源代码19 项目: netbeans   文件: DependencyCollector.java
/**
 * Method adds dependencies on its return type, and parameter types
 */
@Override
public Object visitMethod(MethodTree node, Object p) {
    ExecutableElement e = (ExecutableElement) info.getTrees().getElement(getCurrentPath());
    addDependency(e.getReturnType());
    // parameters will be captured by visit(VariableTree).
    for (TypeMirror tm : e.getThrownTypes()) {
        addDependency(tm);
    }
    return super.visitMethod(node, p);
}
 
源代码20 项目: javapoet   文件: MethodSpec.java
/**
 * Returns a new method spec builder that overrides {@code method}.
 *
 * <p>This will copy its visibility modifiers, type parameters, return type, name, parameters, and
 * throws declarations. An {@link Override} annotation will be added.
 *
 * <p>Note that in JavaPoet 1.2 through 1.7 this method retained annotations from the method and
 * parameters of the overridden method. Since JavaPoet 1.8 annotations must be added separately.
 */
public static Builder overriding(ExecutableElement method) {
  checkNotNull(method, "method == null");

  Element enclosingClass = method.getEnclosingElement();
  if (enclosingClass.getModifiers().contains(Modifier.FINAL)) {
    throw new IllegalArgumentException("Cannot override method on final class " + enclosingClass);
  }

  Set<Modifier> modifiers = method.getModifiers();
  if (modifiers.contains(Modifier.PRIVATE)
      || modifiers.contains(Modifier.FINAL)
      || modifiers.contains(Modifier.STATIC)) {
    throw new IllegalArgumentException("cannot override method with modifiers: " + modifiers);
  }

  String methodName = method.getSimpleName().toString();
  MethodSpec.Builder methodBuilder = MethodSpec.methodBuilder(methodName);

  methodBuilder.addAnnotation(Override.class);

  modifiers = new LinkedHashSet<>(modifiers);
  modifiers.remove(Modifier.ABSTRACT);
  modifiers.remove(Modifier.DEFAULT);
  methodBuilder.addModifiers(modifiers);

  for (TypeParameterElement typeParameterElement : method.getTypeParameters()) {
    TypeVariable var = (TypeVariable) typeParameterElement.asType();
    methodBuilder.addTypeVariable(TypeVariableName.get(var));
  }

  methodBuilder.returns(TypeName.get(method.getReturnType()));
  methodBuilder.addParameters(ParameterSpec.parametersOf(method));
  methodBuilder.varargs(method.isVarArgs());

  for (TypeMirror thrownType : method.getThrownTypes()) {
    methodBuilder.addException(TypeName.get(thrownType));
  }

  return methodBuilder;
}