// Path: source/src/main/java/com/javabaas/JBFile.java
// public class JBFile extends JBObject {
//     private String className = "_File";
// 
//     private String path;
//     private byte[] data;
//     private File file;
//     private String name;
// 
//     public JBFile() {
//     }
// 
//     public JBFile(File file) {
//         this.file = file;
//     }
// 
//     public JBFile(byte[] bytes) {
//         this.data = bytes;
//     }
// 
//     public static JBFile createWithoutData(String id){
//         JBFile jbObject = new JBFile();
//         jbObject.setId(id);
//         return jbObject;
//     }
// 
//     public File getFile(){
//         return file;
//     }
// 
//     @Override
//     public String getClassName() {
//         return className;
//     }
// 
//     public void saveInBackground(final FileUploadCallback callback) {
//         getUploadToken(new ResponseListener<CustomResponse>() {
//             @Override
//             public void onResponse(CustomResponse entity) {
//                 if (uploader != null)
//                     uploader.upload(entity ,JBFile.this,callback);
//             }
// 
//             @Override
//             public void onError(JBException e) {
//                 callback.error(e);
//             }
//         });
//     }
// 
//     private void getUploadToken(ResponseListener<CustomResponse> listener) {
//         JBCloud.getObjectManager(null).customJsonRequest(JBCloud.applicationContext, false , listener, "/api/file/getToken?fileName="+filename+"&platform=" + platform, IObjectManager.Method.GET, null);
//     }
// 
//     private static IUploader uploader = null;
//     private static String platform , filename;
//     public static void setUploader(IUploader uploader){
//         JBFile.uploader = uploader;
//     }
//     static {
//         if (uploader == null){
//             uploader = new QiNiuUploader();
//             platform = "qiniu";
//             filename = "android_file";
//         }
//     }
//     public static void setPlatform(String platform){
//         JBFile.platform = platform;
//     }
// 
//     public static void setFilename(String filename){
//         JBFile.filename = filename;
//     }
// 
//     public String getPath() {
//         return path;
//     }
// 
//     public void setPath(String path) {
//         this.path = path;
//     }
// 
//     public byte[] getData() {
//         return data;
//     }
// 
//     public void setData(byte[] data) {
//         this.data = data;
//     }
// 
//     public static JBFile withFile(File file) {
//         return new JBFile(file);
//     }
// 
//     public static JBFile withByte(byte[] bytes){
//         return new JBFile(bytes);
//     }
// 
//     public String getUrl() {
//         return (String) get("url");
//     }
// 
//     public String mimeType() {
//         return null;
//     }
// }
// 
// Path: source/src/main/java/com/javabaas/exception/JBException.java
// public class JBException extends Exception {
//     /**
//      * 认证失败
//      */
//     public static int AUTH_FAILURE_ERROR = 1;
// 
//     /**
//      * 网络错误
//      */
//     public static int NETWORK_ERROR = 2;
// 
//     /**
//      * 解析错误
//      */
//     public static int PARSE_ERROR = 3;
// 
//     /**
//      * 服务器错误
//      */
//     public static int SERVER_ERROR = 4;
// 
//     /**
//      * 云方法错误
//      */
//     public static int CLOUD_ERROR = 5;
// 
//     /**
//      * 上传错误
//      */
//     public static int UPLOAD_ERROR = 6;
// 
//     //responseErrorCode
//     public static int SESSION_TOKEN_ERROR_CODE = 1310;
// 
//     public int errorCode;
//     public int responseErrorCode;
//     public String responseErrorMsg;
// 
//     public JBException() {
//     }
// 
//     public JBException(String detailMessage) {
//         super(detailMessage);
//     }
// 
//     public JBException(int errorCode , String detailMessage) {
//         super(detailMessage);
//         this.errorCode = errorCode;
//     }
// 
//     public int getErrorCode() {
//         return errorCode;
//     }
// 
//     public int getResponseErrorCode() {
//         return responseErrorCode;
//     }
// 
//     public String getResponseErrorMsg() {
//         return responseErrorMsg;
//     }
// }


import com.javabaas.JBFile;
import com.javabaas.exception.JBException;
package com.javabaas.callback;


/**
 * Created by xueshukai on 16/1/4 下午12:50.
 */
