package kmlframework.kml;
import java.util.List;
public class Polygon extends Geometry {
private Boolean extrude;
private Boolean tessellate;
private AltitudeModeEnum altitudeMode;
private LinearRing outerBoundary;
private List<LinearRing> innerBoundaries;
public Polygon() {}
public Polygon(Boolean extrude, Boolean tessellate, AltitudeModeEnum altitudeMode, LinearRing outerBoundary, List<LinearRing> innerBoundaries) {
this.extrude = extrude;
this.tessellate = tessellate;
this.altitudeMode = altitudeMode;
this.outerBoundary = outerBoundary;
this.innerBoundaries = innerBoundaries;
}
public Boolean getExtrude() {
return extrude;
}
public void setExtrude(Boolean extrude) {
this.extrude = extrude;
}
public Boolean getTessellate() {
return tessellate;
}
public void setTessellate(Boolean tessellate) {
this.tessellate = tessellate;
}
public AltitudeModeEnum getAltitudeMode() {
return altitudeMode;
}
public void setAltitudeMode(AltitudeModeEnum altitudeMode) {
this.altitudeMode = altitudeMode;
}
public LinearRing getOuterBoundary() {
return outerBoundary;
}
public void setOuterBoundary(LinearRing outerBoundary) {
this.outerBoundary = outerBoundary;
}
public List<LinearRing> getInnerBoundaries() {
return innerBoundaries;
}
public void setInnerBoundaries(List<LinearRing> innerBoundaries) {
this.innerBoundaries = innerBoundaries;
}
public void write(Kml kml) throws KmlException {
// We validate the data
if (outerBoundary == null) {
throw new KmlException("An outerBoundary is required in a Polygon");
}
kml.println("<Polygon" + getIdAndTargetIdFormatted(kml) + ">", 1);
if (extrude != null) {
kml.println("<extrude>" + booleanToInt(extrude) + "</extrude>");
}
if (tessellate != null) {
kml.println("<tessellate>" + booleanToInt(tessellate) + "</tessellate>");
}
if (altitudeMode != null) {
kml.println("<altitudeMode>" + altitudeMode + "</altitudeMode>");
}
kml.println("<outerBoundaryIs>", 1);
outerBoundary.write(kml);
kml.println(-1, "</outerBoundaryIs>");
if (innerBoundaries != null) {
for (LinearRing innerBounadry : innerBoundaries) {
kml.println("<innerBoundaryIs>", 1);
innerBounadry.write(kml);
kml.println(-1, "</innerBoundaryIs>");
}
}
kml.println(-1, "</Polygon>");
}
}