package com.nutiteq.net;
import com.nutiteq.cache.Cache;
import com.nutiteq.components.MapTile;
import com.nutiteq.io.ResourceDataWaiter;
import com.nutiteq.io.ResourceRequestor;
import com.nutiteq.maps.UnstreamedMap;
public class MapTileRetriever implements ResourceRequestor, ResourceDataWaiter {
private final MapTile tile;
private final UnstreamedMap map;
private boolean error;
public MapTileRetriever(final MapTile tile, final UnstreamedMap map) {
this.tile = tile;
this.map = map;
}
public String resourcePath() {
final String path = map.buildPath(tile.getX(), tile.getY(), tile.getZoom());
final int areaParamIndex = path.indexOf("|a=");
if (areaParamIndex > 0) {
return path.substring(0, areaParamIndex);
} else {
return path;
}
}
public void notifyError() {
error = true;
}
public void dataRetrieved(final byte[] data) {
tile.setImagesData(new byte[][] { data });
}
public boolean hadError() {
return error;
}
public int getCachingLevel() {
return Cache.CACHE_LEVEL_MEMORY | Cache.CACHE_LEVEL_PERSISTENT;
}
}