package mil.nga.giat.geowave.core.index;
import java.util.Arrays;
public class MultiDimensionalCoordinates
{
// this is a generic placeholder for tiers
private final byte[] multiDimensionalId;
private final Coordinate[] coordinatePerDimension;
public MultiDimensionalCoordinates() {
multiDimensionalId = new byte[] {};
coordinatePerDimension = new Coordinate[] {};
}
public MultiDimensionalCoordinates(
final byte[] multiDimensionalId,
final Coordinate[] coordinatePerDimension ) {
super();
this.multiDimensionalId = multiDimensionalId;
this.coordinatePerDimension = coordinatePerDimension;
}
public byte[] getMultiDimensionalId() {
return multiDimensionalId;
}
public Coordinate getCoordinate(
final int dimension ) {
return coordinatePerDimension[dimension];
}
public int getNumDimensions() {
return coordinatePerDimension.length;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = (prime * result) + Arrays.hashCode(coordinatePerDimension);
result = (prime * result) + Arrays.hashCode(multiDimensionalId);
return result;
}
@Override
public boolean equals(
final Object obj ) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final MultiDimensionalCoordinates other = (MultiDimensionalCoordinates) obj;
if (!Arrays.equals(
coordinatePerDimension,
other.coordinatePerDimension)) {
return false;
}
if (!Arrays.equals(
multiDimensionalId,
other.multiDimensionalId)) {
return false;
}
return true;
}
}