use of net.geoprism.registry.view.LocationInformation in project geoprism-registry by terraframe.
the class LocationService method getLocationInformation.
@Request(RequestType.SESSION)
public LocationInformation getLocationInformation(String sessionId, Date date, String typeCode, String hierarchyCode) {
LocationInformation information = new LocationInformation();
HierarchyService hService = ServiceFactory.getHierarchyService();
HierarchyType[] hierarchies = hService.getHierarchyTypes(sessionId, null, PermissionContext.READ);
ServerHierarchyType hierarchy = null;
if (hierarchyCode == null || hierarchyCode.length() == 0) {
hierarchy = ServerHierarchyType.get(hierarchies[0]);
} else {
hierarchy = ServerHierarchyType.get(hierarchyCode);
}
List<ServerGeoObjectType> nodes = hierarchy.getDirectRootNodes();
if (nodes.size() > 0) {
/*
* If a typeCode is given and it is an option based on the hierarchy than
* use that type otherwise use the first type code
*/
ServerGeoObjectType type = nodes.get(0);
if (typeCode != null && typeCode.length() > 0) {
for (ServerGeoObjectType node : nodes) {
if (node.getCode().equals(typeCode)) {
type = ServerGeoObjectType.get(typeCode);
}
}
}
if (type != null) {
ServiceFactory.getGeoObjectPermissionService().enforceCanRead(type.getOrganization().getCode(), type);
information.setChildType(type.getType());
List<VertexServerGeoObject> children = this.getGeoObjects(type.getCode(), date);
for (VertexServerGeoObject child : children) {
information.addChild(child.toGeoObject(date));
}
}
}
information.setHierarchies(hierarchies);
information.setHierarchy(hierarchy.getCode());
information.setChildTypes(nodes);
return information;
}
use of net.geoprism.registry.view.LocationInformation in project geoprism-registry by terraframe.
the class LocationService method getLocationInformationJson.
@Request(RequestType.SESSION)
public JsonElement getLocationInformationJson(String sessionId, Date date, String typeCode, String hierarchyCode) {
LocationInformation information = this.getLocationInformation(sessionId, date, typeCode, hierarchyCode);
CustomSerializer serializer = ServiceFactory.getRegistryService().serializer(sessionId);
return information.toJson(serializer);
}
Aggregations