package dials.model;
import org.hibernate.annotations.Cache;
import org.hibernate.annotations.CacheConcurrencyStrategy;
import javax.persistence.*;
import java.io.Serializable;
import java.util.Set;
@Entity
@Table(name = "dials_feature_filter")
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class FilterModel implements Serializable {
@Id
@Column(name = "feature_filter_id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer featureFilterId;
@ManyToOne
@JoinColumn(name = "feature_id")
private FeatureModel feature;
@Column(name = "filter_name")
private String filterName;
@OneToMany(mappedBy = "filter", cascade = CascadeType.ALL, fetch = FetchType.EAGER)
private Set<FilterStaticDataModel> staticData;
@OneToOne(optional = true, cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@PrimaryKeyJoinColumn
private FilterDialModel dial;
public Integer getFeatureFilterId() {
return featureFilterId;
}
public void setFeatureFilterId(Integer featureFilterId) {
this.featureFilterId = featureFilterId;
}
public FeatureModel getFeature() {
return feature;
}
public void setFeature(FeatureModel feature) {
this.feature = feature;
}
public String getFilterName() {
return filterName;
}
public void setFilterName(String filterName) {
this.filterName = filterName;
}
public Set<FilterStaticDataModel> getStaticData() {
return staticData;
}
public void setStaticData(Set<FilterStaticDataModel> staticData) {
this.staticData = staticData;
}
public FilterDialModel getDial() {
return dial;
}
public void setDial(FilterDialModel dial) {
this.dial = dial;
}
@Transient
public void updateStaticData(String key, String value) {
for (FilterStaticDataModel staticData : getStaticData()) {
if (staticData.getDataKey().equalsIgnoreCase(key)) {
staticData.setDataValue(value);
}
}
}
}