All Downloads are FREE. Search and download functionalities are using the official Maven repository.

de.micromata.opengis.kml.v_2_2_0.MultiGeometry Maven / Gradle / Ivy

Go to download

This is JavaAPIforKMml, Micromata's library for use with applications that want to parse, generate and operate on KML. It is an implementation of the OGC KML 2.2 standard. It is written entirely in Java and makes heavy use of JAXB.

There is a newer version: 3.0.4
Show newest version

package de.micromata.opengis.kml.v_2_2_0;

import de.micromata.opengis.kml.v_2_2_0.annotations.Obvious;
import de.micromata.opengis.kml.v_2_2_0.gx.MultiTrack;
import de.micromata.opengis.kml.v_2_2_0.gx.Track;
import jakarta.xml.bind.annotation.*;

import java.util.ArrayList;
import java.util.List;


/**
 * {@code }
 * 

* A container for zero or more geometry primitives associated with the same feature. *

*

* Note: The {@code } tag has been deprecated. Use {@code } instead. *

* * Syntax: *
<MultiGeometry id="ID">
 *   <!-- specific to MultiGeometry -->
 *   <!-- 0 or more Geometry elements -->
 * </MultiGeometry>
* * Extends: * * * Contained By: * * * * * */ @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "MultiGeometryType", propOrder = { "geometry", "multiGeometrySimpleExtension", "multiGeometryObjectExtension" }) @XmlRootElement(name = "MultiGeometry", namespace = "http://www.opengis.net/kml/2.2") public class MultiGeometry extends Geometry implements Cloneable { /** * {@code } *

* This is an abstract element and cannot be used directly in a KML file. It provides * a placeholder object for all derived Geometry objects. *

* * Syntax: *
<!-- abstract element; do not create -->
     * <!-- Geometry id="ID" -->                 <!-- Point,LineString,LinearRing,
     *                                                Polygon,MultiGeometry,Model -->
     * <!-- /Geometry -->
* * Extends: * * * Extended By: * * * * * * * * * */ @XmlElementRef(name = "AbstractGeometryGroup", namespace = "http://www.opengis.net/kml/2.2", required = false) protected List geometry; @XmlElement(name = "MultiGeometrySimpleExtensionGroup") @XmlSchemaType(name = "anySimpleType") protected List multiGeometrySimpleExtension; /** * {@code } *

* This is an abstract base class and cannot be used directly in a KML file. It provides * the id attribute, which allows unique identification of a KML element, and the targetId * attribute, which is used to reference objects that have already been loaded into * Google Earth. The id attribute must be assigned if the Update mechanism is to * be used. *

* * Syntax: *
<!-- abstract element; do not create -->
     * <!-- Object id="ID" targetId="NCName" -->
     * <!-- /Object> -->
* * * */ @XmlElement(name = "MultiGeometryObjectExtensionGroup") protected List multiGeometryObjectExtension; public MultiGeometry() { super(); } /** * * */ public List getGeometry() { if (geometry == null) { geometry = new ArrayList(); } return this.geometry; } /** * * */ public List getMultiGeometrySimpleExtension() { if (multiGeometrySimpleExtension == null) { multiGeometrySimpleExtension = new ArrayList(); } return this.multiGeometrySimpleExtension; } /** * * */ public List getMultiGeometryObjectExtension() { if (multiGeometryObjectExtension == null) { multiGeometryObjectExtension = new ArrayList(); } return this.multiGeometryObjectExtension; } @Override public int hashCode() { final int prime = 31; int result = super.hashCode(); result = ((prime*result)+((geometry == null)? 0 :geometry.hashCode())); result = ((prime*result)+((multiGeometrySimpleExtension == null)? 0 :multiGeometrySimpleExtension.hashCode())); result = ((prime*result)+((multiGeometryObjectExtension == null)? 0 :multiGeometryObjectExtension.hashCode())); return result; } @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (super.equals(obj) == false) { return false; } if ((obj instanceof MultiGeometry) == false) { return false; } MultiGeometry other = ((MultiGeometry) obj); if (geometry == null) { if (other.geometry!= null) { return false; } } else { if (geometry.equals(other.geometry) == false) { return false; } } if (multiGeometrySimpleExtension == null) { if (other.multiGeometrySimpleExtension!= null) { return false; } } else { if (multiGeometrySimpleExtension.equals(other.multiGeometrySimpleExtension) == false) { return false; } } if (multiGeometryObjectExtension == null) { if (other.multiGeometryObjectExtension!= null) { return false; } } else { if (multiGeometryObjectExtension.equals(other.multiGeometryObjectExtension) == false) { return false; } } return true; } /** * Creates a new instance of {@link MultiTrack} and adds it to geometry. * This method is a short version for: * {@code * MultiTrack multiTrack = new MultiTrack(); * this.getGeometry().add(multiTrack); } * * */ public MultiTrack createAndAddMultiTrack() { MultiTrack newValue = new MultiTrack(); this.getGeometry().add(newValue); return newValue; } /** * Creates a new instance of {@link Track} and adds it to geometry. * This method is a short version for: * {@code * Track track = new Track(); * this.getGeometry().add(track); } * * */ public Track createAndAddTrack() { Track newValue = new Track(); this.getGeometry().add(newValue); return newValue; } /** * Creates a new instance of {@link LinearRing} and adds it to geometry. * This method is a short version for: * {@code * LinearRing linearRing = new LinearRing(); * this.getGeometry().add(linearRing); } * * */ public LinearRing createAndAddLinearRing() { LinearRing newValue = new LinearRing(); this.getGeometry().add(newValue); return newValue; } /** * Creates a new instance of {@link Point} and adds it to geometry. * This method is a short version for: * {@code * Point point = new Point(); * this.getGeometry().add(point); } * * */ public Point createAndAddPoint() { Point newValue = new Point(); this.getGeometry().add(newValue); return newValue; } /** * Creates a new instance of {@link Model} and adds it to geometry. * This method is a short version for: * {@code * Model model = new Model(); * this.getGeometry().add(model); } * * */ public Model createAndAddModel() { Model newValue = new Model(); this.getGeometry().add(newValue); return newValue; } /** * Creates a new instance of MultiGeometry and adds it to geometry. * This method is a short version for: * {@code * MultiGeometry multiGeometry = new MultiGeometry(); * this.getGeometry().add(multiGeometry); } * * */ public MultiGeometry createAndAddMultiGeometry() { MultiGeometry newValue = new MultiGeometry(); this.getGeometry().add(newValue); return newValue; } /** * Creates a new instance of {@link LineString} and adds it to geometry. * This method is a short version for: * {@code * LineString lineString = new LineString(); * this.getGeometry().add(lineString); } * * */ public LineString createAndAddLineString() { LineString newValue = new LineString(); this.getGeometry().add(newValue); return newValue; } /** * Creates a new instance of {@link Polygon} and adds it to geometry. * This method is a short version for: * {@code * Polygon polygon = new Polygon(); * this.getGeometry().add(polygon); } * * */ public Polygon createAndAddPolygon() { Polygon newValue = new Polygon(); this.getGeometry().add(newValue); return newValue; } /** * * * @param geometry * Objects of the following type are allowed in the list: {@code <}{@link Geometry}{@code >}{@code <}{@link Point}{@code >}{@code <}{@link LinearRing}{@code >}{@code <}{@link Polygon}{@code >}{@code <}{@link Track}{@code >}{@code <}{@link MultiTrack}{@code >}{@code <}{@link Model}{@code >}{@code <}{@link LineString}{@code >}{@code <}MultiGeometry{@code >} */ public void setGeometry(final List geometry) { this.geometry = geometry; } /** * add a value to the geometry property collection * * @param geometry * Objects of the following type are allowed in the list: {@code <}{@link Geometry}{@code >}{@code <}{@link Point}{@code >}{@code <}{@link LinearRing}{@code >}{@code <}{@link Polygon}{@code >}{@code <}{@link Track}{@code >}{@code <}{@link MultiTrack}{@code >}{@code <}{@link Model}{@code >}{@code <}{@link LineString}{@code >}{@code <}MultiGeometry{@code >} * @return * true (as general contract of Collection.add). */ public MultiGeometry addToGeometry(final Geometry geometry) { this.getGeometry().add(geometry); return this; } /** * * * @param multiGeometrySimpleExtension * Objects of the following type are allowed in the list: {@link Object} */ public void setMultiGeometrySimpleExtension(final List multiGeometrySimpleExtension) { this.multiGeometrySimpleExtension = multiGeometrySimpleExtension; } /** * add a value to the multiGeometrySimpleExtension property collection * * @param multiGeometrySimpleExtension * Objects of the following type are allowed in the list: {@link Object} * @return * true (as general contract of Collection.add). */ public MultiGeometry addToMultiGeometrySimpleExtension(final Object multiGeometrySimpleExtension) { this.getMultiGeometrySimpleExtension().add(multiGeometrySimpleExtension); return this; } /** * * * @param multiGeometryObjectExtension * Objects of the following type are allowed in the list: {@link AbstractObject} */ public void setMultiGeometryObjectExtension(final List multiGeometryObjectExtension) { this.multiGeometryObjectExtension = multiGeometryObjectExtension; } /** * add a value to the multiGeometryObjectExtension property collection * * @param multiGeometryObjectExtension * Objects of the following type are allowed in the list: {@link AbstractObject} * @return * true (as general contract of Collection.add). */ public MultiGeometry addToMultiGeometryObjectExtension(final AbstractObject multiGeometryObjectExtension) { this.getMultiGeometryObjectExtension().add(multiGeometryObjectExtension); return this; } /** * * */ @Obvious @Override public void setObjectSimpleExtension(final List objectSimpleExtension) { super.setObjectSimpleExtension(objectSimpleExtension); } @Obvious @Override public MultiGeometry addToObjectSimpleExtension(final Object objectSimpleExtension) { super.getObjectSimpleExtension().add(objectSimpleExtension); return this; } /** * * */ @Obvious @Override public void setGeometrySimpleExtension(final List geometrySimpleExtension) { super.setGeometrySimpleExtension(geometrySimpleExtension); } @Obvious @Override public MultiGeometry addToGeometrySimpleExtension(final Object geometrySimpleExtension) { super.getGeometrySimpleExtension().add(geometrySimpleExtension); return this; } /** * * */ @Obvious @Override public void setGeometryObjectExtension(final List geometryObjectExtension) { super.setGeometryObjectExtension(geometryObjectExtension); } @Obvious @Override public MultiGeometry addToGeometryObjectExtension(final AbstractObject geometryObjectExtension) { super.getGeometryObjectExtension().add(geometryObjectExtension); return this; } /** * fluent setter * * * @param geometry * required parameter */ public MultiGeometry withGeometry(final List geometry) { this.setGeometry(geometry); return this; } /** * fluent setter * * * @param multiGeometrySimpleExtension * required parameter */ public MultiGeometry withMultiGeometrySimpleExtension(final List multiGeometrySimpleExtension) { this.setMultiGeometrySimpleExtension(multiGeometrySimpleExtension); return this; } /** * fluent setter * * * @param multiGeometryObjectExtension * required parameter */ public MultiGeometry withMultiGeometryObjectExtension(final List multiGeometryObjectExtension) { this.setMultiGeometryObjectExtension(multiGeometryObjectExtension); return this; } @Obvious @Override public MultiGeometry withObjectSimpleExtension(final List objectSimpleExtension) { super.withObjectSimpleExtension(objectSimpleExtension); return this; } @Obvious @Override public MultiGeometry withId(final String id) { super.withId(id); return this; } @Obvious @Override public MultiGeometry withTargetId(final String targetId) { super.withTargetId(targetId); return this; } @Obvious @Override public MultiGeometry withGeometrySimpleExtension(final List geometrySimpleExtension) { super.withGeometrySimpleExtension(geometrySimpleExtension); return this; } @Obvious @Override public MultiGeometry withGeometryObjectExtension(final List geometryObjectExtension) { super.withGeometryObjectExtension(geometryObjectExtension); return this; } @Override public MultiGeometry clone() { MultiGeometry copy; copy = ((MultiGeometry) super.clone()); copy.geometry = new ArrayList((getGeometry().size())); for (Geometry iter: geometry) { copy.geometry.add(iter.clone()); } copy.multiGeometrySimpleExtension = new ArrayList((getMultiGeometrySimpleExtension().size())); for (Object iter: multiGeometrySimpleExtension) { copy.multiGeometrySimpleExtension.add(iter); } copy.multiGeometryObjectExtension = new ArrayList((getMultiGeometryObjectExtension().size())); for (AbstractObject iter: multiGeometryObjectExtension) { copy.multiGeometryObjectExtension.add(iter.clone()); } return copy; } }