KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > modules > web > dd > impl > common > DescriptionBeanMultiple


1 /*
2  * The contents of this file are subject to the terms of the Common Development
3  * and Distribution License (the License). You may not use this file except in
4  * compliance with the License.
5  *
6  * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
7  * or http://www.netbeans.org/cddl.txt.
8  *
9  * When distributing Covered Code, include this CDDL Header Notice in each file
10  * and include the License file at http://www.netbeans.org/cddl.txt.
11  * If applicable, add the following below the CDDL Header, with the fields
12  * enclosed by brackets [] replaced by your own identifying information:
13  * "Portions Copyrighted [year] [name of copyright owner]"
14  *
15  * The Original Software is NetBeans. The Initial Developer of the Original
16  * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
17  * Microsystems, Inc. All Rights Reserved.
18  */

19
20 /**
21  * Superclass that implements DescriptionInterface for Servlet2.4 beans.
22  *
23  * @author Milan Kuchtiak
24  */

25
26 package org.netbeans.modules.web.dd.impl.common;
27
28 import org.netbeans.modules.schema2beans.BaseBean;
29 import org.netbeans.modules.schema2beans.Version;
30 import org.netbeans.api.web.dd.common.*;
31
32 public abstract class DescriptionBeanMultiple extends EnclosingBean implements DescriptionInterface {
33
34     public DescriptionBeanMultiple(java.util.Vector JavaDoc comps, Version version) {
35     super(comps, version);
36     }
37     // methods implemented by specific s2b beans
38
public void setDescription(int index, java.lang.String JavaDoc value){}
39     public String JavaDoc getDescription(int index){return null;}
40     public void setDescription(java.lang.String JavaDoc[] value){}
41     //public abstract java.lang.String[] getDescription();
42
public int sizeDescription(){return 0;}
43     public int addDescription(java.lang.String JavaDoc value){return 0;}
44     //public abstract int removeDescription(java.lang.String value);
45
public void setDescriptionXmlLang(int index, java.lang.String JavaDoc value){}
46     public String JavaDoc getDescriptionXmlLang(int index){return null;}
47     
48     public void setDescription(String JavaDoc locale, String JavaDoc description) throws VersionNotSupportedException {
49         if (description==null) removeDescriptionForLocale(locale);
50         else {
51             int size = sizeDescription();
52             boolean found=false;
53             for (int i=0;i<size;i++) {
54                 String JavaDoc loc=getDescriptionXmlLang(i);
55                 if ((locale==null && loc==null) || (locale!=null && locale.equalsIgnoreCase(loc))) {
56                     found=true;
57                     setDescription(i, description);
58                     break;
59                 }
60             }
61             if (!found) {
62                 addDescription(description);
63                 if (locale!=null) setDescriptionXmlLang(size, locale.toLowerCase());
64             }
65         }
66     }
67     
68     public void setDescription(String JavaDoc description) {
69         try {
70             setDescription(null,description);
71         } catch (VersionNotSupportedException ex){}
72     }
73     
74     public void setAllDescriptions(java.util.Map JavaDoc descriptions) throws VersionNotSupportedException {
75         removeAllDescriptions();
76         if (descriptions!=null) {
77             java.util.Iterator JavaDoc keys = descriptions.keySet().iterator();
78             String JavaDoc[] newDescription = new String JavaDoc[descriptions.size()];
79             int i=0;
80             while (keys.hasNext()) {
81                 String JavaDoc key = (String JavaDoc) keys.next();
82                 addDescription((String JavaDoc)descriptions.get(key));
83                 setDescriptionXmlLang(i++, key);
84             }
85         }
86     }
87     
88     public String JavaDoc getDescription(String JavaDoc locale) throws VersionNotSupportedException {
89         for (int i=0;i<sizeDescription();i++) {
90             String JavaDoc loc=getDescriptionXmlLang(i);
91             if ((locale==null && loc==null) || (locale!=null && locale.equalsIgnoreCase(loc))) {
92                 return getDescription(i);
93             }
94         }
95         return null;
96     }
97     public String JavaDoc getDefaultDescription() {
98         try {
99             return getDescription(null);
100         } catch (VersionNotSupportedException ex){return null;}
101     }
102     public java.util.Map JavaDoc getAllDescriptions() {
103         java.util.Map JavaDoc map =new java.util.HashMap JavaDoc();
104         for (int i=0;i<sizeDescription();i++) {
105             String JavaDoc desc=getDescription(i);
106             String JavaDoc loc=getDescriptionXmlLang(i);
107             map.put(loc, desc);
108         }
109         return map;
110     }
111     
112     public void removeDescriptionForLocale(String JavaDoc locale) throws VersionNotSupportedException {
113         java.util.Map JavaDoc map = new java.util.HashMap JavaDoc();
114         for (int i=0;i<sizeDescription();i++) {
115             String JavaDoc desc=getDescription(i);
116             String JavaDoc loc=getDescriptionXmlLang(i);
117             if ((locale==null && loc!=null) || (locale!=null && !locale.equalsIgnoreCase(loc)))
118                 map.put(loc, desc);
119         }
120         setAllDescriptions(map);
121     }
122     
123     public void removeDescription() {
124         try {
125             removeDescriptionForLocale(null);
126         } catch (VersionNotSupportedException ex){}
127     }
128     public void removeAllDescriptions() {
129         setDescription(new String JavaDoc[]{});
130     }
131 }
132
Popular Tags