some modification suggested by pmd:
- move fields before method - chain StringBuilder appends
This commit is contained in:
parent
e13bc7822f
commit
9bca50dfed
@ -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();
|
||||
|
@ -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 */
|
||||
}
|
||||
}
|
||||
|
@ -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();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -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();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -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(']');
|
||||
}
|
||||
|
@ -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, "");
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -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 */
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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>();
|
||||
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
@ -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();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -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() {
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user