s243a

ArchiveExtractTag.java (freenet.client)

Oct 22nd, 2014
470
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.98 KB | None | 0 0
  1. //s243a pearltree node: http://www.pearltrees.com/s243a/archiveextracttag-java/id12827383
  2. package freenet.client;
  3.  
  4. import com.db4o.ObjectContainer;
  5.  
  6. import freenet.client.async.ClientContext;
  7. import freenet.support.Logger;
  8. import freenet.support.api.Bucket;
  9.  
  10. // WARNING: THIS CLASS IS STORED IN DB4O -- THINK TWICE BEFORE ADD/REMOVE/RENAME FIELDS
  11. class ArchiveExtractTag {
  12.    
  13.     final ArchiveHandlerImpl handler;
  14.     final Bucket data;
  15.     final boolean freeBucket;
  16.     final ArchiveContext actx;
  17.     final String element;
  18.     final ArchiveExtractCallback callback;
  19.     final long nodeDBHandle;
  20.    
  21.     ArchiveExtractTag(ArchiveHandlerImpl handler, Bucket data, boolean freeBucket, ArchiveContext actx, String element, ArchiveExtractCallback callback, long nodeDBHandle) {
  22.         if(handler == null) throw new NullPointerException();
  23.         this.handler = handler;
  24.         this.data = data;
  25.         this.freeBucket = freeBucket;
  26.         this.actx = actx;
  27.         this.element = element;
  28.         this.callback = callback;
  29.         this.nodeDBHandle = nodeDBHandle;
  30.     }
  31.  
  32.     public void activateForExecution(ObjectContainer container) {
  33.         container.activate(this, 1);
  34.         container.activate(data, 5);
  35.         handler.activateForExecution(container);
  36.         container.activate(actx, 5);
  37.         container.activate(callback, 1);
  38.     }
  39.  
  40.     public boolean checkBroken(ObjectContainer container, ClientContext context) {
  41.         container.activate(this, 1);
  42.         if(data == null || actx == null || callback == null || handler == null) {
  43.             String error = "Archive extract tag is broken: data="+data+" actx="+actx+" callback="+callback+" handler="+handler;
  44.             Logger.error(this, error);
  45.             if(callback != null) {
  46.                 container.activate(callback, 1);
  47.                 callback.onFailed(new ArchiveFailureException(error), container, context);
  48.             }
  49.             if(data != null && freeBucket) {
  50.                 container.activate(data, 1);
  51.                 data.free();
  52.                 data.removeFrom(container);
  53.             }
  54.             // Don't remove actx, not our problem
  55.             // Ditto callback
  56.             // Ditto handler
  57.             return true;
  58.         }
  59.         return false;
  60.     }
  61.    
  62. }
Add Comment
Please, Sign In to add comment