Revision 8842 org.gvsig.raster/branches/org.gvsig.raster.2.4/org.gvsig.wmts/org.gvsig.wmts.provider/src/main/java/org/gvsig/wmts/provider/WMTSRasterProvider.java

View differences:

WMTSRasterProvider.java
34 34
import java.util.Iterator;
35 35
import java.util.List;
36 36
import java.util.Map;
37
import java.util.Set;
37 38
import java.util.SortedSet;
38 39
import java.util.TreeSet;
39 40
import java.util.Map.Entry;
......
91 92
import org.gvsig.raster.wmts.ogc.struct.WMTSTileMatrix;
92 93
import org.gvsig.raster.wmts.ogc.struct.WMTSTileMatrixSet;
93 94
import org.gvsig.tools.dataTypes.DataTypes;
95
import org.gvsig.tools.dispose.Disposable;
94 96
import org.gvsig.tools.dispose.DisposeUtils;
95 97
import org.gvsig.tools.dynobject.exception.DynFieldNotFoundException;
98
import org.gvsig.tools.exception.BaseException;
96 99
import org.gvsig.tools.locator.LocatorException;
97 100

  
98 101
/**
......
136 139
    private void initParams() throws InitializeException {
137 140
        WMTSRasterProviderParameters parameters = (WMTSRasterProviderParameters) getParameters();
138 141
        pageManagersPerZoomLevel = new HashMap<Integer, List<PageManager>>();
139
//        this.projection = getProjection();
140
//        wmtsClient = getWMTSClient();
141
//        wmtsStatus = getWMTSStatus();
142

  
142 143
        envelope = getEnvelope();
143 144
        maxZoomLevel = DEFAULT_MAX_ZOOM_LEVEL;
144 145

  
145
        //PRUEBA
146
//        tileStruct = getTileStruct();
147

  
148 146
    }
149 147

  
150 148
    protected WMTSStatus getWMTSStatus() throws InitializeException {
......
241 239
            if(rasterQuery.getClip()!=null){
242 240
                Buffer completeBuffer = buffer;
243 241
                envelope  = rasterQuery.getClip();
244
                buffer = bufferManager.createClippedBuffer(completeBuffer, envelope);
242
                buffer = completeBuffer.clip(envelope);
245 243
                DisposeUtils.dispose(completeBuffer);
246 244
            }
247 245

  
......
374 372
                Envelope envelopeWGS84 = geomManager.createEnvelope(rectangle2d.getMinX(), rectangle2d.getMinY(), rectangle2d.getMaxX(), rectangle2d.getMaxY(), Geometry.SUBTYPES.GEOM2D);
375 373
                ICoordTrans ct = CRSFactory.getCRS("EPSG:4326").getCT(getProjection());
376 374
                this.envelope = envelopeWGS84.convert(ct);
377
//                Rectangle2D extent = wmtsLayer.getWGS84BBoxTransformed(getProjection().getAbrev());
378
//
379
//                this.envelope =
380
//                    geomManager.createEnvelope(extent.getMinX(), extent.getMinY(), extent.getMaxX(), extent.getMaxY(),
381
//                        SUBTYPES.GEOM2D);
382 375
            } catch (CreateEnvelopeException e) {
383 376
                throw new InitializeException("Can't create envelope.", e);
384 377
            }
......
684 677
            pageManagersInZoom = new ArrayList<PageManager>();
685 678
            for (int i = 0; i < getBands(); i++) {
686 679
                //FIXME el getTileStruct no sirve para este bandTileManager
687
                pageManagersInZoom.add(new WMTSBandTileManager(getTileStruct(), this.getWMTSImage(), zoomLevel, i, this));
680
                pageManagersInZoom.add(new WMTSBandTileManager(getTileStruct(), this.getWMTSImage(), zoomLevel, i));
688 681
            }
689 682
            this.pageManagersPerZoomLevel.put(zoomLevel, pageManagersInZoom);
690 683
        }
......
799 792
        WMTSLayer wmtsLayer = getWMTSClient().getLayer(getLayerName());
800 793
        WMTSStyle wmtsStyle = null;
801 794
        List<WMTSStyle> wmtsStyles = wmtsLayer.getStyle();
802
        for (Iterator iterator = wmtsStyles.iterator(); iterator.hasNext();) {
795
        for (Iterator<WMTSStyle> iterator = wmtsStyles.iterator(); iterator.hasNext();) {
803 796
            wmtsStyle = (WMTSStyle) iterator.next();
804 797
            if (wmtsStyle.getIdentifier().equalsIgnoreCase(wmtsStatus.getStyle())) {
805 798
                break;
......
834 827
        return maxZoomLevel;
835 828
    }
836 829

  
837
//    /**
838
//     * @param maxZoomLevel the maxZoomLevel to set
839
//     */
840
//    public void setMaxZoomLevel(int maxZoomLevel) {
841
//        this.maxZoomLevel = maxZoomLevel;
842
//    }
830
    @Override
831
    protected void doDispose() throws BaseException {
832
        super.doDispose();
833
        DisposeUtils.dispose((Disposable) this.tileStruct);
834
        tileStruct = null;
835
        DisposeUtils.dispose(this.image);
836
        this.image = null;
843 837

  
838
        Set<Entry<Integer, List<PageManager>>> entries = this.pageManagersPerZoomLevel.entrySet();
839
        for (Iterator<Entry<Integer, List<PageManager>>> iterator = entries.iterator(); iterator.hasNext();) {
840
            Entry<Integer, List<PageManager>> entry = (Entry<Integer, List<PageManager>>) iterator.next();
841
            List<PageManager> pageManagers = entry.getValue();
842
            for (Iterator iterator2 = pageManagers.iterator(); iterator2.hasNext();) {
843
                PageManager pageManager = (PageManager) iterator2.next();
844
                DisposeUtils.dispose(pageManager);
845
                iterator2.remove();
846
            }
847
            iterator.remove();
848
        }
849
        pageManagersPerZoomLevel = null;
850

  
851

  
852
    }
853

  
844 854
}

Also available in: Unified diff