public static CandidateComponentsMetadata read(InputStream in) throws IOException { CandidateComponentsMetadata result = new CandidateComponentsMetadata(); Properties props = new Properties(); props.load(in); props.forEach((type, value) -> { Set<String> candidates = new HashSet<>(Arrays.asList(((String) value).split(","))); result.add(new ItemMetadata((String) type, candidates)); }); return result; }
public static void write(CandidateComponentsMetadata metadata, OutputStream out) throws IOException { Properties props = new Properties(); metadata.getItems().forEach(m -> props.put(m.getType(), String.join(",", m.getStereotypes()))); props.store(out, ""); }
private boolean shouldBeMerged(ItemMetadata itemMetadata) { String sourceType = itemMetadata.getType(); return (sourceType != null && !deletedInCurrentBuild(sourceType) && !processedInCurrentBuild(sourceType)); }
private ItemMetadata getFirstItemWithType(CandidateComponentsMetadata metadata, String type) { for (ItemMetadata item : metadata.getItems()) { if (item.getType().equals(type)) { return item; } } return null; }
@Override public boolean matches(Object value) { if (!(value instanceof CandidateComponentsMetadata)) { return false; } ItemMetadata itemMetadata = getFirstItemWithType((CandidateComponentsMetadata) value, this.type); if (itemMetadata == null) { return false; } if (this.type != null && !this.type.equals(itemMetadata.getType())) { return false; } if (this.stereotypes != null) { for (String stereotype : this.stereotypes) { if (!itemMetadata.getStereotypes().contains(stereotype)) { return false; } } if (this.stereotypes.size() != itemMetadata.getStereotypes().size()) { return false; } } return true; }
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)); }
public static void write(CandidateComponentsMetadata metadata, OutputStream out) throws IOException { Properties props = new Properties(); metadata.getItems().forEach(m -> props.put(m.getType(), String.join(",", m.getStereotypes()))); props.store(out, ""); }
private static ItemMetadata createItem(String type, String... stereotypes) { return new ItemMetadata(type, new HashSet<>(Arrays.asList(stereotypes))); }
public static CandidateComponentsMetadata read(InputStream in) throws IOException { CandidateComponentsMetadata result = new CandidateComponentsMetadata(); Properties props = new Properties(); props.load(in); props.forEach((type, value) -> { Set<String> candidates = new HashSet<>(Arrays.asList(((String) value).split(","))); result.add(new ItemMetadata((String) type, candidates)); }); return result; }
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)); } }