some modification suggested by pmd:

- move fields before method
- chain StringBuilder appends
This commit is contained in:
Hannes Janetzek 2014-04-02 22:29:20 +02:00
parent e13bc7822f
commit 9bca50dfed
19 changed files with 192 additions and 182 deletions

View File

@ -48,8 +48,7 @@ public abstract class AssetAdapter {
String line; String line;
try { try {
while ((line = r.readLine()) != null) { while ((line = r.readLine()) != null) {
sb.append(line); sb.append(line).append('\n');
sb.append('\n');
} }
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();

View File

@ -19,7 +19,7 @@ package org.oscim.backend.canvas;
import org.oscim.utils.FastMath; import org.oscim.utils.FastMath;
public class Color { public final class Color {
public static int fadePremul(int color, double alpha) { public static int fadePremul(int color, double alpha) {
alpha = FastMath.clamp(alpha, 0, 1); alpha = FastMath.clamp(alpha, 0, 1);
@ -238,4 +238,8 @@ public class Color {
} }
return fallBackColor; return fallBackColor;
} }
private Color() {
/* Singleton */
}
} }

View File

@ -55,7 +55,7 @@ public class BoundingBox {
/** /**
* The hash code of this object. * The hash code of this object.
*/ */
private transient int hashCodeValue; private final int hashCodeValue;
/** /**
* @param minLatitudeE6 * @param minLatitudeE6
@ -163,29 +163,29 @@ public class BoundingBox {
@Override @Override
public String toString() { public String toString() {
StringBuilder sb = new StringBuilder(); return new StringBuilder()
sb.append("BoundingBox [minLat="); .append("BoundingBox [minLat=")
sb.append(minLatitudeE6); .append(minLatitudeE6)
sb.append(", minLon="); .append(", minLon=")
sb.append(minLongitudeE6); .append(minLongitudeE6)
sb.append(", maxLat="); .append(", maxLat=")
sb.append(maxLatitudeE6); .append(maxLatitudeE6)
sb.append(", maxLon="); .append(", maxLon=")
sb.append(maxLongitudeE6); .append(maxLongitudeE6)
sb.append("]"); .append("]")
return sb.toString(); .toString();
} }
public String format() { public String format() {
StringBuilder sb = new StringBuilder(); return new StringBuilder()
sb.append(minLatitudeE6 / CONVERSION_FACTOR); .append(minLatitudeE6 / CONVERSION_FACTOR)
sb.append(','); .append(',')
sb.append(minLongitudeE6 / CONVERSION_FACTOR); .append(minLongitudeE6 / CONVERSION_FACTOR)
sb.append(','); .append(',')
sb.append(maxLatitudeE6 / CONVERSION_FACTOR); .append(maxLatitudeE6 / CONVERSION_FACTOR)
sb.append(','); .append(',')
sb.append(maxLongitudeE6 / CONVERSION_FACTOR); .append(maxLongitudeE6 / CONVERSION_FACTOR)
return sb.toString(); .toString();
} }
/** /**

View File

@ -134,13 +134,13 @@ public class GeoPoint implements Comparable<GeoPoint> {
@Override @Override
public String toString() { public String toString() {
StringBuilder sb = new StringBuilder(); return new StringBuilder()
sb.append("GeoPoint [lat="); .append("GeoPoint [lat=")
sb.append(this.getLatitude()); .append(this.getLatitude())
sb.append(", lon="); .append(", lon=")
sb.append(this.getLongitude()); .append(this.getLongitude())
sb.append("]"); .append("]")
return sb.toString(); .toString();
} }
/** /**

View File

@ -328,7 +328,7 @@ public class GeometryBuffer {
for (int j = 0; j < index[i]; j += 2) { for (int j = 0; j < index[i]; j += 2) {
sb.append('[') sb.append('[')
.append(points[o + j]) .append(points[o + j])
.append(",") .append(',')
.append(points[o + j + 1]) .append(points[o + j + 1])
.append(']'); .append(']');
} }

View File

@ -148,7 +148,7 @@ public class Tag {
* the textual representation of the tag. * the textual representation of the tag.
*/ */
public static Tag parse(String tag) { public static Tag parse(String tag) {
int splitPosition = tag.indexOf("="); int splitPosition = tag.indexOf('=');
if (splitPosition < 0) { if (splitPosition < 0) {
return new Tag(tag, ""); return new Tag(tag, "");
} }

View File

@ -60,15 +60,15 @@ public class Tile {
@Override @Override
public String toString() { public String toString() {
StringBuilder stringBuilder = new StringBuilder(); return new StringBuilder()
stringBuilder.append("[X:"); .append("[X:")
stringBuilder.append(this.tileX); .append(this.tileX)
stringBuilder.append(", Y:"); .append(", Y:")
stringBuilder.append(this.tileY); .append(this.tileY)
stringBuilder.append(", Z:"); .append(", Z:")
stringBuilder.append(this.zoomLevel); .append(this.zoomLevel)
stringBuilder.append("]"); .append("]")
return stringBuilder.toString(); .toString();
} }
@Override @Override

View File

@ -47,23 +47,14 @@ public class TileManager {
public final static Event TILE_LOADED = new Event(); public final static Event TILE_LOADED = new Event();
public final static Event TILE_REMOVED = new Event(); public final static Event TILE_REMOVED = new Event();
public final EventDispatcher<Listener, MapTile> events = new EventDispatcher<Listener, MapTile>() {
@Override private final int mCacheLimit;
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 int mCacheReduce; private int mCacheReduce;
private int mMinZoom; private final int mMinZoom;
private int mMaxZoom; private final int mMaxZoom;
private int[] mZoomTable;
/** /**
* limit number tiles with new data not uploaded to GL * 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 */ /* job queue filled in TileManager and polled by TileLoaders */
private final JobQueue jobQueue; private final JobQueue jobQueue;
private final float[] mMapPlane = new float[8];
private final QuadTree<TileNode, MapTile> mIndex = new QuadTree<TileNode, MapTile>() { private final QuadTree<TileNode, MapTile> mIndex = new QuadTree<TileNode, MapTile>() {
@Override @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) { public TileManager(Map map, int minZoom, int maxZoom, int cacheLimit) {
mMap = map; mMap = map;
@ -144,8 +147,6 @@ public class TileManager {
mUpdateSerial = 0; mUpdateSerial = 0;
} }
private int[] mZoomTable;
public void setZoomTable(int[] zoomLevel) { public void setZoomTable(int[] zoomLevel) {
mZoomTable = zoomLevel; mZoomTable = zoomLevel;
@ -524,7 +525,7 @@ public class TileManager {
if (!success || tile.state == CANCEL) { if (!success || tile.state == CANCEL) {
log.debug("loading {}: {}", log.debug("loading {}: {}",
(!success ? "failed" : "canceled"), (success ? "canceled" : "failed"),
tile); tile);
tile.clear(); tile.clear();
return; return;

View File

@ -22,7 +22,7 @@ class S3DBTileLoader extends TileLoader {
static final Logger log = LoggerFactory.getLogger(S3DBTileLoader.class); static final Logger log = LoggerFactory.getLogger(S3DBTileLoader.class);
/** current TileDataSource used by this MapTileLoader */ /** current TileDataSource used by this MapTileLoader */
private ITileDataSource mTileDataSource; private final ITileDataSource mTileDataSource;
private ExtrusionLayer mLayers; private ExtrusionLayer mLayers;
private ExtrusionLayer mRoofs; private ExtrusionLayer mRoofs;

View File

@ -35,16 +35,12 @@ public class Animator {
//static final Logger log = LoggerFactory.getLogger(MapAnimator.class); //static final Logger log = LoggerFactory.getLogger(MapAnimator.class);
public Animator(Map map) { private final static int ANIM_NONE = 0;
mMap = map; 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 int ANIM_NONE = 0; private final static int ANIM_TILT = 1 << 3;
private final int ANIM_MOVE = 1 << 0; private final static int ANIM_FLING = 1 << 4;
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 Map mMap; private final Map mMap;
@ -61,6 +57,10 @@ public class Animator {
private int mState = ANIM_NONE; private int mState = ANIM_NONE;
public Animator(Map map) {
mMap = map;
}
public synchronized void animateTo(long duration, BoundingBox bbox) { public synchronized void animateTo(long duration, BoundingBox bbox) {
mMap.getMapPosition(mStartPos); mMap.getMapPosition(mStartPos);
/* TODO for large distance first scale out, then in /* TODO for large distance first scale out, then in

View File

@ -32,7 +32,7 @@ public class GridRenderer extends ElementRenderer {
private final TextStyle mText; private final TextStyle mText;
private final LineLayer mLineLayer; private final LineLayer mLineLayer;
private final GeometryBuffer mLines; private final GeometryBuffer mLines;
private final StringBuffer mStringBuffer; private final StringBuilder mStringBuffer;
private int mCurX, mCurY, mCurZ; private int mCurX, mCurY, mCurZ;
@ -77,7 +77,7 @@ public class GridRenderer extends ElementRenderer {
mLineLayer = layers.addLineLayer(0, lineStyle); mLineLayer = layers.addLineLayer(0, lineStyle);
mLineLayer.addLine(mLines); mLineLayer.addLine(mLines);
mStringBuffer = new StringBuffer(32); mStringBuffer = new StringBuilder(32);
} }
private void addLabels(int x, int y, int z) { private void addLabels(int x, int y, int z) {
@ -86,17 +86,17 @@ public class GridRenderer extends ElementRenderer {
TextLayer tl = mTextLayer; TextLayer tl = mTextLayer;
tl.clear(); tl.clear();
StringBuffer sb = mStringBuffer; StringBuilder sb = mStringBuffer;
for (int yy = -2; yy < 2; yy++) { for (int yy = -2; yy < 2; yy++) {
for (int xx = -2; xx < 2; xx++) { for (int xx = -2; xx < 2; xx++) {
sb.setLength(0); sb.setLength(0);
sb.append(x + xx); sb.append(x + xx)
sb.append(" / "); .append(" / ")
sb.append(y + yy); .append(y + yy)
sb.append(" / "); .append(" / ")
sb.append(z); .append(z);
TextItem ti = TextItem.pool.get(); TextItem ti = TextItem.pool.get();
ti.set(s * xx + s / 2, s * yy + s / 2, sb.toString(), mText); ti.set(s * xx + s / 2, s * yy + s / 2, sb.toString(), mText);

View File

@ -40,18 +40,16 @@ public class ElementLayers extends TileData {
static final Logger log = LoggerFactory.getLogger(ElementLayers.class); static final Logger log = LoggerFactory.getLogger(ElementLayers.class);
public static void initRenderer(GL20 gl) { public final static int[] VERTEX_SHORT_CNT = {
RenderElement.GL = gl; 4, // LINE_VERTEX
6, // TEXLINE_VERTEX
2, // POLY_VERTEX
2, // MESH_VERTEX
4, // EXTRUSION_VERTEX
};
LineLayer.Renderer.init(); private final static int TEXTURE_VERTEX_SHORTS = 6;
LineTexLayer.Renderer.init(); private final static int SHORT_BYTES = 2;
PolygonLayer.Renderer.init();
TextureLayer.Renderer.init();
BitmapLayer.Renderer.init();
MeshLayer.Renderer.init();
TextureItem.init(gl);
}
/** mixed Polygon- and LineLayer */ /** mixed Polygon- and LineLayer */
private RenderElement baseLayers; private RenderElement baseLayers;
@ -269,17 +267,6 @@ public class ElementLayers extends TileData {
return layer; 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 // TODO move to specific layer implementation
public int getSize() { public int getSize() {
int size = 0; int size = 0;
@ -399,4 +386,17 @@ public class ElementLayers extends TileData {
clear(); 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);
}
} }

View File

@ -400,12 +400,12 @@ public final class PolygonLayer extends RenderElement {
// TODO true could be avoided when same shader and vbo // TODO true could be avoided when same shader and vbo
setShader(polyShader, v, true); setShader(polyShader, v, true);
if (color != 0) { if (color == 0) {
GLUtils.setColor(polyShader.uColor, color, alpha);
GLState.blend(true);
} else {
/* disable drawing to framebuffer (will be re-enabled in fill) */ /* disable drawing to framebuffer (will be re-enabled in fill) */
GL.glColorMask(false, false, false, false); 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? // TODO always pass stencil test: <-- only if not proxy?
@ -460,5 +460,9 @@ public final class PolygonLayer extends RenderElement {
// //
// GLUtils.checkGlError("draw debug"); // GLUtils.checkGlError("draw debug");
//} //}
private Renderer() {
/* Singleton */
}
} }
} }

View File

@ -119,16 +119,8 @@ public class XmlThemeBuilder extends DefaultHandler {
*/ */
public static void logUnknownAttribute(String element, String name, public static void logUnknownAttribute(String element, String name,
String value, int attributeIndex) { String value, int attributeIndex) {
StringBuilder sb = new StringBuilder(); log.debug("unknown attribute in element {} () : {} = {}",
sb.append("unknown attribute in element "); element, attributeIndex, name, value);
sb.append(element);
sb.append(" (");
sb.append(attributeIndex);
sb.append("): ");
sb.append(name);
sb.append('=');
sb.append(value);
log.debug(sb.toString());
} }
private final ArrayList<RuleBuilder> mRulesList = new ArrayList<RuleBuilder>(); private final ArrayList<RuleBuilder> mRulesList = new ArrayList<RuleBuilder>();

View File

@ -131,13 +131,13 @@ public abstract class TileSource {
@Override @Override
public String toString() { public String toString() {
StringBuilder stringBuilder = new StringBuilder(); return new StringBuilder()
stringBuilder.append("FileOpenResult [success="); .append("FileOpenResult [success=")
stringBuilder.append(this.success); .append(this.success)
stringBuilder.append(", errorMessage="); .append(", errorMessage=")
stringBuilder.append(this.errorMessage); .append(this.errorMessage)
stringBuilder.append("]"); .append("]")
return stringBuilder.toString(); .toString();
} }
} }
} }

View File

@ -29,6 +29,7 @@ import java.util.Map.Entry;
import org.oscim.core.Tile; import org.oscim.core.Tile;
import org.oscim.utils.ArrayUtils; import org.oscim.utils.ArrayUtils;
import org.oscim.utils.IOUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@ -408,10 +409,7 @@ public class LwHttp {
if (mSocket == null) if (mSocket == null)
return; return;
try { IOUtils.closeQuietly(mSocket);
mSocket.close();
} catch (IOException e) {
}
mSocket = null; mSocket = null;
mCommandStream = null; mCommandStream = null;
mResponseStream = null; mResponseStream = null;

View File

@ -31,30 +31,30 @@ class QueryParameters {
@Override @Override
public String toString() { public String toString() {
StringBuilder stringBuilder = new StringBuilder(); return new StringBuilder()
stringBuilder.append("QueryParameters [fromBaseTileX="); .append("QueryParameters [fromBaseTileX=")
stringBuilder.append(this.fromBaseTileX); .append(this.fromBaseTileX)
stringBuilder.append(", fromBaseTileY="); .append(", fromBaseTileY=")
stringBuilder.append(this.fromBaseTileY); .append(this.fromBaseTileY)
stringBuilder.append(", fromBlockX="); .append(", fromBlockX=")
stringBuilder.append(this.fromBlockX); .append(this.fromBlockX)
stringBuilder.append(", fromBlockY="); .append(", fromBlockY=")
stringBuilder.append(this.fromBlockY); .append(this.fromBlockY)
stringBuilder.append(", queryTileBitmask="); .append(", queryTileBitmask=")
stringBuilder.append(this.queryTileBitmask); .append(this.queryTileBitmask)
stringBuilder.append(", queryZoomLevel="); .append(", queryZoomLevel=")
stringBuilder.append(this.queryZoomLevel); .append(this.queryZoomLevel)
stringBuilder.append(", toBaseTileX="); .append(", toBaseTileX=")
stringBuilder.append(this.toBaseTileX); .append(this.toBaseTileX)
stringBuilder.append(", toBaseTileY="); .append(", toBaseTileY=")
stringBuilder.append(this.toBaseTileY); .append(this.toBaseTileY)
stringBuilder.append(", toBlockX="); .append(", toBlockX=")
stringBuilder.append(this.toBlockX); .append(this.toBlockX)
stringBuilder.append(", toBlockY="); .append(", toBlockY=")
stringBuilder.append(this.toBlockY); .append(this.toBlockY)
stringBuilder.append(", useTileBitmask="); .append(", useTileBitmask=")
stringBuilder.append(this.useTileBitmask); .append(this.useTileBitmask)
stringBuilder.append("]"); .append("]")
return stringBuilder.toString(); .toString();
} }
} }

View File

@ -177,37 +177,37 @@ public class SubFileParameter {
@Override @Override
public String toString() { public String toString() {
StringBuilder stringBuilder = new StringBuilder(); return new StringBuilder()
stringBuilder.append("SubFileParameter [baseZoomLevel="); .append("SubFileParameter [baseZoomLevel=")
stringBuilder.append(this.baseZoomLevel); .append(this.baseZoomLevel)
stringBuilder.append(", blockEntriesTableSize="); .append(", blockEntriesTableSize=")
stringBuilder.append(this.blockEntriesTableSize); .append(this.blockEntriesTableSize)
stringBuilder.append(", blocksHeight="); .append(", blocksHeight=")
stringBuilder.append(this.blocksHeight); .append(this.blocksHeight)
stringBuilder.append(", blocksWidth="); .append(", blocksWidth=")
stringBuilder.append(this.blocksWidth); .append(this.blocksWidth)
stringBuilder.append(", boundaryTileBottom="); .append(", boundaryTileBottom=")
stringBuilder.append(this.boundaryTileBottom); .append(this.boundaryTileBottom)
stringBuilder.append(", boundaryTileLeft="); .append(", boundaryTileLeft=")
stringBuilder.append(this.boundaryTileLeft); .append(this.boundaryTileLeft)
stringBuilder.append(", boundaryTileRight="); .append(", boundaryTileRight=")
stringBuilder.append(this.boundaryTileRight); .append(this.boundaryTileRight)
stringBuilder.append(", boundaryTileTop="); .append(", boundaryTileTop=")
stringBuilder.append(this.boundaryTileTop); .append(this.boundaryTileTop)
stringBuilder.append(", indexStartAddress="); .append(", indexStartAddress=")
stringBuilder.append(this.indexStartAddress); .append(this.indexStartAddress)
stringBuilder.append(", numberOfBlocks="); .append(", numberOfBlocks=")
stringBuilder.append(this.numberOfBlocks); .append(this.numberOfBlocks)
stringBuilder.append(", startAddress="); .append(", startAddress=")
stringBuilder.append(this.startAddress); .append(this.startAddress)
stringBuilder.append(", subFileSize="); .append(", subFileSize=")
stringBuilder.append(this.subFileSize); .append(this.subFileSize)
stringBuilder.append(", zoomLevelMax="); .append(", zoomLevelMax=")
stringBuilder.append(this.zoomLevelMax); .append(this.zoomLevelMax)
stringBuilder.append(", zoomLevelMin="); .append(", zoomLevelMin=")
stringBuilder.append(this.zoomLevelMin); .append(this.zoomLevelMin)
stringBuilder.append("]"); .append("]")
return stringBuilder.toString(); .toString();
} }
/** /**

View File

@ -18,6 +18,7 @@ package org.oscim.utils;
import java.io.Closeable; import java.io.Closeable;
import java.io.IOException; import java.io.IOException;
import java.net.Socket;
import java.util.logging.Level; 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() { private IOUtils() {
} }
} }