package io.github.algomaster99.terminator.commons.cyclonedx;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.annotation.processing.Generated;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyDescription;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
/**
* BOM Metadata Object
*
*
*
*/
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
"timestamp",
"lifecycles",
"tools",
"authors",
"component",
"manufacture",
"supplier",
"licenses",
"properties"
})
@Generated("jsonschema2pojo")
public class Metadata {
/**
* Timestamp
*
* The date and time (timestamp) when the BOM was created.
*
*/
@JsonProperty("timestamp")
@JsonPropertyDescription("The date and time (timestamp) when the BOM was created.")
private Date timestamp;
/**
* Lifecycles
*
*
*
*/
@JsonProperty("lifecycles")
@JsonPropertyDescription("")
private List lifecycles = new ArrayList();
@JsonProperty("tools")
private Object tools;
/**
* Authors
*
* The person(s) who created the BOM. Authors are common in BOMs created through manual processes. BOMs created through automated means may not have authors.
*
*/
@JsonProperty("authors")
@JsonPropertyDescription("The person(s) who created the BOM. Authors are common in BOMs created through manual processes. BOMs created through automated means may not have authors.")
private List authors = new ArrayList();
/**
* Component Object
*
*
*
*/
@JsonProperty("component")
private Component component;
/**
* Organizational Entity Object
*
*
*
*/
@JsonProperty("manufacture")
@JsonPropertyDescription("")
private OrganizationalEntity manufacture;
/**
* Organizational Entity Object
*
*
*
*/
@JsonProperty("supplier")
@JsonPropertyDescription("")
private OrganizationalEntity supplier;
/**
* License Choice
*
* EITHER (list of SPDX licenses and/or named licenses) OR (tuple of one SPDX License Expression)
*
*/
@JsonProperty("licenses")
@JsonPropertyDescription("EITHER (list of SPDX licenses and/or named licenses) OR (tuple of one SPDX License Expression)")
private List licenses = new ArrayList();
/**
* Properties
*
* Provides the ability to document properties in a name-value store. This provides flexibility to include data not officially supported in the standard without having to use additional namespaces or create extensions. Unlike key-value stores, properties support duplicate names, each potentially having different values. Property names of interest to the general public are encouraged to be registered in the [CycloneDX Property Taxonomy](https://github.com/CycloneDX/cyclonedx-property-taxonomy). Formal registration is OPTIONAL.
*
*/
@JsonProperty("properties")
@JsonPropertyDescription("Provides the ability to document properties in a name-value store. This provides flexibility to include data not officially supported in the standard without having to use additional namespaces or create extensions. Unlike key-value stores, properties support duplicate names, each potentially having different values. Property names of interest to the general public are encouraged to be registered in the [CycloneDX Property Taxonomy](https://github.com/CycloneDX/cyclonedx-property-taxonomy). Formal registration is OPTIONAL.")
private List properties = new ArrayList();
/**
* Timestamp
*
* The date and time (timestamp) when the BOM was created.
*
*/
@JsonProperty("timestamp")
public Date getTimestamp() {
return timestamp;
}
/**
* Timestamp
*
* The date and time (timestamp) when the BOM was created.
*
*/
@JsonProperty("timestamp")
public void setTimestamp(Date timestamp) {
this.timestamp = timestamp;
}
/**
* Lifecycles
*
*
*
*/
@JsonProperty("lifecycles")
public List getLifecycles() {
return lifecycles;
}
/**
* Lifecycles
*
*
*
*/
@JsonProperty("lifecycles")
public void setLifecycles(List lifecycles) {
this.lifecycles = lifecycles;
}
@JsonProperty("tools")
public Object getTools() {
return tools;
}
@JsonProperty("tools")
public void setTools(Object tools) {
this.tools = tools;
}
/**
* Authors
*
* The person(s) who created the BOM. Authors are common in BOMs created through manual processes. BOMs created through automated means may not have authors.
*
*/
@JsonProperty("authors")
public List getAuthors() {
return authors;
}
/**
* Authors
*
* The person(s) who created the BOM. Authors are common in BOMs created through manual processes. BOMs created through automated means may not have authors.
*
*/
@JsonProperty("authors")
public void setAuthors(List authors) {
this.authors = authors;
}
/**
* Component Object
*
*
*
*/
@JsonProperty("component")
public Component getComponent() {
return component;
}
/**
* Component Object
*
*
*
*/
@JsonProperty("component")
public void setComponent(Component component) {
this.component = component;
}
/**
* Organizational Entity Object
*
*
*
*/
@JsonProperty("manufacture")
public OrganizationalEntity getManufacture() {
return manufacture;
}
/**
* Organizational Entity Object
*
*
*
*/
@JsonProperty("manufacture")
public void setManufacture(OrganizationalEntity manufacture) {
this.manufacture = manufacture;
}
/**
* Organizational Entity Object
*
*
*
*/
@JsonProperty("supplier")
public OrganizationalEntity getSupplier() {
return supplier;
}
/**
* Organizational Entity Object
*
*
*
*/
@JsonProperty("supplier")
public void setSupplier(OrganizationalEntity supplier) {
this.supplier = supplier;
}
/**
* License Choice
*
* EITHER (list of SPDX licenses and/or named licenses) OR (tuple of one SPDX License Expression)
*
*/
@JsonProperty("licenses")
public List getLicenses() {
return licenses;
}
/**
* License Choice
*
* EITHER (list of SPDX licenses and/or named licenses) OR (tuple of one SPDX License Expression)
*
*/
@JsonProperty("licenses")
public void setLicenses(List licenses) {
this.licenses = licenses;
}
/**
* Properties
*
* Provides the ability to document properties in a name-value store. This provides flexibility to include data not officially supported in the standard without having to use additional namespaces or create extensions. Unlike key-value stores, properties support duplicate names, each potentially having different values. Property names of interest to the general public are encouraged to be registered in the [CycloneDX Property Taxonomy](https://github.com/CycloneDX/cyclonedx-property-taxonomy). Formal registration is OPTIONAL.
*
*/
@JsonProperty("properties")
public List getProperties() {
return properties;
}
/**
* Properties
*
* Provides the ability to document properties in a name-value store. This provides flexibility to include data not officially supported in the standard without having to use additional namespaces or create extensions. Unlike key-value stores, properties support duplicate names, each potentially having different values. Property names of interest to the general public are encouraged to be registered in the [CycloneDX Property Taxonomy](https://github.com/CycloneDX/cyclonedx-property-taxonomy). Formal registration is OPTIONAL.
*
*/
@JsonProperty("properties")
public void setProperties(List properties) {
this.properties = properties;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(Metadata.class.getName()).append('@').append(Integer.toHexString(System.identityHashCode(this))).append('[');
sb.append("timestamp");
sb.append('=');
sb.append(((this.timestamp == null)?"":this.timestamp));
sb.append(',');
sb.append("lifecycles");
sb.append('=');
sb.append(((this.lifecycles == null)?"":this.lifecycles));
sb.append(',');
sb.append("tools");
sb.append('=');
sb.append(((this.tools == null)?"":this.tools));
sb.append(',');
sb.append("authors");
sb.append('=');
sb.append(((this.authors == null)?"":this.authors));
sb.append(',');
sb.append("component");
sb.append('=');
sb.append(((this.component == null)?"":this.component));
sb.append(',');
sb.append("manufacture");
sb.append('=');
sb.append(((this.manufacture == null)?"":this.manufacture));
sb.append(',');
sb.append("supplier");
sb.append('=');
sb.append(((this.supplier == null)?"":this.supplier));
sb.append(',');
sb.append("licenses");
sb.append('=');
sb.append(((this.licenses == null)?"":this.licenses));
sb.append(',');
sb.append("properties");
sb.append('=');
sb.append(((this.properties == null)?"":this.properties));
sb.append(',');
if (sb.charAt((sb.length()- 1)) == ',') {
sb.setCharAt((sb.length()- 1), ']');
} else {
sb.append(']');
}
return sb.toString();
}
@Override
public int hashCode() {
int result = 1;
result = ((result* 31)+((this.manufacture == null)? 0 :this.manufacture.hashCode()));
result = ((result* 31)+((this.component == null)? 0 :this.component.hashCode()));
result = ((result* 31)+((this.licenses == null)? 0 :this.licenses.hashCode()));
result = ((result* 31)+((this.supplier == null)? 0 :this.supplier.hashCode()));
result = ((result* 31)+((this.lifecycles == null)? 0 :this.lifecycles.hashCode()));
result = ((result* 31)+((this.tools == null)? 0 :this.tools.hashCode()));
result = ((result* 31)+((this.properties == null)? 0 :this.properties.hashCode()));
result = ((result* 31)+((this.timestamp == null)? 0 :this.timestamp.hashCode()));
result = ((result* 31)+((this.authors == null)? 0 :this.authors.hashCode()));
return result;
}
@Override
public boolean equals(Object other) {
if (other == this) {
return true;
}
if ((other instanceof Metadata) == false) {
return false;
}
Metadata rhs = ((Metadata) other);
return ((((((((((this.manufacture == rhs.manufacture)||((this.manufacture!= null)&&this.manufacture.equals(rhs.manufacture)))&&((this.component == rhs.component)||((this.component!= null)&&this.component.equals(rhs.component))))&&((this.licenses == rhs.licenses)||((this.licenses!= null)&&this.licenses.equals(rhs.licenses))))&&((this.supplier == rhs.supplier)||((this.supplier!= null)&&this.supplier.equals(rhs.supplier))))&&((this.lifecycles == rhs.lifecycles)||((this.lifecycles!= null)&&this.lifecycles.equals(rhs.lifecycles))))&&((this.tools == rhs.tools)||((this.tools!= null)&&this.tools.equals(rhs.tools))))&&((this.properties == rhs.properties)||((this.properties!= null)&&this.properties.equals(rhs.properties))))&&((this.timestamp == rhs.timestamp)||((this.timestamp!= null)&&this.timestamp.equals(rhs.timestamp))))&&((this.authors == rhs.authors)||((this.authors!= null)&&this.authors.equals(rhs.authors))));
}
}