View Javadoc

1   /*
2    * ManualUserGroup.java
3    *
4    * Created on May 25, 2004, 4:48 PM
5    */
6   
7   package gov.bnl.gums.userGroup;
8   
9   import gov.bnl.gums.configuration.Configuration;
10  import gov.bnl.gums.db.ManualUserGroupDB;
11  import gov.bnl.gums.GridUser;
12  
13  /** 
14   * A user group that is defined by a list of users stored in some way, allowing
15   * to add and remove users. The persistance layer is implemented through an
16   * interface, allowing different storage frameworks (i.e. database, LDAP, file)
17   * <p>
18   * This class will provide also configurable data caching.
19   *
20   * @author Gabriele Carcassi, Jay Packard
21   */
22  public class ManualUserGroup extends UserGroup {
23      static public String getTypeStatic() {
24  		return "manual";
25  	}
26      
27      private ManualUserGroupDB db;
28  	private String persistenceFactory = "";
29      
30      /**
31       * Create a new manual user group. This empty constructor is needed by the XML Digestor.
32       */
33      public ManualUserGroup() {
34      	super();
35      }
36      
37      /**
38       * Create a new manual user group with a configuration.
39       */
40      public ManualUserGroup(Configuration configuration) {
41      	super(configuration);
42      }
43      
44      /**
45       * Create a new manual user group with a configuration and a name.
46       */
47  	public ManualUserGroup(Configuration configuration, String name) {
48  		super(configuration, name);
49  	}
50      
51      public void addMember(GridUser user) {
52          getDB().addMember(user);
53      }
54      
55      public UserGroup clone(Configuration configuration) {
56      	ManualUserGroup userGroup = new ManualUserGroup(configuration, new String(getName()));
57      	userGroup.setDescription(new String(getDescription()));
58      	userGroup.setAccess(new String(getAccess()));
59      	userGroup.setPersistenceFactory(new String(persistenceFactory));
60      	return userGroup;
61      }
62      
63      public ManualUserGroupDB getDB() {
64      	if (db==null)
65      		db = getConfiguration().getPersistenceFactory(persistenceFactory).retrieveManualUserGroupDB( getName() );
66      	return db;
67      }
68      
69      public java.util.List getMemberList() {
70          return getDB().retrieveMembers();
71      }
72      
73      /**
74       * Setter for property persistenceFactory.
75       * 
76       * @return persistence factory as string.
77       */
78      public String getPersistenceFactory() {
79          return persistenceFactory;
80      }
81      
82      public String getType() {
83  		return "manual";
84  	}
85      
86      public boolean isInGroup(GridUser user) {
87          return getDB().isMemberInGroup(user);
88      }
89      
90      public boolean removeMember(GridUser user) {
91          return getDB().removeMember(user);
92      }
93      
94      /**
95       * Setter for property persistenceFactory
96       * 
97       * @param persistenceFactory
98       */
99      public void setPersistenceFactory(String persistenceFactory) {
100         this.persistenceFactory = persistenceFactory;
101     }
102 
103     public String toString() {
104         if (persistenceFactory == null) {
105             return "ManualUserGroup: persistenceFactory=null - group='" + getName() + "'";
106         } else {
107             return "ManualUserGroup: persistenceFactory='" + persistenceFactory + "' - group='" + getName() + "'";
108         }
109     }
110  
111     public String toString(String bgColor) {
112     	return "<td bgcolor=\""+bgColor+"\"><a href=\"userGroups.jsp?command=edit&name=" + getName() + "\">" + getName() + "</a></td><td bgcolor=\""+bgColor+"\">" + getType() + "</td><td bgcolor=\""+bgColor+"\">&nbsp;</td><td bgcolor=\""+bgColor+"\">&nbsp;</td><td bgcolor=\""+bgColor+"\">&nbsp;</td><td bgcolor=\""+bgColor+"\">&nbsp;</td>";
113     }
114     
115     public String toXML() {
116     	return "\t\t<manualUserGroup\n"+
117 		"\t\t\tname='"+getName()+"'\n"+
118 		"\t\t\taccess='"+accessTypes[accessIndex]+"'\n" +
119 		"\t\t\tdescription='"+getDescription()+"'\n"+
120 		"\t\t\tpersistenceFactory='"+persistenceFactory+"'/>\n\n";
121     }    
122     
123     public void updateMembers() {
124     }
125 }