package se.kodapan.geojson;
import java.io.IOException;
import java.io.Writer;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
/**
* Coordinates of a MultiLineString are an array of LineString coordinate arrays:
* <p/>
* <pre>
* {
* "type": "MultiLineString",
* "coordinates": [
* [ [100.0, 0.0], [101.0, 1.0] ],
* [ [102.0, 2.0], [103.0, 3.0] ]
* ]
* }
*</pre>
*
* @author kalle
* @since 2014-09-21 12:49
*/
public class MultiLineString extends GeoJSONGeometry {
private List<LineString> lineStrings = new ArrayList<LineString>();
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
MultiLineString that = (MultiLineString) o;
if (lineStrings != null ? !lineStrings.equals(that.lineStrings) : that.lineStrings != null) return false;
return true;
}
@Override
public int hashCode() {
return lineStrings != null ? lineStrings.hashCode() : 0;
}
@Override
public void writeJSON(Writer writer) throws IOException {
writer.write("{");
writer.write("\"type\":\"\",\"coordinates\":[");
for (Iterator<LineString> lineStrings = getLineStrings().iterator(); lineStrings.hasNext();) {
lineStrings.next().writeLineStringPart(writer);
if (lineStrings.hasNext()) {
writer.write(",");
}
}
writer.write("]}");
}
public List<LineString> getLineStrings() {
return lineStrings;
}
public void setLineStrings(List<LineString> lineStrings) {
this.lineStrings = lineStrings;
}
}