public static <T> List<T> addUnique(List<T> source, Collection<T> additions) { if (additions != null) { for (T addClass : additions) { addUnique(source, addClass); } } return source; }
private int processElements(Collection<MutableDeclaredType> elements) { Map<String, Element> els = new HashMap<String, Element>(); for (MutableDeclaredType element: elements) { els.put(element.getCanonicalName(), processingEnv.getElementUtils().getTypeElement(element.toString(ClassSerializer.CANONICAL, false))); } int processedElementCount = 0; for (MutableDeclaredType element: elements) { if (!ListUtils.containsElement(processedElements, element)) { Element el = els.get(element.getCanonicalName()); if (el == null) { processingEnv.getMessager().printMessage(Kind.ERROR, "Element " + element.toString() + " is not available for the processing!"); } else { if (configurer == null || configurer.isSupportedKind(el.getKind())) { if (processedElements.size() == 0 || !getExecutionType().equals(ExecutionType.ONCE)) { processedElements.add(element); init(el, roundEnv); processedElementCount += processElement(element, roundEnv); configurer.flushMessages(processingEnv.getMessager(), el); } } } } } return processedElementCount; }
if (element.getAnnotation(ProcessorConfiguration.class) == null && !ListUtils.containsElement(processingElements, element) && element.asType().getKind().equals(TypeKind.DECLARED)) { TypeElement typeElement = (TypeElement) element; if (isSupportedByInterface(typeElement)) { for (Element element : els) { if (isSupportedKind(element.getKind()) && element.getAnnotation(ProcessorConfiguration.class) == null && !ListUtils.containsElement(processingElements, element)) { List<? extends AnnotationMirror> annotationMirrors = element.getAnnotationMirrors(); for (AnnotationMirror annotationMirror: annotationMirrors) { if (!ListUtils.containsElement(processingElements, typeElement) && mutableType.getAnnotation(ProcessorConfiguration.class) == null && isSupportedKind(typeElement.getKind())) { processingElements.add(mutableType);
public static MutableDeclaredType[] mergeClassArray(Type[] classes, Set<MutableDeclaredType> classNames, MutableProcessingEnvironment processingEnv) { List<MutableDeclaredType> result = new ArrayList<MutableDeclaredType>(); ListUtils.addUnique(result, TypeUtils.toTypes(classes, processingEnv)); ListUtils.addUnique(result, classNames); return result.toArray(new MutableDeclaredType[] {}); }
private void addImport(List<? extends Type> imports, MutableDeclaredType mutableType) { if (mutableType.getPackageName() != null && !mutableType.getPackageName().equals(Void.class.getPackage().getName())) { ListUtils.addUnique(imports, mutableType); } }
private void printImports() { ListUtils.addUnique(mergedImports, processingEnv.getUsedTypes());