Search in sources :

Example 1 with LocationInfoHolder

use of net.geoprism.registry.model.LocationInfoHolder in project geoprism-registry by terraframe.

the class VertexServerGeoObject method getAncestorMap.

@SuppressWarnings("unchecked")
public Map<String, LocationInfo> getAncestorMap(ServerHierarchyType hierarchy, List<ServerGeoObjectType> parents) {
    TreeMap<String, LocationInfo> map = new TreeMap<String, LocationInfo>();
    GraphQuery<Map<String, Object>> query = buildAncestorQueryFast(hierarchy, parents);
    List<Map<String, Object>> results = query.getResults();
    if (results.size() <= 1) {
        return map;
    }
    // First result is the child object
    results.remove(0);
    results.forEach(result -> {
        String clazz = (String) result.get("cl");
        String code = (String) result.get("code");
        List<Map<String, Object>> displayLabelRaw = (List<Map<String, Object>>) result.get("label");
        LocalizedValue localized = LocalizedValueConverter.convert(displayLabelRaw, this.date);
        ServerGeoObjectType type = null;
        for (ServerGeoObjectType parent : parents) {
            if (parent.getMdVertex().getDBClassName().equals(clazz)) {
                type = parent;
            }
        }
        if (type != null && localized != null) {
            LocationInfoHolder holder = new LocationInfoHolder(code, localized, type);
            map.put(type.getUniversal().getKey(), holder);
        } else {
            logger.error("Could not find [" + clazz + "] or the localized value was null.");
        }
    });
    return map;
}
Also used : LocalizedValue(org.commongeoregistry.adapter.dataaccess.LocalizedValue) LocationInfoHolder(net.geoprism.registry.model.LocationInfoHolder) ServerGeoObjectType(net.geoprism.registry.model.ServerGeoObjectType) ArrayList(java.util.ArrayList) List(java.util.List) LinkedList(java.util.LinkedList) GeoObject(org.commongeoregistry.adapter.dataaccess.GeoObject) VertexObject(com.runwaysdk.business.graph.VertexObject) EdgeObject(com.runwaysdk.business.graph.EdgeObject) AbstractServerGeoObject(net.geoprism.registry.model.AbstractServerGeoObject) GraphObject(com.runwaysdk.business.graph.GraphObject) MultiLineString(com.vividsolutions.jts.geom.MultiLineString) LineString(com.vividsolutions.jts.geom.LineString) TreeMap(java.util.TreeMap) Map(java.util.Map) HashedMap(org.apache.commons.collections4.map.HashedMap) TreeMap(java.util.TreeMap) HashMap(java.util.HashMap) LocationInfo(net.geoprism.registry.model.LocationInfo)

Aggregations

EdgeObject (com.runwaysdk.business.graph.EdgeObject)1 GraphObject (com.runwaysdk.business.graph.GraphObject)1 VertexObject (com.runwaysdk.business.graph.VertexObject)1 LineString (com.vividsolutions.jts.geom.LineString)1 MultiLineString (com.vividsolutions.jts.geom.MultiLineString)1 ArrayList (java.util.ArrayList)1 HashMap (java.util.HashMap)1 LinkedList (java.util.LinkedList)1 List (java.util.List)1 Map (java.util.Map)1 TreeMap (java.util.TreeMap)1 AbstractServerGeoObject (net.geoprism.registry.model.AbstractServerGeoObject)1 LocationInfo (net.geoprism.registry.model.LocationInfo)1 LocationInfoHolder (net.geoprism.registry.model.LocationInfoHolder)1 ServerGeoObjectType (net.geoprism.registry.model.ServerGeoObjectType)1 HashedMap (org.apache.commons.collections4.map.HashedMap)1 GeoObject (org.commongeoregistry.adapter.dataaccess.GeoObject)1 LocalizedValue (org.commongeoregistry.adapter.dataaccess.LocalizedValue)1