![JAR search and dependency download from the Maven repository](/logo.png)
sdmx.gateway.util.ConceptSchemeUtil Maven / Gradle / Ivy
The newest version!
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package sdmx.gateway.util;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.Query;
import sdmx.commonreferences.NCNameID;
import sdmx.commonreferences.NestedNCNameID;
import sdmx.commonreferences.Version;
import sdmx.gateway.entities.Concept;
import sdmx.gateway.entities.Conceptscheme;
import sdmx.structure.base.ItemType;
import sdmx.structure.codelist.CodelistType;
import sdmx.structure.concept.ConceptSchemeType;
/**
*
* @author James
*/
public class ConceptSchemeUtil {
public static sdmx.gateway.entities.Conceptscheme createDatabaseConceptScheme(EntityManager em,ConceptSchemeType c) {
sdmx.gateway.entities.Conceptscheme cs = new sdmx.gateway.entities.Conceptscheme();
sdmx.gateway.entities.ConceptschemePK pk = new sdmx.gateway.entities.ConceptschemePK();
pk.setAgencyid(c.getAgencyID().toString());
pk.setId(c.getId().toString());
pk.setVersion(c.getVersion().toString());
cs.setAnnotations(AnnotationsUtil.toDatabaseAnnotations(em,c.getAnnotations()));
cs.setConceptschemePK(pk);
List concepts = new ArrayList<>();
for (int i = 0; i < c.size(); i++) {
concepts.add(ConceptUtil.createDatabaseConcept(em,cs,c.getConcept(i)));
}
NameUtil.setName(em,cs, c);
cs.setConceptList(concepts);
return cs;
}
public static Conceptscheme findDatabaseConceptScheme(EntityManager em, String agency, String id, String version) {
try{
Query q = em.createQuery("select c from Conceptscheme c where c.conceptschemePK.agencyid=:agency and c.conceptschemePK.id=:id and c.conceptschemePK.version=:version");
q.setParameter("agency", agency);
q.setParameter("id", id);
q.setParameter("version", version);
return (sdmx.gateway.entities.Conceptscheme)q.getSingleResult();
}catch(Exception ex) {return null; }
}
public static List searchConceptScheme(EntityManager em, String agency, String id, String version) {
if ("*".equals(version) && "all".equals(id) && "all".equals(agency)) {
Query q = em.createQuery("select c from Conceptscheme c");
return (List) q.getResultList();
} else if ("all".equals(id) && "all".equals(agency)) {
Query q = em.createQuery("select c from Conceptscheme c where c.conceptschemePK.version=:version");
q.setParameter("version", version);
return (List) q.getResultList();
} else if ("*".equals(version) && "all".equals(id)) {
Query q = em.createQuery("select c from Conceptscheme c where c.conceptschemePK.agencyid=:agency");
q.setParameter("agency", agency);
return (List) q.getResultList();
} else if ("*".equals(version) && "all".equals(agency)) {
Query q = em.createQuery("select c from Conceptscheme c where c.conceptschemePK.id=:id");
q.setParameter("id", id);
return (List) q.getResultList();
} else if ("*".equals(version)) {
Query q = em.createQuery("select c from Conceptscheme c where c.conceptschemePK.agencyid=:agency and c.conceptschemePK.id=:id");
q.setParameter("agency", agency);
q.setParameter("id", id);
return (List) q.getResultList();
} else if ("all".equals(id)) {
Query q = em.createQuery("select c from Conceptscheme c where c.conceptschemePK.agencyid=:agency and c.conceptschemePK.version=:version");
q.setParameter("agency", agency);
q.setParameter("version", version);
return (List) q.getResultList();
} else if ("all".equals(agency)) {
Query q = em.createQuery("select c from Conceptscheme c where c.conceptschemePK.id==:id and c.conceptschemePK.version=:version");
q.setParameter("id", id);
q.setParameter("version", version);
return (List) q.getResultList();
} else {
Query q = em.createQuery("select c from Conceptscheme c where c.conceptschemePK.agencyid=:agency and c.conceptschemePK.id=:id and c.conceptschemePK.version=:version");
q.setParameter("agency", agency);
q.setParameter("id", id);
q.setParameter("version", version);
return (List) q.getResultList();
}
}
public static ConceptSchemeType toSDMXConceptSchemeType(sdmx.gateway.entities.Conceptscheme c) {
ConceptSchemeType cl = new ConceptSchemeType();
cl.setNames(NameUtil.toSDMXName(c.getName()));
cl.setAgencyID(new NestedNCNameID(c.getConceptschemePK().getAgencyid()));
cl.setId(new NCNameID(c.getConceptschemePK().getId()));
cl.setVersion(new Version(c.getConceptschemePK().getVersion()));
List concepts = c.getConceptList();
List items = new ArrayList();
for (Concept cd : concepts) {
items.add(ConceptUtil.toSDMXConcept(cd));
}
cl.setItems(items);
return cl;
}
public static List toSDMXConceptSchemeTypes(List cls) {
List result = new ArrayList<>();
for (sdmx.gateway.entities.Conceptscheme c : cls) {
result.add(toSDMXConceptSchemeType(c));
}
return result;
}
public static void stub(ConceptSchemeType cs) {
cs.setItems(null);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy