xml.metadatasharing.UriObject Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of stix Show documentation
Show all versions of stix Show documentation
The Java bindings for STIX v.1.2.0.2
The newest version!
/**
* Copyright (c) 2015, The MITRE Corporation. All rights reserved.
* See LICENSE for complete terms.
*/
//
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.5-2
// See http://java.sun.com/xml/jaxb
// Any modifications to this file will be lost upon recompilation of the source schema.
// Generated on: 2015.07.01 at 03:19:53 PM EDT
//
package xml.metadatasharing;
import java.io.StringReader;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBElement;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;
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 javax.xml.namespace.QName;
import javax.xml.transform.stream.StreamSource;
import org.jvnet.jaxb2_commons.lang.Equals;
import org.jvnet.jaxb2_commons.lang.EqualsStrategy;
import org.jvnet.jaxb2_commons.lang.HashCode;
import org.jvnet.jaxb2_commons.lang.HashCodeStrategy;
import org.jvnet.jaxb2_commons.lang.JAXBEqualsStrategy;
import org.jvnet.jaxb2_commons.lang.JAXBHashCodeStrategy;
import org.jvnet.jaxb2_commons.lang.JAXBToStringStrategy;
import org.jvnet.jaxb2_commons.lang.ToString;
import org.jvnet.jaxb2_commons.lang.ToStringStrategy;
import org.jvnet.jaxb2_commons.locator.ObjectLocator;
import org.jvnet.jaxb2_commons.locator.util.LocatorUtils;
import org.mitre.stix.DocumentUtilities;
import org.mitre.stix.STIXSchema;
import org.mitre.stix.ValidationEventHandler;
import org.xml.sax.SAXException;
/**
*
* Uri object. Only required element is uri string itself. There are elements for each of the broken out elements.
* The protocol should be take from the list at http://www.iana.org/assignments/port-numbers, or if not in that list have the value 'unknown'.
* The ipProtocol should be taken from the list http://www.iana.org/assignments/protocol-numbers/.
*
* The elements correspond to the usual breakdown of a uri into its component domain, hostname, path, port etc, as
* described at http://en.wikipedia.org/wiki/Uniform_Resource_Locator.
*
*
* Java class for uriObject complex type.
*
*
The following schema fragment specifies the expected content contained within this class.
*
*
* <complexType name="uriObject">
* <complexContent>
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* <sequence>
* <element name="uriString" type="{http://xml/metadataSharing.xsd}NoQuestionMark"/>
* <element name="protocol" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
* <element name="hostname" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
* <element name="domain" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
* <element name="port" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
* <element name="path" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
* <element name="ipProtocol" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
* </sequence>
* <attribute name="id" use="required" type="{http://xml/metadataSharing.xsd}NoQuestionMark" />
* </restriction>
* </complexContent>
* </complexType>
*
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "uriObject", propOrder = { "uriString", "protocol", "hostname",
"domain", "port", "path", "ipProtocol" })
public class UriObject implements Equals, HashCode, ToString {
@XmlElement(required = true)
protected String uriString;
protected String protocol;
protected String hostname;
protected String domain;
protected Integer port;
protected String path;
protected String ipProtocol;
@XmlAttribute(name = "id", required = true)
protected String id;
/**
* Default no-arg constructor
*
*/
public UriObject() {
super();
}
/**
* Fully-initialising value constructor
*
*/
public UriObject(final String uriString, final String protocol,
final String hostname, final String domain, final Integer port,
final String path, final String ipProtocol, final String id) {
this.uriString = uriString;
this.protocol = protocol;
this.hostname = hostname;
this.domain = domain;
this.port = port;
this.path = path;
this.ipProtocol = ipProtocol;
this.id = id;
}
/**
* Gets the value of the uriString property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getUriString() {
return uriString;
}
/**
* Sets the value of the uriString property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setUriString(String value) {
this.uriString = value;
}
/**
* Gets the value of the protocol property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getProtocol() {
return protocol;
}
/**
* Sets the value of the protocol property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setProtocol(String value) {
this.protocol = value;
}
/**
* Gets the value of the hostname property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getHostname() {
return hostname;
}
/**
* Sets the value of the hostname property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setHostname(String value) {
this.hostname = value;
}
/**
* Gets the value of the domain property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getDomain() {
return domain;
}
/**
* Sets the value of the domain property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setDomain(String value) {
this.domain = value;
}
/**
* Gets the value of the port property.
*
* @return
* possible object is
* {@link Integer }
*
*/
public Integer getPort() {
return port;
}
/**
* Sets the value of the port property.
*
* @param value
* allowed object is
* {@link Integer }
*
*/
public void setPort(Integer value) {
this.port = value;
}
/**
* Gets the value of the path property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getPath() {
return path;
}
/**
* Sets the value of the path property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setPath(String value) {
this.path = value;
}
/**
* Gets the value of the ipProtocol property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getIpProtocol() {
return ipProtocol;
}
/**
* Sets the value of the ipProtocol property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setIpProtocol(String value) {
this.ipProtocol = value;
}
/**
* Gets the value of the id property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getId() {
return id;
}
/**
* Sets the value of the id property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setId(String value) {
this.id = value;
}
public boolean equals(ObjectLocator thisLocator, ObjectLocator thatLocator,
Object object, EqualsStrategy strategy) {
if (!(object instanceof UriObject)) {
return false;
}
if (this == object) {
return true;
}
final UriObject that = ((UriObject) object);
{
String lhsUriString;
lhsUriString = this.getUriString();
String rhsUriString;
rhsUriString = that.getUriString();
if (!strategy.equals(LocatorUtils.property(thisLocator,
"uriString", lhsUriString), LocatorUtils.property(
thatLocator, "uriString", rhsUriString), lhsUriString,
rhsUriString)) {
return false;
}
}
{
String lhsProtocol;
lhsProtocol = this.getProtocol();
String rhsProtocol;
rhsProtocol = that.getProtocol();
if (!strategy
.equals(LocatorUtils.property(thisLocator, "protocol",
lhsProtocol), LocatorUtils.property(thatLocator,
"protocol", rhsProtocol), lhsProtocol, rhsProtocol)) {
return false;
}
}
{
String lhsHostname;
lhsHostname = this.getHostname();
String rhsHostname;
rhsHostname = that.getHostname();
if (!strategy
.equals(LocatorUtils.property(thisLocator, "hostname",
lhsHostname), LocatorUtils.property(thatLocator,
"hostname", rhsHostname), lhsHostname, rhsHostname)) {
return false;
}
}
{
String lhsDomain;
lhsDomain = this.getDomain();
String rhsDomain;
rhsDomain = that.getDomain();
if (!strategy.equals(
LocatorUtils.property(thisLocator, "domain", lhsDomain),
LocatorUtils.property(thatLocator, "domain", rhsDomain),
lhsDomain, rhsDomain)) {
return false;
}
}
{
Integer lhsPort;
lhsPort = this.getPort();
Integer rhsPort;
rhsPort = that.getPort();
if (!strategy.equals(
LocatorUtils.property(thisLocator, "port", lhsPort),
LocatorUtils.property(thatLocator, "port", rhsPort),
lhsPort, rhsPort)) {
return false;
}
}
{
String lhsPath;
lhsPath = this.getPath();
String rhsPath;
rhsPath = that.getPath();
if (!strategy.equals(
LocatorUtils.property(thisLocator, "path", lhsPath),
LocatorUtils.property(thatLocator, "path", rhsPath),
lhsPath, rhsPath)) {
return false;
}
}
{
String lhsIpProtocol;
lhsIpProtocol = this.getIpProtocol();
String rhsIpProtocol;
rhsIpProtocol = that.getIpProtocol();
if (!strategy.equals(LocatorUtils.property(thisLocator,
"ipProtocol", lhsIpProtocol), LocatorUtils.property(
thatLocator, "ipProtocol", rhsIpProtocol), lhsIpProtocol,
rhsIpProtocol)) {
return false;
}
}
{
String lhsId;
lhsId = this.getId();
String rhsId;
rhsId = that.getId();
if (!strategy.equals(
LocatorUtils.property(thisLocator, "id", lhsId),
LocatorUtils.property(thatLocator, "id", rhsId), lhsId,
rhsId)) {
return false;
}
}
return true;
}
public boolean equals(Object object) {
final EqualsStrategy strategy = JAXBEqualsStrategy.INSTANCE;
return equals(null, null, object, strategy);
}
public int hashCode(ObjectLocator locator, HashCodeStrategy strategy) {
int currentHashCode = 1;
{
String theUriString;
theUriString = this.getUriString();
currentHashCode = strategy.hashCode(
LocatorUtils.property(locator, "uriString", theUriString),
currentHashCode, theUriString);
}
{
String theProtocol;
theProtocol = this.getProtocol();
currentHashCode = strategy.hashCode(
LocatorUtils.property(locator, "protocol", theProtocol),
currentHashCode, theProtocol);
}
{
String theHostname;
theHostname = this.getHostname();
currentHashCode = strategy.hashCode(
LocatorUtils.property(locator, "hostname", theHostname),
currentHashCode, theHostname);
}
{
String theDomain;
theDomain = this.getDomain();
currentHashCode = strategy.hashCode(
LocatorUtils.property(locator, "domain", theDomain),
currentHashCode, theDomain);
}
{
Integer thePort;
thePort = this.getPort();
currentHashCode = strategy.hashCode(
LocatorUtils.property(locator, "port", thePort),
currentHashCode, thePort);
}
{
String thePath;
thePath = this.getPath();
currentHashCode = strategy.hashCode(
LocatorUtils.property(locator, "path", thePath),
currentHashCode, thePath);
}
{
String theIpProtocol;
theIpProtocol = this.getIpProtocol();
currentHashCode = strategy
.hashCode(LocatorUtils.property(locator, "ipProtocol",
theIpProtocol), currentHashCode, theIpProtocol);
}
{
String theId;
theId = this.getId();
currentHashCode = strategy.hashCode(
LocatorUtils.property(locator, "id", theId),
currentHashCode, theId);
}
return currentHashCode;
}
public int hashCode() {
final HashCodeStrategy strategy = JAXBHashCodeStrategy.INSTANCE;
return this.hashCode(null, strategy);
}
public UriObject withUriString(String value) {
setUriString(value);
return this;
}
public UriObject withProtocol(String value) {
setProtocol(value);
return this;
}
public UriObject withHostname(String value) {
setHostname(value);
return this;
}
public UriObject withDomain(String value) {
setDomain(value);
return this;
}
public UriObject withPort(Integer value) {
setPort(value);
return this;
}
public UriObject withPath(String value) {
setPath(value);
return this;
}
public UriObject withIpProtocol(String value) {
setIpProtocol(value);
return this;
}
public UriObject withId(String value) {
setId(value);
return this;
}
public String toString() {
final ToStringStrategy strategy = JAXBToStringStrategy.INSTANCE;
final StringBuilder buffer = new StringBuilder();
append(null, buffer, strategy);
return buffer.toString();
}
public StringBuilder append(ObjectLocator locator, StringBuilder buffer,
ToStringStrategy strategy) {
strategy.appendStart(locator, this, buffer);
appendFields(locator, buffer, strategy);
strategy.appendEnd(locator, this, buffer);
return buffer;
}
public StringBuilder appendFields(ObjectLocator locator,
StringBuilder buffer, ToStringStrategy strategy) {
{
String theUriString;
theUriString = this.getUriString();
strategy.appendField(locator, this, "uriString", buffer,
theUriString);
}
{
String theProtocol;
theProtocol = this.getProtocol();
strategy.appendField(locator, this, "protocol", buffer, theProtocol);
}
{
String theHostname;
theHostname = this.getHostname();
strategy.appendField(locator, this, "hostname", buffer, theHostname);
}
{
String theDomain;
theDomain = this.getDomain();
strategy.appendField(locator, this, "domain", buffer, theDomain);
}
{
Integer thePort;
thePort = this.getPort();
strategy.appendField(locator, this, "port", buffer, thePort);
}
{
String thePath;
thePath = this.getPath();
strategy.appendField(locator, this, "path", buffer, thePath);
}
{
String theIpProtocol;
theIpProtocol = this.getIpProtocol();
strategy.appendField(locator, this, "ipProtocol", buffer,
theIpProtocol);
}
{
String theId;
theId = this.getId();
strategy.appendField(locator, this, "id", buffer, theId);
}
return buffer;
}
/**
* Returns A Document representation of this instance that is not formatted.
*
* @return The Document representation for this instance.
*/
public org.w3c.dom.Document toDocument() {
return toDocument(false);
}
/**
* Returns A Document representation for this instance.
*
* @param prettyPrint
* True for pretty print, otherwise false
*
* @return The Document representation for this instance.
*/
public org.w3c.dom.Document toDocument(boolean prettyPrint) {
return DocumentUtilities.toDocument(toJAXBElement(), prettyPrint);
}
/**
* Returns JAXBElement for this instance.
*
* @return The JAXBElement for this instance.
*/
@SuppressWarnings({ "rawtypes", "unchecked" })
public JAXBElement> toJAXBElement() {
QName qualifiedName = STIXSchema.getQualifiedName(this);
return new JAXBElement(qualifiedName, UriObject.class, this);
}
/**
* Returns String representation of this instance that is not formatted.
*
* @return The String containing the XML mark-up.
*/
public String toXMLString() {
return toXMLString(false);
}
/**
* Returns XML String for JAXB Document Object Model object.
*
* @param prettyPrint
* True for pretty print, otherwise false
*
* @return The String containing the XML mark-up.
*/
public String toXMLString(boolean prettyPrint) {
return DocumentUtilities.toXMLString(toDocument(), prettyPrint);
}
/**
* Creates UriObject instance for XML String
*
* @param text
* XML String for the document
* @return The UriObject instance for the passed XML String
*/
public static UriObject fromXMLString(String text) {
JAXBContext jaxbContext;
try {
jaxbContext = JAXBContext.newInstance(UriObject.class.getPackage()
.getName());
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
unmarshaller.setSchema(STIXSchema.getInstance().getSchema());
unmarshaller.setEventHandler(new ValidationEventHandler());
StreamSource streamSource = new StreamSource(new StringReader(text));
return (UriObject) unmarshaller.unmarshal(streamSource);
} catch (JAXBException e) {
throw new RuntimeException(e);
}
}
/**
* Validates the XML representation of this UriObject instance
* Returning true indicating a successful validation, false if not.
*
* @return boolean True If it validates against the schema
* @throws SAXException
* If the a validation ErrorHandler has not been set, and
* validation throws a SAXException
*/
public boolean validate() throws SAXException {
return STIXSchema.getInstance().validate(toXMLString());
}
}