private boolean validateParametersTypes(ExecutableElement constructor) { boolean res = true; List<? extends VariableElement> parameters = constructor.getParameters(); Iterator<TypeElement> sources = context.sources().iterator(); for (VariableElement parameter : parameters) { TypeElement sourceType = sources.next(); if (!parameter.asType().equals(sourceType.asType())) { res = false; break; } } return res; }
public TypeConstructorWrapper(MapperGeneratorContext context, TypeElement typeElement) { this.context = context; this.typeElement = typeElement; boolean defaultConstructor = false; boolean matchingSourcesConstructor = false; List<ExecutableElement> constructors = ElementFilter.constructorsIn(typeElement.getEnclosedElements()); for (ExecutableElement constructor : constructors) { if (constructor.getModifiers().contains(Modifier.PUBLIC) && !constructor.getModifiers().contains(Modifier.ABSTRACT)) { int paramsCount = constructor.getParameters().size(); if (paramsCount == 0) { defaultConstructor = true; } if (!matchingSourcesConstructor && paramsCount == context.getSourcesCount()) { matchingSourcesConstructor = validateParametersTypes(constructor); } } } hasMatchingSourcesConstructor = matchingSourcesConstructor; hasDefaultConstructor = defaultConstructor; }
public void reportUnused() { for (InOutType immutableIO : unusedImmutables) { context.warn( mapper.getAnnotatedElement(), "Immutable class \"%s\" is never used", immutableIO.in()); } }