// Path: lifecyclebinder-processor/src/test/java/com/test/MyObject.java
// public class MyObject implements LifeCycleAware<MyView> {
//     @Override
//     public void onCreate(MyView view, Bundle savedInstanceState, Intent intent, Bundle arguments) {
// 
//     }
// 
//     @Override
//     public void onStart(MyView view) {
// 
//     }
// 
//     @Override
//     public void onResume(MyView view) {
// 
//     }
// 
//     @Override
//     public boolean hasOptionsMenu(MyView view) {
//         return false;
//     }
// 
//     @Override
//     public void onCreateOptionsMenu(MyView view, Menu menu, MenuInflater inflater) {
// 
//     }
// 
//     @Override
//     public boolean onOptionsItemSelected(MyView view, MenuItem item) {
//         return false;
//     }
// 
//     @Override
//     public void onPause(MyView view) {
// 
//     }
// 
//     @Override
//     public void onStop(MyView view) {
// 
//     }
// 
//     @Override
//     public void onSaveInstanceState(MyView view, Bundle bundle) {
// 
//     }
// 
//     @Override
//     public void onDestroy(MyView view, boolean changingConfigurations) {
// 
//     }
// 
//     @Override
//     public void onActivityResult(MyView view, int requestCode, int resultCode, Intent data) {
// 
//     }
// 
//     @Override public void onViewCreated(MyView view, Bundle savedInstanceState) {
// 
//     }
// 
//     @Override public void onDestroyView(MyView view) {
// 
//     }
// }
// 
// Path: test-data-lib/src/main/java/com/test/MyView.java
// public interface MyView {
// }
// 
// Path: lifecyclebinder-api/src/main/java/it/codingjam/lifecyclebinder/LifeCycleAware.java
// public interface LifeCycleAware<T> {
//     void onCreate(T view, Bundle savedInstanceState, Intent intent, Bundle arguments);
// 
//     void onStart(T view);
// 
//     void onResume(T view);
// 
//     boolean hasOptionsMenu(T view);
// 
//     void onCreateOptionsMenu(T view, Menu menu, MenuInflater inflater);
// 
//     boolean onOptionsItemSelected(T view, MenuItem item);
// 
//     void onPause(T view);
// 
//     void onStop(T view);
// 
//     void onSaveInstanceState(T view, Bundle bundle);
// 
//     void onDestroy(T view, boolean changingConfigurations);
// 
//     void onActivityResult(T view, int requestCode, int resultCode, Intent data);
// 
//     void onViewCreated(T view, Bundle savedInstanceState);
// 
//     void onDestroyView(T view);
// }


import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import com.test.MyObject;
import com.test.MyView;
import it.codingjam.lifecyclebinder.BindLifeCycle;
import it.codingjam.lifecyclebinder.LifeCycleAware;
/*
 *   Copyright 2016 Fabio Collini.
 *
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 */

package com.test.objectWithNestedGenericBaseClass;




class MyGenericBaseClass<T extends MyView> implements LifeCycleAware<T> {

    @BindLifeCycle
    MyObject myBaseObject;

    @Override
    public void onCreate(T view, Bundle savedInstanceState, Intent intent, Bundle arguments) {

    }

    @Override
    public void onStart(T view) {

    }

    @Override
    public void onResume(T view) {

    }

    @Override
    public boolean hasOptionsMenu(T view) {
        return false;
    }

    @Override
    public void onCreateOptionsMenu(T view, Menu menu, MenuInflater inflater) {

    }

    @Override
    public boolean onOptionsItemSelected(T view, MenuItem item) {
        return false;
    }

    @Override
// Path: lifecyclebinder-processor/src/test/java/com/test/MyObject.java
// public class MyObject implements LifeCycleAware<MyView> {
//     @Override
//     public void onCreate(MyView view, Bundle savedInstanceState, Intent intent, Bundle arguments) {
// 
//     }
// 
//     @Override
//     public void onStart(MyView view) {
// 
//     }
// 
//     @Override
//     public void onResume(MyView view) {
// 
//     }
// 
//     @Override
//     public boolean hasOptionsMenu(MyView view) {
//         return false;
//     }
// 
//     @Override
//     public void onCreateOptionsMenu(MyView view, Menu menu, MenuInflater inflater) {
// 
//     }
// 
//     @Override
//     public boolean onOptionsItemSelected(MyView view, MenuItem item) {
//         return false;
//     }
// 
//     @Override
//     public void onPause(MyView view) {
// 
//     }
// 
//     @Override
//     public void onStop(MyView view) {
// 
//     }
// 
//     @Override
//     public void onSaveInstanceState(MyView view, Bundle bundle) {
// 
//     }
// 
//     @Override
//     public void onDestroy(MyView view, boolean changingConfigurations) {
// 
//     }
// 
//     @Override
//     public void onActivityResult(MyView view, int requestCode, int resultCode, Intent data) {
// 
//     }
// 
//     @Override public void onViewCreated(MyView view, Bundle savedInstanceState) {
// 
//     }
// 
//     @Override public void onDestroyView(MyView view) {
// 
//     }
// }
// 
// Path: test-data-lib/src/main/java/com/test/MyView.java
// public interface MyView {
// }
// 
// Path: lifecyclebinder-api/src/main/java/it/codingjam/lifecyclebinder/LifeCycleAware.java
// public interface LifeCycleAware<T> {
//     void onCreate(T view, Bundle savedInstanceState, Intent intent, Bundle arguments);
// 
//     void onStart(T view);
// 
//     void onResume(T view);
// 
//     boolean hasOptionsMenu(T view);
// 
//     void onCreateOptionsMenu(T view, Menu menu, MenuInflater inflater);
// 
//     boolean onOptionsItemSelected(T view, MenuItem item);
// 
//     void onPause(T view);
// 
//     void onStop(T view);
// 
//     void onSaveInstanceState(T view, Bundle bundle);
// 
//     void onDestroy(T view, boolean changingConfigurations);
// 
//     void onActivityResult(T view, int requestCode, int resultCode, Intent data);
// 
//     void onViewCreated(T view, Bundle savedInstanceState);
// 
//     void onDestroyView(T view);
// }


// Path: test-data-lib/src/main/java/com/test/objectWithNestedGenericBaseClass/MyObjectWithGenericBaseClass.java
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import com.test.MyObject;
import com.test.MyView;
import it.codingjam.lifecyclebinder.BindLifeCycle;
import it.codingjam.lifecyclebinder.LifeCycleAware;

/*
 *   Copyright 2016 Fabio Collini.
 *
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 */

package com.test.objectWithNestedGenericBaseClass;




class MyGenericBaseClass<T extends MyView> implements LifeCycleAware<T> {

    @BindLifeCycle
    MyObject myBaseObject;

    @Override
    public void onCreate(T view, Bundle savedInstanceState, Intent intent, Bundle arguments) {

    }

    @Override
    public void onStart(T view) {

    }

    @Override
    public void onResume(T view) {

    }

    @Override
    public boolean hasOptionsMenu(T view) {
        return false;
    }

    @Override
    public void onCreateOptionsMenu(T view, Menu menu, MenuInflater inflater) {

    }

    @Override
    public boolean onOptionsItemSelected(T view, MenuItem item) {
        return false;
    }

    @Override
    public void onPause(T view) {