org.mitre.cybox.objects.PDFFile 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 org.mitre.cybox.objects;
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.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
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.cybox.common_2.ByteRunsType;
import org.mitre.cybox.common_2.CipherType;
import org.mitre.cybox.common_2.CustomPropertiesType;
import org.mitre.cybox.common_2.DateTimeObjectPropertyType;
import org.mitre.cybox.common_2.DigitalSignaturesType;
import org.mitre.cybox.common_2.DoubleObjectPropertyType;
import org.mitre.cybox.common_2.ExtractedFeaturesType;
import org.mitre.cybox.common_2.HashListType;
import org.mitre.cybox.common_2.HexBinaryObjectPropertyType;
import org.mitre.cybox.common_2.StringObjectPropertyType;
import org.mitre.cybox.common_2.UnsignedLongObjectPropertyType;
import org.mitre.stix.DocumentUtilities;
import org.mitre.stix.STIXSchema;
import org.mitre.stix.ValidationEventHandler;
import org.xml.sax.SAXException;
/**
* The PDFFileObjectType type is intended to characterize the structural makeup of PDF files.
*
* Java class for PDFFileObjectType complex type.
*
*
The following schema fragment specifies the expected content contained within this class.
*
*
* <complexType name="PDFFileObjectType">
* <complexContent>
* <extension base="{http://cybox.mitre.org/objects#FileObject-2}FileObjectType">
* <sequence>
* <element name="Metadata" type="{http://cybox.mitre.org/objects#PDFFileObject-1}PDFFileMetadataType" minOccurs="0"/>
* <element name="Version" type="{http://cybox.mitre.org/common-2}DoubleObjectPropertyType" minOccurs="0"/>
* <element name="Indirect_Objects" type="{http://cybox.mitre.org/objects#PDFFileObject-1}PDFIndirectObjectListType" minOccurs="0"/>
* <element name="Cross_Reference_Tables" type="{http://cybox.mitre.org/objects#PDFFileObject-1}PDFXRefTableListType" minOccurs="0"/>
* <element name="Trailers" type="{http://cybox.mitre.org/objects#PDFFileObject-1}PDFTrailerListType" minOccurs="0"/>
* </sequence>
* </extension>
* </complexContent>
* </complexType>
*
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "PDFFileObjectType", namespace = "http://cybox.mitre.org/objects#PDFFileObject-1", propOrder = {
"metadata", "version", "indirectObjects", "crossReferenceTables",
"trailers" })
@XmlRootElement(name = "PDF_File", namespace = "http://cybox.mitre.org/objects#PDFFileObject-1")
public class PDFFile extends FileObjectType implements Equals, HashCode,
ToString {
@XmlElement(name = "Metadata")
protected PDFFileMetadataType metadata;
@XmlElement(name = "Version")
protected DoubleObjectPropertyType version;
@XmlElement(name = "Indirect_Objects")
protected PDFIndirectObjectListType indirectObjects;
@XmlElement(name = "Cross_Reference_Tables")
protected PDFXRefTableListType crossReferenceTables;
@XmlElement(name = "Trailers")
protected PDFTrailerListType trailers;
/**
* Default no-arg constructor
*
*/
public PDFFile() {
super();
}
/**
* Fully-initialising value constructor
*
*/
public PDFFile(final CustomPropertiesType customProperties,
final QName objectReference,
final StringObjectPropertyType fileName,
final FilePathType filePath,
final StringObjectPropertyType devicePath,
final StringObjectPropertyType fullPath,
final StringObjectPropertyType fileExtension,
final UnsignedLongObjectPropertyType sizeInBytes,
final HexBinaryObjectPropertyType magicNumber,
final StringObjectPropertyType fileFormat,
final HashListType hashes,
final DigitalSignaturesType digitalSignatures,
final DateTimeObjectPropertyType modifiedTime,
final DateTimeObjectPropertyType accessedTime,
final DateTimeObjectPropertyType createdTime,
final FileAttributeType fileAttributesList,
final FilePermissionsType permissions,
final StringObjectPropertyType userOwner,
final PackerListType packerList,
final DoubleObjectPropertyType peakEntropy,
final SymLinksListType symLinks, final ByteRunsType byteRuns,
final ExtractedFeaturesType extractedFeatures,
final CipherType encryptionAlgorithm,
final StringObjectPropertyType decryptionKey,
final StringObjectPropertyType compressionMethod,
final StringObjectPropertyType compressionVersion,
final StringObjectPropertyType compressionComment,
final Boolean isPacked, final Boolean isMasqueraded,
final PDFFileMetadataType metadata,
final DoubleObjectPropertyType version,
final PDFIndirectObjectListType indirectObjects,
final PDFXRefTableListType crossReferenceTables,
final PDFTrailerListType trailers) {
super(customProperties, objectReference, fileName, filePath,
devicePath, fullPath, fileExtension, sizeInBytes, magicNumber,
fileFormat, hashes, digitalSignatures, modifiedTime,
accessedTime, createdTime, fileAttributesList, permissions,
userOwner, packerList, peakEntropy, symLinks, byteRuns,
extractedFeatures, encryptionAlgorithm, decryptionKey,
compressionMethod, compressionVersion, compressionComment,
isPacked, isMasqueraded);
this.metadata = metadata;
this.version = version;
this.indirectObjects = indirectObjects;
this.crossReferenceTables = crossReferenceTables;
this.trailers = trailers;
}
/**
* Gets the value of the metadata property.
*
* @return
* possible object is
* {@link PDFFileMetadataType }
*
*/
public PDFFileMetadataType getMetadata() {
return metadata;
}
/**
* Sets the value of the metadata property.
*
* @param value
* allowed object is
* {@link PDFFileMetadataType }
*
*/
public void setMetadata(PDFFileMetadataType value) {
this.metadata = value;
}
/**
* Gets the value of the version property.
*
* @return
* possible object is
* {@link DoubleObjectPropertyType }
*
*/
public DoubleObjectPropertyType getVersion() {
return version;
}
/**
* Sets the value of the version property.
*
* @param value
* allowed object is
* {@link DoubleObjectPropertyType }
*
*/
public void setVersion(DoubleObjectPropertyType value) {
this.version = value;
}
/**
* Gets the value of the indirectObjects property.
*
* @return
* possible object is
* {@link PDFIndirectObjectListType }
*
*/
public PDFIndirectObjectListType getIndirectObjects() {
return indirectObjects;
}
/**
* Sets the value of the indirectObjects property.
*
* @param value
* allowed object is
* {@link PDFIndirectObjectListType }
*
*/
public void setIndirectObjects(PDFIndirectObjectListType value) {
this.indirectObjects = value;
}
/**
* Gets the value of the crossReferenceTables property.
*
* @return
* possible object is
* {@link PDFXRefTableListType }
*
*/
public PDFXRefTableListType getCrossReferenceTables() {
return crossReferenceTables;
}
/**
* Sets the value of the crossReferenceTables property.
*
* @param value
* allowed object is
* {@link PDFXRefTableListType }
*
*/
public void setCrossReferenceTables(PDFXRefTableListType value) {
this.crossReferenceTables = value;
}
/**
* Gets the value of the trailers property.
*
* @return
* possible object is
* {@link PDFTrailerListType }
*
*/
public PDFTrailerListType getTrailers() {
return trailers;
}
/**
* Sets the value of the trailers property.
*
* @param value
* allowed object is
* {@link PDFTrailerListType }
*
*/
public void setTrailers(PDFTrailerListType value) {
this.trailers = value;
}
public boolean equals(ObjectLocator thisLocator, ObjectLocator thatLocator,
Object object, EqualsStrategy strategy) {
if (!(object instanceof PDFFile)) {
return false;
}
if (this == object) {
return true;
}
if (!super.equals(thisLocator, thatLocator, object, strategy)) {
return false;
}
final PDFFile that = ((PDFFile) object);
{
PDFFileMetadataType lhsMetadata;
lhsMetadata = this.getMetadata();
PDFFileMetadataType rhsMetadata;
rhsMetadata = that.getMetadata();
if (!strategy
.equals(LocatorUtils.property(thisLocator, "metadata",
lhsMetadata), LocatorUtils.property(thatLocator,
"metadata", rhsMetadata), lhsMetadata, rhsMetadata)) {
return false;
}
}
{
DoubleObjectPropertyType lhsVersion;
lhsVersion = this.getVersion();
DoubleObjectPropertyType rhsVersion;
rhsVersion = that.getVersion();
if (!strategy.equals(
LocatorUtils.property(thisLocator, "version", lhsVersion),
LocatorUtils.property(thatLocator, "version", rhsVersion),
lhsVersion, rhsVersion)) {
return false;
}
}
{
PDFIndirectObjectListType lhsIndirectObjects;
lhsIndirectObjects = this.getIndirectObjects();
PDFIndirectObjectListType rhsIndirectObjects;
rhsIndirectObjects = that.getIndirectObjects();
if (!strategy.equals(LocatorUtils.property(thisLocator,
"indirectObjects", lhsIndirectObjects), LocatorUtils
.property(thatLocator, "indirectObjects",
rhsIndirectObjects), lhsIndirectObjects,
rhsIndirectObjects)) {
return false;
}
}
{
PDFXRefTableListType lhsCrossReferenceTables;
lhsCrossReferenceTables = this.getCrossReferenceTables();
PDFXRefTableListType rhsCrossReferenceTables;
rhsCrossReferenceTables = that.getCrossReferenceTables();
if (!strategy.equals(LocatorUtils.property(thisLocator,
"crossReferenceTables", lhsCrossReferenceTables),
LocatorUtils.property(thatLocator, "crossReferenceTables",
rhsCrossReferenceTables), lhsCrossReferenceTables,
rhsCrossReferenceTables)) {
return false;
}
}
{
PDFTrailerListType lhsTrailers;
lhsTrailers = this.getTrailers();
PDFTrailerListType rhsTrailers;
rhsTrailers = that.getTrailers();
if (!strategy
.equals(LocatorUtils.property(thisLocator, "trailers",
lhsTrailers), LocatorUtils.property(thatLocator,
"trailers", rhsTrailers), lhsTrailers, rhsTrailers)) {
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 = super.hashCode(locator, strategy);
{
PDFFileMetadataType theMetadata;
theMetadata = this.getMetadata();
currentHashCode = strategy.hashCode(
LocatorUtils.property(locator, "metadata", theMetadata),
currentHashCode, theMetadata);
}
{
DoubleObjectPropertyType theVersion;
theVersion = this.getVersion();
currentHashCode = strategy.hashCode(
LocatorUtils.property(locator, "version", theVersion),
currentHashCode, theVersion);
}
{
PDFIndirectObjectListType theIndirectObjects;
theIndirectObjects = this.getIndirectObjects();
currentHashCode = strategy.hashCode(LocatorUtils.property(locator,
"indirectObjects", theIndirectObjects), currentHashCode,
theIndirectObjects);
}
{
PDFXRefTableListType theCrossReferenceTables;
theCrossReferenceTables = this.getCrossReferenceTables();
currentHashCode = strategy.hashCode(LocatorUtils.property(locator,
"crossReferenceTables", theCrossReferenceTables),
currentHashCode, theCrossReferenceTables);
}
{
PDFTrailerListType theTrailers;
theTrailers = this.getTrailers();
currentHashCode = strategy.hashCode(
LocatorUtils.property(locator, "trailers", theTrailers),
currentHashCode, theTrailers);
}
return currentHashCode;
}
public int hashCode() {
final HashCodeStrategy strategy = JAXBHashCodeStrategy.INSTANCE;
return this.hashCode(null, strategy);
}
public PDFFile withMetadata(PDFFileMetadataType value) {
setMetadata(value);
return this;
}
public PDFFile withVersion(DoubleObjectPropertyType value) {
setVersion(value);
return this;
}
public PDFFile withIndirectObjects(PDFIndirectObjectListType value) {
setIndirectObjects(value);
return this;
}
public PDFFile withCrossReferenceTables(PDFXRefTableListType value) {
setCrossReferenceTables(value);
return this;
}
public PDFFile withTrailers(PDFTrailerListType value) {
setTrailers(value);
return this;
}
@Override
public PDFFile withFileName(StringObjectPropertyType value) {
setFileName(value);
return this;
}
@Override
public PDFFile withFilePath(FilePathType value) {
setFilePath(value);
return this;
}
@Override
public PDFFile withDevicePath(StringObjectPropertyType value) {
setDevicePath(value);
return this;
}
@Override
public PDFFile withFullPath(StringObjectPropertyType value) {
setFullPath(value);
return this;
}
@Override
public PDFFile withFileExtension(StringObjectPropertyType value) {
setFileExtension(value);
return this;
}
@Override
public PDFFile withSizeInBytes(UnsignedLongObjectPropertyType value) {
setSizeInBytes(value);
return this;
}
@Override
public PDFFile withMagicNumber(HexBinaryObjectPropertyType value) {
setMagicNumber(value);
return this;
}
@Override
public PDFFile withFileFormat(StringObjectPropertyType value) {
setFileFormat(value);
return this;
}
@Override
public PDFFile withHashes(HashListType value) {
setHashes(value);
return this;
}
@Override
public PDFFile withDigitalSignatures(DigitalSignaturesType value) {
setDigitalSignatures(value);
return this;
}
@Override
public PDFFile withModifiedTime(DateTimeObjectPropertyType value) {
setModifiedTime(value);
return this;
}
@Override
public PDFFile withAccessedTime(DateTimeObjectPropertyType value) {
setAccessedTime(value);
return this;
}
@Override
public PDFFile withCreatedTime(DateTimeObjectPropertyType value) {
setCreatedTime(value);
return this;
}
@Override
public PDFFile withFileAttributesList(FileAttributeType value) {
setFileAttributesList(value);
return this;
}
@Override
public PDFFile withPermissions(FilePermissionsType value) {
setPermissions(value);
return this;
}
@Override
public PDFFile withUserOwner(StringObjectPropertyType value) {
setUserOwner(value);
return this;
}
@Override
public PDFFile withPackerList(PackerListType value) {
setPackerList(value);
return this;
}
@Override
public PDFFile withPeakEntropy(DoubleObjectPropertyType value) {
setPeakEntropy(value);
return this;
}
@Override
public PDFFile withSymLinks(SymLinksListType value) {
setSymLinks(value);
return this;
}
@Override
public PDFFile withByteRuns(ByteRunsType value) {
setByteRuns(value);
return this;
}
@Override
public PDFFile withExtractedFeatures(ExtractedFeaturesType value) {
setExtractedFeatures(value);
return this;
}
@Override
public PDFFile withEncryptionAlgorithm(CipherType value) {
setEncryptionAlgorithm(value);
return this;
}
@Override
public PDFFile withDecryptionKey(StringObjectPropertyType value) {
setDecryptionKey(value);
return this;
}
@Override
public PDFFile withCompressionMethod(StringObjectPropertyType value) {
setCompressionMethod(value);
return this;
}
@Override
public PDFFile withCompressionVersion(StringObjectPropertyType value) {
setCompressionVersion(value);
return this;
}
@Override
public PDFFile withCompressionComment(StringObjectPropertyType value) {
setCompressionComment(value);
return this;
}
@Override
public PDFFile withIsPacked(Boolean value) {
setIsPacked(value);
return this;
}
@Override
public PDFFile withIsMasqueraded(Boolean value) {
setIsMasqueraded(value);
return this;
}
@Override
public PDFFile withCustomProperties(CustomPropertiesType value) {
setCustomProperties(value);
return this;
}
@Override
public PDFFile withObjectReference(QName value) {
setObjectReference(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) {
super.appendFields(locator, buffer, strategy);
{
PDFFileMetadataType theMetadata;
theMetadata = this.getMetadata();
strategy.appendField(locator, this, "metadata", buffer, theMetadata);
}
{
DoubleObjectPropertyType theVersion;
theVersion = this.getVersion();
strategy.appendField(locator, this, "version", buffer, theVersion);
}
{
PDFIndirectObjectListType theIndirectObjects;
theIndirectObjects = this.getIndirectObjects();
strategy.appendField(locator, this, "indirectObjects", buffer,
theIndirectObjects);
}
{
PDFXRefTableListType theCrossReferenceTables;
theCrossReferenceTables = this.getCrossReferenceTables();
strategy.appendField(locator, this, "crossReferenceTables", buffer,
theCrossReferenceTables);
}
{
PDFTrailerListType theTrailers;
theTrailers = this.getTrailers();
strategy.appendField(locator, this, "trailers", buffer, theTrailers);
}
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, PDFFile.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 PDFFile instance for XML String
*
* @param text
* XML String for the document
* @return The PDFFile instance for the passed XML String
*/
public static PDFFile fromXMLString(String text) {
JAXBContext jaxbContext;
try {
jaxbContext = JAXBContext.newInstance(PDFFile.class.getPackage()
.getName());
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
unmarshaller.setSchema(STIXSchema.getInstance().getSchema());
unmarshaller.setEventHandler(new ValidationEventHandler());
StreamSource streamSource = new StreamSource(new StringReader(text));
return (PDFFile) unmarshaller.unmarshal(streamSource);
} catch (JAXBException e) {
throw new RuntimeException(e);
}
}
/**
* Validates the XML representation of this PDFFile 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());
}
}