Revision 3510 trunk/applications/appCatalogYNomenclatorClient/src/es/gva/cit/catalogClient/z3950/filters/Z3950Filter.java

View differences:

Z3950Filter.java
40 40
*/
41 41
package es.gva.cit.catalogClient.z3950.filters;
42 42

  
43
import es.gva.cit.catalogClient.filters.IFilter;
43
import es.gva.cit.catalogClient.filters.AbstractFilter;
44 44
import es.gva.cit.catalogClient.languages.BasicEncodingRules;
45 45
import es.gva.cit.catalogClient.querys.Query;
46 46

  
......
48 48
/**
49 49
 * @author Jorge Piera Llodra (piera_jor@gva.es)
50 50
 */
51
public class Z3950Filter extends Query implements IFilter {
51
public class Z3950Filter extends AbstractFilter {
52 52
    public Z3950Filter(Query query) {
53
        super(query.getTitle(), query.getTitleFilter(), query.getAbstract(),
54
            query.getThemeKey(), query.getTopic(), query.getScale(),
55
            query.getProvider(), query.getDateFrom(), query.getDateTo(),
56
            query.getCoordenates(), query.getCoordenatesFilter(),query.getTranslator());
57
        setMinimized(query.isMinimized());
58
        setCoordinatesClicked(query.isCoordinatesClicked());
53
        super(query);
59 54
    }
60 55

  
61 56
    public String getQuery(String profile) {
62 57
        // Create a RemoteBooleanQuery
63
        BasicEncodingRules query = new BasicEncodingRules();
58
        BasicEncodingRules filter = new BasicEncodingRules();
64 59

  
65 60
        //Title (title, 4), Word List (6)
66
        if (getTitle() != null) {
67
            query.addClauses("4", "6", "3", this.getTitle(),
68
                this.getTitleFilter(),"and");
61
        if (query.getTitle() != null) {
62
            filter.addClauses("4", "6", "3", query.getTitle(),
63
                    query.getTitleFilter(),"and");
69 64
        }
70 65

  
71 66
        String operator = "and";
72
        if (isMinimized())
67
        if (query.isMinimized())
73 68
            operator = "or";
74 69
                
75 70
        //Abstract (abstract, 62), Word List (6)
76
        if (getAbstract() != null) {
77
            query.addClauses("62", "6", "3", this.getAbstract(), "E", operator);
71
        if (query.getAbstract() != null) {
72
            filter.addClauses("62", "6", "3", query.getAbstract(), "E", operator);
78 73
        }
79 74

  
80 75
        //Theme Keyword (themekey, 2002), Word List (6)
81
        if (getThemeKey() != null) {
82
            query.addClauses("2002", "6", "3", this.getThemeKey(), "Y","and");
76
        if (query.getThemeKey() != null) {
77
            filter.addClauses("2002", "6", "3", query.getThemeKey(), "Y","and");
83 78
        }
84 79

  
85 80
        //Source Scale Denominator (srcscale, 1024), Numeric String (109)
86
        if (getScale() != null) {
87
            if (getMinScale() != null){
88
                query.addClauses("1024", "109", "4", getMinScale(),"E","and"); 
81
        if (query.getScale() != null) {
82
            if (query.getMinScale() != null){
83
                filter.addClauses("1024", "109", "4", query.getMinScale(),"E","and"); 
89 84
            }
90
            if (getMaxScale() != null){
91
                query.addClauses("1024", "109", "2", getMaxScale(),"E","and"); 
85
            if (query.getMaxScale() != null){
86
                filter.addClauses("1024", "109", "2", query.getMaxScale(),"E","and"); 
92 87
            }           
93 88
        }
94 89
        
95
        if (getProvider() != null) {
96
            query.addClauses("1005", "6", "3", this.getProvider(), "E","and");
90
        if (query.getProvider() != null) {
91
            filter.addClauses("1005", "6", "3", query.getProvider(), "E","and");
97 92
        }
98 93

  
99 94
        //Beginning Date  (begdate, 2072), Date(210)
100
        if (getDateFrom() != null) {
101
            query.addClauses("2072", "210", "4", this.getDateFrom(), "E","and");
95
        if (query.getDateFrom() != null) {
96
            filter.addClauses("2072", "210", "4", query.getDateFrom(), "E","and");
102 97
        }
103 98

  
104 99
        //Ending Date (enddate, 2073), Date(210)		
105
        if (getDateTo() != null) {
106
            query.addClauses("2073", "210", "2", this.getDateTo(), "E","and");
100
        if (query.getDateTo() != null) {
101
            filter.addClauses("2073", "210", "2", query.getDateTo(), "E","and");
107 102
        }
108 103
        
109
        if ((getCoordenates() != null) && (isCoordinatesClicked())){
110
            String sNorth = this.getCoordenates().getUly();
111
            String sWest = this.getCoordenates().getUlx();
112
            String sSouth = this.getCoordenates().getBry();
113
            String sEast = this.getCoordenates().getBrx();
104
        if ((query.getCoordenates() != null) && (query.isCoordinatesClicked())){
105
            String sNorth = query.getCoordenates().getUly();
106
            String sWest = query.getCoordenates().getUlx();
107
            String sSouth = query.getCoordenates().getBry();
108
            String sEast = query.getCoordenates().getBrx();
114 109
            String sBounding = sNorth + " " + sWest + " " + sSouth + " " +
115 110
                sEast;
116
            String sRelation = getRelation(this.getCoordenatesFilter());
111
            String sRelation = getRelation(query.getCoordenatesFilter());
117 112

  
118 113
            // Bounding Coordinates (bounding, 2060), Coordinate String (201)
119
            query.addClauses("2060", "201", sRelation, sBounding, "E","and");
114
            filter.addClauses("2060", "201", sRelation, sBounding, "E","and");
120 115
        }
121 116

  
122 117
        //return query
123
        return query.toString();
118
        return filter.toString();
124 119
    }
125 120

  
126 121
    /**
......
140 135
     *                         3 -> equals
141 136
     */
142 137
    private String getRelation(String relacion) {
143
        if (relacion.equals(getTranslator().getText("coordinatesEqual"))) {
138
        if (relacion.equals(query.getTranslator().getText("coordinatesEqual"))) {
144 139
            return "3";
145 140
        }
146
        if (relacion.equals(getTranslator().getText("coordinatesContains"))) {
141
        if (relacion.equals(query.getTranslator().getText("coordinatesContains"))) {
147 142
            return "7";
148 143
        }
149
        if (relacion.equals(getTranslator().getText("coordinatesEnclose"))) {
144
        if (relacion.equals(query.getTranslator().getText("coordinatesEnclose"))) {
150 145
            return "9";            
151 146
        } else {
152 147
            return "10";

Also available in: Unified diff