package org.akaza.openclinica.domain.rule.action;
import org.akaza.openclinica.domain.AbstractMutableDomainObject;
import org.akaza.openclinica.domain.rule.expression.ExpressionBean;
import org.hibernate.annotations.GenericGenerator;
import org.hibernate.annotations.Parameter;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.OneToOne;
import javax.persistence.Table;
@Entity
@Table(name = "rule_action_property")
@GenericGenerator(name = "id-generator", strategy = "native", parameters = { @Parameter(name = "sequence_name", value = "rule_action_property_id_seq") })
public class PropertyBean extends AbstractMutableDomainObject {
private String oid;
private String value;
private ExpressionBean valueExpression;
private RuleActionBean ruleActionBean;
private String property;
@Column(name = "oc_oid")
public String getOid() {
return oid;
}
public void setOid(String oid) {
this.oid = oid;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "rule_expression_id")
public ExpressionBean getValueExpression() {
return valueExpression;
}
public void setValueExpression(ExpressionBean valueExpression) {
this.valueExpression = valueExpression;
}
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "rule_action_id")
public RuleActionBean getRuleActionBean() {
return ruleActionBean;
}
public void setRuleActionBean(RuleActionBean ruleActionBean) {
this.ruleActionBean = ruleActionBean;
}
@Override
public String toString() {
return "PropertyBean [oid=" + oid + ", value=" + value + ", property=" + property + ", valueExpression=" + valueExpression + "]";
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((oid == null) ? 0 : oid.hashCode());
result = prime * result + ((value == null) ? 0 : value.hashCode());
result = prime * result + ((valueExpression == null) ? 0 : valueExpression.hashCode());
result = prime * result + ((property == null) ? 0 : property.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;
PropertyBean other = (PropertyBean) obj;
if (oid == null) {
if (other.oid != null)
return false;
} else if (!oid.equals(other.oid))
return false;
if (value == null) {
if (other.value != null)
return false;
} else if (!value.equals(other.value))
return false;
if (valueExpression == null) {
if (other.valueExpression != null)
return false;
} else if (!valueExpression.equals(other.valueExpression))
return false;
if (property == null) {
if (other.property != null)
return false;
} else if (!property.equals(other.property))
return false;
return true;
}
public String getProperty() {
return property;
}
public void setProperty(String property) {
this.property = property;
}
}