GenericAccount.java
00001 package edu.virtualschool.jwaa;
00002 import java.util.ArrayList;
00003 import java.util.Iterator;
00004 import java.util.List;
00005
00006 import org.apache.log4j.Logger;
00007
00008 import edu.virtualschool.jwaa.dbms.DB;
00009 import edu.virtualschool.jwaa.dbms.DBQuery;
00010
00025 public abstract class GenericAccount
00026 extends GenericIdentifiable
00027 implements AccountAbstraction
00028 {
00029 public List roleList = new ArrayList();
00030
00031 final static Logger logger = Logger.getLogger(GenericAccount.class.getName());
00032
00033 protected GenericAccount(String id, List roleList)
00034 {
00035 super(id);
00036 this.roleList = roleList;
00037 }
00038 public final boolean hasRole(RoleAbstraction requiredRole)
00039 {
00040 if (requiredRole == null)
00041 return true;
00042 for (Iterator iterator = roleList.iterator(); iterator.hasNext(); )
00043 {
00044 Object o = iterator.next();
00045 RoleAbstraction role = (RoleAbstraction)o;
00046 if (role.meetsRequirementsOf(requiredRole))
00047 return true;
00048 }
00049 return false;
00050 }
00051 public final void setRoles(ArrayList roleList)
00052 {
00053 this.roleList = roleList;
00054 }
00055 public final List getRoleList()
00056 {
00057 return roleList;
00058 }
00059
00067 public abstract boolean isNull();
00068 static class StringIterator extends DBQuery.Iterator
00069 {
00070 public StringIterator(final DB dbms, String sql) throws Fault
00071 {
00072 super(dbms, sql);
00073 }
00074 public Object next()
00075 {
00076 try
00077 {
00078 return query.getString("id");
00079 }
00080 catch (Fault e)
00081 {
00082 logger.warn(e, e);
00083 return null;
00084 }
00085 }
00086 }
00087 }
00088
00089