public interface FileUploadCallback {
    void done(JBFile jbFile);
// Path: source/src/main/java/com/javabaas/JBFile.java
// public class JBFile extends JBObject {
//     private String className = "_File";
// 
//     private String path;
//     private byte[] data;
//     private File file;
//     private String name;
// 
//     public JBFile() {
//     }
// 
//     public JBFile(File file) {
//         this.file = file;
//     }
// 
//     public JBFile(byte[] bytes) {
//         this.data = bytes;
//     }
// 
//     public static JBFile createWithoutData(String id){
//         JBFile jbObject = new JBFile();
//         jbObject.setId(id);
//         return jbObject;
//     }
// 
//     public File getFile(){
//         return file;
//     }
// 
//     @Override
//     public String getClassName() {
//         return className;
//     }
// 
//     public void saveInBackground(final FileUploadCallback callback) {
//         getUploadToken(new ResponseListener<CustomResponse>() {
//             @Override
//             public void onResponse(CustomResponse entity) {
//                 if (uploader != null)
//                     uploader.upload(entity ,JBFile.this,callback);
//             }
// 
//             @Override
//             public void onError(JBException e) {
//                 callback.error(e);
//             }
//         });
//     }
// 
//     private void getUploadToken(ResponseListener<CustomResponse> listener) {
//         JBCloud.getObjectManager(null).customJsonRequest(JBCloud.applicationContext, false , listener, "/api/file/getToken?fileName="+filename+"&platform=" + platform, IObjectManager.Method.GET, null);
//     }
// 
//     private static IUploader uploader = null;
//     private static String platform , filename;
//     public static void setUploader(IUploader uploader){
//         JBFile.uploader = uploader;
//     }
//     static {
//         if (uploader == null){
//             uploader = new QiNiuUploader();
//             platform = "qiniu";
//             filename = "android_file";
//         }
//     }
//     public static void setPlatform(String platform){
//         JBFile.platform = platform;
//     }
// 
//     public static void setFilename(String filename){
//         JBFile.filename = filename;
//     }
// 
//     public String getPath() {
//         return path;
//     }
// 
//     public void setPath(String path) {
//         this.path = path;
//     }
// 
//     public byte[] getData() {
//         return data;
//     }
// 
//     public void setData(byte[] data) {
//         this.data = data;
//     }
// 
//     public static JBFile withFile(File file) {
//         return new JBFile(file);
//     }
// 
//     public static JBFile withByte(byte[] bytes){
//         return new JBFile(bytes);
//     }
// 
//     public String getUrl() {
//         return (String) get("url");
//     }
// 
//     public String mimeType() {
//         return null;
//     }
// }
// 
// Path: source/src/main/java/com/javabaas/exception/JBException.java
// public class JBException extends Exception {
//     /**
//      * 认证失败
//      */
//     public static int AUTH_FAILURE_ERROR = 1;
// 
//     /**
//      * 网络错误
//      */
//     public static int NETWORK_ERROR = 2;
// 
//     /**
//      * 解析错误
//      */
//     public static int PARSE_ERROR = 3;
// 
//     /**
//      * 服务器错误
//      */
//     public static int SERVER_ERROR = 4;
// 
//     /**
//      * 云方法错误
//      */
//     public static int CLOUD_ERROR = 5;
// 
//     /**
//      * 上传错误
//      */
//     public static int UPLOAD_ERROR = 6;
// 
//     //responseErrorCode
//     public static int SESSION_TOKEN_ERROR_CODE = 1310;
// 
//     public int errorCode;
//     public int responseErrorCode;
//     public String responseErrorMsg;
// 
//     public JBException() {
//     }
// 
//     public JBException(String detailMessage) {
//         super(detailMessage);
//     }
// 
//     public JBException(int errorCode , String detailMessage) {
//         super(detailMessage);
//         this.errorCode = errorCode;
//     }
// 
//     public int getErrorCode() {
//         return errorCode;
//     }
// 
//     public int getResponseErrorCode() {
//         return responseErrorCode;
//     }
// 
//     public String getResponseErrorMsg() {
//         return responseErrorMsg;
//     }
// }


// Path: source/src/main/java/com/javabaas/callback/FileUploadCallback.java
import com.javabaas.JBFile;
import com.javabaas.exception.JBException;

package com.javabaas.callback;


/**
 * Created by xueshukai on 16/1/4 下午12:50.
 */
public interface FileUploadCallback {
    void done(JBFile jbFile);
    void error(JBException e);