diff --git a/sdnnt/src/main/java/cz/inovatika/sdnnt/services/kraminstances/CheckKrameriusConfiguration.java b/sdnnt/src/main/java/cz/inovatika/sdnnt/services/kraminstances/CheckKrameriusConfiguration.java index a577a6f1..fcbec868 100644 --- a/sdnnt/src/main/java/cz/inovatika/sdnnt/services/kraminstances/CheckKrameriusConfiguration.java +++ b/sdnnt/src/main/java/cz/inovatika/sdnnt/services/kraminstances/CheckKrameriusConfiguration.java @@ -74,7 +74,7 @@ public InstanceConfiguration findByAcronym(String acronym) { public InstanceConfiguration findBySigla(String sigla) { Collection values = this.matchNameConfigurations.values(); for (InstanceConfiguration inst : values) { - if (inst.getSigla() != null && inst.getSigla().equals(sigla)) return inst; + if (inst.matchSigla(sigla)) return inst; else { String acronym = inst.getAcronym(); if (acronym != null && acronym.toUpperCase().equals(sigla)) { diff --git a/sdnnt/src/main/java/cz/inovatika/sdnnt/services/kraminstances/InstanceConfiguration.java b/sdnnt/src/main/java/cz/inovatika/sdnnt/services/kraminstances/InstanceConfiguration.java index a7fe055c..6bb3dd8d 100644 --- a/sdnnt/src/main/java/cz/inovatika/sdnnt/services/kraminstances/InstanceConfiguration.java +++ b/sdnnt/src/main/java/cz/inovatika/sdnnt/services/kraminstances/InstanceConfiguration.java @@ -3,16 +3,22 @@ import java.util.ArrayList; import java.util.List; +import org.json.JSONArray; import org.json.JSONObject; import cz.inovatika.sdnnt.services.kraminstances.InstanceConfiguration.KramVersion; import cz.inovatika.sdnnt.utils.StringUtils; +/** + * Main instance configuration + * @author happy + * + */ public class InstanceConfiguration { + /** Version enum */ public static enum KramVersion { - V5, V7; public static KramVersion load(String vinfo) { @@ -30,14 +36,21 @@ public static KramVersion load(String vinfo) { } } - + /** API point */ private String apiPoint; + /** Link to client */ private String clientAddress; + /** Domain where kramerius sits on */ private String domain; + /** Acronym for DL */ private String acronym; + /** Only description */ private String description; + /** Main sigla */ private String sigla; + private List additionalSiglas = new ArrayList(); + private KramVersion version = KramVersion.V5; private boolean shouldSkip = false; @@ -78,14 +91,6 @@ public boolean isShouldSkip() { return shouldSkip; } -// public void addMatchName(String matchName) { -// this.matchNames.add(matchName); -// } -// -// public void removeMatchName(String matchName) { -// this.matchNames.remove(matchName); -// } - public void setAcronym(String acronym) { this.acronym = acronym; } @@ -119,6 +124,23 @@ public KramVersion getVersion() { return version; } + public List getAdditionalSiglas() { + return additionalSiglas; + } + + + public void setAdditionalSiglas(List additionalSiglas) { + this.additionalSiglas = additionalSiglas; + } + + public boolean matchSigla(String sigla) { + if (this.sigla.endsWith(sigla)) return true; + else { + return this.additionalSiglas.contains(sigla); + } + } + + public static InstanceConfiguration initConfiguration(String name, JSONObject instOBject) { InstanceConfiguration configuration = new InstanceConfiguration(); @@ -130,15 +152,34 @@ public static InstanceConfiguration initConfiguration(String name, JSONObject in configuration.setDescription(instOBject.optString("description")); configuration.setSigla(instOBject.optString("sigla")); + JSONArray jsonArray = instOBject.optJSONArray("additional_sigla"); + if (jsonArray != null && jsonArray.length() > 0) { + List siglas = new ArrayList(); + for (int i = 0; i < jsonArray.length(); i++) { + String aSigla = jsonArray.getString(i); + siglas.add(aSigla); + } + if (!siglas.isEmpty()) { + configuration.setAdditionalSiglas(siglas); + } + } + + + + String version = instOBject.optString("version"); if (version != null && StringUtils.isAnyString(version)) { configuration.setVersion(KramVersion.load(version)); } + + return configuration; } + + - + @Override public String toString() { return "InstanceConfiguration [apiPoint=" + apiPoint + ", clientAddress=" + clientAddress + ", domain=" + domain