private boolean isParamOfNonPublicMethod(final HasAnnotations annotated) { if (!(annotated instanceof MetaParameter)) { return false; } final MetaClassMember member = ((MetaParameter) annotated).getDeclaringMember(); return member instanceof MetaMethod && !member.isPublic(); }
@Override public ContextualStatementBuilder call(final Statement instance, final HasAnnotations annotated, final BuildMetaClass factory, final Statement... params) { return METHOD.call(instance, ((MetaParameter) annotated).getDeclaringMember(), factory, params); }
@Override public MetaClass getEnclosingType(final HasAnnotations annotated) { return ((MetaParameter) annotated).getDeclaringMember().getDeclaringClass(); }
private static void filterResultsParameter(final Collection<MetaParameter> result, final Set<String> packages, final String excludeRegEx) { final Pattern excludePattern; if (excludeRegEx != null) { excludePattern = Pattern.compile(excludeRegEx); } else { excludePattern = null; } final Iterator<MetaParameter> filterIterator = result.iterator(); while (filterIterator.hasNext()) { _removeIfNotMatches(filterIterator, filterIterator.next().getDeclaringMember().getDeclaringClass(), packages, excludePattern); } }
private static void filterResultsParameter(final Collection<MetaParameter> result, final Set<String> packages, final String excludeRegEx) { final Pattern excludePattern; if (excludeRegEx != null) { excludePattern = Pattern.compile(excludeRegEx); } else { excludePattern = null; } final Iterator<MetaParameter> filterIterator = result.iterator(); while (filterIterator.hasNext()) { _removeIfNotMatches(filterIterator, filterIterator.next().getDeclaringMember().getDeclaringClass(), packages, excludePattern); } }
public Integer getIndex() { if (index == null) { final MetaClassMember member = getDeclaringMember(); final MetaParameter[] params; if (member instanceof MetaMethod) { params = ((MetaMethod) member).getParameters(); } else if (member instanceof MetaConstructor) { params = ((MetaConstructor) member).getParameters(); } else { throw new RuntimeException("Not yet implemented!"); } for (int i = 0; i < params.length; i++) { if (params[i] == this || params[i].getName().equals(getName())) { index = i; return index; } } throw new RuntimeException("Could not find index of parameter " + getName() + " in " + getDeclaringMember().getName() + " in " + getDeclaringMember().getDeclaringClassName()); } return index; } }
public Integer getIndex() { if (index == null) { final MetaClassMember member = getDeclaringMember(); final MetaParameter[] params; if (member instanceof MetaMethod) { params = ((MetaMethod) member).getParameters(); } else if (member instanceof MetaConstructor) { params = ((MetaConstructor) member).getParameters(); } else { throw new RuntimeException("Not yet implemented!"); } for (int i = 0; i < params.length; i++) { if (params[i] == this || params[i].getName().equals(getName())) { index = i; return index; } } throw new RuntimeException("Could not find index of parameter " + getName() + " in " + getDeclaringMember().getName() + " in " + getDeclaringMember().getDeclaringClassName()); } return index; } }
public static String getLocalVariableName(final MetaParameter param) { final MetaClassMember member = param.getDeclaringMember(); return member.getName() + "_" + param.getName() + "_" + param.getIndex(); }
private String annotatedName() { if (annotated instanceof MetaClassMember) { return ((MetaClassMember) annotated).getDeclaringClassName() + "_" + ((MetaClassMember) annotated).getName(); } else if (annotated instanceof MetaParameter) { final MetaClassMember declaringMember = ((MetaParameter) annotated).getDeclaringMember(); return declaringMember.getDeclaringClassName() + "_" + declaringMember.getName() + "_" + ((MetaParameter) annotated).getName(); } else { throw new RuntimeException("Not yet implemented!"); } }
&& !createdAccessors.contains(((MetaParameter) annotated).getDeclaringMember())) { final MetaMethod declaringMethod = (MetaMethod) ((MetaParameter) annotated).getDeclaringMember(); createdAccessors.add(declaringMethod);
/** * For public methods, fields, constructors, and parameters of public methods, * this method does nothing. Otherwise this method generates private * accessors/mutators. In the case of a parameter this method acts as if * called for the declaring method. * * This method is idempotent. * * @param annotated * A method, field, or parameter that may or may not be public. */ public void ensureMemberExposed(final HasAnnotations annotated) { final MetaClassMember member; if (annotated instanceof MetaParameter) { member = ((MetaParameter) annotated).getDeclaringMember(); } else { member = (MetaClassMember) annotated; } if (!member.isPublic()) { if (member instanceof MetaField) { addExposedField((MetaField) member); } else if (member instanceof MetaMethod) { addExposedMethod((MetaMethod) member); } else if (member instanceof MetaConstructor) { addExposedConstructor((MetaConstructor) member); } } }
private MetaConstructor getAccessibleConstructor(final Injectable injectable) { final MetaClass type = injectable.getInjectedType(); final MetaConstructor noArgConstr = getAccessibleNoArgConstructor(type); if (noArgConstr != null) { return noArgConstr; } for (final Dependency dep : injectable.getDependencies()) { if (dep.getDependencyType().equals(DependencyType.Constructor)) { final MetaConstructor injectableConstr = (MetaConstructor) ((ParamDependency) dep).getParameter().getDeclaringMember(); return (injectableConstr.isPublic() || injectableConstr.isProtected()) ? injectableConstr : null; } } return null; }
final MetaMethod method = (MetaMethod) parm.getDeclaringMember();