/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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 org.apache.ambari.server.orm.entities;
import java.util.Collection;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.TableGenerator;
@Table(name = "requestschedule")
@Entity
@NamedQueries({
@NamedQuery(name = "allReqSchedules", query =
"SELECT reqSchedule FROM RequestScheduleEntity reqSchedule"),
@NamedQuery(name = "reqScheduleByStatus", query =
"SELECT reqSchedule FROM RequestScheduleEntity reqSchedule " +
"WHERE reqSchedule.status=:status")
})
@TableGenerator(name = "schedule_id_generator",
table = "ambari_sequences", pkColumnName = "sequence_name", valueColumnName = "sequence_value"
, pkColumnValue = "requestschedule_id_seq"
, initialValue = 1
)
public class RequestScheduleEntity {
@Id
@Column(name = "schedule_id", nullable = false, insertable = true, updatable = true)
@GeneratedValue(strategy = GenerationType.TABLE, generator = "schedule_id_generator")
private long scheduleId;
@Column(name = "cluster_id", insertable = false, updatable = false, nullable = false)
private Long clusterId;
@Column(name = "description")
private String description;
@Column(name = "status")
private String status;
@Column(name = "batch_separation_seconds")
private Integer batchSeparationInSeconds;
@Column(name = "batch_toleration_limit")
private Integer batchTolerationLimit;
@Column(name = "authenticated_user_id")
private Integer authenticatedUserId;
@Column(name = "create_user")
private String createUser;
@Column(name = "create_timestamp")
private Long createTimestamp;
@Column(name = "update_user")
protected String updateUser;
@Column(name = "update_timestamp")
private Long updateTimestamp;
@Column(name = "minutes")
private String minutes;
@Column(name = "hours")
private String hours;
@Column(name = "days_of_month")
private String daysOfMonth;
@Column(name = "month")
private String month;
@Column(name = "day_of_week")
private String dayOfWeek;
@Column(name = "yearToSchedule")
private String year;
@Column(name = "starttime")
private String startTime;
@Column(name = "endtime")
private String endTime;
@Column(name = "last_execution_status")
private String lastExecutionStatus;
@ManyToOne
@JoinColumn(name = "cluster_id", referencedColumnName = "cluster_id", nullable = false)
private ClusterEntity clusterEntity;
@OneToMany(mappedBy = "requestScheduleEntity", cascade = CascadeType.ALL)
private Collection<RequestScheduleBatchRequestEntity>
requestScheduleBatchRequestEntities;
@OneToMany(mappedBy = "requestScheduleEntity")
private List<RequestEntity> requestEntities;
public long getScheduleId() {
return scheduleId;
}
public void setScheduleId(long scheduleId) {
this.scheduleId = scheduleId;
}
public Long getClusterId() {
return clusterId;
}
public void setClusterId(Long clusterId) {
this.clusterId = clusterId;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public Integer getBatchSeparationInSeconds() {
return batchSeparationInSeconds;
}
public void setBatchSeparationInSeconds(Integer batchSeparationInSeconds) {
this.batchSeparationInSeconds = batchSeparationInSeconds;
}
public Integer getBatchTolerationLimit() {
return batchTolerationLimit;
}
public void setBatchTolerationLimit(Integer batchTolerationLimit) {
this.batchTolerationLimit = batchTolerationLimit;
}
public String getCreateUser() {
return createUser;
}
public void setCreateUser(String createUser) {
this.createUser = createUser;
}
public Long getCreateTimestamp() {
return createTimestamp;
}
public void setCreateTimestamp(Long createTimestamp) {
this.createTimestamp = createTimestamp;
}
public String getUpdateUser() {
return updateUser;
}
public void setUpdateUser(String updateUser) {
this.updateUser = updateUser;
}
public Long getUpdateTimestamp() {
return updateTimestamp;
}
public void setUpdateTimestamp(Long updateTimestamp) {
this.updateTimestamp = updateTimestamp;
}
public String getMinutes() {
return minutes;
}
public void setMinutes(String minutes) {
this.minutes = minutes;
}
public String getHours() {
return hours;
}
public void setHours(String hours) {
this.hours = hours;
}
public String getDaysOfMonth() {
return daysOfMonth;
}
public void setDaysOfMonth(String daysOfMonth) {
this.daysOfMonth = daysOfMonth;
}
public String getMonth() {
return month;
}
public void setMonth(String month) {
this.month = month;
}
public String getDayOfWeek() {
return dayOfWeek;
}
public void setDayOfWeek(String dayOfWeek) {
this.dayOfWeek = dayOfWeek;
}
public String getYear() {
return year;
}
public void setYear(String year) {
this.year = year;
}
public String getStartTime() {
return startTime;
}
public void setStartTime(String startTime) {
this.startTime = startTime;
}
public String getEndTime() {
return endTime;
}
public void setEndTime(String endTime) {
this.endTime = endTime;
}
public String getLastExecutionStatus() {
return lastExecutionStatus;
}
public void setLastExecutionStatus(String lastExecutionStatus) {
this.lastExecutionStatus = lastExecutionStatus;
}
public ClusterEntity getClusterEntity() {
return clusterEntity;
}
public void setClusterEntity(ClusterEntity clusterEntity) {
this.clusterEntity = clusterEntity;
}
public Collection<RequestScheduleBatchRequestEntity> getRequestScheduleBatchRequestEntities() {
return requestScheduleBatchRequestEntities;
}
public void setRequestScheduleBatchRequestEntities(
Collection<RequestScheduleBatchRequestEntity> requestScheduleBatchRequestEntities) {
this.requestScheduleBatchRequestEntities = requestScheduleBatchRequestEntities;
}
public List<RequestEntity> getRequestEntities() {
return requestEntities;
}
public void setRequestEntities(List<RequestEntity> requestEntities) {
this.requestEntities = requestEntities;
}
public Integer getAuthenticatedUserId() {
return authenticatedUserId;
}
public void setAuthenticatedUserId(Integer authenticatedUser) {
this.authenticatedUserId = authenticatedUser;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
RequestScheduleEntity that = (RequestScheduleEntity) o;
if (scheduleId != that.scheduleId) return false;
if (!clusterId.equals(that.clusterId)) return false;
return true;
}
@Override
public int hashCode() {
int result = (int) (scheduleId ^ (scheduleId >>> 32));
result = 31 * result + clusterId.hashCode();
return result;
}
}