org.hudsonci.maven.model.state.MavenProjectDTO Maven / Gradle / Ivy
//
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-2
// See http://java.sun.com/xml/jaxb
// Any modifications to this file will be lost upon recompilation of the source schema.
// Generated on: 2012.06.15 at 07:34:37 PM PDT
//
package org.hudsonci.maven.model.state;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import javax.annotation.Generated;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;
import com.flipthebird.gwthashcodeequals.EqualsBuilder;
import com.flipthebird.gwthashcodeequals.HashCodeBuilder;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
import org.codehaus.jackson.annotate.JsonProperty;
import org.hudsonci.maven.model.MavenCoordinatesDTO;
/**
* Java class for mavenProject complex type.
*
*
The following schema fragment specifies the expected content contained within this class.
*
*
* <complexType name="mavenProject">
* <complexContent>
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* <sequence>
* <element name="coordinates" type="{http://hudson-ci.org/xsd/hudson/2.1.0/maven/common}mavenCoordinates"/>
* <element name="profile" type="{http://hudson-ci.org/xsd/hudson/2.1.0/maven/state}profile" maxOccurs="unbounded"/>
* <element name="buildSummary" type="{http://hudson-ci.org/xsd/hudson/2.1.0/maven/state}buildSummary"/>
* </sequence>
* <attribute name="name" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
* </restriction>
* </complexContent>
* </complexType>
*
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "mavenProject", propOrder = {
"coordinates",
"profiles",
"buildSummary"
})
@XStreamAlias("mavenProject")
@Generated(value = "XJC hudson-jaxb-ri-2.1-2", date = "2012-06-15T19:34:37")
public class MavenProjectDTO
implements Serializable
{
private final static long serialVersionUID = 1L;
@XmlElement(required = true)
@JsonProperty("coordinates")
protected MavenCoordinatesDTO coordinates;
@XmlElement(name = "profile", required = true)
@JsonProperty("profiles")
protected List profiles;
@XmlElement(required = true)
@JsonProperty("buildSummary")
protected BuildSummaryDTO buildSummary;
@XmlAttribute(name = "name", required = true)
@XStreamAsAttribute
@JsonProperty("name")
protected String name;
/**
* Gets the value of the coordinates property.
*
* @return
* possible object is
* {@link MavenCoordinatesDTO }
*
*/
public MavenCoordinatesDTO getCoordinates() {
return coordinates;
}
/**
* Sets the value of the coordinates property.
*
* @param value
* allowed object is
* {@link MavenCoordinatesDTO }
*
*/
public void setCoordinates(MavenCoordinatesDTO value) {
this.coordinates = value;
}
/**
* Gets the value of the profiles 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 profiles property.
*
*
* For example, to add a new item, do as follows:
*
* getProfiles().add(newItem);
*
*
*
*
* Objects of the following type(s) are allowed in the list
* {@link ProfileDTO }
*
*
*/
public List getProfiles() {
if (profiles == null) {
profiles = new ArrayList();
}
return this.profiles;
}
/**
* Gets the value of the buildSummary property.
*
* @return
* possible object is
* {@link BuildSummaryDTO }
*
*/
public BuildSummaryDTO getBuildSummary() {
return buildSummary;
}
/**
* Sets the value of the buildSummary property.
*
* @param value
* allowed object is
* {@link BuildSummaryDTO }
*
*/
public void setBuildSummary(BuildSummaryDTO value) {
this.buildSummary = 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;
}
public MavenProjectDTO withCoordinates(MavenCoordinatesDTO value) {
setCoordinates(value);
return this;
}
public MavenProjectDTO withProfiles(ProfileDTO... values) {
if (values!= null) {
for (ProfileDTO value: values) {
getProfiles().add(value);
}
}
return this;
}
public MavenProjectDTO withProfiles(Collection values) {
if (values!= null) {
getProfiles().addAll(values);
}
return this;
}
public MavenProjectDTO withBuildSummary(BuildSummaryDTO value) {
setBuildSummary(value);
return this;
}
public MavenProjectDTO withName(String value) {
setName(value);
return this;
}
@Override
public boolean equals(final Object obj) {
if (obj == null) {
return false;
}
if (this == obj) {
return true;
}
if (!(obj instanceof MavenProjectDTO)) {
return false;
}
final MavenProjectDTO that = ((MavenProjectDTO) obj);
final EqualsBuilder builder = new EqualsBuilder();
builder.append(this.getCoordinates(), that.getCoordinates());
builder.append(this.getProfiles(), that.getProfiles());
builder.append(this.getBuildSummary(), that.getBuildSummary());
builder.append(this.getName(), that.getName());
return builder.build();
}
@Override
public int hashCode() {
final HashCodeBuilder builder = new HashCodeBuilder();
builder.append(this.getCoordinates());
builder.append(this.getProfiles());
builder.append(this.getBuildSummary());
builder.append(this.getName());
return builder.build();
}
// TODO: change to asId to not be confused with a bean property.
public String getId() {
return MavenProjectDTOHelper.asId(this);
}
}