static ImmutableSet<ExecutableElement> filteredAbstractMethods(Context context) { Set<ExecutableElement> abstractMethods = context.abstractMethods(); ImmutableSet.Builder<ExecutableElement> withMethods = ImmutableSet.builder(); for (ExecutableElement method : abstractMethods) { if (method.getSimpleName().toString().startsWith(PREFIX) && method.getParameters().size() > 0) { withMethods.add(method); } } return withMethods.build(); } }
@Override public Set<ExecutableElement> consumeMethods(Context context) { Set<ExecutableElement> set = new HashSet<>(); for (ExecutableElement element : context.abstractMethods()) { switch (element.getSimpleName().toString()) { case "toMap": set.add(element); break; } } return set; }
@Override public boolean applicable(Context context) { for (ExecutableElement element : context.abstractMethods()) { if (element.getSimpleName().toString().equals("toMap")) { return true; } } return false; }
@Override public boolean applicable(Context context) { return getMatchingAbstractMethod(context.abstractMethods(), CONTENT_VALUES).isPresent(); }
@Override public Set<ExecutableElement> consumeMethods(Context context) { Optional<ExecutableElement> method = getMatchingAbstractMethod(context.abstractMethods(), CONTENT_VALUES); if (method.isPresent()) { return Collections.singleton(method.get()); } return Collections.emptySet(); }
@Override public String generateClass( Context context, String className, String classToExtend,boolean isFinal) { Optional<ExecutableElement> method = getMatchingAbstractMethod(context.abstractMethods(), CONTENT_VALUES); if (!method.isPresent()) throw new AssertionError("Method is null"); ImmutableList<ColumnProperty> properties = ColumnProperty.from(context); TypeSpec.Builder subclass = newTypeSpecBuilder(context, className, classToExtend, isFinal) .addMethod(createToContentValuesMethod(context, method.get(), properties)); return JavaFile.builder(context.packageName(), subclass.build()).build().toString(); }