// Path: traction/src/main/java/traction/mvc/interfaces/IObservableCommand.java
// public interface IObservableCommand
// extends IObservableObject
// {
//     /**
//      * call to execute command
//      * @param arg
//      */
//     void execute(CommandArgument arg);
// 
//     void setExecuteListener(IOnExecuteListener listener);
// 
//     /**
//      *
//      * @return : true if command can execute
//      */
//     boolean getCanExecute();
// 
//     /**
//      * set whether command can execute
//      * @param b
//      */
//     void setCanExecute(boolean b);
// }
// 
// 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);
// }


import android.util.Property;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import java.util.Collection;
import java.util.Hashtable;
import java.util.LinkedList;
import traction.mvc.interfaces.IObservableCommand;
import traction.mvc.interfaces.IObservableCursor;
import traction.mvc.interfaces.IPOJO;
package traction.mvc.observables;




public class ScopeBuilder
{
    public static Object CreateScope(Class<?> scopeInterface)
    {
        return Proxy
                .newProxyInstance(
                        scopeInterface.getClassLoader(),
// Path: traction/src/main/java/traction/mvc/interfaces/IObservableCommand.java
// public interface IObservableCommand
// extends IObservableObject
// {
//     /**
//      * call to execute command
//      * @param arg
//      */
//     void execute(CommandArgument arg);
// 
//     void setExecuteListener(IOnExecuteListener listener);
// 
//     /**
//      *
//      * @return : true if command can execute
//      */
//     boolean getCanExecute();
// 
//     /**
//      * set whether command can execute
//      * @param b
//      */
//     void setCanExecute(boolean b);
// }
// 
// 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/observables/ScopeBuilder.java
import android.util.Property;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import java.util.Collection;
import java.util.Hashtable;
import java.util.LinkedList;
import traction.mvc.interfaces.IObservableCommand;
import traction.mvc.interfaces.IObservableCursor;
import traction.mvc.interfaces.IPOJO;

package traction.mvc.observables;




public class ScopeBuilder
{
    public static Object CreateScope(Class<?> scopeInterface)
    {
        return Proxy
                .newProxyInstance(
                        scopeInterface.getClassLoader(),
                        new Class[]{scopeInterface, IProxyObservableObject.class, IPOJO.class},