Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package myarchive;
- import wsiarchive.*;
- // Archiv, bei dem erst ein Archiv vollgeschrieben wird, dann das nächste etc.
- public class OverflowArchive implements IArchive {
- private String name;
- private IArchiveList archives;
- // Die Archive werden der Reihe nach gefüllt
- public OverflowArchive(String name, IArchiveList archives) {
- this.name = name;
- this.archives = archives;
- }
- // Name des Archivs liefern
- public String getName(){
- return this.name;
- }
- // Liste der Archive ausgeben
- public IArchiveList getArchives(){
- return this.archives;
- }
- // Item ins Archiv schreiben
- public IPutResult put(Item item){
- IPutResult result = this.archives.put(item);
- if (archives instanceof EmptyArchiveList){ // wenn die Archivliste leer ist
- throw new AssertionError("there is no archive to write - wrong archive strucure");
- } else if (result instanceof FullPutResult){
- return result;
- } else {
- // dann erzeuge ein neues OK-Result mit diesem Archiv und entsprechender Id
- return new OKPutResult(new OwnItemId(this, ((OKPutResult) result).getId()));
- }
- }
- // Mehrere Items ins Archiv schreiben
- public wsiarchive.IPutResultList putMultiple(wsiarchive.IItemList items) {
- return items.putAll(this);
- }
- // Item aus Archiv auslesen
- public IGetResult get(IItemId id) {
- if (id instanceof OwnItemId){
- OwnItemId tempId = ((OwnItemId)id);
- if (this == tempId.getArchive()){
- return tempId.get();
- } else {
- return new NoItemResult();
- }
- } else {
- return new NoItemResult();
- }
- }
- }
Add Comment
Please, Sign In to add comment