org.mongodb.morphia.geo.GeometryCollection Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of morphia Show documentation
Show all versions of morphia Show documentation
Java Object Document Mapper for MongoDB
The newest version!
package org.mongodb.morphia.geo;
import org.mongodb.morphia.annotations.Embedded;
import org.mongodb.morphia.annotations.Entity;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* This class represents a collection of mixed GeoJson objects as per the GeoJSON
* specification. Therefore this entity will never have its own ID or store the its Class name.
*
* The factory for creating a MultiPoint is the {@code GeoJson.multiPoint} method.
*
* @see org.mongodb.morphia.geo.GeoJson
*/
@Embedded
@Entity(noClassnameStored = true)
public class GeometryCollection {
private final String type = "GeometryCollection";
private final List geometries;
@SuppressWarnings("UnusedDeclaration") // needed by morphia
private GeometryCollection() {
geometries = new ArrayList();
}
GeometryCollection(final List geometries) {
this.geometries = geometries;
}
GeometryCollection(final Geometry... geometries) {
this.geometries = Arrays.asList(geometries);
}
@Override
public int hashCode() {
int result = type.hashCode();
result = 31 * result + geometries.hashCode();
return result;
}
@Override
public boolean equals(final Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
GeometryCollection that = (GeometryCollection) o;
if (!geometries.equals(that.geometries)) {
return false;
}
if (!type.equals(that.type)) {
return false;
}
return true;
}
@Override
public String toString() {
return "GeometryCollection{"
+ "type='" + type + '\''
+ ", geometries=" + geometries
+ '}';
}
}