Search in sources :

Example 16 with ListType

use of net.geoprism.registry.ListType in project geoprism-registry by terraframe.

the class ListCurator method run.

public void run() {
    final ListType masterlist = version.getListType();
    final ServerGeoObjectType type = ServerGeoObjectType.get(masterlist.getUniversal());
    // final MdBusinessDAO mdBusiness =
    // MdBusinessDAO.get(version.getMdBusinessOid()).getBusinessDAO();
    BusinessQuery query = this.version.buildQuery(new JsonObject());
    query.ORDER_BY_DESC(query.aCharacter(DefaultAttribute.CODE.getName()));
    history.appLock();
    history.setWorkTotal(query.getCount());
    history.setWorkProgress(0L);
    history.apply();
    OIterator<Business> objects = query.getIterator();
    try {
        while (objects.hasNext()) {
            Business row = objects.next();
            final Geometry geom = row.getObjectValue(RegistryConstants.GEOMETRY_ATTRIBUTE_NAME);
            final String code = row.getValue(DefaultAttribute.CODE.getName());
            if (geom == null) {
                GeoObjectProblem problem = new GeoObjectProblem();
                problem.setHistory(history);
                problem.setResolution(CurationResolution.UNRESOLVED.name());
                problem.setProblemType(GeoObjectProblemType.NO_GEOMETRY.name());
                problem.setTypeCode(type.getCode());
                problem.setGoCode(code);
                problem.setUid(row.getValue(DefaultAttribute.UID.getName()));
                problem.apply();
            }
            history.appLock();
            history.setWorkProgress(history.getWorkProgress() + 1);
            history.apply();
            if (history.getWorkProgress() % 100 == 0) {
                NotificationFacade.queue(new GlobalNotificationMessage(MessageType.CURATION_JOB_CHANGE, null));
            }
        }
    } finally {
        objects.close();
    }
}
Also used : BusinessQuery(com.runwaysdk.business.BusinessQuery) Geometry(com.vividsolutions.jts.geom.Geometry) ServerGeoObjectType(net.geoprism.registry.model.ServerGeoObjectType) ListType(net.geoprism.registry.ListType) JsonObject(com.google.gson.JsonObject) GlobalNotificationMessage(net.geoprism.registry.ws.GlobalNotificationMessage) Business(com.runwaysdk.business.Business)

Example 17 with ListType

use of net.geoprism.registry.ListType in project geoprism-registry by terraframe.

the class TolkienFhirDataPopulator method configure.

@Override
public void configure(FhirConnection context, ListTypeVersion version, boolean resolveIds) {
    super.configure(context, version, resolveIds);
    ListType list = version.getListType();
    JsonArray hierarchies = list.getHierarchiesAsJson();
    for (int i = 0; i < hierarchies.size(); i++) {
        JsonObject hierarchy = hierarchies.get(i).getAsJsonObject();
        String hCode = hierarchy.get("code").getAsString();
        List<String> pCodes = list.getParentCodes(hierarchy);
        if (pCodes.size() > 0) {
            this.hierarchies.add(ServerHierarchyType.get(hCode));
        }
    }
}
Also used : JsonArray(com.google.gson.JsonArray) ListType(net.geoprism.registry.ListType) JsonObject(com.google.gson.JsonObject)

Example 18 with ListType

use of net.geoprism.registry.ListType in project geoprism-registry by terraframe.

the class ListTypeService method getGeospatialVersions.

@Request(RequestType.SESSION)
public JsonArray getGeospatialVersions(String sessionId, String startDate, String endDate) {
    ListTypeVersionQuery query = new ListTypeVersionQuery(new QueryFactory());
    if (startDate != null && startDate.length() > 0) {
        query.AND(query.getForDate().GE(GeoRegistryUtil.parseDate(startDate)));
    }
    if (endDate != null && endDate.length() > 0) {
        query.AND(query.getForDate().LE(GeoRegistryUtil.parseDate(endDate)));
    }
    query.ORDER_BY_DESC(query.getListType());
    query.ORDER_BY_DESC(query.getForDate());
    query.ORDER_BY_DESC(query.getVersionNumber());
    Map<String, Set<String>> orgMap = new LinkedHashMap<String, Set<String>>();
    Map<String, Set<String>> typeMap = new LinkedHashMap<String, Set<String>>();
    Map<String, JsonObject> listMap = new LinkedHashMap<String, JsonObject>();
    try (OIterator<? extends ListTypeVersion> it = query.getIterator()) {
        while (it.hasNext()) {
            ListTypeVersion version = it.next();
            ListType listType = version.getListType();
            final boolean isMember = Organization.isMember(listType.getOrganization());
            if ((version.getWorking() && listType.doesActorHaveExploratoryPermission()) || (isMember || version.getGeospatialVisibility().equals(ListType.PUBLIC))) {
                if (!listMap.containsKey(listType.getOid())) {
                    JsonObject object = new JsonObject();
                    object.addProperty("label", listType.getDisplayLabel().getValue());
                    object.addProperty("oid", listType.getOid());
                    object.add("versions", new JsonArray());
                    listMap.put(listType.getOid(), object);
                    String gotCode = listType.getGeoObjectType().getCode();
                    if (!typeMap.containsKey(gotCode)) {
                        typeMap.put(gotCode, new HashSet<String>());
                    }
                    typeMap.get(gotCode).add(listType.getOid());
                    String orgCode = listType.getOrganization().getCode();
                    if (!orgMap.containsKey(orgCode)) {
                        orgMap.put(orgCode, new HashSet<String>());
                    }
                    orgMap.get(orgCode).add(gotCode);
                }
                JsonObject object = new JsonObject();
                object.addProperty("oid", version.getOid());
                object.addProperty("forDate", GeoRegistryUtil.formatDate(version.getForDate(), false));
                object.addProperty("versionNumber", version.getVersionNumber());
                listMap.get(listType.getOid()).get("versions").getAsJsonArray().add(object);
            }
        }
    }
    JsonArray jaOrgs = new JsonArray();
    for (String orgCode : orgMap.keySet()) {
        Organization org = ServiceFactory.getMetadataCache().getOrganization(orgCode).get();
        JsonObject joOrg = new JsonObject();
        joOrg.addProperty("orgCode", orgCode);
        joOrg.add("orgLabel", LocalizedValueConverter.convertNoAutoCoalesce(org.getDisplayLabel()).toJSON());
        JsonArray jaTypes = new JsonArray();
        for (String gotCode : orgMap.get(orgCode)) {
            ServerGeoObjectType type = ServiceFactory.getMetadataCache().getGeoObjectType(gotCode).get();
            JsonObject joType = new JsonObject();
            joType.addProperty("typeCode", gotCode);
            joType.add("typeLabel", type.getLabel().toJSON());
            JsonArray jaLists = new JsonArray();
            for (String listOid : typeMap.get(gotCode)) {
                JsonObject joListType = listMap.get(listOid);
                JsonArray jaVersions = joListType.get("versions").getAsJsonArray();
                if (jaVersions.size() > 0) {
                    jaLists.add(joListType);
                }
            }
            joType.add("lists", jaLists);
            if (jaLists.size() > 0) {
                jaTypes.add(joType);
            }
        }
        joOrg.add("types", jaTypes);
        if (jaTypes.size() > 0) {
            jaOrgs.add(joOrg);
        }
    }
    return jaOrgs;
}
Also used : QueryFactory(com.runwaysdk.query.QueryFactory) Set(java.util.Set) HashSet(java.util.HashSet) Organization(net.geoprism.registry.Organization) ServerGeoObjectType(net.geoprism.registry.model.ServerGeoObjectType) JsonObject(com.google.gson.JsonObject) ListTypeVersion(net.geoprism.registry.ListTypeVersion) ListTypeVersionQuery(net.geoprism.registry.ListTypeVersionQuery) LinkedHashMap(java.util.LinkedHashMap) JsonArray(com.google.gson.JsonArray) ListType(net.geoprism.registry.ListType) Request(com.runwaysdk.session.Request)

