Revision 6494 org.gvsig.raster/branches/org.gvsig.raster.2.4/org.gvsig.raster/org.gvsig.raster.lib/org.gvsig.raster.lib.buffer/org.gvsig.raster.lib.buffer.impl/src/main/java/org/gvsig/raster/lib/buffer/impl/AbstractBuffer.java
AbstractBuffer.java | ||
---|---|---|
64 | 64 |
private Double pixelSizeX = null; |
65 | 65 |
private Double pixelSizeY = null; |
66 | 66 |
|
67 |
// // to make disposable
|
|
68 |
// private final Object lock = new Object();
|
|
69 |
// private boolean disposed = false;
|
|
67 |
// to make it disposable
|
|
68 |
private final Object lock = new Object(); |
|
69 |
private boolean disposed = false; |
|
70 | 70 |
|
71 |
// public AbstractBuffer() {
|
|
72 |
// if(ToolsLocator.getDisposableManager() != null) {
|
|
73 |
// ToolsLocator.getDisposableManager().bind(this);
|
|
74 |
// } else {
|
|
75 |
// logger.warn("Can't retrieve the disposable manager,");
|
|
76 |
// }
|
|
77 |
// }
|
|
71 |
public AbstractBuffer() { |
|
72 |
if(ToolsLocator.getDisposableManager() != null) { |
|
73 |
ToolsLocator.getDisposableManager().bind(this); |
|
74 |
} else { |
|
75 |
logger.warn("Can't retrieve the disposable manager,"); |
|
76 |
} |
|
77 |
} |
|
78 | 78 |
|
79 | 79 |
@Override |
80 | 80 |
public Statistics getStatistics(SimpleTaskStatus status) { |
... | ... | |
520 | 520 |
return pixelSizeY.doubleValue(); |
521 | 521 |
} |
522 | 522 |
|
523 |
// public final void dispose() { |
|
524 |
// synchronized (lock) { |
|
525 |
// // Check if we have already been disposed, and don't do it again |
|
526 |
// if (!disposed) { |
|
527 |
// if ( ToolsLocator.getDisposableManager().release(this) ) { |
|
528 |
// try { |
|
529 |
// doDispose(); |
|
530 |
// } catch (BaseException ex) { |
|
531 |
// LOG.error("Error performing dispose", ex); |
|
532 |
// } |
|
533 |
// disposed = true; |
|
534 |
// } |
|
535 |
// } |
|
536 |
// } |
|
537 |
// } |
|
538 |
// |
|
539 |
// @Override |
|
540 |
// public void doDispose() { |
|
541 |
// for (Iterator iterator = bands.iterator(); iterator.hasNext();) { |
|
542 |
// Band band = (Band) iterator.next(); |
|
543 |
// band.dispose(); |
|
544 |
// } |
|
545 |
// envelope = null; |
|
546 |
// projection = null; |
|
547 |
// //TODO: ?FilterList Disposable? |
|
548 |
// filters = null; |
|
549 |
// //TODO: ?Statistics Disposable? |
|
550 |
// statistics = null; |
|
551 |
// |
|
552 |
// pixelSizeX = null; |
|
553 |
// pixelSizeY = null; |
|
554 |
// } |
|
523 |
public final void dispose() { |
|
524 |
synchronized (lock) { |
|
525 |
// Check if we have already been disposed, and don't do it again |
|
526 |
if (!disposed) { |
|
527 |
if ( ToolsLocator.getDisposableManager().release(this) ) { |
|
528 |
try { |
|
529 |
doDispose(); |
|
530 |
} catch (BaseException ex) { |
|
531 |
logger.error("Error performing dispose", ex); |
|
532 |
} |
|
533 |
disposed = true; |
|
534 |
} |
|
535 |
} |
|
536 |
} |
|
537 |
} |
|
555 | 538 |
|
539 |
/** |
|
540 |
* Internal implementation for the {@link #dispose()} method. |
|
541 |
* |
|
542 |
* @see #dispose() |
|
543 |
*/ |
|
544 |
public void doDispose() throws BaseException { |
|
545 |
for (Iterator iterator = bands.iterator(); iterator.hasNext();) { |
|
546 |
Band band = (Band) iterator.next(); |
|
547 |
band.dispose(); |
|
548 |
} |
|
549 |
envelope = null; |
|
550 |
projection = null; |
|
551 |
//TODO: ?FilterList Disposable? |
|
552 |
filters = null; |
|
553 |
//TODO: ?Statistics Disposable? |
|
554 |
statistics = null; |
|
555 |
|
|
556 |
pixelSizeX = null; |
|
557 |
pixelSizeY = null; |
|
558 |
} |
|
559 |
|
|
556 | 560 |
@Override |
557 | 561 |
protected void finalize() throws Throwable { |
558 | 562 |
super.finalize(); |
Also available in: Unified diff