package com.revolsys.gis.grid;
import com.revolsys.datatype.DataType;
import com.revolsys.geometry.model.BoundingBox;
import com.revolsys.geometry.model.GeometryFactory;
import com.revolsys.geometry.model.Polygon;
import com.revolsys.record.RecordState;
public class SimpleRectangularMapTile implements RectangularMapTile {
private final BoundingBox boundingBox;
private final String formattedName;
private final RectangularMapGrid grid;
private final String name;
public SimpleRectangularMapTile(final RectangularMapGrid grid, final String formattedName,
final String name, final BoundingBox boundingBox) {
this.grid = grid;
this.name = name;
this.formattedName = formattedName;
this.boundingBox = boundingBox;
}
@Override
public SimpleRectangularMapTile clone() {
try {
return (SimpleRectangularMapTile)super.clone();
} catch (final CloneNotSupportedException e) {
return null;
}
}
@Override
public boolean equals(final Object object) {
if (this == object) {
return true;
} else if (object == null) {
return false;
} else if (object instanceof SimpleRectangularMapTile) {
final SimpleRectangularMapTile tile = (SimpleRectangularMapTile)object;
if (DataType.equal(this.boundingBox, tile.boundingBox)) {
if (DataType.equal(this.grid, tile.grid)) {
if (DataType.equal(this.name, tile.name)) {
return true;
}
}
}
}
return false;
}
@Override
public BoundingBox getBoundingBox() {
return this.boundingBox;
}
@Override
public String getFormattedName() {
return this.formattedName;
}
@Override
public RectangularMapGrid getGrid() {
return this.grid;
}
@Override
public String getName() {
return this.name;
}
@Override
public Polygon getPolygon(final GeometryFactory factory, final int numPoints) {
return this.boundingBox.toPolygon(factory, numPoints);
}
@Override
public Polygon getPolygon(final GeometryFactory factory, final int numXPoints,
final int numYPoints) {
return this.boundingBox.toPolygon(factory, numXPoints, numYPoints);
}
@Override
public Polygon getPolygon(final int numPoints) {
final GeometryFactory factory = GeometryFactory.floating3(4326);
return getPolygon(factory, numPoints);
}
@Override
public Polygon getPolygon(final int numXPoints, final int numYPoints) {
final GeometryFactory factory = GeometryFactory.floating3(4326);
return getPolygon(factory, numXPoints, numYPoints);
}
@Override
public int hashCode() {
return this.name.hashCode();
}
@Override
public boolean isState(final RecordState state) {
return RecordState.NEW == state;
}
@Override
public String toString() {
return this.name;
}
}