// Path: library/src/main/java/com/wangjie/rapidrouter/core/RouterStuff.java
// 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;
// 
//     private List<Class<? extends RapidRouterStrategy>> supportStrategies;
// 
//     public RouterStuff intent(Intent intent) {
//         this.intent = intent;
//         return this;
//     }
// 
//     @Nullable
//     public Context context() {
//         return null == contextRef ? null : contextRef.get();
//     }
// 
//     public void setContext(Context context) {
//         this.contextRef = new WeakReference<>(context);
//     }
// 
//     public RouterStuff uri(String uriStr) {
//         this.uriStr = uriStr;
//         return this;
//     }
// 
//     public Intent intent() {
//         return intent;
//     }
// 
//     public String uriAsString() {
//         return uriStr;
//     }
// 
//     public RouterErrorCallback error() {
//         return error;
//     }
// 
//     public RouterStuff error(RouterErrorCallback errorListener) {
//         this.error = errorListener;
//         return this;
//     }
// 
//     public RouterTargetNotFoundCallback targetNotFound() {
//         return targetNotFound;
//     }
// 
//     public RouterStuff targetNotFound(RouterTargetNotFoundCallback targetNotFoundListener) {
//         this.targetNotFound = targetNotFoundListener;
//         return this;
//     }
// 
//     public RouterGoBeforeCallback goBefore() {
//         return goBefore;
//     }
// 
//     public RouterStuff goBefore(RouterGoBeforeCallback goBeforeListener) {
//         this.goBefore = goBeforeListener;
//         return this;
//     }
// 
//     public RouterGoAroundCallback goAround() {
//         return goAround;
//     }
// 
//     public RouterStuff goAround(RouterGoAroundCallback goAroundListener) {
//         this.goAround = goAroundListener;
//         return this;
//     }
// 
//     public RouterGoAfterCallback goAfter() {
//         return goAfter;
//     }
// 
//     public RouterStuff goAfter(RouterGoAfterCallback goAfterListener) {
//         this.goAfter = goAfterListener;
//         return this;
//     }
// 
//     @SafeVarargs
//     public final RouterStuff strategies(Class<? extends RapidRouterStrategy>... strategies) {
//         if (null == supportStrategies) {
//             supportStrategies = new ArrayList<>();
//         }
//         supportStrategies.addAll(Arrays.asList(strategies));
//         return this;
//     }
// 
//     @Nullable
//     public List<Class<? extends RapidRouterStrategy>> strategies() {
//         return supportStrategies;
//     }
// 
//     public boolean go() {
//         if (null == contextRef) {
//             throw new RapidRouterIllegalException("Context can not be null!");
//         }
//         if (null == uriStr) {
//             throw new RapidRouterIllegalException("Uri can not be null!");
//         }
//         return RapidRouter.to(this);
//     }
// 
//     @Override
//     public String toString() {
//         return "RouterStuff{" +
//                 "contextRef=" + contextRef +
//                 ", intent=" + intent +
//                 ", uriStr='" + uriStr + '\'' +
//                 ", error=" + error +
//                 ", targetNotFound=" + targetNotFound +
//                 ", goBefore=" + goBefore +
//                 ", goAround=" + goAround +
//                 ", goAfter=" + goAfter +
//                 '}';
//     }
// }
// 
// Path: library/src/main/java/com/wangjie/rapidrouter/core/listener/OnRapidRouterListener.java
// public interface OnRapidRouterListener {
// 
//     void onRouterError(RouterStuff routerStuff, Throwable throwable);
// 
//     void onRouterGoAfter(RouterStuff routerStuff);
// 
//     boolean onRouterGoAround(RouterStuff routerStuff);
// 
//     void onRouterGoBefore(RouterStuff routerStuff);
// 
//     void onRouterTargetNotFound(RouterStuff routerStuff);
// }


import android.util.Log;
import com.wangjie.rapidrouter.core.RouterStuff;
import com.wangjie.rapidrouter.core.listener.OnRapidRouterListener;
package com.wangjie.rapidrouter.example.router;



/**
 * Author: wangjie Email: tiantian.china.2@gmail.com Date: 2/8/17.
 */
public class ThisOnRapidRouterListener implements OnRapidRouterListener {
    private static final String TAG = ThisOnRapidRouterListener.class.getSimpleName();

