// Path: traction/src/main/java/traction/mvc/interfaces/IObservableCursor.java
// public interface IObservableCursor
//     extends LoaderManager.LoaderCallbacks<Cursor>,IProxyObservableObject, ITemplateAdapter
// {
//     void setLoader(Loader<Cursor> loader);
// }
// 
// Path: traction/src/main/java/traction/mvc/interfaces/IPOJO.java
// public interface IPOJO
// {
//     /**
//      * Access property from property store.
//      * @param name
//      * @return if property exists, return property object, or null if not found
//      */
//     Property<Object,Object> getProperty(String name);
// }
// 
// Path: traction/src/main/java/traction/mvc/interfaces/IPropertyStore.java
// public interface IPropertyStore
// {
//     Property<?,?> getProperty(String name);
// }


import android.content.Loader;
import android.database.Cursor;
import android.database.CursorWrapper;
import android.database.DataSetObserver;
import android.os.Bundle;
import android.util.Property;
import android.util.SparseArray;
import android.view.View;
import android.view.ViewGroup;
import java.util.ArrayList;
import traction.mvc.interfaces.IObservableCursor;
import traction.mvc.interfaces.IPOJO;
import traction.mvc.interfaces.IPropertyStore;
    @Override
    public void setLayoutId(int layoutId) {
        this.templateId = layoutId;
        if (internalCursorAdapter != null)
            internalCursorAdapter.setLayoutId(layoutId);
    }

    @Override
    public int indexOf(Object obj) {
        if (internalCursorAdapter !=null)
            return internalCursorAdapter.getCursor().getPosition();
        return -1;
    }

    @Override
    public void onLoaderReset(Loader<Cursor> cursorLoader)
    {
        if (internalCursorAdapter != null)
            internalCursorAdapter.swapCursor(null);
    }

//    @Override
//    public IPropertyStore getPropertyStore()
//    {
//        if (internalCursorAdapter == null || !(internalCursorAdapter.getCursor() instanceof internalCursorWrapper))
//            return null;
//        return (internalCursorWrapper)internalCursorAdapter.getCursor();
//    }

    @Override
// Path: traction/src/main/java/traction/mvc/interfaces/IObservableCursor.java
// public interface IObservableCursor
//     extends LoaderManager.LoaderCallbacks<Cursor>,IProxyObservableObject, ITemplateAdapter
// {
//     void setLoader(Loader<Cursor> loader);
// }
// 
// Path: traction/src/main/java/traction/mvc/interfaces/IPOJO.java
// public interface IPOJO
// {
//     /**
//      * Access property from property store.
//      * @param name
//      * @return if property exists, return property object, or null if not found
//      */
//     Property<Object,Object> getProperty(String name);
// }
// 
// Path: traction/src/main/java/traction/mvc/interfaces/IPropertyStore.java
// public interface IPropertyStore
// {
//     Property<?,?> getProperty(String name);
// }


// Path: traction/src/main/java/traction/mvc/observables/ObservableCursor.java
import android.content.Loader;
import android.database.Cursor;
import android.database.CursorWrapper;
import android.database.DataSetObserver;
import android.os.Bundle;
import android.util.Property;
import android.util.SparseArray;
import android.view.View;
import android.view.ViewGroup;
import java.util.ArrayList;
import traction.mvc.interfaces.IObservableCursor;
import traction.mvc.interfaces.IPOJO;
import traction.mvc.interfaces.IPropertyStore;

    @Override
    public void setLayoutId(int layoutId) {
        this.templateId = layoutId;
        if (internalCursorAdapter != null)
            internalCursorAdapter.setLayoutId(layoutId);
    }

    @Override
    public int indexOf(Object obj) {
        if (internalCursorAdapter !=null)
            return internalCursorAdapter.getCursor().getPosition();
        return -1;
    }

    @Override
    public void onLoaderReset(Loader<Cursor> cursorLoader)
    {
        if (internalCursorAdapter != null)
            internalCursorAdapter.swapCursor(null);
    }

//    @Override
//    public IPropertyStore getPropertyStore()
//    {
//        if (internalCursorAdapter == null || !(internalCursorAdapter.getCursor() instanceof internalCursorWrapper))
//            return null;
//        return (internalCursorWrapper)internalCursorAdapter.getCursor();
//    }

    @Override
    protected IPropertyStore getPropertyStore()