01: /*
02: * Copyright 2003 Sun Microsystems, Inc. All rights reserved.
03: *
04: * Redistribution and use in source and binary forms, with or without
05: * modification, are permitted provided that the following conditions
06: * are met:
07: *
08: * - Redistributions of source code must retain the above copyright
09: * notice, this list of conditions and the following disclaimer.
10: *
11: * - Redistribution in binary form must reproduce the above copyright
12: * notice, this list of conditions and the following disclaimer in
13: * the documentation and/or other materials provided with the
14: * distribution.
15: *
16: * Neither the name of Sun Microsystems, Inc. or the names of
17: * contributors may be used to endorse or promote products derived
18: * from this software without specific prior written permission.
19: *
20: * This software is provided "AS IS," without a warranty of any
21: * kind. ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND
22: * WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY,
23: * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY
24: * EXCLUDED. SUN AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES
25: * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
26: * DISTRIBUTING THE SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN
27: * OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR
28: * FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR
29: * PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF
30: * LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE SOFTWARE,
31: * EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
32: *
33: * You acknowledge that Software is not designed, licensed or intended
34: * for use in the design, construction, operation or maintenance of
35: * any nuclear facility.
36: */
37:
38: package com.sun.portal.portlet.samples.weatherportlet;
39:
40: import javax.portlet.PortletPreferences;
41: import javax.portlet.PreferencesValidator;
42: import javax.portlet.ValidatorException;
43:
44: public class WeatherValidator implements PreferencesValidator {
45: public void validate(PortletPreferences prefs)
46: throws ValidatorException {
47: String zip = prefs.getValue("zip", "");
48: if (zip != null && zip.length() != 0 && !isValidZip(zip)) {
49: throw new ValidatorException("Invalid zip code!!", null);
50: }
51: String unit = prefs.getValue("unit", "");
52: if (zip != null && zip.length() != 0 && !isValidUnit(unit)) {
53: throw new ValidatorException("Invalid unit!!", null);
54: }
55: }
56:
57: protected boolean isValidZip(String zip) {
58: boolean isValid = true;
59: boolean stop = false;
60:
61: if (zip.length() != 5) {
62: isValid = false;
63: }
64: if (isValid) {
65: for (int i = 0; i < zip.length() && !stop; i++) {
66: char c = zip.charAt(i);
67: if (!(c >= '0' && c <= '9')) {
68: isValid = false;
69: stop = true;
70: }
71: }
72: }
73:
74: return isValid;
75: }
76:
77: protected boolean isValidUnit(String unit) {
78: boolean isValid = true;
79:
80: if (unit.length() != 1
81: || (unit.charAt(0) != 'F' && unit.charAt(0) != 'C')) {
82: isValid = false;
83: }
84:
85: return isValid;
86: }
87:
88: }
|