private void debugMethod(ExecutableElement method) { logger.finest(format(" method: simpleName=%s, asType=%s, varargs=%s, returnType=%s, enclosingElement=%s, params=%s, typeParams=%s", method.getSimpleName(), method.asType(), method.isVarArgs(), method.getReturnType(), method.getEnclosingElement(), method.getParameters(), method.getTypeParameters())); for (VariableElement variable : method.getParameters()) { logger.finest(format(" variable: name=%s, annotationMirrors=%s, @Option=%s, @Parameters=%s", variable.getSimpleName(), variable.getAnnotationMirrors(), variable.getAnnotation( Option.class), variable.getAnnotation(Parameters.class))); } }
private TypedMember(ExecutableElement method) { element = Assert.notNull(method, "method"); name = propertyName(method.getSimpleName().toString()); position = -1; List<? extends TypeMirror> parameterTypes = ((ExecutableType) method.asType()).getParameterTypes(); boolean isGetter = parameterTypes.isEmpty() && method.getReturnType().getKind() != TypeKind.VOID; boolean isSetter = !parameterTypes.isEmpty(); if (isSetter == isGetter) { throw new CommandLine.InitializationException("Invalid method, must be either getter or setter: " + method); } if (isGetter) { hasInitialValue = true; // TODO typeInfo = new CompileTimeTypeInfo(method.getReturnType()); //if (Proxy.isProxyClass(scope.getClass())) { // CommandLine.Model.PicocliInvocationHandler handler = (CommandLine.Model.PicocliInvocationHandler) Proxy.getInvocationHandler(scope); // CommandLine.Model.PicocliInvocationHandler.ProxyBinding binding = handler.new ProxyBinding(method); // getter = binding; setter = binding; // initializeInitialValue(method); //} else { // //throw new IllegalArgumentException("Getter method but not a proxy: " + scope + ": " + method); // CommandLine.Model.MethodBinding binding = new CommandLine.Model.MethodBinding(scope, method); // getter = binding; setter = binding; //} } else { hasInitialValue = false; typeInfo = new CompileTimeTypeInfo(parameterTypes.get(0)); //CommandLine.Model.MethodBinding binding = new CommandLine.Model.MethodBinding(scope, method); //getter = binding; setter = binding; } getter = new GetterSetterMetaData(element); setter = (GetterSetterMetaData) getter; }
protected static ExecutableType viewIn(TypeElement lookIn, ExecutableElement methodElement, State state) { // Do not use state.types.getDeclaredType, as we really want a // "prototypical" type, and not a raw type. // This is important when a proxy maps to a generic domain type: // state.types.getDeclaredType without typeArgs would return the raw type, // and asMemberOf would then return an ExecutableType using raw types too. // For instance, if a class Foo<T> contains a method whose return type is // List<String> (note it doesn't even make use of the T type parameter), // then if we were to use raw types, the returned type of the ExecutableType // would be the raw type java.util.List, and not List<String>. Using // asType(), we'd get the expected List<String> though; and for a List<T>, // we'd get a List<Object> (or whichever upper bound for the T type // parameter). try { return (ExecutableType) state.types.asMemberOf((DeclaredType) lookIn.asType(), methodElement); } catch (IllegalArgumentException e) { return (ExecutableType) methodElement.asType(); } }
|| state.types.isSubsignature(domainMethod, (ExecutableType) found.asType())) { found = domainMethodElement;
@Override public TypeMirror asType() { return parent.asType(); }
@Override public TypeMirror asType() { return executableElement.asType(); }
@Override public TypeMirror asType() { return executableElement.asType(); }
MemberSignature(ExecutableElement meth) { member = meth; name = meth.getSimpleName().toString(); signature = getSignature(meth.asType()); } }
private static boolean hasMethod(ProcessingEnvironment processingEnv, TypeElement typeElement, ExecutableElement method) { for (ExecutableElement elementMethod: ElementFilter.methodsIn(typeElement.getEnclosedElements())) { if (processingEnv.getTypeUtils().isSubsignature((ExecutableType)elementMethod.asType(), (ExecutableType)method.asType())) { return true; } } return false; }
/** * Validate the type of a property method. A property cannot have a * primitive type * @param propertyMethod * @return */ protected boolean validatePropertyType(ExecutableElement propertyMethod) { return !propertyMethod.asType().getKind().isPrimitive(); }
public Iterable<Object> getParameterTypes(ExecutableElement executableElement) { ExecutableType executableType = (ExecutableType)executableElement.asType(); List<Object> parameterTypes = new ArrayList<Object>(); for (TypeMirror parameterType : executableType.getParameterTypes()) { parameterTypes.add(parameterType); } return parameterTypes; }
@Override public TypeMirror asType() { return variableContext.resolveTypeVariables(executableElement.asType(), env); }
@Override public TypeMirror asType() { return variableContext.resolveTypeVariables(executableElement.asType(), env); }
public static Method create(ExecutableElement elt) { TypeElement typeElt = (TypeElement)elt.getEnclosingElement(); String name = elt.getSimpleName().toString(); Name fqn = Name.parse(typeElt.getQualifiedName().toString()); ArrayList<String> parameterTypes = new ArrayList<String>(); for (TypeMirror parameterType : ((ExecutableType)elt.asType()).getParameterTypes()) { parameterTypes.add(parameterType.toString()); } return new Method(fqn, name, parameterTypes); }
public static Method create(ExecutableElement elt) { TypeElement typeElt = (TypeElement)elt.getEnclosingElement(); String name = elt.getSimpleName().toString(); Name fqn = Name.parse(typeElt.getQualifiedName().toString()); ArrayList<String> parameterTypes = new ArrayList<String>(); for (TypeMirror parameterType : ((ExecutableType)elt.asType()).getParameterTypes()) { parameterTypes.add(parameterType.toString()); } return new Method(fqn, name, parameterTypes); }
@Override protected void processMethod(ExecutableElement method, WebMethod webMethod) { builder.log("WrapperGen - method: "+method); builder.log("method.getDeclaringType(): " + method.asType()); if (wrapped && soapStyle.equals(SOAPStyle.DOCUMENT)) { generateWrappers(method, webMethod); } generateExceptionBeans(method); }
@Override protected void processMethod(ExecutableElement method, WebMethod webMethod) { builder.log("WrapperGen - method: "+method); builder.log("method.getDeclaringType(): " + method.asType()); if (wrapped && soapStyle.equals(SOAPStyle.DOCUMENT)) { generateWrappers(method, webMethod); } generateExceptionBeans(method); }
@Override protected void processMethod(ExecutableElement method, WebMethod webMethod) { builder.log("WrapperGen - method: "+method); builder.log("method.getDeclaringType(): " + method.asType()); if (wrapped && soapStyle.equals(SOAPStyle.DOCUMENT)) { generateWrappers(method, webMethod); } generateExceptionBeans(method); }
MethodSymbol methSym = Util.findMethodDeclarationInType(context.types, (TypeSymbol) invocationElement.getTargetExpression().getTypeAsElement(), targetMethodName, (MethodType) invocationElement.getMethod().asType()); if (methSym != null && (Object.class.getName().equals(methSym.getEnclosingElement().toString())