package org.opentosca.csarrepo.model;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import org.hibernate.annotations.LazyCollection;
import org.hibernate.annotations.LazyCollectionOption;
import org.opentosca.csarrepo.model.join.CsarFileOpenToscaServer;
import org.opentosca.csarrepo.model.join.OpenToscaServerUser;
/**
*
* Hibernate annotated class for OpenTosca Server
*
* @author Dennis Przytarski, Thomas Kosch (mail@thomaskosch.com)
*
*/
@Entity
@Table(name = "open_tosca_server")
public class OpenToscaServer {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "open_tosca_server_id")
private long id;
@Column(name = "address")
private URL address;
@Column(name = "name")
private String name;
@OneToMany(mappedBy = "openToscaServer")
@LazyCollection(LazyCollectionOption.FALSE)
private List<CloudInstance> cloudInstances;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "csarFileOpenToscaServerId.openToscaServer")
@LazyCollection(LazyCollectionOption.FALSE)
private List<CsarFileOpenToscaServer> csarFileOpenToscaServer = new ArrayList<CsarFileOpenToscaServer>();
@OneToMany(cascade = CascadeType.ALL, mappedBy = "openToscaServerUserId.openToscaServer")
@LazyCollection(LazyCollectionOption.FALSE)
private List<OpenToscaServerUser> openToscaServerUser = new ArrayList<OpenToscaServerUser>();
public OpenToscaServer() {
}
public OpenToscaServer(Long id) {
this.id = id;
}
/**
* This method maps an Csar file instance to the corresponding OpenTosca in
* the database
*
* @param csarFile
* A Csar file object
*
*/
public void addCsarFile(CsarFile csarFile) {
CsarFileOpenToscaServer csarFileOpenToscaServer = new CsarFileOpenToscaServer(
new CsarFileOpenToscaServer.CsarFileOpenToscaServerId(csarFile, this));
csarFileOpenToscaServer.setCsarFile(csarFile);
csarFileOpenToscaServer.setOpenToscaServer(this);
this.csarFileOpenToscaServer.add(csarFileOpenToscaServer);
}
/**
* This method maps an User instance to the corresponding OpenTosca in the
* database
*
* @param user
* A user object
*
*/
public void addUser(User user) {
OpenToscaServerUser openToscaServerUser = new OpenToscaServerUser(
new OpenToscaServerUser.OpenToscaServerUserId(this, user));
openToscaServerUser.setOpenToscaServer(this);
openToscaServerUser.setUser(user);
this.openToscaServerUser.add(openToscaServerUser);
}
/**
* @return the id
*/
public Long getId() {
return id;
}
/**
* @return the name of the OpenTosca instance
*/
public String getName() {
return name;
}
/**
* @param name
* the name of the OpenTosca instance
*/
public void setName(String name) {
this.name = name;
}
/**
* @return the address
*/
public URL getAddress() {
return address;
}
/**
* @param address
* the address
*/
public void setAddress(URL address) {
this.address = address;
}
/**
* @return cloud instances List containing the correlation of the respective
* classes
*/
public List<CloudInstance> getCloudInstances() {
return cloudInstances;
}
/**
* @param cloudInstances
* cloud instances
*/
public void setCloudInstances(List<CloudInstance> cloudInstances) {
this.cloudInstances = cloudInstances;
}
/**
* @return List containing the correlation of the respective classes
*/
public List<CsarFileOpenToscaServer> getCsarFileOpenToscaServer() {
return csarFileOpenToscaServer;
}
/**
* @param csarFileOpenToscaServer
* List containing the correlation of the respective classes
*/
public void setCsarFileOpenToscaServer(List<CsarFileOpenToscaServer> csarFileOpenToscaServer) {
this.csarFileOpenToscaServer = csarFileOpenToscaServer;
}
/**
* @return List containing the correlation of the respective classes
*/
public List<OpenToscaServerUser> getOpenToscaServerUser() {
return openToscaServerUser;
}
/**
* @param openToscaServerUser
* List containing the correlation of the respective classes
*/
public void setOpenToscaServerUser(List<OpenToscaServerUser> openToscaServerUser) {
this.openToscaServerUser = openToscaServerUser;
}
}