List<Map<String,Object>> result_set = (List) iQuery.execute(q);
List<Map<String,IObject>> result_set = iQuery.execute(q);
	public Set findCGCPaths(@NotNull @Validate(Long.class) Set imgIds,             String algorithm, Map options) {		if (imgIds.size()==0){			return new HashSet();		}		if (! IPojos.ALGORITHMS.contains(algorithm)) {			throw new IllegalArgumentException(					"No such algorithm known:"+algorithm);		}				PojoOptions po = new PojoOptions(options);        Query q = queryFactory.lookup(                PojosCGCPathsQueryDefinition.class.getName(),                new Parameters()                    .addIds(imgIds)                    .addAlgorithm(algorithm)                    .addOptions(po.map()));        		List<Map<String,Object>> result_set = (List) iQuery.execute(q);        Map<CategoryGroup,Set<Category>> map         = new HashMap<CategoryGroup,Set<Category>>();        Set<CategoryGroup> returnValues = new HashSet<CategoryGroup>();                // Parse        for (Map<String,Object> entry : result_set){            CategoryGroup cg = (CategoryGroup) entry.get(CategoryGroup.class.getName());            Category c = (Category) entry.get(Category.class.getName());            if (!map.containsKey(cg)) map.put(cg,new HashSet<Category>());            if (c != null) map.get(cg).add(c);        }        //        // Destructive changes below this point.        //        for (CategoryGroup cg : map.keySet())        {            iQuery.evict(cg);            // Overriding various checks.            cg.putAt(CategoryGroup.CATEGORYLINKS,null);            for (Category c : map.get(cg))            {                iQuery.evict(c);                // Overriding various checks.                c.putAt(Category.CATEGORYGROUPLINKS,null);                cg.linkCategory(c);            }            returnValues.add(cg);        }        collectCounts(returnValues,po);        return returnValues;			}