Documentation for a newer release is available.
View Latest
Analysing an EMF repo
To navigate a raw ISO20022 EMF repository programmatically in Java, take inspiration from the various unit tests within the emf-loader repository.
For example the ListMessageDefinitionIdentifiersTest below. This searched through all the Message Definition Identifier concepts and prints them.
package com.iconsolutions.iso20022.analysis;
import iso20022.*;
import lombok.extern.slf4j.Slf4j;
import org.eclipse.emf.ecore.EObject;
import org.junit.jupiter.api.Test;
import java.lang.String;
import java.util.*;
import java.util.stream.Collectors;
/**
* This runner list the message definitions contains with the original repo
*/
@Slf4j
public class ListMessageDefinitionIdentifiersTest extends AdhocAnalysis {
@Test
protected void analyse() throws Exception {
List<EObject> allObjects = getObjectsFromRepo(E_REPO_ORIGINAL);
List<MessageSet> messageSets = allOf(MessageSet.class, allObjects);
List<MessageDefinition> definitions = allOf(MessageDefinition.class, allObjects);
List<String> out= new ArrayList<>();
definitions.forEach(def -> {
List<MessageSet> msForDef = messageSets.stream().filter(set -> set.getMessageDefinition().contains(def)).collect(Collectors.toList());
Set<String> setTitles = msForDef.stream().map(ms -> ms.getName().split(" -")[0]).collect(Collectors.toSet());
out.add(def.getMessageDefinitionIdentifier().getBusinessArea() + "."
+ def.getMessageDefinitionIdentifier().getMessageFunctionality() + "."
+ def.getMessageDefinitionIdentifier().getFlavour() + "."
+ def.getMessageDefinitionIdentifier().getVersion() + " : "
+ Arrays.toString(setTitles.toArray()));
});
out.sort(Comparator.naturalOrder());
out.forEach(log::debug);
}
}