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();
}
}
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));
}
}
}
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;
}
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;
}
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);
}
Aggregations