    @Override
// Path: library/src/main/java/com/wangjie/rapidrouter/core/RouterStuff.java
// 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;
// 
//     private List<Class<? extends RapidRouterStrategy>> supportStrategies;
// 
//     public RouterStuff intent(Intent intent) {
//         this.intent = intent;
//         return this;
//     }
// 
//     @Nullable
//     public Context context() {
//         return null == contextRef ? null : contextRef.get();
//     }
// 
//     public void setContext(Context context) {
//         this.contextRef = new WeakReference<>(context);
//     }
// 
//     public RouterStuff uri(String uriStr) {
//         this.uriStr = uriStr;
//         return this;
//     }
// 
//     public Intent intent() {
//         return intent;
//     }
// 
//     public String uriAsString() {
//         return uriStr;
//     }
// 
//     public RouterErrorCallback error() {
//         return error;
//     }
// 
//     public RouterStuff error(RouterErrorCallback errorListener) {
//         this.error = errorListener;
//         return this;
//     }
// 
//     public RouterTargetNotFoundCallback targetNotFound() {
//         return targetNotFound;
//     }
// 
//     public RouterStuff targetNotFound(RouterTargetNotFoundCallback targetNotFoundListener) {
//         this.targetNotFound = targetNotFoundListener;
//         return this;
//     }
// 
//     public RouterGoBeforeCallback goBefore() {
//         return goBefore;
//     }
// 
//     public RouterStuff goBefore(RouterGoBeforeCallback goBeforeListener) {
//         this.goBefore = goBeforeListener;
//         return this;
//     }
// 
//     public RouterGoAroundCallback goAround() {
//         return goAround;
//     }
// 
//     public RouterStuff goAround(RouterGoAroundCallback goAroundListener) {
//         this.goAround = goAroundListener;
//         return this;
//     }
// 
//     public RouterGoAfterCallback goAfter() {
//         return goAfter;
//     }
// 
//     public RouterStuff goAfter(RouterGoAfterCallback goAfterListener) {
//         this.goAfter = goAfterListener;
//         return this;
//     }
// 
//     @SafeVarargs
//     public final RouterStuff strategies(Class<? extends RapidRouterStrategy>... strategies) {
//         if (null == supportStrategies) {
//             supportStrategies = new ArrayList<>();
//         }
//         supportStrategies.addAll(Arrays.asList(strategies));
//         return this;
//     }
// 
//     @Nullable
//     public List<Class<? extends RapidRouterStrategy>> strategies() {
//         return supportStrategies;
//     }
// 
//     public boolean go() {
//         if (null == contextRef) {
//             throw new RapidRouterIllegalException("Context can not be null!");
//         }
//         if (null == uriStr) {
//             throw new RapidRouterIllegalException("Uri can not be null!");
//         }
//         return RapidRouter.to(this);
//     }
// 
//     @Override
//     public String toString() {
//         return "RouterStuff{" +
//                 "contextRef=" + contextRef +
//                 ", intent=" + intent +
//                 ", uriStr='" + uriStr + '\'' +
//                 ", error=" + error +
//                 ", targetNotFound=" + targetNotFound +
//                 ", goBefore=" + goBefore +
//                 ", goAround=" + goAround +
//                 ", goAfter=" + goAfter +
//                 '}';
//     }
// }
// 
// Path: library/src/main/java/com/wangjie/rapidrouter/core/listener/OnRapidRouterListener.java
// public interface OnRapidRouterListener {
// 
//     void onRouterError(RouterStuff routerStuff, Throwable throwable);
// 
//     void onRouterGoAfter(RouterStuff routerStuff);
// 
//     boolean onRouterGoAround(RouterStuff routerStuff);
// 
//     void onRouterGoBefore(RouterStuff routerStuff);
// 
//     void onRouterTargetNotFound(RouterStuff routerStuff);
// }


// Path: app/src/main/java/com/wangjie/rapidrouter/example/router/ThisOnRapidRouterListener.java
import android.util.Log;
import com.wangjie.rapidrouter.core.RouterStuff;
import com.wangjie.rapidrouter.core.listener.OnRapidRouterListener;

package com.wangjie.rapidrouter.example.router;



/**
 * Author: wangjie Email: tiantian.china.2@gmail.com Date: 2/8/17.
 */
public class ThisOnRapidRouterListener implements OnRapidRouterListener {
    private static final String TAG = ThisOnRapidRouterListener.class.getSimpleName();

    @Override
    public void onRouterTargetNotFound(RouterStuff routerStuff) {