package org.opentosca.csarrepo.model.join; import java.io.Serializable; import javax.persistence.Column; import javax.persistence.Embeddable; import javax.persistence.EmbeddedId; import javax.persistence.Entity; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.Table; import org.opentosca.csarrepo.model.CsarFile; import org.opentosca.csarrepo.model.OpenToscaServer; /** * Join entity of the entity Csar and OpenToscaServer * * @author Dennis Przytarski, Thomas Kosch (mail@thomaskosch.com) * */ @Entity @Table(name = "csar_file_open_tosca_server") public class CsarFileOpenToscaServer { @EmbeddedId private CsarFileOpenToscaServerId csarFileOpenToscaServerId; public CsarFileOpenToscaServer() { } public CsarFileOpenToscaServer(CsarFileOpenToscaServerId csarFileOpenToscaServerId) { this.csarFileOpenToscaServerId = csarFileOpenToscaServerId; } @ManyToOne @JoinColumn(name = "csar_file_id", insertable = false, updatable = false) private CsarFile csarFile; @ManyToOne @JoinColumn(name = "open_tosca_server_id", insertable = false, updatable = false) private OpenToscaServer openToscaServer; @Column(name = "location") private String location; /** * @return the Csar file */ public CsarFile getCsarFile() { return csarFile; } /** * @param csarFile * The Csar file */ public void setCsarFile(CsarFile csarFile) { this.csarFile = csarFile; } /** * @return the OpenTosca server */ public OpenToscaServer getOpenToscaServer() { return openToscaServer; } /** * @param openToscaServer * the OpenToscaServer */ public void setOpenToscaServer(OpenToscaServer openToscaServer) { this.openToscaServer = openToscaServer; } public String getLocation() { return location; } public void setLocation(String location) { this.location = location; } /** * Embedded class for wrapping composite primary keys * * @author Dennis Przytarski, Thomas Kosch (mail@thomaskosch.com) * */ @Embeddable public static class CsarFileOpenToscaServerId implements Serializable { private static final long serialVersionUID = 1L; @ManyToOne @JoinColumn(name = "csar_file_id") private CsarFile csarFile; @ManyToOne @JoinColumn(name = "open_tosca_server_id") private OpenToscaServer openToscaServer; public CsarFileOpenToscaServerId() { } public CsarFileOpenToscaServerId(CsarFile csarFile, OpenToscaServer openToscaServer) { this.csarFile = csarFile; this.openToscaServer = openToscaServer; } @Override public boolean equals(Object instance) { if (null == instance) { return false; } if (!(instance instanceof CsarFileOpenToscaServerId)) { return false; } final CsarFileOpenToscaServerId other = (CsarFileOpenToscaServerId) instance; if (!(csarFile.getId().equals(other.getCsarFile().getId()))) return false; if (!(openToscaServer.getId().equals(other.getOpenToscaServer().getId()))) return false; return true; } @Override public int hashCode() { return this.csarFile.hashCode() ^ this.openToscaServer.hashCode(); } /** * @return the Csar */ public CsarFile getCsarFile() { return csarFile; } /** * @return the OpenToscaServer */ public OpenToscaServer getOpenToscaServer() { return openToscaServer; } } }