/* * Copyright 2015 Red Hat, Inc. and/or its affiliates. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.kie.server.api.model; import java.util.ArrayList; import java.util.List; import com.thoughtworks.xstream.annotations.XStreamAlias; import com.thoughtworks.xstream.annotations.XStreamImplicit; import javax.xml.bind.annotation.XmlAttribute; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; @XmlRootElement(name = "kie-container") @XStreamAlias( "kie-container" ) public class KieContainerResource { @XStreamAlias( "container-id" ) private String containerId; @XStreamAlias( "release-id" ) private ReleaseId releaseId; @XStreamAlias( "resolved-release-id" ) private ReleaseId resolvedReleaseId; @XStreamAlias( "status" ) private KieContainerStatus status; @XStreamAlias( "scanner" ) private KieScannerResource scanner; @XStreamImplicit private List<KieServerConfigItem> configItems = new ArrayList<KieServerConfigItem>(); @XStreamImplicit private List<Message> messages = new ArrayList<Message>(); @XStreamAlias( "container-alias" ) private String containerAlias; public KieContainerResource() { } public KieContainerResource(ReleaseId releaseId) { this( null, releaseId, null, null ); } public KieContainerResource(String containerId, ReleaseId releaseId) { this( containerId, releaseId, null, null ); } public KieContainerResource(String containerId, ReleaseId releaseId, KieContainerStatus status) { this( containerId, releaseId, null, status ); } public KieContainerResource(String containerId, ReleaseId releaseId, ReleaseId resolvedReleaseId, KieContainerStatus status) { this.containerId = containerId; this.releaseId = releaseId; this.resolvedReleaseId = resolvedReleaseId; this.status = status; } @XmlAttribute(name = "container-id") public String getContainerId() { return containerId; } public void setContainerId(String containerId) { this.containerId = containerId; } @XmlAttribute(name = "status") public KieContainerStatus getStatus() { return status; } public void setStatus(KieContainerStatus status) { this.status = status; } @XmlElement(name = "release-id") public ReleaseId getReleaseId() { return releaseId; } public void setReleaseId(ReleaseId releaseId) { this.releaseId = releaseId; } @XmlElement(name = "resolved-release-id") public ReleaseId getResolvedReleaseId() { return resolvedReleaseId; } public void setResolvedReleaseId(ReleaseId resolvedReleaseId) { this.resolvedReleaseId = resolvedReleaseId; } @XmlElement public KieScannerResource getScanner() { return scanner; } public void setScanner(KieScannerResource scanner) { this.scanner = scanner; } @XmlElement(name="config-items") public List<KieServerConfigItem> getConfigItems() { return configItems; } public void setConfigItems(List<KieServerConfigItem> configItems) { this.configItems = configItems; } public void addConfigItem(KieServerConfigItem configItem) { this.configItems.add(configItem); } @XmlElement(name="messages") public List<Message> getMessages() { return messages; } public void setMessages(List<Message> messages) { this.messages = messages; } @XmlAttribute(name = "container-alias") public String getContainerAlias() { return containerAlias; } public void setContainerAlias(String containerAlias) { this.containerAlias = containerAlias; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((containerId == null) ? 0 : containerId.hashCode()); result = prime * result + ((releaseId == null) ? 0 : releaseId.hashCode()); result = prime * result + ((resolvedReleaseId == null) ? 0 : resolvedReleaseId.hashCode()); result = prime * result + ((containerAlias == null) ? 0 : containerAlias.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; KieContainerResource other = (KieContainerResource) obj; if (containerId == null) { if (other.containerId != null) return false; } else if (!containerId.equals(other.containerId)) return false; if (releaseId == null) { if (other.releaseId != null) return false; } else if (!releaseId.equals(other.releaseId)) return false; if (resolvedReleaseId == null) { if (other.resolvedReleaseId != null) return false; } else if (!resolvedReleaseId.equals(other.resolvedReleaseId)) return false; if (containerAlias == null) { if (other.containerAlias != null) return false; } else if (!containerAlias.equals(other.containerAlias)) return false; return true; } @Override public String toString() { return "KieContainerResource [containerId=" + containerId + ", releaseId=" + releaseId + ", resolvedReleaseId=" + resolvedReleaseId + ", status=" + status + "]"; } }