diff --git a/src/main/java/altk/comm/engine/Broadcast.java b/src/main/java/altk/comm/engine/Broadcast.java index 02d4c40..9189034 100644 --- a/src/main/java/altk/comm/engine/Broadcast.java +++ b/src/main/java/altk/comm/engine/Broadcast.java @@ -22,7 +22,7 @@ import javax.servlet.http.HttpServletResponse; import org.apache.log4j.Logger; import org.json.simple.JSONObject; -import altk.comm.engine.Job.JobStatus; +import altk.comm.engine.Job.CommJobStatus; import altk.comm.engine.exception.BroadcastError; import altk.comm.engine.exception.BroadcastException; import altk.comm.engine.exception.EngineException; @@ -1271,7 +1271,7 @@ public abstract class Broadcast */ public void postJobStatus(Job job) { - if (job.jobStatus == JobStatus.SUCCESS) successCount.incrementAndGet(); + if (job.jobStatus == CommJobStatus.SUCCESS) successCount.incrementAndGet(); if (postback != null) { JobReport report = mkJobReport(); diff --git a/src/main/java/altk/comm/engine/Job.java b/src/main/java/altk/comm/engine/Job.java index 64611b1..4cd99e7 100644 --- a/src/main/java/altk/comm/engine/Job.java +++ b/src/main/java/altk/comm/engine/Job.java @@ -5,60 +5,40 @@ package altk.comm.engine; * @author Yuk-Ming * */ + public class Job { - /** - * Because enum has no inheritance, JobStatus is the union of - * all possible job status from all backend engines built on CommEngine. - */ - static public enum JobStatus - { - // TODO: Some of them, like CANCELED and EXPIRED, should not be used, and should be cleaned out. - TRYING(false), // VoiceEngine - GO_NEXT_PHONE(false), // VoiceEngine - //TRUNK_ERROR(false), - LONG_DURATION(true), // VoiceEngine - SUCCESS(true), - NO_MORE_RETRY(true), // VoiceEngine - ADDRESS_ERROR(true), // All - SERVICE_PROVIDER_PROTOCOL_ERROR(true), // SMS - SERVICE_PROVIDER_GENERATED_ERROR(true), // SMS - SERVICE_PROVIDER_HTTP_ERROR(true), // SMS - SERVICE_PROVIDER_CONNECT_ERROR(true), // SMS - FORBIDDEN(true), // SMS - HTTP 403 - SPAM(true), // SMS - SERVICE_PROVIDER_OTHER_ERROR(true), // Email - CANCELED(true), // Voice - is it really? - EXPIRED(true), // Voice - is it really? - MESSAGE_ERROR(true), // Email, SMS - MSG_TOO_LONG(true), // SMS - NOT_FOUND(true), // SMS - INVALID_MEDIA_TYPE(true), // MMS - SERVICE_ACCESS_BLOCKED(true), // SMS - PLATFORM_ERROR(true), // SMS - FAILED(true), // SMS - UNKNOWN_ERROR(true), // SMS - NOT_AUTHORIZED(true), // SMS - BAD_REQUEST(true), // SMS - THROTTLE_LIMIT_REACHED(true), // SMS - UNPROCESSABLE_ENTITY(true), // SMS - PAYMENT_REQUIRED(true) , - ABORT(true), - ; - - private boolean isTerminal; - - private JobStatus(boolean isTerminal) - { - this.isTerminal = isTerminal; - } - - public boolean isTerminal() - { - return isTerminal; - } + /** + * Named but empty interface designed for the purpose of extending a specific enum. + */ + public interface JobStatus + { + } - } + /** + * Base JobStatus values common to all CommEngine's. + */ + static public enum CommJobStatus implements JobStatus + { + SUCCESS, + ADDRESS_ERROR, + CANCELED, + EXPIRED, + SERVICE_PROVIDER_PROTOCOL_ERROR, + SERVICE_PROVIDER_CONNECT_ERROR, + SERVICE_PROVIDER_HTTP_ERROR, + SERVICE_PROVIDER_GENERATED_ERROR, + SERVICE_PROVIDER_OTHER_ERROR, + FORBIDDEN, + UNKNOWN_ERROR, + NOT_AUTHORIZED, + BAD_REQUEST, + ABORT, + PLATFORM_ERROR, + FAILED, + NOT_FOUND, + PAYMENT_REQUIRED; + } public Recipient recipient;