//
// Diese Datei wurde mit der JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.7 generiert
// Siehe <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
// Änderungen an dieser Datei gehen bei einer Neukompilierung des Quellschemas verloren.
// Generiert: 2016.08.10 um 09:13:50 PM CEST
//
package net.opengis.citygml.cityobjectgroup._2;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.JAXBElement;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementRef;
import javax.xml.bind.annotation.XmlType;
import net.opengis.citygml._2.AbstractCityObjectType;
import net.opengis.gml.CodeType;
import net.opengis.gml.GeometryPropertyType;
/**
* A group may be used to aggregate arbitrary CityObjects according to some user-defined criteria. Examples
* for groups are the buildings in a specific region, the result of a query, or objects put together for visualization
* purposes. Each group has a name (inherited from AbstractGMLType), functions (e.g., building group), a class and zero or
* more usages. A geometry may optionally be attached to a group, if the geometry of the whole group differs from the
* geometry of the parts. Each member of a group may be qualified by a role name, reflecting the role each CityObject plays
* in the context of the group. As subclass of _CityObject, a CityObjectGroup inherits all attributes and relations, in
* particular an id, names, external references, and generalization relations. As CityObjectGroup itself is a CityObject, it
* may also be contained by another group.
*
* <p>Java-Klasse für CityObjectGroupType complex type.
*
* <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist.
*
* <pre>
* <complexType name="CityObjectGroupType">
* <complexContent>
* <extension base="{http://www.opengis.net/citygml/2.0}AbstractCityObjectType">
* <sequence>
* <element name="class" type="{http://www.opengis.net/gml}CodeType" minOccurs="0"/>
* <element name="function" type="{http://www.opengis.net/gml}CodeType" maxOccurs="unbounded" minOccurs="0"/>
* <element name="usage" type="{http://www.opengis.net/gml}CodeType" maxOccurs="unbounded" minOccurs="0"/>
* <element name="groupMember" type="{http://www.opengis.net/citygml/cityobjectgroup/2.0}CityObjectGroupMemberType" maxOccurs="unbounded" minOccurs="0"/>
* <element name="parent" type="{http://www.opengis.net/citygml/cityobjectgroup/2.0}CityObjectGroupParentType" minOccurs="0"/>
* <element name="geometry" type="{http://www.opengis.net/gml}GeometryPropertyType" minOccurs="0"/>
* <element ref="{http://www.opengis.net/citygml/cityobjectgroup/2.0}_GenericApplicationPropertyOfCityObjectGroup" maxOccurs="unbounded" minOccurs="0"/>
* </sequence>
* </extension>
* </complexContent>
* </complexType>
* </pre>
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "CityObjectGroupType", propOrder = {
"clazz",
"function",
"usage",
"groupMember",
"parent",
"geometry",
"_GenericApplicationPropertyOfCityObjectGroup"
})
public class CityObjectGroupType
extends AbstractCityObjectType
{
@XmlElement(name = "class")
protected CodeType clazz;
protected List<CodeType> function;
protected List<CodeType> usage;
protected List<CityObjectGroupMemberType> groupMember;
protected CityObjectGroupParentType parent;
protected GeometryPropertyType geometry;
@XmlElementRef(name = "_GenericApplicationPropertyOfCityObjectGroup", namespace = "http://www.opengis.net/citygml/cityobjectgroup/2.0", type = JAXBElement.class, required = false)
protected List<JAXBElement<Object>> _GenericApplicationPropertyOfCityObjectGroup;
/**
* Ruft den Wert der clazz-Eigenschaft ab.
*
* @return
* possible object is
* {@link CodeType }
*
*/
public CodeType getClazz() {
return clazz;
}
/**
* Legt den Wert der clazz-Eigenschaft fest.
*
* @param value
* allowed object is
* {@link CodeType }
*
*/
public void setClazz(CodeType value) {
this.clazz = value;
}
public boolean isSetClazz() {
return (this.clazz!= null);
}
/**
* Gets the value of the function property.
*
* <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
* This is why there is not a <CODE>set</CODE> method for the function property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getFunction().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
* {@link CodeType }
*
*
*/
public List<CodeType> getFunction() {
if (function == null) {
function = new ArrayList<CodeType>();
}
return this.function;
}
public boolean isSetFunction() {
return ((this.function!= null)&&(!this.function.isEmpty()));
}
public void unsetFunction() {
this.function = null;
}
/**
* Gets the value of the usage property.
*
* <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
* This is why there is not a <CODE>set</CODE> method for the usage property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getUsage().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
* {@link CodeType }
*
*
*/
public List<CodeType> getUsage() {
if (usage == null) {
usage = new ArrayList<CodeType>();
}
return this.usage;
}
public boolean isSetUsage() {
return ((this.usage!= null)&&(!this.usage.isEmpty()));
}
public void unsetUsage() {
this.usage = null;
}
/**
* Gets the value of the groupMember property.
*
* <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
* This is why there is not a <CODE>set</CODE> method for the groupMember property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getGroupMember().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
* {@link CityObjectGroupMemberType }
*
*
*/
public List<CityObjectGroupMemberType> getGroupMember() {
if (groupMember == null) {
groupMember = new ArrayList<CityObjectGroupMemberType>();
}
return this.groupMember;
}
public boolean isSetGroupMember() {
return ((this.groupMember!= null)&&(!this.groupMember.isEmpty()));
}
public void unsetGroupMember() {
this.groupMember = null;
}
/**
* Ruft den Wert der parent-Eigenschaft ab.
*
* @return
* possible object is
* {@link CityObjectGroupParentType }
*
*/
public CityObjectGroupParentType getParent() {
return parent;
}
/**
* Legt den Wert der parent-Eigenschaft fest.
*
* @param value
* allowed object is
* {@link CityObjectGroupParentType }
*
*/
public void setParent(CityObjectGroupParentType value) {
this.parent = value;
}
public boolean isSetParent() {
return (this.parent!= null);
}
/**
* Ruft den Wert der geometry-Eigenschaft ab.
*
* @return
* possible object is
* {@link GeometryPropertyType }
*
*/
public GeometryPropertyType getGeometry() {
return geometry;
}
/**
* Legt den Wert der geometry-Eigenschaft fest.
*
* @param value
* allowed object is
* {@link GeometryPropertyType }
*
*/
public void setGeometry(GeometryPropertyType value) {
this.geometry = value;
}
public boolean isSetGeometry() {
return (this.geometry!= null);
}
/**
* Gets the value of the genericApplicationPropertyOfCityObjectGroup property.
*
* <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
* This is why there is not a <CODE>set</CODE> method for the genericApplicationPropertyOfCityObjectGroup property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* get_GenericApplicationPropertyOfCityObjectGroup().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
* {@link JAXBElement }{@code <}{@link Object }{@code >}
* {@link JAXBElement }{@code <}{@link Object }{@code >}
*
*
*/
public List<JAXBElement<Object>> get_GenericApplicationPropertyOfCityObjectGroup() {
if (_GenericApplicationPropertyOfCityObjectGroup == null) {
_GenericApplicationPropertyOfCityObjectGroup = new ArrayList<JAXBElement<Object>>();
}
return this._GenericApplicationPropertyOfCityObjectGroup;
}
public boolean isSet_GenericApplicationPropertyOfCityObjectGroup() {
return ((this._GenericApplicationPropertyOfCityObjectGroup!= null)&&(!this._GenericApplicationPropertyOfCityObjectGroup.isEmpty()));
}
public void unset_GenericApplicationPropertyOfCityObjectGroup() {
this._GenericApplicationPropertyOfCityObjectGroup = null;
}
public void setFunction(List<CodeType> value) {
this.function = value;
}
public void setUsage(List<CodeType> value) {
this.usage = value;
}
public void setGroupMember(List<CityObjectGroupMemberType> value) {
this.groupMember = value;
}
public void set_GenericApplicationPropertyOfCityObjectGroup(List<JAXBElement<Object>> value) {
this._GenericApplicationPropertyOfCityObjectGroup = value;
}
}