// Path: traction/src/main/java/traction/mvc/interfaces/IObjectListener.java
// public interface IObjectListener
// {
//     public static class Utility
//     {
//         public static String generatePropagationId(String currentPropagationId, String currentSource)
//         {
//             if (currentSource == null || currentSource.equals(""))
//                 return currentPropagationId;
//             else if (currentPropagationId == null || currentPropagationId.equals(""))
//                 return currentSource;
//             else
//                 return currentSource + "." + currentPropagationId;
//         }
//     }
// 
// 	/**
// 	 * Fired when listener is signalled of something, anything really.
// 	 */
//     void onEvent(String propagationId);
// }
// 
// 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 java.util.ArrayList;
import java.util.HashMap;
import traction.mvc.interfaces.IObjectListener;
import traction.mvc.interfaces.IPOJO;
import traction.mvc.interfaces.IPropertyStore;
import android.util.Property;
				}
			}
		}
	}

	public void notifyListener()
	{
        notifyListenerInternal(null, null, null);
	}

//	@SuppressWarnings("unchecked")
//	@Override
//	public <T extends IProxyObservableObject> T registerAs(String propertyName, IProxyObservableObject parentObj)
//	{
//		if (getProxyObservableObject() == null || parentObj == null || parentObj.getProxyObservableObject() == null)
//			return null;
//
//		//let the parent object listen to 'this' (this being the getSource() which can be overriden to be anything)
//		getProxyObservableObject().getProxyObservableObject().unregisterListener(propertyName, parentObj.getProxyObservableObject());
//		getProxyObservableObject().getProxyObservableObject().registerListener(propertyName, parentObj.getProxyObservableObject());
//		return (T)this;
//
//	}

	@Override
	public void onEvent(String propagationId)
	{
        notifyListenerInternal(propagationId, null, null);
	}

// Path: traction/src/main/java/traction/mvc/interfaces/IObjectListener.java
// public interface IObjectListener
// {
//     public static class Utility
//     {
//         public static String generatePropagationId(String currentPropagationId, String currentSource)
//         {
//             if (currentSource == null || currentSource.equals(""))
//                 return currentPropagationId;
//             else if (currentPropagationId == null || currentPropagationId.equals(""))
//                 return currentSource;
//             else
//                 return currentSource + "." + currentPropagationId;
//         }
//     }
// 
// 	/**
// 	 * Fired when listener is signalled of something, anything really.
// 	 */
//     void onEvent(String propagationId);
// }
// 
// 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/ObservableObject.java
import java.util.ArrayList;
import java.util.HashMap;
import traction.mvc.interfaces.IObjectListener;
import traction.mvc.interfaces.IPOJO;
import traction.mvc.interfaces.IPropertyStore;
import android.util.Property;

				}
			}
		}
	}

	public void notifyListener()
	{
        notifyListenerInternal(null, null, null);
	}

//	@SuppressWarnings("unchecked")
//	@Override
//	public <T extends IProxyObservableObject> T registerAs(String propertyName, IProxyObservableObject parentObj)
//	{
//		if (getProxyObservableObject() == null || parentObj == null || parentObj.getProxyObservableObject() == null)
//			return null;
//
//		//let the parent object listen to 'this' (this being the getSource() which can be overriden to be anything)
//		getProxyObservableObject().getProxyObservableObject().unregisterListener(propertyName, parentObj.getProxyObservableObject());
//		getProxyObservableObject().getProxyObservableObject().registerListener(propertyName, parentObj.getProxyObservableObject());
//		return (T)this;
//
//	}

	@Override
	public void onEvent(String propagationId)
	{
        notifyListenerInternal(propagationId, null, null);
	}

    protected abstract IPropertyStore getPropertyStore();