01: package com.sun.portal.admin.console.sra.validators;
02:
03: import java.io.Serializable;
04: import java.net.MalformedURLException;
05: import java.net.URL;
06: import javax.faces.application.FacesMessage;
07: import javax.faces.component.EditableValueHolder;
08: import javax.faces.component.UIComponent;
09: import javax.faces.context.FacesContext;
10: import javax.faces.validator.Validator;
11: import javax.faces.validator.ValidatorException;
12:
13: import com.sun.portal.admin.console.sra.ISraBean;
14: import com.sun.portal.admin.console.sra.utils.Util;
15:
16: public class UrlFormatValidator implements Validator, Serializable {
17:
18: public void validate(FacesContext context, UIComponent component,
19: Object value) throws ValidatorException {
20: EditableValueHolder peer = (EditableValueHolder) component;
21:
22: if (value instanceof String[]) {
23: String[] hostArray = (String[]) value;
24: for (int i = 0; i < hostArray.length; i++) {
25: String urlEntered = (String) hostArray[i];
26: checkUrl(peer, urlEntered);
27: }
28: } else if (value instanceof String) {
29: String urlEntered = (String) value;
30: checkUrl(peer, urlEntered);
31: }
32: }
33:
34: private void checkUrl(EditableValueHolder peer, String urlEntered) {
35: if (!peer.isValid() || urlEntered.equals(ISraBean.EMPTY_STRING)
36: || urlEntered == null)
37: return;
38:
39: try {
40: new URL(urlEntered);
41: } catch (MalformedURLException mfu) {
42: notValidUrlMessage();
43: }
44: }
45:
46: private void notValidUrlMessage() {
47: FacesMessage message = new FacesMessage();
48: String err_message = Util.getLocalizedMessageForKey(
49: ISraBean.RB_NAME, "url.invalid.error");
50: message.setDetail(err_message);
51: message.setSummary(err_message);
52: message.setSeverity(FacesMessage.SEVERITY_ERROR);
53: throw new ValidatorException(message);
54: }
55: }
|