package org.hadatac.console.models; import org.hadatac.console.views.formdata.FacetFormData; public class SpatialQuery extends Query { public String named_geographic_location; public String spatial_predicate; //These are just lists of strings //because when the query gets submitted the "category" (e.g "characteristic") //they fall into is irrelevant /* public ArrayList<String> field_facets; public ArrayList<String> query_facets; public ArrayList<String> pivot_facets; public ArrayList<String> range_facets; public ArrayList<String> cluster_facets; */ public FacetsWithCategories field_facets = new FacetsWithCategories(); public FacetsWithCategories query_facets = new FacetsWithCategories(); public FacetsWithCategories pivot_facets = new FacetsWithCategories(); public FacetsWithCategories range_facets = new FacetsWithCategories(); public FacetsWithCategories cluster_facets = new FacetsWithCategories(); public SpatialQuery() {} /* public Query(String named_geographic_location, String spatial_predicate, FacetsWithCategories field_facets, FacetsWithCategories query_facets, FacetsWithCategories pivot_facets, FacetsWithCategories range_facets, FacetsWithCategories cluster_facets){ this.named_geographic_location = named_geographic_location; this.spatial_predicate = spatial_predicate; for (String subfacet : field_facets.all_facets) { this.field_facets.add(subfacet); } for (String subfacet : query_facets.all_facets) { this.query_facets.add(subfacet); } for (String subfacet : pivot_facets.all_facets) { this.pivot_facets.add(subfacet); } for (String subfacet : range_facets.all_facets) { this.range_facets.add(subfacet); } for (String subfacet : cluster_facets.all_facets) { this.cluster_facets.add(subfacet); } } */ public SpatialQuery(String named_geographic_location, String spatial_predicate, FacetsWithCategories field_facets, FacetsWithCategories query_facets, FacetsWithCategories pivot_facets, FacetsWithCategories range_facets, FacetsWithCategories cluster_facets){ this.named_geographic_location = named_geographic_location; this.spatial_predicate = spatial_predicate; for (String category : field_facets.facets.keySet() ) { for (String facet : field_facets.facets.get(category).keySet()){ this.field_facets.addFacet(category, facet); } } for (String category : query_facets.facets.keySet() ) { for (String facet : query_facets.facets.get(category).keySet()){ this.query_facets.addFacet(category, facet); } } for (String category : pivot_facets.facets.keySet() ) { for (String facet : pivot_facets.facets.get(category).keySet()){ this.pivot_facets.addFacet(category, facet); } } for (String category : range_facets.facets.keySet() ) { for (String facet : range_facets.facets.get(category).keySet()){ this.range_facets.addFacet(category, facet); } } for (String category : cluster_facets.facets.keySet() ) { for (String facet : cluster_facets.facets.get(category).keySet()){ this.cluster_facets.addFacet(category, facet); } } } /* public Query(String named_geographic_location, String spatial_predicate, ArrayList<String> field_facets, ArrayList<String> query_facets, ArrayList<String> pivot_facets, ArrayList<String> range_facets, ArrayList<String> cluster_facets){ this.named_geographic_location = named_geographic_location; this.spatial_predicate = spatial_predicate; this.field_facets = field_facets; this.query_facets = query_facets; this.pivot_facets = pivot_facets; this.range_facets = range_facets; this.cluster_facets = cluster_facets; } */ public static SpatialQuery makeInstance(FacetFormData formData) { SpatialQuery query = new SpatialQuery(formData.subject, formData.predicate, formData.field_facets, formData.query_facets, formData.pivot_facets, formData.range_facets, formData.cluster_facets); return query; } }