Project

General

Profile

1
/**
2
 *  '$RCSfile$'
3
 *  Copyright: 2005 University of New Mexico and the 
4
 *             Regents of the University of California and the
5
 *             National Center for Ecological Analysis and Synthesis
6
 *   '$Author: costa $'
7
 *     '$Date: 2005-11-16 09:57:33 -0800 (Wed, 16 Nov 2005) $'
8
 * '$Revision: 2741 $'
9
 *
10
 * This program is free software; you can redistribute it and/or modify
11
 * it under the terms of the GNU General Public License as published by
12
 * the Free Software Foundation; either version 2 of the License, or
13
 * (at your option) any later version.
14
 *
15
 * This program is distributed in the hope that it will be useful,
16
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18
 * GNU General Public License for more details.
19
 *
20
 * You should have received a copy of the GNU General Public License
21
 * along with this program; if not, write to the Free Software
22
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
23
 */
24

    
25
package edu.ucsb.nceas.metacat.advancedsearch;
26

    
27
/**
28
 * @author dcosta
29
 * 
30
 * The LTERSite class holds information about the LTER sites.
31
 */
32
public class LTERSite {
33

    
34
  /* Instance variables */
35
  public String site;      // The three-letter uppercase acronym for this site.
36
  
37
  public final String[] sites = {
38
      "AND",
39
      "ARC",
40
      "BES",
41
      "BNZ",
42
      "CAP",
43
      "CCE",
44
      "CDR",
45
      "CWT",
46
      "FCE",
47
      "GCE",
48
      "HBR",
49
      "HFR",
50
      "JRN",
51
      "KBS",
52
      "KNZ",
53
      "LNO",
54
      "LUQ",
55
      "MCM",
56
      "MCR",
57
      "NTL",
58
      "NWT",
59
      "PAL",
60
      "PIE",
61
      "SBC",
62
      "SEV",
63
      "SGS",
64
      "VCR",
65
  };
66
  
67
  public final String[] siteKeywords = {
68
      "Andrews LTER",
69
      "Arctic LTER",
70
      "Baltimore Ecosystem Study",
71
      "Bonanza Creek",
72
      "Central Arizona - Phoenix Urban",
73
      "California Current Ecosystem",
74
      "Cedar Creek",
75
      "Coweeta",
76
      "Florida Coastal Everglades",
77
      "Georgia Coastal Ecosystems",
78
      "Hubbard Brook",
79
      "Harvard Forest",
80
      "Jornada Basin",
81
      "Kellogg Biological Station",
82
      "Konza Prairie",
83
      "LTER Network Office",
84
      "Luquillo",
85
      "McMurdo Dry Valleys",
86
      "Moorea Coral Reef",
87
      "North Temperate Lakes",
88
      "Niwot Ridge",
89
      "Palmer Station",
90
      "Plum Island Ecosystem",
91
      "Santa Barbara Coastal",
92
      "Sevilleta",
93
      "Shortgrass Steppe",
94
      "Virginia Coastal Reserve",
95
  };
96

    
97
  public final String[] siteNames = {
98
      "Andrews LTER",
99
      "Arctic LTER",
100
      "Baltimore Ecosystem Study",
101
      "Bonanza Creek LTER",
102
      "Central Arizona - Phoenix Urban LTER",
103
      "California Current Ecosystem",
104
      "Cedar Creek Natural History Area",
105
      "Coweeta LTER",
106
      "Florida Coastal Everglades LTER",
107
      "Georgia Coastal Ecosystems LTER",
108
      "Hubbard Brook LTER",
109
      "Harvard Forest LTER",
110
      "Jornada Basin LTER",
111
      "Kellogg Biological Station LTER",
112
      "Konza Prairie LTER",
113
      "LTER Network Office",
114
      "Luquillo LTER",
115
      "McMurdo Dry Valleys LTER",
116
      "Moorea Coral Reef",
117
      "North Temperate Lakes LTER",
118
      "Niwot Ridge LTER",
119
      "Palmer Station LTER",
120
      "Plum Island Ecosystem LTER",
121
      "Santa Barbara Coastal LTER",
122
      "Sevilleta LTER",
123
      "Shortgrass Steppe",
124
      "Virginia Coastal Reserve LTER",
125
  };
126

    
127

    
128
  /* Constructor 
129
   * 
130
   * @param site     The three-letter acronym for this LTER site.
131
   * 
132
   */
133
  public LTERSite(final String site) {
134
    if (site != null) {
135
      this.site = site.toUpperCase();
136
    }
137
  }
138
  
139
  
140
  /**
141
   * For a given site, return the packageId attribute search string for that
142
   * site's EML documents.
143
   * 
144
   * @return packageId   The first few letters that uniquely identify a site's
145
   *                     packageId. Typically "knb-lter-xyz", though there are
146
   *                     some exceptions.
147
   */
148
  public String getPackageId() {
149
    final String packageId;
150

    
151
    if (site == null) {
152
      packageId = "";
153
    }
154
    else if (site.equals("SEV")) {
155
      packageId = "sev.";
156
    }
157
    else {
158
      packageId = "knb-lter-" + site.toLowerCase();
159
    }
160
    
161
    return packageId;
162
  }
163
  
164

    
165
  /**
166
   * Get the keyword string for this site. This keyword string is OR'ed with the
167
   * packageId to find documents that originated from this site.
168
   * 
169
   * @return  siteKeyword  The site keyword string.
170
   */
171
  public String getSiteKeyword() {
172
    String siteKeyword = "";
173

    
174
    if (isValidSite()) {
175
      for (int i = 0; i < sites.length; i++) {
176
        if (site.equals(sites[i])) { 
177
          siteKeyword = siteKeywords[i];
178
          break;
179
        }
180
      }
181
    }
182
    
183
    return siteKeyword;
184
  }
185

    
186

    
187
  /**
188
   * For a given site, return system attribute search string for that
189
   * site's EML documents.
190
   * 
191
   * @return system  A string representing the system attribute used in a LTER
192
   *                 site's EML documents.
193
   */
194
  public String getSystem() {
195
    final String system;
196
    
197
    if (site == null) {
198
      system = "";
199
    }
200
    else if (site.equals("CAP")) {
201
      system = "ces_dataset";
202
    }
203
    else if (site.equals("CWT")) {
204
      system = "cwt-lter";
205
    }
206
    else {
207
      system = "knb";
208
    }
209
    
210
    return system;
211
  }
212
  
213

    
214
  /**
215
   * Boolean to determine whether a given string is a valid LTER site.
216
   */
217
  public boolean isValidSite() {
218
    boolean isValid = false;
219
    
220
    if (site != null) {   
221
      for (int i = 0; i < sites.length; i++) {
222
        if (site.equals(sites[i])) { 
223
          isValid = true;
224
          break;
225
        }
226
      }
227
    }
228
    
229
    return isValid;
230
  }
231

    
232
}
(8-8/14)