View Test Results.
package cs221.groupk.common; import java.util.*; import java.io.*; import cs221.groupk.exceptions.database.*; /** * Disk is the Serializable class the gets written to and read from at system * startup and shutdown. This class represents all the data that is passed * between the systems, so <B>ALL</B> information must be passed through this * class if it is requried.<BR>This class is part of the Database, so will * take care of data normalisation and compression before writing to file, as * well as writing a backup to the local hard disk, using the date to create * a unique filename.<BR>Also note, this class has many methods that are of an * admin only type, while these are present, internal checking prevents * unauthorised users from using these methods. * * <P><I>Code spell-checked - Chris Milner - 5th December 2000.</I><P> * * @author <A HREF="mailto:[email protected]">Paul Smith</A> */ public class Disk implements StdDisk, Serializable, Constants { /**users is the internal store of saleItems*/ protected UserSet userSet = null; /**saleItems is the internal store of saleItems*/ protected SaleItemList saleItems = null; /**boughtItems is the internal store of saleItems*/ protected BoughtItemList boughtItems = null; /** * location is the id specifying which station the disk is for. * @see Constants#UNDEFINED * @see Constants#TOP_STATION * @see Constants#BOTTOM_STATION */ protected int location = UNDEFINED; /**backupEngine is only used if location is a station, then backups are kept*/ protected StationBackupEngine backupEngine; /**usersloggedIn maintains a list of users that log in to the system*/ protected User[] usersloggedIn; /** * usersLoggedInAt maintains a list of when users logged in. This matches * the usersloggedIn.usersloggedIn * @see Disk */ protected Date[] usersLoggedInAt; /** * Default Constructor of Disk. */ /* This has been included as it is required for manual class Serialization * DO NOT REMOVE - Paul. */ public Disk() { //conditional create backupEngine } /** * writeToDisk writes the contents of <B>this</B> disk object to the disk, * replacing the disks contents in drive A. <B>Note</B> there are check ect * performed before the data is written, and this is where todays data is * copied to the local filestore for long term local back-up storage. * @return int error code. * @see Constants * @exception InsufficientAccessPrivilegeException is thrown when a user attempts * to call this method without first calling the Validate method. */ public int writeToDisk() throws InsufficientAccessPrivilegeException { return -1; } /** * Initialises the internal values of this class with those present on the * copy of this class on the disk in drive A. * @return Disk - from the file on the transfer diskette. */ public static Disk readFromDisk() { return null; } /** * registerSale adds the BoughtItem (boughtItem) to the local file, ready to * be written to the transfere diskette later. At this stage there is to * have been <B>no</B> processing on the data. All processing including * normalisation will take place within this class, prior to writing to * diskette or when being added to the main database. * @param BoughtItem boughtItem is the Item has been perchased and confirmed. * @exception InsufficientAccessPrivilegeException is thrown when a user attempts * to call this method without first calling the Validate method. */ public void registerSale(BoughtItem boughtItem) throws InsufficientAccessPrivilegeException { //make a call to the backupEngine & the local store! } /** * getSaleItems returns a complete list of the available sale items from the * Disk. * @see SaleItem * @return SaleItemList list class containing the saleItem Objects for this * disk. * @exception InsufficientAccessPrivilegeException is thrown when a user attempts * to call this method without first calling the Validate method. */ public SaleItemList getSaleItems() throws InsufficientAccessPrivilegeException { return null; } /** * validateUser is a transparent call to the method validateUser inside the * UserSet class. * @return int error code, or access level. * @param String user username to validate. * @param String pswd password for supplied username. * @see UserSet#validateUser(String, String) * @see Constants#VALIDATION_SUCCESFULL_ALL * @see Constants#VALIDATION_SUCCESFULL_STATIONS * @see Constants#VALIDATION_SUCCESFULL_BOTTOM_STATION * @see Constants#VALIDATION_SUCCESFULL_TOP_STATION * @see Constants#VALIDATION_FAIL_NOT_AUTHORISED * @see Constants#VALIDATION_FAIL_NO_SUCH_USER * @see Constants#VALIDATION_FAIL_INVALID_PASSWORD */ public int validateUser(String user, String pswd) { //add usersloggedIn & usersloggedInAt values. return -1; } /** * Sets the system to ACCESS_LEVEL_NOT_VALIDATED, thus disabling the entire * system. Once this method is called no further sales can be logged or can * any methods be called from the Disk class without first calling * validateUser(String, String). * @return boolean returns true if sucessfully logged off. */ public boolean logOffSystem() { return userSet.logOffSystem(); } /** * getUserSet returns the user set from the diskette. This method is called * by any module that requires any administration of the user database. * If this method is called and the calling user does not have sufficient * access privilages then the an exception is thrown. * @exception InsufficientAccessPrivilegeException is thrown when a user attempts * to call this method without first calling the Validate method. */ public UserSet getUserSet() throws InsufficientAccessPrivilegeException { return null; } /** * getBoughtItems returns an array of Bought Items, exactly as they were * entered (using register sale). */ public BoughtItem[] getBoughtItems() { return null; } /** * setUserSet sets this Disks UserSet to the the parameter userSet. <I>This * method can only be run under the admin machine.</I> * @param UserSet userSet to replace the disks current user set with. * @exception InsufficientAccessPrivilegeException is thrown when a user attempts * to call this method without first calling the Validate method. */ public void setUserSet(UserSet userSet) throws InsufficientAccessPrivilegeException { this.userSet = userSet; } /** * This method is not normally required for Object Serialization, however * it has been deemed necessary that it may be required to compress the * output from this class, the best way of doing so is as the data is being * written to disk. */ private void writeObject(ObjectOutputStream out) throws IOException, ClassNotFoundException { //if valid //out.reset();//deletes previous class. } private void readObject(ObjectInputStream in) throws IOException { } }Page automatically generated on: 26/01/01 at: 10:48:15.