package com.sequenceiq.cloudbreak.domain;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.SequenceGenerator;
@Entity
@NamedQueries({
@NamedQuery(
name = "SecurityGroup.findAllBySecurityGroupId",
query = "SELECT r FROM SecurityRule r "
+ "WHERE r.securityGroup.id= :securityGroupId")
})
public class SecurityRule implements ProvisionEntity {
private static final String PORT_DELIMITER = ",";
@Id
@GeneratedValue(strategy = GenerationType.AUTO, generator = "securityrule_generator")
@SequenceGenerator(name = "securityrule_generator", sequenceName = "securityrule_id_seq", allocationSize = 1)
private Long id;
@ManyToOne
private SecurityGroup securityGroup;
private String cidr;
private String ports;
private String protocol;
@Column(nullable = false)
private boolean modifiable;
public SecurityRule() { }
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getCidr() {
return cidr;
}
public void setCidr(String cidr) {
this.cidr = cidr;
}
public SecurityGroup getSecurityGroup() {
return securityGroup;
}
public void setSecurityGroup(SecurityGroup securityGroup) {
this.securityGroup = securityGroup;
}
public String[] getPorts() {
return ports.split(PORT_DELIMITER);
}
public void setPorts(String ports) {
this.ports = ports;
}
public String getProtocol() {
return protocol;
}
public void setProtocol(String protocol) {
this.protocol = protocol;
}
public boolean isModifiable() {
return modifiable;
}
public void setModifiable(boolean modifiable) {
this.modifiable = modifiable;
}
@Override
public String toString() {
return "SecurityRule{"
+ "id=" + id
+ ", securityGroup=" + securityGroup
+ ", cidr='" + cidr + '\''
+ ", ports='" + ports + '\''
+ ", protocol='" + protocol + '\''
+ ", modifiable=" + modifiable
+ '}';
}
}