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 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; }
@Test public void readWrite() throws IOException { CandidateComponentsMetadata metadata = new CandidateComponentsMetadata(); metadata.add(createItem("com.foo", "first", "second")); metadata.add(createItem("com.bar", "first")); ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); PropertiesMarshaller.write(metadata, outputStream); CandidateComponentsMetadata readMetadata = PropertiesMarshaller.read( new ByteArrayInputStream(outputStream.toByteArray())); assertThat(readMetadata, hasComponent("com.foo", "first", "second")); assertThat(readMetadata, hasComponent("com.bar", "first")); assertThat(readMetadata.getItems(), hasSize(2)); }
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 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; }