// Path: wcs-android-sdk/src/main/java/com/chinanetcenter/wcs/android/entity/OperationMessage.java
// public class OperationMessage {
//     private int status;
//     private String message;
//     private Throwable error;
// 
//     public static OperationMessage fromJsonString(String jsonString, String requestId) throws JSONException {
//         OperationMessage errorMessage = new OperationMessage();
//         if(!TextUtils.isEmpty(jsonString)) {
//             JSONObject jsonObject = new JSONObject(jsonString);
//             jsonObject.put("X-Reqid", requestId);
//             errorMessage.message = jsonObject.toString();
//         }
// 
//         return errorMessage;
//     }
// 
//     public OperationMessage() {
//     }
// 
//     public OperationMessage(int status, String message) {
//         this.status = status;
//         this.message = message;
//         this.error = null;
//     }
// 
//     public OperationMessage(Throwable error) {
//         this.error = error;
//     }
// 
//     public int getStatus() {
//         return this.status;
//     }
// 
//     public void setStatus(int status) {
//         this.status = status;
//     }
// 
//     public String getMessage() {
//         StringBuilder formatMessage = new StringBuilder();
//         if(this.message != null) {
//             formatMessage.append(this.message);
//         }
// 
//         if(this.error != null) {
//             formatMessage.append(" { ");
//             formatMessage.append("ClientMsg: ");
//             formatMessage.append(WCSLogUtil.getStackTraceString(this.error));
//             formatMessage.append(" }");
//         }
// 
//         return formatMessage.toString();
//     }
// 
//     public void setMessage(String message) {
//         this.message = message;
//     }
// }
// 
// Path: wcs-android-sdk/src/main/java/com/chinanetcenter/wcs/android/internal/UploadFileRequest.java
// public class UploadFileRequest extends WcsRequest {
//     //token中已包含bucket
// //    private String bucketName;
//     private String objectKey;
// 
//     private Map<String, String> callbackParam;
// 
//     private Map<String, String> callbackVars;
// 
//     //普通上传进度回调（1/10文件回调一次，可在WcsRequestTask修改）
//     private WcsProgressCallback<UploadFileRequest> progressCallback;
// 
//     public String getObjectKey() {
//         return objectKey;
//     }
// 
//     public void setObjectKey(String objectKey) {
//         this.objectKey = objectKey;
//     }
// 
//     public Map<String, String> getCallbackParam() {
//         return callbackParam;
//     }
// 
//     public void setCallbackParam(Map<String, String> callbackParam) {
//         this.callbackParam = callbackParam;
//     }
// 
//     public Map<String, String> getCallbackVars() {
//         return callbackVars;
//     }
// 
//     public void setCallbackVars(Map<String, String> callbackVars) {
//         this.callbackVars = callbackVars;
//     }
// 
//     public WcsProgressCallback<UploadFileRequest> getProgressCallback() {
//         return progressCallback;
//     }
// 
//     public void setProgressCallback(WcsProgressCallback<UploadFileRequest> progressCallback) {
//         this.progressCallback = progressCallback;
//     }
// }
// 
// Path: wcs-android-sdk/src/main/java/com/chinanetcenter/wcs/android/internal/UploadFileResult.java
// public class UploadFileResult extends WcsResult {
// 
//     // Object的ETag值。
//     private String eTag;
// 
//     // 设置server回调的请求，会返回回调server的响应内容
//     private String serverCallbackReturnBody;
// 
//     /**
//      * 返回新创建的Object的ETag值。
//      */
//     public String getETag() {
//         return eTag;
//     }
// 
//     /**
//      * @param eTag 新创建的Object的ETag值。
//      */
//     public void setETag(String eTag) {
//         this.eTag = eTag;
//     }
// 
//     /**
//      * 如果设置了serverCallback，上传后会返回回调结果
//      *
//      * @return 回调结果的json串
//      */
//     public String getServerCallbackReturnBody() {
//         return serverCallbackReturnBody;
//     }
// 
//     public void setServerCallbackReturnBody(String serverCallbackReturnBody) {
//         this.serverCallbackReturnBody = serverCallbackReturnBody;
//     }
// }
// 
// Path: wcs-android-sdk/src/main/java/com/chinanetcenter/wcs/android/internal/WcsCompletedCallback.java
// public interface WcsCompletedCallback<T1, T2 extends WcsResult> {
//     public void onSuccess(T1 request, T2 result);
// 
//     public void onFailure(T1 request, OperationMessage operationMessage);
// //    public void onFailure(T1 request, Exception e);
// }
// 
// Path: wcs-android-sdk/src/main/java/com/chinanetcenter/wcs/android/internal/WcsProgressCallback.java
// public interface WcsProgressCallback<T> {
//     public void onProgress(T request, long currentSize, long totalSize);
// }


import com.chinanetcenter.wcs.android.entity.OperationMessage;
import com.chinanetcenter.wcs.android.internal.UploadFileRequest;
import com.chinanetcenter.wcs.android.internal.UploadFileResult;
import com.chinanetcenter.wcs.android.internal.WcsCompletedCallback;
import com.chinanetcenter.wcs.android.internal.WcsProgressCallback;
package com.chinanetcenter.wcs.android.listener;



public abstract class FileUploaderStringListener implements
        WcsCompletedCallback<UploadFileRequest, UploadFileResult>,
