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

org.mitre.capec.capec_2.AttackPattern Maven / Gradle / Ivy

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.capec.capec_2;

import java.io.StringReader;
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
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.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.cybox_2.Observables;
import org.mitre.stix.DocumentUtilities;
import org.mitre.stix.STIXSchema;
import org.mitre.stix.ValidationEventHandler;
import org.xml.sax.SAXException;

/**
 * 

Java class for Attack_PatternType complex type. * *

The following schema fragment specifies the expected content contained within this class. * *

 * <complexType name="Attack_PatternType">
 *   <complexContent>
 *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *       <sequence>
 *         <element name="Description" minOccurs="0">
 *           <complexType>
 *             <complexContent>
 *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 <sequence>
 *                   <element name="Summary" type="{http://capec.mitre.org/capec-2}Structured_Text_Type"/>
 *                   <element ref="{http://capec.mitre.org/capec-2}Attack_Execution_Flow" minOccurs="0"/>
 *                 </sequence>
 *               </restriction>
 *             </complexContent>
 *           </complexType>
 *         </element>
 *         <element ref="{http://capec.mitre.org/capec-2}Alternate_Terms" minOccurs="0"/>
 *         <element name="Target_Attack_Surface" type="{http://capec.mitre.org/capec-2}Target_Attack_SurfaceType" minOccurs="0"/>
 *         <element name="Attack_Prerequisites" minOccurs="0">
 *           <complexType>
 *             <complexContent>
 *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 <sequence>
 *                   <element name="Attack_Prerequisite" type="{http://capec.mitre.org/capec-2}Structured_Text_Type" maxOccurs="unbounded"/>
 *                 </sequence>
 *               </restriction>
 *             </complexContent>
 *           </complexType>
 *         </element>
 *         <element name="Typical_Severity" minOccurs="0">
 *           <simpleType>
 *             <restriction base="{http://www.w3.org/2001/XMLSchema}string">
 *               <whiteSpace value="collapse"/>
 *               <enumeration value="Very High"/>
 *               <enumeration value="High"/>
 *               <enumeration value="Medium"/>
 *               <enumeration value="Low"/>
 *               <enumeration value="Very Low"/>
 *             </restriction>
 *           </simpleType>
 *         </element>
 *         <element name="Typical_Likelihood_of_Exploit" minOccurs="0">
 *           <complexType>
 *             <complexContent>
 *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 <sequence>
 *                   <element name="Likelihood" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
 *                   <element name="Explanation" type="{http://capec.mitre.org/capec-2}Structured_Text_Type" minOccurs="0"/>
 *                 </sequence>
 *               </restriction>
 *             </complexContent>
 *           </complexType>
 *         </element>
 *         <element name="Methods_of_Attack" minOccurs="0">
 *           <complexType>
 *             <complexContent>
 *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 <sequence>
 *                   <element name="Method_of_Attack" maxOccurs="unbounded" minOccurs="0">
 *                     <simpleType>
 *                       <restriction base="{http://www.w3.org/2001/XMLSchema}string">
 *                         <whiteSpace value="collapse"/>
 *                         <enumeration value="Injection"/>
 *                         <enumeration value="Modification of Resources"/>
 *                         <enumeration value="Protocol Manipulation"/>
 *                         <enumeration value="Analysis"/>
 *                         <enumeration value="API Abuse"/>
 *                         <enumeration value="Brute Force"/>
 *                         <enumeration value="Flooding"/>
 *                         <enumeration value="Time and State"/>
 *                         <enumeration value="Spoofing"/>
 *                         <enumeration value="Social Engineering"/>
 *                       </restriction>
 *                     </simpleType>
 *                   </element>
 *                 </sequence>
 *               </restriction>
 *             </complexContent>
 *           </complexType>
 *         </element>
 *         <element name="Examples-Instances" minOccurs="0">
 *           <complexType>
 *             <complexContent>
 *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 <sequence>
 *                   <element name="Example-Instance" maxOccurs="unbounded">
 *                     <complexType>
 *                       <complexContent>
 *                         <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                           <sequence>
 *                             <element name="Example-Instance_Description" type="{http://capec.mitre.org/capec-2}Structured_Text_Type"/>
 *                             <element name="Example-Instance_Related_Vulnerabilities" minOccurs="0">
 *                               <complexType>
 *                                 <complexContent>
 *                                   <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                                     <sequence>
 *                                       <element name="Example-Instance_Related_Vulnerability" type="{http://capec.mitre.org/capec-2}Structured_Text_Type" maxOccurs="unbounded"/>
 *                                     </sequence>
 *                                   </restriction>
 *                                 </complexContent>
 *                               </complexType>
 *                             </element>
 *                           </sequence>
 *                         </restriction>
 *                       </complexContent>
 *                     </complexType>
 *                   </element>
 *                 </sequence>
 *               </restriction>
 *             </complexContent>
 *           </complexType>
 *         </element>
 *         <element name="Attacker_Skills_or_Knowledge_Required" minOccurs="0">
 *           <complexType>
 *             <complexContent>
 *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 <sequence>
 *                   <element name="Attacker_Skill_or_Knowledge_Required" maxOccurs="unbounded">
 *                     <complexType>
 *                       <complexContent>
 *                         <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                           <sequence>
 *                             <element name="Skill_or_Knowledge_Level" maxOccurs="unbounded" minOccurs="0">
 *                               <simpleType>
 *                                 <restriction base="{http://www.w3.org/2001/XMLSchema}string">
 *                                   <whiteSpace value="collapse"/>
 *                                   <enumeration value="Low"/>
 *                                   <enumeration value="Medium"/>
 *                                   <enumeration value="High"/>
 *                                 </restriction>
 *                               </simpleType>
 *                             </element>
 *                             <element name="Skill_or_Knowledge_Type" type="{http://capec.mitre.org/capec-2}Structured_Text_Type" minOccurs="0"/>
 *                           </sequence>
 *                         </restriction>
 *                       </complexContent>
 *                     </complexType>
 *                   </element>
 *                 </sequence>
 *               </restriction>
 *             </complexContent>
 *           </complexType>
 *         </element>
 *         <element name="Resources_Required" type="{http://capec.mitre.org/capec-2}Structured_Text_Type" minOccurs="0"/>
 *         <element name="Probing_Techniques" minOccurs="0">
 *           <complexType>
 *             <complexContent>
 *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 <sequence>
 *                   <element name="Probing_Technique" maxOccurs="unbounded">
 *                     <complexType>
 *                       <complexContent>
 *                         <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                           <sequence>
 *                             <element name="Description" type="{http://capec.mitre.org/capec-2}Structured_Text_Type" minOccurs="0"/>
 *                             <element name="Observables" type="{http://cybox.mitre.org/cybox-2}ObservablesType" minOccurs="0"/>
 *                           </sequence>
 *                         </restriction>
 *                       </complexContent>
 *                     </complexType>
 *                   </element>
 *                 </sequence>
 *               </restriction>
 *             </complexContent>
 *           </complexType>
 *         </element>
 *         <element name="Indicators-Warnings_of_Attack" minOccurs="0">
 *           <complexType>
 *             <complexContent>
 *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 <sequence>
 *                   <element name="Indicator-Warning_of_Attack" maxOccurs="unbounded">
 *                     <complexType>
 *                       <complexContent>
 *                         <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                           <sequence>
 *                             <element name="Description" type="{http://capec.mitre.org/capec-2}Structured_Text_Type" minOccurs="0"/>
 *                             <element name="Observables" type="{http://cybox.mitre.org/cybox-2}ObservablesType" minOccurs="0"/>
 *                           </sequence>
 *                         </restriction>
 *                       </complexContent>
 *                     </complexType>
 *                   </element>
 *                 </sequence>
 *               </restriction>
 *             </complexContent>
 *           </complexType>
 *         </element>
 *         <element name="Obfuscation_Techniques" minOccurs="0">
 *           <complexType>
 *             <complexContent>
 *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 <sequence>
 *                   <element name="Obfuscation_Technique" maxOccurs="unbounded">
 *                     <complexType>
 *                       <complexContent>
 *                         <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                           <sequence>
 *                             <element name="Description" type="{http://capec.mitre.org/capec-2}Structured_Text_Type" minOccurs="0"/>
 *                             <element name="Observables" type="{http://cybox.mitre.org/cybox-2}ObservablesType" minOccurs="0"/>
 *                           </sequence>
 *                         </restriction>
 *                       </complexContent>
 *                     </complexType>
 *                   </element>
 *                 </sequence>
 *               </restriction>
 *             </complexContent>
 *           </complexType>
 *         </element>
 *         <element name="Solutions_and_Mitigations" minOccurs="0">
 *           <complexType>
 *             <complexContent>
 *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 <sequence>
 *                   <element name="Solution_or_Mitigation" type="{http://capec.mitre.org/capec-2}Structured_Text_Type" maxOccurs="unbounded"/>
 *                 </sequence>
 *               </restriction>
 *             </complexContent>
 *           </complexType>
 *         </element>
 *         <element name="Attack_Motivation-Consequences" minOccurs="0">
 *           <complexType>
 *             <complexContent>
 *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 <sequence>
 *                   <element name="Attack_Motivation-Consequence" type="{http://capec.mitre.org/capec-2}Common_ConsequenceType" maxOccurs="unbounded"/>
 *                 </sequence>
 *               </restriction>
 *             </complexContent>
 *           </complexType>
 *         </element>
 *         <element name="Injection_Vector" type="{http://capec.mitre.org/capec-2}Structured_Text_Type" minOccurs="0"/>
 *         <element name="Payload" type="{http://capec.mitre.org/capec-2}Structured_Text_Type" minOccurs="0"/>
 *         <element name="Activation_Zone" type="{http://capec.mitre.org/capec-2}Structured_Text_Type" minOccurs="0"/>
 *         <element name="Payload_Activation_Impact" minOccurs="0">
 *           <complexType>
 *             <complexContent>
 *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 <sequence>
 *                   <element name="Description" type="{http://capec.mitre.org/capec-2}Structured_Text_Type" minOccurs="0"/>
 *                   <element name="Observables" type="{http://cybox.mitre.org/cybox-2}ObservablesType" minOccurs="0"/>
 *                 </sequence>
 *               </restriction>
 *             </complexContent>
 *           </complexType>
 *         </element>
 *         <element name="Related_Weaknesses" minOccurs="0">
 *           <complexType>
 *             <complexContent>
 *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 <sequence>
 *                   <element name="Related_Weakness" maxOccurs="unbounded">
 *                     <complexType>
 *                       <complexContent>
 *                         <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                           <sequence>
 *                             <element name="CWE_ID" type="{http://www.w3.org/2001/XMLSchema}integer"/>
 *                             <element name="Weakness_Relationship_Type">
 *                               <simpleType>
 *                                 <restriction base="{http://www.w3.org/2001/XMLSchema}string">
 *                                   <whiteSpace value="collapse"/>
 *                                   <enumeration value="Targeted"/>
 *                                   <enumeration value="Secondary"/>
 *                                 </restriction>
 *                               </simpleType>
 *                             </element>
 *                           </sequence>
 *                         </restriction>
 *                       </complexContent>
 *                     </complexType>
 *                   </element>
 *                 </sequence>
 *               </restriction>
 *             </complexContent>
 *           </complexType>
 *         </element>
 *         <element name="Related_Vulnerabilities" minOccurs="0">
 *           <complexType>
 *             <complexContent>
 *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 <sequence>
 *                   <element name="Related_Vulnerability" maxOccurs="unbounded">
 *                     <complexType>
 *                       <complexContent>
 *                         <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                           <sequence>
 *                             <element name="Vulnerability_ID" type="{http://www.w3.org/2001/XMLSchema}string"/>
 *                             <element name="Vulnerability_Description" type="{http://capec.mitre.org/capec-2}Structured_Text_Type"/>
 *                           </sequence>
 *                         </restriction>
 *                       </complexContent>
 *                     </complexType>
 *                   </element>
 *                 </sequence>
 *               </restriction>
 *             </complexContent>
 *           </complexType>
 *         </element>
 *         <element name="Related_Attack_Patterns" minOccurs="0">
 *           <complexType>
 *             <complexContent>
 *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 <sequence>
 *                   <element name="Related_Attack_Pattern" type="{http://capec.mitre.org/capec-2}RelationshipType" maxOccurs="unbounded"/>
 *                 </sequence>
 *               </restriction>
 *             </complexContent>
 *           </complexType>
 *         </element>
 *         <element name="Relevant_Security_Requirements" minOccurs="0">
 *           <complexType>
 *             <complexContent>
 *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 <sequence>
 *                   <element name="Relevant_Security_Requirement" type="{http://capec.mitre.org/capec-2}Structured_Text_Type" maxOccurs="unbounded"/>
 *                 </sequence>
 *               </restriction>
 *             </complexContent>
 *           </complexType>
 *         </element>
 *         <element name="Relevant_Design_Patterns" minOccurs="0">
 *           <complexType>
 *             <complexContent>
 *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 <sequence>
 *                   <element name="Recommended_Design_Patterns">
 *                     <complexType>
 *                       <complexContent>
 *                         <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                           <sequence>
 *                             <element name="Recommended_Design_Pattern" type="{http://capec.mitre.org/capec-2}Structured_Text_Type" maxOccurs="unbounded"/>
 *                           </sequence>
 *                         </restriction>
 *                       </complexContent>
 *                     </complexType>
 *                   </element>
 *                   <element name="Non-Recommended_Design_Patterns">
 *                     <complexType>
 *                       <complexContent>
 *                         <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                           <sequence>
 *                             <element name="Non-Recommended_Design_Pattern" type="{http://capec.mitre.org/capec-2}Structured_Text_Type" maxOccurs="unbounded"/>
 *                           </sequence>
 *                         </restriction>
 *                       </complexContent>
 *                     </complexType>
 *                   </element>
 *                 </sequence>
 *               </restriction>
 *             </complexContent>
 *           </complexType>
 *         </element>
 *         <element name="Relevant_Security_Patterns" minOccurs="0">
 *           <complexType>
 *             <complexContent>
 *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 <sequence>
 *                   <element name="Relevant_Security_Pattern" type="{http://capec.mitre.org/capec-2}Structured_Text_Type" maxOccurs="unbounded"/>
 *                 </sequence>
 *               </restriction>
 *             </complexContent>
 *           </complexType>
 *         </element>
 *         <element name="Related_Security_Principles" minOccurs="0">
 *           <complexType>
 *             <complexContent>
 *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 <sequence>
 *                   <element name="Related_Security_Principle" type="{http://capec.mitre.org/capec-2}Structured_Text_Type" maxOccurs="unbounded"/>
 *                 </sequence>
 *               </restriction>
 *             </complexContent>
 *           </complexType>
 *         </element>
 *         <element name="Related_Guidelines" minOccurs="0">
 *           <complexType>
 *             <complexContent>
 *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 <sequence>
 *                   <element name="Related_Guideline" type="{http://capec.mitre.org/capec-2}Structured_Text_Type" maxOccurs="unbounded"/>
 *                 </sequence>
 *               </restriction>
 *             </complexContent>
 *           </complexType>
 *         </element>
 *         <element name="Purposes" minOccurs="0">
 *           <complexType>
 *             <complexContent>
 *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 <sequence>
 *                   <element name="Purpose" maxOccurs="unbounded">
 *                     <simpleType>
 *                       <restriction base="{http://www.w3.org/2001/XMLSchema}string">
 *                         <whiteSpace value="collapse"/>
 *                         <enumeration value="Reconnaissance"/>
 *                         <enumeration value="Penetration"/>
 *                         <enumeration value="Exploitation"/>
 *                         <enumeration value="Obfuscation"/>
 *                       </restriction>
 *                     </simpleType>
 *                   </element>
 *                 </sequence>
 *               </restriction>
 *             </complexContent>
 *           </complexType>
 *         </element>
 *         <element name="CIA_Impact" minOccurs="0">
 *           <complexType>
 *             <complexContent>
 *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 <sequence>
 *                   <element name="Confidentiality_Impact" minOccurs="0">
 *                     <simpleType>
 *                       <restriction base="{http://www.w3.org/2001/XMLSchema}string">
 *                         <whiteSpace value="collapse"/>
 *                         <enumeration value="Low"/>
 *                         <enumeration value="Medium"/>
 *                         <enumeration value="High"/>
 *                       </restriction>
 *                     </simpleType>
 *                   </element>
 *                   <element name="Integrity_Impact" minOccurs="0">
 *                     <simpleType>
 *                       <restriction base="{http://www.w3.org/2001/XMLSchema}string">
 *                         <whiteSpace value="collapse"/>
 *                         <enumeration value="Low"/>
 *                         <enumeration value="Medium"/>
 *                         <enumeration value="High"/>
 *                       </restriction>
 *                     </simpleType>
 *                   </element>
 *                   <element name="Availability_Impact" minOccurs="0">
 *                     <simpleType>
 *                       <restriction base="{http://www.w3.org/2001/XMLSchema}string">
 *                         <whiteSpace value="collapse"/>
 *                         <enumeration value="Low"/>
 *                         <enumeration value="Medium"/>
 *                         <enumeration value="High"/>
 *                       </restriction>
 *                     </simpleType>
 *                   </element>
 *                 </sequence>
 *               </restriction>
 *             </complexContent>
 *           </complexType>
 *         </element>
 *         <element name="Technical_Context" minOccurs="0">
 *           <complexType>
 *             <complexContent>
 *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 <sequence>
 *                   <element name="Architectural_Paradigms" minOccurs="0">
 *                     <complexType>
 *                       <complexContent>
 *                         <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                           <sequence>
 *                             <element name="Architectural_Paradigm" maxOccurs="unbounded">
 *                               <simpleType>
 *                                 <restriction base="{http://www.w3.org/2001/XMLSchema}string">
 *                                   <whiteSpace value="collapse"/>
 *                                   <enumeration value="Mainframe"/>
 *                                   <enumeration value="Client-Server"/>
 *                                   <enumeration value="n-Tier"/>
 *                                   <enumeration value="Web"/>
 *                                   <enumeration value="SOA"/>
 *                                   <enumeration value="Other"/>
 *                                   <enumeration value="All"/>
 *                                 </restriction>
 *                               </simpleType>
 *                             </element>
 *                           </sequence>
 *                         </restriction>
 *                       </complexContent>
 *                     </complexType>
 *                   </element>
 *                   <element name="Frameworks" minOccurs="0">
 *                     <complexType>
 *                       <complexContent>
 *                         <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                           <sequence>
 *                             <element name="Framework" maxOccurs="unbounded" minOccurs="0">
 *                               <simpleType>
 *                                 <restriction base="{http://www.w3.org/2001/XMLSchema}string">
 *                                   <whiteSpace value="collapse"/>
 *                                   <enumeration value="J2EE"/>
 *                                   <enumeration value=".NET"/>
 *                                   <enumeration value="Struts"/>
 *                                   <enumeration value="Spring"/>
 *                                   <enumeration value="Hibernate"/>
 *                                   <enumeration value="Other"/>
 *                                   <enumeration value="All"/>
 *                                 </restriction>
 *                               </simpleType>
 *                             </element>
 *                           </sequence>
 *                         </restriction>
 *                       </complexContent>
 *                     </complexType>
 *                   </element>
 *                   <element name="Platforms" minOccurs="0">
 *                     <complexType>
 *                       <complexContent>
 *                         <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                           <sequence>
 *                             <element name="Platform" maxOccurs="unbounded" minOccurs="0">
 *                               <simpleType>
 *                                 <restriction base="{http://www.w3.org/2001/XMLSchema}string">
 *                                   <whiteSpace value="collapse"/>
 *                                   <enumeration value="Windows"/>
 *                                   <enumeration value="UNIX-LINUX"/>
 *                                   <enumeration value="Solaris"/>
 *                                   <enumeration value="Other"/>
 *                                   <enumeration value="All"/>
 *                                 </restriction>
 *                               </simpleType>
 *                             </element>
 *                           </sequence>
 *                         </restriction>
 *                       </complexContent>
 *                     </complexType>
 *                   </element>
 *                   <element name="Languages" minOccurs="0">
 *                     <complexType>
 *                       <complexContent>
 *                         <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                           <sequence>
 *                             <element name="Language" maxOccurs="unbounded" minOccurs="0">
 *                               <simpleType>
 *                                 <restriction base="{http://www.w3.org/2001/XMLSchema}string">
 *                                   <whiteSpace value="collapse"/>
 *                                   <enumeration value="AJAX"/>
 *                                   <enumeration value="ASP"/>
 *                                   <enumeration value="ASP.NET"/>
 *                                   <enumeration value="C"/>
 *                                   <enumeration value="C++"/>
 *                                   <enumeration value="C#"/>
 *                                   <enumeration value="Java"/>
 *                                   <enumeration value="JSP"/>
 *                                   <enumeration value="PHP"/>
 *                                   <enumeration value="PERL"/>
 *                                   <enumeration value="Ruby"/>
 *                                   <enumeration value="Visual Basic"/>
 *                                   <enumeration value="Other"/>
 *                                   <enumeration value="All"/>
 *                                 </restriction>
 *                               </simpleType>
 *                             </element>
 *                           </sequence>
 *                         </restriction>
 *                       </complexContent>
 *                     </complexType>
 *                   </element>
 *                 </sequence>
 *               </restriction>
 *             </complexContent>
 *           </complexType>
 *         </element>
 *         <element name="Keywords" minOccurs="0">
 *           <complexType>
 *             <complexContent>
 *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 <sequence>
 *                   <element name="Keyword" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded"/>
 *                 </sequence>
 *               </restriction>
 *             </complexContent>
 *           </complexType>
 *         </element>
 *         <element name="References" minOccurs="0">
 *           <complexType>
 *             <complexContent>
 *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 <sequence>
 *                   <element name="Reference" type="{http://capec.mitre.org/capec-2}Reference_Type" maxOccurs="unbounded"/>
 *                 </sequence>
 *               </restriction>
 *             </complexContent>
 *           </complexType>
 *         </element>
 *         <element ref="{http://capec.mitre.org/capec-2}Other_Notes" minOccurs="0"/>
 *         <element ref="{http://capec.mitre.org/capec-2}Maintenance_Notes" minOccurs="0"/>
 *         <element ref="{http://capec.mitre.org/capec-2}Content_History" minOccurs="0"/>
 *       </sequence>
 *       <attribute name="ID" type="{http://www.w3.org/2001/XMLSchema}integer" default="0" />
 *       <attribute name="Name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
 *       <attribute name="Pattern_Completeness">
 *         <simpleType>
 *           <restriction base="{http://www.w3.org/2001/XMLSchema}string">
 *             <whiteSpace value="collapse"/>
 *             <enumeration value="Complete"/>
 *             <enumeration value="Stub"/>
 *             <enumeration value="Hook"/>
 *           </restriction>
 *         </simpleType>
 *       </attribute>
 *       <attribute name="Pattern_Abstraction">
 *         <simpleType>
 *           <restriction base="{http://www.w3.org/2001/XMLSchema}string">
 *             <whiteSpace value="collapse"/>
 *             <enumeration value="Meta"/>
 *             <enumeration value="Standard"/>
 *             <enumeration value="Detailed"/>
 *           </restriction>
 *         </simpleType>
 *       </attribute>
 *       <attribute name="Status" use="required" type="{http://capec.mitre.org/capec-2}Status_Type" />
 *     </restriction>
 *   </complexContent>
 * </complexType>
 * 
* * */ @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "Attack_PatternType", propOrder = { "description", "alternateTerms", "targetAttackSurface", "attackPrerequisites", "typicalSeverity", "typicalLikelihoodOfExploit", "methodsOfAttack", "examplesInstances", "attackerSkillsOrKnowledgeRequired", "resourcesRequired", "probingTechniques", "indicatorsWarningsOfAttack", "obfuscationTechniques", "solutionsAndMitigations", "attackMotivationConsequences", "injectionVector", "payload", "activationZone", "payloadActivationImpact", "relatedWeaknesses", "relatedVulnerabilities", "relatedAttackPatterns", "relevantSecurityRequirements", "relevantDesignPatterns", "relevantSecurityPatterns", "relatedSecurityPrinciples", "relatedGuidelines", "purposes", "ciaImpact", "technicalContext", "keywords", "references", "otherNotes", "maintenanceNotes", "contentHistory" }) @XmlRootElement(name = "Attack_Pattern") public class AttackPattern implements Equals, HashCode, ToString { @XmlElement(name = "Description") protected AttackPattern.Description description; @XmlElement(name = "Alternate_Terms") protected AlternateTerms alternateTerms; @XmlElement(name = "Target_Attack_Surface") protected TargetAttackSurfaceType targetAttackSurface; @XmlElement(name = "Attack_Prerequisites") protected AttackPattern.AttackPrerequisites attackPrerequisites; @XmlElement(name = "Typical_Severity") protected String typicalSeverity; @XmlElement(name = "Typical_Likelihood_of_Exploit") protected AttackPattern.TypicalLikelihoodOfExploit typicalLikelihoodOfExploit; @XmlElement(name = "Methods_of_Attack") protected AttackPattern.MethodsOfAttack methodsOfAttack; @XmlElement(name = "Examples-Instances") protected AttackPattern.ExamplesInstances examplesInstances; @XmlElement(name = "Attacker_Skills_or_Knowledge_Required") protected AttackPattern.AttackerSkillsOrKnowledgeRequired attackerSkillsOrKnowledgeRequired; @XmlElement(name = "Resources_Required") protected StructuredTextType resourcesRequired; @XmlElement(name = "Probing_Techniques") protected AttackPattern.ProbingTechniques probingTechniques; @XmlElement(name = "Indicators-Warnings_of_Attack") protected AttackPattern.IndicatorsWarningsOfAttack indicatorsWarningsOfAttack; @XmlElement(name = "Obfuscation_Techniques") protected AttackPattern.ObfuscationTechniques obfuscationTechniques; @XmlElement(name = "Solutions_and_Mitigations") protected AttackPattern.SolutionsAndMitigations solutionsAndMitigations; @XmlElement(name = "Attack_Motivation-Consequences") protected AttackPattern.AttackMotivationConsequences attackMotivationConsequences; @XmlElement(name = "Injection_Vector") protected StructuredTextType injectionVector; @XmlElement(name = "Payload") protected StructuredTextType payload; @XmlElement(name = "Activation_Zone") protected StructuredTextType activationZone; @XmlElement(name = "Payload_Activation_Impact") protected AttackPattern.PayloadActivationImpact payloadActivationImpact; @XmlElement(name = "Related_Weaknesses") protected AttackPattern.RelatedWeaknesses relatedWeaknesses; @XmlElement(name = "Related_Vulnerabilities") protected AttackPattern.RelatedVulnerabilities relatedVulnerabilities; @XmlElement(name = "Related_Attack_Patterns") protected AttackPattern.RelatedAttackPatterns relatedAttackPatterns; @XmlElement(name = "Relevant_Security_Requirements") protected AttackPattern.RelevantSecurityRequirements relevantSecurityRequirements; @XmlElement(name = "Relevant_Design_Patterns") protected AttackPattern.RelevantDesignPatterns relevantDesignPatterns; @XmlElement(name = "Relevant_Security_Patterns") protected AttackPattern.RelevantSecurityPatterns relevantSecurityPatterns; @XmlElement(name = "Related_Security_Principles") protected AttackPattern.RelatedSecurityPrinciples relatedSecurityPrinciples; @XmlElement(name = "Related_Guidelines") protected AttackPattern.RelatedGuidelines relatedGuidelines; @XmlElement(name = "Purposes") protected AttackPattern.Purposes purposes; @XmlElement(name = "CIA_Impact") protected AttackPattern.CIAImpact ciaImpact; @XmlElement(name = "Technical_Context") protected AttackPattern.TechnicalContext technicalContext; @XmlElement(name = "Keywords") protected AttackPattern.Keywords keywords; @XmlElement(name = "References") protected AttackPattern.References references; @XmlElement(name = "Other_Notes") protected OtherNotes otherNotes; @XmlElement(name = "Maintenance_Notes") protected MaintenanceNotes maintenanceNotes; @XmlElement(name = "Content_History") protected ContentHistory contentHistory; @XmlAttribute(name = "ID") protected BigInteger id; @XmlAttribute(name = "Name", required = true) protected String name; @XmlAttribute(name = "Pattern_Completeness") protected String patternCompleteness; @XmlAttribute(name = "Pattern_Abstraction") protected String patternAbstraction; @XmlAttribute(name = "Status", required = true) protected StatusType status; /** * Default no-arg constructor * */ public AttackPattern() { super(); } /** * Fully-initialising value constructor * */ public AttackPattern( final AttackPattern.Description description, final AlternateTerms alternateTerms, final TargetAttackSurfaceType targetAttackSurface, final AttackPattern.AttackPrerequisites attackPrerequisites, final String typicalSeverity, final AttackPattern.TypicalLikelihoodOfExploit typicalLikelihoodOfExploit, final AttackPattern.MethodsOfAttack methodsOfAttack, final AttackPattern.ExamplesInstances examplesInstances, final AttackPattern.AttackerSkillsOrKnowledgeRequired attackerSkillsOrKnowledgeRequired, final StructuredTextType resourcesRequired, final AttackPattern.ProbingTechniques probingTechniques, final AttackPattern.IndicatorsWarningsOfAttack indicatorsWarningsOfAttack, final AttackPattern.ObfuscationTechniques obfuscationTechniques, final AttackPattern.SolutionsAndMitigations solutionsAndMitigations, final AttackPattern.AttackMotivationConsequences attackMotivationConsequences, final StructuredTextType injectionVector, final StructuredTextType payload, final StructuredTextType activationZone, final AttackPattern.PayloadActivationImpact payloadActivationImpact, final AttackPattern.RelatedWeaknesses relatedWeaknesses, final AttackPattern.RelatedVulnerabilities relatedVulnerabilities, final AttackPattern.RelatedAttackPatterns relatedAttackPatterns, final AttackPattern.RelevantSecurityRequirements relevantSecurityRequirements, final AttackPattern.RelevantDesignPatterns relevantDesignPatterns, final AttackPattern.RelevantSecurityPatterns relevantSecurityPatterns, final AttackPattern.RelatedSecurityPrinciples relatedSecurityPrinciples, final AttackPattern.RelatedGuidelines relatedGuidelines, final AttackPattern.Purposes purposes, final AttackPattern.CIAImpact ciaImpact, final AttackPattern.TechnicalContext technicalContext, final AttackPattern.Keywords keywords, final AttackPattern.References references, final OtherNotes otherNotes, final MaintenanceNotes maintenanceNotes, final ContentHistory contentHistory, final BigInteger id, final String name, final String patternCompleteness, final String patternAbstraction, final StatusType status) { this.description = description; this.alternateTerms = alternateTerms; this.targetAttackSurface = targetAttackSurface; this.attackPrerequisites = attackPrerequisites; this.typicalSeverity = typicalSeverity; this.typicalLikelihoodOfExploit = typicalLikelihoodOfExploit; this.methodsOfAttack = methodsOfAttack; this.examplesInstances = examplesInstances; this.attackerSkillsOrKnowledgeRequired = attackerSkillsOrKnowledgeRequired; this.resourcesRequired = resourcesRequired; this.probingTechniques = probingTechniques; this.indicatorsWarningsOfAttack = indicatorsWarningsOfAttack; this.obfuscationTechniques = obfuscationTechniques; this.solutionsAndMitigations = solutionsAndMitigations; this.attackMotivationConsequences = attackMotivationConsequences; this.injectionVector = injectionVector; this.payload = payload; this.activationZone = activationZone; this.payloadActivationImpact = payloadActivationImpact; this.relatedWeaknesses = relatedWeaknesses; this.relatedVulnerabilities = relatedVulnerabilities; this.relatedAttackPatterns = relatedAttackPatterns; this.relevantSecurityRequirements = relevantSecurityRequirements; this.relevantDesignPatterns = relevantDesignPatterns; this.relevantSecurityPatterns = relevantSecurityPatterns; this.relatedSecurityPrinciples = relatedSecurityPrinciples; this.relatedGuidelines = relatedGuidelines; this.purposes = purposes; this.ciaImpact = ciaImpact; this.technicalContext = technicalContext; this.keywords = keywords; this.references = references; this.otherNotes = otherNotes; this.maintenanceNotes = maintenanceNotes; this.contentHistory = contentHistory; this.id = id; this.name = name; this.patternCompleteness = patternCompleteness; this.patternAbstraction = patternAbstraction; this.status = status; } /** * Gets the value of the description property. * * @return * possible object is * {@link AttackPattern.Description } * */ public AttackPattern.Description getDescription() { return description; } /** * Sets the value of the description property. * * @param value * allowed object is * {@link AttackPattern.Description } * */ public void setDescription(AttackPattern.Description value) { this.description = value; } /** * This element contains one or more alternative terms used to * identify the attack pattern. * * @return * possible object is * {@link AlternateTerms } * */ public AlternateTerms getAlternateTerms() { return alternateTerms; } /** * Sets the value of the alternateTerms property. * * @param value * allowed object is * {@link AlternateTerms } * */ public void setAlternateTerms(AlternateTerms value) { this.alternateTerms = value; } /** * Gets the value of the targetAttackSurface property. * * @return * possible object is * {@link TargetAttackSurfaceType } * */ public TargetAttackSurfaceType getTargetAttackSurface() { return targetAttackSurface; } /** * Sets the value of the targetAttackSurface property. * * @param value * allowed object is * {@link TargetAttackSurfaceType } * */ public void setTargetAttackSurface(TargetAttackSurfaceType value) { this.targetAttackSurface = value; } /** * Gets the value of the attackPrerequisites property. * * @return * possible object is * {@link AttackPattern.AttackPrerequisites } * */ public AttackPattern.AttackPrerequisites getAttackPrerequisites() { return attackPrerequisites; } /** * Sets the value of the attackPrerequisites property. * * @param value * allowed object is * {@link AttackPattern.AttackPrerequisites } * */ public void setAttackPrerequisites(AttackPattern.AttackPrerequisites value) { this.attackPrerequisites = value; } /** * Gets the value of the typicalSeverity property. * * @return * possible object is * {@link String } * */ public String getTypicalSeverity() { return typicalSeverity; } /** * Sets the value of the typicalSeverity property. * * @param value * allowed object is * {@link String } * */ public void setTypicalSeverity(String value) { this.typicalSeverity = value; } /** * Gets the value of the typicalLikelihoodOfExploit property. * * @return * possible object is * {@link AttackPattern.TypicalLikelihoodOfExploit } * */ public AttackPattern.TypicalLikelihoodOfExploit getTypicalLikelihoodOfExploit() { return typicalLikelihoodOfExploit; } /** * Sets the value of the typicalLikelihoodOfExploit property. * * @param value * allowed object is * {@link AttackPattern.TypicalLikelihoodOfExploit } * */ public void setTypicalLikelihoodOfExploit( AttackPattern.TypicalLikelihoodOfExploit value) { this.typicalLikelihoodOfExploit = value; } /** * Gets the value of the methodsOfAttack property. * * @return * possible object is * {@link AttackPattern.MethodsOfAttack } * */ public AttackPattern.MethodsOfAttack getMethodsOfAttack() { return methodsOfAttack; } /** * Sets the value of the methodsOfAttack property. * * @param value * allowed object is * {@link AttackPattern.MethodsOfAttack } * */ public void setMethodsOfAttack(AttackPattern.MethodsOfAttack value) { this.methodsOfAttack = value; } /** * Gets the value of the examplesInstances property. * * @return * possible object is * {@link AttackPattern.ExamplesInstances } * */ public AttackPattern.ExamplesInstances getExamplesInstances() { return examplesInstances; } /** * Sets the value of the examplesInstances property. * * @param value * allowed object is * {@link AttackPattern.ExamplesInstances } * */ public void setExamplesInstances(AttackPattern.ExamplesInstances value) { this.examplesInstances = value; } /** * Gets the value of the attackerSkillsOrKnowledgeRequired property. * * @return * possible object is * {@link AttackPattern.AttackerSkillsOrKnowledgeRequired } * */ public AttackPattern.AttackerSkillsOrKnowledgeRequired getAttackerSkillsOrKnowledgeRequired() { return attackerSkillsOrKnowledgeRequired; } /** * Sets the value of the attackerSkillsOrKnowledgeRequired property. * * @param value * allowed object is * {@link AttackPattern.AttackerSkillsOrKnowledgeRequired } * */ public void setAttackerSkillsOrKnowledgeRequired( AttackPattern.AttackerSkillsOrKnowledgeRequired value) { this.attackerSkillsOrKnowledgeRequired = value; } /** * Gets the value of the resourcesRequired property. * * @return * possible object is * {@link StructuredTextType } * */ public StructuredTextType getResourcesRequired() { return resourcesRequired; } /** * Sets the value of the resourcesRequired property. * * @param value * allowed object is * {@link StructuredTextType } * */ public void setResourcesRequired(StructuredTextType value) { this.resourcesRequired = value; } /** * Gets the value of the probingTechniques property. * * @return * possible object is * {@link AttackPattern.ProbingTechniques } * */ public AttackPattern.ProbingTechniques getProbingTechniques() { return probingTechniques; } /** * Sets the value of the probingTechniques property. * * @param value * allowed object is * {@link AttackPattern.ProbingTechniques } * */ public void setProbingTechniques(AttackPattern.ProbingTechniques value) { this.probingTechniques = value; } /** * Gets the value of the indicatorsWarningsOfAttack property. * * @return * possible object is * {@link AttackPattern.IndicatorsWarningsOfAttack } * */ public AttackPattern.IndicatorsWarningsOfAttack getIndicatorsWarningsOfAttack() { return indicatorsWarningsOfAttack; } /** * Sets the value of the indicatorsWarningsOfAttack property. * * @param value * allowed object is * {@link AttackPattern.IndicatorsWarningsOfAttack } * */ public void setIndicatorsWarningsOfAttack( AttackPattern.IndicatorsWarningsOfAttack value) { this.indicatorsWarningsOfAttack = value; } /** * Gets the value of the obfuscationTechniques property. * * @return * possible object is * {@link AttackPattern.ObfuscationTechniques } * */ public AttackPattern.ObfuscationTechniques getObfuscationTechniques() { return obfuscationTechniques; } /** * Sets the value of the obfuscationTechniques property. * * @param value * allowed object is * {@link AttackPattern.ObfuscationTechniques } * */ public void setObfuscationTechniques( AttackPattern.ObfuscationTechniques value) { this.obfuscationTechniques = value; } /** * Gets the value of the solutionsAndMitigations property. * * @return * possible object is * {@link AttackPattern.SolutionsAndMitigations } * */ public AttackPattern.SolutionsAndMitigations getSolutionsAndMitigations() { return solutionsAndMitigations; } /** * Sets the value of the solutionsAndMitigations property. * * @param value * allowed object is * {@link AttackPattern.SolutionsAndMitigations } * */ public void setSolutionsAndMitigations( AttackPattern.SolutionsAndMitigations value) { this.solutionsAndMitigations = value; } /** * Gets the value of the attackMotivationConsequences property. * * @return * possible object is * {@link AttackPattern.AttackMotivationConsequences } * */ public AttackPattern.AttackMotivationConsequences getAttackMotivationConsequences() { return attackMotivationConsequences; } /** * Sets the value of the attackMotivationConsequences property. * * @param value * allowed object is * {@link AttackPattern.AttackMotivationConsequences } * */ public void setAttackMotivationConsequences( AttackPattern.AttackMotivationConsequences value) { this.attackMotivationConsequences = value; } /** * Gets the value of the injectionVector property. * * @return * possible object is * {@link StructuredTextType } * */ public StructuredTextType getInjectionVector() { return injectionVector; } /** * Sets the value of the injectionVector property. * * @param value * allowed object is * {@link StructuredTextType } * */ public void setInjectionVector(StructuredTextType value) { this.injectionVector = value; } /** * Gets the value of the payload property. * * @return * possible object is * {@link StructuredTextType } * */ public StructuredTextType getPayload() { return payload; } /** * Sets the value of the payload property. * * @param value * allowed object is * {@link StructuredTextType } * */ public void setPayload(StructuredTextType value) { this.payload = value; } /** * Gets the value of the activationZone property. * * @return * possible object is * {@link StructuredTextType } * */ public StructuredTextType getActivationZone() { return activationZone; } /** * Sets the value of the activationZone property. * * @param value * allowed object is * {@link StructuredTextType } * */ public void setActivationZone(StructuredTextType value) { this.activationZone = value; } /** * Gets the value of the payloadActivationImpact property. * * @return * possible object is * {@link AttackPattern.PayloadActivationImpact } * */ public AttackPattern.PayloadActivationImpact getPayloadActivationImpact() { return payloadActivationImpact; } /** * Sets the value of the payloadActivationImpact property. * * @param value * allowed object is * {@link AttackPattern.PayloadActivationImpact } * */ public void setPayloadActivationImpact( AttackPattern.PayloadActivationImpact value) { this.payloadActivationImpact = value; } /** * Gets the value of the relatedWeaknesses property. * * @return * possible object is * {@link AttackPattern.RelatedWeaknesses } * */ public AttackPattern.RelatedWeaknesses getRelatedWeaknesses() { return relatedWeaknesses; } /** * Sets the value of the relatedWeaknesses property. * * @param value * allowed object is * {@link AttackPattern.RelatedWeaknesses } * */ public void setRelatedWeaknesses(AttackPattern.RelatedWeaknesses value) { this.relatedWeaknesses = value; } /** * Gets the value of the relatedVulnerabilities property. * * @return * possible object is * {@link AttackPattern.RelatedVulnerabilities } * */ public AttackPattern.RelatedVulnerabilities getRelatedVulnerabilities() { return relatedVulnerabilities; } /** * Sets the value of the relatedVulnerabilities property. * * @param value * allowed object is * {@link AttackPattern.RelatedVulnerabilities } * */ public void setRelatedVulnerabilities( AttackPattern.RelatedVulnerabilities value) { this.relatedVulnerabilities = value; } /** * Gets the value of the relatedAttackPatterns property. * * @return * possible object is * {@link AttackPattern.RelatedAttackPatterns } * */ public AttackPattern.RelatedAttackPatterns getRelatedAttackPatterns() { return relatedAttackPatterns; } /** * Sets the value of the relatedAttackPatterns property. * * @param value * allowed object is * {@link AttackPattern.RelatedAttackPatterns } * */ public void setRelatedAttackPatterns( AttackPattern.RelatedAttackPatterns value) { this.relatedAttackPatterns = value; } /** * Gets the value of the relevantSecurityRequirements property. * * @return * possible object is * {@link AttackPattern.RelevantSecurityRequirements } * */ public AttackPattern.RelevantSecurityRequirements getRelevantSecurityRequirements() { return relevantSecurityRequirements; } /** * Sets the value of the relevantSecurityRequirements property. * * @param value * allowed object is * {@link AttackPattern.RelevantSecurityRequirements } * */ public void setRelevantSecurityRequirements( AttackPattern.RelevantSecurityRequirements value) { this.relevantSecurityRequirements = value; } /** * Gets the value of the relevantDesignPatterns property. * * @return * possible object is * {@link AttackPattern.RelevantDesignPatterns } * */ public AttackPattern.RelevantDesignPatterns getRelevantDesignPatterns() { return relevantDesignPatterns; } /** * Sets the value of the relevantDesignPatterns property. * * @param value * allowed object is * {@link AttackPattern.RelevantDesignPatterns } * */ public void setRelevantDesignPatterns( AttackPattern.RelevantDesignPatterns value) { this.relevantDesignPatterns = value; } /** * Gets the value of the relevantSecurityPatterns property. * * @return * possible object is * {@link AttackPattern.RelevantSecurityPatterns } * */ public AttackPattern.RelevantSecurityPatterns getRelevantSecurityPatterns() { return relevantSecurityPatterns; } /** * Sets the value of the relevantSecurityPatterns property. * * @param value * allowed object is * {@link AttackPattern.RelevantSecurityPatterns } * */ public void setRelevantSecurityPatterns( AttackPattern.RelevantSecurityPatterns value) { this.relevantSecurityPatterns = value; } /** * Gets the value of the relatedSecurityPrinciples property. * * @return * possible object is * {@link AttackPattern.RelatedSecurityPrinciples } * */ public AttackPattern.RelatedSecurityPrinciples getRelatedSecurityPrinciples() { return relatedSecurityPrinciples; } /** * Sets the value of the relatedSecurityPrinciples property. * * @param value * allowed object is * {@link AttackPattern.RelatedSecurityPrinciples } * */ public void setRelatedSecurityPrinciples( AttackPattern.RelatedSecurityPrinciples value) { this.relatedSecurityPrinciples = value; } /** * Gets the value of the relatedGuidelines property. * * @return * possible object is * {@link AttackPattern.RelatedGuidelines } * */ public AttackPattern.RelatedGuidelines getRelatedGuidelines() { return relatedGuidelines; } /** * Sets the value of the relatedGuidelines property. * * @param value * allowed object is * {@link AttackPattern.RelatedGuidelines } * */ public void setRelatedGuidelines(AttackPattern.RelatedGuidelines value) { this.relatedGuidelines = value; } /** * Gets the value of the purposes property. * * @return * possible object is * {@link AttackPattern.Purposes } * */ public AttackPattern.Purposes getPurposes() { return purposes; } /** * Sets the value of the purposes property. * * @param value * allowed object is * {@link AttackPattern.Purposes } * */ public void setPurposes(AttackPattern.Purposes value) { this.purposes = value; } /** * Gets the value of the ciaImpact property. * * @return * possible object is * {@link AttackPattern.CIAImpact } * */ public AttackPattern.CIAImpact getCIAImpact() { return ciaImpact; } /** * Sets the value of the ciaImpact property. * * @param value * allowed object is * {@link AttackPattern.CIAImpact } * */ public void setCIAImpact(AttackPattern.CIAImpact value) { this.ciaImpact = value; } /** * Gets the value of the technicalContext property. * * @return * possible object is * {@link AttackPattern.TechnicalContext } * */ public AttackPattern.TechnicalContext getTechnicalContext() { return technicalContext; } /** * Sets the value of the technicalContext property. * * @param value * allowed object is * {@link AttackPattern.TechnicalContext } * */ public void setTechnicalContext(AttackPattern.TechnicalContext value) { this.technicalContext = value; } /** * Gets the value of the keywords property. * * @return * possible object is * {@link AttackPattern.Keywords } * */ public AttackPattern.Keywords getKeywords() { return keywords; } /** * Sets the value of the keywords property. * * @param value * allowed object is * {@link AttackPattern.Keywords } * */ public void setKeywords(AttackPattern.Keywords value) { this.keywords = value; } /** * Gets the value of the references property. * * @return * possible object is * {@link AttackPattern.References } * */ public AttackPattern.References getReferences() { return references; } /** * Sets the value of the references property. * * @param value * allowed object is * {@link AttackPattern.References } * */ public void setReferences(AttackPattern.References value) { this.references = value; } /** * Gets the value of the otherNotes property. * * @return * possible object is * {@link OtherNotes } * */ public OtherNotes getOtherNotes() { return otherNotes; } /** * Sets the value of the otherNotes property. * * @param value * allowed object is * {@link OtherNotes } * */ public void setOtherNotes(OtherNotes value) { this.otherNotes = value; } /** * Gets the value of the maintenanceNotes property. * * @return * possible object is * {@link MaintenanceNotes } * */ public MaintenanceNotes getMaintenanceNotes() { return maintenanceNotes; } /** * Sets the value of the maintenanceNotes property. * * @param value * allowed object is * {@link MaintenanceNotes } * */ public void setMaintenanceNotes(MaintenanceNotes value) { this.maintenanceNotes = value; } /** * Gets the value of the contentHistory property. * * @return * possible object is * {@link ContentHistory } * */ public ContentHistory getContentHistory() { return contentHistory; } /** * Sets the value of the contentHistory property. * * @param value * allowed object is * {@link ContentHistory } * */ public void setContentHistory(ContentHistory value) { this.contentHistory = value; } /** * Gets the value of the id property. * * @return * possible object is * {@link BigInteger } * */ public BigInteger getID() { if (id == null) { return new BigInteger("0"); } else { return id; } } /** * Sets the value of the id property. * * @param value * allowed object is * {@link BigInteger } * */ public void setID(BigInteger value) { this.id = value; } /** * Gets the value of the name property. * * @return * possible object is * {@link String } * */ public String getName() { return name; } /** * Sets the value of the name property. * * @param value * allowed object is * {@link String } * */ public void setName(String value) { this.name = value; } /** * Gets the value of the patternCompleteness property. * * @return * possible object is * {@link String } * */ public String getPatternCompleteness() { return patternCompleteness; } /** * Sets the value of the patternCompleteness property. * * @param value * allowed object is * {@link String } * */ public void setPatternCompleteness(String value) { this.patternCompleteness = value; } /** * Gets the value of the patternAbstraction property. * * @return * possible object is * {@link String } * */ public String getPatternAbstraction() { return patternAbstraction; } /** * Sets the value of the patternAbstraction property. * * @param value * allowed object is * {@link String } * */ public void setPatternAbstraction(String value) { this.patternAbstraction = value; } /** * Gets the value of the status property. * * @return * possible object is * {@link StatusType } * */ public StatusType getStatus() { return status; } /** * Sets the value of the status property. * * @param value * allowed object is * {@link StatusType } * */ public void setStatus(StatusType value) { this.status = value; } public boolean equals(ObjectLocator thisLocator, ObjectLocator thatLocator, Object object, EqualsStrategy strategy) { if (!(object instanceof AttackPattern)) { return false; } if (this == object) { return true; } final AttackPattern that = ((AttackPattern) object); { AttackPattern.Description lhsDescription; lhsDescription = this.getDescription(); AttackPattern.Description rhsDescription; rhsDescription = that.getDescription(); if (!strategy.equals(LocatorUtils.property(thisLocator, "description", lhsDescription), LocatorUtils.property( thatLocator, "description", rhsDescription), lhsDescription, rhsDescription)) { return false; } } { AlternateTerms lhsAlternateTerms; lhsAlternateTerms = this.getAlternateTerms(); AlternateTerms rhsAlternateTerms; rhsAlternateTerms = that.getAlternateTerms(); if (!strategy.equals(LocatorUtils.property(thisLocator, "alternateTerms", lhsAlternateTerms), LocatorUtils.property(thatLocator, "alternateTerms", rhsAlternateTerms), lhsAlternateTerms, rhsAlternateTerms)) { return false; } } { TargetAttackSurfaceType lhsTargetAttackSurface; lhsTargetAttackSurface = this.getTargetAttackSurface(); TargetAttackSurfaceType rhsTargetAttackSurface; rhsTargetAttackSurface = that.getTargetAttackSurface(); if (!strategy.equals(LocatorUtils.property(thisLocator, "targetAttackSurface", lhsTargetAttackSurface), LocatorUtils.property(thatLocator, "targetAttackSurface", rhsTargetAttackSurface), lhsTargetAttackSurface, rhsTargetAttackSurface)) { return false; } } { AttackPattern.AttackPrerequisites lhsAttackPrerequisites; lhsAttackPrerequisites = this.getAttackPrerequisites(); AttackPattern.AttackPrerequisites rhsAttackPrerequisites; rhsAttackPrerequisites = that.getAttackPrerequisites(); if (!strategy.equals(LocatorUtils.property(thisLocator, "attackPrerequisites", lhsAttackPrerequisites), LocatorUtils.property(thatLocator, "attackPrerequisites", rhsAttackPrerequisites), lhsAttackPrerequisites, rhsAttackPrerequisites)) { return false; } } { String lhsTypicalSeverity; lhsTypicalSeverity = this.getTypicalSeverity(); String rhsTypicalSeverity; rhsTypicalSeverity = that.getTypicalSeverity(); if (!strategy.equals(LocatorUtils.property(thisLocator, "typicalSeverity", lhsTypicalSeverity), LocatorUtils .property(thatLocator, "typicalSeverity", rhsTypicalSeverity), lhsTypicalSeverity, rhsTypicalSeverity)) { return false; } } { AttackPattern.TypicalLikelihoodOfExploit lhsTypicalLikelihoodOfExploit; lhsTypicalLikelihoodOfExploit = this .getTypicalLikelihoodOfExploit(); AttackPattern.TypicalLikelihoodOfExploit rhsTypicalLikelihoodOfExploit; rhsTypicalLikelihoodOfExploit = that .getTypicalLikelihoodOfExploit(); if (!strategy.equals(LocatorUtils .property(thisLocator, "typicalLikelihoodOfExploit", lhsTypicalLikelihoodOfExploit), LocatorUtils .property(thatLocator, "typicalLikelihoodOfExploit", rhsTypicalLikelihoodOfExploit), lhsTypicalLikelihoodOfExploit, rhsTypicalLikelihoodOfExploit)) { return false; } } { AttackPattern.MethodsOfAttack lhsMethodsOfAttack; lhsMethodsOfAttack = this.getMethodsOfAttack(); AttackPattern.MethodsOfAttack rhsMethodsOfAttack; rhsMethodsOfAttack = that.getMethodsOfAttack(); if (!strategy.equals(LocatorUtils.property(thisLocator, "methodsOfAttack", lhsMethodsOfAttack), LocatorUtils .property(thatLocator, "methodsOfAttack", rhsMethodsOfAttack), lhsMethodsOfAttack, rhsMethodsOfAttack)) { return false; } } { AttackPattern.ExamplesInstances lhsExamplesInstances; lhsExamplesInstances = this.getExamplesInstances(); AttackPattern.ExamplesInstances rhsExamplesInstances; rhsExamplesInstances = that.getExamplesInstances(); if (!strategy.equals(LocatorUtils.property(thisLocator, "examplesInstances", lhsExamplesInstances), LocatorUtils .property(thatLocator, "examplesInstances", rhsExamplesInstances), lhsExamplesInstances, rhsExamplesInstances)) { return false; } } { AttackPattern.AttackerSkillsOrKnowledgeRequired lhsAttackerSkillsOrKnowledgeRequired; lhsAttackerSkillsOrKnowledgeRequired = this .getAttackerSkillsOrKnowledgeRequired(); AttackPattern.AttackerSkillsOrKnowledgeRequired rhsAttackerSkillsOrKnowledgeRequired; rhsAttackerSkillsOrKnowledgeRequired = that .getAttackerSkillsOrKnowledgeRequired(); if (!strategy.equals(LocatorUtils.property(thisLocator, "attackerSkillsOrKnowledgeRequired", lhsAttackerSkillsOrKnowledgeRequired), LocatorUtils .property(thatLocator, "attackerSkillsOrKnowledgeRequired", rhsAttackerSkillsOrKnowledgeRequired), lhsAttackerSkillsOrKnowledgeRequired, rhsAttackerSkillsOrKnowledgeRequired)) { return false; } } { StructuredTextType lhsResourcesRequired; lhsResourcesRequired = this.getResourcesRequired(); StructuredTextType rhsResourcesRequired; rhsResourcesRequired = that.getResourcesRequired(); if (!strategy.equals(LocatorUtils.property(thisLocator, "resourcesRequired", lhsResourcesRequired), LocatorUtils .property(thatLocator, "resourcesRequired", rhsResourcesRequired), lhsResourcesRequired, rhsResourcesRequired)) { return false; } } { AttackPattern.ProbingTechniques lhsProbingTechniques; lhsProbingTechniques = this.getProbingTechniques(); AttackPattern.ProbingTechniques rhsProbingTechniques; rhsProbingTechniques = that.getProbingTechniques(); if (!strategy.equals(LocatorUtils.property(thisLocator, "probingTechniques", lhsProbingTechniques), LocatorUtils .property(thatLocator, "probingTechniques", rhsProbingTechniques), lhsProbingTechniques, rhsProbingTechniques)) { return false; } } { AttackPattern.IndicatorsWarningsOfAttack lhsIndicatorsWarningsOfAttack; lhsIndicatorsWarningsOfAttack = this .getIndicatorsWarningsOfAttack(); AttackPattern.IndicatorsWarningsOfAttack rhsIndicatorsWarningsOfAttack; rhsIndicatorsWarningsOfAttack = that .getIndicatorsWarningsOfAttack(); if (!strategy.equals(LocatorUtils .property(thisLocator, "indicatorsWarningsOfAttack", lhsIndicatorsWarningsOfAttack), LocatorUtils .property(thatLocator, "indicatorsWarningsOfAttack", rhsIndicatorsWarningsOfAttack), lhsIndicatorsWarningsOfAttack, rhsIndicatorsWarningsOfAttack)) { return false; } } { AttackPattern.ObfuscationTechniques lhsObfuscationTechniques; lhsObfuscationTechniques = this.getObfuscationTechniques(); AttackPattern.ObfuscationTechniques rhsObfuscationTechniques; rhsObfuscationTechniques = that.getObfuscationTechniques(); if (!strategy.equals(LocatorUtils.property(thisLocator, "obfuscationTechniques", lhsObfuscationTechniques), LocatorUtils.property(thatLocator, "obfuscationTechniques", rhsObfuscationTechniques), lhsObfuscationTechniques, rhsObfuscationTechniques)) { return false; } } { AttackPattern.SolutionsAndMitigations lhsSolutionsAndMitigations; lhsSolutionsAndMitigations = this.getSolutionsAndMitigations(); AttackPattern.SolutionsAndMitigations rhsSolutionsAndMitigations; rhsSolutionsAndMitigations = that.getSolutionsAndMitigations(); if (!strategy.equals(LocatorUtils.property(thisLocator, "solutionsAndMitigations", lhsSolutionsAndMitigations), LocatorUtils.property(thatLocator, "solutionsAndMitigations", rhsSolutionsAndMitigations), lhsSolutionsAndMitigations, rhsSolutionsAndMitigations)) { return false; } } { AttackPattern.AttackMotivationConsequences lhsAttackMotivationConsequences; lhsAttackMotivationConsequences = this .getAttackMotivationConsequences(); AttackPattern.AttackMotivationConsequences rhsAttackMotivationConsequences; rhsAttackMotivationConsequences = that .getAttackMotivationConsequences(); if (!strategy.equals(LocatorUtils.property(thisLocator, "attackMotivationConsequences", lhsAttackMotivationConsequences), LocatorUtils.property( thatLocator, "attackMotivationConsequences", rhsAttackMotivationConsequences), lhsAttackMotivationConsequences, rhsAttackMotivationConsequences)) { return false; } } { StructuredTextType lhsInjectionVector; lhsInjectionVector = this.getInjectionVector(); StructuredTextType rhsInjectionVector; rhsInjectionVector = that.getInjectionVector(); if (!strategy.equals(LocatorUtils.property(thisLocator, "injectionVector", lhsInjectionVector), LocatorUtils .property(thatLocator, "injectionVector", rhsInjectionVector), lhsInjectionVector, rhsInjectionVector)) { return false; } } { StructuredTextType lhsPayload; lhsPayload = this.getPayload(); StructuredTextType rhsPayload; rhsPayload = that.getPayload(); if (!strategy.equals( LocatorUtils.property(thisLocator, "payload", lhsPayload), LocatorUtils.property(thatLocator, "payload", rhsPayload), lhsPayload, rhsPayload)) { return false; } } { StructuredTextType lhsActivationZone; lhsActivationZone = this.getActivationZone(); StructuredTextType rhsActivationZone; rhsActivationZone = that.getActivationZone(); if (!strategy.equals(LocatorUtils.property(thisLocator, "activationZone", lhsActivationZone), LocatorUtils.property(thatLocator, "activationZone", rhsActivationZone), lhsActivationZone, rhsActivationZone)) { return false; } } { AttackPattern.PayloadActivationImpact lhsPayloadActivationImpact; lhsPayloadActivationImpact = this.getPayloadActivationImpact(); AttackPattern.PayloadActivationImpact rhsPayloadActivationImpact; rhsPayloadActivationImpact = that.getPayloadActivationImpact(); if (!strategy.equals(LocatorUtils.property(thisLocator, "payloadActivationImpact", lhsPayloadActivationImpact), LocatorUtils.property(thatLocator, "payloadActivationImpact", rhsPayloadActivationImpact), lhsPayloadActivationImpact, rhsPayloadActivationImpact)) { return false; } } { AttackPattern.RelatedWeaknesses lhsRelatedWeaknesses; lhsRelatedWeaknesses = this.getRelatedWeaknesses(); AttackPattern.RelatedWeaknesses rhsRelatedWeaknesses; rhsRelatedWeaknesses = that.getRelatedWeaknesses(); if (!strategy.equals(LocatorUtils.property(thisLocator, "relatedWeaknesses", lhsRelatedWeaknesses), LocatorUtils .property(thatLocator, "relatedWeaknesses", rhsRelatedWeaknesses), lhsRelatedWeaknesses, rhsRelatedWeaknesses)) { return false; } } { AttackPattern.RelatedVulnerabilities lhsRelatedVulnerabilities; lhsRelatedVulnerabilities = this.getRelatedVulnerabilities(); AttackPattern.RelatedVulnerabilities rhsRelatedVulnerabilities; rhsRelatedVulnerabilities = that.getRelatedVulnerabilities(); if (!strategy.equals(LocatorUtils.property(thisLocator, "relatedVulnerabilities", lhsRelatedVulnerabilities), LocatorUtils .property(thatLocator, "relatedVulnerabilities", rhsRelatedVulnerabilities), lhsRelatedVulnerabilities, rhsRelatedVulnerabilities)) { return false; } } { AttackPattern.RelatedAttackPatterns lhsRelatedAttackPatterns; lhsRelatedAttackPatterns = this.getRelatedAttackPatterns(); AttackPattern.RelatedAttackPatterns rhsRelatedAttackPatterns; rhsRelatedAttackPatterns = that.getRelatedAttackPatterns(); if (!strategy.equals(LocatorUtils.property(thisLocator, "relatedAttackPatterns", lhsRelatedAttackPatterns), LocatorUtils.property(thatLocator, "relatedAttackPatterns", rhsRelatedAttackPatterns), lhsRelatedAttackPatterns, rhsRelatedAttackPatterns)) { return false; } } { AttackPattern.RelevantSecurityRequirements lhsRelevantSecurityRequirements; lhsRelevantSecurityRequirements = this .getRelevantSecurityRequirements(); AttackPattern.RelevantSecurityRequirements rhsRelevantSecurityRequirements; rhsRelevantSecurityRequirements = that .getRelevantSecurityRequirements(); if (!strategy.equals(LocatorUtils.property(thisLocator, "relevantSecurityRequirements", lhsRelevantSecurityRequirements), LocatorUtils.property( thatLocator, "relevantSecurityRequirements", rhsRelevantSecurityRequirements), lhsRelevantSecurityRequirements, rhsRelevantSecurityRequirements)) { return false; } } { AttackPattern.RelevantDesignPatterns lhsRelevantDesignPatterns; lhsRelevantDesignPatterns = this.getRelevantDesignPatterns(); AttackPattern.RelevantDesignPatterns rhsRelevantDesignPatterns; rhsRelevantDesignPatterns = that.getRelevantDesignPatterns(); if (!strategy.equals(LocatorUtils.property(thisLocator, "relevantDesignPatterns", lhsRelevantDesignPatterns), LocatorUtils .property(thatLocator, "relevantDesignPatterns", rhsRelevantDesignPatterns), lhsRelevantDesignPatterns, rhsRelevantDesignPatterns)) { return false; } } { AttackPattern.RelevantSecurityPatterns lhsRelevantSecurityPatterns; lhsRelevantSecurityPatterns = this.getRelevantSecurityPatterns(); AttackPattern.RelevantSecurityPatterns rhsRelevantSecurityPatterns; rhsRelevantSecurityPatterns = that.getRelevantSecurityPatterns(); if (!strategy.equals(LocatorUtils.property(thisLocator, "relevantSecurityPatterns", lhsRelevantSecurityPatterns), LocatorUtils.property(thatLocator, "relevantSecurityPatterns", rhsRelevantSecurityPatterns), lhsRelevantSecurityPatterns, rhsRelevantSecurityPatterns)) { return false; } } { AttackPattern.RelatedSecurityPrinciples lhsRelatedSecurityPrinciples; lhsRelatedSecurityPrinciples = this.getRelatedSecurityPrinciples(); AttackPattern.RelatedSecurityPrinciples rhsRelatedSecurityPrinciples; rhsRelatedSecurityPrinciples = that.getRelatedSecurityPrinciples(); if (!strategy.equals(LocatorUtils.property(thisLocator, "relatedSecurityPrinciples", lhsRelatedSecurityPrinciples), LocatorUtils.property(thatLocator, "relatedSecurityPrinciples", rhsRelatedSecurityPrinciples), lhsRelatedSecurityPrinciples, rhsRelatedSecurityPrinciples)) { return false; } } { AttackPattern.RelatedGuidelines lhsRelatedGuidelines; lhsRelatedGuidelines = this.getRelatedGuidelines(); AttackPattern.RelatedGuidelines rhsRelatedGuidelines; rhsRelatedGuidelines = that.getRelatedGuidelines(); if (!strategy.equals(LocatorUtils.property(thisLocator, "relatedGuidelines", lhsRelatedGuidelines), LocatorUtils .property(thatLocator, "relatedGuidelines", rhsRelatedGuidelines), lhsRelatedGuidelines, rhsRelatedGuidelines)) { return false; } } { AttackPattern.Purposes lhsPurposes; lhsPurposes = this.getPurposes(); AttackPattern.Purposes rhsPurposes; rhsPurposes = that.getPurposes(); if (!strategy .equals(LocatorUtils.property(thisLocator, "purposes", lhsPurposes), LocatorUtils.property(thatLocator, "purposes", rhsPurposes), lhsPurposes, rhsPurposes)) { return false; } } { AttackPattern.CIAImpact lhsCIAImpact; lhsCIAImpact = this.getCIAImpact(); AttackPattern.CIAImpact rhsCIAImpact; rhsCIAImpact = that.getCIAImpact(); if (!strategy.equals(LocatorUtils.property(thisLocator, "ciaImpact", lhsCIAImpact), LocatorUtils.property( thatLocator, "ciaImpact", rhsCIAImpact), lhsCIAImpact, rhsCIAImpact)) { return false; } } { AttackPattern.TechnicalContext lhsTechnicalContext; lhsTechnicalContext = this.getTechnicalContext(); AttackPattern.TechnicalContext rhsTechnicalContext; rhsTechnicalContext = that.getTechnicalContext(); if (!strategy.equals(LocatorUtils.property(thisLocator, "technicalContext", lhsTechnicalContext), LocatorUtils .property(thatLocator, "technicalContext", rhsTechnicalContext), lhsTechnicalContext, rhsTechnicalContext)) { return false; } } { AttackPattern.Keywords lhsKeywords; lhsKeywords = this.getKeywords(); AttackPattern.Keywords rhsKeywords; rhsKeywords = that.getKeywords(); if (!strategy .equals(LocatorUtils.property(thisLocator, "keywords", lhsKeywords), LocatorUtils.property(thatLocator, "keywords", rhsKeywords), lhsKeywords, rhsKeywords)) { return false; } } { AttackPattern.References lhsReferences; lhsReferences = this.getReferences(); AttackPattern.References rhsReferences; rhsReferences = that.getReferences(); if (!strategy.equals(LocatorUtils.property(thisLocator, "references", lhsReferences), LocatorUtils.property( thatLocator, "references", rhsReferences), lhsReferences, rhsReferences)) { return false; } } { OtherNotes lhsOtherNotes; lhsOtherNotes = this.getOtherNotes(); OtherNotes rhsOtherNotes; rhsOtherNotes = that.getOtherNotes(); if (!strategy.equals(LocatorUtils.property(thisLocator, "otherNotes", lhsOtherNotes), LocatorUtils.property( thatLocator, "otherNotes", rhsOtherNotes), lhsOtherNotes, rhsOtherNotes)) { return false; } } { MaintenanceNotes lhsMaintenanceNotes; lhsMaintenanceNotes = this.getMaintenanceNotes(); MaintenanceNotes rhsMaintenanceNotes; rhsMaintenanceNotes = that.getMaintenanceNotes(); if (!strategy.equals(LocatorUtils.property(thisLocator, "maintenanceNotes", lhsMaintenanceNotes), LocatorUtils .property(thatLocator, "maintenanceNotes", rhsMaintenanceNotes), lhsMaintenanceNotes, rhsMaintenanceNotes)) { return false; } } { ContentHistory lhsContentHistory; lhsContentHistory = this.getContentHistory(); ContentHistory rhsContentHistory; rhsContentHistory = that.getContentHistory(); if (!strategy.equals(LocatorUtils.property(thisLocator, "contentHistory", lhsContentHistory), LocatorUtils.property(thatLocator, "contentHistory", rhsContentHistory), lhsContentHistory, rhsContentHistory)) { return false; } } { BigInteger lhsID; lhsID = this.getID(); BigInteger rhsID; rhsID = that.getID(); if (!strategy.equals( LocatorUtils.property(thisLocator, "id", lhsID), LocatorUtils.property(thatLocator, "id", rhsID), lhsID, rhsID)) { return false; } } { String lhsName; lhsName = this.getName(); String rhsName; rhsName = that.getName(); if (!strategy.equals( LocatorUtils.property(thisLocator, "name", lhsName), LocatorUtils.property(thatLocator, "name", rhsName), lhsName, rhsName)) { return false; } } { String lhsPatternCompleteness; lhsPatternCompleteness = this.getPatternCompleteness(); String rhsPatternCompleteness; rhsPatternCompleteness = that.getPatternCompleteness(); if (!strategy.equals(LocatorUtils.property(thisLocator, "patternCompleteness", lhsPatternCompleteness), LocatorUtils.property(thatLocator, "patternCompleteness", rhsPatternCompleteness), lhsPatternCompleteness, rhsPatternCompleteness)) { return false; } } { String lhsPatternAbstraction; lhsPatternAbstraction = this.getPatternAbstraction(); String rhsPatternAbstraction; rhsPatternAbstraction = that.getPatternAbstraction(); if (!strategy.equals(LocatorUtils.property(thisLocator, "patternAbstraction", lhsPatternAbstraction), LocatorUtils .property(thatLocator, "patternAbstraction", rhsPatternAbstraction), lhsPatternAbstraction, rhsPatternAbstraction)) { return false; } } { StatusType lhsStatus; lhsStatus = this.getStatus(); StatusType rhsStatus; rhsStatus = that.getStatus(); if (!strategy.equals( LocatorUtils.property(thisLocator, "status", lhsStatus), LocatorUtils.property(thatLocator, "status", rhsStatus), lhsStatus, rhsStatus)) { 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; { AttackPattern.Description theDescription; theDescription = this.getDescription(); currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "description", theDescription), currentHashCode, theDescription); } { AlternateTerms theAlternateTerms; theAlternateTerms = this.getAlternateTerms(); currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "alternateTerms", theAlternateTerms), currentHashCode, theAlternateTerms); } { TargetAttackSurfaceType theTargetAttackSurface; theTargetAttackSurface = this.getTargetAttackSurface(); currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "targetAttackSurface", theTargetAttackSurface), currentHashCode, theTargetAttackSurface); } { AttackPattern.AttackPrerequisites theAttackPrerequisites; theAttackPrerequisites = this.getAttackPrerequisites(); currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "attackPrerequisites", theAttackPrerequisites), currentHashCode, theAttackPrerequisites); } { String theTypicalSeverity; theTypicalSeverity = this.getTypicalSeverity(); currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "typicalSeverity", theTypicalSeverity), currentHashCode, theTypicalSeverity); } { AttackPattern.TypicalLikelihoodOfExploit theTypicalLikelihoodOfExploit; theTypicalLikelihoodOfExploit = this .getTypicalLikelihoodOfExploit(); currentHashCode = strategy.hashCode(LocatorUtils .property(locator, "typicalLikelihoodOfExploit", theTypicalLikelihoodOfExploit), currentHashCode, theTypicalLikelihoodOfExploit); } { AttackPattern.MethodsOfAttack theMethodsOfAttack; theMethodsOfAttack = this.getMethodsOfAttack(); currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "methodsOfAttack", theMethodsOfAttack), currentHashCode, theMethodsOfAttack); } { AttackPattern.ExamplesInstances theExamplesInstances; theExamplesInstances = this.getExamplesInstances(); currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "examplesInstances", theExamplesInstances), currentHashCode, theExamplesInstances); } { AttackPattern.AttackerSkillsOrKnowledgeRequired theAttackerSkillsOrKnowledgeRequired; theAttackerSkillsOrKnowledgeRequired = this .getAttackerSkillsOrKnowledgeRequired(); currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "attackerSkillsOrKnowledgeRequired", theAttackerSkillsOrKnowledgeRequired), currentHashCode, theAttackerSkillsOrKnowledgeRequired); } { StructuredTextType theResourcesRequired; theResourcesRequired = this.getResourcesRequired(); currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "resourcesRequired", theResourcesRequired), currentHashCode, theResourcesRequired); } { AttackPattern.ProbingTechniques theProbingTechniques; theProbingTechniques = this.getProbingTechniques(); currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "probingTechniques", theProbingTechniques), currentHashCode, theProbingTechniques); } { AttackPattern.IndicatorsWarningsOfAttack theIndicatorsWarningsOfAttack; theIndicatorsWarningsOfAttack = this .getIndicatorsWarningsOfAttack(); currentHashCode = strategy.hashCode(LocatorUtils .property(locator, "indicatorsWarningsOfAttack", theIndicatorsWarningsOfAttack), currentHashCode, theIndicatorsWarningsOfAttack); } { AttackPattern.ObfuscationTechniques theObfuscationTechniques; theObfuscationTechniques = this.getObfuscationTechniques(); currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "obfuscationTechniques", theObfuscationTechniques), currentHashCode, theObfuscationTechniques); } { AttackPattern.SolutionsAndMitigations theSolutionsAndMitigations; theSolutionsAndMitigations = this.getSolutionsAndMitigations(); currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "solutionsAndMitigations", theSolutionsAndMitigations), currentHashCode, theSolutionsAndMitigations); } { AttackPattern.AttackMotivationConsequences theAttackMotivationConsequences; theAttackMotivationConsequences = this .getAttackMotivationConsequences(); currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "attackMotivationConsequences", theAttackMotivationConsequences), currentHashCode, theAttackMotivationConsequences); } { StructuredTextType theInjectionVector; theInjectionVector = this.getInjectionVector(); currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "injectionVector", theInjectionVector), currentHashCode, theInjectionVector); } { StructuredTextType thePayload; thePayload = this.getPayload(); currentHashCode = strategy.hashCode( LocatorUtils.property(locator, "payload", thePayload), currentHashCode, thePayload); } { StructuredTextType theActivationZone; theActivationZone = this.getActivationZone(); currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "activationZone", theActivationZone), currentHashCode, theActivationZone); } { AttackPattern.PayloadActivationImpact thePayloadActivationImpact; thePayloadActivationImpact = this.getPayloadActivationImpact(); currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "payloadActivationImpact", thePayloadActivationImpact), currentHashCode, thePayloadActivationImpact); } { AttackPattern.RelatedWeaknesses theRelatedWeaknesses; theRelatedWeaknesses = this.getRelatedWeaknesses(); currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "relatedWeaknesses", theRelatedWeaknesses), currentHashCode, theRelatedWeaknesses); } { AttackPattern.RelatedVulnerabilities theRelatedVulnerabilities; theRelatedVulnerabilities = this.getRelatedVulnerabilities(); currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "relatedVulnerabilities", theRelatedVulnerabilities), currentHashCode, theRelatedVulnerabilities); } { AttackPattern.RelatedAttackPatterns theRelatedAttackPatterns; theRelatedAttackPatterns = this.getRelatedAttackPatterns(); currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "relatedAttackPatterns", theRelatedAttackPatterns), currentHashCode, theRelatedAttackPatterns); } { AttackPattern.RelevantSecurityRequirements theRelevantSecurityRequirements; theRelevantSecurityRequirements = this .getRelevantSecurityRequirements(); currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "relevantSecurityRequirements", theRelevantSecurityRequirements), currentHashCode, theRelevantSecurityRequirements); } { AttackPattern.RelevantDesignPatterns theRelevantDesignPatterns; theRelevantDesignPatterns = this.getRelevantDesignPatterns(); currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "relevantDesignPatterns", theRelevantDesignPatterns), currentHashCode, theRelevantDesignPatterns); } { AttackPattern.RelevantSecurityPatterns theRelevantSecurityPatterns; theRelevantSecurityPatterns = this.getRelevantSecurityPatterns(); currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "relevantSecurityPatterns", theRelevantSecurityPatterns), currentHashCode, theRelevantSecurityPatterns); } { AttackPattern.RelatedSecurityPrinciples theRelatedSecurityPrinciples; theRelatedSecurityPrinciples = this.getRelatedSecurityPrinciples(); currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "relatedSecurityPrinciples", theRelatedSecurityPrinciples), currentHashCode, theRelatedSecurityPrinciples); } { AttackPattern.RelatedGuidelines theRelatedGuidelines; theRelatedGuidelines = this.getRelatedGuidelines(); currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "relatedGuidelines", theRelatedGuidelines), currentHashCode, theRelatedGuidelines); } { AttackPattern.Purposes thePurposes; thePurposes = this.getPurposes(); currentHashCode = strategy.hashCode( LocatorUtils.property(locator, "purposes", thePurposes), currentHashCode, thePurposes); } { AttackPattern.CIAImpact theCIAImpact; theCIAImpact = this.getCIAImpact(); currentHashCode = strategy.hashCode( LocatorUtils.property(locator, "ciaImpact", theCIAImpact), currentHashCode, theCIAImpact); } { AttackPattern.TechnicalContext theTechnicalContext; theTechnicalContext = this.getTechnicalContext(); currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "technicalContext", theTechnicalContext), currentHashCode, theTechnicalContext); } { AttackPattern.Keywords theKeywords; theKeywords = this.getKeywords(); currentHashCode = strategy.hashCode( LocatorUtils.property(locator, "keywords", theKeywords), currentHashCode, theKeywords); } { AttackPattern.References theReferences; theReferences = this.getReferences(); currentHashCode = strategy .hashCode(LocatorUtils.property(locator, "references", theReferences), currentHashCode, theReferences); } { OtherNotes theOtherNotes; theOtherNotes = this.getOtherNotes(); currentHashCode = strategy .hashCode(LocatorUtils.property(locator, "otherNotes", theOtherNotes), currentHashCode, theOtherNotes); } { MaintenanceNotes theMaintenanceNotes; theMaintenanceNotes = this.getMaintenanceNotes(); currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "maintenanceNotes", theMaintenanceNotes), currentHashCode, theMaintenanceNotes); } { ContentHistory theContentHistory; theContentHistory = this.getContentHistory(); currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "contentHistory", theContentHistory), currentHashCode, theContentHistory); } { BigInteger theID; theID = this.getID(); currentHashCode = strategy.hashCode( LocatorUtils.property(locator, "id", theID), currentHashCode, theID); } { String theName; theName = this.getName(); currentHashCode = strategy.hashCode( LocatorUtils.property(locator, "name", theName), currentHashCode, theName); } { String thePatternCompleteness; thePatternCompleteness = this.getPatternCompleteness(); currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "patternCompleteness", thePatternCompleteness), currentHashCode, thePatternCompleteness); } { String thePatternAbstraction; thePatternAbstraction = this.getPatternAbstraction(); currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "patternAbstraction", thePatternAbstraction), currentHashCode, thePatternAbstraction); } { StatusType theStatus; theStatus = this.getStatus(); currentHashCode = strategy.hashCode( LocatorUtils.property(locator, "status", theStatus), currentHashCode, theStatus); } return currentHashCode; } public int hashCode() { final HashCodeStrategy strategy = JAXBHashCodeStrategy.INSTANCE; return this.hashCode(null, strategy); } public AttackPattern withDescription(AttackPattern.Description value) { setDescription(value); return this; } public AttackPattern withAlternateTerms(AlternateTerms value) { setAlternateTerms(value); return this; } public AttackPattern withTargetAttackSurface(TargetAttackSurfaceType value) { setTargetAttackSurface(value); return this; } public AttackPattern withAttackPrerequisites( AttackPattern.AttackPrerequisites value) { setAttackPrerequisites(value); return this; } public AttackPattern withTypicalSeverity(String value) { setTypicalSeverity(value); return this; } public AttackPattern withTypicalLikelihoodOfExploit( AttackPattern.TypicalLikelihoodOfExploit value) { setTypicalLikelihoodOfExploit(value); return this; } public AttackPattern withMethodsOfAttack(AttackPattern.MethodsOfAttack value) { setMethodsOfAttack(value); return this; } public AttackPattern withExamplesInstances( AttackPattern.ExamplesInstances value) { setExamplesInstances(value); return this; } public AttackPattern withAttackerSkillsOrKnowledgeRequired( AttackPattern.AttackerSkillsOrKnowledgeRequired value) { setAttackerSkillsOrKnowledgeRequired(value); return this; } public AttackPattern withResourcesRequired(StructuredTextType value) { setResourcesRequired(value); return this; } public AttackPattern withProbingTechniques( AttackPattern.ProbingTechniques value) { setProbingTechniques(value); return this; } public AttackPattern withIndicatorsWarningsOfAttack( AttackPattern.IndicatorsWarningsOfAttack value) { setIndicatorsWarningsOfAttack(value); return this; } public AttackPattern withObfuscationTechniques( AttackPattern.ObfuscationTechniques value) { setObfuscationTechniques(value); return this; } public AttackPattern withSolutionsAndMitigations( AttackPattern.SolutionsAndMitigations value) { setSolutionsAndMitigations(value); return this; } public AttackPattern withAttackMotivationConsequences( AttackPattern.AttackMotivationConsequences value) { setAttackMotivationConsequences(value); return this; } public AttackPattern withInjectionVector(StructuredTextType value) { setInjectionVector(value); return this; } public AttackPattern withPayload(StructuredTextType value) { setPayload(value); return this; } public AttackPattern withActivationZone(StructuredTextType value) { setActivationZone(value); return this; } public AttackPattern withPayloadActivationImpact( AttackPattern.PayloadActivationImpact value) { setPayloadActivationImpact(value); return this; } public AttackPattern withRelatedWeaknesses( AttackPattern.RelatedWeaknesses value) { setRelatedWeaknesses(value); return this; } public AttackPattern withRelatedVulnerabilities( AttackPattern.RelatedVulnerabilities value) { setRelatedVulnerabilities(value); return this; } public AttackPattern withRelatedAttackPatterns( AttackPattern.RelatedAttackPatterns value) { setRelatedAttackPatterns(value); return this; } public AttackPattern withRelevantSecurityRequirements( AttackPattern.RelevantSecurityRequirements value) { setRelevantSecurityRequirements(value); return this; } public AttackPattern withRelevantDesignPatterns( AttackPattern.RelevantDesignPatterns value) { setRelevantDesignPatterns(value); return this; } public AttackPattern withRelevantSecurityPatterns( AttackPattern.RelevantSecurityPatterns value) { setRelevantSecurityPatterns(value); return this; } public AttackPattern withRelatedSecurityPrinciples( AttackPattern.RelatedSecurityPrinciples value) { setRelatedSecurityPrinciples(value); return this; } public AttackPattern withRelatedGuidelines( AttackPattern.RelatedGuidelines value) { setRelatedGuidelines(value); return this; } public AttackPattern withPurposes(AttackPattern.Purposes value) { setPurposes(value); return this; } public AttackPattern withCIAImpact(AttackPattern.CIAImpact value) { setCIAImpact(value); return this; } public AttackPattern withTechnicalContext( AttackPattern.TechnicalContext value) { setTechnicalContext(value); return this; } public AttackPattern withKeywords(AttackPattern.Keywords value) { setKeywords(value); return this; } public AttackPattern withReferences(AttackPattern.References value) { setReferences(value); return this; } public AttackPattern withOtherNotes(OtherNotes value) { setOtherNotes(value); return this; } public AttackPattern withMaintenanceNotes(MaintenanceNotes value) { setMaintenanceNotes(value); return this; } public AttackPattern withContentHistory(ContentHistory value) { setContentHistory(value); return this; } public AttackPattern withID(BigInteger value) { setID(value); return this; } public AttackPattern withName(String value) { setName(value); return this; } public AttackPattern withPatternCompleteness(String value) { setPatternCompleteness(value); return this; } public AttackPattern withPatternAbstraction(String value) { setPatternAbstraction(value); return this; } public AttackPattern withStatus(StatusType value) { setStatus(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) { { AttackPattern.Description theDescription; theDescription = this.getDescription(); strategy.appendField(locator, this, "description", buffer, theDescription); } { AlternateTerms theAlternateTerms; theAlternateTerms = this.getAlternateTerms(); strategy.appendField(locator, this, "alternateTerms", buffer, theAlternateTerms); } { TargetAttackSurfaceType theTargetAttackSurface; theTargetAttackSurface = this.getTargetAttackSurface(); strategy.appendField(locator, this, "targetAttackSurface", buffer, theTargetAttackSurface); } { AttackPattern.AttackPrerequisites theAttackPrerequisites; theAttackPrerequisites = this.getAttackPrerequisites(); strategy.appendField(locator, this, "attackPrerequisites", buffer, theAttackPrerequisites); } { String theTypicalSeverity; theTypicalSeverity = this.getTypicalSeverity(); strategy.appendField(locator, this, "typicalSeverity", buffer, theTypicalSeverity); } { AttackPattern.TypicalLikelihoodOfExploit theTypicalLikelihoodOfExploit; theTypicalLikelihoodOfExploit = this .getTypicalLikelihoodOfExploit(); strategy.appendField(locator, this, "typicalLikelihoodOfExploit", buffer, theTypicalLikelihoodOfExploit); } { AttackPattern.MethodsOfAttack theMethodsOfAttack; theMethodsOfAttack = this.getMethodsOfAttack(); strategy.appendField(locator, this, "methodsOfAttack", buffer, theMethodsOfAttack); } { AttackPattern.ExamplesInstances theExamplesInstances; theExamplesInstances = this.getExamplesInstances(); strategy.appendField(locator, this, "examplesInstances", buffer, theExamplesInstances); } { AttackPattern.AttackerSkillsOrKnowledgeRequired theAttackerSkillsOrKnowledgeRequired; theAttackerSkillsOrKnowledgeRequired = this .getAttackerSkillsOrKnowledgeRequired(); strategy.appendField(locator, this, "attackerSkillsOrKnowledgeRequired", buffer, theAttackerSkillsOrKnowledgeRequired); } { StructuredTextType theResourcesRequired; theResourcesRequired = this.getResourcesRequired(); strategy.appendField(locator, this, "resourcesRequired", buffer, theResourcesRequired); } { AttackPattern.ProbingTechniques theProbingTechniques; theProbingTechniques = this.getProbingTechniques(); strategy.appendField(locator, this, "probingTechniques", buffer, theProbingTechniques); } { AttackPattern.IndicatorsWarningsOfAttack theIndicatorsWarningsOfAttack; theIndicatorsWarningsOfAttack = this .getIndicatorsWarningsOfAttack(); strategy.appendField(locator, this, "indicatorsWarningsOfAttack", buffer, theIndicatorsWarningsOfAttack); } { AttackPattern.ObfuscationTechniques theObfuscationTechniques; theObfuscationTechniques = this.getObfuscationTechniques(); strategy.appendField(locator, this, "obfuscationTechniques", buffer, theObfuscationTechniques); } { AttackPattern.SolutionsAndMitigations theSolutionsAndMitigations; theSolutionsAndMitigations = this.getSolutionsAndMitigations(); strategy.appendField(locator, this, "solutionsAndMitigations", buffer, theSolutionsAndMitigations); } { AttackPattern.AttackMotivationConsequences theAttackMotivationConsequences; theAttackMotivationConsequences = this .getAttackMotivationConsequences(); strategy.appendField(locator, this, "attackMotivationConsequences", buffer, theAttackMotivationConsequences); } { StructuredTextType theInjectionVector; theInjectionVector = this.getInjectionVector(); strategy.appendField(locator, this, "injectionVector", buffer, theInjectionVector); } { StructuredTextType thePayload; thePayload = this.getPayload(); strategy.appendField(locator, this, "payload", buffer, thePayload); } { StructuredTextType theActivationZone; theActivationZone = this.getActivationZone(); strategy.appendField(locator, this, "activationZone", buffer, theActivationZone); } { AttackPattern.PayloadActivationImpact thePayloadActivationImpact; thePayloadActivationImpact = this.getPayloadActivationImpact(); strategy.appendField(locator, this, "payloadActivationImpact", buffer, thePayloadActivationImpact); } { AttackPattern.RelatedWeaknesses theRelatedWeaknesses; theRelatedWeaknesses = this.getRelatedWeaknesses(); strategy.appendField(locator, this, "relatedWeaknesses", buffer, theRelatedWeaknesses); } { AttackPattern.RelatedVulnerabilities theRelatedVulnerabilities; theRelatedVulnerabilities = this.getRelatedVulnerabilities(); strategy.appendField(locator, this, "relatedVulnerabilities", buffer, theRelatedVulnerabilities); } { AttackPattern.RelatedAttackPatterns theRelatedAttackPatterns; theRelatedAttackPatterns = this.getRelatedAttackPatterns(); strategy.appendField(locator, this, "relatedAttackPatterns", buffer, theRelatedAttackPatterns); } { AttackPattern.RelevantSecurityRequirements theRelevantSecurityRequirements; theRelevantSecurityRequirements = this .getRelevantSecurityRequirements(); strategy.appendField(locator, this, "relevantSecurityRequirements", buffer, theRelevantSecurityRequirements); } { AttackPattern.RelevantDesignPatterns theRelevantDesignPatterns; theRelevantDesignPatterns = this.getRelevantDesignPatterns(); strategy.appendField(locator, this, "relevantDesignPatterns", buffer, theRelevantDesignPatterns); } { AttackPattern.RelevantSecurityPatterns theRelevantSecurityPatterns; theRelevantSecurityPatterns = this.getRelevantSecurityPatterns(); strategy.appendField(locator, this, "relevantSecurityPatterns", buffer, theRelevantSecurityPatterns); } { AttackPattern.RelatedSecurityPrinciples theRelatedSecurityPrinciples; theRelatedSecurityPrinciples = this.getRelatedSecurityPrinciples(); strategy.appendField(locator, this, "relatedSecurityPrinciples", buffer, theRelatedSecurityPrinciples); } { AttackPattern.RelatedGuidelines theRelatedGuidelines; theRelatedGuidelines = this.getRelatedGuidelines(); strategy.appendField(locator, this, "relatedGuidelines", buffer, theRelatedGuidelines); } { AttackPattern.Purposes thePurposes; thePurposes = this.getPurposes(); strategy.appendField(locator, this, "purposes", buffer, thePurposes); } { AttackPattern.CIAImpact theCIAImpact; theCIAImpact = this.getCIAImpact(); strategy.appendField(locator, this, "ciaImpact", buffer, theCIAImpact); } { AttackPattern.TechnicalContext theTechnicalContext; theTechnicalContext = this.getTechnicalContext(); strategy.appendField(locator, this, "technicalContext", buffer, theTechnicalContext); } { AttackPattern.Keywords theKeywords; theKeywords = this.getKeywords(); strategy.appendField(locator, this, "keywords", buffer, theKeywords); } { AttackPattern.References theReferences; theReferences = this.getReferences(); strategy.appendField(locator, this, "references", buffer, theReferences); } { OtherNotes theOtherNotes; theOtherNotes = this.getOtherNotes(); strategy.appendField(locator, this, "otherNotes", buffer, theOtherNotes); } { MaintenanceNotes theMaintenanceNotes; theMaintenanceNotes = this.getMaintenanceNotes(); strategy.appendField(locator, this, "maintenanceNotes", buffer, theMaintenanceNotes); } { ContentHistory theContentHistory; theContentHistory = this.getContentHistory(); strategy.appendField(locator, this, "contentHistory", buffer, theContentHistory); } { BigInteger theID; theID = this.getID(); strategy.appendField(locator, this, "id", buffer, theID); } { String theName; theName = this.getName(); strategy.appendField(locator, this, "name", buffer, theName); } { String thePatternCompleteness; thePatternCompleteness = this.getPatternCompleteness(); strategy.appendField(locator, this, "patternCompleteness", buffer, thePatternCompleteness); } { String thePatternAbstraction; thePatternAbstraction = this.getPatternAbstraction(); strategy.appendField(locator, this, "patternAbstraction", buffer, thePatternAbstraction); } { StatusType theStatus; theStatus = this.getStatus(); strategy.appendField(locator, this, "status", buffer, theStatus); } return buffer; } /** *

Java class for anonymous complex type. * *

The following schema fragment specifies the expected content contained within this class. * *

	 * <complexType>
	 *   <complexContent>
	 *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
	 *       <sequence>
	 *         <element name="Attacker_Skill_or_Knowledge_Required" maxOccurs="unbounded">
	 *           <complexType>
	 *             <complexContent>
	 *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
	 *                 <sequence>
	 *                   <element name="Skill_or_Knowledge_Level" maxOccurs="unbounded" minOccurs="0">
	 *                     <simpleType>
	 *                       <restriction base="{http://www.w3.org/2001/XMLSchema}string">
	 *                         <whiteSpace value="collapse"/>
	 *                         <enumeration value="Low"/>
	 *                         <enumeration value="Medium"/>
	 *                         <enumeration value="High"/>
	 *                       </restriction>
	 *                     </simpleType>
	 *                   </element>
	 *                   <element name="Skill_or_Knowledge_Type" type="{http://capec.mitre.org/capec-2}Structured_Text_Type" minOccurs="0"/>
	 *                 </sequence>
	 *               </restriction>
	 *             </complexContent>
	 *           </complexType>
	 *         </element>
	 *       </sequence>
	 *     </restriction>
	 *   </complexContent>
	 * </complexType>
	 * 
* * */ @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "", propOrder = { "attackerSkillOrKnowledgeRequireds" }) public static class AttackerSkillsOrKnowledgeRequired implements Equals, HashCode, ToString { @XmlElement(name = "Attacker_Skill_or_Knowledge_Required", required = true) protected List attackerSkillOrKnowledgeRequireds; /** * Default no-arg constructor * */ public AttackerSkillsOrKnowledgeRequired() { super(); } /** * Fully-initialising value constructor * */ public AttackerSkillsOrKnowledgeRequired( final List attackerSkillOrKnowledgeRequireds) { this.attackerSkillOrKnowledgeRequireds = attackerSkillOrKnowledgeRequireds; } /** * Gets the value of the attackerSkillOrKnowledgeRequireds property. * *

* 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 set method for the attackerSkillOrKnowledgeRequireds property. * *

* For example, to add a new item, do as follows: *

		 *    getAttackerSkillOrKnowledgeRequireds().add(newItem);
		 * 
* * *

* Objects of the following type(s) are allowed in the list * {@link AttackPattern.AttackerSkillsOrKnowledgeRequired.AttackerSkillOrKnowledgeRequired } * * */ public List getAttackerSkillOrKnowledgeRequireds() { if (attackerSkillOrKnowledgeRequireds == null) { attackerSkillOrKnowledgeRequireds = new ArrayList(); } return this.attackerSkillOrKnowledgeRequireds; } public boolean equals(ObjectLocator thisLocator, ObjectLocator thatLocator, Object object, EqualsStrategy strategy) { if (!(object instanceof AttackPattern.AttackerSkillsOrKnowledgeRequired)) { return false; } if (this == object) { return true; } final AttackPattern.AttackerSkillsOrKnowledgeRequired that = ((AttackPattern.AttackerSkillsOrKnowledgeRequired) object); { List lhsAttackerSkillOrKnowledgeRequireds; lhsAttackerSkillOrKnowledgeRequireds = (((this.attackerSkillOrKnowledgeRequireds != null) && (!this.attackerSkillOrKnowledgeRequireds .isEmpty())) ? this .getAttackerSkillOrKnowledgeRequireds() : null); List rhsAttackerSkillOrKnowledgeRequireds; rhsAttackerSkillOrKnowledgeRequireds = (((that.attackerSkillOrKnowledgeRequireds != null) && (!that.attackerSkillOrKnowledgeRequireds .isEmpty())) ? that .getAttackerSkillOrKnowledgeRequireds() : null); if (!strategy.equals(LocatorUtils.property(thisLocator, "attackerSkillOrKnowledgeRequireds", lhsAttackerSkillOrKnowledgeRequireds), LocatorUtils .property(thatLocator, "attackerSkillOrKnowledgeRequireds", rhsAttackerSkillOrKnowledgeRequireds), lhsAttackerSkillOrKnowledgeRequireds, rhsAttackerSkillOrKnowledgeRequireds)) { 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; { List theAttackerSkillOrKnowledgeRequireds; theAttackerSkillOrKnowledgeRequireds = (((this.attackerSkillOrKnowledgeRequireds != null) && (!this.attackerSkillOrKnowledgeRequireds .isEmpty())) ? this .getAttackerSkillOrKnowledgeRequireds() : null); currentHashCode = strategy.hashCode(LocatorUtils.property( locator, "attackerSkillOrKnowledgeRequireds", theAttackerSkillOrKnowledgeRequireds), currentHashCode, theAttackerSkillOrKnowledgeRequireds); } return currentHashCode; } public int hashCode() { final HashCodeStrategy strategy = JAXBHashCodeStrategy.INSTANCE; return this.hashCode(null, strategy); } public AttackPattern.AttackerSkillsOrKnowledgeRequired withAttackerSkillOrKnowledgeRequireds( AttackPattern.AttackerSkillsOrKnowledgeRequired.AttackerSkillOrKnowledgeRequired... values) { if (values != null) { for (AttackPattern.AttackerSkillsOrKnowledgeRequired.AttackerSkillOrKnowledgeRequired value : values) { getAttackerSkillOrKnowledgeRequireds().add(value); } } return this; } public AttackPattern.AttackerSkillsOrKnowledgeRequired withAttackerSkillOrKnowledgeRequireds( Collection values) { if (values != null) { getAttackerSkillOrKnowledgeRequireds().addAll(values); } 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) { { List theAttackerSkillOrKnowledgeRequireds; theAttackerSkillOrKnowledgeRequireds = (((this.attackerSkillOrKnowledgeRequireds != null) && (!this.attackerSkillOrKnowledgeRequireds .isEmpty())) ? this .getAttackerSkillOrKnowledgeRequireds() : null); strategy.appendField(locator, this, "attackerSkillOrKnowledgeRequireds", buffer, theAttackerSkillOrKnowledgeRequireds); } return buffer; } /** *

Java class for anonymous complex type. * *

The following schema fragment specifies the expected content contained within this class. * *

		 * <complexType>
		 *   <complexContent>
		 *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
		 *       <sequence>
		 *         <element name="Skill_or_Knowledge_Level" maxOccurs="unbounded" minOccurs="0">
		 *           <simpleType>
		 *             <restriction base="{http://www.w3.org/2001/XMLSchema}string">
		 *               <whiteSpace value="collapse"/>
		 *               <enumeration value="Low"/>
		 *               <enumeration value="Medium"/>
		 *               <enumeration value="High"/>
		 *             </restriction>
		 *           </simpleType>
		 *         </element>
		 *         <element name="Skill_or_Knowledge_Type" type="{http://capec.mitre.org/capec-2}Structured_Text_Type" minOccurs="0"/>
		 *       </sequence>
		 *     </restriction>
		 *   </complexContent>
		 * </complexType>
		 * 
* * */ @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "", propOrder = { "skillOrKnowledgeLevels", "skillOrKnowledgeType" }) public static class AttackerSkillOrKnowledgeRequired implements Equals, HashCode, ToString { @XmlElement(name = "Skill_or_Knowledge_Level") protected List skillOrKnowledgeLevels; @XmlElement(name = "Skill_or_Knowledge_Type") protected StructuredTextType skillOrKnowledgeType; /** * Default no-arg constructor * */ public AttackerSkillOrKnowledgeRequired() { super(); } /** * Fully-initialising value constructor * */ public AttackerSkillOrKnowledgeRequired( final List skillOrKnowledgeLevels, final StructuredTextType skillOrKnowledgeType) { this.skillOrKnowledgeLevels = skillOrKnowledgeLevels; this.skillOrKnowledgeType = skillOrKnowledgeType; } /** * Gets the value of the skillOrKnowledgeLevels property. * *

* 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 set method for the skillOrKnowledgeLevels property. * *

* For example, to add a new item, do as follows: *

			 *    getSkillOrKnowledgeLevels().add(newItem);
			 * 
* * *

* Objects of the following type(s) are allowed in the list * {@link String } * * */ public List getSkillOrKnowledgeLevels() { if (skillOrKnowledgeLevels == null) { skillOrKnowledgeLevels = new ArrayList(); } return this.skillOrKnowledgeLevels; } /** * Gets the value of the skillOrKnowledgeType property. * * @return * possible object is * {@link StructuredTextType } * */ public StructuredTextType getSkillOrKnowledgeType() { return skillOrKnowledgeType; } /** * Sets the value of the skillOrKnowledgeType property. * * @param value * allowed object is * {@link StructuredTextType } * */ public void setSkillOrKnowledgeType(StructuredTextType value) { this.skillOrKnowledgeType = value; } public boolean equals(ObjectLocator thisLocator, ObjectLocator thatLocator, Object object, EqualsStrategy strategy) { if (!(object instanceof AttackPattern.AttackerSkillsOrKnowledgeRequired.AttackerSkillOrKnowledgeRequired)) { return false; } if (this == object) { return true; } final AttackPattern.AttackerSkillsOrKnowledgeRequired.AttackerSkillOrKnowledgeRequired that = ((AttackPattern.AttackerSkillsOrKnowledgeRequired.AttackerSkillOrKnowledgeRequired) object); { List lhsSkillOrKnowledgeLevels; lhsSkillOrKnowledgeLevels = (((this.skillOrKnowledgeLevels != null) && (!this.skillOrKnowledgeLevels .isEmpty())) ? this.getSkillOrKnowledgeLevels() : null); List rhsSkillOrKnowledgeLevels; rhsSkillOrKnowledgeLevels = (((that.skillOrKnowledgeLevels != null) && (!that.skillOrKnowledgeLevels .isEmpty())) ? that.getSkillOrKnowledgeLevels() : null); if (!strategy.equals(LocatorUtils .property(thisLocator, "skillOrKnowledgeLevels", lhsSkillOrKnowledgeLevels), LocatorUtils .property(thatLocator, "skillOrKnowledgeLevels", rhsSkillOrKnowledgeLevels), lhsSkillOrKnowledgeLevels, rhsSkillOrKnowledgeLevels)) { return false; } } { StructuredTextType lhsSkillOrKnowledgeType; lhsSkillOrKnowledgeType = this.getSkillOrKnowledgeType(); StructuredTextType rhsSkillOrKnowledgeType; rhsSkillOrKnowledgeType = that.getSkillOrKnowledgeType(); if (!strategy.equals(LocatorUtils.property(thisLocator, "skillOrKnowledgeType", lhsSkillOrKnowledgeType), LocatorUtils.property(thatLocator, "skillOrKnowledgeType", rhsSkillOrKnowledgeType), lhsSkillOrKnowledgeType, rhsSkillOrKnowledgeType)) { 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; { List theSkillOrKnowledgeLevels; theSkillOrKnowledgeLevels = (((this.skillOrKnowledgeLevels != null) && (!this.skillOrKnowledgeLevels .isEmpty())) ? this.getSkillOrKnowledgeLevels() : null); currentHashCode = strategy.hashCode(LocatorUtils.property( locator, "skillOrKnowledgeLevels", theSkillOrKnowledgeLevels), currentHashCode, theSkillOrKnowledgeLevels); } { StructuredTextType theSkillOrKnowledgeType; theSkillOrKnowledgeType = this.getSkillOrKnowledgeType(); currentHashCode = strategy.hashCode(LocatorUtils.property( locator, "skillOrKnowledgeType", theSkillOrKnowledgeType), currentHashCode, theSkillOrKnowledgeType); } return currentHashCode; } public int hashCode() { final HashCodeStrategy strategy = JAXBHashCodeStrategy.INSTANCE; return this.hashCode(null, strategy); } public AttackPattern.AttackerSkillsOrKnowledgeRequired.AttackerSkillOrKnowledgeRequired withSkillOrKnowledgeLevels( String... values) { if (values != null) { for (String value : values) { getSkillOrKnowledgeLevels().add(value); } } return this; } public AttackPattern.AttackerSkillsOrKnowledgeRequired.AttackerSkillOrKnowledgeRequired withSkillOrKnowledgeLevels( Collection values) { if (values != null) { getSkillOrKnowledgeLevels().addAll(values); } return this; } public AttackPattern.AttackerSkillsOrKnowledgeRequired.AttackerSkillOrKnowledgeRequired withSkillOrKnowledgeType( StructuredTextType value) { setSkillOrKnowledgeType(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) { { List theSkillOrKnowledgeLevels; theSkillOrKnowledgeLevels = (((this.skillOrKnowledgeLevels != null) && (!this.skillOrKnowledgeLevels .isEmpty())) ? this.getSkillOrKnowledgeLevels() : null); strategy.appendField(locator, this, "skillOrKnowledgeLevels", buffer, theSkillOrKnowledgeLevels); } { StructuredTextType theSkillOrKnowledgeType; theSkillOrKnowledgeType = this.getSkillOrKnowledgeType(); strategy.appendField(locator, this, "skillOrKnowledgeType", buffer, theSkillOrKnowledgeType); } return buffer; } } } /** *

Java class for anonymous complex type. * *

The following schema fragment specifies the expected content contained within this class. * *

	 * <complexType>
	 *   <complexContent>
	 *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
	 *       <sequence>
	 *         <element name="Attack_Motivation-Consequence" type="{http://capec.mitre.org/capec-2}Common_ConsequenceType" maxOccurs="unbounded"/>
	 *       </sequence>
	 *     </restriction>
	 *   </complexContent>
	 * </complexType>
	 * 
* * */ @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "", propOrder = { "attackMotivationConsequences" }) public static class AttackMotivationConsequences implements Equals, HashCode, ToString { @XmlElement(name = "Attack_Motivation-Consequence", required = true) protected List attackMotivationConsequences; /** * Default no-arg constructor * */ public AttackMotivationConsequences() { super(); } /** * Fully-initialising value constructor * */ public AttackMotivationConsequences( final List attackMotivationConsequences) { this.attackMotivationConsequences = attackMotivationConsequences; } /** * Gets the value of the attackMotivationConsequences property. * *

* 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 set method for the attackMotivationConsequences property. * *

* For example, to add a new item, do as follows: *

		 *    getAttackMotivationConsequences().add(newItem);
		 * 
* * *

* Objects of the following type(s) are allowed in the list * {@link CommonConsequenceType } * * */ public List getAttackMotivationConsequences() { if (attackMotivationConsequences == null) { attackMotivationConsequences = new ArrayList(); } return this.attackMotivationConsequences; } public boolean equals(ObjectLocator thisLocator, ObjectLocator thatLocator, Object object, EqualsStrategy strategy) { if (!(object instanceof AttackPattern.AttackMotivationConsequences)) { return false; } if (this == object) { return true; } final AttackPattern.AttackMotivationConsequences that = ((AttackPattern.AttackMotivationConsequences) object); { List lhsAttackMotivationConsequences; lhsAttackMotivationConsequences = (((this.attackMotivationConsequences != null) && (!this.attackMotivationConsequences .isEmpty())) ? this.getAttackMotivationConsequences() : null); List rhsAttackMotivationConsequences; rhsAttackMotivationConsequences = (((that.attackMotivationConsequences != null) && (!that.attackMotivationConsequences .isEmpty())) ? that.getAttackMotivationConsequences() : null); if (!strategy.equals(LocatorUtils.property(thisLocator, "attackMotivationConsequences", lhsAttackMotivationConsequences), LocatorUtils .property(thatLocator, "attackMotivationConsequences", rhsAttackMotivationConsequences), lhsAttackMotivationConsequences, rhsAttackMotivationConsequences)) { 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; { List theAttackMotivationConsequences; theAttackMotivationConsequences = (((this.attackMotivationConsequences != null) && (!this.attackMotivationConsequences .isEmpty())) ? this.getAttackMotivationConsequences() : null); currentHashCode = strategy.hashCode(LocatorUtils.property( locator, "attackMotivationConsequences", theAttackMotivationConsequences), currentHashCode, theAttackMotivationConsequences); } return currentHashCode; } public int hashCode() { final HashCodeStrategy strategy = JAXBHashCodeStrategy.INSTANCE; return this.hashCode(null, strategy); } public AttackPattern.AttackMotivationConsequences withAttackMotivationConsequences( CommonConsequenceType... values) { if (values != null) { for (CommonConsequenceType value : values) { getAttackMotivationConsequences().add(value); } } return this; } public AttackPattern.AttackMotivationConsequences withAttackMotivationConsequences( Collection values) { if (values != null) { getAttackMotivationConsequences().addAll(values); } 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) { { List theAttackMotivationConsequences; theAttackMotivationConsequences = (((this.attackMotivationConsequences != null) && (!this.attackMotivationConsequences .isEmpty())) ? this.getAttackMotivationConsequences() : null); strategy.appendField(locator, this, "attackMotivationConsequences", buffer, theAttackMotivationConsequences); } return buffer; } } /** *

Java class for anonymous complex type. * *

The following schema fragment specifies the expected content contained within this class. * *

	 * <complexType>
	 *   <complexContent>
	 *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
	 *       <sequence>
	 *         <element name="Attack_Prerequisite" type="{http://capec.mitre.org/capec-2}Structured_Text_Type" maxOccurs="unbounded"/>
	 *       </sequence>
	 *     </restriction>
	 *   </complexContent>
	 * </complexType>
	 * 
* * */ @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "", propOrder = { "attackPrerequisites" }) public static class AttackPrerequisites implements Equals, HashCode, ToString { @XmlElement(name = "Attack_Prerequisite", required = true) protected List attackPrerequisites; /** * Default no-arg constructor * */ public AttackPrerequisites() { super(); } /** * Fully-initialising value constructor * */ public AttackPrerequisites( final List attackPrerequisites) { this.attackPrerequisites = attackPrerequisites; } /** * Gets the value of the attackPrerequisites property. * *

* 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 set method for the attackPrerequisites property. * *

* For example, to add a new item, do as follows: *

		 *    getAttackPrerequisites().add(newItem);
		 * 
* * *

* Objects of the following type(s) are allowed in the list * {@link StructuredTextType } * * */ public List getAttackPrerequisites() { if (attackPrerequisites == null) { attackPrerequisites = new ArrayList(); } return this.attackPrerequisites; } public boolean equals(ObjectLocator thisLocator, ObjectLocator thatLocator, Object object, EqualsStrategy strategy) { if (!(object instanceof AttackPattern.AttackPrerequisites)) { return false; } if (this == object) { return true; } final AttackPattern.AttackPrerequisites that = ((AttackPattern.AttackPrerequisites) object); { List lhsAttackPrerequisites; lhsAttackPrerequisites = (((this.attackPrerequisites != null) && (!this.attackPrerequisites .isEmpty())) ? this.getAttackPrerequisites() : null); List rhsAttackPrerequisites; rhsAttackPrerequisites = (((that.attackPrerequisites != null) && (!that.attackPrerequisites .isEmpty())) ? that.getAttackPrerequisites() : null); if (!strategy.equals(LocatorUtils.property(thisLocator, "attackPrerequisites", lhsAttackPrerequisites), LocatorUtils.property(thatLocator, "attackPrerequisites", rhsAttackPrerequisites), lhsAttackPrerequisites, rhsAttackPrerequisites)) { 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; { List theAttackPrerequisites; theAttackPrerequisites = (((this.attackPrerequisites != null) && (!this.attackPrerequisites .isEmpty())) ? this.getAttackPrerequisites() : null); currentHashCode = strategy.hashCode( LocatorUtils.property(locator, "attackPrerequisites", theAttackPrerequisites), currentHashCode, theAttackPrerequisites); } return currentHashCode; } public int hashCode() { final HashCodeStrategy strategy = JAXBHashCodeStrategy.INSTANCE; return this.hashCode(null, strategy); } public AttackPattern.AttackPrerequisites withAttackPrerequisites( StructuredTextType... values) { if (values != null) { for (StructuredTextType value : values) { getAttackPrerequisites().add(value); } } return this; } public AttackPattern.AttackPrerequisites withAttackPrerequisites( Collection values) { if (values != null) { getAttackPrerequisites().addAll(values); } 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) { { List theAttackPrerequisites; theAttackPrerequisites = (((this.attackPrerequisites != null) && (!this.attackPrerequisites .isEmpty())) ? this.getAttackPrerequisites() : null); strategy.appendField(locator, this, "attackPrerequisites", buffer, theAttackPrerequisites); } return buffer; } } /** *

Java class for anonymous complex type. * *

The following schema fragment specifies the expected content contained within this class. * *

	 * <complexType>
	 *   <complexContent>
	 *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
	 *       <sequence>
	 *         <element name="Confidentiality_Impact" minOccurs="0">
	 *           <simpleType>
	 *             <restriction base="{http://www.w3.org/2001/XMLSchema}string">
	 *               <whiteSpace value="collapse"/>
	 *               <enumeration value="Low"/>
	 *               <enumeration value="Medium"/>
	 *               <enumeration value="High"/>
	 *             </restriction>
	 *           </simpleType>
	 *         </element>
	 *         <element name="Integrity_Impact" minOccurs="0">
	 *           <simpleType>
	 *             <restriction base="{http://www.w3.org/2001/XMLSchema}string">
	 *               <whiteSpace value="collapse"/>
	 *               <enumeration value="Low"/>
	 *               <enumeration value="Medium"/>
	 *               <enumeration value="High"/>
	 *             </restriction>
	 *           </simpleType>
	 *         </element>
	 *         <element name="Availability_Impact" minOccurs="0">
	 *           <simpleType>
	 *             <restriction base="{http://www.w3.org/2001/XMLSchema}string">
	 *               <whiteSpace value="collapse"/>
	 *               <enumeration value="Low"/>
	 *               <enumeration value="Medium"/>
	 *               <enumeration value="High"/>
	 *             </restriction>
	 *           </simpleType>
	 *         </element>
	 *       </sequence>
	 *     </restriction>
	 *   </complexContent>
	 * </complexType>
	 * 
* * */ @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "", propOrder = { "confidentialityImpact", "integrityImpact", "availabilityImpact" }) public static class CIAImpact implements Equals, HashCode, ToString { @XmlElement(name = "Confidentiality_Impact") protected String confidentialityImpact; @XmlElement(name = "Integrity_Impact") protected String integrityImpact; @XmlElement(name = "Availability_Impact") protected String availabilityImpact; /** * Default no-arg constructor * */ public CIAImpact() { super(); } /** * Fully-initialising value constructor * */ public CIAImpact(final String confidentialityImpact, final String integrityImpact, final String availabilityImpact) { this.confidentialityImpact = confidentialityImpact; this.integrityImpact = integrityImpact; this.availabilityImpact = availabilityImpact; } /** * Gets the value of the confidentialityImpact property. * * @return * possible object is * {@link String } * */ public String getConfidentialityImpact() { return confidentialityImpact; } /** * Sets the value of the confidentialityImpact property. * * @param value * allowed object is * {@link String } * */ public void setConfidentialityImpact(String value) { this.confidentialityImpact = value; } /** * Gets the value of the integrityImpact property. * * @return * possible object is * {@link String } * */ public String getIntegrityImpact() { return integrityImpact; } /** * Sets the value of the integrityImpact property. * * @param value * allowed object is * {@link String } * */ public void setIntegrityImpact(String value) { this.integrityImpact = value; } /** * Gets the value of the availabilityImpact property. * * @return * possible object is * {@link String } * */ public String getAvailabilityImpact() { return availabilityImpact; } /** * Sets the value of the availabilityImpact property. * * @param value * allowed object is * {@link String } * */ public void setAvailabilityImpact(String value) { this.availabilityImpact = value; } public boolean equals(ObjectLocator thisLocator, ObjectLocator thatLocator, Object object, EqualsStrategy strategy) { if (!(object instanceof AttackPattern.CIAImpact)) { return false; } if (this == object) { return true; } final AttackPattern.CIAImpact that = ((AttackPattern.CIAImpact) object); { String lhsConfidentialityImpact; lhsConfidentialityImpact = this.getConfidentialityImpact(); String rhsConfidentialityImpact; rhsConfidentialityImpact = that.getConfidentialityImpact(); if (!strategy.equals(LocatorUtils.property(thisLocator, "confidentialityImpact", lhsConfidentialityImpact), LocatorUtils.property(thatLocator, "confidentialityImpact", rhsConfidentialityImpact), lhsConfidentialityImpact, rhsConfidentialityImpact)) { return false; } } { String lhsIntegrityImpact; lhsIntegrityImpact = this.getIntegrityImpact(); String rhsIntegrityImpact; rhsIntegrityImpact = that.getIntegrityImpact(); if (!strategy.equals(LocatorUtils.property(thisLocator, "integrityImpact", lhsIntegrityImpact), LocatorUtils .property(thatLocator, "integrityImpact", rhsIntegrityImpact), lhsIntegrityImpact, rhsIntegrityImpact)) { return false; } } { String lhsAvailabilityImpact; lhsAvailabilityImpact = this.getAvailabilityImpact(); String rhsAvailabilityImpact; rhsAvailabilityImpact = that.getAvailabilityImpact(); if (!strategy.equals(LocatorUtils.property(thisLocator, "availabilityImpact", lhsAvailabilityImpact), LocatorUtils.property(thatLocator, "availabilityImpact", rhsAvailabilityImpact), lhsAvailabilityImpact, rhsAvailabilityImpact)) { 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 theConfidentialityImpact; theConfidentialityImpact = this.getConfidentialityImpact(); currentHashCode = strategy.hashCode(LocatorUtils.property( locator, "confidentialityImpact", theConfidentialityImpact), currentHashCode, theConfidentialityImpact); } { String theIntegrityImpact; theIntegrityImpact = this.getIntegrityImpact(); currentHashCode = strategy.hashCode(LocatorUtils.property( locator, "integrityImpact", theIntegrityImpact), currentHashCode, theIntegrityImpact); } { String theAvailabilityImpact; theAvailabilityImpact = this.getAvailabilityImpact(); currentHashCode = strategy.hashCode(LocatorUtils.property( locator, "availabilityImpact", theAvailabilityImpact), currentHashCode, theAvailabilityImpact); } return currentHashCode; } public int hashCode() { final HashCodeStrategy strategy = JAXBHashCodeStrategy.INSTANCE; return this.hashCode(null, strategy); } public AttackPattern.CIAImpact withConfidentialityImpact(String value) { setConfidentialityImpact(value); return this; } public AttackPattern.CIAImpact withIntegrityImpact(String value) { setIntegrityImpact(value); return this; } public AttackPattern.CIAImpact withAvailabilityImpact(String value) { setAvailabilityImpact(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 theConfidentialityImpact; theConfidentialityImpact = this.getConfidentialityImpact(); strategy.appendField(locator, this, "confidentialityImpact", buffer, theConfidentialityImpact); } { String theIntegrityImpact; theIntegrityImpact = this.getIntegrityImpact(); strategy.appendField(locator, this, "integrityImpact", buffer, theIntegrityImpact); } { String theAvailabilityImpact; theAvailabilityImpact = this.getAvailabilityImpact(); strategy.appendField(locator, this, "availabilityImpact", buffer, theAvailabilityImpact); } return buffer; } } /** *

Java class for anonymous complex type. * *

The following schema fragment specifies the expected content contained within this class. * *

	 * <complexType>
	 *   <complexContent>
	 *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
	 *       <sequence>
	 *         <element name="Summary" type="{http://capec.mitre.org/capec-2}Structured_Text_Type"/>
	 *         <element ref="{http://capec.mitre.org/capec-2}Attack_Execution_Flow" minOccurs="0"/>
	 *       </sequence>
	 *     </restriction>
	 *   </complexContent>
	 * </complexType>
	 * 
* * */ @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "", propOrder = { "summary", "attackExecutionFlow" }) public static class Description implements Equals, HashCode, ToString { @XmlElement(name = "Summary", required = true) protected StructuredTextType summary; @XmlElement(name = "Attack_Execution_Flow") protected AttackExecutionFlow attackExecutionFlow; /** * Default no-arg constructor * */ public Description() { super(); } /** * Fully-initialising value constructor * */ public Description(final StructuredTextType summary, final AttackExecutionFlow attackExecutionFlow) { this.summary = summary; this.attackExecutionFlow = attackExecutionFlow; } /** * Gets the value of the summary property. * * @return * possible object is * {@link StructuredTextType } * */ public StructuredTextType getSummary() { return summary; } /** * Sets the value of the summary property. * * @param value * allowed object is * {@link StructuredTextType } * */ public void setSummary(StructuredTextType value) { this.summary = value; } /** * This element lists the steps typically performed * by an attacker when executing the attack. * * @return * possible object is * {@link AttackExecutionFlow } * */ public AttackExecutionFlow getAttackExecutionFlow() { return attackExecutionFlow; } /** * Sets the value of the attackExecutionFlow property. * * @param value * allowed object is * {@link AttackExecutionFlow } * */ public void setAttackExecutionFlow(AttackExecutionFlow value) { this.attackExecutionFlow = value; } public boolean equals(ObjectLocator thisLocator, ObjectLocator thatLocator, Object object, EqualsStrategy strategy) { if (!(object instanceof AttackPattern.Description)) { return false; } if (this == object) { return true; } final AttackPattern.Description that = ((AttackPattern.Description) object); { StructuredTextType lhsSummary; lhsSummary = this.getSummary(); StructuredTextType rhsSummary; rhsSummary = that.getSummary(); if (!strategy.equals(LocatorUtils.property(thisLocator, "summary", lhsSummary), LocatorUtils.property( thatLocator, "summary", rhsSummary), lhsSummary, rhsSummary)) { return false; } } { AttackExecutionFlow lhsAttackExecutionFlow; lhsAttackExecutionFlow = this.getAttackExecutionFlow(); AttackExecutionFlow rhsAttackExecutionFlow; rhsAttackExecutionFlow = that.getAttackExecutionFlow(); if (!strategy.equals(LocatorUtils.property(thisLocator, "attackExecutionFlow", lhsAttackExecutionFlow), LocatorUtils.property(thatLocator, "attackExecutionFlow", rhsAttackExecutionFlow), lhsAttackExecutionFlow, rhsAttackExecutionFlow)) { 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; { StructuredTextType theSummary; theSummary = this.getSummary(); currentHashCode = strategy.hashCode( LocatorUtils.property(locator, "summary", theSummary), currentHashCode, theSummary); } { AttackExecutionFlow theAttackExecutionFlow; theAttackExecutionFlow = this.getAttackExecutionFlow(); currentHashCode = strategy.hashCode( LocatorUtils.property(locator, "attackExecutionFlow", theAttackExecutionFlow), currentHashCode, theAttackExecutionFlow); } return currentHashCode; } public int hashCode() { final HashCodeStrategy strategy = JAXBHashCodeStrategy.INSTANCE; return this.hashCode(null, strategy); } public AttackPattern.Description withSummary(StructuredTextType value) { setSummary(value); return this; } public AttackPattern.Description withAttackExecutionFlow( AttackExecutionFlow value) { setAttackExecutionFlow(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) { { StructuredTextType theSummary; theSummary = this.getSummary(); strategy.appendField(locator, this, "summary", buffer, theSummary); } { AttackExecutionFlow theAttackExecutionFlow; theAttackExecutionFlow = this.getAttackExecutionFlow(); strategy.appendField(locator, this, "attackExecutionFlow", buffer, theAttackExecutionFlow); } return buffer; } } /** *

Java class for anonymous complex type. * *

The following schema fragment specifies the expected content contained within this class. * *

	 * <complexType>
	 *   <complexContent>
	 *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
	 *       <sequence>
	 *         <element name="Example-Instance" maxOccurs="unbounded">
	 *           <complexType>
	 *             <complexContent>
	 *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
	 *                 <sequence>
	 *                   <element name="Example-Instance_Description" type="{http://capec.mitre.org/capec-2}Structured_Text_Type"/>
	 *                   <element name="Example-Instance_Related_Vulnerabilities" minOccurs="0">
	 *                     <complexType>
	 *                       <complexContent>
	 *                         <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
	 *                           <sequence>
	 *                             <element name="Example-Instance_Related_Vulnerability" type="{http://capec.mitre.org/capec-2}Structured_Text_Type" maxOccurs="unbounded"/>
	 *                           </sequence>
	 *                         </restriction>
	 *                       </complexContent>
	 *                     </complexType>
	 *                   </element>
	 *                 </sequence>
	 *               </restriction>
	 *             </complexContent>
	 *           </complexType>
	 *         </element>
	 *       </sequence>
	 *     </restriction>
	 *   </complexContent>
	 * </complexType>
	 * 
* * */ @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "", propOrder = { "exampleInstances" }) public static class ExamplesInstances implements Equals, HashCode, ToString { @XmlElement(name = "Example-Instance", required = true) protected List exampleInstances; /** * Default no-arg constructor * */ public ExamplesInstances() { super(); } /** * Fully-initialising value constructor * */ public ExamplesInstances( final List exampleInstances) { this.exampleInstances = exampleInstances; } /** * Gets the value of the exampleInstances property. * *

* 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 set method for the exampleInstances property. * *

* For example, to add a new item, do as follows: *

		 *    getExampleInstances().add(newItem);
		 * 
* * *

* Objects of the following type(s) are allowed in the list * {@link AttackPattern.ExamplesInstances.ExampleInstance } * * */ public List getExampleInstances() { if (exampleInstances == null) { exampleInstances = new ArrayList(); } return this.exampleInstances; } public boolean equals(ObjectLocator thisLocator, ObjectLocator thatLocator, Object object, EqualsStrategy strategy) { if (!(object instanceof AttackPattern.ExamplesInstances)) { return false; } if (this == object) { return true; } final AttackPattern.ExamplesInstances that = ((AttackPattern.ExamplesInstances) object); { List lhsExampleInstances; lhsExampleInstances = (((this.exampleInstances != null) && (!this.exampleInstances .isEmpty())) ? this.getExampleInstances() : null); List rhsExampleInstances; rhsExampleInstances = (((that.exampleInstances != null) && (!that.exampleInstances .isEmpty())) ? that.getExampleInstances() : null); if (!strategy.equals(LocatorUtils.property(thisLocator, "exampleInstances", lhsExampleInstances), LocatorUtils .property(thatLocator, "exampleInstances", rhsExampleInstances), lhsExampleInstances, rhsExampleInstances)) { 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; { List theExampleInstances; theExampleInstances = (((this.exampleInstances != null) && (!this.exampleInstances .isEmpty())) ? this.getExampleInstances() : null); currentHashCode = strategy.hashCode(LocatorUtils.property( locator, "exampleInstances", theExampleInstances), currentHashCode, theExampleInstances); } return currentHashCode; } public int hashCode() { final HashCodeStrategy strategy = JAXBHashCodeStrategy.INSTANCE; return this.hashCode(null, strategy); } public AttackPattern.ExamplesInstances withExampleInstances( AttackPattern.ExamplesInstances.ExampleInstance... values) { if (values != null) { for (AttackPattern.ExamplesInstances.ExampleInstance value : values) { getExampleInstances().add(value); } } return this; } public AttackPattern.ExamplesInstances withExampleInstances( Collection values) { if (values != null) { getExampleInstances().addAll(values); } 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) { { List theExampleInstances; theExampleInstances = (((this.exampleInstances != null) && (!this.exampleInstances .isEmpty())) ? this.getExampleInstances() : null); strategy.appendField(locator, this, "exampleInstances", buffer, theExampleInstances); } return buffer; } /** *

Java class for anonymous complex type. * *

The following schema fragment specifies the expected content contained within this class. * *

		 * <complexType>
		 *   <complexContent>
		 *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
		 *       <sequence>
		 *         <element name="Example-Instance_Description" type="{http://capec.mitre.org/capec-2}Structured_Text_Type"/>
		 *         <element name="Example-Instance_Related_Vulnerabilities" minOccurs="0">
		 *           <complexType>
		 *             <complexContent>
		 *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
		 *                 <sequence>
		 *                   <element name="Example-Instance_Related_Vulnerability" type="{http://capec.mitre.org/capec-2}Structured_Text_Type" maxOccurs="unbounded"/>
		 *                 </sequence>
		 *               </restriction>
		 *             </complexContent>
		 *           </complexType>
		 *         </element>
		 *       </sequence>
		 *     </restriction>
		 *   </complexContent>
		 * </complexType>
		 * 
* * */ @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "", propOrder = { "exampleInstanceDescription", "exampleInstanceRelatedVulnerabilities" }) public static class ExampleInstance implements Equals, HashCode, ToString { @XmlElement(name = "Example-Instance_Description", required = true) protected StructuredTextType exampleInstanceDescription; @XmlElement(name = "Example-Instance_Related_Vulnerabilities") protected AttackPattern.ExamplesInstances.ExampleInstance.ExampleInstanceRelatedVulnerabilities exampleInstanceRelatedVulnerabilities; /** * Default no-arg constructor * */ public ExampleInstance() { super(); } /** * Fully-initialising value constructor * */ public ExampleInstance( final StructuredTextType exampleInstanceDescription, final AttackPattern.ExamplesInstances.ExampleInstance.ExampleInstanceRelatedVulnerabilities exampleInstanceRelatedVulnerabilities) { this.exampleInstanceDescription = exampleInstanceDescription; this.exampleInstanceRelatedVulnerabilities = exampleInstanceRelatedVulnerabilities; } /** * Gets the value of the exampleInstanceDescription property. * * @return * possible object is * {@link StructuredTextType } * */ public StructuredTextType getExampleInstanceDescription() { return exampleInstanceDescription; } /** * Sets the value of the exampleInstanceDescription property. * * @param value * allowed object is * {@link StructuredTextType } * */ public void setExampleInstanceDescription(StructuredTextType value) { this.exampleInstanceDescription = value; } /** * Gets the value of the exampleInstanceRelatedVulnerabilities property. * * @return * possible object is * {@link AttackPattern.ExamplesInstances.ExampleInstance.ExampleInstanceRelatedVulnerabilities } * */ public AttackPattern.ExamplesInstances.ExampleInstance.ExampleInstanceRelatedVulnerabilities getExampleInstanceRelatedVulnerabilities() { return exampleInstanceRelatedVulnerabilities; } /** * Sets the value of the exampleInstanceRelatedVulnerabilities property. * * @param value * allowed object is * {@link AttackPattern.ExamplesInstances.ExampleInstance.ExampleInstanceRelatedVulnerabilities } * */ public void setExampleInstanceRelatedVulnerabilities( AttackPattern.ExamplesInstances.ExampleInstance.ExampleInstanceRelatedVulnerabilities value) { this.exampleInstanceRelatedVulnerabilities = value; } public boolean equals(ObjectLocator thisLocator, ObjectLocator thatLocator, Object object, EqualsStrategy strategy) { if (!(object instanceof AttackPattern.ExamplesInstances.ExampleInstance)) { return false; } if (this == object) { return true; } final AttackPattern.ExamplesInstances.ExampleInstance that = ((AttackPattern.ExamplesInstances.ExampleInstance) object); { StructuredTextType lhsExampleInstanceDescription; lhsExampleInstanceDescription = this .getExampleInstanceDescription(); StructuredTextType rhsExampleInstanceDescription; rhsExampleInstanceDescription = that .getExampleInstanceDescription(); if (!strategy.equals(LocatorUtils.property(thisLocator, "exampleInstanceDescription", lhsExampleInstanceDescription), LocatorUtils .property(thatLocator, "exampleInstanceDescription", rhsExampleInstanceDescription), lhsExampleInstanceDescription, rhsExampleInstanceDescription)) { return false; } } { AttackPattern.ExamplesInstances.ExampleInstance.ExampleInstanceRelatedVulnerabilities lhsExampleInstanceRelatedVulnerabilities; lhsExampleInstanceRelatedVulnerabilities = this .getExampleInstanceRelatedVulnerabilities(); AttackPattern.ExamplesInstances.ExampleInstance.ExampleInstanceRelatedVulnerabilities rhsExampleInstanceRelatedVulnerabilities; rhsExampleInstanceRelatedVulnerabilities = that .getExampleInstanceRelatedVulnerabilities(); if (!strategy.equals(LocatorUtils.property(thisLocator, "exampleInstanceRelatedVulnerabilities", lhsExampleInstanceRelatedVulnerabilities), LocatorUtils.property(thatLocator, "exampleInstanceRelatedVulnerabilities", rhsExampleInstanceRelatedVulnerabilities), lhsExampleInstanceRelatedVulnerabilities, rhsExampleInstanceRelatedVulnerabilities)) { 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; { StructuredTextType theExampleInstanceDescription; theExampleInstanceDescription = this .getExampleInstanceDescription(); currentHashCode = strategy.hashCode(LocatorUtils.property( locator, "exampleInstanceDescription", theExampleInstanceDescription), currentHashCode, theExampleInstanceDescription); } { AttackPattern.ExamplesInstances.ExampleInstance.ExampleInstanceRelatedVulnerabilities theExampleInstanceRelatedVulnerabilities; theExampleInstanceRelatedVulnerabilities = this .getExampleInstanceRelatedVulnerabilities(); currentHashCode = strategy.hashCode(LocatorUtils.property( locator, "exampleInstanceRelatedVulnerabilities", theExampleInstanceRelatedVulnerabilities), currentHashCode, theExampleInstanceRelatedVulnerabilities); } return currentHashCode; } public int hashCode() { final HashCodeStrategy strategy = JAXBHashCodeStrategy.INSTANCE; return this.hashCode(null, strategy); } public AttackPattern.ExamplesInstances.ExampleInstance withExampleInstanceDescription( StructuredTextType value) { setExampleInstanceDescription(value); return this; } public AttackPattern.ExamplesInstances.ExampleInstance withExampleInstanceRelatedVulnerabilities( AttackPattern.ExamplesInstances.ExampleInstance.ExampleInstanceRelatedVulnerabilities value) { setExampleInstanceRelatedVulnerabilities(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) { { StructuredTextType theExampleInstanceDescription; theExampleInstanceDescription = this .getExampleInstanceDescription(); strategy.appendField(locator, this, "exampleInstanceDescription", buffer, theExampleInstanceDescription); } { AttackPattern.ExamplesInstances.ExampleInstance.ExampleInstanceRelatedVulnerabilities theExampleInstanceRelatedVulnerabilities; theExampleInstanceRelatedVulnerabilities = this .getExampleInstanceRelatedVulnerabilities(); strategy.appendField(locator, this, "exampleInstanceRelatedVulnerabilities", buffer, theExampleInstanceRelatedVulnerabilities); } return buffer; } /** *

Java class for anonymous complex type. * *

The following schema fragment specifies the expected content contained within this class. * *

			 * <complexType>
			 *   <complexContent>
			 *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
			 *       <sequence>
			 *         <element name="Example-Instance_Related_Vulnerability" type="{http://capec.mitre.org/capec-2}Structured_Text_Type" maxOccurs="unbounded"/>
			 *       </sequence>
			 *     </restriction>
			 *   </complexContent>
			 * </complexType>
			 * 
* * */ @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "", propOrder = { "exampleInstanceRelatedVulnerabilities" }) public static class ExampleInstanceRelatedVulnerabilities implements Equals, HashCode, ToString { @XmlElement(name = "Example-Instance_Related_Vulnerability", required = true) protected List exampleInstanceRelatedVulnerabilities; /** * Default no-arg constructor * */ public ExampleInstanceRelatedVulnerabilities() { super(); } /** * Fully-initialising value constructor * */ public ExampleInstanceRelatedVulnerabilities( final List exampleInstanceRelatedVulnerabilities) { this.exampleInstanceRelatedVulnerabilities = exampleInstanceRelatedVulnerabilities; } /** * Gets the value of the exampleInstanceRelatedVulnerabilities property. * *

* 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 set method for the exampleInstanceRelatedVulnerabilities property. * *

* For example, to add a new item, do as follows: *

				 *    getExampleInstanceRelatedVulnerabilities().add(newItem);
				 * 
* * *

* Objects of the following type(s) are allowed in the list * {@link StructuredTextType } * * */ public List getExampleInstanceRelatedVulnerabilities() { if (exampleInstanceRelatedVulnerabilities == null) { exampleInstanceRelatedVulnerabilities = new ArrayList(); } return this.exampleInstanceRelatedVulnerabilities; } public boolean equals(ObjectLocator thisLocator, ObjectLocator thatLocator, Object object, EqualsStrategy strategy) { if (!(object instanceof AttackPattern.ExamplesInstances.ExampleInstance.ExampleInstanceRelatedVulnerabilities)) { return false; } if (this == object) { return true; } final AttackPattern.ExamplesInstances.ExampleInstance.ExampleInstanceRelatedVulnerabilities that = ((AttackPattern.ExamplesInstances.ExampleInstance.ExampleInstanceRelatedVulnerabilities) object); { List lhsExampleInstanceRelatedVulnerabilities; lhsExampleInstanceRelatedVulnerabilities = (((this.exampleInstanceRelatedVulnerabilities != null) && (!this.exampleInstanceRelatedVulnerabilities .isEmpty())) ? this .getExampleInstanceRelatedVulnerabilities() : null); List rhsExampleInstanceRelatedVulnerabilities; rhsExampleInstanceRelatedVulnerabilities = (((that.exampleInstanceRelatedVulnerabilities != null) && (!that.exampleInstanceRelatedVulnerabilities .isEmpty())) ? that .getExampleInstanceRelatedVulnerabilities() : null); if (!strategy .equals(LocatorUtils .property( thisLocator, "exampleInstanceRelatedVulnerabilities", lhsExampleInstanceRelatedVulnerabilities), LocatorUtils .property( thatLocator, "exampleInstanceRelatedVulnerabilities", rhsExampleInstanceRelatedVulnerabilities), lhsExampleInstanceRelatedVulnerabilities, rhsExampleInstanceRelatedVulnerabilities)) { 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; { List theExampleInstanceRelatedVulnerabilities; theExampleInstanceRelatedVulnerabilities = (((this.exampleInstanceRelatedVulnerabilities != null) && (!this.exampleInstanceRelatedVulnerabilities .isEmpty())) ? this .getExampleInstanceRelatedVulnerabilities() : null); currentHashCode = strategy .hashCode( LocatorUtils .property( locator, "exampleInstanceRelatedVulnerabilities", theExampleInstanceRelatedVulnerabilities), currentHashCode, theExampleInstanceRelatedVulnerabilities); } return currentHashCode; } public int hashCode() { final HashCodeStrategy strategy = JAXBHashCodeStrategy.INSTANCE; return this.hashCode(null, strategy); } public AttackPattern.ExamplesInstances.ExampleInstance.ExampleInstanceRelatedVulnerabilities withExampleInstanceRelatedVulnerabilities( StructuredTextType... values) { if (values != null) { for (StructuredTextType value : values) { getExampleInstanceRelatedVulnerabilities().add( value); } } return this; } public AttackPattern.ExamplesInstances.ExampleInstance.ExampleInstanceRelatedVulnerabilities withExampleInstanceRelatedVulnerabilities( Collection values) { if (values != null) { getExampleInstanceRelatedVulnerabilities().addAll( values); } 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) { { List theExampleInstanceRelatedVulnerabilities; theExampleInstanceRelatedVulnerabilities = (((this.exampleInstanceRelatedVulnerabilities != null) && (!this.exampleInstanceRelatedVulnerabilities .isEmpty())) ? this .getExampleInstanceRelatedVulnerabilities() : null); strategy.appendField(locator, this, "exampleInstanceRelatedVulnerabilities", buffer, theExampleInstanceRelatedVulnerabilities); } return buffer; } } } } /** *

Java class for anonymous complex type. * *

The following schema fragment specifies the expected content contained within this class. * *

	 * <complexType>
	 *   <complexContent>
	 *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
	 *       <sequence>
	 *         <element name="Indicator-Warning_of_Attack" maxOccurs="unbounded">
	 *           <complexType>
	 *             <complexContent>
	 *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
	 *                 <sequence>
	 *                   <element name="Description" type="{http://capec.mitre.org/capec-2}Structured_Text_Type" minOccurs="0"/>
	 *                   <element name="Observables" type="{http://cybox.mitre.org/cybox-2}ObservablesType" minOccurs="0"/>
	 *                 </sequence>
	 *               </restriction>
	 *             </complexContent>
	 *           </complexType>
	 *         </element>
	 *       </sequence>
	 *     </restriction>
	 *   </complexContent>
	 * </complexType>
	 * 
* * */ @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "", propOrder = { "indicatorWarningOfAttacks" }) public static class IndicatorsWarningsOfAttack implements Equals, HashCode, ToString { @XmlElement(name = "Indicator-Warning_of_Attack", required = true) protected List indicatorWarningOfAttacks; /** * Default no-arg constructor * */ public IndicatorsWarningsOfAttack() { super(); } /** * Fully-initialising value constructor * */ public IndicatorsWarningsOfAttack( final List indicatorWarningOfAttacks) { this.indicatorWarningOfAttacks = indicatorWarningOfAttacks; } /** * Gets the value of the indicatorWarningOfAttacks property. * *

* 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 set method for the indicatorWarningOfAttacks property. * *

* For example, to add a new item, do as follows: *

		 *    getIndicatorWarningOfAttacks().add(newItem);
		 * 
* * *

* Objects of the following type(s) are allowed in the list * {@link AttackPattern.IndicatorsWarningsOfAttack.IndicatorWarningOfAttack } * * */ public List getIndicatorWarningOfAttacks() { if (indicatorWarningOfAttacks == null) { indicatorWarningOfAttacks = new ArrayList(); } return this.indicatorWarningOfAttacks; } public boolean equals(ObjectLocator thisLocator, ObjectLocator thatLocator, Object object, EqualsStrategy strategy) { if (!(object instanceof AttackPattern.IndicatorsWarningsOfAttack)) { return false; } if (this == object) { return true; } final AttackPattern.IndicatorsWarningsOfAttack that = ((AttackPattern.IndicatorsWarningsOfAttack) object); { List lhsIndicatorWarningOfAttacks; lhsIndicatorWarningOfAttacks = (((this.indicatorWarningOfAttacks != null) && (!this.indicatorWarningOfAttacks .isEmpty())) ? this.getIndicatorWarningOfAttacks() : null); List rhsIndicatorWarningOfAttacks; rhsIndicatorWarningOfAttacks = (((that.indicatorWarningOfAttacks != null) && (!that.indicatorWarningOfAttacks .isEmpty())) ? that.getIndicatorWarningOfAttacks() : null); if (!strategy.equals(LocatorUtils.property(thisLocator, "indicatorWarningOfAttacks", lhsIndicatorWarningOfAttacks), LocatorUtils.property( thatLocator, "indicatorWarningOfAttacks", rhsIndicatorWarningOfAttacks), lhsIndicatorWarningOfAttacks, rhsIndicatorWarningOfAttacks)) { 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; { List theIndicatorWarningOfAttacks; theIndicatorWarningOfAttacks = (((this.indicatorWarningOfAttacks != null) && (!this.indicatorWarningOfAttacks .isEmpty())) ? this.getIndicatorWarningOfAttacks() : null); currentHashCode = strategy.hashCode(LocatorUtils.property( locator, "indicatorWarningOfAttacks", theIndicatorWarningOfAttacks), currentHashCode, theIndicatorWarningOfAttacks); } return currentHashCode; } public int hashCode() { final HashCodeStrategy strategy = JAXBHashCodeStrategy.INSTANCE; return this.hashCode(null, strategy); } public AttackPattern.IndicatorsWarningsOfAttack withIndicatorWarningOfAttacks( AttackPattern.IndicatorsWarningsOfAttack.IndicatorWarningOfAttack... values) { if (values != null) { for (AttackPattern.IndicatorsWarningsOfAttack.IndicatorWarningOfAttack value : values) { getIndicatorWarningOfAttacks().add(value); } } return this; } public AttackPattern.IndicatorsWarningsOfAttack withIndicatorWarningOfAttacks( Collection values) { if (values != null) { getIndicatorWarningOfAttacks().addAll(values); } 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) { { List theIndicatorWarningOfAttacks; theIndicatorWarningOfAttacks = (((this.indicatorWarningOfAttacks != null) && (!this.indicatorWarningOfAttacks .isEmpty())) ? this.getIndicatorWarningOfAttacks() : null); strategy.appendField(locator, this, "indicatorWarningOfAttacks", buffer, theIndicatorWarningOfAttacks); } return buffer; } /** *

Java class for anonymous complex type. * *

The following schema fragment specifies the expected content contained within this class. * *

		 * <complexType>
		 *   <complexContent>
		 *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
		 *       <sequence>
		 *         <element name="Description" type="{http://capec.mitre.org/capec-2}Structured_Text_Type" minOccurs="0"/>
		 *         <element name="Observables" type="{http://cybox.mitre.org/cybox-2}ObservablesType" minOccurs="0"/>
		 *       </sequence>
		 *     </restriction>
		 *   </complexContent>
		 * </complexType>
		 * 
* * */ @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "", propOrder = { "description", "observables" }) public static class IndicatorWarningOfAttack implements Equals, HashCode, ToString { @XmlElement(name = "Description") protected StructuredTextType description; @XmlElement(name = "Observables") protected Observables observables; /** * Default no-arg constructor * */ public IndicatorWarningOfAttack() { super(); } /** * Fully-initialising value constructor * */ public IndicatorWarningOfAttack( final StructuredTextType description, final Observables observables) { this.description = description; this.observables = observables; } /** * Gets the value of the description property. * * @return * possible object is * {@link StructuredTextType } * */ public StructuredTextType getDescription() { return description; } /** * Sets the value of the description property. * * @param value * allowed object is * {@link StructuredTextType } * */ public void setDescription(StructuredTextType value) { this.description = value; } /** * Gets the value of the observables property. * * @return * possible object is * {@link Observables } * */ public Observables getObservables() { return observables; } /** * Sets the value of the observables property. * * @param value * allowed object is * {@link Observables } * */ public void setObservables(Observables value) { this.observables = value; } public boolean equals(ObjectLocator thisLocator, ObjectLocator thatLocator, Object object, EqualsStrategy strategy) { if (!(object instanceof AttackPattern.IndicatorsWarningsOfAttack.IndicatorWarningOfAttack)) { return false; } if (this == object) { return true; } final AttackPattern.IndicatorsWarningsOfAttack.IndicatorWarningOfAttack that = ((AttackPattern.IndicatorsWarningsOfAttack.IndicatorWarningOfAttack) object); { StructuredTextType lhsDescription; lhsDescription = this.getDescription(); StructuredTextType rhsDescription; rhsDescription = that.getDescription(); if (!strategy.equals(LocatorUtils.property(thisLocator, "description", lhsDescription), LocatorUtils .property(thatLocator, "description", rhsDescription), lhsDescription, rhsDescription)) { return false; } } { Observables lhsObservables; lhsObservables = this.getObservables(); Observables rhsObservables; rhsObservables = that.getObservables(); if (!strategy.equals(LocatorUtils.property(thisLocator, "observables", lhsObservables), LocatorUtils .property(thatLocator, "observables", rhsObservables), lhsObservables, rhsObservables)) { 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; { StructuredTextType theDescription; theDescription = this.getDescription(); currentHashCode = strategy.hashCode(LocatorUtils.property( locator, "description", theDescription), currentHashCode, theDescription); } { Observables theObservables; theObservables = this.getObservables(); currentHashCode = strategy.hashCode(LocatorUtils.property( locator, "observables", theObservables), currentHashCode, theObservables); } return currentHashCode; } public int hashCode() { final HashCodeStrategy strategy = JAXBHashCodeStrategy.INSTANCE; return this.hashCode(null, strategy); } public AttackPattern.IndicatorsWarningsOfAttack.IndicatorWarningOfAttack withDescription( StructuredTextType value) { setDescription(value); return this; } public AttackPattern.IndicatorsWarningsOfAttack.IndicatorWarningOfAttack withObservables( Observables value) { setObservables(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) { { StructuredTextType theDescription; theDescription = this.getDescription(); strategy.appendField(locator, this, "description", buffer, theDescription); } { Observables theObservables; theObservables = this.getObservables(); strategy.appendField(locator, this, "observables", buffer, theObservables); } return buffer; } } } /** *

Java class for anonymous complex type. * *

The following schema fragment specifies the expected content contained within this class. * *

	 * <complexType>
	 *   <complexContent>
	 *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
	 *       <sequence>
	 *         <element name="Keyword" type="{http://www.w3.org/2001/XMLSchema}string" maxOccurs="unbounded"/>
	 *       </sequence>
	 *     </restriction>
	 *   </complexContent>
	 * </complexType>
	 * 
* * */ @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "", propOrder = { "keywords" }) public static class Keywords implements Equals, HashCode, ToString { @XmlElement(name = "Keyword", required = true) protected List keywords; /** * Default no-arg constructor * */ public Keywords() { super(); } /** * Fully-initialising value constructor * */ public Keywords(final List keywords) { this.keywords = keywords; } /** * Gets the value of the keywords property. * *

* 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 set method for the keywords property. * *

* For example, to add a new item, do as follows: *

		 *    getKeywords().add(newItem);
		 * 
* * *

* Objects of the following type(s) are allowed in the list * {@link String } * * */ public List getKeywords() { if (keywords == null) { keywords = new ArrayList(); } return this.keywords; } public boolean equals(ObjectLocator thisLocator, ObjectLocator thatLocator, Object object, EqualsStrategy strategy) { if (!(object instanceof AttackPattern.Keywords)) { return false; } if (this == object) { return true; } final AttackPattern.Keywords that = ((AttackPattern.Keywords) object); { List lhsKeywords; lhsKeywords = (((this.keywords != null) && (!this.keywords .isEmpty())) ? this.getKeywords() : null); List rhsKeywords; rhsKeywords = (((that.keywords != null) && (!that.keywords .isEmpty())) ? that.getKeywords() : null); if (!strategy.equals(LocatorUtils.property(thisLocator, "keywords", lhsKeywords), LocatorUtils.property( thatLocator, "keywords", rhsKeywords), lhsKeywords, rhsKeywords)) { 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; { List theKeywords; theKeywords = (((this.keywords != null) && (!this.keywords .isEmpty())) ? this.getKeywords() : null); currentHashCode = strategy .hashCode(LocatorUtils.property(locator, "keywords", theKeywords), currentHashCode, theKeywords); } return currentHashCode; } public int hashCode() { final HashCodeStrategy strategy = JAXBHashCodeStrategy.INSTANCE; return this.hashCode(null, strategy); } public AttackPattern.Keywords withKeywords(String... values) { if (values != null) { for (String value : values) { getKeywords().add(value); } } return this; } public AttackPattern.Keywords withKeywords(Collection values) { if (values != null) { getKeywords().addAll(values); } 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) { { List theKeywords; theKeywords = (((this.keywords != null) && (!this.keywords .isEmpty())) ? this.getKeywords() : null); strategy.appendField(locator, this, "keywords", buffer, theKeywords); } return buffer; } } /** *

Java class for anonymous complex type. * *

The following schema fragment specifies the expected content contained within this class. * *

	 * <complexType>
	 *   <complexContent>
	 *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
	 *       <sequence>
	 *         <element name="Method_of_Attack" maxOccurs="unbounded" minOccurs="0">
	 *           <simpleType>
	 *             <restriction base="{http://www.w3.org/2001/XMLSchema}string">
	 *               <whiteSpace value="collapse"/>
	 *               <enumeration value="Injection"/>
	 *               <enumeration value="Modification of Resources"/>
	 *               <enumeration value="Protocol Manipulation"/>
	 *               <enumeration value="Analysis"/>
	 *               <enumeration value="API Abuse"/>
	 *               <enumeration value="Brute Force"/>
	 *               <enumeration value="Flooding"/>
	 *               <enumeration value="Time and State"/>
	 *               <enumeration value="Spoofing"/>
	 *               <enumeration value="Social Engineering"/>
	 *             </restriction>
	 *           </simpleType>
	 *         </element>
	 *       </sequence>
	 *     </restriction>
	 *   </complexContent>
	 * </complexType>
	 * 
* * */ @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "", propOrder = { "methodOfAttacks" }) public static class MethodsOfAttack implements Equals, HashCode, ToString { @XmlElement(name = "Method_of_Attack") protected List methodOfAttacks; /** * Default no-arg constructor * */ public MethodsOfAttack() { super(); } /** * Fully-initialising value constructor * */ public MethodsOfAttack(final List methodOfAttacks) { this.methodOfAttacks = methodOfAttacks; } /** * Gets the value of the methodOfAttacks property. * *

* 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 set method for the methodOfAttacks property. * *

* For example, to add a new item, do as follows: *

		 *    getMethodOfAttacks().add(newItem);
		 * 
* * *

* Objects of the following type(s) are allowed in the list * {@link String } * * */ public List getMethodOfAttacks() { if (methodOfAttacks == null) { methodOfAttacks = new ArrayList(); } return this.methodOfAttacks; } public boolean equals(ObjectLocator thisLocator, ObjectLocator thatLocator, Object object, EqualsStrategy strategy) { if (!(object instanceof AttackPattern.MethodsOfAttack)) { return false; } if (this == object) { return true; } final AttackPattern.MethodsOfAttack that = ((AttackPattern.MethodsOfAttack) object); { List lhsMethodOfAttacks; lhsMethodOfAttacks = (((this.methodOfAttacks != null) && (!this.methodOfAttacks .isEmpty())) ? this.getMethodOfAttacks() : null); List rhsMethodOfAttacks; rhsMethodOfAttacks = (((that.methodOfAttacks != null) && (!that.methodOfAttacks .isEmpty())) ? that.getMethodOfAttacks() : null); if (!strategy.equals(LocatorUtils.property(thisLocator, "methodOfAttacks", lhsMethodOfAttacks), LocatorUtils .property(thatLocator, "methodOfAttacks", rhsMethodOfAttacks), lhsMethodOfAttacks, rhsMethodOfAttacks)) { 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; { List theMethodOfAttacks; theMethodOfAttacks = (((this.methodOfAttacks != null) && (!this.methodOfAttacks .isEmpty())) ? this.getMethodOfAttacks() : null); currentHashCode = strategy.hashCode(LocatorUtils.property( locator, "methodOfAttacks", theMethodOfAttacks), currentHashCode, theMethodOfAttacks); } return currentHashCode; } public int hashCode() { final HashCodeStrategy strategy = JAXBHashCodeStrategy.INSTANCE; return this.hashCode(null, strategy); } public AttackPattern.MethodsOfAttack withMethodOfAttacks( String... values) { if (values != null) { for (String value : values) { getMethodOfAttacks().add(value); } } return this; } public AttackPattern.MethodsOfAttack withMethodOfAttacks( Collection values) { if (values != null) { getMethodOfAttacks().addAll(values); } 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) { { List theMethodOfAttacks; theMethodOfAttacks = (((this.methodOfAttacks != null) && (!this.methodOfAttacks .isEmpty())) ? this.getMethodOfAttacks() : null); strategy.appendField(locator, this, "methodOfAttacks", buffer, theMethodOfAttacks); } return buffer; } } /** *

Java class for anonymous complex type. * *

The following schema fragment specifies the expected content contained within this class. * *

	 * <complexType>
	 *   <complexContent>
	 *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
	 *       <sequence>
	 *         <element name="Obfuscation_Technique" maxOccurs="unbounded">
	 *           <complexType>
	 *             <complexContent>
	 *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
	 *                 <sequence>
	 *                   <element name="Description" type="{http://capec.mitre.org/capec-2}Structured_Text_Type" minOccurs="0"/>
	 *                   <element name="Observables" type="{http://cybox.mitre.org/cybox-2}ObservablesType" minOccurs="0"/>
	 *                 </sequence>
	 *               </restriction>
	 *             </complexContent>
	 *           </complexType>
	 *         </element>
	 *       </sequence>
	 *     </restriction>
	 *   </complexContent>
	 * </complexType>
	 * 
* * */ @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "", propOrder = { "obfuscationTechniques" }) public static class ObfuscationTechniques implements Equals, HashCode, ToString { @XmlElement(name = "Obfuscation_Technique", required = true) protected List obfuscationTechniques; /** * Default no-arg constructor * */ public ObfuscationTechniques() { super(); } /** * Fully-initialising value constructor * */ public ObfuscationTechniques( final List obfuscationTechniques) { this.obfuscationTechniques = obfuscationTechniques; } /** * Gets the value of the obfuscationTechniques property. * *

* 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 set method for the obfuscationTechniques property. * *

* For example, to add a new item, do as follows: *

		 *    getObfuscationTechniques().add(newItem);
		 * 
* * *

* Objects of the following type(s) are allowed in the list * {@link AttackPattern.ObfuscationTechniques.ObfuscationTechnique } * * */ public List getObfuscationTechniques() { if (obfuscationTechniques == null) { obfuscationTechniques = new ArrayList(); } return this.obfuscationTechniques; } public boolean equals(ObjectLocator thisLocator, ObjectLocator thatLocator, Object object, EqualsStrategy strategy) { if (!(object instanceof AttackPattern.ObfuscationTechniques)) { return false; } if (this == object) { return true; } final AttackPattern.ObfuscationTechniques that = ((AttackPattern.ObfuscationTechniques) object); { List lhsObfuscationTechniques; lhsObfuscationTechniques = (((this.obfuscationTechniques != null) && (!this.obfuscationTechniques .isEmpty())) ? this.getObfuscationTechniques() : null); List rhsObfuscationTechniques; rhsObfuscationTechniques = (((that.obfuscationTechniques != null) && (!that.obfuscationTechniques .isEmpty())) ? that.getObfuscationTechniques() : null); if (!strategy.equals(LocatorUtils.property(thisLocator, "obfuscationTechniques", lhsObfuscationTechniques), LocatorUtils.property(thatLocator, "obfuscationTechniques", rhsObfuscationTechniques), lhsObfuscationTechniques, rhsObfuscationTechniques)) { 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; { List theObfuscationTechniques; theObfuscationTechniques = (((this.obfuscationTechniques != null) && (!this.obfuscationTechniques .isEmpty())) ? this.getObfuscationTechniques() : null); currentHashCode = strategy.hashCode(LocatorUtils.property( locator, "obfuscationTechniques", theObfuscationTechniques), currentHashCode, theObfuscationTechniques); } return currentHashCode; } public int hashCode() { final HashCodeStrategy strategy = JAXBHashCodeStrategy.INSTANCE; return this.hashCode(null, strategy); } public AttackPattern.ObfuscationTechniques withObfuscationTechniques( AttackPattern.ObfuscationTechniques.ObfuscationTechnique... values) { if (values != null) { for (AttackPattern.ObfuscationTechniques.ObfuscationTechnique value : values) { getObfuscationTechniques().add(value); } } return this; } public AttackPattern.ObfuscationTechniques withObfuscationTechniques( Collection values) { if (values != null) { getObfuscationTechniques().addAll(values); } 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) { { List theObfuscationTechniques; theObfuscationTechniques = (((this.obfuscationTechniques != null) && (!this.obfuscationTechniques .isEmpty())) ? this.getObfuscationTechniques() : null); strategy.appendField(locator, this, "obfuscationTechniques", buffer, theObfuscationTechniques); } return buffer; } /** *

Java class for anonymous complex type. * *

The following schema fragment specifies the expected content contained within this class. * *

		 * <complexType>
		 *   <complexContent>
		 *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
		 *       <sequence>
		 *         <element name="Description" type="{http://capec.mitre.org/capec-2}Structured_Text_Type" minOccurs="0"/>
		 *         <element name="Observables" type="{http://cybox.mitre.org/cybox-2}ObservablesType" minOccurs="0"/>
		 *       </sequence>
		 *     </restriction>
		 *   </complexContent>
		 * </complexType>
		 * 
* * */ @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "", propOrder = { "description", "observables" }) public static class ObfuscationTechnique implements Equals, HashCode, ToString { @XmlElement(name = "Description") protected StructuredTextType description; @XmlElement(name = "Observables") protected Observables observables; /** * Default no-arg constructor * */ public ObfuscationTechnique() { super(); } /** * Fully-initialising value constructor * */ public ObfuscationTechnique(final StructuredTextType description, final Observables observables) { this.description = description; this.observables = observables; } /** * Gets the value of the description property. * * @return * possible object is * {@link StructuredTextType } * */ public StructuredTextType getDescription() { return description; } /** * Sets the value of the description property. * * @param value * allowed object is * {@link StructuredTextType } * */ public void setDescription(StructuredTextType value) { this.description = value; } /** * Gets the value of the observables property. * * @return * possible object is * {@link Observables } * */ public Observables getObservables() { return observables; } /** * Sets the value of the observables property. * * @param value * allowed object is * {@link Observables } * */ public void setObservables(Observables value) { this.observables = value; } public boolean equals(ObjectLocator thisLocator, ObjectLocator thatLocator, Object object, EqualsStrategy strategy) { if (!(object instanceof AttackPattern.ObfuscationTechniques.ObfuscationTechnique)) { return false; } if (this == object) { return true; } final AttackPattern.ObfuscationTechniques.ObfuscationTechnique that = ((AttackPattern.ObfuscationTechniques.ObfuscationTechnique) object); { StructuredTextType lhsDescription; lhsDescription = this.getDescription(); StructuredTextType rhsDescription; rhsDescription = that.getDescription(); if (!strategy.equals(LocatorUtils.property(thisLocator, "description", lhsDescription), LocatorUtils .property(thatLocator, "description", rhsDescription), lhsDescription, rhsDescription)) { return false; } } { Observables lhsObservables; lhsObservables = this.getObservables(); Observables rhsObservables; rhsObservables = that.getObservables(); if (!strategy.equals(LocatorUtils.property(thisLocator, "observables", lhsObservables), LocatorUtils .property(thatLocator, "observables", rhsObservables), lhsObservables, rhsObservables)) { 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; { StructuredTextType theDescription; theDescription = this.getDescription(); currentHashCode = strategy.hashCode(LocatorUtils.property( locator, "description", theDescription), currentHashCode, theDescription); } { Observables theObservables; theObservables = this.getObservables(); currentHashCode = strategy.hashCode(LocatorUtils.property( locator, "observables", theObservables), currentHashCode, theObservables); } return currentHashCode; } public int hashCode() { final HashCodeStrategy strategy = JAXBHashCodeStrategy.INSTANCE; return this.hashCode(null, strategy); } public AttackPattern.ObfuscationTechniques.ObfuscationTechnique withDescription( StructuredTextType value) { setDescription(value); return this; } public AttackPattern.ObfuscationTechniques.ObfuscationTechnique withObservables( Observables value) { setObservables(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) { { StructuredTextType theDescription; theDescription = this.getDescription(); strategy.appendField(locator, this, "description", buffer, theDescription); } { Observables theObservables; theObservables = this.getObservables(); strategy.appendField(locator, this, "observables", buffer, theObservables); } return buffer; } } } /** *

Java class for anonymous complex type. * *

The following schema fragment specifies the expected content contained within this class. * *

	 * <complexType>
	 *   <complexContent>
	 *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
	 *       <sequence>
	 *         <element name="Description" type="{http://capec.mitre.org/capec-2}Structured_Text_Type" minOccurs="0"/>
	 *         <element name="Observables" type="{http://cybox.mitre.org/cybox-2}ObservablesType" minOccurs="0"/>
	 *       </sequence>
	 *     </restriction>
	 *   </complexContent>
	 * </complexType>
	 * 
* * */ @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "", propOrder = { "description", "observables" }) public static class PayloadActivationImpact implements Equals, HashCode, ToString { @XmlElement(name = "Description") protected StructuredTextType description; @XmlElement(name = "Observables") protected Observables observables; /** * Default no-arg constructor * */ public PayloadActivationImpact() { super(); } /** * Fully-initialising value constructor * */ public PayloadActivationImpact(final StructuredTextType description, final Observables observables) { this.description = description; this.observables = observables; } /** * Gets the value of the description property. * * @return * possible object is * {@link StructuredTextType } * */ public StructuredTextType getDescription() { return description; } /** * Sets the value of the description property. * * @param value * allowed object is * {@link StructuredTextType } * */ public void setDescription(StructuredTextType value) { this.description = value; } /** * Gets the value of the observables property. * * @return * possible object is * {@link Observables } * */ public Observables getObservables() { return observables; } /** * Sets the value of the observables property. * * @param value * allowed object is * {@link Observables } * */ public void setObservables(Observables value) { this.observables = value; } public boolean equals(ObjectLocator thisLocator, ObjectLocator thatLocator, Object object, EqualsStrategy strategy) { if (!(object instanceof AttackPattern.PayloadActivationImpact)) { return false; } if (this == object) { return true; } final AttackPattern.PayloadActivationImpact that = ((AttackPattern.PayloadActivationImpact) object); { StructuredTextType lhsDescription; lhsDescription = this.getDescription(); StructuredTextType rhsDescription; rhsDescription = that.getDescription(); if (!strategy.equals(LocatorUtils.property(thisLocator, "description", lhsDescription), LocatorUtils.property( thatLocator, "description", rhsDescription), lhsDescription, rhsDescription)) { return false; } } { Observables lhsObservables; lhsObservables = this.getObservables(); Observables rhsObservables; rhsObservables = that.getObservables(); if (!strategy.equals(LocatorUtils.property(thisLocator, "observables", lhsObservables), LocatorUtils.property( thatLocator, "observables", rhsObservables), lhsObservables, rhsObservables)) { 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; { StructuredTextType theDescription; theDescription = this.getDescription(); currentHashCode = strategy.hashCode(LocatorUtils.property( locator, "description", theDescription), currentHashCode, theDescription); } { Observables theObservables; theObservables = this.getObservables(); currentHashCode = strategy.hashCode(LocatorUtils.property( locator, "observables", theObservables), currentHashCode, theObservables); } return currentHashCode; } public int hashCode() { final HashCodeStrategy strategy = JAXBHashCodeStrategy.INSTANCE; return this.hashCode(null, strategy); } public AttackPattern.PayloadActivationImpact withDescription( StructuredTextType value) { setDescription(value); return this; } public AttackPattern.PayloadActivationImpact withObservables( Observables value) { setObservables(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) { { StructuredTextType theDescription; theDescription = this.getDescription(); strategy.appendField(locator, this, "description", buffer, theDescription); } { Observables theObservables; theObservables = this.getObservables(); strategy.appendField(locator, this, "observables", buffer, theObservables); } return buffer; } } /** *

Java class for anonymous complex type. * *

The following schema fragment specifies the expected content contained within this class. * *

	 * <complexType>
	 *   <complexContent>
	 *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
	 *       <sequence>
	 *         <element name="Probing_Technique" maxOccurs="unbounded">
	 *           <complexType>
	 *             <complexContent>
	 *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
	 *                 <sequence>
	 *                   <element name="Description" type="{http://capec.mitre.org/capec-2}Structured_Text_Type" minOccurs="0"/>
	 *                   <element name="Observables" type="{http://cybox.mitre.org/cybox-2}ObservablesType" minOccurs="0"/>
	 *                 </sequence>
	 *               </restriction>
	 *             </complexContent>
	 *           </complexType>
	 *         </element>
	 *       </sequence>
	 *     </restriction>
	 *   </complexContent>
	 * </complexType>
	 * 
* * */ @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "", propOrder = { "probingTechniques" }) public static class ProbingTechniques implements Equals, HashCode, ToString { @XmlElement(name = "Probing_Technique", required = true) protected List probingTechniques; /** * Default no-arg constructor * */ public ProbingTechniques() { super(); } /** * Fully-initialising value constructor * */ public ProbingTechniques( final List probingTechniques) { this.probingTechniques = probingTechniques; } /** * Gets the value of the probingTechniques property. * *

* 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 set method for the probingTechniques property. * *

* For example, to add a new item, do as follows: *

		 *    getProbingTechniques().add(newItem);
		 * 
* * *

* Objects of the following type(s) are allowed in the list * {@link AttackPattern.ProbingTechniques.ProbingTechnique } * * */ public List getProbingTechniques() { if (probingTechniques == null) { probingTechniques = new ArrayList(); } return this.probingTechniques; } public boolean equals(ObjectLocator thisLocator, ObjectLocator thatLocator, Object object, EqualsStrategy strategy) { if (!(object instanceof AttackPattern.ProbingTechniques)) { return false; } if (this == object) { return true; } final AttackPattern.ProbingTechniques that = ((AttackPattern.ProbingTechniques) object); { List lhsProbingTechniques; lhsProbingTechniques = (((this.probingTechniques != null) && (!this.probingTechniques .isEmpty())) ? this.getProbingTechniques() : null); List rhsProbingTechniques; rhsProbingTechniques = (((that.probingTechniques != null) && (!that.probingTechniques .isEmpty())) ? that.getProbingTechniques() : null); if (!strategy.equals(LocatorUtils.property(thisLocator, "probingTechniques", lhsProbingTechniques), LocatorUtils.property(thatLocator, "probingTechniques", rhsProbingTechniques), lhsProbingTechniques, rhsProbingTechniques)) { 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; { List theProbingTechniques; theProbingTechniques = (((this.probingTechniques != null) && (!this.probingTechniques .isEmpty())) ? this.getProbingTechniques() : null); currentHashCode = strategy.hashCode(LocatorUtils.property( locator, "probingTechniques", theProbingTechniques), currentHashCode, theProbingTechniques); } return currentHashCode; } public int hashCode() { final HashCodeStrategy strategy = JAXBHashCodeStrategy.INSTANCE; return this.hashCode(null, strategy); } public AttackPattern.ProbingTechniques withProbingTechniques( AttackPattern.ProbingTechniques.ProbingTechnique... values) { if (values != null) { for (AttackPattern.ProbingTechniques.ProbingTechnique value : values) { getProbingTechniques().add(value); } } return this; } public AttackPattern.ProbingTechniques withProbingTechniques( Collection values) { if (values != null) { getProbingTechniques().addAll(values); } 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) { { List theProbingTechniques; theProbingTechniques = (((this.probingTechniques != null) && (!this.probingTechniques .isEmpty())) ? this.getProbingTechniques() : null); strategy.appendField(locator, this, "probingTechniques", buffer, theProbingTechniques); } return buffer; } /** *

Java class for anonymous complex type. * *

The following schema fragment specifies the expected content contained within this class. * *

		 * <complexType>
		 *   <complexContent>
		 *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
		 *       <sequence>
		 *         <element name="Description" type="{http://capec.mitre.org/capec-2}Structured_Text_Type" minOccurs="0"/>
		 *         <element name="Observables" type="{http://cybox.mitre.org/cybox-2}ObservablesType" minOccurs="0"/>
		 *       </sequence>
		 *     </restriction>
		 *   </complexContent>
		 * </complexType>
		 * 
* * */ @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "", propOrder = { "description", "observables" }) public static class ProbingTechnique implements Equals, HashCode, ToString { @XmlElement(name = "Description") protected StructuredTextType description; @XmlElement(name = "Observables") protected Observables observables; /** * Default no-arg constructor * */ public ProbingTechnique() { super(); } /** * Fully-initialising value constructor * */ public ProbingTechnique(final StructuredTextType description, final Observables observables) { this.description = description; this.observables = observables; } /** * Gets the value of the description property. * * @return * possible object is * {@link StructuredTextType } * */ public StructuredTextType getDescription() { return description; } /** * Sets the value of the description property. * * @param value * allowed object is * {@link StructuredTextType } * */ public void setDescription(StructuredTextType value) { this.description = value; } /** * Gets the value of the observables property. * * @return * possible object is * {@link Observables } * */ public Observables getObservables() { return observables; } /** * Sets the value of the observables property. * * @param value * allowed object is * {@link Observables } * */ public void setObservables(Observables value) { this.observables = value; } public boolean equals(ObjectLocator thisLocator, ObjectLocator thatLocator, Object object, EqualsStrategy strategy) { if (!(object instanceof AttackPattern.ProbingTechniques.ProbingTechnique)) { return false; } if (this == object) { return true; } final AttackPattern.ProbingTechniques.ProbingTechnique that = ((AttackPattern.ProbingTechniques.ProbingTechnique) object); { StructuredTextType lhsDescription; lhsDescription = this.getDescription(); StructuredTextType rhsDescription; rhsDescription = that.getDescription(); if (!strategy.equals(LocatorUtils.property(thisLocator, "description", lhsDescription), LocatorUtils .property(thatLocator, "description", rhsDescription), lhsDescription, rhsDescription)) { return false; } } { Observables lhsObservables; lhsObservables = this.getObservables(); Observables rhsObservables; rhsObservables = that.getObservables(); if (!strategy.equals(LocatorUtils.property(thisLocator, "observables", lhsObservables), LocatorUtils .property(thatLocator, "observables", rhsObservables), lhsObservables, rhsObservables)) { 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; { StructuredTextType theDescription; theDescription = this.getDescription(); currentHashCode = strategy.hashCode(LocatorUtils.property( locator, "description", theDescription), currentHashCode, theDescription); } { Observables theObservables; theObservables = this.getObservables(); currentHashCode = strategy.hashCode(LocatorUtils.property( locator, "observables", theObservables), currentHashCode, theObservables); } return currentHashCode; } public int hashCode() { final HashCodeStrategy strategy = JAXBHashCodeStrategy.INSTANCE; return this.hashCode(null, strategy); } public AttackPattern.ProbingTechniques.ProbingTechnique withDescription( StructuredTextType value) { setDescription(value); return this; } public AttackPattern.ProbingTechniques.ProbingTechnique withObservables( Observables value) { setObservables(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) { { StructuredTextType theDescription; theDescription = this.getDescription(); strategy.appendField(locator, this, "description", buffer, theDescription); } { Observables theObservables; theObservables = this.getObservables(); strategy.appendField(locator, this, "observables", buffer, theObservables); } return buffer; } } } /** *

Java class for anonymous complex type. * *

The following schema fragment specifies the expected content contained within this class. * *

	 * <complexType>
	 *   <complexContent>
	 *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
	 *       <sequence>
	 *         <element name="Purpose" maxOccurs="unbounded">
	 *           <simpleType>
	 *             <restriction base="{http://www.w3.org/2001/XMLSchema}string">
	 *               <whiteSpace value="collapse"/>
	 *               <enumeration value="Reconnaissance"/>
	 *               <enumeration value="Penetration"/>
	 *               <enumeration value="Exploitation"/>
	 *               <enumeration value="Obfuscation"/>
	 *             </restriction>
	 *           </simpleType>
	 *         </element>
	 *       </sequence>
	 *     </restriction>
	 *   </complexContent>
	 * </complexType>
	 * 
* * */ @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "", propOrder = { "purposes" }) public static class Purposes implements Equals, HashCode, ToString { @XmlElement(name = "Purpose", required = true) protected List purposes; /** * Default no-arg constructor * */ public Purposes() { super(); } /** * Fully-initialising value constructor * */ public Purposes(final List purposes) { this.purposes = purposes; } /** * Gets the value of the purposes property. * *

* 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 set method for the purposes property. * *

* For example, to add a new item, do as follows: *

		 *    getPurposes().add(newItem);
		 * 
* * *

* Objects of the following type(s) are allowed in the list * {@link String } * * */ public List getPurposes() { if (purposes == null) { purposes = new ArrayList(); } return this.purposes; } public boolean equals(ObjectLocator thisLocator, ObjectLocator thatLocator, Object object, EqualsStrategy strategy) { if (!(object instanceof AttackPattern.Purposes)) { return false; } if (this == object) { return true; } final AttackPattern.Purposes that = ((AttackPattern.Purposes) object); { List lhsPurposes; lhsPurposes = (((this.purposes != null) && (!this.purposes .isEmpty())) ? this.getPurposes() : null); List rhsPurposes; rhsPurposes = (((that.purposes != null) && (!that.purposes .isEmpty())) ? that.getPurposes() : null); if (!strategy.equals(LocatorUtils.property(thisLocator, "purposes", lhsPurposes), LocatorUtils.property( thatLocator, "purposes", rhsPurposes), lhsPurposes, rhsPurposes)) { 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; { List thePurposes; thePurposes = (((this.purposes != null) && (!this.purposes .isEmpty())) ? this.getPurposes() : null); currentHashCode = strategy .hashCode(LocatorUtils.property(locator, "purposes", thePurposes), currentHashCode, thePurposes); } return currentHashCode; } public int hashCode() { final HashCodeStrategy strategy = JAXBHashCodeStrategy.INSTANCE; return this.hashCode(null, strategy); } public AttackPattern.Purposes withPurposes(String... values) { if (values != null) { for (String value : values) { getPurposes().add(value); } } return this; } public AttackPattern.Purposes withPurposes(Collection values) { if (values != null) { getPurposes().addAll(values); } 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) { { List thePurposes; thePurposes = (((this.purposes != null) && (!this.purposes .isEmpty())) ? this.getPurposes() : null); strategy.appendField(locator, this, "purposes", buffer, thePurposes); } return buffer; } } /** *

Java class for anonymous complex type. * *

The following schema fragment specifies the expected content contained within this class. * *

	 * <complexType>
	 *   <complexContent>
	 *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
	 *       <sequence>
	 *         <element name="Reference" type="{http://capec.mitre.org/capec-2}Reference_Type" maxOccurs="unbounded"/>
	 *       </sequence>
	 *     </restriction>
	 *   </complexContent>
	 * </complexType>
	 * 
* * */ @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "", propOrder = { "references" }) public static class References implements Equals, HashCode, ToString { @XmlElement(name = "Reference", required = true) protected List references; /** * Default no-arg constructor * */ public References() { super(); } /** * Fully-initialising value constructor * */ public References(final List references) { this.references = references; } /** * Gets the value of the references property. * *

* 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 set method for the references property. * *

* For example, to add a new item, do as follows: *

		 *    getReferences().add(newItem);
		 * 
* * *

* Objects of the following type(s) are allowed in the list * {@link ReferenceType } * * */ public List getReferences() { if (references == null) { references = new ArrayList(); } return this.references; } public boolean equals(ObjectLocator thisLocator, ObjectLocator thatLocator, Object object, EqualsStrategy strategy) { if (!(object instanceof AttackPattern.References)) { return false; } if (this == object) { return true; } final AttackPattern.References that = ((AttackPattern.References) object); { List lhsReferences; lhsReferences = (((this.references != null) && (!this.references .isEmpty())) ? this.getReferences() : null); List rhsReferences; rhsReferences = (((that.references != null) && (!that.references .isEmpty())) ? that.getReferences() : null); if (!strategy.equals(LocatorUtils.property(thisLocator, "references", lhsReferences), LocatorUtils.property( thatLocator, "references", rhsReferences), lhsReferences, rhsReferences)) { 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; { List theReferences; theReferences = (((this.references != null) && (!this.references .isEmpty())) ? this.getReferences() : null); currentHashCode = strategy.hashCode(LocatorUtils.property( locator, "references", theReferences), currentHashCode, theReferences); } return currentHashCode; } public int hashCode() { final HashCodeStrategy strategy = JAXBHashCodeStrategy.INSTANCE; return this.hashCode(null, strategy); } public AttackPattern.References withReferences(ReferenceType... values) { if (values != null) { for (ReferenceType value : values) { getReferences().add(value); } } return this; } public AttackPattern.References withReferences( Collection values) { if (values != null) { getReferences().addAll(values); } 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) { { List theReferences; theReferences = (((this.references != null) && (!this.references .isEmpty())) ? this.getReferences() : null); strategy.appendField(locator, this, "references", buffer, theReferences); } return buffer; } } /** *

Java class for anonymous complex type. * *

The following schema fragment specifies the expected content contained within this class. * *

	 * <complexType>
	 *   <complexContent>
	 *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
	 *       <sequence>
	 *         <element name="Related_Attack_Pattern" type="{http://capec.mitre.org/capec-2}RelationshipType" maxOccurs="unbounded"/>
	 *       </sequence>
	 *     </restriction>
	 *   </complexContent>
	 * </complexType>
	 * 
* * */ @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "", propOrder = { "relatedAttackPatterns" }) public static class RelatedAttackPatterns implements Equals, HashCode, ToString { @XmlElement(name = "Related_Attack_Pattern", required = true) protected List relatedAttackPatterns; /** * Default no-arg constructor * */ public RelatedAttackPatterns() { super(); } /** * Fully-initialising value constructor * */ public RelatedAttackPatterns( final List relatedAttackPatterns) { this.relatedAttackPatterns = relatedAttackPatterns; } /** * Gets the value of the relatedAttackPatterns property. * *

* 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 set method for the relatedAttackPatterns property. * *

* For example, to add a new item, do as follows: *

		 *    getRelatedAttackPatterns().add(newItem);
		 * 
* * *

* Objects of the following type(s) are allowed in the list * {@link RelationshipType } * * */ public List getRelatedAttackPatterns() { if (relatedAttackPatterns == null) { relatedAttackPatterns = new ArrayList(); } return this.relatedAttackPatterns; } public boolean equals(ObjectLocator thisLocator, ObjectLocator thatLocator, Object object, EqualsStrategy strategy) { if (!(object instanceof AttackPattern.RelatedAttackPatterns)) { return false; } if (this == object) { return true; } final AttackPattern.RelatedAttackPatterns that = ((AttackPattern.RelatedAttackPatterns) object); { List lhsRelatedAttackPatterns; lhsRelatedAttackPatterns = (((this.relatedAttackPatterns != null) && (!this.relatedAttackPatterns .isEmpty())) ? this.getRelatedAttackPatterns() : null); List rhsRelatedAttackPatterns; rhsRelatedAttackPatterns = (((that.relatedAttackPatterns != null) && (!that.relatedAttackPatterns .isEmpty())) ? that.getRelatedAttackPatterns() : null); if (!strategy.equals(LocatorUtils.property(thisLocator, "relatedAttackPatterns", lhsRelatedAttackPatterns), LocatorUtils.property(thatLocator, "relatedAttackPatterns", rhsRelatedAttackPatterns), lhsRelatedAttackPatterns, rhsRelatedAttackPatterns)) { 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; { List theRelatedAttackPatterns; theRelatedAttackPatterns = (((this.relatedAttackPatterns != null) && (!this.relatedAttackPatterns .isEmpty())) ? this.getRelatedAttackPatterns() : null); currentHashCode = strategy.hashCode(LocatorUtils.property( locator, "relatedAttackPatterns", theRelatedAttackPatterns), currentHashCode, theRelatedAttackPatterns); } return currentHashCode; } public int hashCode() { final HashCodeStrategy strategy = JAXBHashCodeStrategy.INSTANCE; return this.hashCode(null, strategy); } public AttackPattern.RelatedAttackPatterns withRelatedAttackPatterns( RelationshipType... values) { if (values != null) { for (RelationshipType value : values) { getRelatedAttackPatterns().add(value); } } return this; } public AttackPattern.RelatedAttackPatterns withRelatedAttackPatterns( Collection values) { if (values != null) { getRelatedAttackPatterns().addAll(values); } 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) { { List theRelatedAttackPatterns; theRelatedAttackPatterns = (((this.relatedAttackPatterns != null) && (!this.relatedAttackPatterns .isEmpty())) ? this.getRelatedAttackPatterns() : null); strategy.appendField(locator, this, "relatedAttackPatterns", buffer, theRelatedAttackPatterns); } return buffer; } } /** *

Java class for anonymous complex type. * *

The following schema fragment specifies the expected content contained within this class. * *

	 * <complexType>
	 *   <complexContent>
	 *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
	 *       <sequence>
	 *         <element name="Related_Guideline" type="{http://capec.mitre.org/capec-2}Structured_Text_Type" maxOccurs="unbounded"/>
	 *       </sequence>
	 *     </restriction>
	 *   </complexContent>
	 * </complexType>
	 * 
* * */ @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "", propOrder = { "relatedGuidelines" }) public static class RelatedGuidelines implements Equals, HashCode, ToString { @XmlElement(name = "Related_Guideline", required = true) protected List relatedGuidelines; /** * Default no-arg constructor * */ public RelatedGuidelines() { super(); } /** * Fully-initialising value constructor * */ public RelatedGuidelines( final List relatedGuidelines) { this.relatedGuidelines = relatedGuidelines; } /** * Gets the value of the relatedGuidelines property. * *

* 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 set method for the relatedGuidelines property. * *

* For example, to add a new item, do as follows: *

		 *    getRelatedGuidelines().add(newItem);
		 * 
* * *

* Objects of the following type(s) are allowed in the list * {@link StructuredTextType } * * */ public List getRelatedGuidelines() { if (relatedGuidelines == null) { relatedGuidelines = new ArrayList(); } return this.relatedGuidelines; } public boolean equals(ObjectLocator thisLocator, ObjectLocator thatLocator, Object object, EqualsStrategy strategy) { if (!(object instanceof AttackPattern.RelatedGuidelines)) { return false; } if (this == object) { return true; } final AttackPattern.RelatedGuidelines that = ((AttackPattern.RelatedGuidelines) object); { List lhsRelatedGuidelines; lhsRelatedGuidelines = (((this.relatedGuidelines != null) && (!this.relatedGuidelines .isEmpty())) ? this.getRelatedGuidelines() : null); List rhsRelatedGuidelines; rhsRelatedGuidelines = (((that.relatedGuidelines != null) && (!that.relatedGuidelines .isEmpty())) ? that.getRelatedGuidelines() : null); if (!strategy.equals(LocatorUtils.property(thisLocator, "relatedGuidelines", lhsRelatedGuidelines), LocatorUtils.property(thatLocator, "relatedGuidelines", rhsRelatedGuidelines), lhsRelatedGuidelines, rhsRelatedGuidelines)) { 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; { List theRelatedGuidelines; theRelatedGuidelines = (((this.relatedGuidelines != null) && (!this.relatedGuidelines .isEmpty())) ? this.getRelatedGuidelines() : null); currentHashCode = strategy.hashCode(LocatorUtils.property( locator, "relatedGuidelines", theRelatedGuidelines), currentHashCode, theRelatedGuidelines); } return currentHashCode; } public int hashCode() { final HashCodeStrategy strategy = JAXBHashCodeStrategy.INSTANCE; return this.hashCode(null, strategy); } public AttackPattern.RelatedGuidelines withRelatedGuidelines( StructuredTextType... values) { if (values != null) { for (StructuredTextType value : values) { getRelatedGuidelines().add(value); } } return this; } public AttackPattern.RelatedGuidelines withRelatedGuidelines( Collection values) { if (values != null) { getRelatedGuidelines().addAll(values); } 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) { { List theRelatedGuidelines; theRelatedGuidelines = (((this.relatedGuidelines != null) && (!this.relatedGuidelines .isEmpty())) ? this.getRelatedGuidelines() : null); strategy.appendField(locator, this, "relatedGuidelines", buffer, theRelatedGuidelines); } return buffer; } } /** *

Java class for anonymous complex type. * *

The following schema fragment specifies the expected content contained within this class. * *

	 * <complexType>
	 *   <complexContent>
	 *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
	 *       <sequence>
	 *         <element name="Related_Security_Principle" type="{http://capec.mitre.org/capec-2}Structured_Text_Type" maxOccurs="unbounded"/>
	 *       </sequence>
	 *     </restriction>
	 *   </complexContent>
	 * </complexType>
	 * 
* * */ @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "", propOrder = { "relatedSecurityPrinciples" }) public static class RelatedSecurityPrinciples implements Equals, HashCode, ToString { @XmlElement(name = "Related_Security_Principle", required = true) protected List relatedSecurityPrinciples; /** * Default no-arg constructor * */ public RelatedSecurityPrinciples() { super(); } /** * Fully-initialising value constructor * */ public RelatedSecurityPrinciples( final List relatedSecurityPrinciples) { this.relatedSecurityPrinciples = relatedSecurityPrinciples; } /** * Gets the value of the relatedSecurityPrinciples property. * *

* 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 set method for the relatedSecurityPrinciples property. * *

* For example, to add a new item, do as follows: *

		 *    getRelatedSecurityPrinciples().add(newItem);
		 * 
* * *

* Objects of the following type(s) are allowed in the list * {@link StructuredTextType } * * */ public List getRelatedSecurityPrinciples() { if (relatedSecurityPrinciples == null) { relatedSecurityPrinciples = new ArrayList(); } return this.relatedSecurityPrinciples; } public boolean equals(ObjectLocator thisLocator, ObjectLocator thatLocator, Object object, EqualsStrategy strategy) { if (!(object instanceof AttackPattern.RelatedSecurityPrinciples)) { return false; } if (this == object) { return true; } final AttackPattern.RelatedSecurityPrinciples that = ((AttackPattern.RelatedSecurityPrinciples) object); { List lhsRelatedSecurityPrinciples; lhsRelatedSecurityPrinciples = (((this.relatedSecurityPrinciples != null) && (!this.relatedSecurityPrinciples .isEmpty())) ? this.getRelatedSecurityPrinciples() : null); List rhsRelatedSecurityPrinciples; rhsRelatedSecurityPrinciples = (((that.relatedSecurityPrinciples != null) && (!that.relatedSecurityPrinciples .isEmpty())) ? that.getRelatedSecurityPrinciples() : null); if (!strategy.equals(LocatorUtils.property(thisLocator, "relatedSecurityPrinciples", lhsRelatedSecurityPrinciples), LocatorUtils.property( thatLocator, "relatedSecurityPrinciples", rhsRelatedSecurityPrinciples), lhsRelatedSecurityPrinciples, rhsRelatedSecurityPrinciples)) { 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; { List theRelatedSecurityPrinciples; theRelatedSecurityPrinciples = (((this.relatedSecurityPrinciples != null) && (!this.relatedSecurityPrinciples .isEmpty())) ? this.getRelatedSecurityPrinciples() : null); currentHashCode = strategy.hashCode(LocatorUtils.property( locator, "relatedSecurityPrinciples", theRelatedSecurityPrinciples), currentHashCode, theRelatedSecurityPrinciples); } return currentHashCode; } public int hashCode() { final HashCodeStrategy strategy = JAXBHashCodeStrategy.INSTANCE; return this.hashCode(null, strategy); } public AttackPattern.RelatedSecurityPrinciples withRelatedSecurityPrinciples( StructuredTextType... values) { if (values != null) { for (StructuredTextType value : values) { getRelatedSecurityPrinciples().add(value); } } return this; } public AttackPattern.RelatedSecurityPrinciples withRelatedSecurityPrinciples( Collection values) { if (values != null) { getRelatedSecurityPrinciples().addAll(values); } 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) { { List theRelatedSecurityPrinciples; theRelatedSecurityPrinciples = (((this.relatedSecurityPrinciples != null) && (!this.relatedSecurityPrinciples .isEmpty())) ? this.getRelatedSecurityPrinciples() : null); strategy.appendField(locator, this, "relatedSecurityPrinciples", buffer, theRelatedSecurityPrinciples); } return buffer; } } /** *

Java class for anonymous complex type. * *

The following schema fragment specifies the expected content contained within this class. * *

	 * <complexType>
	 *   <complexContent>
	 *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
	 *       <sequence>
	 *         <element name="Related_Vulnerability" maxOccurs="unbounded">
	 *           <complexType>
	 *             <complexContent>
	 *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
	 *                 <sequence>
	 *                   <element name="Vulnerability_ID" type="{http://www.w3.org/2001/XMLSchema}string"/>
	 *                   <element name="Vulnerability_Description" type="{http://capec.mitre.org/capec-2}Structured_Text_Type"/>
	 *                 </sequence>
	 *               </restriction>
	 *             </complexContent>
	 *           </complexType>
	 *         </element>
	 *       </sequence>
	 *     </restriction>
	 *   </complexContent>
	 * </complexType>
	 * 
* * */ @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "", propOrder = { "relatedVulnerabilities" }) public static class RelatedVulnerabilities implements Equals, HashCode, ToString { @XmlElement(name = "Related_Vulnerability", required = true) protected List relatedVulnerabilities; /** * Default no-arg constructor * */ public RelatedVulnerabilities() { super(); } /** * Fully-initialising value constructor * */ public RelatedVulnerabilities( final List relatedVulnerabilities) { this.relatedVulnerabilities = relatedVulnerabilities; } /** * Gets the value of the relatedVulnerabilities property. * *

* 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 set method for the relatedVulnerabilities property. * *

* For example, to add a new item, do as follows: *

		 *    getRelatedVulnerabilities().add(newItem);
		 * 
* * *

* Objects of the following type(s) are allowed in the list * {@link AttackPattern.RelatedVulnerabilities.RelatedVulnerability } * * */ public List getRelatedVulnerabilities() { if (relatedVulnerabilities == null) { relatedVulnerabilities = new ArrayList(); } return this.relatedVulnerabilities; } public boolean equals(ObjectLocator thisLocator, ObjectLocator thatLocator, Object object, EqualsStrategy strategy) { if (!(object instanceof AttackPattern.RelatedVulnerabilities)) { return false; } if (this == object) { return true; } final AttackPattern.RelatedVulnerabilities that = ((AttackPattern.RelatedVulnerabilities) object); { List lhsRelatedVulnerabilities; lhsRelatedVulnerabilities = (((this.relatedVulnerabilities != null) && (!this.relatedVulnerabilities .isEmpty())) ? this.getRelatedVulnerabilities() : null); List rhsRelatedVulnerabilities; rhsRelatedVulnerabilities = (((that.relatedVulnerabilities != null) && (!that.relatedVulnerabilities .isEmpty())) ? that.getRelatedVulnerabilities() : null); if (!strategy.equals(LocatorUtils.property(thisLocator, "relatedVulnerabilities", lhsRelatedVulnerabilities), LocatorUtils.property(thatLocator, "relatedVulnerabilities", rhsRelatedVulnerabilities), lhsRelatedVulnerabilities, rhsRelatedVulnerabilities)) { 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; { List theRelatedVulnerabilities; theRelatedVulnerabilities = (((this.relatedVulnerabilities != null) && (!this.relatedVulnerabilities .isEmpty())) ? this.getRelatedVulnerabilities() : null); currentHashCode = strategy.hashCode(LocatorUtils.property( locator, "relatedVulnerabilities", theRelatedVulnerabilities), currentHashCode, theRelatedVulnerabilities); } return currentHashCode; } public int hashCode() { final HashCodeStrategy strategy = JAXBHashCodeStrategy.INSTANCE; return this.hashCode(null, strategy); } public AttackPattern.RelatedVulnerabilities withRelatedVulnerabilities( AttackPattern.RelatedVulnerabilities.RelatedVulnerability... values) { if (values != null) { for (AttackPattern.RelatedVulnerabilities.RelatedVulnerability value : values) { getRelatedVulnerabilities().add(value); } } return this; } public AttackPattern.RelatedVulnerabilities withRelatedVulnerabilities( Collection values) { if (values != null) { getRelatedVulnerabilities().addAll(values); } 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) { { List theRelatedVulnerabilities; theRelatedVulnerabilities = (((this.relatedVulnerabilities != null) && (!this.relatedVulnerabilities .isEmpty())) ? this.getRelatedVulnerabilities() : null); strategy.appendField(locator, this, "relatedVulnerabilities", buffer, theRelatedVulnerabilities); } return buffer; } /** *

Java class for anonymous complex type. * *

The following schema fragment specifies the expected content contained within this class. * *

		 * <complexType>
		 *   <complexContent>
		 *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
		 *       <sequence>
		 *         <element name="Vulnerability_ID" type="{http://www.w3.org/2001/XMLSchema}string"/>
		 *         <element name="Vulnerability_Description" type="{http://capec.mitre.org/capec-2}Structured_Text_Type"/>
		 *       </sequence>
		 *     </restriction>
		 *   </complexContent>
		 * </complexType>
		 * 
* * */ @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "", propOrder = { "vulnerabilityID", "vulnerabilityDescription" }) public static class RelatedVulnerability implements Equals, HashCode, ToString { @XmlElement(name = "Vulnerability_ID", required = true) protected String vulnerabilityID; @XmlElement(name = "Vulnerability_Description", required = true) protected StructuredTextType vulnerabilityDescription; /** * Default no-arg constructor * */ public RelatedVulnerability() { super(); } /** * Fully-initialising value constructor * */ public RelatedVulnerability(final String vulnerabilityID, final StructuredTextType vulnerabilityDescription) { this.vulnerabilityID = vulnerabilityID; this.vulnerabilityDescription = vulnerabilityDescription; } /** * Gets the value of the vulnerabilityID property. * * @return * possible object is * {@link String } * */ public String getVulnerabilityID() { return vulnerabilityID; } /** * Sets the value of the vulnerabilityID property. * * @param value * allowed object is * {@link String } * */ public void setVulnerabilityID(String value) { this.vulnerabilityID = value; } /** * Gets the value of the vulnerabilityDescription property. * * @return * possible object is * {@link StructuredTextType } * */ public StructuredTextType getVulnerabilityDescription() { return vulnerabilityDescription; } /** * Sets the value of the vulnerabilityDescription property. * * @param value * allowed object is * {@link StructuredTextType } * */ public void setVulnerabilityDescription(StructuredTextType value) { this.vulnerabilityDescription = value; } public boolean equals(ObjectLocator thisLocator, ObjectLocator thatLocator, Object object, EqualsStrategy strategy) { if (!(object instanceof AttackPattern.RelatedVulnerabilities.RelatedVulnerability)) { return false; } if (this == object) { return true; } final AttackPattern.RelatedVulnerabilities.RelatedVulnerability that = ((AttackPattern.RelatedVulnerabilities.RelatedVulnerability) object); { String lhsVulnerabilityID; lhsVulnerabilityID = this.getVulnerabilityID(); String rhsVulnerabilityID; rhsVulnerabilityID = that.getVulnerabilityID(); if (!strategy.equals(LocatorUtils.property(thisLocator, "vulnerabilityID", lhsVulnerabilityID), LocatorUtils.property(thatLocator, "vulnerabilityID", rhsVulnerabilityID), lhsVulnerabilityID, rhsVulnerabilityID)) { return false; } } { StructuredTextType lhsVulnerabilityDescription; lhsVulnerabilityDescription = this .getVulnerabilityDescription(); StructuredTextType rhsVulnerabilityDescription; rhsVulnerabilityDescription = that .getVulnerabilityDescription(); if (!strategy.equals(LocatorUtils.property(thisLocator, "vulnerabilityDescription", lhsVulnerabilityDescription), LocatorUtils .property(thatLocator, "vulnerabilityDescription", rhsVulnerabilityDescription), lhsVulnerabilityDescription, rhsVulnerabilityDescription)) { 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 theVulnerabilityID; theVulnerabilityID = this.getVulnerabilityID(); currentHashCode = strategy.hashCode(LocatorUtils.property( locator, "vulnerabilityID", theVulnerabilityID), currentHashCode, theVulnerabilityID); } { StructuredTextType theVulnerabilityDescription; theVulnerabilityDescription = this .getVulnerabilityDescription(); currentHashCode = strategy.hashCode(LocatorUtils.property( locator, "vulnerabilityDescription", theVulnerabilityDescription), currentHashCode, theVulnerabilityDescription); } return currentHashCode; } public int hashCode() { final HashCodeStrategy strategy = JAXBHashCodeStrategy.INSTANCE; return this.hashCode(null, strategy); } public AttackPattern.RelatedVulnerabilities.RelatedVulnerability withVulnerabilityID( String value) { setVulnerabilityID(value); return this; } public AttackPattern.RelatedVulnerabilities.RelatedVulnerability withVulnerabilityDescription( StructuredTextType value) { setVulnerabilityDescription(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 theVulnerabilityID; theVulnerabilityID = this.getVulnerabilityID(); strategy.appendField(locator, this, "vulnerabilityID", buffer, theVulnerabilityID); } { StructuredTextType theVulnerabilityDescription; theVulnerabilityDescription = this .getVulnerabilityDescription(); strategy.appendField(locator, this, "vulnerabilityDescription", buffer, theVulnerabilityDescription); } return buffer; } } } /** *

Java class for anonymous complex type. * *

The following schema fragment specifies the expected content contained within this class. * *

	 * <complexType>
	 *   <complexContent>
	 *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
	 *       <sequence>
	 *         <element name="Related_Weakness" maxOccurs="unbounded">
	 *           <complexType>
	 *             <complexContent>
	 *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
	 *                 <sequence>
	 *                   <element name="CWE_ID" type="{http://www.w3.org/2001/XMLSchema}integer"/>
	 *                   <element name="Weakness_Relationship_Type">
	 *                     <simpleType>
	 *                       <restriction base="{http://www.w3.org/2001/XMLSchema}string">
	 *                         <whiteSpace value="collapse"/>
	 *                         <enumeration value="Targeted"/>
	 *                         <enumeration value="Secondary"/>
	 *                       </restriction>
	 *                     </simpleType>
	 *                   </element>
	 *                 </sequence>
	 *               </restriction>
	 *             </complexContent>
	 *           </complexType>
	 *         </element>
	 *       </sequence>
	 *     </restriction>
	 *   </complexContent>
	 * </complexType>
	 * 
* * */ @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "", propOrder = { "relatedWeaknesses" }) public static class RelatedWeaknesses implements Equals, HashCode, ToString { @XmlElement(name = "Related_Weakness", required = true) protected List relatedWeaknesses; /** * Default no-arg constructor * */ public RelatedWeaknesses() { super(); } /** * Fully-initialising value constructor * */ public RelatedWeaknesses( final List relatedWeaknesses) { this.relatedWeaknesses = relatedWeaknesses; } /** * Gets the value of the relatedWeaknesses property. * *

* 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 set method for the relatedWeaknesses property. * *

* For example, to add a new item, do as follows: *

		 *    getRelatedWeaknesses().add(newItem);
		 * 
* * *

* Objects of the following type(s) are allowed in the list * {@link AttackPattern.RelatedWeaknesses.RelatedWeakness } * * */ public List getRelatedWeaknesses() { if (relatedWeaknesses == null) { relatedWeaknesses = new ArrayList(); } return this.relatedWeaknesses; } public boolean equals(ObjectLocator thisLocator, ObjectLocator thatLocator, Object object, EqualsStrategy strategy) { if (!(object instanceof AttackPattern.RelatedWeaknesses)) { return false; } if (this == object) { return true; } final AttackPattern.RelatedWeaknesses that = ((AttackPattern.RelatedWeaknesses) object); { List lhsRelatedWeaknesses; lhsRelatedWeaknesses = (((this.relatedWeaknesses != null) && (!this.relatedWeaknesses .isEmpty())) ? this.getRelatedWeaknesses() : null); List rhsRelatedWeaknesses; rhsRelatedWeaknesses = (((that.relatedWeaknesses != null) && (!that.relatedWeaknesses .isEmpty())) ? that.getRelatedWeaknesses() : null); if (!strategy.equals(LocatorUtils.property(thisLocator, "relatedWeaknesses", lhsRelatedWeaknesses), LocatorUtils.property(thatLocator, "relatedWeaknesses", rhsRelatedWeaknesses), lhsRelatedWeaknesses, rhsRelatedWeaknesses)) { 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; { List theRelatedWeaknesses; theRelatedWeaknesses = (((this.relatedWeaknesses != null) && (!this.relatedWeaknesses .isEmpty())) ? this.getRelatedWeaknesses() : null); currentHashCode = strategy.hashCode(LocatorUtils.property( locator, "relatedWeaknesses", theRelatedWeaknesses), currentHashCode, theRelatedWeaknesses); } return currentHashCode; } public int hashCode() { final HashCodeStrategy strategy = JAXBHashCodeStrategy.INSTANCE; return this.hashCode(null, strategy); } public AttackPattern.RelatedWeaknesses withRelatedWeaknesses( AttackPattern.RelatedWeaknesses.RelatedWeakness... values) { if (values != null) { for (AttackPattern.RelatedWeaknesses.RelatedWeakness value : values) { getRelatedWeaknesses().add(value); } } return this; } public AttackPattern.RelatedWeaknesses withRelatedWeaknesses( Collection values) { if (values != null) { getRelatedWeaknesses().addAll(values); } 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) { { List theRelatedWeaknesses; theRelatedWeaknesses = (((this.relatedWeaknesses != null) && (!this.relatedWeaknesses .isEmpty())) ? this.getRelatedWeaknesses() : null); strategy.appendField(locator, this, "relatedWeaknesses", buffer, theRelatedWeaknesses); } return buffer; } /** *

Java class for anonymous complex type. * *

The following schema fragment specifies the expected content contained within this class. * *

		 * <complexType>
		 *   <complexContent>
		 *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
		 *       <sequence>
		 *         <element name="CWE_ID" type="{http://www.w3.org/2001/XMLSchema}integer"/>
		 *         <element name="Weakness_Relationship_Type">
		 *           <simpleType>
		 *             <restriction base="{http://www.w3.org/2001/XMLSchema}string">
		 *               <whiteSpace value="collapse"/>
		 *               <enumeration value="Targeted"/>
		 *               <enumeration value="Secondary"/>
		 *             </restriction>
		 *           </simpleType>
		 *         </element>
		 *       </sequence>
		 *     </restriction>
		 *   </complexContent>
		 * </complexType>
		 * 
* * */ @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "", propOrder = { "cweid", "weaknessRelationshipType" }) public static class RelatedWeakness implements Equals, HashCode, ToString { @XmlElement(name = "CWE_ID", required = true) protected BigInteger cweid; @XmlElement(name = "Weakness_Relationship_Type", required = true) protected String weaknessRelationshipType; /** * Default no-arg constructor * */ public RelatedWeakness() { super(); } /** * Fully-initialising value constructor * */ public RelatedWeakness(final BigInteger cweid, final String weaknessRelationshipType) { this.cweid = cweid; this.weaknessRelationshipType = weaknessRelationshipType; } /** * Gets the value of the cweid property. * * @return * possible object is * {@link BigInteger } * */ public BigInteger getCWEID() { return cweid; } /** * Sets the value of the cweid property. * * @param value * allowed object is * {@link BigInteger } * */ public void setCWEID(BigInteger value) { this.cweid = value; } /** * Gets the value of the weaknessRelationshipType property. * * @return * possible object is * {@link String } * */ public String getWeaknessRelationshipType() { return weaknessRelationshipType; } /** * Sets the value of the weaknessRelationshipType property. * * @param value * allowed object is * {@link String } * */ public void setWeaknessRelationshipType(String value) { this.weaknessRelationshipType = value; } public boolean equals(ObjectLocator thisLocator, ObjectLocator thatLocator, Object object, EqualsStrategy strategy) { if (!(object instanceof AttackPattern.RelatedWeaknesses.RelatedWeakness)) { return false; } if (this == object) { return true; } final AttackPattern.RelatedWeaknesses.RelatedWeakness that = ((AttackPattern.RelatedWeaknesses.RelatedWeakness) object); { BigInteger lhsCWEID; lhsCWEID = this.getCWEID(); BigInteger rhsCWEID; rhsCWEID = that.getCWEID(); if (!strategy .equals(LocatorUtils.property(thisLocator, "cweid", lhsCWEID), LocatorUtils.property( thatLocator, "cweid", rhsCWEID), lhsCWEID, rhsCWEID)) { return false; } } { String lhsWeaknessRelationshipType; lhsWeaknessRelationshipType = this .getWeaknessRelationshipType(); String rhsWeaknessRelationshipType; rhsWeaknessRelationshipType = that .getWeaknessRelationshipType(); if (!strategy.equals(LocatorUtils.property(thisLocator, "weaknessRelationshipType", lhsWeaknessRelationshipType), LocatorUtils .property(thatLocator, "weaknessRelationshipType", rhsWeaknessRelationshipType), lhsWeaknessRelationshipType, rhsWeaknessRelationshipType)) { 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; { BigInteger theCWEID; theCWEID = this.getCWEID(); currentHashCode = strategy.hashCode( LocatorUtils.property(locator, "cweid", theCWEID), currentHashCode, theCWEID); } { String theWeaknessRelationshipType; theWeaknessRelationshipType = this .getWeaknessRelationshipType(); currentHashCode = strategy.hashCode(LocatorUtils.property( locator, "weaknessRelationshipType", theWeaknessRelationshipType), currentHashCode, theWeaknessRelationshipType); } return currentHashCode; } public int hashCode() { final HashCodeStrategy strategy = JAXBHashCodeStrategy.INSTANCE; return this.hashCode(null, strategy); } public AttackPattern.RelatedWeaknesses.RelatedWeakness withCWEID( BigInteger value) { setCWEID(value); return this; } public AttackPattern.RelatedWeaknesses.RelatedWeakness withWeaknessRelationshipType( String value) { setWeaknessRelationshipType(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) { { BigInteger theCWEID; theCWEID = this.getCWEID(); strategy.appendField(locator, this, "cweid", buffer, theCWEID); } { String theWeaknessRelationshipType; theWeaknessRelationshipType = this .getWeaknessRelationshipType(); strategy.appendField(locator, this, "weaknessRelationshipType", buffer, theWeaknessRelationshipType); } return buffer; } } } /** *

Java class for anonymous complex type. * *

The following schema fragment specifies the expected content contained within this class. * *

	 * <complexType>
	 *   <complexContent>
	 *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
	 *       <sequence>
	 *         <element name="Recommended_Design_Patterns">
	 *           <complexType>
	 *             <complexContent>
	 *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
	 *                 <sequence>
	 *                   <element name="Recommended_Design_Pattern" type="{http://capec.mitre.org/capec-2}Structured_Text_Type" maxOccurs="unbounded"/>
	 *                 </sequence>
	 *               </restriction>
	 *             </complexContent>
	 *           </complexType>
	 *         </element>
	 *         <element name="Non-Recommended_Design_Patterns">
	 *           <complexType>
	 *             <complexContent>
	 *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
	 *                 <sequence>
	 *                   <element name="Non-Recommended_Design_Pattern" type="{http://capec.mitre.org/capec-2}Structured_Text_Type" maxOccurs="unbounded"/>
	 *                 </sequence>
	 *               </restriction>
	 *             </complexContent>
	 *           </complexType>
	 *         </element>
	 *       </sequence>
	 *     </restriction>
	 *   </complexContent>
	 * </complexType>
	 * 
* * */ @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "", propOrder = { "recommendedDesignPatterns", "nonRecommendedDesignPatterns" }) public static class RelevantDesignPatterns implements Equals, HashCode, ToString { @XmlElement(name = "Recommended_Design_Patterns", required = true) protected AttackPattern.RelevantDesignPatterns.RecommendedDesignPatterns recommendedDesignPatterns; @XmlElement(name = "Non-Recommended_Design_Patterns", required = true) protected AttackPattern.RelevantDesignPatterns.NonRecommendedDesignPatterns nonRecommendedDesignPatterns; /** * Default no-arg constructor * */ public RelevantDesignPatterns() { super(); } /** * Fully-initialising value constructor * */ public RelevantDesignPatterns( final AttackPattern.RelevantDesignPatterns.RecommendedDesignPatterns recommendedDesignPatterns, final AttackPattern.RelevantDesignPatterns.NonRecommendedDesignPatterns nonRecommendedDesignPatterns) { this.recommendedDesignPatterns = recommendedDesignPatterns; this.nonRecommendedDesignPatterns = nonRecommendedDesignPatterns; } /** * Gets the value of the recommendedDesignPatterns property. * * @return * possible object is * {@link AttackPattern.RelevantDesignPatterns.RecommendedDesignPatterns } * */ public AttackPattern.RelevantDesignPatterns.RecommendedDesignPatterns getRecommendedDesignPatterns() { return recommendedDesignPatterns; } /** * Sets the value of the recommendedDesignPatterns property. * * @param value * allowed object is * {@link AttackPattern.RelevantDesignPatterns.RecommendedDesignPatterns } * */ public void setRecommendedDesignPatterns( AttackPattern.RelevantDesignPatterns.RecommendedDesignPatterns value) { this.recommendedDesignPatterns = value; } /** * Gets the value of the nonRecommendedDesignPatterns property. * * @return * possible object is * {@link AttackPattern.RelevantDesignPatterns.NonRecommendedDesignPatterns } * */ public AttackPattern.RelevantDesignPatterns.NonRecommendedDesignPatterns getNonRecommendedDesignPatterns() { return nonRecommendedDesignPatterns; } /** * Sets the value of the nonRecommendedDesignPatterns property. * * @param value * allowed object is * {@link AttackPattern.RelevantDesignPatterns.NonRecommendedDesignPatterns } * */ public void setNonRecommendedDesignPatterns( AttackPattern.RelevantDesignPatterns.NonRecommendedDesignPatterns value) { this.nonRecommendedDesignPatterns = value; } public boolean equals(ObjectLocator thisLocator, ObjectLocator thatLocator, Object object, EqualsStrategy strategy) { if (!(object instanceof AttackPattern.RelevantDesignPatterns)) { return false; } if (this == object) { return true; } final AttackPattern.RelevantDesignPatterns that = ((AttackPattern.RelevantDesignPatterns) object); { AttackPattern.RelevantDesignPatterns.RecommendedDesignPatterns lhsRecommendedDesignPatterns; lhsRecommendedDesignPatterns = this .getRecommendedDesignPatterns(); AttackPattern.RelevantDesignPatterns.RecommendedDesignPatterns rhsRecommendedDesignPatterns; rhsRecommendedDesignPatterns = that .getRecommendedDesignPatterns(); if (!strategy.equals(LocatorUtils.property(thisLocator, "recommendedDesignPatterns", lhsRecommendedDesignPatterns), LocatorUtils.property( thatLocator, "recommendedDesignPatterns", rhsRecommendedDesignPatterns), lhsRecommendedDesignPatterns, rhsRecommendedDesignPatterns)) { return false; } } { AttackPattern.RelevantDesignPatterns.NonRecommendedDesignPatterns lhsNonRecommendedDesignPatterns; lhsNonRecommendedDesignPatterns = this .getNonRecommendedDesignPatterns(); AttackPattern.RelevantDesignPatterns.NonRecommendedDesignPatterns rhsNonRecommendedDesignPatterns; rhsNonRecommendedDesignPatterns = that .getNonRecommendedDesignPatterns(); if (!strategy.equals(LocatorUtils.property(thisLocator, "nonRecommendedDesignPatterns", lhsNonRecommendedDesignPatterns), LocatorUtils .property(thatLocator, "nonRecommendedDesignPatterns", rhsNonRecommendedDesignPatterns), lhsNonRecommendedDesignPatterns, rhsNonRecommendedDesignPatterns)) { 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; { AttackPattern.RelevantDesignPatterns.RecommendedDesignPatterns theRecommendedDesignPatterns; theRecommendedDesignPatterns = this .getRecommendedDesignPatterns(); currentHashCode = strategy.hashCode(LocatorUtils.property( locator, "recommendedDesignPatterns", theRecommendedDesignPatterns), currentHashCode, theRecommendedDesignPatterns); } { AttackPattern.RelevantDesignPatterns.NonRecommendedDesignPatterns theNonRecommendedDesignPatterns; theNonRecommendedDesignPatterns = this .getNonRecommendedDesignPatterns(); currentHashCode = strategy.hashCode(LocatorUtils.property( locator, "nonRecommendedDesignPatterns", theNonRecommendedDesignPatterns), currentHashCode, theNonRecommendedDesignPatterns); } return currentHashCode; } public int hashCode() { final HashCodeStrategy strategy = JAXBHashCodeStrategy.INSTANCE; return this.hashCode(null, strategy); } public AttackPattern.RelevantDesignPatterns withRecommendedDesignPatterns( AttackPattern.RelevantDesignPatterns.RecommendedDesignPatterns value) { setRecommendedDesignPatterns(value); return this; } public AttackPattern.RelevantDesignPatterns withNonRecommendedDesignPatterns( AttackPattern.RelevantDesignPatterns.NonRecommendedDesignPatterns value) { setNonRecommendedDesignPatterns(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) { { AttackPattern.RelevantDesignPatterns.RecommendedDesignPatterns theRecommendedDesignPatterns; theRecommendedDesignPatterns = this .getRecommendedDesignPatterns(); strategy.appendField(locator, this, "recommendedDesignPatterns", buffer, theRecommendedDesignPatterns); } { AttackPattern.RelevantDesignPatterns.NonRecommendedDesignPatterns theNonRecommendedDesignPatterns; theNonRecommendedDesignPatterns = this .getNonRecommendedDesignPatterns(); strategy.appendField(locator, this, "nonRecommendedDesignPatterns", buffer, theNonRecommendedDesignPatterns); } return buffer; } /** *

Java class for anonymous complex type. * *

The following schema fragment specifies the expected content contained within this class. * *

		 * <complexType>
		 *   <complexContent>
		 *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
		 *       <sequence>
		 *         <element name="Non-Recommended_Design_Pattern" type="{http://capec.mitre.org/capec-2}Structured_Text_Type" maxOccurs="unbounded"/>
		 *       </sequence>
		 *     </restriction>
		 *   </complexContent>
		 * </complexType>
		 * 
* * */ @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "", propOrder = { "nonRecommendedDesignPatterns" }) public static class NonRecommendedDesignPatterns implements Equals, HashCode, ToString { @XmlElement(name = "Non-Recommended_Design_Pattern", required = true) protected List nonRecommendedDesignPatterns; /** * Default no-arg constructor * */ public NonRecommendedDesignPatterns() { super(); } /** * Fully-initialising value constructor * */ public NonRecommendedDesignPatterns( final List nonRecommendedDesignPatterns) { this.nonRecommendedDesignPatterns = nonRecommendedDesignPatterns; } /** * Gets the value of the nonRecommendedDesignPatterns property. * *

* 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 set method for the nonRecommendedDesignPatterns property. * *

* For example, to add a new item, do as follows: *

			 *    getNonRecommendedDesignPatterns().add(newItem);
			 * 
* * *

* Objects of the following type(s) are allowed in the list * {@link StructuredTextType } * * */ public List getNonRecommendedDesignPatterns() { if (nonRecommendedDesignPatterns == null) { nonRecommendedDesignPatterns = new ArrayList(); } return this.nonRecommendedDesignPatterns; } public boolean equals(ObjectLocator thisLocator, ObjectLocator thatLocator, Object object, EqualsStrategy strategy) { if (!(object instanceof AttackPattern.RelevantDesignPatterns.NonRecommendedDesignPatterns)) { return false; } if (this == object) { return true; } final AttackPattern.RelevantDesignPatterns.NonRecommendedDesignPatterns that = ((AttackPattern.RelevantDesignPatterns.NonRecommendedDesignPatterns) object); { List lhsNonRecommendedDesignPatterns; lhsNonRecommendedDesignPatterns = (((this.nonRecommendedDesignPatterns != null) && (!this.nonRecommendedDesignPatterns .isEmpty())) ? this .getNonRecommendedDesignPatterns() : null); List rhsNonRecommendedDesignPatterns; rhsNonRecommendedDesignPatterns = (((that.nonRecommendedDesignPatterns != null) && (!that.nonRecommendedDesignPatterns .isEmpty())) ? that .getNonRecommendedDesignPatterns() : null); if (!strategy.equals(LocatorUtils.property(thisLocator, "nonRecommendedDesignPatterns", lhsNonRecommendedDesignPatterns), LocatorUtils .property(thatLocator, "nonRecommendedDesignPatterns", rhsNonRecommendedDesignPatterns), lhsNonRecommendedDesignPatterns, rhsNonRecommendedDesignPatterns)) { 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; { List theNonRecommendedDesignPatterns; theNonRecommendedDesignPatterns = (((this.nonRecommendedDesignPatterns != null) && (!this.nonRecommendedDesignPatterns .isEmpty())) ? this .getNonRecommendedDesignPatterns() : null); currentHashCode = strategy.hashCode(LocatorUtils.property( locator, "nonRecommendedDesignPatterns", theNonRecommendedDesignPatterns), currentHashCode, theNonRecommendedDesignPatterns); } return currentHashCode; } public int hashCode() { final HashCodeStrategy strategy = JAXBHashCodeStrategy.INSTANCE; return this.hashCode(null, strategy); } public AttackPattern.RelevantDesignPatterns.NonRecommendedDesignPatterns withNonRecommendedDesignPatterns( StructuredTextType... values) { if (values != null) { for (StructuredTextType value : values) { getNonRecommendedDesignPatterns().add(value); } } return this; } public AttackPattern.RelevantDesignPatterns.NonRecommendedDesignPatterns withNonRecommendedDesignPatterns( Collection values) { if (values != null) { getNonRecommendedDesignPatterns().addAll(values); } 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) { { List theNonRecommendedDesignPatterns; theNonRecommendedDesignPatterns = (((this.nonRecommendedDesignPatterns != null) && (!this.nonRecommendedDesignPatterns .isEmpty())) ? this .getNonRecommendedDesignPatterns() : null); strategy.appendField(locator, this, "nonRecommendedDesignPatterns", buffer, theNonRecommendedDesignPatterns); } return buffer; } } /** *

Java class for anonymous complex type. * *

The following schema fragment specifies the expected content contained within this class. * *

		 * <complexType>
		 *   <complexContent>
		 *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
		 *       <sequence>
		 *         <element name="Recommended_Design_Pattern" type="{http://capec.mitre.org/capec-2}Structured_Text_Type" maxOccurs="unbounded"/>
		 *       </sequence>
		 *     </restriction>
		 *   </complexContent>
		 * </complexType>
		 * 
* * */ @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "", propOrder = { "recommendedDesignPatterns" }) public static class RecommendedDesignPatterns implements Equals, HashCode, ToString { @XmlElement(name = "Recommended_Design_Pattern", required = true) protected List recommendedDesignPatterns; /** * Default no-arg constructor * */ public RecommendedDesignPatterns() { super(); } /** * Fully-initialising value constructor * */ public RecommendedDesignPatterns( final List recommendedDesignPatterns) { this.recommendedDesignPatterns = recommendedDesignPatterns; } /** * Gets the value of the recommendedDesignPatterns property. * *

* 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 set method for the recommendedDesignPatterns property. * *

* For example, to add a new item, do as follows: *

			 *    getRecommendedDesignPatterns().add(newItem);
			 * 
* * *

* Objects of the following type(s) are allowed in the list * {@link StructuredTextType } * * */ public List getRecommendedDesignPatterns() { if (recommendedDesignPatterns == null) { recommendedDesignPatterns = new ArrayList(); } return this.recommendedDesignPatterns; } public boolean equals(ObjectLocator thisLocator, ObjectLocator thatLocator, Object object, EqualsStrategy strategy) { if (!(object instanceof AttackPattern.RelevantDesignPatterns.RecommendedDesignPatterns)) { return false; } if (this == object) { return true; } final AttackPattern.RelevantDesignPatterns.RecommendedDesignPatterns that = ((AttackPattern.RelevantDesignPatterns.RecommendedDesignPatterns) object); { List lhsRecommendedDesignPatterns; lhsRecommendedDesignPatterns = (((this.recommendedDesignPatterns != null) && (!this.recommendedDesignPatterns .isEmpty())) ? this.getRecommendedDesignPatterns() : null); List rhsRecommendedDesignPatterns; rhsRecommendedDesignPatterns = (((that.recommendedDesignPatterns != null) && (!that.recommendedDesignPatterns .isEmpty())) ? that.getRecommendedDesignPatterns() : null); if (!strategy.equals(LocatorUtils.property(thisLocator, "recommendedDesignPatterns", lhsRecommendedDesignPatterns), LocatorUtils .property(thatLocator, "recommendedDesignPatterns", rhsRecommendedDesignPatterns), lhsRecommendedDesignPatterns, rhsRecommendedDesignPatterns)) { 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; { List theRecommendedDesignPatterns; theRecommendedDesignPatterns = (((this.recommendedDesignPatterns != null) && (!this.recommendedDesignPatterns .isEmpty())) ? this.getRecommendedDesignPatterns() : null); currentHashCode = strategy.hashCode(LocatorUtils.property( locator, "recommendedDesignPatterns", theRecommendedDesignPatterns), currentHashCode, theRecommendedDesignPatterns); } return currentHashCode; } public int hashCode() { final HashCodeStrategy strategy = JAXBHashCodeStrategy.INSTANCE; return this.hashCode(null, strategy); } public AttackPattern.RelevantDesignPatterns.RecommendedDesignPatterns withRecommendedDesignPatterns( StructuredTextType... values) { if (values != null) { for (StructuredTextType value : values) { getRecommendedDesignPatterns().add(value); } } return this; } public AttackPattern.RelevantDesignPatterns.RecommendedDesignPatterns withRecommendedDesignPatterns( Collection values) { if (values != null) { getRecommendedDesignPatterns().addAll(values); } 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) { { List theRecommendedDesignPatterns; theRecommendedDesignPatterns = (((this.recommendedDesignPatterns != null) && (!this.recommendedDesignPatterns .isEmpty())) ? this.getRecommendedDesignPatterns() : null); strategy.appendField(locator, this, "recommendedDesignPatterns", buffer, theRecommendedDesignPatterns); } return buffer; } } } /** *

Java class for anonymous complex type. * *

The following schema fragment specifies the expected content contained within this class. * *

	 * <complexType>
	 *   <complexContent>
	 *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
	 *       <sequence>
	 *         <element name="Relevant_Security_Pattern" type="{http://capec.mitre.org/capec-2}Structured_Text_Type" maxOccurs="unbounded"/>
	 *       </sequence>
	 *     </restriction>
	 *   </complexContent>
	 * </complexType>
	 * 
* * */ @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "", propOrder = { "relevantSecurityPatterns" }) public static class RelevantSecurityPatterns implements Equals, HashCode, ToString { @XmlElement(name = "Relevant_Security_Pattern", required = true) protected List relevantSecurityPatterns; /** * Default no-arg constructor * */ public RelevantSecurityPatterns() { super(); } /** * Fully-initialising value constructor * */ public RelevantSecurityPatterns( final List relevantSecurityPatterns) { this.relevantSecurityPatterns = relevantSecurityPatterns; } /** * Gets the value of the relevantSecurityPatterns property. * *

* 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 set method for the relevantSecurityPatterns property. * *

* For example, to add a new item, do as follows: *

		 *    getRelevantSecurityPatterns().add(newItem);
		 * 
* * *

* Objects of the following type(s) are allowed in the list * {@link StructuredTextType } * * */ public List getRelevantSecurityPatterns() { if (relevantSecurityPatterns == null) { relevantSecurityPatterns = new ArrayList(); } return this.relevantSecurityPatterns; } public boolean equals(ObjectLocator thisLocator, ObjectLocator thatLocator, Object object, EqualsStrategy strategy) { if (!(object instanceof AttackPattern.RelevantSecurityPatterns)) { return false; } if (this == object) { return true; } final AttackPattern.RelevantSecurityPatterns that = ((AttackPattern.RelevantSecurityPatterns) object); { List lhsRelevantSecurityPatterns; lhsRelevantSecurityPatterns = (((this.relevantSecurityPatterns != null) && (!this.relevantSecurityPatterns .isEmpty())) ? this.getRelevantSecurityPatterns() : null); List rhsRelevantSecurityPatterns; rhsRelevantSecurityPatterns = (((that.relevantSecurityPatterns != null) && (!that.relevantSecurityPatterns .isEmpty())) ? that.getRelevantSecurityPatterns() : null); if (!strategy.equals(LocatorUtils .property(thisLocator, "relevantSecurityPatterns", lhsRelevantSecurityPatterns), LocatorUtils .property(thatLocator, "relevantSecurityPatterns", rhsRelevantSecurityPatterns), lhsRelevantSecurityPatterns, rhsRelevantSecurityPatterns)) { 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; { List theRelevantSecurityPatterns; theRelevantSecurityPatterns = (((this.relevantSecurityPatterns != null) && (!this.relevantSecurityPatterns .isEmpty())) ? this.getRelevantSecurityPatterns() : null); currentHashCode = strategy.hashCode(LocatorUtils.property( locator, "relevantSecurityPatterns", theRelevantSecurityPatterns), currentHashCode, theRelevantSecurityPatterns); } return currentHashCode; } public int hashCode() { final HashCodeStrategy strategy = JAXBHashCodeStrategy.INSTANCE; return this.hashCode(null, strategy); } public AttackPattern.RelevantSecurityPatterns withRelevantSecurityPatterns( StructuredTextType... values) { if (values != null) { for (StructuredTextType value : values) { getRelevantSecurityPatterns().add(value); } } return this; } public AttackPattern.RelevantSecurityPatterns withRelevantSecurityPatterns( Collection values) { if (values != null) { getRelevantSecurityPatterns().addAll(values); } 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) { { List theRelevantSecurityPatterns; theRelevantSecurityPatterns = (((this.relevantSecurityPatterns != null) && (!this.relevantSecurityPatterns .isEmpty())) ? this.getRelevantSecurityPatterns() : null); strategy.appendField(locator, this, "relevantSecurityPatterns", buffer, theRelevantSecurityPatterns); } return buffer; } } /** *

Java class for anonymous complex type. * *

The following schema fragment specifies the expected content contained within this class. * *

	 * <complexType>
	 *   <complexContent>
	 *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
	 *       <sequence>
	 *         <element name="Relevant_Security_Requirement" type="{http://capec.mitre.org/capec-2}Structured_Text_Type" maxOccurs="unbounded"/>
	 *       </sequence>
	 *     </restriction>
	 *   </complexContent>
	 * </complexType>
	 * 
* * */ @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "", propOrder = { "relevantSecurityRequirements" }) public static class RelevantSecurityRequirements implements Equals, HashCode, ToString { @XmlElement(name = "Relevant_Security_Requirement", required = true) protected List relevantSecurityRequirements; /** * Default no-arg constructor * */ public RelevantSecurityRequirements() { super(); } /** * Fully-initialising value constructor * */ public RelevantSecurityRequirements( final List relevantSecurityRequirements) { this.relevantSecurityRequirements = relevantSecurityRequirements; } /** * Gets the value of the relevantSecurityRequirements property. * *

* 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 set method for the relevantSecurityRequirements property. * *

* For example, to add a new item, do as follows: *

		 *    getRelevantSecurityRequirements().add(newItem);
		 * 
* * *

* Objects of the following type(s) are allowed in the list * {@link StructuredTextType } * * */ public List getRelevantSecurityRequirements() { if (relevantSecurityRequirements == null) { relevantSecurityRequirements = new ArrayList(); } return this.relevantSecurityRequirements; } public boolean equals(ObjectLocator thisLocator, ObjectLocator thatLocator, Object object, EqualsStrategy strategy) { if (!(object instanceof AttackPattern.RelevantSecurityRequirements)) { return false; } if (this == object) { return true; } final AttackPattern.RelevantSecurityRequirements that = ((AttackPattern.RelevantSecurityRequirements) object); { List lhsRelevantSecurityRequirements; lhsRelevantSecurityRequirements = (((this.relevantSecurityRequirements != null) && (!this.relevantSecurityRequirements .isEmpty())) ? this.getRelevantSecurityRequirements() : null); List rhsRelevantSecurityRequirements; rhsRelevantSecurityRequirements = (((that.relevantSecurityRequirements != null) && (!that.relevantSecurityRequirements .isEmpty())) ? that.getRelevantSecurityRequirements() : null); if (!strategy.equals(LocatorUtils.property(thisLocator, "relevantSecurityRequirements", lhsRelevantSecurityRequirements), LocatorUtils .property(thatLocator, "relevantSecurityRequirements", rhsRelevantSecurityRequirements), lhsRelevantSecurityRequirements, rhsRelevantSecurityRequirements)) { 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; { List theRelevantSecurityRequirements; theRelevantSecurityRequirements = (((this.relevantSecurityRequirements != null) && (!this.relevantSecurityRequirements .isEmpty())) ? this.getRelevantSecurityRequirements() : null); currentHashCode = strategy.hashCode(LocatorUtils.property( locator, "relevantSecurityRequirements", theRelevantSecurityRequirements), currentHashCode, theRelevantSecurityRequirements); } return currentHashCode; } public int hashCode() { final HashCodeStrategy strategy = JAXBHashCodeStrategy.INSTANCE; return this.hashCode(null, strategy); } public AttackPattern.RelevantSecurityRequirements withRelevantSecurityRequirements( StructuredTextType... values) { if (values != null) { for (StructuredTextType value : values) { getRelevantSecurityRequirements().add(value); } } return this; } public AttackPattern.RelevantSecurityRequirements withRelevantSecurityRequirements( Collection values) { if (values != null) { getRelevantSecurityRequirements().addAll(values); } 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) { { List theRelevantSecurityRequirements; theRelevantSecurityRequirements = (((this.relevantSecurityRequirements != null) && (!this.relevantSecurityRequirements .isEmpty())) ? this.getRelevantSecurityRequirements() : null); strategy.appendField(locator, this, "relevantSecurityRequirements", buffer, theRelevantSecurityRequirements); } return buffer; } } /** *

Java class for anonymous complex type. * *

The following schema fragment specifies the expected content contained within this class. * *

	 * <complexType>
	 *   <complexContent>
	 *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
	 *       <sequence>
	 *         <element name="Solution_or_Mitigation" type="{http://capec.mitre.org/capec-2}Structured_Text_Type" maxOccurs="unbounded"/>
	 *       </sequence>
	 *     </restriction>
	 *   </complexContent>
	 * </complexType>
	 * 
* * */ @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "", propOrder = { "solutionOrMitigations" }) public static class SolutionsAndMitigations implements Equals, HashCode, ToString { @XmlElement(name = "Solution_or_Mitigation", required = true) protected List solutionOrMitigations; /** * Default no-arg constructor * */ public SolutionsAndMitigations() { super(); } /** * Fully-initialising value constructor * */ public SolutionsAndMitigations( final List solutionOrMitigations) { this.solutionOrMitigations = solutionOrMitigations; } /** * Gets the value of the solutionOrMitigations property. * *

* 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 set method for the solutionOrMitigations property. * *

* For example, to add a new item, do as follows: *

		 *    getSolutionOrMitigations().add(newItem);
		 * 
* * *

* Objects of the following type(s) are allowed in the list * {@link StructuredTextType } * * */ public List getSolutionOrMitigations() { if (solutionOrMitigations == null) { solutionOrMitigations = new ArrayList(); } return this.solutionOrMitigations; } public boolean equals(ObjectLocator thisLocator, ObjectLocator thatLocator, Object object, EqualsStrategy strategy) { if (!(object instanceof AttackPattern.SolutionsAndMitigations)) { return false; } if (this == object) { return true; } final AttackPattern.SolutionsAndMitigations that = ((AttackPattern.SolutionsAndMitigations) object); { List lhsSolutionOrMitigations; lhsSolutionOrMitigations = (((this.solutionOrMitigations != null) && (!this.solutionOrMitigations .isEmpty())) ? this.getSolutionOrMitigations() : null); List rhsSolutionOrMitigations; rhsSolutionOrMitigations = (((that.solutionOrMitigations != null) && (!that.solutionOrMitigations .isEmpty())) ? that.getSolutionOrMitigations() : null); if (!strategy.equals(LocatorUtils.property(thisLocator, "solutionOrMitigations", lhsSolutionOrMitigations), LocatorUtils.property(thatLocator, "solutionOrMitigations", rhsSolutionOrMitigations), lhsSolutionOrMitigations, rhsSolutionOrMitigations)) { 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; { List theSolutionOrMitigations; theSolutionOrMitigations = (((this.solutionOrMitigations != null) && (!this.solutionOrMitigations .isEmpty())) ? this.getSolutionOrMitigations() : null); currentHashCode = strategy.hashCode(LocatorUtils.property( locator, "solutionOrMitigations", theSolutionOrMitigations), currentHashCode, theSolutionOrMitigations); } return currentHashCode; } public int hashCode() { final HashCodeStrategy strategy = JAXBHashCodeStrategy.INSTANCE; return this.hashCode(null, strategy); } public AttackPattern.SolutionsAndMitigations withSolutionOrMitigations( StructuredTextType... values) { if (values != null) { for (StructuredTextType value : values) { getSolutionOrMitigations().add(value); } } return this; } public AttackPattern.SolutionsAndMitigations withSolutionOrMitigations( Collection values) { if (values != null) { getSolutionOrMitigations().addAll(values); } 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) { { List theSolutionOrMitigations; theSolutionOrMitigations = (((this.solutionOrMitigations != null) && (!this.solutionOrMitigations .isEmpty())) ? this.getSolutionOrMitigations() : null); strategy.appendField(locator, this, "solutionOrMitigations", buffer, theSolutionOrMitigations); } return buffer; } } /** *

Java class for anonymous complex type. * *

The following schema fragment specifies the expected content contained within this class. * *

	 * <complexType>
	 *   <complexContent>
	 *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
	 *       <sequence>
	 *         <element name="Architectural_Paradigms" minOccurs="0">
	 *           <complexType>
	 *             <complexContent>
	 *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
	 *                 <sequence>
	 *                   <element name="Architectural_Paradigm" maxOccurs="unbounded">
	 *                     <simpleType>
	 *                       <restriction base="{http://www.w3.org/2001/XMLSchema}string">
	 *                         <whiteSpace value="collapse"/>
	 *                         <enumeration value="Mainframe"/>
	 *                         <enumeration value="Client-Server"/>
	 *                         <enumeration value="n-Tier"/>
	 *                         <enumeration value="Web"/>
	 *                         <enumeration value="SOA"/>
	 *                         <enumeration value="Other"/>
	 *                         <enumeration value="All"/>
	 *                       </restriction>
	 *                     </simpleType>
	 *                   </element>
	 *                 </sequence>
	 *               </restriction>
	 *             </complexContent>
	 *           </complexType>
	 *         </element>
	 *         <element name="Frameworks" minOccurs="0">
	 *           <complexType>
	 *             <complexContent>
	 *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
	 *                 <sequence>
	 *                   <element name="Framework" maxOccurs="unbounded" minOccurs="0">
	 *                     <simpleType>
	 *                       <restriction base="{http://www.w3.org/2001/XMLSchema}string">
	 *                         <whiteSpace value="collapse"/>
	 *                         <enumeration value="J2EE"/>
	 *                         <enumeration value=".NET"/>
	 *                         <enumeration value="Struts"/>
	 *                         <enumeration value="Spring"/>
	 *                         <enumeration value="Hibernate"/>
	 *                         <enumeration value="Other"/>
	 *                         <enumeration value="All"/>
	 *                       </restriction>
	 *                     </simpleType>
	 *                   </element>
	 *                 </sequence>
	 *               </restriction>
	 *             </complexContent>
	 *           </complexType>
	 *         </element>
	 *         <element name="Platforms" minOccurs="0">
	 *           <complexType>
	 *             <complexContent>
	 *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
	 *                 <sequence>
	 *                   <element name="Platform" maxOccurs="unbounded" minOccurs="0">
	 *                     <simpleType>
	 *                       <restriction base="{http://www.w3.org/2001/XMLSchema}string">
	 *                         <whiteSpace value="collapse"/>
	 *                         <enumeration value="Windows"/>
	 *                         <enumeration value="UNIX-LINUX"/>
	 *                         <enumeration value="Solaris"/>
	 *                         <enumeration value="Other"/>
	 *                         <enumeration value="All"/>
	 *                       </restriction>
	 *                     </simpleType>
	 *                   </element>
	 *                 </sequence>
	 *               </restriction>
	 *             </complexContent>
	 *           </complexType>
	 *         </element>
	 *         <element name="Languages" minOccurs="0">
	 *           <complexType>
	 *             <complexContent>
	 *               <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
	 *                 <sequence>
	 *                   <element name="Language" maxOccurs="unbounded" minOccurs="0">
	 *                     <simpleType>
	 *                       <restriction base="{http://www.w3.org/2001/XMLSchema}string">
	 *                         <whiteSpace value="collapse"/>
	 *                         <enumeration value="AJAX"/>
	 *                         <enumeration value="ASP"/>
	 *                         <enumeration value="ASP.NET"/>
	 *                         <enumeration value="C"/>
	 *                         <enumeration value="C++"/>
	 *                         <enumeration value="C#"/>
	 *                         <enumeration value="Java"/>
	 *                         <enumeration value="JSP"/>
	 *                         <enumeration value="PHP"/>
	 *                         <enumeration value="PERL"/>
	 *                         <enumeration value="Ruby"/>
	 *                         <enumeration value="Visual Basic"/>
	 *                         <enumeration value="Other"/>
	 *                         <enumeration value="All"/>
	 *                       </restriction>
	 *                     </simpleType>
	 *                   </element>
	 *                 </sequence>
	 *               </restriction>
	 *             </complexContent>
	 *           </complexType>
	 *         </element>
	 *       </sequence>
	 *     </restriction>
	 *   </complexContent>
	 * </complexType>
	 * 
* * */ @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "", propOrder = { "architecturalParadigms", "frameworks", "platforms", "languages" }) public static class TechnicalContext implements Equals, HashCode, ToString { @XmlElement(name = "Architectural_Paradigms") protected AttackPattern.TechnicalContext.ArchitecturalParadigms architecturalParadigms; @XmlElement(name = "Frameworks") protected AttackPattern.TechnicalContext.Frameworks frameworks; @XmlElement(name = "Platforms") protected AttackPattern.TechnicalContext.Platforms platforms; @XmlElement(name = "Languages") protected AttackPattern.TechnicalContext.Languages languages; /** * Default no-arg constructor * */ public TechnicalContext() { super(); } /** * Fully-initialising value constructor * */ public TechnicalContext( final AttackPattern.TechnicalContext.ArchitecturalParadigms architecturalParadigms, final AttackPattern.TechnicalContext.Frameworks frameworks, final AttackPattern.TechnicalContext.Platforms platforms, final AttackPattern.TechnicalContext.Languages languages) { this.architecturalParadigms = architecturalParadigms; this.frameworks = frameworks; this.platforms = platforms; this.languages = languages; } /** * Gets the value of the architecturalParadigms property. * * @return * possible object is * {@link AttackPattern.TechnicalContext.ArchitecturalParadigms } * */ public AttackPattern.TechnicalContext.ArchitecturalParadigms getArchitecturalParadigms() { return architecturalParadigms; } /** * Sets the value of the architecturalParadigms property. * * @param value * allowed object is * {@link AttackPattern.TechnicalContext.ArchitecturalParadigms } * */ public void setArchitecturalParadigms( AttackPattern.TechnicalContext.ArchitecturalParadigms value) { this.architecturalParadigms = value; } /** * Gets the value of the frameworks property. * * @return * possible object is * {@link AttackPattern.TechnicalContext.Frameworks } * */ public AttackPattern.TechnicalContext.Frameworks getFrameworks() { return frameworks; } /** * Sets the value of the frameworks property. * * @param value * allowed object is * {@link AttackPattern.TechnicalContext.Frameworks } * */ public void setFrameworks( AttackPattern.TechnicalContext.Frameworks value) { this.frameworks = value; } /** * Gets the value of the platforms property. * * @return * possible object is * {@link AttackPattern.TechnicalContext.Platforms } * */ public AttackPattern.TechnicalContext.Platforms getPlatforms() { return platforms; } /** * Sets the value of the platforms property. * * @param value * allowed object is * {@link AttackPattern.TechnicalContext.Platforms } * */ public void setPlatforms(AttackPattern.TechnicalContext.Platforms value) { this.platforms = value; } /** * Gets the value of the languages property. * * @return * possible object is * {@link AttackPattern.TechnicalContext.Languages } * */ public AttackPattern.TechnicalContext.Languages getLanguages() { return languages; } /** * Sets the value of the languages property. * * @param value * allowed object is * {@link AttackPattern.TechnicalContext.Languages } * */ public void setLanguages(AttackPattern.TechnicalContext.Languages value) { this.languages = value; } public boolean equals(ObjectLocator thisLocator, ObjectLocator thatLocator, Object object, EqualsStrategy strategy) { if (!(object instanceof AttackPattern.TechnicalContext)) { return false; } if (this == object) { return true; } final AttackPattern.TechnicalContext that = ((AttackPattern.TechnicalContext) object); { AttackPattern.TechnicalContext.ArchitecturalParadigms lhsArchitecturalParadigms; lhsArchitecturalParadigms = this.getArchitecturalParadigms(); AttackPattern.TechnicalContext.ArchitecturalParadigms rhsArchitecturalParadigms; rhsArchitecturalParadigms = that.getArchitecturalParadigms(); if (!strategy.equals(LocatorUtils.property(thisLocator, "architecturalParadigms", lhsArchitecturalParadigms), LocatorUtils.property(thatLocator, "architecturalParadigms", rhsArchitecturalParadigms), lhsArchitecturalParadigms, rhsArchitecturalParadigms)) { return false; } } { AttackPattern.TechnicalContext.Frameworks lhsFrameworks; lhsFrameworks = this.getFrameworks(); AttackPattern.TechnicalContext.Frameworks rhsFrameworks; rhsFrameworks = that.getFrameworks(); if (!strategy.equals(LocatorUtils.property(thisLocator, "frameworks", lhsFrameworks), LocatorUtils.property( thatLocator, "frameworks", rhsFrameworks), lhsFrameworks, rhsFrameworks)) { return false; } } { AttackPattern.TechnicalContext.Platforms lhsPlatforms; lhsPlatforms = this.getPlatforms(); AttackPattern.TechnicalContext.Platforms rhsPlatforms; rhsPlatforms = that.getPlatforms(); if (!strategy.equals(LocatorUtils.property(thisLocator, "platforms", lhsPlatforms), LocatorUtils.property( thatLocator, "platforms", rhsPlatforms), lhsPlatforms, rhsPlatforms)) { return false; } } { AttackPattern.TechnicalContext.Languages lhsLanguages; lhsLanguages = this.getLanguages(); AttackPattern.TechnicalContext.Languages rhsLanguages; rhsLanguages = that.getLanguages(); if (!strategy.equals(LocatorUtils.property(thisLocator, "languages", lhsLanguages), LocatorUtils.property( thatLocator, "languages", rhsLanguages), lhsLanguages, rhsLanguages)) { 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; { AttackPattern.TechnicalContext.ArchitecturalParadigms theArchitecturalParadigms; theArchitecturalParadigms = this.getArchitecturalParadigms(); currentHashCode = strategy.hashCode(LocatorUtils.property( locator, "architecturalParadigms", theArchitecturalParadigms), currentHashCode, theArchitecturalParadigms); } { AttackPattern.TechnicalContext.Frameworks theFrameworks; theFrameworks = this.getFrameworks(); currentHashCode = strategy.hashCode(LocatorUtils.property( locator, "frameworks", theFrameworks), currentHashCode, theFrameworks); } { AttackPattern.TechnicalContext.Platforms thePlatforms; thePlatforms = this.getPlatforms(); currentHashCode = strategy.hashCode(LocatorUtils.property( locator, "platforms", thePlatforms), currentHashCode, thePlatforms); } { AttackPattern.TechnicalContext.Languages theLanguages; theLanguages = this.getLanguages(); currentHashCode = strategy.hashCode(LocatorUtils.property( locator, "languages", theLanguages), currentHashCode, theLanguages); } return currentHashCode; } public int hashCode() { final HashCodeStrategy strategy = JAXBHashCodeStrategy.INSTANCE; return this.hashCode(null, strategy); } public AttackPattern.TechnicalContext withArchitecturalParadigms( AttackPattern.TechnicalContext.ArchitecturalParadigms value) { setArchitecturalParadigms(value); return this; } public AttackPattern.TechnicalContext withFrameworks( AttackPattern.TechnicalContext.Frameworks value) { setFrameworks(value); return this; } public AttackPattern.TechnicalContext withPlatforms( AttackPattern.TechnicalContext.Platforms value) { setPlatforms(value); return this; } public AttackPattern.TechnicalContext withLanguages( AttackPattern.TechnicalContext.Languages value) { setLanguages(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) { { AttackPattern.TechnicalContext.ArchitecturalParadigms theArchitecturalParadigms; theArchitecturalParadigms = this.getArchitecturalParadigms(); strategy.appendField(locator, this, "architecturalParadigms", buffer, theArchitecturalParadigms); } { AttackPattern.TechnicalContext.Frameworks theFrameworks; theFrameworks = this.getFrameworks(); strategy.appendField(locator, this, "frameworks", buffer, theFrameworks); } { AttackPattern.TechnicalContext.Platforms thePlatforms; thePlatforms = this.getPlatforms(); strategy.appendField(locator, this, "platforms", buffer, thePlatforms); } { AttackPattern.TechnicalContext.Languages theLanguages; theLanguages = this.getLanguages(); strategy.appendField(locator, this, "languages", buffer, theLanguages); } return buffer; } /** *

Java class for anonymous complex type. * *

The following schema fragment specifies the expected content contained within this class. * *

		 * <complexType>
		 *   <complexContent>
		 *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
		 *       <sequence>
		 *         <element name="Architectural_Paradigm" maxOccurs="unbounded">
		 *           <simpleType>
		 *             <restriction base="{http://www.w3.org/2001/XMLSchema}string">
		 *               <whiteSpace value="collapse"/>
		 *               <enumeration value="Mainframe"/>
		 *               <enumeration value="Client-Server"/>
		 *               <enumeration value="n-Tier"/>
		 *               <enumeration value="Web"/>
		 *               <enumeration value="SOA"/>
		 *               <enumeration value="Other"/>
		 *               <enumeration value="All"/>
		 *             </restriction>
		 *           </simpleType>
		 *         </element>
		 *       </sequence>
		 *     </restriction>
		 *   </complexContent>
		 * </complexType>
		 * 
* * */ @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "", propOrder = { "architecturalParadigms" }) public static class ArchitecturalParadigms implements Equals, HashCode, ToString { @XmlElement(name = "Architectural_Paradigm", required = true) protected List architecturalParadigms; /** * Default no-arg constructor * */ public ArchitecturalParadigms() { super(); } /** * Fully-initialising value constructor * */ public ArchitecturalParadigms( final List architecturalParadigms) { this.architecturalParadigms = architecturalParadigms; } /** * Gets the value of the architecturalParadigms property. * *

* 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 set method for the architecturalParadigms property. * *

* For example, to add a new item, do as follows: *

			 *    getArchitecturalParadigms().add(newItem);
			 * 
* * *

* Objects of the following type(s) are allowed in the list * {@link String } * * */ public List getArchitecturalParadigms() { if (architecturalParadigms == null) { architecturalParadigms = new ArrayList(); } return this.architecturalParadigms; } public boolean equals(ObjectLocator thisLocator, ObjectLocator thatLocator, Object object, EqualsStrategy strategy) { if (!(object instanceof AttackPattern.TechnicalContext.ArchitecturalParadigms)) { return false; } if (this == object) { return true; } final AttackPattern.TechnicalContext.ArchitecturalParadigms that = ((AttackPattern.TechnicalContext.ArchitecturalParadigms) object); { List lhsArchitecturalParadigms; lhsArchitecturalParadigms = (((this.architecturalParadigms != null) && (!this.architecturalParadigms .isEmpty())) ? this.getArchitecturalParadigms() : null); List rhsArchitecturalParadigms; rhsArchitecturalParadigms = (((that.architecturalParadigms != null) && (!that.architecturalParadigms .isEmpty())) ? that.getArchitecturalParadigms() : null); if (!strategy.equals(LocatorUtils .property(thisLocator, "architecturalParadigms", lhsArchitecturalParadigms), LocatorUtils .property(thatLocator, "architecturalParadigms", rhsArchitecturalParadigms), lhsArchitecturalParadigms, rhsArchitecturalParadigms)) { 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; { List theArchitecturalParadigms; theArchitecturalParadigms = (((this.architecturalParadigms != null) && (!this.architecturalParadigms .isEmpty())) ? this.getArchitecturalParadigms() : null); currentHashCode = strategy.hashCode(LocatorUtils.property( locator, "architecturalParadigms", theArchitecturalParadigms), currentHashCode, theArchitecturalParadigms); } return currentHashCode; } public int hashCode() { final HashCodeStrategy strategy = JAXBHashCodeStrategy.INSTANCE; return this.hashCode(null, strategy); } public AttackPattern.TechnicalContext.ArchitecturalParadigms withArchitecturalParadigms( String... values) { if (values != null) { for (String value : values) { getArchitecturalParadigms().add(value); } } return this; } public AttackPattern.TechnicalContext.ArchitecturalParadigms withArchitecturalParadigms( Collection values) { if (values != null) { getArchitecturalParadigms().addAll(values); } 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) { { List theArchitecturalParadigms; theArchitecturalParadigms = (((this.architecturalParadigms != null) && (!this.architecturalParadigms .isEmpty())) ? this.getArchitecturalParadigms() : null); strategy.appendField(locator, this, "architecturalParadigms", buffer, theArchitecturalParadigms); } return buffer; } } /** *

Java class for anonymous complex type. * *

The following schema fragment specifies the expected content contained within this class. * *

		 * <complexType>
		 *   <complexContent>
		 *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
		 *       <sequence>
		 *         <element name="Framework" maxOccurs="unbounded" minOccurs="0">
		 *           <simpleType>
		 *             <restriction base="{http://www.w3.org/2001/XMLSchema}string">
		 *               <whiteSpace value="collapse"/>
		 *               <enumeration value="J2EE"/>
		 *               <enumeration value=".NET"/>
		 *               <enumeration value="Struts"/>
		 *               <enumeration value="Spring"/>
		 *               <enumeration value="Hibernate"/>
		 *               <enumeration value="Other"/>
		 *               <enumeration value="All"/>
		 *             </restriction>
		 *           </simpleType>
		 *         </element>
		 *       </sequence>
		 *     </restriction>
		 *   </complexContent>
		 * </complexType>
		 * 
* * */ @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "", propOrder = { "frameworks" }) public static class Frameworks implements Equals, HashCode, ToString { @XmlElement(name = "Framework") protected List frameworks; /** * Default no-arg constructor * */ public Frameworks() { super(); } /** * Fully-initialising value constructor * */ public Frameworks(final List frameworks) { this.frameworks = frameworks; } /** * Gets the value of the frameworks property. * *

* 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 set method for the frameworks property. * *

* For example, to add a new item, do as follows: *

			 *    getFrameworks().add(newItem);
			 * 
* * *

* Objects of the following type(s) are allowed in the list * {@link String } * * */ public List getFrameworks() { if (frameworks == null) { frameworks = new ArrayList(); } return this.frameworks; } public boolean equals(ObjectLocator thisLocator, ObjectLocator thatLocator, Object object, EqualsStrategy strategy) { if (!(object instanceof AttackPattern.TechnicalContext.Frameworks)) { return false; } if (this == object) { return true; } final AttackPattern.TechnicalContext.Frameworks that = ((AttackPattern.TechnicalContext.Frameworks) object); { List lhsFrameworks; lhsFrameworks = (((this.frameworks != null) && (!this.frameworks .isEmpty())) ? this.getFrameworks() : null); List rhsFrameworks; rhsFrameworks = (((that.frameworks != null) && (!that.frameworks .isEmpty())) ? that.getFrameworks() : null); if (!strategy.equals(LocatorUtils.property(thisLocator, "frameworks", lhsFrameworks), LocatorUtils.property(thatLocator, "frameworks", rhsFrameworks), lhsFrameworks, rhsFrameworks)) { 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; { List theFrameworks; theFrameworks = (((this.frameworks != null) && (!this.frameworks .isEmpty())) ? this.getFrameworks() : null); currentHashCode = strategy.hashCode(LocatorUtils.property( locator, "frameworks", theFrameworks), currentHashCode, theFrameworks); } return currentHashCode; } public int hashCode() { final HashCodeStrategy strategy = JAXBHashCodeStrategy.INSTANCE; return this.hashCode(null, strategy); } public AttackPattern.TechnicalContext.Frameworks withFrameworks( String... values) { if (values != null) { for (String value : values) { getFrameworks().add(value); } } return this; } public AttackPattern.TechnicalContext.Frameworks withFrameworks( Collection values) { if (values != null) { getFrameworks().addAll(values); } 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) { { List theFrameworks; theFrameworks = (((this.frameworks != null) && (!this.frameworks .isEmpty())) ? this.getFrameworks() : null); strategy.appendField(locator, this, "frameworks", buffer, theFrameworks); } return buffer; } } /** *

Java class for anonymous complex type. * *

The following schema fragment specifies the expected content contained within this class. * *

		 * <complexType>
		 *   <complexContent>
		 *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
		 *       <sequence>
		 *         <element name="Language" maxOccurs="unbounded" minOccurs="0">
		 *           <simpleType>
		 *             <restriction base="{http://www.w3.org/2001/XMLSchema}string">
		 *               <whiteSpace value="collapse"/>
		 *               <enumeration value="AJAX"/>
		 *               <enumeration value="ASP"/>
		 *               <enumeration value="ASP.NET"/>
		 *               <enumeration value="C"/>
		 *               <enumeration value="C++"/>
		 *               <enumeration value="C#"/>
		 *               <enumeration value="Java"/>
		 *               <enumeration value="JSP"/>
		 *               <enumeration value="PHP"/>
		 *               <enumeration value="PERL"/>
		 *               <enumeration value="Ruby"/>
		 *               <enumeration value="Visual Basic"/>
		 *               <enumeration value="Other"/>
		 *               <enumeration value="All"/>
		 *             </restriction>
		 *           </simpleType>
		 *         </element>
		 *       </sequence>
		 *     </restriction>
		 *   </complexContent>
		 * </complexType>
		 * 
* * */ @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "", propOrder = { "languages" }) public static class Languages implements Equals, HashCode, ToString { @XmlElement(name = "Language") protected List languages; /** * Default no-arg constructor * */ public Languages() { super(); } /** * Fully-initialising value constructor * */ public Languages(final List languages) { this.languages = languages; } /** * Gets the value of the languages property. * *

* 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 set method for the languages property. * *

* For example, to add a new item, do as follows: *

			 *    getLanguages().add(newItem);
			 * 
* * *

* Objects of the following type(s) are allowed in the list * {@link String } * * */ public List getLanguages() { if (languages == null) { languages = new ArrayList(); } return this.languages; } public boolean equals(ObjectLocator thisLocator, ObjectLocator thatLocator, Object object, EqualsStrategy strategy) { if (!(object instanceof AttackPattern.TechnicalContext.Languages)) { return false; } if (this == object) { return true; } final AttackPattern.TechnicalContext.Languages that = ((AttackPattern.TechnicalContext.Languages) object); { List lhsLanguages; lhsLanguages = (((this.languages != null) && (!this.languages .isEmpty())) ? this.getLanguages() : null); List rhsLanguages; rhsLanguages = (((that.languages != null) && (!that.languages .isEmpty())) ? that.getLanguages() : null); if (!strategy.equals(LocatorUtils.property(thisLocator, "languages", lhsLanguages), LocatorUtils.property( thatLocator, "languages", rhsLanguages), lhsLanguages, rhsLanguages)) { 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; { List theLanguages; theLanguages = (((this.languages != null) && (!this.languages .isEmpty())) ? this.getLanguages() : null); currentHashCode = strategy.hashCode(LocatorUtils.property( locator, "languages", theLanguages), currentHashCode, theLanguages); } return currentHashCode; } public int hashCode() { final HashCodeStrategy strategy = JAXBHashCodeStrategy.INSTANCE; return this.hashCode(null, strategy); } public AttackPattern.TechnicalContext.Languages withLanguages( String... values) { if (values != null) { for (String value : values) { getLanguages().add(value); } } return this; } public AttackPattern.TechnicalContext.Languages withLanguages( Collection values) { if (values != null) { getLanguages().addAll(values); } 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) { { List theLanguages; theLanguages = (((this.languages != null) && (!this.languages .isEmpty())) ? this.getLanguages() : null); strategy.appendField(locator, this, "languages", buffer, theLanguages); } return buffer; } } /** *

Java class for anonymous complex type. * *

The following schema fragment specifies the expected content contained within this class. * *

		 * <complexType>
		 *   <complexContent>
		 *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
		 *       <sequence>
		 *         <element name="Platform" maxOccurs="unbounded" minOccurs="0">
		 *           <simpleType>
		 *             <restriction base="{http://www.w3.org/2001/XMLSchema}string">
		 *               <whiteSpace value="collapse"/>
		 *               <enumeration value="Windows"/>
		 *               <enumeration value="UNIX-LINUX"/>
		 *               <enumeration value="Solaris"/>
		 *               <enumeration value="Other"/>
		 *               <enumeration value="All"/>
		 *             </restriction>
		 *           </simpleType>
		 *         </element>
		 *       </sequence>
		 *     </restriction>
		 *   </complexContent>
		 * </complexType>
		 * 
* * */ @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "", propOrder = { "platforms" }) public static class Platforms implements Equals, HashCode, ToString { @XmlElement(name = "Platform") protected List platforms; /** * Default no-arg constructor * */ public Platforms() { super(); } /** * Fully-initialising value constructor * */ public Platforms(final List platforms) { this.platforms = platforms; } /** * Gets the value of the platforms property. * *

* 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 set method for the platforms property. * *

* For example, to add a new item, do as follows: *

			 *    getPlatforms().add(newItem);
			 * 
* * *

* Objects of the following type(s) are allowed in the list * {@link String } * * */ public List getPlatforms() { if (platforms == null) { platforms = new ArrayList(); } return this.platforms; } public boolean equals(ObjectLocator thisLocator, ObjectLocator thatLocator, Object object, EqualsStrategy strategy) { if (!(object instanceof AttackPattern.TechnicalContext.Platforms)) { return false; } if (this == object) { return true; } final AttackPattern.TechnicalContext.Platforms that = ((AttackPattern.TechnicalContext.Platforms) object); { List lhsPlatforms; lhsPlatforms = (((this.platforms != null) && (!this.platforms .isEmpty())) ? this.getPlatforms() : null); List rhsPlatforms; rhsPlatforms = (((that.platforms != null) && (!that.platforms .isEmpty())) ? that.getPlatforms() : null); if (!strategy.equals(LocatorUtils.property(thisLocator, "platforms", lhsPlatforms), LocatorUtils.property( thatLocator, "platforms", rhsPlatforms), lhsPlatforms, rhsPlatforms)) { 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; { List thePlatforms; thePlatforms = (((this.platforms != null) && (!this.platforms .isEmpty())) ? this.getPlatforms() : null); currentHashCode = strategy.hashCode(LocatorUtils.property( locator, "platforms", thePlatforms), currentHashCode, thePlatforms); } return currentHashCode; } public int hashCode() { final HashCodeStrategy strategy = JAXBHashCodeStrategy.INSTANCE; return this.hashCode(null, strategy); } public AttackPattern.TechnicalContext.Platforms withPlatforms( String... values) { if (values != null) { for (String value : values) { getPlatforms().add(value); } } return this; } public AttackPattern.TechnicalContext.Platforms withPlatforms( Collection values) { if (values != null) { getPlatforms().addAll(values); } 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) { { List thePlatforms; thePlatforms = (((this.platforms != null) && (!this.platforms .isEmpty())) ? this.getPlatforms() : null); strategy.appendField(locator, this, "platforms", buffer, thePlatforms); } return buffer; } } } /** *

Java class for anonymous complex type. * *

The following schema fragment specifies the expected content contained within this class. * *

	 * <complexType>
	 *   <complexContent>
	 *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
	 *       <sequence>
	 *         <element name="Likelihood" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
	 *         <element name="Explanation" type="{http://capec.mitre.org/capec-2}Structured_Text_Type" minOccurs="0"/>
	 *       </sequence>
	 *     </restriction>
	 *   </complexContent>
	 * </complexType>
	 * 
* * */ @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "", propOrder = { "likelihood", "explanation" }) public static class TypicalLikelihoodOfExploit implements Equals, HashCode, ToString { @XmlElement(name = "Likelihood") protected String likelihood; @XmlElement(name = "Explanation") protected StructuredTextType explanation; /** * Default no-arg constructor * */ public TypicalLikelihoodOfExploit() { super(); } /** * Fully-initialising value constructor * */ public TypicalLikelihoodOfExploit(final String likelihood, final StructuredTextType explanation) { this.likelihood = likelihood; this.explanation = explanation; } /** * Gets the value of the likelihood property. * * @return * possible object is * {@link String } * */ public String getLikelihood() { return likelihood; } /** * Sets the value of the likelihood property. * * @param value * allowed object is * {@link String } * */ public void setLikelihood(String value) { this.likelihood = value; } /** * Gets the value of the explanation property. * * @return * possible object is * {@link StructuredTextType } * */ public StructuredTextType getExplanation() { return explanation; } /** * Sets the value of the explanation property. * * @param value * allowed object is * {@link StructuredTextType } * */ public void setExplanation(StructuredTextType value) { this.explanation = value; } public boolean equals(ObjectLocator thisLocator, ObjectLocator thatLocator, Object object, EqualsStrategy strategy) { if (!(object instanceof AttackPattern.TypicalLikelihoodOfExploit)) { return false; } if (this == object) { return true; } final AttackPattern.TypicalLikelihoodOfExploit that = ((AttackPattern.TypicalLikelihoodOfExploit) object); { String lhsLikelihood; lhsLikelihood = this.getLikelihood(); String rhsLikelihood; rhsLikelihood = that.getLikelihood(); if (!strategy.equals(LocatorUtils.property(thisLocator, "likelihood", lhsLikelihood), LocatorUtils.property( thatLocator, "likelihood", rhsLikelihood), lhsLikelihood, rhsLikelihood)) { return false; } } { StructuredTextType lhsExplanation; lhsExplanation = this.getExplanation(); StructuredTextType rhsExplanation; rhsExplanation = that.getExplanation(); if (!strategy.equals(LocatorUtils.property(thisLocator, "explanation", lhsExplanation), LocatorUtils.property( thatLocator, "explanation", rhsExplanation), lhsExplanation, rhsExplanation)) { 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 theLikelihood; theLikelihood = this.getLikelihood(); currentHashCode = strategy.hashCode(LocatorUtils.property( locator, "likelihood", theLikelihood), currentHashCode, theLikelihood); } { StructuredTextType theExplanation; theExplanation = this.getExplanation(); currentHashCode = strategy.hashCode(LocatorUtils.property( locator, "explanation", theExplanation), currentHashCode, theExplanation); } return currentHashCode; } public int hashCode() { final HashCodeStrategy strategy = JAXBHashCodeStrategy.INSTANCE; return this.hashCode(null, strategy); } public AttackPattern.TypicalLikelihoodOfExploit withLikelihood( String value) { setLikelihood(value); return this; } public AttackPattern.TypicalLikelihoodOfExploit withExplanation( StructuredTextType value) { setExplanation(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 theLikelihood; theLikelihood = this.getLikelihood(); strategy.appendField(locator, this, "likelihood", buffer, theLikelihood); } { StructuredTextType theExplanation; theExplanation = this.getExplanation(); strategy.appendField(locator, this, "explanation", buffer, theExplanation); } 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, AttackPattern.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 AttackPattern instance for XML String * * @param text * XML String for the document * @return The AttackPattern instance for the passed XML String */ public static AttackPattern fromXMLString(String text) { JAXBContext jaxbContext; try { jaxbContext = JAXBContext.newInstance(AttackPattern.class .getPackage().getName()); Unmarshaller unmarshaller = jaxbContext.createUnmarshaller(); unmarshaller.setSchema(STIXSchema.getInstance().getSchema()); unmarshaller.setEventHandler(new ValidationEventHandler()); StreamSource streamSource = new StreamSource(new StringReader(text)); return (AttackPattern) unmarshaller.unmarshal(streamSource); } catch (JAXBException e) { throw new RuntimeException(e); } } /** * Validates the XML representation of this AttackPattern 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()); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy