Revision 3510 trunk/applications/appCatalogYNomenclatorClient/src/es/gva/cit/catalogClient/csw/filters/CSWFilter.java

View differences:

CSWFilter.java
40 40
*/
41 41
package es.gva.cit.catalogClient.csw.filters;
42 42

  
43
import es.gva.cit.catalogClient.filters.AbstractFilter;
43 44
import es.gva.cit.catalogClient.filters.AdditionalClauses;
44
import es.gva.cit.catalogClient.filters.IFilter;
45 45
import es.gva.cit.catalogClient.languages.FilterEncoding;
46 46
import es.gva.cit.catalogClient.querys.Query;
47 47
import es.gva.cit.catalogClient.schemas.DublinCoreSchema;
......
58 58
 *
59 59
 * @author Jorge Piera Llodra (piera_jor@gva.es)
60 60
 */
61
public class CSWFilter extends Query implements IFilter {
62
    ISchemas equiv = null;
63

  
61
public class CSWFilter extends AbstractFilter {
62
    private ISchemas equiv = null;
63
       
64 64
    public CSWFilter(Query query) {
65
        super(query.getTitle(), query.getTitleFilter(), query.getAbstract(),
66
            query.getThemeKey(), query.getTopic(), query.getScale(),
67
            query.getProvider(), query.getDateFrom(), query.getDateTo(),
68
            query.getCoordenates(), query.getCoordenatesFilter(),query.getTranslator());
69
        setMinimized(query.isMinimized());
70
        setCoordinatesClicked(query.isCoordinatesClicked());
71
    }
72
    
65
        super(query);
66
    }    
73 67

  
74 68
    /**
75 69
    * Return a CQL-Text query
......
81 75

  
82 76
        setProfile(profile);
83 77

  
84
        FilterEncoding query = new FilterEncoding("ogc:", "*", "?", "\\",
78
      FilterEncoding filter = new FilterEncoding("ogc:", "*", "?", "\\",
85 79
                "xmlns:ogc=\"http://www.opengis.net/ogc\"");
80
        
81
        addAdditionalClauses(filter);
86 82

  
87
        addAdditionalClauses(query);
88

  
89
        if (getTitle() != null) {
90
            query.addClauses(equiv.getTitle(), equiv.getTitleValue(getTitle(),getTitleFilter()), getTitleFilter(),
83
        if (query.getTitle() != null) {
84
            filter.addClauses(equiv.getTitle(), equiv.getTitleValue(query.getTitle(),query.getTitleFilter()), query.getTitleFilter(),
91 85
                "PropertyIsLike", "L", "And");
92 86
        }
93 87
        
94 88
        String operator = "And";
95
        if (isMinimized())
89
        
90
        if (query.isMinimized())
96 91
            operator = "Or";
97 92
                       
98 93

  
99
        if (getAbstract() != null) {
100
            query.addClauses(equiv.getAbstract(), Strings.addAsteriscsFromAnArray(getAbstract()),
94
        if (query.getAbstract() != null) {
95
            filter.addClauses(equiv.getAbstract(), Strings.addAsteriscsFromAnArray(query.getAbstract()),
101 96
                "Y", "PropertyIsLike", "L", operator);
102 97
        }
103 98

  
104
        if (getThemeKey() != null) {
105
            query.addClauses(equiv.getThemeKey(), getThemeKey(), "Y",
99
        if (query.getThemeKey() != null) {
100
            filter.addClauses(equiv.getThemeKey(), query.getThemeKey(), "Y",
106 101
                "PropertyIsLike", "L", "And");
107 102
        }
108 103

  
109
        if ((getTopic() != null) && (!getTopic().equals(this.getTranslator().getText("cathegoryAny")))) {
110
            query.addClauses(equiv.getTopic(), equiv.getTopicValue(getTopic()),
104
        if ((query.getTopic() != null) && (!query.getTopic().equals(query.getTranslator().getText("cathegoryAny")))) {
105
            filter.addClauses(equiv.getTopic(), equiv.getTopicValue(query.getTopic()),
111 106
                "E", "PropertyIsEqualTo", "L", "And");
112 107
        }
113 108

  
......
117 112
        }
118 113
        */
119 114
        
120
        if (getProvider() != null) {
121
            query.addClauses(equiv.getProvider(), equiv.getProviderValue(getProvider()),
115
        if (query.getProvider() != null) {
116
            filter.addClauses(equiv.getProvider(), equiv.getProviderValue(query.getProvider()),
122 117
                 "E", "PropertyIsEqualTo" , "L", "And");
123 118
        }
124 119
        
125
        if (this.getDateFrom() != null) {
126
            query.addClauses(equiv.getDateFrom(), this.getDateFrom(), "E", "PropertyIsGeaterThan" ,"L", "And");
120
        if (query.getDateFrom() != null) {
121
            filter.addClauses(equiv.getDateFrom(), query.getDateFrom(), "E", "PropertyIsGeaterThan" ,"L", "And");
127 122
        }
128 123

  
129
        if (this.getDateTo() != null) {
130
            query.addClauses(equiv.getDateTo(), this.getDateTo(), "E", "PropertyIsLessThan", "L", "And");
124
        if (query.getDateTo() != null) {
125
            filter.addClauses(equiv.getDateTo(), query.getDateTo(), "E", "PropertyIsLessThan", "L", "And");
131 126
        }
132 127
        
133
        if ((getCoordenates() != null) && (isCoordinatesClicked())){
134
            query.addBoundingBox(getCoordenates(), equiv.getCoordinates(), getCoordinatesOption(getCoordenatesFilter()));
128
        if ((query.getCoordenates() != null) && (query.isCoordinatesClicked())){
129
            filter.addBoundingBox(query.getCoordenates(), equiv.getCoordinates(), getCoordinatesOption(query.getCoordenatesFilter()));
135 130
        }
136 131

  
137
        pregunta = query.toString();
132
        pregunta = filter.toString();
138 133

  
139 134
        return pregunta;
140 135
    }
......
146 141
     * @return
147 142
     */    
148 143
    public boolean getCoordinatesOption(String coordinatesOption){
149
        if ((coordinatesOption.equals(getTranslator().getText("coordinatesEqual"))) ||
150
                (coordinatesOption.equals(getTranslator().getText("coordinatesContains"))) ||
151
                (coordinatesOption.equals(getTranslator().getText("coordinatesEnclose"))))
144
        if ((coordinatesOption.equals(query.getTranslator().getText("coordinatesEqual"))) ||
145
                (coordinatesOption.equals(query.getTranslator().getText("coordinatesContains"))) ||
146
                (coordinatesOption.equals(query.getTranslator().getText("coordinatesEnclose"))))
152 147
            return false;
153 148
       
154 149
        return true; 
......
172 167
     * It adds the aditional clauses (for each profile)
173 168
     * @param query
174 169
     */
175
    public void addAdditionalClauses(FilterEncoding query) {
170
    public void addAdditionalClauses(FilterEncoding filter) {
176 171
        AdditionalClauses[] ac = equiv.getAdditionalClauses(null);
177 172

  
178 173
        for (int i = 0; i < ac.length; i++)
179
            query.addClauses(ac[i].getProperty(), ac[i].getValue(),
174
            filter.addClauses(ac[i].getProperty(), ac[i].getValue(),
180 175
                ac[i].getConcorancia(), ac[i].getRelationship(), ac[i].getType(),"And");
181 176
    }
182 177

  

Also available in: Unified diff