You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by do...@apache.org on 2007/05/01 01:15:18 UTC

svn commit: r533875 [23/30] - in /incubator/felix/sandbox/donsez/upnp.devicegen: ./ doc/ generation/ generation/res/ generation/res/device/ generation/res/service/ manifest/ src/ src/main/ src/main/java/ src/main/java/org/ src/main/java/org/apache/ src...

Added: incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/media/service/ConnectionManager.java
URL: http://svn.apache.org/viewvc/incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/media/service/ConnectionManager.java?view=auto&rev=533875
==============================================================================
--- incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/media/service/ConnectionManager.java (added)
+++ incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/media/service/ConnectionManager.java Mon Apr 30 16:15:05 2007
@@ -0,0 +1,1182 @@
+
+/*
+__BANNER__
+*/
+// this file was generated at 1-May-2007 12:59 AM by ${author}
+package org.apache.felix.upnp.devicegen.media.service;
+
+import java.util.Dictionary;
+import java.util.HashMap;
+import java.util.Hashtable;
+import java.util.Map;
+
+import org.osgi.framework.*;
+import org.osgi.service.upnp.*;
+import org.apache.felix.upnp.devicegen.util.*;
+import org.apache.felix.upnp.devicegen.holder.*;
+
+import org.apache.felix.upnp.devicegen.media.model.*;
+import org.apache.felix.upnp.devicegen.media.impl.*;
+
+	
+
+public class ConnectionManager extends AbstractUPnPService {
+	
+		
+	private ConnectionManagerModel model;	
+		
+	/**
+	 * constructor
+	 */
+	public ConnectionManager(
+		UPnPDevice upnpDevice,
+		String serviceId,
+		String serviceType,
+		String version,
+		ConnectionManagerModel model
+	){
+		super(	
+			upnpDevice,
+			serviceId,
+			serviceType,
+			version
+		);
+		this.model=model;
+	
+		
+	stateVariables=new HashMap();
+	
+
+	
+	stateVariables.put(
+		"SourceProtocolInfo",
+		new SourceProtocolInfoStateVariable(this,model)
+	);
+
+
+	
+	stateVariables.put(
+		"SinkProtocolInfo",
+		new SinkProtocolInfoStateVariable(this,model)
+	);
+
+
+	
+	stateVariables.put(
+		"CurrentConnectionIDs",
+		new CurrentConnectionIDsStateVariable(this,model)
+	);
+
+
+	
+	stateVariables.put(
+		"A_ARG_TYPE_ConnectionStatus",
+		new A_ARG_TYPE_ConnectionStatusStateVariable(this,model)
+	);
+
+
+	
+	stateVariables.put(
+		"A_ARG_TYPE_ConnectionManager",
+		new A_ARG_TYPE_ConnectionManagerStateVariable(this,model)
+	);
+
+
+	
+	stateVariables.put(
+		"A_ARG_TYPE_Direction",
+		new A_ARG_TYPE_DirectionStateVariable(this,model)
+	);
+
+
+	
+	stateVariables.put(
+		"A_ARG_TYPE_ProtocolInfo",
+		new A_ARG_TYPE_ProtocolInfoStateVariable(this,model)
+	);
+
+
+	
+	stateVariables.put(
+		"A_ARG_TYPE_ConnectionID",
+		new A_ARG_TYPE_ConnectionIDStateVariable(this,model)
+	);
+
+
+	
+	stateVariables.put(
+		"A_ARG_TYPE_AVTransportID",
+		new A_ARG_TYPE_AVTransportIDStateVariable(this,model)
+	);
+
+
+	
+	stateVariables.put(
+		"A_ARG_TYPE_RcsID",
+		new A_ARG_TYPE_RcsIDStateVariable(this,model)
+	);
+
+	actions=new HashMap();
+	
+
+
+	actions.put(
+		"GetProtocolInfo",
+		new GetProtocolInfoAction(this,model)
+	);
+
+
+
+	actions.put(
+		"PrepareForConnection",
+		new PrepareForConnectionAction(this,model)
+	);
+
+
+
+	actions.put(
+		"ConnectionComplete",
+		new ConnectionCompleteAction(this,model)
+	);
+
+
+
+	actions.put(
+		"GetCurrentConnectionIDs",
+		new GetCurrentConnectionIDsAction(this,model)
+	);
+
+
+
+	actions.put(
+		"GetCurrentConnectionInfo",
+		new GetCurrentConnectionInfoAction(this,model)
+	);
+	
+	}
+
+	// UPnPStateVariable classes
+	
+	
+
+// class SourceProtocolInfoStateVariable
+public class SourceProtocolInfoStateVariable
+  extends AbstractUPnPStateVariable
+			
+	  implements UPnPStateVariableDescriptor{
+
+	public final static String NAME="SourceProtocolInfo";
+	public final static String DATATYPE="string";
+	
+	// HERE specific state variable members
+	private ConnectionManagerModel model;
+	
+	public SourceProtocolInfoStateVariable(
+		UPnPService upnpService,
+		ConnectionManagerModel model
+	){	
+		super(
+					upnpService,
+					NAME,
+					DATATYPE,
+					null, // TODO defaultValue changed for 
+					null, // TODO step changed for 
+					null, // TODO step changed for 
+					null, // TODO minimum changed for 
+					null, // TODO maximum changed for 
+					// sendEventsAttribute
+	true,
+					true  // TODO required changed for  OR 
+		);
+		
+		this.model=model;
+
+		
+	}
+	
+	// TODO
+	
+	public void start(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+	public void stop(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+			
+	/**
+	 * invoked for the first notification just after a subscription
+	 * @see it.cnr.isti.niche.osgi.upnp.util.UPnPStateVariableDescriptor#getValue()
+	 */
+	public Object getValue(){
+	
+		return model.getSourceProtocolInfoStateVariableValue();
+		
+	}
+};
+
+
+// class SinkProtocolInfoStateVariable
+public class SinkProtocolInfoStateVariable
+  extends AbstractUPnPStateVariable
+			
+	  implements UPnPStateVariableDescriptor{
+
+	public final static String NAME="SinkProtocolInfo";
+	public final static String DATATYPE="string";
+	
+	// HERE specific state variable members
+	private ConnectionManagerModel model;
+	
+	public SinkProtocolInfoStateVariable(
+		UPnPService upnpService,
+		ConnectionManagerModel model
+	){	
+		super(
+					upnpService,
+					NAME,
+					DATATYPE,
+					null, // TODO defaultValue changed for 
+					null, // TODO step changed for 
+					null, // TODO step changed for 
+					null, // TODO minimum changed for 
+					null, // TODO maximum changed for 
+					// sendEventsAttribute
+	true,
+					true  // TODO required changed for  OR 
+		);
+		
+		this.model=model;
+
+		
+	}
+	
+	// TODO
+	
+	public void start(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+	public void stop(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+			
+	/**
+	 * invoked for the first notification just after a subscription
+	 * @see it.cnr.isti.niche.osgi.upnp.util.UPnPStateVariableDescriptor#getValue()
+	 */
+	public Object getValue(){
+	
+		return model.getSinkProtocolInfoStateVariableValue();
+		
+	}
+};
+
+
+// class CurrentConnectionIDsStateVariable
+public class CurrentConnectionIDsStateVariable
+  extends AbstractUPnPStateVariable
+			
+	  implements UPnPStateVariableDescriptor{
+
+	public final static String NAME="CurrentConnectionIDs";
+	public final static String DATATYPE="string";
+	
+	// HERE specific state variable members
+	private ConnectionManagerModel model;
+	
+	public CurrentConnectionIDsStateVariable(
+		UPnPService upnpService,
+		ConnectionManagerModel model
+	){	
+		super(
+					upnpService,
+					NAME,
+					DATATYPE,
+					null, // TODO defaultValue changed for 
+					null, // TODO step changed for 
+					null, // TODO step changed for 
+					null, // TODO minimum changed for 
+					null, // TODO maximum changed for 
+					// sendEventsAttribute
+	true,
+					true  // TODO required changed for  OR 
+		);
+		
+		this.model=model;
+
+		
+	}
+	
+	// TODO
+	
+	public void start(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+	public void stop(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+			
+	/**
+	 * invoked for the first notification just after a subscription
+	 * @see it.cnr.isti.niche.osgi.upnp.util.UPnPStateVariableDescriptor#getValue()
+	 */
+	public Object getValue(){
+	
+		return model.getCurrentConnectionIDsStateVariableValue();
+		
+	}
+};
+
+
+// class A_ARG_TYPE_ConnectionStatusStateVariable
+public class A_ARG_TYPE_ConnectionStatusStateVariable
+  extends AbstractUPnPStateVariable
+			
+	{
+
+	public final static String NAME="A_ARG_TYPE_ConnectionStatus";
+	public final static String DATATYPE="string";
+	
+	// HERE specific state variable members
+	private ConnectionManagerModel model;
+	
+	public A_ARG_TYPE_ConnectionStatusStateVariable(
+		UPnPService upnpService,
+		ConnectionManagerModel model
+	){	
+		super(
+					upnpService,
+					NAME,
+					DATATYPE,
+					null, // TODO defaultValue changed for 
+					null, // TODO step changed for 
+					null, // TODO step changed for 
+					null, // TODO minimum changed for 
+					null, // TODO maximum changed for 
+					// sendEventsAttribute
+	false,
+					true  // TODO required changed for  OR 
+		);
+		
+		this.model=model;
+
+		
+	/*
+		List allowedValueList=new LinkedList();
+		
+		allowedValueList.add(UPnPDataTypeUtil.instanciateObject("string","OK"));
+
+		allowedValueList.add(UPnPDataTypeUtil.instanciateObject("string","ContentFormatMismatch"));
+
+		allowedValueList.add(UPnPDataTypeUtil.instanciateObject("string","InsufficientBandwidth"));
+
+		allowedValueList.add(UPnPDataTypeUtil.instanciateObject("string","UnreliableChannel"));
+
+		allowedValueList.add(UPnPDataTypeUtil.instanciateObject("string","Unknown"));
+
+		this.setallowedValueList(allowedValueList);
+	*/
+
+	}
+	
+	// TODO
+	
+	public void start(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+	public void stop(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+			
+	/**
+	 * invoked for the first notification just after a subscription
+	 * @see it.cnr.isti.niche.osgi.upnp.util.UPnPStateVariableDescriptor#getValue()
+	 */
+	public Object getValue(){
+	return null;
+	}
+};
+
+
+// class A_ARG_TYPE_ConnectionManagerStateVariable
+public class A_ARG_TYPE_ConnectionManagerStateVariable
+  extends AbstractUPnPStateVariable
+			
+	{
+
+	public final static String NAME="A_ARG_TYPE_ConnectionManager";
+	public final static String DATATYPE="string";
+	
+	// HERE specific state variable members
+	private ConnectionManagerModel model;
+	
+	public A_ARG_TYPE_ConnectionManagerStateVariable(
+		UPnPService upnpService,
+		ConnectionManagerModel model
+	){	
+		super(
+					upnpService,
+					NAME,
+					DATATYPE,
+					null, // TODO defaultValue changed for 
+					null, // TODO step changed for 
+					null, // TODO step changed for 
+					null, // TODO minimum changed for 
+					null, // TODO maximum changed for 
+					// sendEventsAttribute
+	false,
+					true  // TODO required changed for  OR 
+		);
+		
+		this.model=model;
+
+		
+	}
+	
+	// TODO
+	
+	public void start(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+	public void stop(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+			
+	/**
+	 * invoked for the first notification just after a subscription
+	 * @see it.cnr.isti.niche.osgi.upnp.util.UPnPStateVariableDescriptor#getValue()
+	 */
+	public Object getValue(){
+	return null;
+	}
+};
+
+
+// class A_ARG_TYPE_DirectionStateVariable
+public class A_ARG_TYPE_DirectionStateVariable
+  extends AbstractUPnPStateVariable
+			
+	{
+
+	public final static String NAME="A_ARG_TYPE_Direction";
+	public final static String DATATYPE="string";
+	
+	// HERE specific state variable members
+	private ConnectionManagerModel model;
+	
+	public A_ARG_TYPE_DirectionStateVariable(
+		UPnPService upnpService,
+		ConnectionManagerModel model
+	){	
+		super(
+					upnpService,
+					NAME,
+					DATATYPE,
+					null, // TODO defaultValue changed for 
+					null, // TODO step changed for 
+					null, // TODO step changed for 
+					null, // TODO minimum changed for 
+					null, // TODO maximum changed for 
+					// sendEventsAttribute
+	false,
+					true  // TODO required changed for  OR 
+		);
+		
+		this.model=model;
+
+		
+	/*
+		List allowedValueList=new LinkedList();
+		
+		allowedValueList.add(UPnPDataTypeUtil.instanciateObject("string","Input"));
+
+		allowedValueList.add(UPnPDataTypeUtil.instanciateObject("string","Output"));
+
+		this.setallowedValueList(allowedValueList);
+	*/
+
+	}
+	
+	// TODO
+	
+	public void start(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+	public void stop(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+			
+	/**
+	 * invoked for the first notification just after a subscription
+	 * @see it.cnr.isti.niche.osgi.upnp.util.UPnPStateVariableDescriptor#getValue()
+	 */
+	public Object getValue(){
+	return null;
+	}
+};
+
+
+// class A_ARG_TYPE_ProtocolInfoStateVariable
+public class A_ARG_TYPE_ProtocolInfoStateVariable
+  extends AbstractUPnPStateVariable
+			
+	{
+
+	public final static String NAME="A_ARG_TYPE_ProtocolInfo";
+	public final static String DATATYPE="string";
+	
+	// HERE specific state variable members
+	private ConnectionManagerModel model;
+	
+	public A_ARG_TYPE_ProtocolInfoStateVariable(
+		UPnPService upnpService,
+		ConnectionManagerModel model
+	){	
+		super(
+					upnpService,
+					NAME,
+					DATATYPE,
+					null, // TODO defaultValue changed for 
+					null, // TODO step changed for 
+					null, // TODO step changed for 
+					null, // TODO minimum changed for 
+					null, // TODO maximum changed for 
+					// sendEventsAttribute
+	false,
+					true  // TODO required changed for  OR 
+		);
+		
+		this.model=model;
+
+		
+	}
+	
+	// TODO
+	
+	public void start(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+	public void stop(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+			
+	/**
+	 * invoked for the first notification just after a subscription
+	 * @see it.cnr.isti.niche.osgi.upnp.util.UPnPStateVariableDescriptor#getValue()
+	 */
+	public Object getValue(){
+	return null;
+	}
+};
+
+
+// class A_ARG_TYPE_ConnectionIDStateVariable
+public class A_ARG_TYPE_ConnectionIDStateVariable
+  extends AbstractUPnPStateVariable
+			
+	{
+
+	public final static String NAME="A_ARG_TYPE_ConnectionID";
+	public final static String DATATYPE="i4";
+	
+	// HERE specific state variable members
+	private ConnectionManagerModel model;
+	
+	public A_ARG_TYPE_ConnectionIDStateVariable(
+		UPnPService upnpService,
+		ConnectionManagerModel model
+	){	
+		super(
+					upnpService,
+					NAME,
+					DATATYPE,
+					null, // TODO defaultValue changed for 
+					null, // TODO step changed for 
+					null, // TODO step changed for 
+					null, // TODO minimum changed for 
+					null, // TODO maximum changed for 
+					// sendEventsAttribute
+	false,
+					true  // TODO required changed for  OR 
+		);
+		
+		this.model=model;
+
+		
+	}
+	
+	// TODO
+	
+	public void start(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+	public void stop(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+			
+	/**
+	 * invoked for the first notification just after a subscription
+	 * @see it.cnr.isti.niche.osgi.upnp.util.UPnPStateVariableDescriptor#getValue()
+	 */
+	public Object getValue(){
+	return null;
+	}
+};
+
+
+// class A_ARG_TYPE_AVTransportIDStateVariable
+public class A_ARG_TYPE_AVTransportIDStateVariable
+  extends AbstractUPnPStateVariable
+			
+	{
+
+	public final static String NAME="A_ARG_TYPE_AVTransportID";
+	public final static String DATATYPE="i4";
+	
+	// HERE specific state variable members
+	private ConnectionManagerModel model;
+	
+	public A_ARG_TYPE_AVTransportIDStateVariable(
+		UPnPService upnpService,
+		ConnectionManagerModel model
+	){	
+		super(
+					upnpService,
+					NAME,
+					DATATYPE,
+					null, // TODO defaultValue changed for 
+					null, // TODO step changed for 
+					null, // TODO step changed for 
+					null, // TODO minimum changed for 
+					null, // TODO maximum changed for 
+					// sendEventsAttribute
+	false,
+					true  // TODO required changed for  OR 
+		);
+		
+		this.model=model;
+
+		
+	}
+	
+	// TODO
+	
+	public void start(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+	public void stop(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+			
+	/**
+	 * invoked for the first notification just after a subscription
+	 * @see it.cnr.isti.niche.osgi.upnp.util.UPnPStateVariableDescriptor#getValue()
+	 */
+	public Object getValue(){
+	return null;
+	}
+};
+
+
+// class A_ARG_TYPE_RcsIDStateVariable
+public class A_ARG_TYPE_RcsIDStateVariable
+  extends AbstractUPnPStateVariable
+			
+	{
+
+	public final static String NAME="A_ARG_TYPE_RcsID";
+	public final static String DATATYPE="i4";
+	
+	// HERE specific state variable members
+	private ConnectionManagerModel model;
+	
+	public A_ARG_TYPE_RcsIDStateVariable(
+		UPnPService upnpService,
+		ConnectionManagerModel model
+	){	
+		super(
+					upnpService,
+					NAME,
+					DATATYPE,
+					null, // TODO defaultValue changed for 
+					null, // TODO step changed for 
+					null, // TODO step changed for 
+					null, // TODO minimum changed for 
+					null, // TODO maximum changed for 
+					// sendEventsAttribute
+	false,
+					true  // TODO required changed for  OR 
+		);
+		
+		this.model=model;
+
+		
+	}
+	
+	// TODO
+	
+	public void start(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+	public void stop(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+			
+	/**
+	 * invoked for the first notification just after a subscription
+	 * @see it.cnr.isti.niche.osgi.upnp.util.UPnPStateVariableDescriptor#getValue()
+	 */
+	public Object getValue(){
+	return null;
+	}
+};
+	
+
+	// UPnPAction classes
+	
+	
+
+public class GetProtocolInfoAction extends AbstractUPnPAction {
+
+	ConnectionManagerModel model;
+	
+	// HERE specific action members
+	
+	public GetProtocolInfoAction(
+	    UPnPService upnpService,
+		ConnectionManagerModel model
+	){
+		super(
+			upnpService,
+			"GetProtocolInfo",
+			""
+		);
+		this.model=model;
+		
+			addOutArg(
+				"Source",
+				upnpService.getStateVariable("SourceProtocolInfo")
+			);
+		
+			addOutArg(
+				"Sink",
+				upnpService.getStateVariable("SinkProtocolInfo")
+			);
+		
+	}
+
+	/**
+	 * @see org.osgi.service.upnp.UPnPAction#invoke(java.util.Dictionary)
+	 */
+	public Dictionary invoke(Dictionary _args) throws Exception {
+
+	StringHolder source = new StringHolder();
+		StringHolder sink = new StringHolder();
+		
+
+		// invoke model
+		
+		 model.getProtocolInfo(
+			source,
+
+sink
+		 );
+		
+		// build returned Dictionary		
+		Dictionary _result = new Hashtable();
+		
+			_result.put("Source",source.getObject());
+			// java.lang.String
+			_result.put("Sink",sink.getObject());
+			// java.lang.String
+		return _result.isEmpty()?null:_result;
+	}
+
+
+	public void start(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+	public void stop(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+};
+
+
+public class PrepareForConnectionAction extends AbstractUPnPAction {
+
+	ConnectionManagerModel model;
+	
+	// HERE specific action members
+	
+	public PrepareForConnectionAction(
+	    UPnPService upnpService,
+		ConnectionManagerModel model
+	){
+		super(
+			upnpService,
+			"PrepareForConnection",
+			""
+		);
+		this.model=model;
+		
+			addInArg(
+				"RemoteProtocolInfo",
+				upnpService.getStateVariable("A_ARG_TYPE_ProtocolInfo")
+			);
+		
+			addInArg(
+				"PeerConnectionManager",
+				upnpService.getStateVariable("A_ARG_TYPE_ConnectionManager")
+			);
+		
+			addInArg(
+				"PeerConnectionID",
+				upnpService.getStateVariable("A_ARG_TYPE_ConnectionID")
+			);
+		
+			addInArg(
+				"Direction",
+				upnpService.getStateVariable("A_ARG_TYPE_Direction")
+			);
+		
+			addOutArg(
+				"ConnectionID",
+				upnpService.getStateVariable("A_ARG_TYPE_ConnectionID")
+			);
+		
+			addOutArg(
+				"AVTransportID",
+				upnpService.getStateVariable("A_ARG_TYPE_AVTransportID")
+			);
+		
+			addOutArg(
+				"RcsID",
+				upnpService.getStateVariable("A_ARG_TYPE_RcsID")
+			);
+		
+	}
+
+	/**
+	 * @see org.osgi.service.upnp.UPnPAction#invoke(java.util.Dictionary)
+	 */
+	public Dictionary invoke(Dictionary _args) throws Exception {
+
+	java.lang.String remoteProtocolInfo = (java.lang.String) _args.get("RemoteProtocolInfo");
+		java.lang.String peerConnectionManager = (java.lang.String) _args.get("PeerConnectionManager");
+		java.lang.Integer peerConnectionID = (java.lang.Integer) _args.get("PeerConnectionID");
+		java.lang.String direction = (java.lang.String) _args.get("Direction");
+		IntegerHolder connectionID = new IntegerHolder();
+		IntegerHolder aVTransportID = new IntegerHolder();
+		IntegerHolder rcsID = new IntegerHolder();
+		
+
+		// invoke model
+		
+		 model.prepareForConnection(
+			StringHolder.toValue(
+			remoteProtocolInfo)
+		,
+
+StringHolder.toValue(
+			peerConnectionManager)
+		,
+
+IntegerHolder.toValue(
+			peerConnectionID)
+		,
+
+StringHolder.toValue(
+			direction)
+		,
+
+connectionID,
+
+aVTransportID,
+
+rcsID
+		 );
+		
+		// build returned Dictionary		
+		Dictionary _result = new Hashtable();
+		
+			_result.put("ConnectionID",connectionID.getObject());
+			// java.lang.Integer
+			_result.put("AVTransportID",aVTransportID.getObject());
+			// java.lang.Integer
+			_result.put("RcsID",rcsID.getObject());
+			// java.lang.Integer
+		return _result.isEmpty()?null:_result;
+	}
+
+
+	public void start(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+	public void stop(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+};
+
+
+public class ConnectionCompleteAction extends AbstractUPnPAction {
+
+	ConnectionManagerModel model;
+	
+	// HERE specific action members
+	
+	public ConnectionCompleteAction(
+	    UPnPService upnpService,
+		ConnectionManagerModel model
+	){
+		super(
+			upnpService,
+			"ConnectionComplete",
+			""
+		);
+		this.model=model;
+		
+			addInArg(
+				"ConnectionID",
+				upnpService.getStateVariable("A_ARG_TYPE_ConnectionID")
+			);
+		
+	}
+
+	/**
+	 * @see org.osgi.service.upnp.UPnPAction#invoke(java.util.Dictionary)
+	 */
+	public Dictionary invoke(Dictionary _args) throws Exception {
+
+	java.lang.Integer connectionID = (java.lang.Integer) _args.get("ConnectionID");
+		
+
+		// invoke model
+		
+		 model.connectionComplete(
+			IntegerHolder.toValue(
+			connectionID)
+		
+		 );
+		
+		// build returned Dictionary		
+		Dictionary _result = new Hashtable();
+		
+		return _result.isEmpty()?null:_result;
+	}
+
+
+	public void start(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+	public void stop(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+};
+
+
+public class GetCurrentConnectionIDsAction extends AbstractUPnPAction {
+
+	ConnectionManagerModel model;
+	
+	// HERE specific action members
+	
+	public GetCurrentConnectionIDsAction(
+	    UPnPService upnpService,
+		ConnectionManagerModel model
+	){
+		super(
+			upnpService,
+			"GetCurrentConnectionIDs",
+			""
+		);
+		this.model=model;
+		
+			addOutArg(
+				"ConnectionIDs",
+				upnpService.getStateVariable("CurrentConnectionIDs")
+			);
+		
+	}
+
+	/**
+	 * @see org.osgi.service.upnp.UPnPAction#invoke(java.util.Dictionary)
+	 */
+	public Dictionary invoke(Dictionary _args) throws Exception {
+
+	StringHolder connectionIDs = new StringHolder();
+		
+
+		// invoke model
+		
+		 model.getCurrentConnectionIDs(
+			connectionIDs
+		 );
+		
+		// build returned Dictionary		
+		Dictionary _result = new Hashtable();
+		
+			_result.put("ConnectionIDs",connectionIDs.getObject());
+			// java.lang.String
+		return _result.isEmpty()?null:_result;
+	}
+
+
+	public void start(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+	public void stop(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+};
+
+
+public class GetCurrentConnectionInfoAction extends AbstractUPnPAction {
+
+	ConnectionManagerModel model;
+	
+	// HERE specific action members
+	
+	public GetCurrentConnectionInfoAction(
+	    UPnPService upnpService,
+		ConnectionManagerModel model
+	){
+		super(
+			upnpService,
+			"GetCurrentConnectionInfo",
+			""
+		);
+		this.model=model;
+		
+			addInArg(
+				"ConnectionID",
+				upnpService.getStateVariable("A_ARG_TYPE_ConnectionID")
+			);
+		
+			addOutArg(
+				"RcsID",
+				upnpService.getStateVariable("A_ARG_TYPE_RcsID")
+			);
+		
+			addOutArg(
+				"AVTransportID",
+				upnpService.getStateVariable("A_ARG_TYPE_AVTransportID")
+			);
+		
+			addOutArg(
+				"ProtocolInfo",
+				upnpService.getStateVariable("A_ARG_TYPE_ProtocolInfo")
+			);
+		
+			addOutArg(
+				"PeerConnectionManager",
+				upnpService.getStateVariable("A_ARG_TYPE_ConnectionManager")
+			);
+		
+			addOutArg(
+				"PeerConnectionID",
+				upnpService.getStateVariable("A_ARG_TYPE_ConnectionID")
+			);
+		
+			addOutArg(
+				"Direction",
+				upnpService.getStateVariable("A_ARG_TYPE_Direction")
+			);
+		
+			addOutArg(
+				"Status",
+				upnpService.getStateVariable("A_ARG_TYPE_ConnectionStatus")
+			);
+		
+	}
+
+	/**
+	 * @see org.osgi.service.upnp.UPnPAction#invoke(java.util.Dictionary)
+	 */
+	public Dictionary invoke(Dictionary _args) throws Exception {
+
+	java.lang.Integer connectionID = (java.lang.Integer) _args.get("ConnectionID");
+		IntegerHolder rcsID = new IntegerHolder();
+		IntegerHolder aVTransportID = new IntegerHolder();
+		StringHolder protocolInfo = new StringHolder();
+		StringHolder peerConnectionManager = new StringHolder();
+		IntegerHolder peerConnectionID = new IntegerHolder();
+		StringHolder direction = new StringHolder();
+		StringHolder status = new StringHolder();
+		
+
+		// invoke model
+		
+		 model.getCurrentConnectionInfo(
+			IntegerHolder.toValue(
+			connectionID)
+		,
+
+rcsID,
+
+aVTransportID,
+
+protocolInfo,
+
+peerConnectionManager,
+
+peerConnectionID,
+
+direction,
+
+status
+		 );
+		
+		// build returned Dictionary		
+		Dictionary _result = new Hashtable();
+		
+			_result.put("RcsID",rcsID.getObject());
+			// java.lang.Integer
+			_result.put("AVTransportID",aVTransportID.getObject());
+			// java.lang.Integer
+			_result.put("ProtocolInfo",protocolInfo.getObject());
+			// java.lang.String
+			_result.put("PeerConnectionManager",peerConnectionManager.getObject());
+			// java.lang.String
+			_result.put("PeerConnectionID",peerConnectionID.getObject());
+			// java.lang.Integer
+			_result.put("Direction",direction.getObject());
+			// java.lang.String
+			_result.put("Status",status.getObject());
+			// java.lang.String
+		return _result.isEmpty()?null:_result;
+	}
+
+
+	public void start(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+	public void stop(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+};
+	
+}

Propchange: incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/media/service/ConnectionManager.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/media/service/ContentDirectory.java
URL: http://svn.apache.org/viewvc/incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/media/service/ContentDirectory.java?view=auto&rev=533875
==============================================================================
--- incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/media/service/ContentDirectory.java (added)
+++ incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/media/service/ContentDirectory.java Mon Apr 30 16:15:05 2007
@@ -0,0 +1,2566 @@
+
+/*
+__BANNER__
+*/
+// this file was generated at 1-May-2007 12:59 AM by ${author}
+package org.apache.felix.upnp.devicegen.media.service;
+
+import java.util.Dictionary;
+import java.util.HashMap;
+import java.util.Hashtable;
+import java.util.Map;
+
+import org.osgi.framework.*;
+import org.osgi.service.upnp.*;
+import org.apache.felix.upnp.devicegen.util.*;
+import org.apache.felix.upnp.devicegen.holder.*;
+
+import org.apache.felix.upnp.devicegen.media.model.*;
+import org.apache.felix.upnp.devicegen.media.impl.*;
+
+	
+
+public class ContentDirectory extends AbstractUPnPService {
+	
+		
+	private ContentDirectoryModel model;	
+		
+	/**
+	 * constructor
+	 */
+	public ContentDirectory(
+		UPnPDevice upnpDevice,
+		String serviceId,
+		String serviceType,
+		String version,
+		ContentDirectoryModel model
+	){
+		super(	
+			upnpDevice,
+			serviceId,
+			serviceType,
+			version
+		);
+		this.model=model;
+	
+		
+	stateVariables=new HashMap();
+	
+
+	
+	stateVariables.put(
+		"TransferIDs",
+		new TransferIDsStateVariable(this,model)
+	);
+
+
+	
+	stateVariables.put(
+		"A_ARG_TYPE_ObjectID",
+		new A_ARG_TYPE_ObjectIDStateVariable(this,model)
+	);
+
+
+	
+	stateVariables.put(
+		"A_ARG_TYPE_Result",
+		new A_ARG_TYPE_ResultStateVariable(this,model)
+	);
+
+
+	
+	stateVariables.put(
+		"A_ARG_TYPE_SearchCriteria",
+		new A_ARG_TYPE_SearchCriteriaStateVariable(this,model)
+	);
+
+
+	
+	stateVariables.put(
+		"A_ARG_TYPE_BrowseFlag",
+		new A_ARG_TYPE_BrowseFlagStateVariable(this,model)
+	);
+
+
+	
+	stateVariables.put(
+		"A_ARG_TYPE_Filter",
+		new A_ARG_TYPE_FilterStateVariable(this,model)
+	);
+
+
+	
+	stateVariables.put(
+		"A_ARG_TYPE_SortCriteria",
+		new A_ARG_TYPE_SortCriteriaStateVariable(this,model)
+	);
+
+
+	
+	stateVariables.put(
+		"A_ARG_TYPE_Index",
+		new A_ARG_TYPE_IndexStateVariable(this,model)
+	);
+
+
+	
+	stateVariables.put(
+		"A_ARG_TYPE_Count",
+		new A_ARG_TYPE_CountStateVariable(this,model)
+	);
+
+
+	
+	stateVariables.put(
+		"A_ARG_TYPE_UpdateID",
+		new A_ARG_TYPE_UpdateIDStateVariable(this,model)
+	);
+
+
+	
+	stateVariables.put(
+		"A_ARG_TYPE_TransferID",
+		new A_ARG_TYPE_TransferIDStateVariable(this,model)
+	);
+
+
+	
+	stateVariables.put(
+		"A_ARG_TYPE_TransferStatus",
+		new A_ARG_TYPE_TransferStatusStateVariable(this,model)
+	);
+
+
+	
+	stateVariables.put(
+		"A_ARG_TYPE_TransferLength",
+		new A_ARG_TYPE_TransferLengthStateVariable(this,model)
+	);
+
+
+	
+	stateVariables.put(
+		"A_ARG_TYPE_TransferTotal",
+		new A_ARG_TYPE_TransferTotalStateVariable(this,model)
+	);
+
+
+	
+	stateVariables.put(
+		"A_ARG_TYPE_TagValueList",
+		new A_ARG_TYPE_TagValueListStateVariable(this,model)
+	);
+
+
+	
+	stateVariables.put(
+		"A_ARG_TYPE_URI",
+		new A_ARG_TYPE_URIStateVariable(this,model)
+	);
+
+
+	
+	stateVariables.put(
+		"SearchCapabilities",
+		new SearchCapabilitiesStateVariable(this,model)
+	);
+
+
+	
+	stateVariables.put(
+		"SortCapabilities",
+		new SortCapabilitiesStateVariable(this,model)
+	);
+
+
+	
+	stateVariables.put(
+		"SystemUpdateID",
+		new SystemUpdateIDStateVariable(this,model)
+	);
+
+
+	
+	stateVariables.put(
+		"ContainerUpdateIDs",
+		new ContainerUpdateIDsStateVariable(this,model)
+	);
+
+	actions=new HashMap();
+	
+
+
+	actions.put(
+		"GetSearchCapabilities",
+		new GetSearchCapabilitiesAction(this,model)
+	);
+
+
+
+	actions.put(
+		"GetSortCapabilities",
+		new GetSortCapabilitiesAction(this,model)
+	);
+
+
+
+	actions.put(
+		"GetSystemUpdateID",
+		new GetSystemUpdateIDAction(this,model)
+	);
+
+
+
+	actions.put(
+		"Browse",
+		new BrowseAction(this,model)
+	);
+
+
+
+	actions.put(
+		"Search",
+		new SearchAction(this,model)
+	);
+
+
+
+	actions.put(
+		"CreateObject",
+		new CreateObjectAction(this,model)
+	);
+
+
+
+	actions.put(
+		"DestroyObject",
+		new DestroyObjectAction(this,model)
+	);
+
+
+
+	actions.put(
+		"UpdateObject",
+		new UpdateObjectAction(this,model)
+	);
+
+
+
+	actions.put(
+		"ImportResource",
+		new ImportResourceAction(this,model)
+	);
+
+
+
+	actions.put(
+		"ExportResource",
+		new ExportResourceAction(this,model)
+	);
+
+
+
+	actions.put(
+		"StopTransferResource",
+		new StopTransferResourceAction(this,model)
+	);
+
+
+
+	actions.put(
+		"GetTransferProgress",
+		new GetTransferProgressAction(this,model)
+	);
+
+
+
+	actions.put(
+		"DeleteResource",
+		new DeleteResourceAction(this,model)
+	);
+
+
+
+	actions.put(
+		"CreateReference",
+		new CreateReferenceAction(this,model)
+	);
+	
+	}
+
+	// UPnPStateVariable classes
+	
+	
+
+// class TransferIDsStateVariable
+public class TransferIDsStateVariable
+  extends AbstractUPnPStateVariable
+			
+	  implements UPnPStateVariableDescriptor{
+
+	public final static String NAME="TransferIDs";
+	public final static String DATATYPE="string";
+	
+	// HERE specific state variable members
+	private ContentDirectoryModel model;
+	
+	public TransferIDsStateVariable(
+		UPnPService upnpService,
+		ContentDirectoryModel model
+	){	
+		super(
+					upnpService,
+					NAME,
+					DATATYPE,
+					null, // TODO defaultValue changed for 
+					null, // TODO step changed for 
+					null, // TODO step changed for 
+					null, // TODO minimum changed for 
+					null, // TODO maximum changed for 
+					// sendEventsAttribute
+	true,
+					true  // TODO required changed for  OR 
+		);
+		
+		this.model=model;
+
+		
+	}
+	
+	// TODO
+	
+	public void start(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+	public void stop(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+			
+	/**
+	 * invoked for the first notification just after a subscription
+	 * @see it.cnr.isti.niche.osgi.upnp.util.UPnPStateVariableDescriptor#getValue()
+	 */
+	public Object getValue(){
+	
+		return model.getTransferIDsStateVariableValue();
+		
+	}
+};
+
+
+// class A_ARG_TYPE_ObjectIDStateVariable
+public class A_ARG_TYPE_ObjectIDStateVariable
+  extends AbstractUPnPStateVariable
+			
+	{
+
+	public final static String NAME="A_ARG_TYPE_ObjectID";
+	public final static String DATATYPE="string";
+	
+	// HERE specific state variable members
+	private ContentDirectoryModel model;
+	
+	public A_ARG_TYPE_ObjectIDStateVariable(
+		UPnPService upnpService,
+		ContentDirectoryModel model
+	){	
+		super(
+					upnpService,
+					NAME,
+					DATATYPE,
+					null, // TODO defaultValue changed for 
+					null, // TODO step changed for 
+					null, // TODO step changed for 
+					null, // TODO minimum changed for 
+					null, // TODO maximum changed for 
+					// sendEventsAttribute
+	false,
+					true  // TODO required changed for  OR 
+		);
+		
+		this.model=model;
+
+		
+	}
+	
+	// TODO
+	
+	public void start(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+	public void stop(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+			
+	/**
+	 * invoked for the first notification just after a subscription
+	 * @see it.cnr.isti.niche.osgi.upnp.util.UPnPStateVariableDescriptor#getValue()
+	 */
+	public Object getValue(){
+	return null;
+	}
+};
+
+
+// class A_ARG_TYPE_ResultStateVariable
+public class A_ARG_TYPE_ResultStateVariable
+  extends AbstractUPnPStateVariable
+			
+	{
+
+	public final static String NAME="A_ARG_TYPE_Result";
+	public final static String DATATYPE="string";
+	
+	// HERE specific state variable members
+	private ContentDirectoryModel model;
+	
+	public A_ARG_TYPE_ResultStateVariable(
+		UPnPService upnpService,
+		ContentDirectoryModel model
+	){	
+		super(
+					upnpService,
+					NAME,
+					DATATYPE,
+					null, // TODO defaultValue changed for 
+					null, // TODO step changed for 
+					null, // TODO step changed for 
+					null, // TODO minimum changed for 
+					null, // TODO maximum changed for 
+					// sendEventsAttribute
+	false,
+					true  // TODO required changed for  OR 
+		);
+		
+		this.model=model;
+
+		
+	}
+	
+	// TODO
+	
+	public void start(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+	public void stop(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+			
+	/**
+	 * invoked for the first notification just after a subscription
+	 * @see it.cnr.isti.niche.osgi.upnp.util.UPnPStateVariableDescriptor#getValue()
+	 */
+	public Object getValue(){
+	return null;
+	}
+};
+
+
+// class A_ARG_TYPE_SearchCriteriaStateVariable
+public class A_ARG_TYPE_SearchCriteriaStateVariable
+  extends AbstractUPnPStateVariable
+			
+	{
+
+	public final static String NAME="A_ARG_TYPE_SearchCriteria";
+	public final static String DATATYPE="string";
+	
+	// HERE specific state variable members
+	private ContentDirectoryModel model;
+	
+	public A_ARG_TYPE_SearchCriteriaStateVariable(
+		UPnPService upnpService,
+		ContentDirectoryModel model
+	){	
+		super(
+					upnpService,
+					NAME,
+					DATATYPE,
+					null, // TODO defaultValue changed for 
+					null, // TODO step changed for 
+					null, // TODO step changed for 
+					null, // TODO minimum changed for 
+					null, // TODO maximum changed for 
+					// sendEventsAttribute
+	false,
+					true  // TODO required changed for  OR 
+		);
+		
+		this.model=model;
+
+		
+	}
+	
+	// TODO
+	
+	public void start(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+	public void stop(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+			
+	/**
+	 * invoked for the first notification just after a subscription
+	 * @see it.cnr.isti.niche.osgi.upnp.util.UPnPStateVariableDescriptor#getValue()
+	 */
+	public Object getValue(){
+	return null;
+	}
+};
+
+
+// class A_ARG_TYPE_BrowseFlagStateVariable
+public class A_ARG_TYPE_BrowseFlagStateVariable
+  extends AbstractUPnPStateVariable
+			
+	{
+
+	public final static String NAME="A_ARG_TYPE_BrowseFlag";
+	public final static String DATATYPE="string";
+	
+	// HERE specific state variable members
+	private ContentDirectoryModel model;
+	
+	public A_ARG_TYPE_BrowseFlagStateVariable(
+		UPnPService upnpService,
+		ContentDirectoryModel model
+	){	
+		super(
+					upnpService,
+					NAME,
+					DATATYPE,
+					null, // TODO defaultValue changed for 
+					null, // TODO step changed for 
+					null, // TODO step changed for 
+					null, // TODO minimum changed for 
+					null, // TODO maximum changed for 
+					// sendEventsAttribute
+	false,
+					true  // TODO required changed for  OR 
+		);
+		
+		this.model=model;
+
+		
+	/*
+		List allowedValueList=new LinkedList();
+		
+		allowedValueList.add(UPnPDataTypeUtil.instanciateObject("string","BrowseMetadata"));
+
+		allowedValueList.add(UPnPDataTypeUtil.instanciateObject("string","BrowseDirectChildren"));
+
+		this.setallowedValueList(allowedValueList);
+	*/
+
+	}
+	
+	// TODO
+	
+	public void start(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+	public void stop(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+			
+	/**
+	 * invoked for the first notification just after a subscription
+	 * @see it.cnr.isti.niche.osgi.upnp.util.UPnPStateVariableDescriptor#getValue()
+	 */
+	public Object getValue(){
+	return null;
+	}
+};
+
+
+// class A_ARG_TYPE_FilterStateVariable
+public class A_ARG_TYPE_FilterStateVariable
+  extends AbstractUPnPStateVariable
+			
+	{
+
+	public final static String NAME="A_ARG_TYPE_Filter";
+	public final static String DATATYPE="string";
+	
+	// HERE specific state variable members
+	private ContentDirectoryModel model;
+	
+	public A_ARG_TYPE_FilterStateVariable(
+		UPnPService upnpService,
+		ContentDirectoryModel model
+	){	
+		super(
+					upnpService,
+					NAME,
+					DATATYPE,
+					null, // TODO defaultValue changed for 
+					null, // TODO step changed for 
+					null, // TODO step changed for 
+					null, // TODO minimum changed for 
+					null, // TODO maximum changed for 
+					// sendEventsAttribute
+	false,
+					true  // TODO required changed for  OR 
+		);
+		
+		this.model=model;
+
+		
+	}
+	
+	// TODO
+	
+	public void start(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+	public void stop(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+			
+	/**
+	 * invoked for the first notification just after a subscription
+	 * @see it.cnr.isti.niche.osgi.upnp.util.UPnPStateVariableDescriptor#getValue()
+	 */
+	public Object getValue(){
+	return null;
+	}
+};
+
+
+// class A_ARG_TYPE_SortCriteriaStateVariable
+public class A_ARG_TYPE_SortCriteriaStateVariable
+  extends AbstractUPnPStateVariable
+			
+	{
+
+	public final static String NAME="A_ARG_TYPE_SortCriteria";
+	public final static String DATATYPE="string";
+	
+	// HERE specific state variable members
+	private ContentDirectoryModel model;
+	
+	public A_ARG_TYPE_SortCriteriaStateVariable(
+		UPnPService upnpService,
+		ContentDirectoryModel model
+	){	
+		super(
+					upnpService,
+					NAME,
+					DATATYPE,
+					null, // TODO defaultValue changed for 
+					null, // TODO step changed for 
+					null, // TODO step changed for 
+					null, // TODO minimum changed for 
+					null, // TODO maximum changed for 
+					// sendEventsAttribute
+	false,
+					true  // TODO required changed for  OR 
+		);
+		
+		this.model=model;
+
+		
+	}
+	
+	// TODO
+	
+	public void start(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+	public void stop(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+			
+	/**
+	 * invoked for the first notification just after a subscription
+	 * @see it.cnr.isti.niche.osgi.upnp.util.UPnPStateVariableDescriptor#getValue()
+	 */
+	public Object getValue(){
+	return null;
+	}
+};
+
+
+// class A_ARG_TYPE_IndexStateVariable
+public class A_ARG_TYPE_IndexStateVariable
+  extends AbstractUPnPStateVariable
+			
+	{
+
+	public final static String NAME="A_ARG_TYPE_Index";
+	public final static String DATATYPE="ui4";
+	
+	// HERE specific state variable members
+	private ContentDirectoryModel model;
+	
+	public A_ARG_TYPE_IndexStateVariable(
+		UPnPService upnpService,
+		ContentDirectoryModel model
+	){	
+		super(
+					upnpService,
+					NAME,
+					DATATYPE,
+					null, // TODO defaultValue changed for 
+					null, // TODO step changed for 
+					null, // TODO step changed for 
+					null, // TODO minimum changed for 
+					null, // TODO maximum changed for 
+					// sendEventsAttribute
+	false,
+					true  // TODO required changed for  OR 
+		);
+		
+		this.model=model;
+
+		
+	}
+	
+	// TODO
+	
+	public void start(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+	public void stop(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+			
+	/**
+	 * invoked for the first notification just after a subscription
+	 * @see it.cnr.isti.niche.osgi.upnp.util.UPnPStateVariableDescriptor#getValue()
+	 */
+	public Object getValue(){
+	return null;
+	}
+};
+
+
+// class A_ARG_TYPE_CountStateVariable
+public class A_ARG_TYPE_CountStateVariable
+  extends AbstractUPnPStateVariable
+			
+	{
+
+	public final static String NAME="A_ARG_TYPE_Count";
+	public final static String DATATYPE="ui4";
+	
+	// HERE specific state variable members
+	private ContentDirectoryModel model;
+	
+	public A_ARG_TYPE_CountStateVariable(
+		UPnPService upnpService,
+		ContentDirectoryModel model
+	){	
+		super(
+					upnpService,
+					NAME,
+					DATATYPE,
+					null, // TODO defaultValue changed for 
+					null, // TODO step changed for 
+					null, // TODO step changed for 
+					null, // TODO minimum changed for 
+					null, // TODO maximum changed for 
+					// sendEventsAttribute
+	false,
+					true  // TODO required changed for  OR 
+		);
+		
+		this.model=model;
+
+		
+	}
+	
+	// TODO
+	
+	public void start(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+	public void stop(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+			
+	/**
+	 * invoked for the first notification just after a subscription
+	 * @see it.cnr.isti.niche.osgi.upnp.util.UPnPStateVariableDescriptor#getValue()
+	 */
+	public Object getValue(){
+	return null;
+	}
+};
+
+
+// class A_ARG_TYPE_UpdateIDStateVariable
+public class A_ARG_TYPE_UpdateIDStateVariable
+  extends AbstractUPnPStateVariable
+			
+	{
+
+	public final static String NAME="A_ARG_TYPE_UpdateID";
+	public final static String DATATYPE="ui4";
+	
+	// HERE specific state variable members
+	private ContentDirectoryModel model;
+	
+	public A_ARG_TYPE_UpdateIDStateVariable(
+		UPnPService upnpService,
+		ContentDirectoryModel model
+	){	
+		super(
+					upnpService,
+					NAME,
+					DATATYPE,
+					null, // TODO defaultValue changed for 
+					null, // TODO step changed for 
+					null, // TODO step changed for 
+					null, // TODO minimum changed for 
+					null, // TODO maximum changed for 
+					// sendEventsAttribute
+	false,
+					true  // TODO required changed for  OR 
+		);
+		
+		this.model=model;
+
+		
+	}
+	
+	// TODO
+	
+	public void start(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+	public void stop(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+			
+	/**
+	 * invoked for the first notification just after a subscription
+	 * @see it.cnr.isti.niche.osgi.upnp.util.UPnPStateVariableDescriptor#getValue()
+	 */
+	public Object getValue(){
+	return null;
+	}
+};
+
+
+// class A_ARG_TYPE_TransferIDStateVariable
+public class A_ARG_TYPE_TransferIDStateVariable
+  extends AbstractUPnPStateVariable
+			
+	{
+
+	public final static String NAME="A_ARG_TYPE_TransferID";
+	public final static String DATATYPE="ui4";
+	
+	// HERE specific state variable members
+	private ContentDirectoryModel model;
+	
+	public A_ARG_TYPE_TransferIDStateVariable(
+		UPnPService upnpService,
+		ContentDirectoryModel model
+	){	
+		super(
+					upnpService,
+					NAME,
+					DATATYPE,
+					null, // TODO defaultValue changed for 
+					null, // TODO step changed for 
+					null, // TODO step changed for 
+					null, // TODO minimum changed for 
+					null, // TODO maximum changed for 
+					// sendEventsAttribute
+	false,
+					true  // TODO required changed for  OR 
+		);
+		
+		this.model=model;
+
+		
+	}
+	
+	// TODO
+	
+	public void start(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+	public void stop(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+			
+	/**
+	 * invoked for the first notification just after a subscription
+	 * @see it.cnr.isti.niche.osgi.upnp.util.UPnPStateVariableDescriptor#getValue()
+	 */
+	public Object getValue(){
+	return null;
+	}
+};
+
+
+// class A_ARG_TYPE_TransferStatusStateVariable
+public class A_ARG_TYPE_TransferStatusStateVariable
+  extends AbstractUPnPStateVariable
+			
+	{
+
+	public final static String NAME="A_ARG_TYPE_TransferStatus";
+	public final static String DATATYPE="string";
+	
+	// HERE specific state variable members
+	private ContentDirectoryModel model;
+	
+	public A_ARG_TYPE_TransferStatusStateVariable(
+		UPnPService upnpService,
+		ContentDirectoryModel model
+	){	
+		super(
+					upnpService,
+					NAME,
+					DATATYPE,
+					null, // TODO defaultValue changed for 
+					null, // TODO step changed for 
+					null, // TODO step changed for 
+					null, // TODO minimum changed for 
+					null, // TODO maximum changed for 
+					// sendEventsAttribute
+	false,
+					true  // TODO required changed for  OR 
+		);
+		
+		this.model=model;
+
+		
+	/*
+		List allowedValueList=new LinkedList();
+		
+		allowedValueList.add(UPnPDataTypeUtil.instanciateObject("string","COMPLETED"));
+
+		allowedValueList.add(UPnPDataTypeUtil.instanciateObject("string","ERROR"));
+
+		allowedValueList.add(UPnPDataTypeUtil.instanciateObject("string","IN_PROGRESS"));
+
+		allowedValueList.add(UPnPDataTypeUtil.instanciateObject("string","STOPPED"));
+
+		this.setallowedValueList(allowedValueList);
+	*/
+
+	}
+	
+	// TODO
+	
+	public void start(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+	public void stop(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+			
+	/**
+	 * invoked for the first notification just after a subscription
+	 * @see it.cnr.isti.niche.osgi.upnp.util.UPnPStateVariableDescriptor#getValue()
+	 */
+	public Object getValue(){
+	return null;
+	}
+};
+
+
+// class A_ARG_TYPE_TransferLengthStateVariable
+public class A_ARG_TYPE_TransferLengthStateVariable
+  extends AbstractUPnPStateVariable
+			
+	{
+
+	public final static String NAME="A_ARG_TYPE_TransferLength";
+	public final static String DATATYPE="string";
+	
+	// HERE specific state variable members
+	private ContentDirectoryModel model;
+	
+	public A_ARG_TYPE_TransferLengthStateVariable(
+		UPnPService upnpService,
+		ContentDirectoryModel model
+	){	
+		super(
+					upnpService,
+					NAME,
+					DATATYPE,
+					null, // TODO defaultValue changed for 
+					null, // TODO step changed for 
+					null, // TODO step changed for 
+					null, // TODO minimum changed for 
+					null, // TODO maximum changed for 
+					// sendEventsAttribute
+	false,
+					true  // TODO required changed for  OR 
+		);
+		
+		this.model=model;
+
+		
+	}
+	
+	// TODO
+	
+	public void start(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+	public void stop(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+			
+	/**
+	 * invoked for the first notification just after a subscription
+	 * @see it.cnr.isti.niche.osgi.upnp.util.UPnPStateVariableDescriptor#getValue()
+	 */
+	public Object getValue(){
+	return null;
+	}
+};
+
+
+// class A_ARG_TYPE_TransferTotalStateVariable
+public class A_ARG_TYPE_TransferTotalStateVariable
+  extends AbstractUPnPStateVariable
+			
+	{
+
+	public final static String NAME="A_ARG_TYPE_TransferTotal";
+	public final static String DATATYPE="string";
+	
+	// HERE specific state variable members
+	private ContentDirectoryModel model;
+	
+	public A_ARG_TYPE_TransferTotalStateVariable(
+		UPnPService upnpService,
+		ContentDirectoryModel model
+	){	
+		super(
+					upnpService,
+					NAME,
+					DATATYPE,
+					null, // TODO defaultValue changed for 
+					null, // TODO step changed for 
+					null, // TODO step changed for 
+					null, // TODO minimum changed for 
+					null, // TODO maximum changed for 
+					// sendEventsAttribute
+	false,
+					true  // TODO required changed for  OR 
+		);
+		
+		this.model=model;
+
+		
+	}
+	
+	// TODO
+	
+	public void start(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+	public void stop(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+			
+	/**
+	 * invoked for the first notification just after a subscription
+	 * @see it.cnr.isti.niche.osgi.upnp.util.UPnPStateVariableDescriptor#getValue()
+	 */
+	public Object getValue(){
+	return null;
+	}
+};
+
+
+// class A_ARG_TYPE_TagValueListStateVariable
+public class A_ARG_TYPE_TagValueListStateVariable
+  extends AbstractUPnPStateVariable
+			
+	{
+
+	public final static String NAME="A_ARG_TYPE_TagValueList";
+	public final static String DATATYPE="string";
+	
+	// HERE specific state variable members
+	private ContentDirectoryModel model;
+	
+	public A_ARG_TYPE_TagValueListStateVariable(
+		UPnPService upnpService,
+		ContentDirectoryModel model
+	){	
+		super(
+					upnpService,
+					NAME,
+					DATATYPE,
+					null, // TODO defaultValue changed for 
+					null, // TODO step changed for 
+					null, // TODO step changed for 
+					null, // TODO minimum changed for 
+					null, // TODO maximum changed for 
+					// sendEventsAttribute
+	false,
+					true  // TODO required changed for  OR 
+		);
+		
+		this.model=model;
+
+		
+	}
+	
+	// TODO
+	
+	public void start(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+	public void stop(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+			
+	/**
+	 * invoked for the first notification just after a subscription
+	 * @see it.cnr.isti.niche.osgi.upnp.util.UPnPStateVariableDescriptor#getValue()
+	 */
+	public Object getValue(){
+	return null;
+	}
+};
+
+
+// class A_ARG_TYPE_URIStateVariable
+public class A_ARG_TYPE_URIStateVariable
+  extends AbstractUPnPStateVariable
+			
+	{
+
+	public final static String NAME="A_ARG_TYPE_URI";
+	public final static String DATATYPE="uri";
+	
+	// HERE specific state variable members
+	private ContentDirectoryModel model;
+	
+	public A_ARG_TYPE_URIStateVariable(
+		UPnPService upnpService,
+		ContentDirectoryModel model
+	){	
+		super(
+					upnpService,
+					NAME,
+					DATATYPE,
+					null, // TODO defaultValue changed for 
+					null, // TODO step changed for 
+					null, // TODO step changed for 
+					null, // TODO minimum changed for 
+					null, // TODO maximum changed for 
+					// sendEventsAttribute
+	false,
+					true  // TODO required changed for  OR 
+		);
+		
+		this.model=model;
+
+		
+	}
+	
+	// TODO
+	
+	public void start(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+	public void stop(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+			
+	/**
+	 * invoked for the first notification just after a subscription
+	 * @see it.cnr.isti.niche.osgi.upnp.util.UPnPStateVariableDescriptor#getValue()
+	 */
+	public Object getValue(){
+	return null;
+	}
+};
+
+
+// class SearchCapabilitiesStateVariable
+public class SearchCapabilitiesStateVariable
+  extends AbstractUPnPStateVariable
+			
+	{
+
+	public final static String NAME="SearchCapabilities";
+	public final static String DATATYPE="string";
+	
+	// HERE specific state variable members
+	private ContentDirectoryModel model;
+	
+	public SearchCapabilitiesStateVariable(
+		UPnPService upnpService,
+		ContentDirectoryModel model
+	){	
+		super(
+					upnpService,
+					NAME,
+					DATATYPE,
+					null, // TODO defaultValue changed for 
+					null, // TODO step changed for 
+					null, // TODO step changed for 
+					null, // TODO minimum changed for 
+					null, // TODO maximum changed for 
+					// sendEventsAttribute
+	false,
+					true  // TODO required changed for  OR 
+		);
+		
+		this.model=model;
+
+		
+	}
+	
+	// TODO
+	
+	public void start(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+	public void stop(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+			
+	/**
+	 * invoked for the first notification just after a subscription
+	 * @see it.cnr.isti.niche.osgi.upnp.util.UPnPStateVariableDescriptor#getValue()
+	 */
+	public Object getValue(){
+	return null;
+	}
+};
+
+
+// class SortCapabilitiesStateVariable
+public class SortCapabilitiesStateVariable
+  extends AbstractUPnPStateVariable
+			
+	{
+
+	public final static String NAME="SortCapabilities";
+	public final static String DATATYPE="string";
+	
+	// HERE specific state variable members
+	private ContentDirectoryModel model;
+	
+	public SortCapabilitiesStateVariable(
+		UPnPService upnpService,
+		ContentDirectoryModel model
+	){	
+		super(
+					upnpService,
+					NAME,
+					DATATYPE,
+					null, // TODO defaultValue changed for 
+					null, // TODO step changed for 
+					null, // TODO step changed for 
+					null, // TODO minimum changed for 
+					null, // TODO maximum changed for 
+					// sendEventsAttribute
+	false,
+					true  // TODO required changed for  OR 
+		);
+		
+		this.model=model;
+
+		
+	}
+	
+	// TODO
+	
+	public void start(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+	public void stop(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+			
+	/**
+	 * invoked for the first notification just after a subscription
+	 * @see it.cnr.isti.niche.osgi.upnp.util.UPnPStateVariableDescriptor#getValue()
+	 */
+	public Object getValue(){
+	return null;
+	}
+};
+
+
+// class SystemUpdateIDStateVariable
+public class SystemUpdateIDStateVariable
+  extends AbstractUPnPStateVariable
+			
+	  implements UPnPStateVariableDescriptor{
+
+	public final static String NAME="SystemUpdateID";
+	public final static String DATATYPE="ui4";
+	
+	// HERE specific state variable members
+	private ContentDirectoryModel model;
+	
+	public SystemUpdateIDStateVariable(
+		UPnPService upnpService,
+		ContentDirectoryModel model
+	){	
+		super(
+					upnpService,
+					NAME,
+					DATATYPE,
+					null, // TODO defaultValue changed for 
+					null, // TODO step changed for 
+					null, // TODO step changed for 
+					null, // TODO minimum changed for 
+					null, // TODO maximum changed for 
+					// sendEventsAttribute
+	true,
+					true  // TODO required changed for  OR 
+		);
+		
+		this.model=model;
+
+		
+	}
+	
+	// TODO
+	
+	public void start(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+	public void stop(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+			
+	/**
+	 * invoked for the first notification just after a subscription
+	 * @see it.cnr.isti.niche.osgi.upnp.util.UPnPStateVariableDescriptor#getValue()
+	 */
+	public Object getValue(){
+	
+		return model.getSystemUpdateIDStateVariableValue();
+		
+	}
+};
+
+
+// class ContainerUpdateIDsStateVariable
+public class ContainerUpdateIDsStateVariable
+  extends AbstractUPnPStateVariable
+			
+	  implements UPnPStateVariableDescriptor{
+
+	public final static String NAME="ContainerUpdateIDs";
+	public final static String DATATYPE="string";
+	
+	// HERE specific state variable members
+	private ContentDirectoryModel model;
+	
+	public ContainerUpdateIDsStateVariable(
+		UPnPService upnpService,
+		ContentDirectoryModel model
+	){	
+		super(
+					upnpService,
+					NAME,
+					DATATYPE,
+					null, // TODO defaultValue changed for 
+					null, // TODO step changed for 
+					null, // TODO step changed for 
+					null, // TODO minimum changed for 
+					null, // TODO maximum changed for 
+					// sendEventsAttribute
+	true,
+					true  // TODO required changed for  OR 
+		);
+		
+		this.model=model;
+
+		
+	}
+	
+	// TODO
+	
+	public void start(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+	public void stop(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+			
+	/**
+	 * invoked for the first notification just after a subscription
+	 * @see it.cnr.isti.niche.osgi.upnp.util.UPnPStateVariableDescriptor#getValue()
+	 */
+	public Object getValue(){
+	
+		return model.getContainerUpdateIDsStateVariableValue();
+		
+	}
+};
+	
+
+	// UPnPAction classes
+	
+	
+
+public class GetSearchCapabilitiesAction extends AbstractUPnPAction {
+
+	ContentDirectoryModel model;
+	
+	// HERE specific action members
+	
+	public GetSearchCapabilitiesAction(
+	    UPnPService upnpService,
+		ContentDirectoryModel model
+	){
+		super(
+			upnpService,
+			"GetSearchCapabilities",
+			""
+		);
+		this.model=model;
+		
+			addOutArg(
+				"SearchCaps",
+				upnpService.getStateVariable("SearchCapabilities")
+			);
+		
+	}
+
+	/**
+	 * @see org.osgi.service.upnp.UPnPAction#invoke(java.util.Dictionary)
+	 */
+	public Dictionary invoke(Dictionary _args) throws Exception {
+
+	StringHolder searchCaps = new StringHolder();
+		
+
+		// invoke model
+		
+		 model.getSearchCapabilities(
+			searchCaps
+		 );
+		
+		// build returned Dictionary		
+		Dictionary _result = new Hashtable();
+		
+			_result.put("SearchCaps",searchCaps.getObject());
+			// java.lang.String
+		return _result.isEmpty()?null:_result;
+	}
+
+
+	public void start(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+	public void stop(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+};
+
+
+public class GetSortCapabilitiesAction extends AbstractUPnPAction {
+
+	ContentDirectoryModel model;
+	
+	// HERE specific action members
+	
+	public GetSortCapabilitiesAction(
+	    UPnPService upnpService,
+		ContentDirectoryModel model
+	){
+		super(
+			upnpService,
+			"GetSortCapabilities",
+			""
+		);
+		this.model=model;
+		
+			addOutArg(
+				"SortCaps",
+				upnpService.getStateVariable("SortCapabilities")
+			);
+		
+	}
+
+	/**
+	 * @see org.osgi.service.upnp.UPnPAction#invoke(java.util.Dictionary)
+	 */
+	public Dictionary invoke(Dictionary _args) throws Exception {
+
+	StringHolder sortCaps = new StringHolder();
+		
+
+		// invoke model
+		
+		 model.getSortCapabilities(
+			sortCaps
+		 );
+		
+		// build returned Dictionary		
+		Dictionary _result = new Hashtable();
+		
+			_result.put("SortCaps",sortCaps.getObject());
+			// java.lang.String
+		return _result.isEmpty()?null:_result;
+	}
+
+
+	public void start(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+	public void stop(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+};
+
+
+public class GetSystemUpdateIDAction extends AbstractUPnPAction {
+
+	ContentDirectoryModel model;
+	
+	// HERE specific action members
+	
+	public GetSystemUpdateIDAction(
+	    UPnPService upnpService,
+		ContentDirectoryModel model
+	){
+		super(
+			upnpService,
+			"GetSystemUpdateID",
+			""
+		);
+		this.model=model;
+		
+			addOutArg(
+				"Id",
+				upnpService.getStateVariable("SystemUpdateID")
+			);
+		
+	}
+
+	/**
+	 * @see org.osgi.service.upnp.UPnPAction#invoke(java.util.Dictionary)
+	 */
+	public Dictionary invoke(Dictionary _args) throws Exception {
+
+	LongHolder id = new LongHolder();
+		
+
+		// invoke model
+		
+		 model.getSystemUpdateID(
+			id
+		 );
+		
+		// build returned Dictionary		
+		Dictionary _result = new Hashtable();
+		
+			_result.put("Id",id.getObject());
+			// java.lang.Long
+		return _result.isEmpty()?null:_result;
+	}
+
+
+	public void start(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+	public void stop(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+};
+
+
+public class BrowseAction extends AbstractUPnPAction {
+
+	ContentDirectoryModel model;
+	
+	// HERE specific action members
+	
+	public BrowseAction(
+	    UPnPService upnpService,
+		ContentDirectoryModel model
+	){
+		super(
+			upnpService,
+			"Browse",
+			""
+		);
+		this.model=model;
+		
+			addInArg(
+				"ObjectID",
+				upnpService.getStateVariable("A_ARG_TYPE_ObjectID")
+			);
+		
+			addInArg(
+				"BrowseFlag",
+				upnpService.getStateVariable("A_ARG_TYPE_BrowseFlag")
+			);
+		
+			addInArg(
+				"Filter",
+				upnpService.getStateVariable("A_ARG_TYPE_Filter")
+			);
+		
+			addInArg(
+				"StartingIndex",
+				upnpService.getStateVariable("A_ARG_TYPE_Index")
+			);
+		
+			addInArg(
+				"RequestedCount",
+				upnpService.getStateVariable("A_ARG_TYPE_Count")
+			);
+		
+			addInArg(
+				"SortCriteria",
+				upnpService.getStateVariable("A_ARG_TYPE_SortCriteria")
+			);
+		
+			addOutArg(
+				"Result",
+				upnpService.getStateVariable("A_ARG_TYPE_Result")
+			);
+		
+			addOutArg(
+				"NumberReturned",
+				upnpService.getStateVariable("A_ARG_TYPE_Count")
+			);
+		
+			addOutArg(
+				"TotalMatches",
+				upnpService.getStateVariable("A_ARG_TYPE_Count")
+			);
+		
+			addOutArg(
+				"UpdateID",
+				upnpService.getStateVariable("A_ARG_TYPE_UpdateID")
+			);
+		
+	}
+
+	/**
+	 * @see org.osgi.service.upnp.UPnPAction#invoke(java.util.Dictionary)
+	 */
+	public Dictionary invoke(Dictionary _args) throws Exception {
+
+	java.lang.String objectID = (java.lang.String) _args.get("ObjectID");
+		java.lang.String browseFlag = (java.lang.String) _args.get("BrowseFlag");
+		java.lang.String filter = (java.lang.String) _args.get("Filter");
+		java.lang.Long startingIndex = (java.lang.Long) _args.get("StartingIndex");
+		java.lang.Long requestedCount = (java.lang.Long) _args.get("RequestedCount");
+		java.lang.String sortCriteria = (java.lang.String) _args.get("SortCriteria");
+		StringHolder result = new StringHolder();
+		LongHolder numberReturned = new LongHolder();
+		LongHolder totalMatches = new LongHolder();
+		LongHolder updateID = new LongHolder();
+		
+
+		// invoke model
+		
+		 model.browse(
+			StringHolder.toValue(
+			objectID)
+		,
+
+StringHolder.toValue(
+			browseFlag)
+		,
+
+StringHolder.toValue(
+			filter)
+		,
+
+LongHolder.toValue(
+			startingIndex)
+		,
+
+LongHolder.toValue(
+			requestedCount)
+		,
+
+StringHolder.toValue(
+			sortCriteria)
+		,
+
+result,
+
+numberReturned,
+
+totalMatches,
+
+updateID
+		 );
+		
+		// build returned Dictionary		
+		Dictionary _result = new Hashtable();
+		
+			_result.put("Result",result.getObject());
+			// java.lang.String
+			_result.put("NumberReturned",numberReturned.getObject());
+			// java.lang.Long
+			_result.put("TotalMatches",totalMatches.getObject());
+			// java.lang.Long
+			_result.put("UpdateID",updateID.getObject());
+			// java.lang.Long
+		return _result.isEmpty()?null:_result;
+	}
+
+
+	public void start(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+	public void stop(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+};
+
+
+public class SearchAction extends AbstractUPnPAction {
+
+	ContentDirectoryModel model;
+	
+	// HERE specific action members
+	
+	public SearchAction(
+	    UPnPService upnpService,
+		ContentDirectoryModel model
+	){
+		super(
+			upnpService,
+			"Search",
+			""
+		);
+		this.model=model;
+		
+			addInArg(
+				"ContainerID",
+				upnpService.getStateVariable("A_ARG_TYPE_ObjectID")
+			);
+		
+			addInArg(
+				"SearchCriteria",
+				upnpService.getStateVariable("A_ARG_TYPE_SearchCriteria")
+			);
+		
+			addInArg(
+				"Filter",
+				upnpService.getStateVariable("A_ARG_TYPE_Filter")
+			);
+		
+			addInArg(
+				"StartingIndex",
+				upnpService.getStateVariable("A_ARG_TYPE_Index")
+			);
+		
+			addInArg(
+				"RequestedCount",
+				upnpService.getStateVariable("A_ARG_TYPE_Count")
+			);
+		
+			addInArg(
+				"SortCriteria",
+				upnpService.getStateVariable("A_ARG_TYPE_SortCriteria")
+			);
+		
+			addOutArg(
+				"Result",
+				upnpService.getStateVariable("A_ARG_TYPE_Result")
+			);
+		
+			addOutArg(
+				"NumberReturned",
+				upnpService.getStateVariable("A_ARG_TYPE_Count")
+			);
+		
+			addOutArg(
+				"TotalMatches",
+				upnpService.getStateVariable("A_ARG_TYPE_Count")
+			);
+		
+			addOutArg(
+				"UpdateID",
+				upnpService.getStateVariable("A_ARG_TYPE_UpdateID")
+			);
+		
+	}
+
+	/**
+	 * @see org.osgi.service.upnp.UPnPAction#invoke(java.util.Dictionary)
+	 */
+	public Dictionary invoke(Dictionary _args) throws Exception {
+
+	java.lang.String containerID = (java.lang.String) _args.get("ContainerID");
+		java.lang.String searchCriteria = (java.lang.String) _args.get("SearchCriteria");
+		java.lang.String filter = (java.lang.String) _args.get("Filter");
+		java.lang.Long startingIndex = (java.lang.Long) _args.get("StartingIndex");
+		java.lang.Long requestedCount = (java.lang.Long) _args.get("RequestedCount");
+		java.lang.String sortCriteria = (java.lang.String) _args.get("SortCriteria");
+		StringHolder result = new StringHolder();
+		LongHolder numberReturned = new LongHolder();
+		LongHolder totalMatches = new LongHolder();
+		LongHolder updateID = new LongHolder();
+		
+
+		// invoke model
+		
+		 model.search(
+			StringHolder.toValue(
+			containerID)
+		,
+
+StringHolder.toValue(
+			searchCriteria)
+		,
+
+StringHolder.toValue(
+			filter)
+		,
+
+LongHolder.toValue(
+			startingIndex)
+		,
+
+LongHolder.toValue(
+			requestedCount)
+		,
+
+StringHolder.toValue(
+			sortCriteria)
+		,
+
+result,
+
+numberReturned,
+
+totalMatches,
+
+updateID
+		 );
+		
+		// build returned Dictionary		
+		Dictionary _result = new Hashtable();
+		
+			_result.put("Result",result.getObject());
+			// java.lang.String
+			_result.put("NumberReturned",numberReturned.getObject());
+			// java.lang.Long
+			_result.put("TotalMatches",totalMatches.getObject());
+			// java.lang.Long
+			_result.put("UpdateID",updateID.getObject());
+			// java.lang.Long
+		return _result.isEmpty()?null:_result;
+	}
+
+
+	public void start(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+	public void stop(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+};
+
+
+public class CreateObjectAction extends AbstractUPnPAction {
+
+	ContentDirectoryModel model;
+	
+	// HERE specific action members
+	
+	public CreateObjectAction(
+	    UPnPService upnpService,
+		ContentDirectoryModel model
+	){
+		super(
+			upnpService,
+			"CreateObject",
+			""
+		);
+		this.model=model;
+		
+			addInArg(
+				"ContainerID",
+				upnpService.getStateVariable("A_ARG_TYPE_ObjectID")
+			);
+		
+			addInArg(
+				"Elements",
+				upnpService.getStateVariable("A_ARG_TYPE_Result")
+			);
+		
+			addOutArg(
+				"ObjectID",
+				upnpService.getStateVariable("A_ARG_TYPE_ObjectID")
+			);
+		
+			addOutArg(
+				"Result",
+				upnpService.getStateVariable("A_ARG_TYPE_Result")
+			);
+		
+	}
+
+	/**
+	 * @see org.osgi.service.upnp.UPnPAction#invoke(java.util.Dictionary)
+	 */
+	public Dictionary invoke(Dictionary _args) throws Exception {
+
+	java.lang.String containerID = (java.lang.String) _args.get("ContainerID");
+		java.lang.String elements = (java.lang.String) _args.get("Elements");
+		StringHolder objectID = new StringHolder();
+		StringHolder result = new StringHolder();
+		
+
+		// invoke model
+		
+		 model.createObject(
+			StringHolder.toValue(
+			containerID)
+		,
+
+StringHolder.toValue(
+			elements)
+		,
+
+objectID,
+
+result
+		 );
+		
+		// build returned Dictionary		
+		Dictionary _result = new Hashtable();
+		
+			_result.put("ObjectID",objectID.getObject());
+			// java.lang.String
+			_result.put("Result",result.getObject());
+			// java.lang.String
+		return _result.isEmpty()?null:_result;
+	}
+
+
+	public void start(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+	public void stop(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+};
+
+
+public class DestroyObjectAction extends AbstractUPnPAction {
+
+	ContentDirectoryModel model;
+	
+	// HERE specific action members
+	
+	public DestroyObjectAction(
+	    UPnPService upnpService,
+		ContentDirectoryModel model
+	){
+		super(
+			upnpService,
+			"DestroyObject",
+			""
+		);
+		this.model=model;
+		
+			addInArg(
+				"ObjectID",
+				upnpService.getStateVariable("A_ARG_TYPE_ObjectID")
+			);
+		
+	}
+
+	/**
+	 * @see org.osgi.service.upnp.UPnPAction#invoke(java.util.Dictionary)
+	 */
+	public Dictionary invoke(Dictionary _args) throws Exception {
+
+	java.lang.String objectID = (java.lang.String) _args.get("ObjectID");
+		
+
+		// invoke model
+		
+		 model.destroyObject(
+			StringHolder.toValue(
+			objectID)
+		
+		 );
+		
+		// build returned Dictionary		
+		Dictionary _result = new Hashtable();
+		
+		return _result.isEmpty()?null:_result;
+	}
+
+
+	public void start(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+	public void stop(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+};
+
+
+public class UpdateObjectAction extends AbstractUPnPAction {
+
+	ContentDirectoryModel model;
+	
+	// HERE specific action members
+	
+	public UpdateObjectAction(
+	    UPnPService upnpService,
+		ContentDirectoryModel model
+	){
+		super(
+			upnpService,
+			"UpdateObject",
+			""
+		);
+		this.model=model;
+		
+			addInArg(
+				"ObjectID",
+				upnpService.getStateVariable("A_ARG_TYPE_ObjectID")
+			);
+		
+			addInArg(
+				"CurrentTagValue",
+				upnpService.getStateVariable("A_ARG_TYPE_TagValueList")
+			);
+		
+			addInArg(
+				"NewTagValue",
+				upnpService.getStateVariable("A_ARG_TYPE_TagValueList")
+			);
+		
+	}
+
+	/**
+	 * @see org.osgi.service.upnp.UPnPAction#invoke(java.util.Dictionary)
+	 */
+	public Dictionary invoke(Dictionary _args) throws Exception {
+
+	java.lang.String objectID = (java.lang.String) _args.get("ObjectID");
+		java.lang.String currentTagValue = (java.lang.String) _args.get("CurrentTagValue");
+		java.lang.String newTagValue = (java.lang.String) _args.get("NewTagValue");
+		
+
+		// invoke model
+		
+		 model.updateObject(
+			StringHolder.toValue(
+			objectID)
+		,
+
+StringHolder.toValue(
+			currentTagValue)
+		,
+
+StringHolder.toValue(
+			newTagValue)
+		
+		 );
+		
+		// build returned Dictionary		
+		Dictionary _result = new Hashtable();
+		
+		return _result.isEmpty()?null:_result;
+	}
+
+
+	public void start(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+	public void stop(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+};
+
+
+public class ImportResourceAction extends AbstractUPnPAction {
+
+	ContentDirectoryModel model;
+	
+	// HERE specific action members
+	
+	public ImportResourceAction(
+	    UPnPService upnpService,
+		ContentDirectoryModel model
+	){
+		super(
+			upnpService,
+			"ImportResource",
+			""
+		);
+		this.model=model;
+		
+			addInArg(
+				"SourceURI",
+				upnpService.getStateVariable("A_ARG_TYPE_URI")
+			);
+		
+			addInArg(
+				"DestinationURI",
+				upnpService.getStateVariable("A_ARG_TYPE_URI")
+			);
+		
+			addOutArg(
+				"TransferID",
+				upnpService.getStateVariable("A_ARG_TYPE_TransferID")
+			);
+		
+	}
+
+	/**
+	 * @see org.osgi.service.upnp.UPnPAction#invoke(java.util.Dictionary)
+	 */
+	public Dictionary invoke(Dictionary _args) throws Exception {
+
+	java.lang.String sourceURI = (java.lang.String) _args.get("SourceURI");
+		java.lang.String destinationURI = (java.lang.String) _args.get("DestinationURI");
+		LongHolder transferID = new LongHolder();
+		
+
+		// invoke model
+		
+		 model.importResource(
+			StringHolder.toValue(
+			sourceURI)
+		,
+
+StringHolder.toValue(
+			destinationURI)
+		,
+
+transferID
+		 );
+		
+		// build returned Dictionary		
+		Dictionary _result = new Hashtable();
+		
+			_result.put("TransferID",transferID.getObject());
+			// java.lang.Long
+		return _result.isEmpty()?null:_result;
+	}
+
+
+	public void start(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+	public void stop(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+};
+
+
+public class ExportResourceAction extends AbstractUPnPAction {
+
+	ContentDirectoryModel model;
+	
+	// HERE specific action members
+	
+	public ExportResourceAction(
+	    UPnPService upnpService,
+		ContentDirectoryModel model
+	){
+		super(
+			upnpService,
+			"ExportResource",
+			""
+		);
+		this.model=model;
+		
+			addInArg(
+				"SourceURI",
+				upnpService.getStateVariable("A_ARG_TYPE_URI")
+			);
+		
+			addInArg(
+				"DestinationURI",
+				upnpService.getStateVariable("A_ARG_TYPE_URI")
+			);
+		
+			addOutArg(
+				"TransferID",
+				upnpService.getStateVariable("A_ARG_TYPE_TransferID")
+			);
+		
+	}
+
+	/**
+	 * @see org.osgi.service.upnp.UPnPAction#invoke(java.util.Dictionary)
+	 */
+	public Dictionary invoke(Dictionary _args) throws Exception {
+
+	java.lang.String sourceURI = (java.lang.String) _args.get("SourceURI");
+		java.lang.String destinationURI = (java.lang.String) _args.get("DestinationURI");
+		LongHolder transferID = new LongHolder();
+		
+
+		// invoke model
+		
+		 model.exportResource(
+			StringHolder.toValue(
+			sourceURI)
+		,
+
+StringHolder.toValue(
+			destinationURI)
+		,
+
+transferID
+		 );
+		
+		// build returned Dictionary		
+		Dictionary _result = new Hashtable();
+		
+			_result.put("TransferID",transferID.getObject());
+			// java.lang.Long
+		return _result.isEmpty()?null:_result;
+	}
+
+
+	public void start(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+	public void stop(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+};
+
+
+public class StopTransferResourceAction extends AbstractUPnPAction {
+
+	ContentDirectoryModel model;
+	
+	// HERE specific action members
+	
+	public StopTransferResourceAction(
+	    UPnPService upnpService,
+		ContentDirectoryModel model
+	){
+		super(
+			upnpService,
+			"StopTransferResource",
+			""
+		);
+		this.model=model;
+		
+			addInArg(
+				"TransferID",
+				upnpService.getStateVariable("A_ARG_TYPE_TransferID")
+			);
+		
+	}
+
+	/**
+	 * @see org.osgi.service.upnp.UPnPAction#invoke(java.util.Dictionary)
+	 */
+	public Dictionary invoke(Dictionary _args) throws Exception {
+
+	java.lang.Long transferID = (java.lang.Long) _args.get("TransferID");
+		
+
+		// invoke model
+		
+		 model.stopTransferResource(
+			LongHolder.toValue(
+			transferID)
+		
+		 );
+		
+		// build returned Dictionary		
+		Dictionary _result = new Hashtable();
+		
+		return _result.isEmpty()?null:_result;
+	}
+
+
+	public void start(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+	public void stop(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+};
+
+
+public class GetTransferProgressAction extends AbstractUPnPAction {
+
+	ContentDirectoryModel model;
+	
+	// HERE specific action members
+	
+	public GetTransferProgressAction(
+	    UPnPService upnpService,
+		ContentDirectoryModel model
+	){
+		super(
+			upnpService,
+			"GetTransferProgress",
+			""
+		);
+		this.model=model;
+		
+			addInArg(
+				"TransferID",
+				upnpService.getStateVariable("A_ARG_TYPE_TransferID")
+			);
+		
+			addOutArg(
+				"TransferStatus",
+				upnpService.getStateVariable("A_ARG_TYPE_TransferStatus")
+			);
+		
+			addOutArg(
+				"TransferLength",
+				upnpService.getStateVariable("A_ARG_TYPE_TransferLength")
+			);
+		
+			addOutArg(
+				"TransferTotal",
+				upnpService.getStateVariable("A_ARG_TYPE_TransferTotal")
+			);
+		
+	}
+
+	/**
+	 * @see org.osgi.service.upnp.UPnPAction#invoke(java.util.Dictionary)
+	 */
+	public Dictionary invoke(Dictionary _args) throws Exception {
+
+	java.lang.Long transferID = (java.lang.Long) _args.get("TransferID");
+		StringHolder transferStatus = new StringHolder();
+		StringHolder transferLength = new StringHolder();
+		StringHolder transferTotal = new StringHolder();
+		
+
+		// invoke model
+		
+		 model.getTransferProgress(
+			LongHolder.toValue(
+			transferID)
+		,
+
+transferStatus,
+
+transferLength,
+
+transferTotal
+		 );
+		
+		// build returned Dictionary		
+		Dictionary _result = new Hashtable();
+		
+			_result.put("TransferStatus",transferStatus.getObject());
+			// java.lang.String
+			_result.put("TransferLength",transferLength.getObject());
+			// java.lang.String
+			_result.put("TransferTotal",transferTotal.getObject());
+			// java.lang.String
+		return _result.isEmpty()?null:_result;
+	}
+
+
+	public void start(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+	public void stop(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+};
+
+
+public class DeleteResourceAction extends AbstractUPnPAction {
+
+	ContentDirectoryModel model;
+	
+	// HERE specific action members
+	
+	public DeleteResourceAction(
+	    UPnPService upnpService,
+		ContentDirectoryModel model
+	){
+		super(
+			upnpService,
+			"DeleteResource",
+			""
+		);
+		this.model=model;
+		
+			addInArg(
+				"ResourceURI",
+				upnpService.getStateVariable("A_ARG_TYPE_URI")
+			);
+		
+	}
+
+	/**
+	 * @see org.osgi.service.upnp.UPnPAction#invoke(java.util.Dictionary)
+	 */
+	public Dictionary invoke(Dictionary _args) throws Exception {
+
+	java.lang.String resourceURI = (java.lang.String) _args.get("ResourceURI");
+		
+
+		// invoke model
+		
+		 model.deleteResource(
+			StringHolder.toValue(
+			resourceURI)
+		
+		 );
+		
+		// build returned Dictionary		
+		Dictionary _result = new Hashtable();
+		
+		return _result.isEmpty()?null:_result;
+	}
+
+
+	public void start(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+	public void stop(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+};
+
+
+public class CreateReferenceAction extends AbstractUPnPAction {
+
+	ContentDirectoryModel model;
+	
+	// HERE specific action members
+	
+	public CreateReferenceAction(
+	    UPnPService upnpService,
+		ContentDirectoryModel model
+	){
+		super(
+			upnpService,
+			"CreateReference",
+			""
+		);
+		this.model=model;
+		
+			addInArg(
+				"ContainerID",
+				upnpService.getStateVariable("A_ARG_TYPE_ObjectID")
+			);
+		
+			addInArg(
+				"ObjectID",
+				upnpService.getStateVariable("A_ARG_TYPE_ObjectID")
+			);
+		
+			addOutArg(
+				"NewID",
+				upnpService.getStateVariable("A_ARG_TYPE_ObjectID")
+			);
+		
+	}
+
+	/**
+	 * @see org.osgi.service.upnp.UPnPAction#invoke(java.util.Dictionary)
+	 */
+	public Dictionary invoke(Dictionary _args) throws Exception {
+
+	java.lang.String containerID = (java.lang.String) _args.get("ContainerID");
+		java.lang.String objectID = (java.lang.String) _args.get("ObjectID");
+		StringHolder newID = new StringHolder();
+		
+
+		// invoke model
+		
+		 model.createReference(
+			StringHolder.toValue(
+			containerID)
+		,
+
+StringHolder.toValue(
+			objectID)
+		,
+
+newID
+		 );
+		
+		// build returned Dictionary		
+		Dictionary _result = new Hashtable();
+		
+			_result.put("NewID",newID.getObject());
+			// java.lang.String
+		return _result.isEmpty()?null:_result;
+	}
+
+
+	public void start(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+	public void stop(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+};
+	
+}

Propchange: incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/media/service/ContentDirectory.java
------------------------------------------------------------------------------
    svn:eol-style = native