/webportal/src/main/java/org/ala/spatial/util/SPLFilter.java

http://alageospatialportal.googlecode.com/ · Java · 190 lines · 133 code · 30 blank · 27 comment · 39 complexity · 1b0a01d48d8d9a1b40c5f318526fb225 MD5 · raw file

  1. package org.ala.spatial.util;
  2. import net.sf.json.JSONObject;
  3. /**
  4. *
  5. * @author ajay
  6. */
  7. public class SPLFilter {
  8. public SPLFilter() {
  9. }
  10. public SPLFilter(JSONObject _layer,
  11. int[] _catagories, String[] _catagory_names,
  12. double _minimum, double _maximum) {
  13. layer = _layer;
  14. if (layer != null) {
  15. layername = _layer.getString("name");
  16. }
  17. catagories = _catagories;
  18. catagory_names = _catagory_names;
  19. minimum_value = _minimum;
  20. maximum_value = _maximum;
  21. minimum_initial = _minimum;
  22. maximum_initial = _maximum;
  23. }
  24. public int count = 0;
  25. public JSONObject layer;
  26. public String layername = "";
  27. public int[] catagories = null; //use to maintain Set validity
  28. public String[] catagory_names = null;
  29. public double minimum_value = 0;
  30. public boolean changed;
  31. public String filterString;
  32. public JSONObject getLayer() {
  33. return layer;
  34. }
  35. public String getLayername() {
  36. return layername;
  37. }
  38. public int[] getCatagories() {
  39. return catagories;
  40. }
  41. public String[] getCatagory_names() {
  42. return catagory_names;
  43. }
  44. public double getMinimum_value() {
  45. return minimum_value;
  46. }
  47. public double getMaximum_value() {
  48. return maximum_value;
  49. }
  50. public double getMinimum_initial() {
  51. return minimum_initial;
  52. }
  53. public double getMaximum_initial() {
  54. return maximum_initial;
  55. }
  56. public double maximum_value = 0;
  57. public double minimum_initial = 0;
  58. public double maximum_initial = 0;
  59. /* only works if created with constructor and 'catagories' Set validity is maintained */
  60. public boolean isChanged() {
  61. if (minimum_value != minimum_initial
  62. || maximum_value != maximum_initial
  63. || (catagories != null && catagory_names != null
  64. && catagories.length != catagory_names.length)) {
  65. return true;
  66. }
  67. return false;
  68. }
  69. public boolean equals(SPLFilter f) {
  70. if (layername != f.layername
  71. || (catagories != null && f.catagories != null
  72. && catagories.length != f.catagories.length)
  73. || minimum_value != f.minimum_value
  74. || maximum_value != f.maximum_value) {
  75. return false;
  76. }
  77. return true;
  78. }
  79. public String getFilterString() {
  80. /* TODO finish */
  81. /*
  82. * cases:
  83. *
  84. * catagorical
  85. * - include all
  86. * - include none
  87. * - only; comma separated list of names
  88. *
  89. * continous
  90. * - include all
  91. * - include none
  92. * - between x and y
  93. *
  94. */
  95. if (catagory_names != null) {
  96. if (catagories == null || catagories.length == 0) {
  97. return "include none";
  98. } else if (catagories.length == catagory_names.length) {
  99. return "include all";
  100. } else {
  101. StringBuffer string = new StringBuffer();
  102. for (int i : catagories) {
  103. if (string.length() == 0) {
  104. string.append("only; ");
  105. string.append(catagory_names[i]);
  106. } else {
  107. string.append(", ");
  108. string.append(catagory_names[i]);
  109. }
  110. }
  111. return string.toString();
  112. }
  113. } else {
  114. /*if(minimum_value <= minimum_initial
  115. && maximum_value >= maximum_initial){
  116. return "include all";
  117. }else if(minimum_value > maximum_value
  118. || maximum_value < minimum_initial
  119. || minimum_value > maximum_initial){
  120. return "include none";
  121. }else*/ {
  122. return "between " + String.format("%.4f", ((float) minimum_value))
  123. + " and " + String.format("%.4f", ((float) maximum_value));
  124. }
  125. }
  126. }
  127. public void setCatagories(int[] catagories) {
  128. this.catagories = catagories;
  129. }
  130. public void setCatagory_names(String[] catagory_names) {
  131. this.catagory_names = catagory_names;
  132. }
  133. public void setCount(int count) {
  134. this.count = count;
  135. }
  136. public void setLayer(JSONObject layer) {
  137. this.layer = layer;
  138. }
  139. public void setLayername(String layername) {
  140. this.layername = layername;
  141. }
  142. public void setMaximum_initial(double maximum_initial) {
  143. this.maximum_initial = maximum_initial;
  144. }
  145. public void setMaximum_value(double maximum_value) {
  146. this.maximum_value = maximum_value;
  147. }
  148. public void setMinimum_initial(double minimum_initial) {
  149. this.minimum_initial = minimum_initial;
  150. }
  151. public void setMinimum_value(double minimum_value) {
  152. this.minimum_value = minimum_value;
  153. }
  154. public void setChanged(boolean isChanged) {
  155. this.changed = isChanged;
  156. }
  157. public void setFilterString(String filterString) {
  158. this.filterString = filterString;
  159. }
  160. }