// Path: wcs-android-sdk/src/main/java/com/chinanetcenter/wcs/android/entity/OperationMessage.java
// public class OperationMessage {
//     private int status;
//     private String message;
//     private Throwable error;
// 
//     public static OperationMessage fromJsonString(String jsonString, String requestId) throws JSONException {
//         OperationMessage errorMessage = new OperationMessage();
//         if(!TextUtils.isEmpty(jsonString)) {
//             JSONObject jsonObject = new JSONObject(jsonString);
//             jsonObject.put("X-Reqid", requestId);
//             errorMessage.message = jsonObject.toString();
//         }
// 
//         return errorMessage;
//     }
// 
//     public OperationMessage() {
//     }
// 
//     public OperationMessage(int status, String message) {
//         this.status = status;
//         this.message = message;
//         this.error = null;
//     }
// 
//     public OperationMessage(Throwable error) {
//         this.error = error;
//     }
// 
//     public int getStatus() {
//         return this.status;
//     }
// 
//     public void setStatus(int status) {
//         this.status = status;
//     }
// 
//     public String getMessage() {
//         StringBuilder formatMessage = new StringBuilder();
//         if(this.message != null) {
//             formatMessage.append(this.message);
//         }
// 
//         if(this.error != null) {
//             formatMessage.append(" { ");
//             formatMessage.append("ClientMsg: ");
//             formatMessage.append(WCSLogUtil.getStackTraceString(this.error));
//             formatMessage.append(" }");
//         }
// 
//         return formatMessage.toString();
//     }
// 
//     public void setMessage(String message) {
//         this.message = message;
//     }
// }
// 
// Path: wcs-android-sdk/src/main/java/com/chinanetcenter/wcs/android/internal/UploadFileRequest.java
// public class UploadFileRequest extends WcsRequest {
//     //token中已包含bucket
// //    private String bucketName;
//     private String objectKey;
// 
//     private Map<String, String> callbackParam;
// 
//     private Map<String, String> callbackVars;
// 
//     //普通上传进度回调（1/10文件回调一次，可在WcsRequestTask修改）
//     private WcsProgressCallback<UploadFileRequest> progressCallback;
// 
//     public String getObjectKey() {
//         return objectKey;
//     }
// 
//     public void setObjectKey(String objectKey) {
//         this.objectKey = objectKey;
//     }
// 
//     public Map<String, String> getCallbackParam() {
//         return callbackParam;
//     }
// 
//     public void setCallbackParam(Map<String, String> callbackParam) {
//         this.callbackParam = callbackParam;
//     }
// 
//     public Map<String, String> getCallbackVars() {
//         return callbackVars;
//     }
// 
//     public void setCallbackVars(Map<String, String> callbackVars) {
//         this.callbackVars = callbackVars;
//     }
// 
//     public WcsProgressCallback<UploadFileRequest> getProgressCallback() {
//         return progressCallback;
//     }
// 
//     public void setProgressCallback(WcsProgressCallback<UploadFileRequest> progressCallback) {
//         this.progressCallback = progressCallback;
//     }
// }
// 
// Path: wcs-android-sdk/src/main/java/com/chinanetcenter/wcs/android/internal/UploadFileResult.java
// public class UploadFileResult extends WcsResult {
// 
//     // Object的ETag值。
//     private String eTag;
// 
//     // 设置server回调的请求，会返回回调server的响应内容
//     private String serverCallbackReturnBody;
// 
//     /**
//      * 返回新创建的Object的ETag值。
//      */
//     public String getETag() {
//         return eTag;
//     }
// 
//     /**
//      * @param eTag 新创建的Object的ETag值。
//      */
//     public void setETag(String eTag) {
//         this.eTag = eTag;
//     }
// 
//     /**
//      * 如果设置了serverCallback，上传后会返回回调结果
//      *
//      * @return 回调结果的json串
//      */
//     public String getServerCallbackReturnBody() {
//         return serverCallbackReturnBody;
//     }
// 
//     public void setServerCallbackReturnBody(String serverCallbackReturnBody) {
//         this.serverCallbackReturnBody = serverCallbackReturnBody;
//     }
// }
// 
// Path: wcs-android-sdk/src/main/java/com/chinanetcenter/wcs/android/internal/WcsCompletedCallback.java
// public interface WcsCompletedCallback<T1, T2 extends WcsResult> {
//     public void onSuccess(T1 request, T2 result);
// 
//     public void onFailure(T1 request, OperationMessage operationMessage);
// //    public void onFailure(T1 request, Exception e);
// }
// 
// Path: wcs-android-sdk/src/main/java/com/chinanetcenter/wcs/android/internal/WcsProgressCallback.java
// public interface WcsProgressCallback<T> {
//     public void onProgress(T request, long currentSize, long totalSize);
// }


// Path: wcs-android-sdk/src/main/java/com/chinanetcenter/wcs/android/listener/FileUploaderStringListener.java
import com.chinanetcenter.wcs.android.entity.OperationMessage;
import com.chinanetcenter.wcs.android.internal.UploadFileRequest;
import com.chinanetcenter.wcs.android.internal.UploadFileResult;
import com.chinanetcenter.wcs.android.internal.WcsCompletedCallback;
import com.chinanetcenter.wcs.android.internal.WcsProgressCallback;

package com.chinanetcenter.wcs.android.listener;



public abstract class FileUploaderStringListener implements
        WcsCompletedCallback<UploadFileRequest, UploadFileResult>,
        WcsProgressCallback<UploadFileRequest> {