Advertisement
Guest User

Untitled

a guest
Sep 26th, 2017
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.23 KB | None | 0 0
  1. @ExtDirectMethod(value = ExtDirectMethodType.STORE_READ, group = "igvt")
  2. public List<DomainElement> getDomain(List<Long> attributeID, List<Long> cqlLayers, List<MetaFilter> cqlFilters, Long layerTreeId, boolean currentLayerTree)
  3. {
  4. if (layerTreeId != null && !currentLayerTree) {
  5. cqlLayers.clear();
  6. cqlFilters.clear();
  7.  
  8. List<LayerTreeItem> layerTreeItems = getLayerTreeItemLeafs(layerTreeItemService.getLayerTreeItems(layerTreeId, false), new ArrayList<LayerTreeItem>());
  9. for (LayerTreeItem lti : layerTreeItems) {
  10. String filter = lti.getFilter();
  11. if (filter != null && filter != "") {
  12. if (filter.contains("=") || filter.contains("LIKE")) {
  13. List<MetaFilterElement> metaFilters = FilterConverter.parseFilterStringToMetaFilterElement(filter);
  14.  
  15. MetaFilter mf = new MetaFilter();
  16.  
  17. String logOperator = filter.contains("AND") ? "AND" : filter.contains("OR") ? "OR" : "";
  18. mf.setLogOperator(logOperator);
  19. mf.setElements(metaFilters);
  20.  
  21. cqlFilters.add(mf);
  22. cqlLayers.add(lti.getFeatureClass().getId());
  23. }
  24. }
  25. }
  26. }
  27.  
  28. Map<Long, List<MetaFilter>> cqlMetaFilter = FilterConverter.createFilterMap(cqlLayers, cqlFilters);
  29. List<DomainElement> outputDomain = new ArrayList<DomainElement>();
  30. if (attributeID!=null && attributeID.size()>0)
  31. {
  32. Set<Object> domain = new HashSet<Object>();
  33. //Set<Object> domain = customSearchService.getFeatureClassAttributeDomainByID(attributeID);
  34. //fallback in case this attribute is not listed in the fast table
  35. if(domain.size()==0)
  36. {
  37. for(long id : attributeID)
  38. {
  39. FeatureClassAttribute fca = featureClassAttributeService.getFeatureClassAttributeBasicInfo(id);
  40. FeatureClass fc = fca.getFeatureClass();
  41. //[1.CQL]prepare CQL MetaFilter map for all layers
  42. StringBuilder nf = new StringBuilder();
  43. nf = FilterConverter.parseFilterMap(fc, cqlMetaFilter, nf);
  44.  
  45. List<Object> attributeDomain = featureClassAttributeDomainService.getAttributeDomainValues(fca, nf.toString());
  46. domain.addAll(attributeDomain);
  47. }
  48. }
  49. int i=0;
  50. for(Object value: domain)
  51. {
  52. outputDomain.add(new DomainElement(value, i));
  53. i++;
  54. }
  55. }
  56. return outputDomain;
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement