@Override public synchronized void init(ProcessingEnvironment env) { this.stereotypesProviders = getStereotypesProviders(env); this.typeHelper = new TypeHelper(env); this.metadataStore = new MetadataStore(env); this.metadataCollector = new MetadataCollector(env, this.metadataStore.readMetadata()); }
private void addMetadataFor(Element element) { Set<String> stereotypes = new LinkedHashSet<>(); this.stereotypesProviders.forEach(p -> stereotypes.addAll(p.getStereotypes(element))); if (!stereotypes.isEmpty()) { this.metadataCollector.add(new ItemMetadata(this.typeHelper.getType(element), stereotypes)); } }
private boolean shouldBeMerged(ItemMetadata itemMetadata) { String sourceType = itemMetadata.getType(); return (sourceType != null && !deletedInCurrentBuild(sourceType) && !processedInCurrentBuild(sourceType)); }
private void writeMetaData() { CandidateComponentsMetadata metadata = this.metadataCollector.getMetadata(); if (!metadata.getItems().isEmpty()) { try { this.metadataStore.writeMetadata(metadata); } catch (IOException ex) { throw new IllegalStateException("Failed to write metadata", ex); } } }
public void processing(RoundEnvironment roundEnv) { for (Element element : roundEnv.getRootElements()) { markAsProcessed(element); } }
@Override public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) { this.metadataCollector.processing(roundEnv); roundEnv.getRootElements().forEach(this::processElement); if (roundEnv.processingOver()) { writeMetaData(); } return false; }
public CandidateComponentsMetadata getMetadata() { CandidateComponentsMetadata metadata = new CandidateComponentsMetadata(); for (ItemMetadata item : this.metadataItems) { metadata.add(item); } if (this.previousMetadata != null) { List<ItemMetadata> items = this.previousMetadata.getItems(); for (ItemMetadata item : items) { if (shouldBeMerged(item)) { metadata.add(item); } } } return metadata; }
private void writeMetaData() { CandidateComponentsMetadata metadata = this.metadataCollector.getMetadata(); if (!metadata.getItems().isEmpty()) { try { this.metadataStore.writeMetadata(metadata); } catch (IOException ex) { throw new IllegalStateException("Failed to write metadata", ex); } } }
public void processing(RoundEnvironment roundEnv) { for (Element element : roundEnv.getRootElements()) { markAsProcessed(element); } }
@Override public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) { this.metadataCollector.processing(roundEnv); roundEnv.getRootElements().forEach(this::processElement); if (roundEnv.processingOver()) { writeMetaData(); } return false; }
public CandidateComponentsMetadata getMetadata() { CandidateComponentsMetadata metadata = new CandidateComponentsMetadata(); for (ItemMetadata item : this.metadataItems) { metadata.add(item); } if (this.previousMetadata != null) { List<ItemMetadata> items = this.previousMetadata.getItems(); for (ItemMetadata item : items) { if (shouldBeMerged(item)) { metadata.add(item); } } } return metadata; }
private boolean shouldBeMerged(ItemMetadata itemMetadata) { String sourceType = itemMetadata.getType(); return (sourceType != null && !deletedInCurrentBuild(sourceType) && !processedInCurrentBuild(sourceType)); }
@Override public synchronized void init(ProcessingEnvironment env) { this.stereotypesProviders = getStereotypesProviders(env); this.typeHelper = new TypeHelper(env); this.metadataStore = new MetadataStore(env); this.metadataCollector = new MetadataCollector(env, this.metadataStore.readMetadata()); }
private void addMetadataFor(Element element) { Set<String> stereotypes = new LinkedHashSet<>(); this.stereotypesProviders.forEach(p -> stereotypes.addAll(p.getStereotypes(element))); if (!stereotypes.isEmpty()) { this.metadataCollector.add(new ItemMetadata(this.typeHelper.getType(element), stereotypes)); } }