Procházet zdrojové kódy

Re-declare enum JobStatus as an interface so it can be virtually extended by derived Engines

Thie allows for removal of entries from the original enum JobStatus that more
appropriately belong to derivation of CommEngine.  Such data complicates
the management of the original JobStateus when adding new CommEngines.
These entries can be declared in a new enums implementing
the JobStatus interface, for each derived CommEngine.
tags/1.0.21
ymlam před 2 roky
rodič
revize
0364609e68
2 změnil soubory, kde provedl 33 přidání a 53 odebrání
  1. +2
    -2
      src/main/java/altk/comm/engine/Broadcast.java
  2. +31
    -51
      src/main/java/altk/comm/engine/Job.java

+ 2
- 2
src/main/java/altk/comm/engine/Broadcast.java Zobrazit soubor

@@ -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();


+ 31
- 51
src/main/java/altk/comm/engine/Job.java Zobrazit soubor

@@ -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;


Načítá se…
Zrušit
Uložit