// Path: okaycameralibrary/src/main/java/com/okaycamera/okcameralibrary/exception/ObjectNotInitializedException.java
// public class ObjectNotInitializedException extends RuntimeException {
//     private ObjectNotInitializedException() {
//         super();
//     }
// 
//     public ObjectNotInitializedException(String message) {
//         super(message);
//     }
// 
//     public ObjectNotInitializedException(String message, Throwable cause) {
//         super(message, cause);
//     }
// 
//     public ObjectNotInitializedException(Throwable cause) {
//         super(cause);
//     }
// 
//     @RequiresApi(api = Build.VERSION_CODES.N)
//     protected ObjectNotInitializedException(String message, Throwable cause,
//                                             boolean enableSuppression,
//                                             boolean writableStackTrace) {
//         super(message, cause, enableSuppression, writableStackTrace);
//     }
// }


import android.hardware.camera2.CaptureRequest;
import android.support.annotation.NonNull;
import android.view.Surface;
import com.okaycamera.okcameralibrary.exception.ObjectNotInitializedException;
import java.util.List;
            addTarget(outputs.get(aTargetIndexArray));
        }
        return this;
    }

    public OkCaptureRequestBuilder 	removeTarget(@NonNull Surface outputTarget)
            throws ObjectNotInitializedException {
        if (mBuilder != null) {
            mBuilder.removeTarget(outputTarget);
        } else {
            throw genException();
        }
        return this;
    }

    /**
     * Set a capture request field to a value. The field definitions can be found in CaptureRequest.
     * @param key which field definitions in {@link CaptureRequest}
     * @throws ObjectNotInitializedException You should call init() before call this method otherwise
     * it will throw a ObjectNotInitializedException
     */
    public <T> OkCaptureRequestBuilder set(@NonNull CaptureRequest.Key<T> key, T value) {
        if (mBuilder != null) {
            mBuilder.set(key,value);
        } else {
            throw genException();
        }
        return this;
    }

// Path: okaycameralibrary/src/main/java/com/okaycamera/okcameralibrary/exception/ObjectNotInitializedException.java
// public class ObjectNotInitializedException extends RuntimeException {
//     private ObjectNotInitializedException() {
//         super();
//     }
// 
//     public ObjectNotInitializedException(String message) {
//         super(message);
//     }
// 
//     public ObjectNotInitializedException(String message, Throwable cause) {
//         super(message, cause);
//     }
// 
//     public ObjectNotInitializedException(Throwable cause) {
//         super(cause);
//     }
// 
//     @RequiresApi(api = Build.VERSION_CODES.N)
//     protected ObjectNotInitializedException(String message, Throwable cause,
//                                             boolean enableSuppression,
//                                             boolean writableStackTrace) {
//         super(message, cause, enableSuppression, writableStackTrace);
//     }
// }


// Path: okaycameralibrary/src/main/java/com/okaycamera/okcameralibrary/framework/OkCaptureRequestBuilder.java
import android.hardware.camera2.CaptureRequest;
import android.support.annotation.NonNull;
import android.view.Surface;
import com.okaycamera.okcameralibrary.exception.ObjectNotInitializedException;
import java.util.List;

            addTarget(outputs.get(aTargetIndexArray));
        }
        return this;
    }

    public OkCaptureRequestBuilder 	removeTarget(@NonNull Surface outputTarget)
            throws ObjectNotInitializedException {
        if (mBuilder != null) {
            mBuilder.removeTarget(outputTarget);
        } else {
            throw genException();
        }
        return this;
    }

    /**
     * Set a capture request field to a value. The field definitions can be found in CaptureRequest.
     * @param key which field definitions in {@link CaptureRequest}
     * @throws ObjectNotInitializedException You should call init() before call this method otherwise
     * it will throw a ObjectNotInitializedException
     */
    public <T> OkCaptureRequestBuilder set(@NonNull CaptureRequest.Key<T> key, T value) {
        if (mBuilder != null) {
            mBuilder.set(key,value);
        } else {
            throw genException();
        }
        return this;
    }

    public  <T> T get(@NonNull CaptureRequest.Key<T> key) {