// Path: library/src/main/java/com/wangjie/rapidrouter/core/exception/RapidRouterIllegalException.java
// public class RapidRouterIllegalException extends RapidRouterException {
// 
//     public RapidRouterIllegalException(String message) {
//         super(message);
//     }
// }
// 
// Path: library/src/main/java/com/wangjie/rapidrouter/core/listener/RouterErrorCallback.java
// public interface RouterErrorCallback {
//     boolean onRouterError(RouterStuff routerStuff, Throwable throwable);
// }
// 
// Path: library/src/main/java/com/wangjie/rapidrouter/core/listener/RouterGoAfterCallback.java
// public interface RouterGoAfterCallback {
//     boolean onRouterGoAfter(RouterStuff routerStuff);
// }
// 
// Path: library/src/main/java/com/wangjie/rapidrouter/core/listener/RouterGoAroundCallback.java
// public interface RouterGoAroundCallback {
//     void onRouterGoAround(RouterStuff routerStuff);
// }
// 
// Path: library/src/main/java/com/wangjie/rapidrouter/core/listener/RouterGoBeforeCallback.java
// public interface RouterGoBeforeCallback {
//     boolean onRouterGoBefore(RouterStuff routerStuff);
// }
// 
// Path: library/src/main/java/com/wangjie/rapidrouter/core/listener/RouterTargetNotFoundCallback.java
// public interface RouterTargetNotFoundCallback {
//     boolean onRouterTargetNotFound(RouterStuff routerStuff);
// }
// 
// Path: library/src/main/java/com/wangjie/rapidrouter/core/strategy/RapidRouterStrategy.java
// public interface RapidRouterStrategy {
//     
//     void onRapidRouterMappings(RapidRouterMapping[] rapidRouterMappings);
// 
//     @Nullable
//     RouterTarget findRouterTarget(@NonNull Uri uri);
// 
// }


import android.content.Context;
import android.content.Intent;
import android.support.annotation.Nullable;
import com.wangjie.rapidrouter.core.exception.RapidRouterIllegalException;
import com.wangjie.rapidrouter.core.listener.RouterErrorCallback;
import com.wangjie.rapidrouter.core.listener.RouterGoAfterCallback;
import com.wangjie.rapidrouter.core.listener.RouterGoAroundCallback;
import com.wangjie.rapidrouter.core.listener.RouterGoBeforeCallback;
import com.wangjie.rapidrouter.core.listener.RouterTargetNotFoundCallback;
import com.wangjie.rapidrouter.core.strategy.RapidRouterStrategy;
import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
package com.wangjie.rapidrouter.core;




/**
 * Author: wangjie Email: tiantian.china.2@gmail.com Date: 2/9/17.
 */
public class RouterStuff {
    private WeakReference<Context> contextRef;
    private Intent intent;
    private String uriStr;

    private RouterErrorCallback error;
    private RouterTargetNotFoundCallback targetNotFound;
    private RouterGoBeforeCallback goBefore;
    private RouterGoAroundCallback goAround;
// Path: library/src/main/java/com/wangjie/rapidrouter/core/exception/RapidRouterIllegalException.java
// public class RapidRouterIllegalException extends RapidRouterException {
// 
//     public RapidRouterIllegalException(String message) {
//         super(message);
//     }
// }
// 
// Path: library/src/main/java/com/wangjie/rapidrouter/core/listener/RouterErrorCallback.java
// public interface RouterErrorCallback {
//     boolean onRouterError(RouterStuff routerStuff, Throwable throwable);
// }
// 
// Path: library/src/main/java/com/wangjie/rapidrouter/core/listener/RouterGoAfterCallback.java
// public interface RouterGoAfterCallback {
//     boolean onRouterGoAfter(RouterStuff routerStuff);
// }
// 
// Path: library/src/main/java/com/wangjie/rapidrouter/core/listener/RouterGoAroundCallback.java
// public interface RouterGoAroundCallback {
//     void onRouterGoAround(RouterStuff routerStuff);
// }
// 
// Path: library/src/main/java/com/wangjie/rapidrouter/core/listener/RouterGoBeforeCallback.java
// public interface RouterGoBeforeCallback {
//     boolean onRouterGoBefore(RouterStuff routerStuff);
// }
// 
// Path: library/src/main/java/com/wangjie/rapidrouter/core/listener/RouterTargetNotFoundCallback.java
// public interface RouterTargetNotFoundCallback {
//     boolean onRouterTargetNotFound(RouterStuff routerStuff);
// }
// 
// Path: library/src/main/java/com/wangjie/rapidrouter/core/strategy/RapidRouterStrategy.java
// public interface RapidRouterStrategy {
//     
//     void onRapidRouterMappings(RapidRouterMapping[] rapidRouterMappings);
// 
//     @Nullable
//     RouterTarget findRouterTarget(@NonNull Uri uri);
// 
// }


// Path: library/src/main/java/com/wangjie/rapidrouter/core/RouterStuff.java
import android.content.Context;
import android.content.Intent;
import android.support.annotation.Nullable;
import com.wangjie.rapidrouter.core.exception.RapidRouterIllegalException;
import com.wangjie.rapidrouter.core.listener.RouterErrorCallback;
import com.wangjie.rapidrouter.core.listener.RouterGoAfterCallback;
import com.wangjie.rapidrouter.core.listener.RouterGoAroundCallback;
import com.wangjie.rapidrouter.core.listener.RouterGoBeforeCallback;
import com.wangjie.rapidrouter.core.listener.RouterTargetNotFoundCallback;
import com.wangjie.rapidrouter.core.strategy.RapidRouterStrategy;
import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

package com.wangjie.rapidrouter.core;




/**
 * Author: wangjie Email: tiantian.china.2@gmail.com Date: 2/9/17.
 */
public class RouterStuff {
    private WeakReference<Context> contextRef;
    private Intent intent;
    private String uriStr;

    private RouterErrorCallback error;
    private RouterTargetNotFoundCallback targetNotFound;
    private RouterGoBeforeCallback goBefore;
    private RouterGoAroundCallback goAround;
    private RouterGoAfterCallback goAfter;