181 lines
5.3 KiB
Java
181 lines
5.3 KiB
Java
/*
|
|
* Copyright 2015 FUJITSU LIMITED
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
|
|
* in compliance with the License. You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software distributed under the License
|
|
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
|
|
* or implied. See the License for the specific language governing permissions and limitations under
|
|
* the License.
|
|
*
|
|
*/
|
|
package monasca.common.hibernate.db;
|
|
|
|
import javax.persistence.CascadeType;
|
|
import javax.persistence.Column;
|
|
import javax.persistence.Entity;
|
|
import javax.persistence.FetchType;
|
|
import javax.persistence.JoinColumn;
|
|
import javax.persistence.ManyToOne;
|
|
import javax.persistence.NamedQueries;
|
|
import javax.persistence.NamedQuery;
|
|
import javax.persistence.Table;
|
|
|
|
import org.hibernate.annotations.OnDelete;
|
|
import org.hibernate.annotations.OnDeleteAction;
|
|
import org.joda.time.DateTime;
|
|
|
|
import monasca.common.model.alarm.AlarmOperator;
|
|
|
|
@Entity
|
|
@Table(name = "sub_alarm_definition")
|
|
@NamedQueries({
|
|
@NamedQuery(
|
|
name = SubAlarmDefinitionDb.Queries.BY_ALARMDEFINITION_ID,
|
|
query = "from SubAlarmDefinitionDb sad where sad.alarmDefinition.id = :id order by sad.id"
|
|
),
|
|
@NamedQuery(
|
|
name = SubAlarmDefinitionDb.Queries.BY_ALARMDEFINITIONDIMENSION_SUBEXPRESSION_ID,
|
|
query = "SELECT sadd from " +
|
|
"SubAlarmDefinitionDb sad, " +
|
|
"SubAlarmDefinitionDimensionDb sadd " +
|
|
"where sadd.subAlarmDefinitionDimensionId.subExpression.id = sad.id " +
|
|
"AND sad.alarmDefinition.id = :id"
|
|
),
|
|
@NamedQuery(
|
|
name = SubAlarmDefinitionDb.Queries.DELETE_BY_IDS,
|
|
query = "delete SubAlarmDefinitionDb where id in :ids"
|
|
)
|
|
})
|
|
public class SubAlarmDefinitionDb
|
|
extends AbstractAuditablePersistable<String> {
|
|
private static final long serialVersionUID = 8898225134690206198L;
|
|
|
|
@JoinColumn(name = "alarm_definition_id", nullable = false)
|
|
@ManyToOne(cascade = {
|
|
CascadeType.REMOVE,
|
|
CascadeType.PERSIST,
|
|
CascadeType.REFRESH
|
|
}, fetch = FetchType.LAZY, optional = false)
|
|
@OnDelete(action = OnDeleteAction.CASCADE)
|
|
private AlarmDefinitionDb alarmDefinition;
|
|
|
|
@Column(name = "function", length = 10, nullable = false)
|
|
private String function;
|
|
|
|
@Column(name = "metric_name", length = 100)
|
|
private String metricName;
|
|
|
|
@Column(name = "operator", length = 5, nullable = false)
|
|
private String operator;
|
|
|
|
@Column(name = "threshold", nullable = false)
|
|
private Double threshold;
|
|
|
|
@Column(name = "period", length = 11, nullable = false)
|
|
private Integer period;
|
|
|
|
@Column(name = "periods", length = 11, nullable = false)
|
|
private Integer periods;
|
|
|
|
public SubAlarmDefinitionDb() {
|
|
super();
|
|
}
|
|
|
|
public SubAlarmDefinitionDb(String id,
|
|
AlarmDefinitionDb alarmDefinition,
|
|
String function,
|
|
String metricName,
|
|
String operator,
|
|
Double threshold,
|
|
Integer period,
|
|
Integer periods,
|
|
DateTime created_at,
|
|
DateTime updated_at) {
|
|
super(id, created_at, updated_at);
|
|
this.alarmDefinition = alarmDefinition;
|
|
this.function = function;
|
|
this.metricName = metricName;
|
|
this.operator = operator;
|
|
this.threshold = threshold;
|
|
this.period = period;
|
|
this.periods = periods;
|
|
}
|
|
|
|
public SubAlarmDefinitionDb setPeriods(final Integer periods) {
|
|
this.periods = periods;
|
|
return this;
|
|
}
|
|
|
|
public SubAlarmDefinitionDb setPeriod(final Integer period) {
|
|
this.period = period;
|
|
return this;
|
|
}
|
|
|
|
public SubAlarmDefinitionDb setThreshold(final Double threshold) {
|
|
this.threshold = threshold;
|
|
return this;
|
|
}
|
|
|
|
public SubAlarmDefinitionDb setOperator(final String operator) {
|
|
this.operator = operator;
|
|
return this;
|
|
}
|
|
|
|
public SubAlarmDefinitionDb setOperator(final AlarmOperator operator) {
|
|
return this.setOperator(operator.name().toUpperCase());
|
|
}
|
|
|
|
public SubAlarmDefinitionDb setMetricName(final String metricName) {
|
|
this.metricName = metricName;
|
|
return this;
|
|
}
|
|
|
|
public SubAlarmDefinitionDb setFunction(final String function) {
|
|
this.function = function;
|
|
return this;
|
|
}
|
|
|
|
public SubAlarmDefinitionDb setAlarmDefinition(final AlarmDefinitionDb alarmDefinition) {
|
|
this.alarmDefinition = alarmDefinition;
|
|
return this;
|
|
}
|
|
|
|
public AlarmDefinitionDb getAlarmDefinition() {
|
|
return this.alarmDefinition;
|
|
}
|
|
|
|
public String getFunction() {
|
|
return this.function;
|
|
}
|
|
|
|
public String getMetricName() {
|
|
return this.metricName;
|
|
}
|
|
|
|
public String getOperator() {
|
|
return this.operator;
|
|
}
|
|
|
|
public Double getThreshold() {
|
|
return this.threshold;
|
|
}
|
|
|
|
public Integer getPeriod() {
|
|
return this.period;
|
|
}
|
|
|
|
public Integer getPeriods() {
|
|
return this.periods;
|
|
}
|
|
|
|
public interface Queries {
|
|
String BY_ALARMDEFINITION_ID = "SubAlarmDefinition.byAlarmDefinitionId";
|
|
String BY_ALARMDEFINITIONDIMENSION_SUBEXPRESSION_ID = "SubAlarmDefinition.byAlarmDefinitionDimension.subExpressionId";
|
|
String DELETE_BY_IDS = "SubAlarmDefinition.deleteByIds";
|
|
}
|
|
}
|