blob: 28083e46f332b8287f690ae1ba2ae9543632b56f [file] [log] [blame]
/*
* 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.sling.event.impl.jobs.queues;
import org.apache.sling.event.impl.jobs.InternalJobState;
import org.apache.sling.event.jobs.consumer.JobExecutionResult;
/**
* The job execution result.
*/
public class JobExecutionResultImpl implements JobExecutionResult {
/** Constant object for the success case. */
public static final JobExecutionResultImpl SUCCEEDED = new JobExecutionResultImpl(InternalJobState.SUCCEEDED, null, null);
/** Constant object for the cancelled case. */
public static final JobExecutionResultImpl CANCELLED = new JobExecutionResultImpl(InternalJobState.CANCELLED, null, null);
/** Constant object for the failed case. */
public static final JobExecutionResultImpl FAILED = new JobExecutionResultImpl(InternalJobState.FAILED, null, null);
/** The state of the execution. */
private final InternalJobState state;
/** Optional message. */
private final String message;
/** Optional retry delay. */
private final Long retryDelayInMs;
/**
* Create a new result
* @param state The result state
* @param message Optional Message
* @param retryDelayInMs Optional retry delay
*/
public JobExecutionResultImpl(final InternalJobState state,
final String message,
final Long retryDelayInMs) {
this.state = state;
this.message = message;
this.retryDelayInMs = retryDelayInMs;
}
/**
* Get the internal state
* @return The state.
*/
public InternalJobState getState() {
return this.state;
}
@Override
public boolean succeeded() {
return this.state == InternalJobState.SUCCEEDED;
}
@Override
public boolean cancelled() {
return this.state == InternalJobState.CANCELLED;
}
@Override
public boolean failed() {
return this.state == InternalJobState.FAILED;
}
@Override
public String getMessage() {
return this.message;
}
@Override
public Long getRetryDelayInMs() {
return this.retryDelayInMs;
}
@Override
public String toString() {
return "JobExecutionResultImpl [state=" + state + ", message="
+ message + ", retryDelayInMs=" + retryDelayInMs + "]";
}
}