package org.zstack.header.network.service;
import org.zstack.header.query.Queryable;
import org.zstack.header.search.Inventory;
import javax.persistence.JoinColumn;
import java.sql.Timestamp;
import java.util.*;
@Inventory(mappingVOClass = NetworkServiceProviderVO.class)
public class NetworkServiceProviderInventory {
private String uuid;
private String name;
private String description;
private String type;
private Timestamp createDate;
private Timestamp lastOpDate;
@Queryable(mappingClass = NetworkServiceTypeInventory.class,
joinColumn = @JoinColumn(name = "networkServiceProviderUuid", referencedColumnName = "type"))
private Set<String> networkServiceTypes;
@Queryable(mappingClass = NetworkServiceProviderL2NetworkRefInventory.class,
joinColumn = @JoinColumn(name = "networkServiceProviderUuid", referencedColumnName = "l2NetworkUuid"))
private Set<String> attachedL2NetworkUuids;
protected NetworkServiceProviderInventory(NetworkServiceProviderVO vo) {
this.setUuid(vo.getUuid());
this.setName(vo.getName());
this.setDescription(vo.getDescription());
this.setCreateDate(vo.getCreateDate());
this.setLastOpDate(vo.getLastOpDate());
this.setNetworkServiceTypes(vo.getNetworkServiceTypes());
this.setType(vo.getType());
this.attachedL2NetworkUuids = new HashSet<String>();
for (NetworkServiceProviderL2NetworkRefVO ref : vo.getAttachedL2NetworkRefs()) {
this.attachedL2NetworkUuids.add(ref.getL2NetworkUuid());
}
}
public static NetworkServiceProviderInventory valueOf(NetworkServiceProviderVO vo) {
NetworkServiceProviderInventory inv = new NetworkServiceProviderInventory(vo);
return inv;
}
public static List<NetworkServiceProviderInventory> valueOf(Collection<NetworkServiceProviderVO> vos) {
List<NetworkServiceProviderInventory> invs = new ArrayList<NetworkServiceProviderInventory>(vos.size());
for (NetworkServiceProviderVO vo : vos) {
invs.add(valueOf(vo));
}
return invs;
}
public String getUuid() {
return uuid;
}
public void setUuid(String uuid) {
this.uuid = uuid;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public Timestamp getCreateDate() {
return createDate;
}
public void setCreateDate(Timestamp createDate) {
this.createDate = createDate;
}
public Timestamp getLastOpDate() {
return lastOpDate;
}
public void setLastOpDate(Timestamp lastOpDate) {
this.lastOpDate = lastOpDate;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public Set<String> getNetworkServiceTypes() {
return networkServiceTypes;
}
public void setNetworkServiceTypes(Set<String> networkServiceTypes) {
this.networkServiceTypes = networkServiceTypes;
}
public Set<String> getAttachedL2NetworkUuids() {
return attachedL2NetworkUuids;
}
public void setAttachedL2NetworkUuids(Set<String> attachedL2NetworkUuids) {
this.attachedL2NetworkUuids = attachedL2NetworkUuids;
}
}