package org.hl7.fhir.dstu3.utils; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; import org.hl7.fhir.dstu3.model.StructureDefinition; public class ValidationProfileSet { public static class ProfileRegistration { private String profile; private boolean error; public ProfileRegistration(String profile, boolean error) { super(); this.profile = profile; this.error = error; } public String getProfile() { return profile; } public boolean isError() { return error; } } private List<ProfileRegistration> canonical = new ArrayList<ProfileRegistration>(); private List<StructureDefinition> definitions = new ArrayList<StructureDefinition>(); public ValidationProfileSet(String profile, boolean isError) { super(); canonical.add(new ProfileRegistration(profile, isError)); } public ValidationProfileSet() { super(); } public ValidationProfileSet(StructureDefinition profile) { super(); definitions.add(profile); } public ValidationProfileSet(List<String> profiles, boolean isError) { super(); if (profiles != null) for (String p : profiles) canonical.add(new ProfileRegistration(p, isError)); } public List<String> getCanonicalUrls() { List<String> res = new ArrayList<String>(); for (ProfileRegistration c : canonical) { res.add(c.getProfile()); } return res; } public List<StructureDefinition> getDefinitions() { return definitions; } public boolean empty() { return canonical.isEmpty() && definitions.isEmpty(); } public List<String> getCanonicalAll() { Set<String> res = new HashSet<String>(); res.addAll(getCanonicalUrls()); for (StructureDefinition sd : definitions) res.add(sd.getUrl()); return new ArrayList<String>(res); } public List<ProfileRegistration> getCanonical() { return canonical; } }