@Override public Collection<MetaClass> provideTypesToExpose() { final Set<MetaClass> types = new HashSet<MetaClass>(); for (final MetaClass metaClass : ClassScanner.getTypesAnnotatedWith(Remote.class)) { for (final MetaMethod method : metaClass.getDeclaredMethods()) { if (!method.getReturnType().isVoid()) { types.add(method.getReturnType().getErased()); } for (final MetaParameter parameter : method.getParameters()) { final MetaClass type = parameter.getType(); types.add(type.getErased()); final MetaParameterizedType parameterizedType = type.getParameterizedType(); if (parameterizedType != null) { for (final MetaType tp : parameterizedType.getTypeParameters()) { if (tp instanceof MetaClass) { types.add(((MetaClass) tp).getErased()); } } } } } } return types; } }
public static MetaClass[] asMetaClassArray(final MetaParameter[] parms) { final MetaClass[] type = new MetaClass[parms.length]; for (int i = 0; i < parms.length; i++) { type[i] = parms[i].getType(); } return type; }
public static Class<?>[] asClassArray(final MetaParameter[] parms) { final MetaType[] type = new MetaType[parms.length]; for (int i = 0; i < parms.length; i++) { type[i] = parms[i].getType(); } return asClassArray(type); }
public static String createCallSignature(final MetaMethod m) { final StringBuilder append = new StringBuilder(m.getName()).append(':'); for (final MetaParameter parm : m.getParameters()) { append.append(parm.getType().getCanonicalName()).append(':'); } return append.toString(); }
public static String createCallSignature(final MetaMethod m) { final StringBuilder append = new StringBuilder(m.getName()).append(':'); for (final MetaParameter parm : m.getParameters()) { append.append(parm.getType().getCanonicalName()).append(':'); } return append.toString(); }
public String hashString() { if (_hashString != null) return _hashString; return _hashString = MetaParameter.class.getName() + ":" + getName() + ":" + getType().getFullyQualifiedName(); }
public String hashString() { if (_hashString != null) return _hashString; return _hashString = MetaParameter.class.getName() + ":" + getName() + ":" + getType().getFullyQualifiedName(); }
public static boolean isMethodInInterface(final MetaClass iface, final MetaMethod member) { if (iface.getMethod(member.getName(), Arrays.stream(member.getParameters()).map(p -> p.getType()).toArray(MetaClass[]::new)) != null) return true; return false; }
public static Parameter[] of(MetaParameter[] parameters) { Parameter[] ps = new Parameter[parameters.length]; for (int i = 0; i < ps.length; i++) { String name = parameters[i].getName(); if (name == null) { name = "a" + i; } ps[i] = of(parameters[i].getType(), name); } return ps; }
static MetaClass[] getParameterTypes(final MetaMethod producerMethod) { final MetaClass[] paramTypes = new MetaClass[producerMethod.getParameters().length]; for (int i = 0; i < paramTypes.length; i++) { paramTypes[i] = producerMethod.getParameters()[i].getType(); } return paramTypes; }
public static Parameter[] of(MetaParameter[] parameters) { Parameter[] ps = new Parameter[parameters.length]; for (int i = 0; i < ps.length; i++) { String name = parameters[i].getName(); if (name == null) { name = "a" + i; } ps[i] = of(parameters[i].getType(), name); } return ps; }
public static DefParameters from(final MetaMethod method) { final List<Parameter> parameters = new ArrayList<Parameter>(); int i = 0; for (final MetaParameter parm : method.getParameters()) { parameters.add(Parameter.of(parm.getType(), "a" + i++)); } return new DefParameters(parameters); }
/** * Returns true if the method signature is the same as the methods generated by BindableProxyGenerator */ private boolean isBindableProxyGeneratedMethod(MetaMethod method) { if(method.getName().equals("get") && method.getParameters().length == 1 && method.getParameters()[0].getType().isAssignableFrom(String.class)) { return true; } if(method.getName().equals("set") && method.getParameters().length == 2 && method.getParameters()[0].getType().isAssignableFrom(String.class)) { return true; } return false; }
private MetaClass[] getErasedParamterTypes(final MetaMethod method) { final MetaClass[] paramTypes = new MetaClass[method.getParameters().length]; for (int i = 0; i < paramTypes.length; i++) { paramTypes[i] = method.getParameters()[i].getType().getErased(); } return paramTypes; }
/** * Returns true if the method signature is the same as the methods generated by BindableProxyGenerator */ private boolean isBindableProxyGeneratedMethod(MetaMethod method) { if(method.getName().equals("get") && method.getParameters().length == 1 && method.getParameters()[0].getType().isAssignableFrom(String.class)) { return true; } if(method.getName().equals("set") && method.getParameters().length == 2 && method.getParameters()[0].getType().isAssignableFrom(String.class)) { return true; } return false; }
public static DefParameters from(final MetaMethod method, final Parameter... parms) { final List<Parameter> parameters = new ArrayList<Parameter>(); int i = 0; for (final MetaParameter parm : method.getParameters()) { parameters.add(Parameter.of(parm.getType(), parms[i].getName(), parms[i++].isFinal())); } return new DefParameters(parameters); }
public static DefParameters from(final MetaMethod method, final Parameter... parms) { final List<Parameter> parameters = new ArrayList<Parameter>(); int i = 0; for (final MetaParameter parm : method.getParameters()) { parameters.add(Parameter.of(parm.getType(), parms[i].getName(), parms[i++].isFinal())); } return new DefParameters(parameters); }
private Parameter[] getParametersForDeclaration(final MetaMethod method) { final MetaParameter[] metaParams = method.getParameters(); final Parameter[] params = new Parameter[metaParams.length]; for (int i = 0; i < params.length; i++) { params[i] = Parameter.of(metaParams[i].getType().getErased(), metaParams[i].getName()); } return params; }
public static String getPrivateMethodName(final MetaMethod method) { final MetaClass declaringClass = method.getDeclaringClass(); String name = declaringClass.getName() + "_" + method.getName(); if (method.getParameters() != null) { for (final MetaParameter p : method.getParameters()) { name += "_" + getTypeName(p.getType()); } } return name; }
private void addDisposerDependencies(final Injectable producedInjectable, final MetaMethod disposer, final DependencyGraphBuilder builder) { for (final MetaParameter param : disposer.getParameters()) { if (param.isAnnotationPresent(Disposes.class)) { builder.addDisposesMethodDependency(producedInjectable, disposer.getDeclaringClass(), qualFactory.forSink(disposer.getDeclaringClass()), disposer); } else { builder.addDisposesParamDependency(producedInjectable, param.getType(), qualFactory.forSink(param), param.getIndex(), param); } } }