001/**
002 * Licensed to the Apache Software Foundation (ASF) under one
003 * or more contributor license agreements.  See the NOTICE file
004 * distributed with this work for additional information
005 * regarding copyright ownership.  The ASF licenses this file
006 * to you under the Apache License, Version 2.0 (the
007 * "License"); you may not use this file except in compliance
008 * with the License.  You may obtain a copy of the License at
009 *
010 *      http://www.apache.org/licenses/LICENSE-2.0
011 *
012 * Unless required by applicable law or agreed to in writing, software
013 * distributed under the License is distributed on an "AS IS" BASIS,
014 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
015 * See the License for the specific language governing permissions and
016 * limitations under the License.
017 */
018package org.apache.oozie.client.event.message;
019
020import java.util.Date;
021
022import org.apache.oozie.AppType;
023import org.apache.oozie.client.CoordinatorAction;
024import org.apache.oozie.client.event.JobEvent.EventStatus;
025import org.codehaus.jackson.annotate.JsonProperty;
026import org.codehaus.jackson.map.annotate.JsonSerialize;
027
028/**
029 * Class holding attributes related to Coordinator action message
030 *
031 */
032@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
033public class CoordinatorActionMessage extends JobMessage {
034
035    @JsonProperty
036    private CoordinatorAction.Status status;
037    @JsonProperty
038    private Date nominalTime;
039    @JsonProperty
040    private String missingDependency;
041    @JsonProperty
042    private String errorCode;
043    @JsonProperty
044    private String errorMessage;
045
046    /**
047     * Default constructor
048     */
049    public CoordinatorActionMessage() {
050        // Default constructor for jackson
051    }
052
053    /**
054     * Constructs the coordinator action message
055     * @param eventStatus the event status
056     * @param coordinatorActionId the coord action id
057     * @param coordinatorJobId the parent job id
058     * @param startTime the created time of coord action
059     * @param endTime the end time of coord action
060     * @param nominalTime the nominal time of coord action
061     * @param status the status of coord action
062     * @param user the user of coordinator
063     * @param appName the app name of coordinator
064     * @param missingDependency the action's first missing dependency
065     * @param errorCode the action's error code
066     * @param errorMessage the action's error message
067     */
068    public CoordinatorActionMessage(EventStatus eventStatus, String coordinatorActionId,
069            String coordinatorJobId, Date startTime, Date endTime, Date nominalTime, CoordinatorAction.Status status,
070            String user, String appName, String missingDependency, String errorCode, String errorMessage) {
071        super(eventStatus, AppType.COORDINATOR_ACTION, coordinatorActionId, coordinatorJobId, startTime,
072                endTime, user, appName);
073        this.status = status;
074        this.nominalTime = nominalTime;
075        this.missingDependency = missingDependency;
076        this.errorCode = errorCode;
077        this.errorMessage = errorMessage;
078
079    }
080
081    /**
082     * Set the status of coordinator action
083     * @param status
084     */
085    public void setStatus(CoordinatorAction.Status status) {
086        this.status = status;
087    }
088
089    /**
090     * Get the status of coord action
091     * @return the CoordinatorAction status
092     */
093    public CoordinatorAction.Status getStatus() {
094        return status;
095    }
096
097    /**
098     * Set the nominal time
099     * @param nominalTime
100     */
101    public void setNominalTime(Date nominalTime) {
102        this.nominalTime = nominalTime;
103    }
104
105    /**
106     * Get the nominal time
107     * @return the nominal time
108     */
109    public Date getNominalTime() {
110        return nominalTime;
111    }
112
113    /**
114     * Set the error code
115     * @param errorCode
116     */
117    public void setErrorCode(String errorCode) {
118        this.errorCode = errorCode;
119    }
120
121    /**
122     * Get the error code
123     * @return the errorCode
124     */
125    public String getErrorCode() {
126        return errorCode;
127    }
128
129    /**
130     * Set the error message
131     * @param errorMessage
132     */
133    public void setErrorMessage(String errorMessage) {
134        this.errorMessage = errorMessage;
135    }
136
137    /**
138     * Get the error message
139     * @return the errorMessage
140     */
141    public String getErrorMessage() {
142        return errorMessage;
143    }
144
145    /**
146     * Set the missing dependency
147     * @param missingDependency
148     */
149    public void setMissingDependency(String missingDependency) {
150        this.missingDependency = missingDependency;
151    }
152
153    /**
154     * Get the missing dependency
155     * @return the missing Dependency
156     */
157    public String getMissingDependency() {
158        return missingDependency;
159    }
160
161}