KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > cocoon > portal > util > AspectDataFieldHandler


1 /*
2  * Copyright 1999-2002,2004 The Apache Software Foundation.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */

16 package org.apache.cocoon.portal.util;
17
18 import java.util.HashMap JavaDoc;
19 import java.util.Iterator JavaDoc;
20 import java.util.Map JavaDoc;
21
22 import org.apache.cocoon.portal.aspect.Aspectalizable;
23 import org.exolab.castor.mapping.MapItem;
24
25 /**
26  * Field handler for aspects of an Aspectizable object.
27  *
28  * @author <a HREF="mailto:bluetkemeier@s-und-n.de">Bj&ouml;rn L&uuml;tkemeier</a>
29  *
30  * @version CVS $Id: AspectDataFieldHandler.java 30932 2004-07-29 17:35:38Z vgritsenko $
31  */

32 public class AspectDataFieldHandler extends AbstractFieldHandler {
33     
34     public Object JavaDoc getValue(Object JavaDoc object) {
35         HashMap JavaDoc map = new HashMap JavaDoc();
36         Iterator JavaDoc iterator;
37
38         Map JavaDoc data = ((Aspectalizable) object).getPersistentAspectData();
39         if (data == null)
40             return map;
41
42         iterator = data.entrySet().iterator();
43         Map.Entry JavaDoc entry;
44         Object JavaDoc key;
45         while (iterator.hasNext()) {
46             entry = (Map.Entry JavaDoc) iterator.next();
47             key = entry.getKey();
48             map.put(key, new MapItem(key, entry.getValue()));
49         }
50         return map;
51     }
52
53     public Object JavaDoc newInstance(Object JavaDoc parent) {
54         return new MapItem();
55     }
56
57     public void resetValue(Object JavaDoc object) {
58         // impossible
59
}
60
61     public void setValue(Object JavaDoc object, Object JavaDoc value) {
62         MapItem item = (MapItem) value;
63         ((Aspectalizable) object).addPersistentAspectData(
64             (String JavaDoc) item.getKey(),
65             item.getValue());
66     }
67     
68
69 }
70
Popular Tags