/*
* Geotoolkit - An Open Source Java GIS Toolkit
* http://www.geotoolkit.org
*
* (C) 2008 - 2009, Geomatys
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*/
package org.geotoolkit.swe.xml.v101;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;
import org.geotoolkit.gml.xml.v311.BaseUnitType;
import org.geotoolkit.gml.xml.v311.UnitDefinitionType;
import org.geotoolkit.swe.xml.UomProperty;
/**
* <p>Java class for UomPropertyType complex type.
*
* <p>The following schema fragment specifies the expected content contained within this class.
*
* <pre>
* <complexType name="UomPropertyType">
* <complexContent>
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* <choice>
* <element ref="{http://www.opengis.net/gml}UnitDefinition"/>
* <element ref="{http://www.opengis.net/gml}BaseUnit"/>
* </choice>
* <attribute name="code" type="{http://www.w3.org/2001/XMLSchema}string" />
* <attribute name="nilReason">
* <simpleType>
* <list itemType="{http://www.w3.org/2001/XMLSchema}string" />
* </simpleType>
* </attribute>
* <attribute ref="{http://www.opengis.net/gml}remoteSchema"/>
* <attribute ref="{http://www.w3.org/1999/xlink}actuate"/>
* <attribute ref="{http://www.w3.org/1999/xlink}arcrole"/>
* <attribute ref="{http://www.w3.org/1999/xlink}href"/>
* <attribute ref="{http://www.w3.org/1999/xlink}role"/>
* <attribute ref="{http://www.w3.org/1999/xlink}show"/>
* <attribute ref="{http://www.w3.org/1999/xlink}title"/>
* <attribute ref="{http://www.w3.org/1999/xlink}type"/>
* </restriction>
* </complexContent>
* </complexType>
* </pre>
*
*
* @module
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "UomPropertyType", propOrder = {
"unitDefinition",
"baseUnit"
})
public class UomPropertyType implements UomProperty {
public static final UomPropertyType DEGREE = new UomPropertyType("degree", null);
public static final UomPropertyType METER = new UomPropertyType("m", null);
@XmlElement(name = "UnitDefinition", namespace = "http://www.opengis.net/gml")
private UnitDefinitionType unitDefinition;
@XmlElement(name = "BaseUnit", namespace = "http://www.opengis.net/gml")
private BaseUnitType baseUnit;
@XmlAttribute
private String code;
@XmlAttribute
private List<String> nilReason;
@XmlAttribute(namespace = "http://www.opengis.net/gml")
private String remoteSchema;
@XmlAttribute(namespace = "http://www.w3.org/1999/xlink")
private String actuate;
@XmlAttribute(namespace = "http://www.w3.org/1999/xlink")
private String arcrole;
@XmlAttribute(namespace = "http://www.w3.org/1999/xlink")
private String href;
@XmlAttribute(namespace = "http://www.w3.org/1999/xlink")
private String role;
@XmlAttribute(namespace = "http://www.w3.org/1999/xlink")
private String show;
@XmlAttribute(namespace = "http://www.w3.org/1999/xlink")
private String title;
@XmlAttribute(namespace = "http://www.w3.org/1999/xlink")
private String type;
public UomPropertyType() {}
public UomPropertyType(final UomProperty uom) {
if (uom != null) {
this.actuate = uom.getActuate();
this.arcrole = uom.getArcrole();
this.baseUnit = uom.getBaseUnit();
this.code = uom.getCode();
this.href = uom.getHref();
//this.nilReason = uom.
this.remoteSchema = uom.getRemoteSchema();
this.role = uom.getRole();
this.show = uom.getShow();
this.title = uom.getTitle();
this.type = uom.getType();
this.unitDefinition = uom.getUnitDefinition();
}
}
public UomPropertyType(final String code, final String href) {
this.code = code;
this.href = href;
}
/**
* Gets the value of the unitDefinition property.
*/
public UnitDefinitionType getUnitDefinition() {
return unitDefinition;
}
/**
* Gets the value of the baseUnit property.
*/
public BaseUnitType getBaseUnit() {
return baseUnit;
}
/**
* Gets the value of the code property.
*/
public String getCode() {
return code;
}
/**
* Gets the value of the nilReason property.
*
*/
public List<String> getNilReason() {
if (nilReason == null) {
nilReason = new ArrayList<String>();
}
return nilReason;
}
/**
* Gets the value of the remoteSchema property.
*/
public String getRemoteSchema() {
return remoteSchema;
}
/**
* Gets the value of the actuate property.
*/
public String getActuate() {
return actuate;
}
/**
* Gets the value of the arcrole property.
*/
public String getArcrole() {
return arcrole;
}
/**
* Gets the value of the href property.
*/
public String getHref() {
return href;
}
/**
* Gets the value of the role property.
*/
public String getRole() {
return role;
}
/**
* Gets the value of the show property.
*/
public String getShow() {
return show;
}
/**
* Gets the value of the title property.
*/
public String getTitle() {
return title;
}
/**
* Gets the value of the type property.
*/
public String getType() {
return type;
}
/**
* Verify if this entry is identical to the specified object.
*/
@Override
public boolean equals(final Object object) {
if (object == this) {
return true;
}
if (object instanceof UomPropertyType) {
final UomPropertyType that = (UomPropertyType) object;
return Objects.equals(this.actuate, that.actuate) &&
Objects.equals(this.arcrole, that.arcrole) &&
Objects.equals(this.baseUnit, that.baseUnit) &&
Objects.equals(this.code, that.code) &&
Objects.equals(this.href, that.href) &&
Objects.equals(this.nilReason, that.nilReason) &&
Objects.equals(this.remoteSchema, that.remoteSchema) &&
Objects.equals(this.role, that.role) &&
Objects.equals(this.show, that.show) &&
Objects.equals(this.title, that.title) &&
Objects.equals(this.type, that.type) &&
Objects.equals(this.unitDefinition, that.unitDefinition);
}
return false;
}
@Override
public int hashCode() {
int hash = 5;
hash = 41 * hash + (this.unitDefinition != null ? this.unitDefinition.hashCode() : 0);
hash = 41 * hash + (this.baseUnit != null ? this.baseUnit.hashCode() : 0);
hash = 41 * hash + (this.code != null ? this.code.hashCode() : 0);
hash = 41 * hash + (this.nilReason != null ? this.nilReason.hashCode() : 0);
hash = 41 * hash + (this.remoteSchema != null ? this.remoteSchema.hashCode() : 0);
hash = 41 * hash + (this.actuate != null ? this.actuate.hashCode() : 0);
hash = 41 * hash + (this.arcrole != null ? this.arcrole.hashCode() : 0);
hash = 41 * hash + (this.href != null ? this.href.hashCode() : 0);
hash = 41 * hash + (this.role != null ? this.role.hashCode() : 0);
hash = 41 * hash + (this.show != null ? this.show.hashCode() : 0);
hash = 41 * hash + (this.title != null ? this.title.hashCode() : 0);
hash = 41 * hash + (this.type != null ? this.type.hashCode() : 0);
return hash;
}
@Override
public String toString() {
StringBuilder s = new StringBuilder();
if(actuate != null && !actuate.equals("")) {
s.append("actuate:").append(actuate).append('\n');
}
if(arcrole != null && !arcrole.equals("")) {
s.append("arcrole:").append(arcrole).append('\n');
}
if(baseUnit != null) {
s.append("baseUnit:").append(baseUnit.toString()).append('\n');
}
if(code != null && !code.equals("")) {
s.append("code:").append(code).append('\n');
}
if(href != null && !href.equals("")) {
s.append("href:").append(href).append('\n');
}
if (nilReason != null) {
s.append("nilReason:").append('\n');
for (String ss:nilReason) {
s.append(ss).append('\n');
}
}
if(remoteSchema != null && !remoteSchema.equals("")) {
s.append("remoteSchema:").append(remoteSchema).append('\n');
}
if(role != null && !role.equals("")) {
s.append("role:").append(role).append('\n');
}
if(show != null && !show.equals("")) {
s.append("show:").append(show).append('\n');
}
if(title != null && !title.equals("")) {
s.append("title:").append(title).append('\n');
}
if(type != null && !type.equals("")) {
s.append("type:").append(type).append('\n');
}
if(unitDefinition != null) {
s.append("unitDefinition:").append(unitDefinition).append('\n');
}
return s.toString();
}
/**
* Invoked through Java reflection.
*
* @param code the code to set
*/
public void setCode(final String code) {
this.code = code;
}
/**
* @param remoteSchema the remoteSchema to set
*/
public void setRemoteSchema(final String remoteSchema) {
this.remoteSchema = remoteSchema;
}
/**
* @param actuate the actuate to set
*/
public void setActuate(final String actuate) {
this.actuate = actuate;
}
/**
* @param arcrole the arcrole to set
*/
public void setArcrole(final String arcrole) {
this.arcrole = arcrole;
}
/**
* @param href the href to set
*/
public void setHref(final String href) {
this.href = href;
}
/**
* @param role the role to set
*/
public void setRole(final String role) {
this.role = role;
}
/**
* @param show the show to set
*/
public void setShow(final String show) {
this.show = show;
}
/**
* @param title the title to set
*/
public void setTitle(final String title) {
this.title = title;
}
/**
* @param type the type to set
*/
public void setType(final String type) {
this.type = type;
}
}