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 [8/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/generation/scdp2skel.xsl
URL: http://svn.apache.org/viewvc/incubator/felix/sandbox/donsez/upnp.devicegen/generation/scdp2skel.xsl?view=auto&rev=533875
==============================================================================
--- incubator/felix/sandbox/donsez/upnp.devicegen/generation/scdp2skel.xsl (added)
+++ incubator/felix/sandbox/donsez/upnp.devicegen/generation/scdp2skel.xsl Mon Apr 30 16:15:05 2007
@@ -0,0 +1,385 @@
+<?xml version="1.0"?>
+<xsl:stylesheet 
+    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
+    version="1.0"   
+    xmlns:java="http://xml.apache.org/xslt/java"
+    exclude-result-prefixes="java">
+<xsl:output method = "text"/>
+
+<!-- parameter declaration -->
+<xsl:param name="author"/>
+<xsl:param name="date"/>
+<xsl:param name="package"/>
+<xsl:param name="classname"/>
+
+
+<xsl:template match="/">
+/*
+__BANNER__
+*/
+// this file was generated at <xsl:value-of select="$date"/> by <xsl:value-of select="$author"/>
+package <xsl:value-of select="$package"/>.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 <xsl:value-of select="$package"/>.model.*;
+import <xsl:value-of select="$package"/>.impl.*;
+
+	<xsl:apply-templates select="*"/>
+</xsl:template>
+
+<xsl:template match="scpd">
+
+public class <xsl:value-of select="$classname"/> extends AbstractUPnPService {
+	<xsl:variable name="dummy" select="java:UPnPStateVariableTable.clean()"/>
+	<xsl:apply-templates select="serviceStateTable/stateVariable" mode="memberdeclaration"/>
+	<xsl:apply-templates select="actionList/action" mode="memberdeclaration"/>
+		
+	private <xsl:value-of select="$classname"/>Model model;	
+		
+	/**
+	 * constructor
+	 */
+	public <xsl:value-of select="$classname"/>(
+		UPnPDevice upnpDevice,
+		String serviceId,
+		String serviceType,
+		String version,
+		<xsl:value-of select="$classname"/>Model model
+	){
+		super(	
+			upnpDevice,
+			serviceId,
+			serviceType,
+			version
+		);
+		this.model=model;
+	
+		<xsl:apply-templates select="serviceStateTable" mode="initialize"/>	
+		<xsl:apply-templates select="actionList" mode="initialize"/>	
+	}
+
+	// UPnPStateVariable classes
+	
+	<xsl:apply-templates select="serviceStateTable/stateVariable" mode="classdeclaration"/>	
+
+	// UPnPAction classes
+	
+	<xsl:apply-templates select="actionList/action"  mode="classdeclaration"/>	
+}
+</xsl:template>
+
+
+<xsl:template match="stateVariable" mode="memberdeclaration">
+	<xsl:variable name="className" select="java:GenerationUtility.capitalize(./name)"/>
+	<xsl:variable name="variableName" select="java:GenerationUtility.variabilize(./name)"/>
+	<xsl:variable name="dummy" select="java:UPnPStateVariableTable.add(./name,./dataType)"/>
+<!--
+		private <xsl:value-of select="$className"/>StateVariable <xsl:value-of select="$variableName"/>;
+-->
+</xsl:template>
+
+<xsl:template match="serviceStateTable" mode="initialize">
+	stateVariables=new HashMap();
+	<xsl:apply-templates select="stateVariable" mode="initialize"/>	
+</xsl:template>
+
+
+<xsl:template match="stateVariable" mode="initialize">
+	<xsl:variable name="className" select="java:GenerationUtility.capitalize(./name)"/>
+	<xsl:variable name="variableName" select="java:GenerationUtility.variabilize(./name)"/>
+
+<!--
+	this.<xsl:value-of select="$variableName"/> = new <xsl:value-of select="$className"/>StateVariable(this);
+	stateVariables.put(
+		"<xsl:value-of select="./name"/>",
+		<xsl:value-of select="$variableName"/>
+	);
+-->	
+	stateVariables.put(
+		"<xsl:value-of select="./name"/>",
+		new <xsl:value-of select="$className"/>StateVariable(this,model)
+	);
+</xsl:template>
+
+<xsl:template match="allowedValueList">
+	/*
+		List allowedValueList=new LinkedList();
+		<xsl:apply-templates select="allowedValue"/>
+		this.setallowedValueList(allowedValueList);
+	*/
+</xsl:template>
+
+<xsl:template match="allowedValue">
+		allowedValueList.add(UPnPDataTypeUtil.instanciateObject("<xsl:value-of select="../../dataType"/>","<xsl:value-of select="."/>"));
+</xsl:template>
+
+<xsl:template match="stateVariable" mode="classdeclaration">
+	<xsl:variable name="className" select="java:GenerationUtility.capitalize(./name)"/>
+	<xsl:variable name="stateVariableClassName"><xsl:value-of select="$className"/>StateVariable</xsl:variable>
+
+// class <xsl:value-of select="$className"/>StateVariable
+public class <xsl:value-of select="$stateVariableClassName"/>
+  extends AbstractUPnPStateVariable
+		<!--  create only if sendEventsAttribute is not 'no' -->	
+	<xsl:choose>
+		<xsl:when test="self::node()[sendEventsAttribute='no']">{</xsl:when>
+		<xsl:otherwise>  implements UPnPStateVariableDescriptor{</xsl:otherwise>
+	</xsl:choose>
+
+	public final static String NAME="<xsl:value-of select="./name"/>";
+	public final static String DATATYPE="<xsl:value-of select="./dataType"/>";
+	
+	// HERE specific state variable members
+	private <xsl:value-of select="$classname"/>Model model;
+	
+	public <xsl:value-of select="$stateVariableClassName"/>(
+		UPnPService upnpService,
+		<xsl:value-of select="$classname"/>Model model
+	){	
+		super(
+					upnpService,
+					NAME,
+					DATATYPE,
+					null, // TODO defaultValue changed for <xsl:value-of select="./defaultValue"/>
+					null, // TODO step changed for <xsl:value-of select="./step"/>
+					null, // TODO step changed for <xsl:value-of select="./step"/>
+					null, // TODO minimum changed for <xsl:value-of select="./allowedValueRange/minimum"/>
+					null, // TODO maximum changed for <xsl:value-of select="./allowedValueRange/maximum"/>
+					// sendEventsAttribute
+	<xsl:choose>
+	<xsl:when test="self::node()[starts-with(name,'A_ARG')]">false</xsl:when>
+	<xsl:otherwise>	
+		<xsl:choose>
+		<xsl:when test="self::node()[sendEventsAttribute='no']">false</xsl:when>
+		<xsl:otherwise>true</xsl:otherwise>
+		</xsl:choose>
+	</xsl:otherwise>
+	</xsl:choose>,
+					true  // TODO required changed for <xsl:value-of select="./Optional"/> OR <xsl:value-of select="./Required"/>
+		);
+		
+		this.model=model;
+
+		<xsl:apply-templates select="./allowedValueList"/>
+	}
+	
+	// TODO
+	
+	public void start(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+	public void stop(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+		<!--  create only if sendEventsAttribute is not 'no' -->	
+	/**
+	 * invoked for the first notification just after a subscription
+	 * @see it.cnr.isti.niche.osgi.upnp.util.UPnPStateVariableDescriptor#getValue()
+	 */
+	public Object getValue(){
+	<xsl:choose>
+	<xsl:when test="self::node()[starts-with(name,'A_ARG')]">return null;</xsl:when>
+	<xsl:otherwise>	
+	<xsl:choose>
+		<xsl:when test="self::node()[sendEventsAttribute='no']">return null;</xsl:when>
+		<xsl:otherwise>
+		return model.get<xsl:value-of select="$stateVariableClassName"/>Value();
+		</xsl:otherwise>
+	</xsl:choose>
+	</xsl:otherwise>
+	</xsl:choose>
+	}
+};
+</xsl:template>
+
+<xsl:template match="action" mode="memberdeclaration">
+	<xsl:variable name="className" select="java:GenerationUtility.capitalize(./name)"/>
+	<xsl:variable name="actionName" select="java:GenerationUtility.variabilize(./name)"/>
+
+<!--
+	private <xsl:value-of select="$className"/>Action <xsl:value-of select="$actionName"/>;
+-->
+</xsl:template>
+
+<xsl:template match="actionList" mode="initialize">
+	actions=new HashMap();
+	<xsl:apply-templates select="action" mode="initialize"/>	
+</xsl:template>
+
+<xsl:template match="action" mode="initialize">
+	<xsl:variable name="className" select="java:GenerationUtility.capitalize(./name)"/>
+	<xsl:variable name="actionName" select="java:GenerationUtility.variabilize(./name)"/>
+
+<!--
+	this.<xsl:value-of select="$actionName"/> = new <xsl:value-of select="$className"/>Action(this);
+	actions.put(
+		"<xsl:value-of select="./name"/>",
+		<xsl:value-of select="$actionName"/>
+	);
+-->
+	actions.put(
+		"<xsl:value-of select="./name"/>",
+		new <xsl:value-of select="$className"/>Action(this,model)
+	);
+</xsl:template>
+
+<xsl:template match="action"  mode="classdeclaration">
+	<xsl:variable name="className" select="java:GenerationUtility.capitalize(./name)"/>
+	<xsl:variable name="actionName" select="java:GenerationUtility.variabilize(./name)"/>
+
+public class <xsl:value-of select="$className"/>Action extends AbstractUPnPAction {
+
+	<xsl:value-of select="$classname"/>Model model;
+	
+	// HERE specific action members
+	
+	public <xsl:value-of select="$className"/>Action(
+	    UPnPService upnpService,
+		<xsl:value-of select="$classname"/>Model model
+	){
+		super(
+			upnpService,
+			"<xsl:value-of select="./name"/>",
+			"<xsl:value-of select="./result"/>"
+		);
+		this.model=model;
+		<xsl:apply-templates select="argumentList" mode="in.init"/>
+		<xsl:apply-templates select="argumentList" mode="out.init"/>
+	}
+
+	/**
+	 * @see org.osgi.service.upnp.UPnPAction#invoke(java.util.Dictionary)
+	 */
+	public Dictionary invoke(Dictionary _args) throws Exception {
+
+	<xsl:apply-templates select="action"  mode="classdeclaration"/>
+
+		<xsl:apply-templates select="argumentList/argument" mode="pre.invoke"/>
+
+		// invoke model
+		
+		 model.<xsl:value-of select="$actionName"/>(
+			<xsl:apply-templates select="argumentList" mode="invoke.model"/>
+		 );
+		
+		// build returned Dictionary		
+		Dictionary _result = new Hashtable();
+		<xsl:apply-templates select="argumentList/argument" mode="post.invoke"/>
+		return _result.isEmpty()?null:_result;
+	}
+
+
+	public void start(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+	
+	public void stop(BundleContext bundleContext) throws Exception {
+		// TODO
+	}
+};
+</xsl:template>
+
+<xsl:template match="argumentList" mode="in.init">
+		<xsl:apply-templates select="argument" mode="in.init"/>
+</xsl:template>
+
+<xsl:template match="argument" mode="in.init">
+	<xsl:choose>
+		<xsl:when test="self::node()[direction='in']">
+			addInArg(
+				"<xsl:value-of select="./name"/>",
+				upnpService.getStateVariable("<xsl:value-of select="./relatedStateVariable"/>")
+			);
+		</xsl:when>
+	</xsl:choose>
+</xsl:template>
+
+<xsl:template match="argumentList" mode="out.init">
+		<xsl:apply-templates select="argument" mode="out.init"/>
+</xsl:template>
+
+<xsl:template match="argument" mode="out.init">
+	<xsl:choose>
+		<xsl:when test="self::node()[direction='out']">
+			addOutArg(
+				"<xsl:value-of select="./name"/>",
+				upnpService.getStateVariable("<xsl:value-of select="./relatedStateVariable"/>")
+			);
+		</xsl:when>
+	</xsl:choose>
+</xsl:template>
+
+<xsl:template match="argumentList/argument" mode="pre.invoke">
+	<xsl:choose>
+		<xsl:when test="self::node()[direction='in']">
+				<xsl:value-of select="java:UPnPStateVariableTable.getClassName(./relatedStateVariable)"/><xsl:text> </xsl:text>
+				<xsl:value-of select="java:GenerationUtility.variabilize(./name)"/> = (<xsl:value-of select="java:UPnPStateVariableTable.getClassName(./relatedStateVariable)"/>) _args.get("<xsl:value-of select="./name"/>");
+		</xsl:when>
+		<xsl:when test="self::node()[direction='out']">
+				<xsl:value-of select="java:UPnPStateVariableTable.getOutputJavaType(./relatedStateVariable)"/><xsl:text> </xsl:text>
+				<xsl:value-of select="java:GenerationUtility.variabilize(./name)"/> = new <xsl:value-of select="java:UPnPStateVariableTable.getOutputJavaType(./relatedStateVariable)"/>();
+		</xsl:when>
+	</xsl:choose>
+</xsl:template>
+	
+<xsl:template match="argumentList/argument" mode="post.invoke">
+	<xsl:choose>
+		<xsl:when test="self::node()[direction='out']">
+			_result.put("<xsl:value-of select="./name"/>",<xsl:value-of select="java:GenerationUtility.variabilize(./name)"/>.getObject());
+			// <xsl:value-of select="java:UPnPStateVariableTable.getClassName(./relatedStateVariable)"/>	
+		</xsl:when>
+	</xsl:choose>
+</xsl:template>
+
+
+<xsl:template match="argumentList" mode="invoke.model">
+			<xsl:apply-templates select="argument" mode="invoke.model"/>
+</xsl:template>
+
+<xsl:template match="argument[last()]" mode="invoke.model">
+	<xsl:variable name="paramName" select="java:GenerationUtility.variabilize(./name)"/>
+
+
+	<xsl:choose>
+		<xsl:when test="self::node()[direction='in']">
+			<xsl:value-of select="java:UPnPStateVariableTable.getOutputJavaType(./relatedStateVariable)"/>.toValue(
+			<xsl:value-of select="java:GenerationUtility.variabilize(./name)"/>)
+		</xsl:when>
+		<xsl:when test="self::node()[direction='out']">
+			<xsl:value-of select="java:GenerationUtility.variabilize(./name)"/>
+		</xsl:when>
+	</xsl:choose>
+
+</xsl:template>
+
+
+<xsl:template match="argument" mode="invoke.model">
+	<xsl:variable name="paramName" select="java:GenerationUtility.variabilize(./name)"/>
+
+	<xsl:choose>
+		<xsl:when test="self::node()[direction='in']">
+			<xsl:value-of select="java:UPnPStateVariableTable.getOutputJavaType(./relatedStateVariable)"/>.toValue(
+			<xsl:value-of select="java:GenerationUtility.variabilize(./name)"/>)
+		</xsl:when>
+		<xsl:when test="self::node()[direction='out']">
+			<xsl:value-of select="java:GenerationUtility.variabilize(./name)"/>
+		</xsl:when>
+	</xsl:choose>,
+
+</xsl:template>
+
+
+<xsl:template match="*"></xsl:template>
+
+</xsl:stylesheet>

Propchange: incubator/felix/sandbox/donsez/upnp.devicegen/generation/scdp2skel.xsl
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/felix/sandbox/donsez/upnp.devicegen/pom.xml
URL: http://svn.apache.org/viewvc/incubator/felix/sandbox/donsez/upnp.devicegen/pom.xml?view=auto&rev=533875
==============================================================================
--- incubator/felix/sandbox/donsez/upnp.devicegen/pom.xml (added)
+++ incubator/felix/sandbox/donsez/upnp.devicegen/pom.xml Mon Apr 30 16:15:05 2007
@@ -0,0 +1,95 @@
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied.  See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+<project>
+
+	<properties>
+		<repositoryLocation>http://www-adele.imag.fr/users/Didier.Donsez/dev/felix/sandbox/</repositoryLocation>
+		<description>generates and packages UPnPDevice services following the OSGi UPnP Device Driver.</description>
+	</properties>  
+
+  <parent>
+    <groupId>org.apache.felix</groupId>
+    <artifactId>felix</artifactId>
+    <version>0.9.0-incubator-SNAPSHOT</version>
+  </parent>
+  <modelVersion>4.0.0</modelVersion>
+  <packaging>bundle</packaging>
+  <name>Apache Felix UPnP Device Generator</name>
+  <artifactId>org.apache.felix.upnp.devicegen</artifactId>
+  <description>${description}</description>
+  <dependencies>
+    <dependency>
+      <groupId>${pom.groupId}</groupId>
+      <artifactId>org.osgi.core</artifactId>
+      <version>${pom.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>${pom.groupId}</groupId>
+      <artifactId>org.osgi.compendium</artifactId>
+      <version>${pom.version}</version>
+    </dependency>
+  </dependencies>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <extensions>true</extensions>
+        <configuration>
+          <instructions>
+          
+          	<!-- docs in http://cwiki.apache.org/FELIX/bundle-plugin-for-maven-bnd.html and http://cwiki.apache.org/FELIX/osgi-plugin-for-maven-2.html -->
+          	
+            <Export-Service>org.osgi.service.upnp.UPnPDevice</Export-Service>
+
+            <Private-Package>org.apache.felix.upnp.devicegen.*</Private-Package>
+            <Export-Package>org.apache.felix.upnp.devicegen.holder,org.apache.felix.upnp.devicegen.util</Export-Package>
+            <Import-Package>*</Import-Package>
+            <Bundle-Activator>${pom.artifactId}.activator.impl.Activator</Bundle-Activator>
+
+            <Bundle-DocURL>${repositoryLocation}${pom.artifactId}/index.html</Bundle-DocURL>
+            <Bundle-Url>${repositoryLocation}${pom.artifactId}/${pom.artifactId}-${pom.version}.jar</Bundle-Url>
+            <Bundle-Source>${repositoryLocation}${pom.artifactId}/${pom.artifactId}-${pom.version}-src.jar</Bundle-Source>
+
+            <Bundle-SymbolicName>${pom.artifactId}</Bundle-SymbolicName>
+            <Bundle-Description>${description}</Bundle-Description>
+            <Bundle-Vendor>Apache Software Foundation</Bundle-Vendor>
+
+          </instructions>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+  <!--
+  <repositories>
+    <repository>
+      <id>apache.m2.incubator</id>
+      <name>Apache M2 Incubator Repository</name>
+      <url>http://people.apache.org/repo/m2-incubating-repository/</url>
+    </repository>
+  </repositories>
+  <pluginRepositories>
+    <pluginRepository>
+      <id>apache.m2.incubator</id>
+      <name>Apache M2 Incubator Repository</name>
+      <url>http://people.apache.org/repo/m2-incubating-repository/</url>
+    </pluginRepository>
+  </pluginRepositories>
+  -->
+</project>

Propchange: incubator/felix/sandbox/donsez/upnp.devicegen/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/activator/impl/Activator.java
URL: http://svn.apache.org/viewvc/incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/activator/impl/Activator.java?view=auto&rev=533875
==============================================================================
--- incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/activator/impl/Activator.java (added)
+++ incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/activator/impl/Activator.java Mon Apr 30 16:15:05 2007
@@ -0,0 +1,91 @@
+/*
+ */
+package org.apache.felix.upnp.devicegen.activator.impl;
+
+import org.apache.felix.upnp.devicegen.bunny.device.BunnyDevice;
+import org.apache.felix.upnp.devicegen.hvac.device.HVAC_System;
+import org.apache.felix.upnp.devicegen.igd.device.InternetGatewayDevice;
+import org.apache.felix.upnp.devicegen.lightingcontrols.device.BinaryLight;
+import org.apache.felix.upnp.devicegen.lightingcontrols.device.DimmableLight;
+import org.apache.felix.upnp.devicegen.media.device.MediaRenderer;
+import org.apache.felix.upnp.devicegen.media.device.MediaServer;
+import org.apache.felix.upnp.devicegen.ogd.device.OSGiGatewayDevice;
+import org.apache.felix.upnp.devicegen.printer.device.Printer;
+import org.apache.felix.upnp.devicegen.remoteui.device.RemoteUIClientDevice;
+import org.apache.felix.upnp.devicegen.remoteui.device.RemoteUIServerDevice;
+import org.apache.felix.upnp.devicegen.securitycamera.device.DigitalSecurityCamera;
+import org.apache.felix.upnp.devicegen.tv.device.SimpleTV;
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+
+
+/**
+ * @author donsez
+ */
+public class Activator implements BundleActivator {
+
+	DimmableLight dimmableLightDevice;
+	BinaryLight binaryLightDevice;
+	HVAC_System hvacSystemDevice;
+	InternetGatewayDevice internetGatewayDevice;
+	MediaRenderer mediaRenderer;
+	MediaServer mediaServer;
+	Printer printer;
+	RemoteUIClientDevice remoteUIClientDevice;
+	RemoteUIServerDevice remoteUIServerDevice;
+	DigitalSecurityCamera digitalSecurityCamera;
+	
+	SimpleTV simpleTV;
+	OSGiGatewayDevice osgiGatewayDevice;
+	BunnyDevice bunnyDevice;
+	
+	public void start(BundleContext bundleContext) throws Exception {
+		binaryLightDevice=new BinaryLight(bundleContext,null);
+		dimmableLightDevice=new DimmableLight(bundleContext,null);
+		hvacSystemDevice=new HVAC_System(bundleContext,null);
+		internetGatewayDevice=new InternetGatewayDevice(bundleContext,null);
+		mediaRenderer=new MediaRenderer(bundleContext,null);
+		mediaServer=new MediaServer(bundleContext,null);
+		printer=new Printer(bundleContext,null);
+		remoteUIClientDevice=new RemoteUIClientDevice(bundleContext,null);
+		remoteUIServerDevice=new RemoteUIServerDevice(bundleContext,null);
+		digitalSecurityCamera=new DigitalSecurityCamera(bundleContext,null);
+
+		simpleTV=new SimpleTV(bundleContext,null);
+		osgiGatewayDevice=new OSGiGatewayDevice(bundleContext,null);
+		bunnyDevice=new BunnyDevice(bundleContext,null);
+
+		
+		binaryLightDevice.start(bundleContext);
+		dimmableLightDevice.start(bundleContext);
+		hvacSystemDevice.start(bundleContext);
+		internetGatewayDevice.start(bundleContext);
+		mediaRenderer.start(bundleContext);
+		mediaServer.start(bundleContext);
+		printer.start(bundleContext);
+		remoteUIClientDevice.start(bundleContext);
+		remoteUIServerDevice.start(bundleContext);
+		digitalSecurityCamera.start(bundleContext);
+		
+		simpleTV.start(bundleContext);
+		osgiGatewayDevice.start(bundleContext);
+		bunnyDevice.start(bundleContext);
+	}
+	
+	public void stop(BundleContext bundleContext) throws Exception {
+		bunnyDevice.stop(bundleContext);
+		osgiGatewayDevice.stop(bundleContext);
+		simpleTV.stop(bundleContext);
+		
+		digitalSecurityCamera.stop(bundleContext);
+		remoteUIServerDevice.stop(bundleContext);
+		remoteUIClientDevice.stop(bundleContext);
+		printer.stop(bundleContext);
+		mediaServer.stop(bundleContext);
+		mediaRenderer.stop(bundleContext);
+		internetGatewayDevice.stop(bundleContext);
+		hvacSystemDevice.stop(bundleContext);
+		dimmableLightDevice.stop(bundleContext);		
+		binaryLightDevice.stop(bundleContext);
+	}
+}

Propchange: incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/activator/impl/Activator.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/bunny/device/BunnyDevice.java
URL: http://svn.apache.org/viewvc/incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/bunny/device/BunnyDevice.java?view=auto&rev=533875
==============================================================================
--- incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/bunny/device/BunnyDevice.java (added)
+++ incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/bunny/device/BunnyDevice.java Mon Apr 30 16:15:05 2007
@@ -0,0 +1,116 @@
+
+/*
+__BANNER__
+*/
+// this file was generated at 1-May-2007 12:59 AM by ${author}
+package org.apache.felix.upnp.devicegen.bunny.device;
+
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.osgi.framework.BundleContext;
+import org.osgi.service.upnp.UPnPDevice;
+import org.osgi.service.upnp.UPnPIcon;
+import org.osgi.service.upnp.UPnPService;
+
+import org.apache.felix.upnp.devicegen.util.AbstractUPnPDevice;
+import org.apache.felix.upnp.devicegen.util.DeviceIcon;
+
+import org.apache.felix.upnp.devicegen.bunny.model.*;
+import org.apache.felix.upnp.devicegen.bunny.service.*;
+import org.apache.felix.upnp.devicegen.bunny.impl.*;
+
+
+	
+
+public class BunnyDevice extends AbstractUPnPDevice {
+
+	public BunnyDevice(BundleContext context, AbstractUPnPDevice parent) {
+		super(context,parent);
+
+		DEVICE_ID="uuid:adele-bunny";
+
+		// ServiceModel Declaration List
+		BunnyServiceModel myBunnyServiceModel=null; // TODO initialise it
+
+		
+		// Icon Lists
+		
+		List iconsList=new LinkedList();
+	
+		iconsList.add(
+				new DeviceIcon(
+					"image/png", // MimeType
+					40, //Width
+					51, // Height
+					0, // ??
+					16, // Depth
+					"/icon/bunny.png", // URL
+					BunnyDevice.class.getClassLoader()
+				)
+		);
+
+		icons=(UPnPIcon[])iconsList.toArray(new UPnPIcon[]{});
+
+
+		// Service List
+		
+		List servicesList=new LinkedList();
+	
+	
+		/*
+				SCPDURL=URL to service description
+				controlURL=URL for control
+				eventSubURL=URL for eventing
+		*/
+		servicesList.add(
+				new BunnyService(
+						this,
+						"urn:osgi-org:serviceId:BunnyService:1",
+						"urn:osgi-org:service:BunnyService:1",
+						"1",
+						myBunnyServiceModel									
+				)
+			);				
+
+		services=(UPnPService[])servicesList.toArray(new UPnPService[]{});
+
+
+		// Embedded Device List
+			
+		//children=new LinkedList();
+		
+	
+	}
+	
+	protected void setupDeviceProperties(){	
+		dictionary.put(UPnPDevice.TYPE,"urn:schemas-upnp-org:device:BunnyDevice:1");
+		dictionary.put(UPnPDevice.FRIENDLY_NAME,"Generated Bunny UPnP Device");
+		dictionary.put(UPnPDevice.MANUFACTURER,"Didier Donsez (Felix team)");
+		dictionary.put(UPnPDevice.MANUFACTURER_URL,"http://www.apache.org/~donsez");
+		dictionary.put(UPnPDevice.MODEL_DESCRIPTION,"Generated Bunny UPnP Device");
+		dictionary.put(UPnPDevice.MODEL_NAME,"Bunny");
+		dictionary.put(UPnPDevice.MODEL_NUMBER,"123");
+		dictionary.put(UPnPDevice.MODEL_URL,"http://www.apache.org/~donsez/dev/osgi/upnp.devicegen/readme.html");
+		dictionary.put(UPnPDevice.SERIAL_NUMBER,"123456789");
+		dictionary.put(UPnPDevice.UDN,getUDN());
+		dictionary.put(UPnPDevice.ID,dictionary.get(UPnPDevice.UDN));
+		dictionary.put(UPnPDevice.UPC,"upc:adele-bunny");
+		dictionary.put(UPnPDevice.PRESENTATION_URL,"http://www.apache.org/~donsez/dev/osgi/upnp.devicegen/readme.html");		
+
+		if(parent!=null) {
+			dictionary.put(UPnPDevice.PARENT_UDN,parent.getUDN());
+		}
+		
+		if(children!=null && children.size()!=0){
+			String[] childrenUDN=new String[children.size()];
+			Iterator iter=children.iterator();
+			for(int i=0;iter.hasNext();i++){
+				childrenUDN[i]=((AbstractUPnPDevice)iter.next()).getUDN();
+			}
+			dictionary.put(UPnPDevice.CHILDREN_UDN,childrenUDN);
+		}
+		
+	}
+}

Propchange: incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/bunny/device/BunnyDevice.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/bunny/impl/BunnyServiceModelImpl.java
URL: http://svn.apache.org/viewvc/incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/bunny/impl/BunnyServiceModelImpl.java?view=auto&rev=533875
==============================================================================
--- incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/bunny/impl/BunnyServiceModelImpl.java (added)
+++ incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/bunny/impl/BunnyServiceModelImpl.java Mon Apr 30 16:15:05 2007
@@ -0,0 +1,53 @@
+
+/*
+__BANNER__
+*/
+// this file was generated at 1-May-2007 12:59 AM by ${author}
+package org.apache.felix.upnp.devicegen.bunny.impl;
+
+import org.apache.felix.upnp.devicegen.holder.*;
+import org.apache.felix.upnp.devicegen.bunny.model.*;
+
+	
+public class BunnyServiceModelImpl implements BunnyServiceModel {		
+	
+	/**
+	 * This method is "add description here"	
+ * newLeftEarPosition in  parameter
+
+ * newRightEarPosition in  parameter
+
+ * textToSpeech in  parameter
+
+ * voice in  parameter
+
+
+	 */
+	public void play(
+		long newLeftEarPosition,
+
+long newRightEarPosition,
+
+java.lang.String textToSpeech,
+
+java.lang.String voice
+	) {
+		// TODO
+	
+	}
+
+	
+
+	// Those getters are used for the first notification just after a subscription
+	
+		public java.lang.Long getLeftEarPositionStateVariableValue(){
+			// TODO
+			return null;
+		}		
+		
+		public java.lang.Long getRightEarPositionStateVariableValue(){
+			// TODO
+			return null;
+		}		
+			
+}

Propchange: incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/bunny/impl/BunnyServiceModelImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/bunny/model/BunnyServiceModel.java
URL: http://svn.apache.org/viewvc/incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/bunny/model/BunnyServiceModel.java?view=auto&rev=533875
==============================================================================
--- incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/bunny/model/BunnyServiceModel.java (added)
+++ incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/bunny/model/BunnyServiceModel.java Mon Apr 30 16:15:05 2007
@@ -0,0 +1,44 @@
+
+/*
+__BANNER__
+*/
+// this file was generated at 1-May-2007 12:59 AM by ${author}
+package org.apache.felix.upnp.devicegen.bunny.model;
+
+import org.apache.felix.upnp.devicegen.holder.*;
+
+	
+public interface BunnyServiceModel {		
+	
+	/**
+	 * This method is "add description here"	
+ * newLeftEarPosition in  parameter
+
+ * newRightEarPosition in  parameter
+
+ * textToSpeech in  parameter
+
+ * voice in  parameter
+
+
+	 */
+	public void play(
+		long newLeftEarPosition,
+
+long newRightEarPosition,
+
+java.lang.String textToSpeech,
+
+java.lang.String voice
+	);
+	// TODO return the type of the return argument when specified
+
+	
+
+	// Those getters are used for the first notification just after a subscription
+	
+		public java.lang.Long getLeftEarPositionStateVariableValue();		
+		
+		public java.lang.Long getRightEarPositionStateVariableValue();		
+			
+}

Propchange: incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/bunny/model/BunnyServiceModel.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/bunny/service/BunnyService.java
URL: http://svn.apache.org/viewvc/incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/bunny/service/BunnyService.java?view=auto&rev=533875
==============================================================================
--- incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/bunny/service/BunnyService.java (added)
+++ incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/bunny/service/BunnyService.java Mon Apr 30 16:15:05 2007
@@ -0,0 +1,556 @@
+
+/*
+__BANNER__
+*/
+// this file was generated at 1-May-2007 12:59 AM by ${author}
+package org.apache.felix.upnp.devicegen.bunny.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.bunny.model.*;
+import org.apache.felix.upnp.devicegen.bunny.impl.*;
+
+	
+
+public class BunnyService extends AbstractUPnPService {
+	
+		
+	private BunnyServiceModel model;	
+		
+	/**
+	 * constructor
+	 */
+	public BunnyService(
+		UPnPDevice upnpDevice,
+		String serviceId,
+		String serviceType,
+		String version,
+		BunnyServiceModel model
+	){
+		super(	
+			upnpDevice,
+			serviceId,
+			serviceType,
+			version
+		);
+		this.model=model;
+	
+		
+	stateVariables=new HashMap();
+	
+
+	
+	stateVariables.put(
+		"SerialNumber",
+		new SerialNumberStateVariable(this,model)
+	);
+
+
+	
+	stateVariables.put(
+		"Token",
+		new TokenStateVariable(this,model)
+	);
+
+
+	
+	stateVariables.put(
+		"LeftEarPosition",
+		new LeftEarPositionStateVariable(this,model)
+	);
+
+
+	
+	stateVariables.put(
+		"RightEarPosition",
+		new RightEarPositionStateVariable(this,model)
+	);
+
+
+	
+	stateVariables.put(
+		"A_ARG_TYPE_TextToSpeech",
+		new A_ARG_TYPE_TextToSpeechStateVariable(this,model)
+	);
+
+
+	
+	stateVariables.put(
+		"A_ARG_TYPE_Voice",
+		new A_ARG_TYPE_VoiceStateVariable(this,model)
+	);
+
+	actions=new HashMap();
+	
+
+
+	actions.put(
+		"Play",
+		new PlayAction(this,model)
+	);
+	
+	}
+
+	// UPnPStateVariable classes
+	
+	
+
+// class SerialNumberStateVariable
+public class SerialNumberStateVariable
+  extends AbstractUPnPStateVariable
+			
+	{
+
+	public final static String NAME="SerialNumber";
+	public final static String DATATYPE="string";
+	
+	// HERE specific state variable members
+	private BunnyServiceModel model;
+	
+	public SerialNumberStateVariable(
+		UPnPService upnpService,
+		BunnyServiceModel 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 TokenStateVariable
+public class TokenStateVariable
+  extends AbstractUPnPStateVariable
+			
+	{
+
+	public final static String NAME="Token";
+	public final static String DATATYPE="string";
+	
+	// HERE specific state variable members
+	private BunnyServiceModel model;
+	
+	public TokenStateVariable(
+		UPnPService upnpService,
+		BunnyServiceModel 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 LeftEarPositionStateVariable
+public class LeftEarPositionStateVariable
+  extends AbstractUPnPStateVariable
+			
+	  implements UPnPStateVariableDescriptor{
+
+	public final static String NAME="LeftEarPosition";
+	public final static String DATATYPE="ui4";
+	
+	// HERE specific state variable members
+	private BunnyServiceModel model;
+	
+	public LeftEarPositionStateVariable(
+		UPnPService upnpService,
+		BunnyServiceModel 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 0
+					null, // TODO maximum changed for 16
+					// 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.getLeftEarPositionStateVariableValue();
+		
+	}
+};
+
+
+// class RightEarPositionStateVariable
+public class RightEarPositionStateVariable
+  extends AbstractUPnPStateVariable
+			
+	  implements UPnPStateVariableDescriptor{
+
+	public final static String NAME="RightEarPosition";
+	public final static String DATATYPE="ui4";
+	
+	// HERE specific state variable members
+	private BunnyServiceModel model;
+	
+	public RightEarPositionStateVariable(
+		UPnPService upnpService,
+		BunnyServiceModel 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 0
+					null, // TODO maximum changed for 16
+					// 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.getRightEarPositionStateVariableValue();
+		
+	}
+};
+
+
+// class A_ARG_TYPE_TextToSpeechStateVariable
+public class A_ARG_TYPE_TextToSpeechStateVariable
+  extends AbstractUPnPStateVariable
+			
+	{
+
+	public final static String NAME="A_ARG_TYPE_TextToSpeech";
+	public final static String DATATYPE="string";
+	
+	// HERE specific state variable members
+	private BunnyServiceModel model;
+	
+	public A_ARG_TYPE_TextToSpeechStateVariable(
+		UPnPService upnpService,
+		BunnyServiceModel 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_VoiceStateVariable
+public class A_ARG_TYPE_VoiceStateVariable
+  extends AbstractUPnPStateVariable
+			
+	{
+
+	public final static String NAME="A_ARG_TYPE_Voice";
+	public final static String DATATYPE="string";
+	
+	// HERE specific state variable members
+	private BunnyServiceModel model;
+	
+	public A_ARG_TYPE_VoiceStateVariable(
+		UPnPService upnpService,
+		BunnyServiceModel 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","julie22k"));
+
+		allowedValueList.add(UPnPDataTypeUtil.instanciateObject("string","claire22s"));
+
+		allowedValueList.add(UPnPDataTypeUtil.instanciateObject("string","graham22s"));
+
+		allowedValueList.add(UPnPDataTypeUtil.instanciateObject("string","lucy22s"));
+
+		allowedValueList.add(UPnPDataTypeUtil.instanciateObject("string","ryan22k"));
+
+		allowedValueList.add(UPnPDataTypeUtil.instanciateObject("string","aaron22s"));
+
+		allowedValueList.add(UPnPDataTypeUtil.instanciateObject("string","laura22s"));
+
+		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;
+	}
+};
+	
+
+	// UPnPAction classes
+	
+	
+
+public class PlayAction extends AbstractUPnPAction {
+
+	BunnyServiceModel model;
+	
+	// HERE specific action members
+	
+	public PlayAction(
+	    UPnPService upnpService,
+		BunnyServiceModel model
+	){
+		super(
+			upnpService,
+			"Play",
+			""
+		);
+		this.model=model;
+		
+			addInArg(
+				"NewLeftEarPosition",
+				upnpService.getStateVariable("LeftEarPosition")
+			);
+		
+			addInArg(
+				"NewRightEarPosition",
+				upnpService.getStateVariable("LeftEarPosition")
+			);
+		
+			addInArg(
+				"TextToSpeech",
+				upnpService.getStateVariable("A_ARG_TYPE_TextToSpeech")
+			);
+		
+			addInArg(
+				"Voice",
+				upnpService.getStateVariable("A_ARG_TYPE_Voice")
+			);
+		
+	}
+
+	/**
+	 * @see org.osgi.service.upnp.UPnPAction#invoke(java.util.Dictionary)
+	 */
+	public Dictionary invoke(Dictionary _args) throws Exception {
+
+	java.lang.Long newLeftEarPosition = (java.lang.Long) _args.get("NewLeftEarPosition");
+		java.lang.Long newRightEarPosition = (java.lang.Long) _args.get("NewRightEarPosition");
+		java.lang.String textToSpeech = (java.lang.String) _args.get("TextToSpeech");
+		java.lang.String voice = (java.lang.String) _args.get("Voice");
+		
+
+		// invoke model
+		
+		 model.play(
+			LongHolder.toValue(
+			newLeftEarPosition)
+		,
+
+LongHolder.toValue(
+			newRightEarPosition)
+		,
+
+StringHolder.toValue(
+			textToSpeech)
+		,
+
+StringHolder.toValue(
+			voice)
+		
+		 );
+		
+		// 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
+	}
+};
+	
+}

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

Added: incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/holder/BooleanHolder.java
URL: http://svn.apache.org/viewvc/incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/holder/BooleanHolder.java?view=auto&rev=533875
==============================================================================
--- incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/holder/BooleanHolder.java (added)
+++ incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/holder/BooleanHolder.java Mon Apr 30 16:15:05 2007
@@ -0,0 +1,35 @@
+/*
+__LICENSE__
+*/
+package org.apache.felix.upnp.devicegen.holder;
+
+/**
+ * holder for out parameters 
+ * @author Didier Donsez
+ */
+public class BooleanHolder {
+	
+	private boolean value;
+	
+	public BooleanHolder(){}
+	
+	public BooleanHolder(boolean initial){
+		value=initial;
+	}
+
+	public void setValue(boolean value){
+		this.value=value;
+	}
+	
+	public boolean getValue(){
+		return value;
+	}
+
+	public Boolean getObject(){
+		return new Boolean(value);
+	}
+
+	public static boolean toValue(Boolean value){
+		return value.booleanValue();
+	}
+}

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

Added: incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/holder/ByteArrayHolder.java
URL: http://svn.apache.org/viewvc/incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/holder/ByteArrayHolder.java?view=auto&rev=533875
==============================================================================
--- incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/holder/ByteArrayHolder.java (added)
+++ incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/holder/ByteArrayHolder.java Mon Apr 30 16:15:05 2007
@@ -0,0 +1,35 @@
+/*
+__LICENSE__
+*/
+package org.apache.felix.upnp.devicegen.holder;
+
+/**
+ * holder for out parameters 
+ * @author Didier Donsez
+ */
+public class ByteArrayHolder {
+	
+	private byte[] value;
+	
+	public ByteArrayHolder(){}
+	
+	public ByteArrayHolder(byte[] initial){
+		value=initial;
+	}
+
+	public void setValue(byte[] value){
+		this.value=value;
+	}
+	
+	public byte[] getValue(){
+		return value;
+	}
+	
+	public byte[] getObject(){
+		return value;
+	}
+
+	public static byte[] toValue(byte[] value){
+		return value;
+	}
+}

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

Added: incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/holder/CharacterHolder.java
URL: http://svn.apache.org/viewvc/incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/holder/CharacterHolder.java?view=auto&rev=533875
==============================================================================
--- incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/holder/CharacterHolder.java (added)
+++ incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/holder/CharacterHolder.java Mon Apr 30 16:15:05 2007
@@ -0,0 +1,37 @@
+/*
+__LICENSE__
+*/
+package org.apache.felix.upnp.devicegen.holder;
+
+/**
+ * holder for out parameters 
+ * @author Didier Donsez
+ */
+public class CharacterHolder {
+	
+	private char value;
+	
+	public CharacterHolder(){}
+	
+	public CharacterHolder(char initial){
+		value=initial;
+	}
+
+	public void setValue(char value){
+		this.value=value;
+	}
+
+	public char getValue(){
+		return value;
+	}
+
+	public Character getObject(){
+		return new Character(value);
+	}
+
+	
+	public static char toValue(Character value){
+		return value.charValue();
+	}
+
+}

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

Added: incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/holder/DateHolder.java
URL: http://svn.apache.org/viewvc/incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/holder/DateHolder.java?view=auto&rev=533875
==============================================================================
--- incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/holder/DateHolder.java (added)
+++ incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/holder/DateHolder.java Mon Apr 30 16:15:05 2007
@@ -0,0 +1,38 @@
+/*
+__LICENSE__
+*/
+package org.apache.felix.upnp.devicegen.holder;
+
+import java.util.Date;
+
+/**
+ * holder for out parameters 
+ * @author Didier Donsez
+ */
+public class DateHolder {
+	
+	private Date value;
+	
+	public DateHolder(){}
+	
+	public DateHolder(Date initial){
+		value=initial;
+	}
+
+	public void setValue(Date value){
+		this.value=value;
+	}
+
+	public Date getValue(){
+		return value;
+	}
+
+	public Date getObject(){
+		return value;
+	}
+
+	public static Date toValue(Date value){
+		return value;
+	}
+
+}

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

Added: incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/holder/DoubleHolder.java
URL: http://svn.apache.org/viewvc/incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/holder/DoubleHolder.java?view=auto&rev=533875
==============================================================================
--- incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/holder/DoubleHolder.java (added)
+++ incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/holder/DoubleHolder.java Mon Apr 30 16:15:05 2007
@@ -0,0 +1,36 @@
+/*
+__LICENSE__
+*/
+package org.apache.felix.upnp.devicegen.holder;
+
+
+/**
+ * holder for out parameters 
+ * @author Didier Donsez
+ */
+public class DoubleHolder {
+	
+	private double value;
+	
+	public DoubleHolder(){}
+	
+	public DoubleHolder(double initial){
+		value=initial;
+	}
+
+	public void setValue(double value){
+		this.value=value;
+	}
+	
+	public double getValue(){
+		return value;
+	}
+
+	public Double getObject(){
+		return new Double(value);
+	}
+	
+	public static double toValue(Double value){
+		return value.doubleValue();
+	}
+}

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

Added: incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/holder/FloatHolder.java
URL: http://svn.apache.org/viewvc/incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/holder/FloatHolder.java?view=auto&rev=533875
==============================================================================
--- incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/holder/FloatHolder.java (added)
+++ incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/holder/FloatHolder.java Mon Apr 30 16:15:05 2007
@@ -0,0 +1,36 @@
+/*
+__LICENSE__
+*/
+package org.apache.felix.upnp.devicegen.holder;
+
+/**
+ * holder for out parameters 
+ * @author Didier Donsez
+ */
+public class FloatHolder {
+	
+	private float value;
+	
+	public FloatHolder(){}
+	
+	public FloatHolder(float initial){
+		value=initial;
+	}
+
+	public void setValue(float value){
+		this.value=value;
+	}
+	
+	public Float getObject(){
+		return new Float(value);
+	}
+
+	public float getValue(){
+		return value;
+	}
+
+	
+	public static float toValue(Float value){
+		return value.floatValue();
+	}
+}

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

Added: incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/holder/IntegerHolder.java
URL: http://svn.apache.org/viewvc/incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/holder/IntegerHolder.java?view=auto&rev=533875
==============================================================================
--- incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/holder/IntegerHolder.java (added)
+++ incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/holder/IntegerHolder.java Mon Apr 30 16:15:05 2007
@@ -0,0 +1,35 @@
+/*
+__LICENSE__
+*/
+package org.apache.felix.upnp.devicegen.holder;
+
+/**
+ * holder for out parameters 
+ * @author Didier Donsez
+ */
+public class IntegerHolder {
+	
+	private int value;
+	
+	public IntegerHolder(){}
+	
+	public IntegerHolder(int initial){
+		value=initial;
+	}
+
+	public void setValue(int value){
+		this.value=value;
+	}
+
+	public int getValue(){
+		return value;
+	}
+
+	public Integer getObject(){
+		return new Integer(value);
+	}
+	
+	public static int toValue(Integer value){
+		return value.intValue();
+	}
+}

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

Added: incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/holder/LongHolder.java
URL: http://svn.apache.org/viewvc/incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/holder/LongHolder.java?view=auto&rev=533875
==============================================================================
--- incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/holder/LongHolder.java (added)
+++ incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/holder/LongHolder.java Mon Apr 30 16:15:05 2007
@@ -0,0 +1,37 @@
+/*
+__LICENSE__
+*/
+package org.apache.felix.upnp.devicegen.holder;
+
+/**
+ * holder for out parameters 
+ * @author Didier Donsez
+ */
+public class LongHolder {
+	
+	private long value;
+	
+	public LongHolder(){}
+	
+	public LongHolder(long initial){
+		value=initial;
+	}
+
+	public void setValue(long value){
+		this.value=value;
+	}
+
+	public long getValue(){
+		return value;
+	}
+	
+	public Long getObject(){
+		return new Long(value);
+	}
+	
+
+	
+	public static long toValue(Long value){
+		return value.longValue();
+	}
+}

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

Added: incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/holder/StringHolder.java
URL: http://svn.apache.org/viewvc/incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/holder/StringHolder.java?view=auto&rev=533875
==============================================================================
--- incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/holder/StringHolder.java (added)
+++ incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/holder/StringHolder.java Mon Apr 30 16:15:05 2007
@@ -0,0 +1,36 @@
+/*
+__LICENSE__
+*/
+package org.apache.felix.upnp.devicegen.holder;
+
+/**
+ * holder for out parameters 
+ * @author Didier Donsez
+ */
+public class StringHolder {
+	
+	private String value;
+	
+	public StringHolder(){}
+	
+	public StringHolder(String initial){
+		value=initial;
+	}
+
+	public void setValue(String value){
+		this.value=value;
+	}
+
+	public String getValue(){
+		return value;
+	}
+
+	public String getObject(){
+		return value;
+	}
+	
+	public static String toValue(String value){
+		return value;
+	}
+
+}

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

Added: incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/hvac/device/HVAC_System.java
URL: http://svn.apache.org/viewvc/incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/hvac/device/HVAC_System.java?view=auto&rev=533875
==============================================================================
--- incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/hvac/device/HVAC_System.java (added)
+++ incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/hvac/device/HVAC_System.java Mon Apr 30 16:15:05 2007
@@ -0,0 +1,186 @@
+
+/*
+__BANNER__
+*/
+// this file was generated at 1-May-2007 12:59 AM by ${author}
+package org.apache.felix.upnp.devicegen.hvac.device;
+
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.osgi.framework.BundleContext;
+import org.osgi.service.upnp.UPnPDevice;
+import org.osgi.service.upnp.UPnPIcon;
+import org.osgi.service.upnp.UPnPService;
+
+import org.apache.felix.upnp.devicegen.util.AbstractUPnPDevice;
+import org.apache.felix.upnp.devicegen.util.DeviceIcon;
+
+import org.apache.felix.upnp.devicegen.hvac.model.*;
+import org.apache.felix.upnp.devicegen.hvac.service.*;
+import org.apache.felix.upnp.devicegen.hvac.impl.*;
+
+
+	
+
+public class HVAC_System extends AbstractUPnPDevice {
+
+	public HVAC_System(BundleContext context, AbstractUPnPDevice parent) {
+		super(context,parent);
+
+		DEVICE_ID="uuid:adele-hvac-system";
+
+		// ServiceModel Declaration List
+		HVAC_UserOperatingModeModel mySystemUserModeModel=null; // TODO initialise it
+HVAC_FanOperatingModeModel mySystemFanModeModel=null; // TODO initialise it
+FanSpeedModel mySystemFanSpeedModel=null; // TODO initialise it
+TemperatureSensorModel myOutsideTemperatureModel=null; // TODO initialise it
+HVAC_SetpointScheduleModel mySystemSetpointScheduleModel=null; // TODO initialise it
+
+		
+		// Icon Lists
+		
+		List iconsList=new LinkedList();
+	
+		iconsList.add(
+				new DeviceIcon(
+					"image/png", // MimeType
+					48, //Width
+					48, // Height
+					0, // ??
+					16, // Depth
+					"/icon/device.png", // URL
+					HVAC_System.class.getClassLoader()
+				)
+		);
+
+		icons=(UPnPIcon[])iconsList.toArray(new UPnPIcon[]{});
+
+
+		// Service List
+		
+		List servicesList=new LinkedList();
+	
+	
+		/*
+				SCPDURL=
+				controlURL=
+				eventSubURL=
+		*/
+		servicesList.add(
+				new HVAC_UserOperatingMode(
+						this,
+						"SystemUserMode",
+						"urn:schemas-upnp-org:service:HVAC_UserOperatingMode:1",
+						"1",
+						mySystemUserModeModel									
+				)
+			);				
+
+	
+		/*
+				SCPDURL=
+				controlURL=
+				eventSubURL=
+		*/
+		servicesList.add(
+				new HVAC_FanOperatingMode(
+						this,
+						"SystemFanMode",
+						"urn:schemas-upnp-org:service:HVAC_FanOperatingMode:1",
+						"1",
+						mySystemFanModeModel									
+				)
+			);				
+
+	
+		/*
+				SCPDURL=
+				controlURL=
+				eventSubURL=
+		*/
+		servicesList.add(
+				new FanSpeed(
+						this,
+						"SystemFanSpeed",
+						"urn:schemas-upnp-org:service:FanSpeed:1",
+						"1",
+						mySystemFanSpeedModel									
+				)
+			);				
+
+	
+		/*
+				SCPDURL=
+				controlURL=
+				eventSubURL=
+		*/
+		servicesList.add(
+				new TemperatureSensor(
+						this,
+						"OutsideTemperature",
+						"urn:schemas-upnp-org:service:TemperatureSensor:1",
+						"1",
+						myOutsideTemperatureModel									
+				)
+			);				
+
+	
+		/*
+				SCPDURL=
+				controlURL=
+				eventSubURL=
+		*/
+		servicesList.add(
+				new HVAC_SetpointSchedule(
+						this,
+						"SystemSetpointSchedule",
+						"urn:schemas-upnp-org:service:HVAC_SetpointSchedule:1",
+						"1",
+						mySystemSetpointScheduleModel									
+				)
+			);				
+
+		services=(UPnPService[])servicesList.toArray(new UPnPService[]{});
+
+
+		// Embedded Device List
+			
+		//children=new LinkedList();
+		
+		addChild(new HVAC_ZoneThermostat(bundleContext,this));
+
+	
+	}
+	
+	protected void setupDeviceProperties(){	
+		dictionary.put(UPnPDevice.TYPE,"urn:schemas-upnp-org:device:HVACSystem:1");
+		dictionary.put(UPnPDevice.FRIENDLY_NAME,"Generated HVAC System UPnP Device");
+		dictionary.put(UPnPDevice.MANUFACTURER,"Didier Donsez (Felix team)");
+		dictionary.put(UPnPDevice.MANUFACTURER_URL,"http://www.apache.org/~donsez");
+		dictionary.put(UPnPDevice.MODEL_DESCRIPTION,"Generated HVAC System UPnP Device");
+		dictionary.put(UPnPDevice.MODEL_NAME,"HVAC System");
+		dictionary.put(UPnPDevice.MODEL_NUMBER,"123");
+		dictionary.put(UPnPDevice.MODEL_URL,"http://www.apache.org/~donsez/dev/osgi/upnp.devicegen/readme.html");
+		dictionary.put(UPnPDevice.SERIAL_NUMBER,"123456789");
+		dictionary.put(UPnPDevice.UDN,getUDN());
+		dictionary.put(UPnPDevice.ID,dictionary.get(UPnPDevice.UDN));
+		dictionary.put(UPnPDevice.UPC,"upc:adele-hvac-system");
+		dictionary.put(UPnPDevice.PRESENTATION_URL,"");		
+
+		if(parent!=null) {
+			dictionary.put(UPnPDevice.PARENT_UDN,parent.getUDN());
+		}
+		
+		if(children!=null && children.size()!=0){
+			String[] childrenUDN=new String[children.size()];
+			Iterator iter=children.iterator();
+			for(int i=0;iter.hasNext();i++){
+				childrenUDN[i]=((AbstractUPnPDevice)iter.next()).getUDN();
+			}
+			dictionary.put(UPnPDevice.CHILDREN_UDN,childrenUDN);
+		}
+		
+	}
+}

Propchange: incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/hvac/device/HVAC_System.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/hvac/device/HVAC_ZoneThermostat.java
URL: http://svn.apache.org/viewvc/incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/hvac/device/HVAC_ZoneThermostat.java?view=auto&rev=533875
==============================================================================
--- incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/hvac/device/HVAC_ZoneThermostat.java (added)
+++ incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/hvac/device/HVAC_ZoneThermostat.java Mon Apr 30 16:15:05 2007
@@ -0,0 +1,267 @@
+
+/*
+__BANNER__
+*/
+// this file was generated at 1-May-2007 12:59 AM by ${author}
+package org.apache.felix.upnp.devicegen.hvac.device;
+
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.osgi.framework.BundleContext;
+import org.osgi.service.upnp.UPnPDevice;
+import org.osgi.service.upnp.UPnPIcon;
+import org.osgi.service.upnp.UPnPService;
+
+import org.apache.felix.upnp.devicegen.util.AbstractUPnPDevice;
+import org.apache.felix.upnp.devicegen.util.DeviceIcon;
+
+import org.apache.felix.upnp.devicegen.hvac.model.*;
+import org.apache.felix.upnp.devicegen.hvac.service.*;
+import org.apache.felix.upnp.devicegen.hvac.impl.*;
+
+
+	
+
+public class HVAC_ZoneThermostat extends AbstractUPnPDevice {
+
+	public HVAC_ZoneThermostat(BundleContext context, AbstractUPnPDevice parent) {
+		super(context,parent);
+
+		DEVICE_ID="uuid:adele-hvac-thermostat";
+
+		// ServiceModel Declaration List
+		DeviceSecurityModel myDeviceSecurityModel=null; // TODO initialise it
+HVAC_FanOperatingModeModel myZoneFanModeModel=null; // TODO initialise it
+HVAC_UserOperatingModeModel myZoneUserModeModel=null; // TODO initialise it
+FanSpeedModel myZoneFanSpeedModel=null; // TODO initialise it
+TemperatureSensorModel myZoneTemperatureModel=null; // TODO initialise it
+HVAC_SetpointScheduleModel myZoneScheduleModel=null; // TODO initialise it
+TemperatureSetpointModel myHeatingSetpointModel=null; // TODO initialise it
+TemperatureSetpointModel myCoolingSetpointModel=null; // TODO initialise it
+ControlValveModel myHeatingValveModel=null; // TODO initialise it
+ControlValveModel myCoolingValveModel=null; // TODO initialise it
+
+		
+		// Icon Lists
+		
+		List iconsList=new LinkedList();
+	
+		iconsList.add(
+				new DeviceIcon(
+					"image/png", // MimeType
+					48, //Width
+					48, // Height
+					0, // ??
+					16, // Depth
+					"/icon/thermostat.png", // URL
+					HVAC_ZoneThermostat.class.getClassLoader()
+				)
+		);
+
+		icons=(UPnPIcon[])iconsList.toArray(new UPnPIcon[]{});
+
+
+		// Service List
+		
+		List servicesList=new LinkedList();
+	
+	
+		/*
+				SCPDURL=
+				controlURL=
+				eventSubURL=
+		*/
+		servicesList.add(
+				new DeviceSecurity(
+						this,
+						"DeviceSecurity",
+						"urn:schemas-upnp-org:service:DeviceSecurity:1",
+						"1",
+						myDeviceSecurityModel									
+				)
+			);				
+
+	
+		/*
+				SCPDURL=
+				controlURL=
+				eventSubURL=
+		*/
+		servicesList.add(
+				new HVAC_FanOperatingMode(
+						this,
+						"ZoneFanMode",
+						"urn:schemas-upnp-org:service:HVAC_FanOperatingMode:1",
+						"1",
+						myZoneFanModeModel									
+				)
+			);				
+
+	
+		/*
+				SCPDURL=
+				controlURL=
+				eventSubURL=
+		*/
+		servicesList.add(
+				new HVAC_UserOperatingMode(
+						this,
+						"ZoneUserMode",
+						"urn:schemas-upnp-org:service:HVAC_UserOperatingMode:1",
+						"1",
+						myZoneUserModeModel									
+				)
+			);				
+
+	
+		/*
+				SCPDURL=
+				controlURL=
+				eventSubURL=
+		*/
+		servicesList.add(
+				new FanSpeed(
+						this,
+						"ZoneFanSpeed",
+						"urn:schemas-upnp-org:service:FanSpeed:1",
+						"1",
+						myZoneFanSpeedModel									
+				)
+			);				
+
+	
+		/*
+				SCPDURL=
+				controlURL=
+				eventSubURL=
+		*/
+		servicesList.add(
+				new TemperatureSensor(
+						this,
+						"ZoneTemperature",
+						"urn:schemas-upnp-org:service:TemperatureSensor:1",
+						"1",
+						myZoneTemperatureModel									
+				)
+			);				
+
+	
+		/*
+				SCPDURL=
+				controlURL=
+				eventSubURL=
+		*/
+		servicesList.add(
+				new HVAC_SetpointSchedule(
+						this,
+						"ZoneSchedule",
+						"urn:schemas-upnp-org:service:HVAC_SetpointSchedule:1",
+						"1",
+						myZoneScheduleModel									
+				)
+			);				
+
+	
+		/*
+				SCPDURL=
+				controlURL=
+				eventSubURL=
+		*/
+		servicesList.add(
+				new TemperatureSetpoint(
+						this,
+						"HeatingSetpoint",
+						"urn:schemas-upnp-org:service:TemperatureSetpoint:1",
+						"1",
+						myHeatingSetpointModel									
+				)
+			);				
+
+	
+		/*
+				SCPDURL=
+				controlURL=
+				eventSubURL=
+		*/
+		servicesList.add(
+				new TemperatureSetpoint(
+						this,
+						"CoolingSetpoint",
+						"urn:schemas-upnp-org:service:TemperatureSetpoint:1",
+						"1",
+						myCoolingSetpointModel									
+				)
+			);				
+
+	
+		/*
+				SCPDURL=
+				controlURL=
+				eventSubURL=
+		*/
+		servicesList.add(
+				new ControlValve(
+						this,
+						"HeatingValve",
+						"urn:schemas-upnp-org:service:ControlValve:1",
+						"1",
+						myHeatingValveModel									
+				)
+			);				
+
+	
+		/*
+				SCPDURL=
+				controlURL=
+				eventSubURL=
+		*/
+		servicesList.add(
+				new ControlValve(
+						this,
+						"CoolingValve",
+						"urn:schemas-upnp-org:service:ControlValve:1",
+						"1",
+						myCoolingValveModel									
+				)
+			);				
+
+		services=(UPnPService[])servicesList.toArray(new UPnPService[]{});
+
+
+		// Embedded Device List
+		
+	
+	}
+	
+	protected void setupDeviceProperties(){	
+		dictionary.put(UPnPDevice.TYPE,"urn:schemas-upnp-org:device:HVACZoneThermostat:1");
+		dictionary.put(UPnPDevice.FRIENDLY_NAME,"Generated HVAC ZoneThermostat UPnP Device");
+		dictionary.put(UPnPDevice.MANUFACTURER,"Didier Donsez (Felix team)");
+		dictionary.put(UPnPDevice.MANUFACTURER_URL,"http://www.apache.org/~donsez");
+		dictionary.put(UPnPDevice.MODEL_DESCRIPTION,"Generated HVAC ZoneThermostat UPnP Device");
+		dictionary.put(UPnPDevice.MODEL_NAME,"HVAC ZoneThermostat");
+		dictionary.put(UPnPDevice.MODEL_NUMBER,"123");
+		dictionary.put(UPnPDevice.MODEL_URL,"http://www.apache.org/~donsez/dev/osgi/upnp.devicegen/readme.html");
+		dictionary.put(UPnPDevice.SERIAL_NUMBER,"123456789");
+		dictionary.put(UPnPDevice.UDN,getUDN());
+		dictionary.put(UPnPDevice.ID,dictionary.get(UPnPDevice.UDN));
+		dictionary.put(UPnPDevice.UPC,"upc:adele-hvac-thermostat");
+		dictionary.put(UPnPDevice.PRESENTATION_URL,"");		
+
+		if(parent!=null) {
+			dictionary.put(UPnPDevice.PARENT_UDN,parent.getUDN());
+		}
+		
+		if(children!=null && children.size()!=0){
+			String[] childrenUDN=new String[children.size()];
+			Iterator iter=children.iterator();
+			for(int i=0;iter.hasNext();i++){
+				childrenUDN[i]=((AbstractUPnPDevice)iter.next()).getUDN();
+			}
+			dictionary.put(UPnPDevice.CHILDREN_UDN,childrenUDN);
+		}
+		
+	}
+}

Propchange: incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/hvac/device/HVAC_ZoneThermostat.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/hvac/impl/ControlValveModelImpl.java
URL: http://svn.apache.org/viewvc/incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/hvac/impl/ControlValveModelImpl.java?view=auto&rev=533875
==============================================================================
--- incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/hvac/impl/ControlValveModelImpl.java (added)
+++ incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/hvac/impl/ControlValveModelImpl.java Mon Apr 30 16:15:05 2007
@@ -0,0 +1,133 @@
+
+/*
+__BANNER__
+*/
+// this file was generated at 1-May-2007 12:59 AM by ${author}
+package org.apache.felix.upnp.devicegen.hvac.impl;
+
+import org.apache.felix.upnp.devicegen.holder.*;
+import org.apache.felix.upnp.devicegen.hvac.model.*;
+
+	
+public class ControlValveModelImpl implements ControlValveModel {		
+	
+	/**
+	 * This method is "add description here"	
+ * currentPositionTarget out  parameter
+
+
+	 */
+	public void getPositionTarget(
+		IntegerHolder currentPositionTarget
+	) {
+		// TODO
+	
+	}
+
+
+	/**
+	 * This method is "add description here"	
+ * newPositionTarget in  parameter
+
+
+	 */
+	public void setPosition(
+		int newPositionTarget
+	) {
+		// TODO
+	
+	}
+
+
+	/**
+	 * This method is "add description here"	
+ * currentPositionStatus out  parameter
+
+
+	 */
+	public void getPosition(
+		IntegerHolder currentPositionStatus
+	) {
+		// TODO
+	
+	}
+
+
+	/**
+	 * This method is "add description here"	
+ * currentMinPosition out  parameter
+
+ * currentMaxPosition out  parameter
+
+
+	 */
+	public void getMinMax(
+		IntegerHolder currentMinPosition,
+
+IntegerHolder currentMaxPosition
+	) {
+		// TODO
+	
+	}
+
+
+	/**
+	 * This method is "add description here"	
+ * newMinPosition in  parameter
+
+ * newMaxPosition in  parameter
+
+
+	 */
+	public void setMinMax(
+		int newMinPosition,
+
+int newMaxPosition
+	) {
+		// TODO
+	
+	}
+
+
+	/**
+	 * This method is "add description here"	
+ * currentControlMode out  parameter
+
+
+	 */
+	public void getMode(
+		StringHolder currentControlMode
+	) {
+		// TODO
+	
+	}
+
+
+	/**
+	 * This method is "add description here"	
+ * newControlMode in  parameter
+
+
+	 */
+	public void setMode(
+		java.lang.String newControlMode
+	) {
+		// TODO
+	
+	}
+
+	
+
+	// Those getters are used for the first notification just after a subscription
+	
+		public java.lang.Integer getPositionStatusStateVariableValue(){
+			// TODO
+			return null;
+		}		
+		
+		public java.lang.String getControlModeStateVariableValue(){
+			// TODO
+			return null;
+		}		
+			
+}

Propchange: incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/hvac/impl/ControlValveModelImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/hvac/impl/DeviceSecurityModelImpl.java
URL: http://svn.apache.org/viewvc/incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/hvac/impl/DeviceSecurityModelImpl.java?view=auto&rev=533875
==============================================================================
--- incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/hvac/impl/DeviceSecurityModelImpl.java (added)
+++ incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/hvac/impl/DeviceSecurityModelImpl.java Mon Apr 30 16:15:05 2007
@@ -0,0 +1,458 @@
+
+/*
+__BANNER__
+*/
+// this file was generated at 1-May-2007 12:59 AM by ${author}
+package org.apache.felix.upnp.devicegen.hvac.impl;
+
+import org.apache.felix.upnp.devicegen.holder.*;
+import org.apache.felix.upnp.devicegen.hvac.model.*;
+
+	
+public class DeviceSecurityModelImpl implements DeviceSecurityModel {		
+	
+	/**
+	 * This method is "add description here"	
+ * keyArg out  parameter
+
+
+	 */
+	public void getPublicKeys(
+		StringHolder keyArg
+	) {
+		// TODO
+	
+	}
+
+
+	/**
+	 * This method is "add description here"	
+ * supported out  parameter
+
+
+	 */
+	public void getAlgorithmsAndProtocols(
+		StringHolder supported
+	) {
+		// TODO
+	
+	}
+
+
+	/**
+	 * This method is "add description here"	
+ * argTotalACLSize out  parameter
+
+ * argFreeACLSize out  parameter
+
+ * argTotalOwnerListSize out  parameter
+
+ * argFreeOwnerListSize out  parameter
+
+ * argTotalCertCacheSize out  parameter
+
+ * argFreeCertCacheSize out  parameter
+
+
+	 */
+	public void getACLSizes(
+		IntegerHolder argTotalACLSize,
+
+IntegerHolder argFreeACLSize,
+
+IntegerHolder argTotalOwnerListSize,
+
+IntegerHolder argFreeOwnerListSize,
+
+IntegerHolder argTotalCertCacheSize,
+
+IntegerHolder argFreeCertCacheSize
+	) {
+		// TODO
+	
+	}
+
+
+	/**
+	 * This method is "add description here"	
+ * certificates in  parameter
+
+
+	 */
+	public void cacheCertificate(
+		java.lang.String certificates
+	) {
+		// TODO
+	
+	}
+
+
+	/**
+	 * This method is "add description here"	
+ * argTimeHint in  parameter
+
+
+	 */
+	public void setTimeHint(
+		java.lang.String argTimeHint
+	) {
+		// TODO
+	
+	}
+
+
+	/**
+	 * This method is "add description here"	
+ * argLifetimeSequenceBase out  parameter
+
+
+	 */
+	public void getLifetimeSequenceBase(
+		StringHolder argLifetimeSequenceBase
+	) {
+		// TODO
+	
+	}
+
+
+	/**
+	 * This method is "add description here"	
+ * encipheredBulkKey in  parameter
+
+ * bulkAlgorithm in  parameter
+
+ * ciphertext in  parameter
+
+ * cPKeyID in  parameter
+
+ * deviceKeyID out  parameter
+
+ * sequenceBase out  parameter
+
+
+	 */
+	public void setSessionKeys(
+		byte[] encipheredBulkKey,
+
+java.lang.String bulkAlgorithm,
+
+byte[] ciphertext,
+
+int cPKeyID,
+
+IntegerHolder deviceKeyID,
+
+StringHolder sequenceBase
+	) {
+		// TODO
+	
+	}
+
+
+	/**
+	 * This method is "add description here"	
+ * deviceKeyID in  parameter
+
+
+	 */
+	public void expireSessionKeys(
+		int deviceKeyID
+	) {
+		// TODO
+	
+	}
+
+
+	/**
+	 * This method is "add description here"	
+ * deviceKeyID in  parameter
+
+ * request in  parameter
+
+ * inIV in  parameter
+
+ * reply out  parameter
+
+ * outIV out  parameter
+
+
+	 */
+	public void decryptAndExecute(
+		int deviceKeyID,
+
+byte[] request,
+
+byte[] inIV,
+
+ByteArrayHolder reply,
+
+ByteArrayHolder outIV
+	) {
+		// TODO
+	
+	}
+
+
+	/**
+	 * This method is "add description here"	
+ * hMACAlgorithm in  parameter
+
+ * encryptedHMACValue in  parameter
+
+
+	 */
+	public void takeOwnership(
+		java.lang.String hMACAlgorithm,
+
+byte[] encryptedHMACValue
+	) {
+		// TODO
+	
+	}
+
+
+	/**
+	 * This method is "add description here"	
+ * permissions out  parameter
+
+
+	 */
+	public void getDefinedPermissions(
+		StringHolder permissions
+	) {
+		// TODO
+	
+	}
+
+
+	/**
+	 * This method is "add description here"	
+ * profiles out  parameter
+
+
+	 */
+	public void getDefinedProfiles(
+		StringHolder profiles
+	) {
+		// TODO
+	
+	}
+
+
+	/**
+	 * This method is "add description here"	
+ * version out  parameter
+
+ * aCL out  parameter
+
+
+	 */
+	public void readACL(
+		StringHolder version,
+
+StringHolder aCL
+	) {
+		// TODO
+	
+	}
+
+
+	/**
+	 * This method is "add description here"	
+ * version in  parameter
+
+ * aCL in  parameter
+
+ * newVersion out  parameter
+
+
+	 */
+	public void writeACL(
+		java.lang.String version,
+
+java.lang.String aCL,
+
+StringHolder newVersion
+	) {
+		// TODO
+	
+	}
+
+
+	/**
+	 * This method is "add description here"	
+ * entry in  parameter
+
+
+	 */
+	public void addACLEntry(
+		java.lang.String entry
+	) {
+		// TODO
+	
+	}
+
+
+	/**
+	 * This method is "add description here"	
+ * targetACLVersion in  parameter
+
+ * index in  parameter
+
+ * newACLVersion out  parameter
+
+
+	 */
+	public void deleteACLEntry(
+		java.lang.String targetACLVersion,
+
+int index,
+
+StringHolder newACLVersion
+	) {
+		// TODO
+	
+	}
+
+
+	/**
+	 * This method is "add description here"	
+ * targetACLVersion in  parameter
+
+ * index in  parameter
+
+ * entry in  parameter
+
+ * newACLVersion out  parameter
+
+
+	 */
+	public void replaceACLEntry(
+		java.lang.String targetACLVersion,
+
+int index,
+
+java.lang.String entry,
+
+StringHolder newACLVersion
+	) {
+		// TODO
+	
+	}
+
+
+	/**
+	 * This method is "add description here"	
+
+	 */
+	public void factorySecurityReset(
+		
+	) {
+		// TODO
+	
+	}
+
+
+	/**
+	 * This method is "add description here"	
+ * hashAlgorithm in  parameter
+
+ * keyHash in  parameter
+
+
+	 */
+	public void grantOwnership(
+		java.lang.String hashAlgorithm,
+
+byte[] keyHash
+	) {
+		// TODO
+	
+	}
+
+
+	/**
+	 * This method is "add description here"	
+ * hashAlgorithm in  parameter
+
+ * keyHash in  parameter
+
+
+	 */
+	public void revokeOwnership(
+		java.lang.String hashAlgorithm,
+
+byte[] keyHash
+	) {
+		// TODO
+	
+	}
+
+
+	/**
+	 * This method is "add description here"	
+ * argNumberOfOwners out  parameter
+
+ * owners out  parameter
+
+
+	 */
+	public void listOwners(
+		IntegerHolder argNumberOfOwners,
+
+StringHolder owners
+	) {
+		// TODO
+	
+	}
+
+	
+
+	// Those getters are used for the first notification just after a subscription
+	
+		public java.lang.Integer getNumberOfOwnersStateVariableValue(){
+			// TODO
+			return null;
+		}		
+		
+		public java.lang.String getLifetimeSequenceBaseStateVariableValue(){
+			// TODO
+			return null;
+		}		
+		
+		public java.lang.String getTimeHintStateVariableValue(){
+			// TODO
+			return null;
+		}		
+		
+		public java.lang.Integer getTotalACLSizeStateVariableValue(){
+			// TODO
+			return null;
+		}		
+		
+		public java.lang.Integer getFreeACLSizeStateVariableValue(){
+			// TODO
+			return null;
+		}		
+		
+		public java.lang.Integer getTotalOwnerListSizeStateVariableValue(){
+			// TODO
+			return null;
+		}		
+		
+		public java.lang.Integer getFreeOwnerListSizeStateVariableValue(){
+			// TODO
+			return null;
+		}		
+		
+		public java.lang.Integer getTotalCertCacheSizeStateVariableValue(){
+			// TODO
+			return null;
+		}		
+		
+		public java.lang.Integer getFreeCertCacheSizeStateVariableValue(){
+			// TODO
+			return null;
+		}		
+			
+}

Propchange: incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/hvac/impl/DeviceSecurityModelImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/hvac/impl/FanSpeedModelImpl.java
URL: http://svn.apache.org/viewvc/incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/hvac/impl/FanSpeedModelImpl.java?view=auto&rev=533875
==============================================================================
--- incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/hvac/impl/FanSpeedModelImpl.java (added)
+++ incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/hvac/impl/FanSpeedModelImpl.java Mon Apr 30 16:15:05 2007
@@ -0,0 +1,111 @@
+
+/*
+__BANNER__
+*/
+// this file was generated at 1-May-2007 12:59 AM by ${author}
+package org.apache.felix.upnp.devicegen.hvac.impl;
+
+import org.apache.felix.upnp.devicegen.holder.*;
+import org.apache.felix.upnp.devicegen.hvac.model.*;
+
+	
+public class FanSpeedModelImpl implements FanSpeedModel {		
+	
+	/**
+	 * This method is "add description here"	
+ * newFanSpeedTarget in  parameter
+
+
+	 */
+	public void setFanSpeed(
+		int newFanSpeedTarget
+	) {
+		// TODO
+	
+	}
+
+
+	/**
+	 * This method is "add description here"	
+ * currentFanSpeedStatus out  parameter
+
+
+	 */
+	public void getFanSpeed(
+		IntegerHolder currentFanSpeedStatus
+	) {
+		// TODO
+	
+	}
+
+
+	/**
+	 * This method is "add description here"	
+ * currentFanSpeedTarget out  parameter
+
+
+	 */
+	public void getFanSpeedTarget(
+		IntegerHolder currentFanSpeedTarget
+	) {
+		// TODO
+	
+	}
+
+
+	/**
+	 * This method is "add description here"	
+ * newDirectionTarget in  parameter
+
+
+	 */
+	public void setFanDirection(
+		boolean newDirectionTarget
+	) {
+		// TODO
+	
+	}
+
+
+	/**
+	 * This method is "add description here"	
+ * currentDirectionStatus out  parameter
+
+
+	 */
+	public void getFanDirection(
+		BooleanHolder currentDirectionStatus
+	) {
+		// TODO
+	
+	}
+
+
+	/**
+	 * This method is "add description here"	
+ * currentDirectionTarget out  parameter
+
+
+	 */
+	public void getFanDirectionTarget(
+		BooleanHolder currentDirectionTarget
+	) {
+		// TODO
+	
+	}
+
+	
+
+	// Those getters are used for the first notification just after a subscription
+	
+		public java.lang.Integer getFanSpeedStatusStateVariableValue(){
+			// TODO
+			return null;
+		}		
+		
+		public java.lang.Boolean getDirectionStatusStateVariableValue(){
+			// TODO
+			return null;
+		}		
+			
+}

Propchange: incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/hvac/impl/FanSpeedModelImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/hvac/impl/HVAC_FanOperatingModeModelImpl.java
URL: http://svn.apache.org/viewvc/incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/hvac/impl/HVAC_FanOperatingModeModelImpl.java?view=auto&rev=533875
==============================================================================
--- incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/hvac/impl/HVAC_FanOperatingModeModelImpl.java (added)
+++ incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/hvac/impl/HVAC_FanOperatingModeModelImpl.java Mon Apr 30 16:15:05 2007
@@ -0,0 +1,102 @@
+
+/*
+__BANNER__
+*/
+// this file was generated at 1-May-2007 12:59 AM by ${author}
+package org.apache.felix.upnp.devicegen.hvac.impl;
+
+import org.apache.felix.upnp.devicegen.holder.*;
+import org.apache.felix.upnp.devicegen.hvac.model.*;
+
+	
+public class HVAC_FanOperatingModeModelImpl implements HVAC_FanOperatingModeModel {		
+	
+	/**
+	 * This method is "add description here"	
+ * newMode in  parameter
+
+
+	 */
+	public void setMode(
+		java.lang.String newMode
+	) {
+		// TODO
+	
+	}
+
+
+	/**
+	 * This method is "add description here"	
+ * currentMode out  parameter
+
+
+	 */
+	public void getMode(
+		StringHolder currentMode
+	) {
+		// TODO
+	
+	}
+
+
+	/**
+	 * This method is "add description here"	
+ * currentStatus out  parameter
+
+
+	 */
+	public void getFanStatus(
+		StringHolder currentStatus
+	) {
+		// TODO
+	
+	}
+
+
+	/**
+	 * This method is "add description here"	
+ * currentName out  parameter
+
+
+	 */
+	public void getName(
+		StringHolder currentName
+	) {
+		// TODO
+	
+	}
+
+
+	/**
+	 * This method is "add description here"	
+ * newName in  parameter
+
+
+	 */
+	public void setName(
+		java.lang.String newName
+	) {
+		// TODO
+	
+	}
+
+	
+
+	// Those getters are used for the first notification just after a subscription
+	
+		public java.lang.String getModeStateVariableValue(){
+			// TODO
+			return null;
+		}		
+		
+		public java.lang.String getFanStatusStateVariableValue(){
+			// TODO
+			return null;
+		}		
+		
+		public java.lang.String getNameStateVariableValue(){
+			// TODO
+			return null;
+		}		
+			
+}

Propchange: incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/hvac/impl/HVAC_FanOperatingModeModelImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/hvac/impl/HVAC_SetpointScheduleModelImpl.java
URL: http://svn.apache.org/viewvc/incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/hvac/impl/HVAC_SetpointScheduleModelImpl.java?view=auto&rev=533875
==============================================================================
--- incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/hvac/impl/HVAC_SetpointScheduleModelImpl.java (added)
+++ incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/hvac/impl/HVAC_SetpointScheduleModelImpl.java Mon Apr 30 16:15:05 2007
@@ -0,0 +1,70 @@
+
+/*
+__BANNER__
+*/
+// this file was generated at 1-May-2007 12:59 AM by ${author}
+package org.apache.felix.upnp.devicegen.hvac.impl;
+
+import org.apache.felix.upnp.devicegen.holder.*;
+import org.apache.felix.upnp.devicegen.hvac.model.*;
+
+	
+public class HVAC_SetpointScheduleModelImpl implements HVAC_SetpointScheduleModel {		
+	
+	/**
+	 * This method is "add description here"	
+ * submittedDayOfWeek in  parameter
+
+ * submittedEventName in  parameter
+
+ * newStartTime in  parameter
+
+ * newHeatingSetpoint in  parameter
+
+ * newCoolingSetpoint in  parameter
+
+
+	 */
+	public void setEventParameters(
+		java.lang.String submittedDayOfWeek,
+
+java.lang.String submittedEventName,
+
+int newStartTime,
+
+int newHeatingSetpoint,
+
+int newCoolingSetpoint
+	) {
+		// TODO
+	
+	}
+
+
+	/**
+	 * This method is "add description here"	
+ * submittedDayOfWeek in  parameter
+
+ * currentEventsPerDay out  parameter
+
+
+	 */
+	public void getEventsPerDay(
+		java.lang.String submittedDayOfWeek,
+
+StringHolder currentEventsPerDay
+	) {
+		// TODO
+	
+	}
+
+	
+
+	// Those getters are used for the first notification just after a subscription
+	
+		public java.lang.String getEventsPerDayStateVariableValue(){
+			// TODO
+			return null;
+		}		
+			
+}

Propchange: incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/hvac/impl/HVAC_SetpointScheduleModelImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/hvac/impl/HVAC_UserOperatingModeModelImpl.java
URL: http://svn.apache.org/viewvc/incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/hvac/impl/HVAC_UserOperatingModeModelImpl.java?view=auto&rev=533875
==============================================================================
--- incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/hvac/impl/HVAC_UserOperatingModeModelImpl.java (added)
+++ incubator/felix/sandbox/donsez/upnp.devicegen/src/main/java/org/apache/felix/upnp/devicegen/hvac/impl/HVAC_UserOperatingModeModelImpl.java Mon Apr 30 16:15:05 2007
@@ -0,0 +1,102 @@
+
+/*
+__BANNER__
+*/
+// this file was generated at 1-May-2007 12:59 AM by ${author}
+package org.apache.felix.upnp.devicegen.hvac.impl;
+
+import org.apache.felix.upnp.devicegen.holder.*;
+import org.apache.felix.upnp.devicegen.hvac.model.*;
+
+	
+public class HVAC_UserOperatingModeModelImpl implements HVAC_UserOperatingModeModel {		
+	
+	/**
+	 * This method is "add description here"	
+ * newModeTarget in  parameter
+
+
+	 */
+	public void setModeTarget(
+		java.lang.String newModeTarget
+	) {
+		// TODO
+	
+	}
+
+
+	/**
+	 * This method is "add description here"	
+ * currentModeTarget out  parameter
+
+
+	 */
+	public void getModeTarget(
+		StringHolder currentModeTarget
+	) {
+		// TODO
+	
+	}
+
+
+	/**
+	 * This method is "add description here"	
+ * currentModeStatus out  parameter
+
+
+	 */
+	public void getModeStatus(
+		StringHolder currentModeStatus
+	) {
+		// TODO
+	
+	}
+
+
+	/**
+	 * This method is "add description here"	
+ * currentName out  parameter
+
+
+	 */
+	public void getName(
+		StringHolder currentName
+	) {
+		// TODO
+	
+	}
+
+
+	/**
+	 * This method is "add description here"	
+ * newName in  parameter
+
+
+	 */
+	public void setName(
+		java.lang.String newName
+	) {
+		// TODO
+	
+	}
+
+	
+
+	// Those getters are used for the first notification just after a subscription
+	
+		public java.lang.String getModeTargetStateVariableValue(){
+			// TODO
+			return null;
+		}		
+		
+		public java.lang.String getModeStatusStateVariableValue(){
+			// TODO
+			return null;
+		}		
+		
+		public java.lang.String getNameStateVariableValue(){
+			// TODO
+			return null;
+		}		
+			
+}