Example 19 with ListType

use of net.geoprism.registry.ListType in project geoprism-registry by terraframe.

the class ListTypeService method getPublicVersions.

@Request(RequestType.SESSION)
public JsonArray getPublicVersions(String sessionId, String listOid) {
    JsonArray response = new JsonArray();
    ListType listType = ListType.get(listOid);
    final boolean isMember = Organization.isMember(listType.getOrganization());
    ListTypeVersionQuery query = new ListTypeVersionQuery(new QueryFactory());
    query.WHERE(query.getListType().EQ(listType));
    query.AND(query.getWorking().EQ(false));
    query.ORDER_BY_DESC(query.getListType());
    query.ORDER_BY_DESC(query.getForDate());
    query.ORDER_BY_DESC(query.getVersionNumber());
    try (OIterator<? extends ListTypeVersion> it = query.getIterator()) {
        while (it.hasNext()) {
            ListTypeVersion list = it.next();
            if (isMember || list.getListVisibility().equals(ListType.PUBLIC)) {
                response.add(list.toJSON(false));
            }
        }
    }
    return response;
}
Also used : JsonArray(com.google.gson.JsonArray) QueryFactory(com.runwaysdk.query.QueryFactory) ListType(net.geoprism.registry.ListType) ListTypeVersion(net.geoprism.registry.ListTypeVersion) ListTypeVersionQuery(net.geoprism.registry.ListTypeVersionQuery) Request(com.runwaysdk.session.Request)

Example 20 with ListType

use of net.geoprism.registry.ListType in project geoprism-registry by terraframe.

the class ListTypeService method createEntries.

@Request(RequestType.SESSION)
public JsonObject createEntries(String sessionId, String oid) {
    ListType mList = ListType.get(oid);
    mList.createEntries(null);
    ((Session) Session.getCurrentSession()).reloadPermissions();
    return mList.toJSON(true);
}
Also used : ListType(net.geoprism.registry.ListType) Session(com.runwaysdk.session.Session) Request(com.runwaysdk.session.Request)

Aggregations

ListType (net.geoprism.registry.ListType)28 Request (com.runwaysdk.session.Request)21 JsonObject (com.google.gson.JsonObject)19 ListTypeVersion (net.geoprism.registry.ListTypeVersion)11 Test (org.junit.Test)10 IncrementalListType (net.geoprism.registry.IncrementalListType)9 IntervalListType (net.geoprism.registry.IntervalListType)9 SingleListType (net.geoprism.registry.SingleListType)9 DuplicateDataDatabaseException (com.runwaysdk.dataaccess.database.DuplicateDataDatabaseException)8 ClassificationTypeTest (net.geoprism.registry.classification.ClassificationTypeTest)8 ServerGeoObjectType (net.geoprism.registry.model.ServerGeoObjectType)8 JsonArray (com.google.gson.JsonArray)5 ListTypeEntry (net.geoprism.registry.ListTypeEntry)5 QueryFactory (com.runwaysdk.query.QueryFactory)4 Session (com.runwaysdk.session.Session)4 MdBusinessDAOIF (com.runwaysdk.dataaccess.MdBusinessDAOIF)3 InvalidMasterListException (net.geoprism.registry.InvalidMasterListException)3 ListTypeVersionQuery (net.geoprism.registry.ListTypeVersionQuery)3 Geometry (com.vividsolutions.jts.geom.Geometry)2 Organization (net.geoprism.registry.Organization)2