DamSi

Untitled

Jul 18th, 2015
197
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.38 KB | None | 0 0
  1.  class Archive {
  2.     protected int id;
  3.     protected Date dateArchived;
  4.  
  5.     public Archive(int id) {
  6.         this.id = id;
  7.         this.dateArchived = new Date();
  8.     }
  9.  
  10.     public Date getDate() {
  11.         return dateArchived;
  12.     }
  13. }
  14. class LockedArchive extends Archive {
  15.     protected Date dateToOpen;
  16.  
  17.     public LockedArchive(int id, Date dateToOpen) {
  18.         super(id);
  19.         this.dateToOpen = dateToOpen;
  20.     }
  21.  
  22.     public Date getDate() {
  23.         return dateToOpen;
  24.     }
  25.  
  26. }
  27. class SpecialArchive extends Archive {
  28.      protected int maxOpen;
  29.      protected int timesOpen;
  30.  
  31.      public SpecialArchive(int id, int maxOpen) {
  32.              super(id);
  33.              this.maxOpen = maxOpen;
  34.              timesOpen = 0;
  35.      }
  36. }
  37. class ArchiveStore {
  38.     ArrayList<Archive> files;
  39.     StringBuilder logFile;
  40.  
  41.     public ArchiveStore() {
  42.         files = new ArrayList<Archive>();
  43.         logFile = new StringBuilder();
  44.     }
  45.  
  46.     public void archiveItem(Archive item, Date date) {
  47.         files.add(item);
  48.         logFile.append("Item " + item.id + " archived at " + date + "\n");
  49.  
  50.     }
  51.  
  52.     public void openItem(int id, Date date) throws NonExistingItemException {
  53.         boolean isOpen = false;
  54.         Archive itemToArchive = null;
  55.         for (Archive itemFromArchive : files) {
  56.             if (itemFromArchive.id == id) {
  57.                 isOpen = true;
  58.                 itemToArchive = itemFromArchive;
  59.                 break;
  60.             }
  61.         }
  62.         if (isOpen == true) {
  63.             if (itemToArchive instanceof LockedArchive) {
  64.                 if (itemToArchive.getDate().getTime() > date.getTime()) {
  65.                     logFile.append("Item " + id + " cannot be opened before " + itemToArchive.getDate() + "\n");
  66.                 } else {
  67.                     logFile.append("Item " + id + " opened at " + date + "\n");
  68.                 }
  69.             } else {
  70.                 if (itemToArchive instanceof SpecialArchive) {
  71.                     SpecialArchive o = null;
  72.                     o = (SpecialArchive) itemToArchive;
  73.                     if (o.maxOpen <= o.timesOpen) {
  74.                         logFile.append("Item " + id + " cannot be opened more than " + o.maxOpen + " times\n");
  75.                     } else {
  76.                         logFile.append("Item " + id + " opened at " + date + "\n");
  77.                         o.timesOpen++;
  78.                     }
  79.                 } else {
  80.                     logFile.append("Item " + id + " opened at " + date + ",\n");
  81.                 }
  82.  
  83.             }
  84.         } else {
  85.             throw new NonExistingItemException("Item with id " + id + " doesn't exist");
  86.         }
  87.  
  88.     }
  89.  
  90.     public String getLog() {
  91.         return logFile.toString();
  92.     }
  93. }
  94.  
  95. @SuppressWarnings("serial")
  96. class NonExistingItemException extends Exception {
  97.     public NonExistingItemException(String s){
  98.         super(s);
  99.     }
  100. }
Advertisement
Add Comment
Please, Sign In to add comment