From 9bca50dfed28af63aaf6c062b4bc3fdd32d48bae Mon Sep 17 00:00:00 2001 From: Hannes Janetzek <hannes.janetzek@gmail.com> Date: Wed, 2 Apr 2014 22:29:20 +0200 Subject: [PATCH] some modification suggested by pmd: - move fields before method - chain StringBuilder appends --- vtm/src/org/oscim/backend/AssetAdapter.java | 3 +- vtm/src/org/oscim/backend/canvas/Color.java | 6 +- vtm/src/org/oscim/core/BoundingBox.java | 42 ++++++------- vtm/src/org/oscim/core/GeoPoint.java | 14 ++--- vtm/src/org/oscim/core/GeometryBuffer.java | 2 +- vtm/src/org/oscim/core/Tag.java | 2 +- vtm/src/org/oscim/core/Tile.java | 18 +++--- .../org/oscim/layers/tile/TileManager.java | 37 +++++------ .../layers/tile/s3db/S3DBTileLoader.java | 2 +- vtm/src/org/oscim/map/Animator.java | 20 +++--- vtm/src/org/oscim/renderer/GridRenderer.java | 16 ++--- .../renderer/elements/ElementLayers.java | 44 ++++++------- .../oscim/renderer/elements/PolygonLayer.java | 12 ++-- vtm/src/org/oscim/theme/XmlThemeBuilder.java | 12 +--- vtm/src/org/oscim/tiling/TileSource.java | 14 ++--- vtm/src/org/oscim/tiling/source/LwHttp.java | 6 +- .../source/mapfile/QueryParameters.java | 50 +++++++-------- .../mapfile/header/SubFileParameter.java | 62 +++++++++---------- vtm/src/org/oscim/utils/IOUtils.java | 12 ++++ 19 files changed, 192 insertions(+), 182 deletions(-) diff --git a/vtm/src/org/oscim/backend/AssetAdapter.java b/vtm/src/org/oscim/backend/AssetAdapter.java index ce6fa3f7..7b89302e 100644 --- a/vtm/src/org/oscim/backend/AssetAdapter.java +++ b/vtm/src/org/oscim/backend/AssetAdapter.java @@ -48,8 +48,7 @@ public abstract class AssetAdapter { String line; try { while ((line = r.readLine()) != null) { - sb.append(line); - sb.append('\n'); + sb.append(line).append('\n'); } } catch (IOException e) { e.printStackTrace(); diff --git a/vtm/src/org/oscim/backend/canvas/Color.java b/vtm/src/org/oscim/backend/canvas/Color.java index cc36cf72..7f33bfc3 100644 --- a/vtm/src/org/oscim/backend/canvas/Color.java +++ b/vtm/src/org/oscim/backend/canvas/Color.java @@ -19,7 +19,7 @@ package org.oscim.backend.canvas; import org.oscim.utils.FastMath; -public class Color { +public final class Color { public static int fadePremul(int color, double alpha) { alpha = FastMath.clamp(alpha, 0, 1); @@ -238,4 +238,8 @@ public class Color { } return fallBackColor; } + + private Color() { + /* Singleton */ + } } diff --git a/vtm/src/org/oscim/core/BoundingBox.java b/vtm/src/org/oscim/core/BoundingBox.java index e89da4eb..d9050739 100644 --- a/vtm/src/org/oscim/core/BoundingBox.java +++ b/vtm/src/org/oscim/core/BoundingBox.java @@ -55,7 +55,7 @@ public class BoundingBox { /** * The hash code of this object. */ - private transient int hashCodeValue; + private final int hashCodeValue; /** * @param minLatitudeE6 @@ -163,29 +163,29 @@ public class BoundingBox { @Override public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("BoundingBox [minLat="); - sb.append(minLatitudeE6); - sb.append(", minLon="); - sb.append(minLongitudeE6); - sb.append(", maxLat="); - sb.append(maxLatitudeE6); - sb.append(", maxLon="); - sb.append(maxLongitudeE6); - sb.append("]"); - return sb.toString(); + return new StringBuilder() + .append("BoundingBox [minLat=") + .append(minLatitudeE6) + .append(", minLon=") + .append(minLongitudeE6) + .append(", maxLat=") + .append(maxLatitudeE6) + .append(", maxLon=") + .append(maxLongitudeE6) + .append("]") + .toString(); } public String format() { - StringBuilder sb = new StringBuilder(); - sb.append(minLatitudeE6 / CONVERSION_FACTOR); - sb.append(','); - sb.append(minLongitudeE6 / CONVERSION_FACTOR); - sb.append(','); - sb.append(maxLatitudeE6 / CONVERSION_FACTOR); - sb.append(','); - sb.append(maxLongitudeE6 / CONVERSION_FACTOR); - return sb.toString(); + return new StringBuilder() + .append(minLatitudeE6 / CONVERSION_FACTOR) + .append(',') + .append(minLongitudeE6 / CONVERSION_FACTOR) + .append(',') + .append(maxLatitudeE6 / CONVERSION_FACTOR) + .append(',') + .append(maxLongitudeE6 / CONVERSION_FACTOR) + .toString(); } /** diff --git a/vtm/src/org/oscim/core/GeoPoint.java b/vtm/src/org/oscim/core/GeoPoint.java index 82979d28..1c342182 100644 --- a/vtm/src/org/oscim/core/GeoPoint.java +++ b/vtm/src/org/oscim/core/GeoPoint.java @@ -134,13 +134,13 @@ public class GeoPoint implements Comparable<GeoPoint> { @Override public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("GeoPoint [lat="); - sb.append(this.getLatitude()); - sb.append(", lon="); - sb.append(this.getLongitude()); - sb.append("]"); - return sb.toString(); + return new StringBuilder() + .append("GeoPoint [lat=") + .append(this.getLatitude()) + .append(", lon=") + .append(this.getLongitude()) + .append("]") + .toString(); } /** diff --git a/vtm/src/org/oscim/core/GeometryBuffer.java b/vtm/src/org/oscim/core/GeometryBuffer.java index 71ce291e..8cd5487d 100644 --- a/vtm/src/org/oscim/core/GeometryBuffer.java +++ b/vtm/src/org/oscim/core/GeometryBuffer.java @@ -328,7 +328,7 @@ public class GeometryBuffer { for (int j = 0; j < index[i]; j += 2) { sb.append('[') .append(points[o + j]) - .append(",") + .append(',') .append(points[o + j + 1]) .append(']'); } diff --git a/vtm/src/org/oscim/core/Tag.java b/vtm/src/org/oscim/core/Tag.java index 421a97b1..5ad022e6 100644 --- a/vtm/src/org/oscim/core/Tag.java +++ b/vtm/src/org/oscim/core/Tag.java @@ -148,7 +148,7 @@ public class Tag { * the textual representation of the tag. */ public static Tag parse(String tag) { - int splitPosition = tag.indexOf("="); + int splitPosition = tag.indexOf('='); if (splitPosition < 0) { return new Tag(tag, ""); } diff --git a/vtm/src/org/oscim/core/Tile.java b/vtm/src/org/oscim/core/Tile.java index 5c77bac9..93deb8af 100644 --- a/vtm/src/org/oscim/core/Tile.java +++ b/vtm/src/org/oscim/core/Tile.java @@ -60,15 +60,15 @@ public class Tile { @Override public String toString() { - StringBuilder stringBuilder = new StringBuilder(); - stringBuilder.append("[X:"); - stringBuilder.append(this.tileX); - stringBuilder.append(", Y:"); - stringBuilder.append(this.tileY); - stringBuilder.append(", Z:"); - stringBuilder.append(this.zoomLevel); - stringBuilder.append("]"); - return stringBuilder.toString(); + return new StringBuilder() + .append("[X:") + .append(this.tileX) + .append(", Y:") + .append(this.tileY) + .append(", Z:") + .append(this.zoomLevel) + .append("]") + .toString(); } @Override diff --git a/vtm/src/org/oscim/layers/tile/TileManager.java b/vtm/src/org/oscim/layers/tile/TileManager.java index d6036fe3..8ca2f5b7 100644 --- a/vtm/src/org/oscim/layers/tile/TileManager.java +++ b/vtm/src/org/oscim/layers/tile/TileManager.java @@ -47,23 +47,14 @@ public class TileManager { public final static Event TILE_LOADED = new Event(); public final static Event TILE_REMOVED = new Event(); - public final EventDispatcher<Listener, MapTile> events = new EventDispatcher<Listener, MapTile>() { - @Override - public void tell(Listener l, Event event, MapTile tile) { - l.onTileManagerEvent(event, tile); - } - }; - - public interface Listener extends EventListener { - void onTileManagerEvent(Event event, MapTile tile); - }; - - private int mCacheLimit; + private final int mCacheLimit; private int mCacheReduce; - private int mMinZoom; - private int mMaxZoom; + private final int mMinZoom; + private final int mMaxZoom; + + private int[] mZoomTable; /** * limit number tiles with new data not uploaded to GL @@ -105,6 +96,8 @@ public class TileManager { /* job queue filled in TileManager and polled by TileLoaders */ private final JobQueue jobQueue; + private final float[] mMapPlane = new float[8]; + private final QuadTree<TileNode, MapTile> mIndex = new QuadTree<TileNode, MapTile>() { @Override @@ -124,7 +117,17 @@ public class TileManager { } }; - private final float[] mMapPlane = new float[8]; + public final EventDispatcher<Listener, MapTile> events = new EventDispatcher<Listener, MapTile>() { + + @Override + public void tell(Listener l, Event event, MapTile tile) { + l.onTileManagerEvent(event, tile); + } + }; + + public interface Listener extends EventListener { + void onTileManagerEvent(Event event, MapTile tile); + }; public TileManager(Map map, int minZoom, int maxZoom, int cacheLimit) { mMap = map; @@ -144,8 +147,6 @@ public class TileManager { mUpdateSerial = 0; } - private int[] mZoomTable; - public void setZoomTable(int[] zoomLevel) { mZoomTable = zoomLevel; @@ -524,7 +525,7 @@ public class TileManager { if (!success || tile.state == CANCEL) { log.debug("loading {}: {}", - (!success ? "failed" : "canceled"), + (success ? "canceled" : "failed"), tile); tile.clear(); return; diff --git a/vtm/src/org/oscim/layers/tile/s3db/S3DBTileLoader.java b/vtm/src/org/oscim/layers/tile/s3db/S3DBTileLoader.java index 92c1abc8..59534e7b 100644 --- a/vtm/src/org/oscim/layers/tile/s3db/S3DBTileLoader.java +++ b/vtm/src/org/oscim/layers/tile/s3db/S3DBTileLoader.java @@ -22,7 +22,7 @@ class S3DBTileLoader extends TileLoader { static final Logger log = LoggerFactory.getLogger(S3DBTileLoader.class); /** current TileDataSource used by this MapTileLoader */ - private ITileDataSource mTileDataSource; + private final ITileDataSource mTileDataSource; private ExtrusionLayer mLayers; private ExtrusionLayer mRoofs; diff --git a/vtm/src/org/oscim/map/Animator.java b/vtm/src/org/oscim/map/Animator.java index 6dd9d94d..c4180483 100644 --- a/vtm/src/org/oscim/map/Animator.java +++ b/vtm/src/org/oscim/map/Animator.java @@ -35,16 +35,12 @@ public class Animator { //static final Logger log = LoggerFactory.getLogger(MapAnimator.class); - public Animator(Map map) { - mMap = map; - } - - private final int ANIM_NONE = 0; - private final int ANIM_MOVE = 1 << 0; - private final int ANIM_SCALE = 1 << 1; - private final int ANIM_ROTATE = 1 << 2; - private final int ANIM_TILT = 1 << 3; - private final int ANIM_FLING = 1 << 4; + private final static int ANIM_NONE = 0; + private final static int ANIM_MOVE = 1 << 0; + private final static int ANIM_SCALE = 1 << 1; + private final static int ANIM_ROTATE = 1 << 2; + private final static int ANIM_TILT = 1 << 3; + private final static int ANIM_FLING = 1 << 4; private final Map mMap; @@ -61,6 +57,10 @@ public class Animator { private int mState = ANIM_NONE; + public Animator(Map map) { + mMap = map; + } + public synchronized void animateTo(long duration, BoundingBox bbox) { mMap.getMapPosition(mStartPos); /* TODO for large distance first scale out, then in diff --git a/vtm/src/org/oscim/renderer/GridRenderer.java b/vtm/src/org/oscim/renderer/GridRenderer.java index 93da94d9..fa1cdd8a 100644 --- a/vtm/src/org/oscim/renderer/GridRenderer.java +++ b/vtm/src/org/oscim/renderer/GridRenderer.java @@ -32,7 +32,7 @@ public class GridRenderer extends ElementRenderer { private final TextStyle mText; private final LineLayer mLineLayer; private final GeometryBuffer mLines; - private final StringBuffer mStringBuffer; + private final StringBuilder mStringBuffer; private int mCurX, mCurY, mCurZ; @@ -77,7 +77,7 @@ public class GridRenderer extends ElementRenderer { mLineLayer = layers.addLineLayer(0, lineStyle); mLineLayer.addLine(mLines); - mStringBuffer = new StringBuffer(32); + mStringBuffer = new StringBuilder(32); } private void addLabels(int x, int y, int z) { @@ -86,17 +86,17 @@ public class GridRenderer extends ElementRenderer { TextLayer tl = mTextLayer; tl.clear(); - StringBuffer sb = mStringBuffer; + StringBuilder sb = mStringBuffer; for (int yy = -2; yy < 2; yy++) { for (int xx = -2; xx < 2; xx++) { sb.setLength(0); - sb.append(x + xx); - sb.append(" / "); - sb.append(y + yy); - sb.append(" / "); - sb.append(z); + sb.append(x + xx) + .append(" / ") + .append(y + yy) + .append(" / ") + .append(z); TextItem ti = TextItem.pool.get(); ti.set(s * xx + s / 2, s * yy + s / 2, sb.toString(), mText); diff --git a/vtm/src/org/oscim/renderer/elements/ElementLayers.java b/vtm/src/org/oscim/renderer/elements/ElementLayers.java index 7b2ba56b..1c087ea8 100644 --- a/vtm/src/org/oscim/renderer/elements/ElementLayers.java +++ b/vtm/src/org/oscim/renderer/elements/ElementLayers.java @@ -40,18 +40,16 @@ public class ElementLayers extends TileData { static final Logger log = LoggerFactory.getLogger(ElementLayers.class); - public static void initRenderer(GL20 gl) { - RenderElement.GL = gl; + public final static int[] VERTEX_SHORT_CNT = { + 4, // LINE_VERTEX + 6, // TEXLINE_VERTEX + 2, // POLY_VERTEX + 2, // MESH_VERTEX + 4, // EXTRUSION_VERTEX + }; - LineLayer.Renderer.init(); - LineTexLayer.Renderer.init(); - PolygonLayer.Renderer.init(); - TextureLayer.Renderer.init(); - BitmapLayer.Renderer.init(); - MeshLayer.Renderer.init(); - - TextureItem.init(gl); - } + private final static int TEXTURE_VERTEX_SHORTS = 6; + private final static int SHORT_BYTES = 2; /** mixed Polygon- and LineLayer */ private RenderElement baseLayers; @@ -269,17 +267,6 @@ public class ElementLayers extends TileData { return layer; } - public final static int[] VERTEX_SHORT_CNT = { - 4, // LINE_VERTEX - 6, // TEXLINE_VERTEX - 2, // POLY_VERTEX - 2, // MESH_VERTEX - 4, // EXTRUSION_VERTEX - }; - - private final static int TEXTURE_VERTEX_SHORTS = 6; - private final static int SHORT_BYTES = 2; - // TODO move to specific layer implementation public int getSize() { int size = 0; @@ -399,4 +386,17 @@ public class ElementLayers extends TileData { clear(); } + public static void initRenderer(GL20 gl) { + RenderElement.GL = gl; + + LineLayer.Renderer.init(); + LineTexLayer.Renderer.init(); + PolygonLayer.Renderer.init(); + TextureLayer.Renderer.init(); + BitmapLayer.Renderer.init(); + MeshLayer.Renderer.init(); + + TextureItem.init(gl); + } + } diff --git a/vtm/src/org/oscim/renderer/elements/PolygonLayer.java b/vtm/src/org/oscim/renderer/elements/PolygonLayer.java index 7fa68e42..01efd6b8 100644 --- a/vtm/src/org/oscim/renderer/elements/PolygonLayer.java +++ b/vtm/src/org/oscim/renderer/elements/PolygonLayer.java @@ -400,12 +400,12 @@ public final class PolygonLayer extends RenderElement { // TODO true could be avoided when same shader and vbo setShader(polyShader, v, true); - if (color != 0) { - GLUtils.setColor(polyShader.uColor, color, alpha); - GLState.blend(true); - } else { + if (color == 0) { /* disable drawing to framebuffer (will be re-enabled in fill) */ GL.glColorMask(false, false, false, false); + } else { + GLUtils.setColor(polyShader.uColor, color, alpha); + GLState.blend(true); } // TODO always pass stencil test: <-- only if not proxy? @@ -460,5 +460,9 @@ public final class PolygonLayer extends RenderElement { // // GLUtils.checkGlError("draw debug"); //} + + private Renderer() { + /* Singleton */ + } } } diff --git a/vtm/src/org/oscim/theme/XmlThemeBuilder.java b/vtm/src/org/oscim/theme/XmlThemeBuilder.java index 2a6de087..67b63970 100644 --- a/vtm/src/org/oscim/theme/XmlThemeBuilder.java +++ b/vtm/src/org/oscim/theme/XmlThemeBuilder.java @@ -119,16 +119,8 @@ public class XmlThemeBuilder extends DefaultHandler { */ public static void logUnknownAttribute(String element, String name, String value, int attributeIndex) { - StringBuilder sb = new StringBuilder(); - sb.append("unknown attribute in element "); - sb.append(element); - sb.append(" ("); - sb.append(attributeIndex); - sb.append("): "); - sb.append(name); - sb.append('='); - sb.append(value); - log.debug(sb.toString()); + log.debug("unknown attribute in element {} () : {} = {}", + element, attributeIndex, name, value); } private final ArrayList<RuleBuilder> mRulesList = new ArrayList<RuleBuilder>(); diff --git a/vtm/src/org/oscim/tiling/TileSource.java b/vtm/src/org/oscim/tiling/TileSource.java index a6b6f6c5..ee12528c 100644 --- a/vtm/src/org/oscim/tiling/TileSource.java +++ b/vtm/src/org/oscim/tiling/TileSource.java @@ -131,13 +131,13 @@ public abstract class TileSource { @Override public String toString() { - StringBuilder stringBuilder = new StringBuilder(); - stringBuilder.append("FileOpenResult [success="); - stringBuilder.append(this.success); - stringBuilder.append(", errorMessage="); - stringBuilder.append(this.errorMessage); - stringBuilder.append("]"); - return stringBuilder.toString(); + return new StringBuilder() + .append("FileOpenResult [success=") + .append(this.success) + .append(", errorMessage=") + .append(this.errorMessage) + .append("]") + .toString(); } } } diff --git a/vtm/src/org/oscim/tiling/source/LwHttp.java b/vtm/src/org/oscim/tiling/source/LwHttp.java index 66f959d9..385a4bdf 100644 --- a/vtm/src/org/oscim/tiling/source/LwHttp.java +++ b/vtm/src/org/oscim/tiling/source/LwHttp.java @@ -29,6 +29,7 @@ import java.util.Map.Entry; import org.oscim.core.Tile; import org.oscim.utils.ArrayUtils; +import org.oscim.utils.IOUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -408,10 +409,7 @@ public class LwHttp { if (mSocket == null) return; - try { - mSocket.close(); - } catch (IOException e) { - } + IOUtils.closeQuietly(mSocket); mSocket = null; mCommandStream = null; mResponseStream = null; diff --git a/vtm/src/org/oscim/tiling/source/mapfile/QueryParameters.java b/vtm/src/org/oscim/tiling/source/mapfile/QueryParameters.java index a1948788..22a0813b 100644 --- a/vtm/src/org/oscim/tiling/source/mapfile/QueryParameters.java +++ b/vtm/src/org/oscim/tiling/source/mapfile/QueryParameters.java @@ -31,30 +31,30 @@ class QueryParameters { @Override public String toString() { - StringBuilder stringBuilder = new StringBuilder(); - stringBuilder.append("QueryParameters [fromBaseTileX="); - stringBuilder.append(this.fromBaseTileX); - stringBuilder.append(", fromBaseTileY="); - stringBuilder.append(this.fromBaseTileY); - stringBuilder.append(", fromBlockX="); - stringBuilder.append(this.fromBlockX); - stringBuilder.append(", fromBlockY="); - stringBuilder.append(this.fromBlockY); - stringBuilder.append(", queryTileBitmask="); - stringBuilder.append(this.queryTileBitmask); - stringBuilder.append(", queryZoomLevel="); - stringBuilder.append(this.queryZoomLevel); - stringBuilder.append(", toBaseTileX="); - stringBuilder.append(this.toBaseTileX); - stringBuilder.append(", toBaseTileY="); - stringBuilder.append(this.toBaseTileY); - stringBuilder.append(", toBlockX="); - stringBuilder.append(this.toBlockX); - stringBuilder.append(", toBlockY="); - stringBuilder.append(this.toBlockY); - stringBuilder.append(", useTileBitmask="); - stringBuilder.append(this.useTileBitmask); - stringBuilder.append("]"); - return stringBuilder.toString(); + return new StringBuilder() + .append("QueryParameters [fromBaseTileX=") + .append(this.fromBaseTileX) + .append(", fromBaseTileY=") + .append(this.fromBaseTileY) + .append(", fromBlockX=") + .append(this.fromBlockX) + .append(", fromBlockY=") + .append(this.fromBlockY) + .append(", queryTileBitmask=") + .append(this.queryTileBitmask) + .append(", queryZoomLevel=") + .append(this.queryZoomLevel) + .append(", toBaseTileX=") + .append(this.toBaseTileX) + .append(", toBaseTileY=") + .append(this.toBaseTileY) + .append(", toBlockX=") + .append(this.toBlockX) + .append(", toBlockY=") + .append(this.toBlockY) + .append(", useTileBitmask=") + .append(this.useTileBitmask) + .append("]") + .toString(); } } diff --git a/vtm/src/org/oscim/tiling/source/mapfile/header/SubFileParameter.java b/vtm/src/org/oscim/tiling/source/mapfile/header/SubFileParameter.java index 0a3ac796..bb975260 100644 --- a/vtm/src/org/oscim/tiling/source/mapfile/header/SubFileParameter.java +++ b/vtm/src/org/oscim/tiling/source/mapfile/header/SubFileParameter.java @@ -177,37 +177,37 @@ public class SubFileParameter { @Override public String toString() { - StringBuilder stringBuilder = new StringBuilder(); - stringBuilder.append("SubFileParameter [baseZoomLevel="); - stringBuilder.append(this.baseZoomLevel); - stringBuilder.append(", blockEntriesTableSize="); - stringBuilder.append(this.blockEntriesTableSize); - stringBuilder.append(", blocksHeight="); - stringBuilder.append(this.blocksHeight); - stringBuilder.append(", blocksWidth="); - stringBuilder.append(this.blocksWidth); - stringBuilder.append(", boundaryTileBottom="); - stringBuilder.append(this.boundaryTileBottom); - stringBuilder.append(", boundaryTileLeft="); - stringBuilder.append(this.boundaryTileLeft); - stringBuilder.append(", boundaryTileRight="); - stringBuilder.append(this.boundaryTileRight); - stringBuilder.append(", boundaryTileTop="); - stringBuilder.append(this.boundaryTileTop); - stringBuilder.append(", indexStartAddress="); - stringBuilder.append(this.indexStartAddress); - stringBuilder.append(", numberOfBlocks="); - stringBuilder.append(this.numberOfBlocks); - stringBuilder.append(", startAddress="); - stringBuilder.append(this.startAddress); - stringBuilder.append(", subFileSize="); - stringBuilder.append(this.subFileSize); - stringBuilder.append(", zoomLevelMax="); - stringBuilder.append(this.zoomLevelMax); - stringBuilder.append(", zoomLevelMin="); - stringBuilder.append(this.zoomLevelMin); - stringBuilder.append("]"); - return stringBuilder.toString(); + return new StringBuilder() + .append("SubFileParameter [baseZoomLevel=") + .append(this.baseZoomLevel) + .append(", blockEntriesTableSize=") + .append(this.blockEntriesTableSize) + .append(", blocksHeight=") + .append(this.blocksHeight) + .append(", blocksWidth=") + .append(this.blocksWidth) + .append(", boundaryTileBottom=") + .append(this.boundaryTileBottom) + .append(", boundaryTileLeft=") + .append(this.boundaryTileLeft) + .append(", boundaryTileRight=") + .append(this.boundaryTileRight) + .append(", boundaryTileTop=") + .append(this.boundaryTileTop) + .append(", indexStartAddress=") + .append(this.indexStartAddress) + .append(", numberOfBlocks=") + .append(this.numberOfBlocks) + .append(", startAddress=") + .append(this.startAddress) + .append(", subFileSize=") + .append(this.subFileSize) + .append(", zoomLevelMax=") + .append(this.zoomLevelMax) + .append(", zoomLevelMin=") + .append(this.zoomLevelMin) + .append("]") + .toString(); } /** diff --git a/vtm/src/org/oscim/utils/IOUtils.java b/vtm/src/org/oscim/utils/IOUtils.java index d2e6cb21..00a7ea70 100644 --- a/vtm/src/org/oscim/utils/IOUtils.java +++ b/vtm/src/org/oscim/utils/IOUtils.java @@ -18,6 +18,7 @@ package org.oscim.utils; import java.io.Closeable; import java.io.IOException; +import java.net.Socket; import java.util.logging.Level; /** @@ -43,6 +44,17 @@ public final class IOUtils { } } + /* for old java versions */ + public static void closeQuietly(Socket closeable) { + try { + if (closeable != null) { + closeable.close(); + } + } catch (IOException e) { + //log.debug(e.getMessage() + " " + e); + } + } + private IOUtils() { } }