// Path: test-data-lib/src/main/java/com/test/MyObject$LifeCycleBinder.java
// public class MyObject$LifeCycleBinder {
// 
//     public static MyObject bind(LifeCycleAwareCollector collector, MyObject lifeCycleAware, boolean addInList) {
//         if (addInList) {
//             collector.addLifeCycleAware(lifeCycleAware);
//         }
//         return lifeCycleAware;
//     }
// }
// 
// Path: lifecyclebinder-api/src/main/java/it/codingjam/lifecyclebinder/LifeCycleAwareCollector.java
// public interface LifeCycleAwareCollector {
//     <R> R addRetainedFactory(String key, Callable<R> factory, boolean addInLifeCycleAwareList);
// 
//     void addLifeCycleAware(LifeCycleAware<?> lifeCycleAware);
// 
//     <R> R getOrCreate(R lifeCycleAware, String key, Callable<R> factory);
// }


import com.test.MyObject$LifeCycleBinder;
import it.codingjam.lifecyclebinder.LifeCycleAwareCollector;
/*
 *   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;


public class MyObjectWithGenericBaseClass$LifeCycleBinder {
    public static MyObjectWithGenericBaseClass bind(LifeCycleAwareCollector collector, MyObjectWithGenericBaseClass lifeCycleAware, boolean addInList) {
        MyGenericBaseClass$LifeCycleBinder.bind(collector, lifeCycleAware, false);
// Path: test-data-lib/src/main/java/com/test/MyObject$LifeCycleBinder.java
// public class MyObject$LifeCycleBinder {
// 
//     public static MyObject bind(LifeCycleAwareCollector collector, MyObject lifeCycleAware, boolean addInList) {
//         if (addInList) {
//             collector.addLifeCycleAware(lifeCycleAware);
//         }
//         return lifeCycleAware;
//     }
// }
// 
// Path: lifecyclebinder-api/src/main/java/it/codingjam/lifecyclebinder/LifeCycleAwareCollector.java
// public interface LifeCycleAwareCollector {
//     <R> R addRetainedFactory(String key, Callable<R> factory, boolean addInLifeCycleAwareList);
// 
//     void addLifeCycleAware(LifeCycleAware<?> lifeCycleAware);
// 
//     <R> R getOrCreate(R lifeCycleAware, String key, Callable<R> factory);
// }


// Path: test-data-lib/src/main/java/com/test/objectWithNestedGenericBaseClass/MyObjectWithGenericBaseClass$LifeCycleBinder.java
import com.test.MyObject$LifeCycleBinder;
import it.codingjam.lifecyclebinder.LifeCycleAwareCollector;

/*
 *   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;


public class MyObjectWithGenericBaseClass$LifeCycleBinder {
    public static MyObjectWithGenericBaseClass bind(LifeCycleAwareCollector collector, MyObjectWithGenericBaseClass lifeCycleAware, boolean addInList) {
        MyGenericBaseClass$LifeCycleBinder.bind(collector, lifeCycleAware, false);
        MyObject$LifeCycleBinder.bind(collector, collector.getOrCreate(lifeCycleAware.myObject, null, null), true);