use of net.geoprism.registry.hierarchy.HierarchyService 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.hierarchy.HierarchyService in project geoprism-registry by terraframe.
the class ServiceFactory method initialize.
private void initialize() {
this.registryService = new RegistryService();
this.cs = new ConversionService();
this.idService = new RegistryIdService();
this.adapter = new RegistryAdapterServer(this.idService);
this.accountService = new AccountService();
this.goPermissionServ = new GeoObjectPermissionService();
this.serverGoService = new ServerGeoObjectService(goPermissionServ);
this.hierarchyService = new HierarchyService();
this.orgServ = new OrganizationPermissionService();
this.hierarchyPermServ = new HierarchyTypePermissionService();
this.goRelPermissionServ = new GeoObjectRelationshipPermissionService();
this.goTypeRelPermissionServ = new GeoObjectTypeRelationshipPermissionService();
this.goTypePermissionServ = new GeoObjectTypePermissionService();
this.rolePermissionServ = new RolePermissionService();
this.metadataCache = new ServerMetadataCache(this.adapter);
this.metadataCache.rebuild();
this.registryService.initialize(this.adapter);
}
Aggregations