Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | Related Pages

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