KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > util > explorer > resolver > lib > RootResolver


1 /*====================================================================
2
3 Objectweb Explorer Framework
4 Copyright (C) 2000-2004 INRIA - USTL - LIFL - GOAL
5 Contact: openccm@objectweb.org
6
7 This library is free software; you can redistribute it and/or
8 modify it under the terms of the GNU Lesser General Public
9 License as published by the Free Software Foundation; either
10 version 2.1 of the License, or any later version.
11
12 This library is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 Lesser General Public License for more details.
16
17 You should have received a copy of the GNU Lesser General Public
18 License along with this library; if not, write to the Free Software
19 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
20 USA
21
22 Initial developer(s): Jerome Moroy, Philippe Merle.
23 Contributor(s): ______________________________________.
24
25 ====================================================================*/

26 package org.objectweb.util.explorer.resolver.lib;
27
28 import org.objectweb.util.explorer.api.Entry;
29 import org.objectweb.util.explorer.core.code.api.CodeDescription;
30 import org.objectweb.util.explorer.core.common.api.Description;
31 import org.objectweb.util.explorer.core.common.api.ExplorerConstants;
32 import org.objectweb.util.explorer.core.root.api.RootDescriptions;
33 import org.objectweb.util.explorer.core.root.lib.BasicRootDescriptions;
34
35 /**
36  *
37  *
38  * @author <a HREF="mailto:Jerome.Moroy@lifl.fr">Jérôme Moroy</a>,
39  * <a HREF="mailto:Philippe.Merle@lifl.fr">Philippe Merle</a>.
40  *
41  * @version 0.1
42  */

43 public class RootResolver
44      extends AbstractPropertyResolver
45 {
46
47     //==================================================================
48
//
49
// Internal States.
50
//
51
// ==================================================================
52

53     // ==================================================================
54
//
55
// Constructors.
56
//
57
// ==================================================================
58

59     // ==================================================================
60
//
61
// Internal methods.
62
//
63
// ==================================================================
64

65     /* (non-Javadoc)
66      * @see org.objectweb.util.explorer.resolver.lib.AbstractPropertyResolver#getPropertyType()
67      */

68     protected String JavaDoc getPropertyType() {
69         return ExplorerConstants.ROOT_PROPERTY;
70     }
71
72     /**
73      * Tries to find a root description for the given key.
74      * @param key The storage key
75      * @return The associated description (or null if no description is found).
76      */

77     protected CodeDescription getRootDesc(Object JavaDoc key){
78         return (CodeDescription)getPropertyProvider().getPropertyDescription(getPropertyType(), key);
79     }
80
81     protected RootDescriptions getRootDescription(){
82         RootDescriptions rootDesc = new BasicRootDescriptions();
83         String JavaDoc[] roleIds = getRoleProvider().getInheritedRoleIds(getRoleManager().getCurrentRoleIds());
84         for (int i = 0; i < roleIds.length; i++) {
85             CodeDescription codeDesc = getRootDesc(roleIds[i]);
86             if(codeDesc!=null && !codeDesc.isEmpty()){
87                 rootDesc.addRootDescription(codeDesc);
88             }
89         }
90         return rootDesc;
91     }
92     
93     // ==================================================================
94
//
95
// Public methods for PropertyResolver interface.
96
//
97
// ==================================================================
98

99     /* (non-Javadoc)
100      * @see org.objectweb.util.explorer.resolver.api.PropertyResolver#resolve(java.lang.String, org.objectweb.util.explorer.api.Entry, org.objectweb.util.explorer.api.Entry)
101      */

102     public Description resolve(String JavaDoc propertyType, Entry currentEntry, Entry parentEntry) {
103         return getRootDescription();
104     }
105
106     /* (non-Javadoc)
107      * @see org.objectweb.util.explorer.resolver.api.PropertyResolver#resolve(java.lang.String, org.objectweb.util.explorer.api.Entry)
108      */

109     public Description resolve(String JavaDoc propertyType, Entry currentEntry) {
110         return resolve(getPropertyType(), currentEntry, null);
111     }
112
113 }
114
Popular Tags