// Path: be.iminds.iot.things.api/src/be/iminds/iot/things/api/sensor/contact/ContactSensor.java
// public interface ContactSensor extends Thing {
// 
//     public final static String STATE = "state";
// 
//     public static enum State {
//     	OPEN, CLOSED;
//     }
// 
//     public State getState();
// }
// 
// Path: be.iminds.iot.things.api/src/be/iminds/iot/things/api/sensor/contact/ContactSensor.java
// public static enum State {
// 	OPEN, CLOSED;
// }
// 
// Path: be.iminds.iot.things.dyamand.adapter/src/be/iminds/iot/things/dyamand/adapter/ServiceAdapter.java
// public interface ServiceAdapter {
// 
// 	/**
// 	 * @return the type string
// 	 */
// 	public String getType();
// 	
// 	/**
// 	 * @return The target interfaces to adapt to 
// 	 */
// 	public String[] getTargets();
// 	
// 	/**
// 	 * Translate the ServicePojo source to an object that implements all target interfaces 
// 	 * @param source The source service
// 	 * @return an object implementing all target interfaces
// 	 */
// 	public Object getServiceObject(final Object source) throws Exception;
// 	
// 	/**
// 	 * Translate a variable name and value to a new state variable
// 	 * @param variable state variable name
// 	 * @param value state variable value
// 	 * @return translated state variable
// 	 */
// 	public StateVariable translateStateVariable(final String variable,
// 		    final Object value) throws Exception;
// 	
// }
// 
// Path: be.iminds.iot.things.dyamand.adapter/src/be/iminds/iot/things/dyamand/adapter/StateVariable.java
// public class StateVariable {
// 
// 	public final String name;
// 	public final Object value;
// 
// 	public StateVariable(final String n, final Object v) {
// 		this.name = n;
// 		this.value = v;
// 	}
// 
// 	public String getName() {
// 		return this.name;
// 	}
// 
// 	public Object getValue() {
// 		return this.value;
// 	}
// }


import org.osgi.service.component.annotations.Component;
import be.iminds.iot.things.api.sensor.contact.ContactSensor;
import be.iminds.iot.things.api.sensor.contact.ContactSensor.State;
import be.iminds.iot.things.dyamand.adapter.ServiceAdapter;
import be.iminds.iot.things.dyamand.adapter.StateVariable;
import org.dyamand.sensors.security.DoorWindowContactServiceType;
	@Override
	public String[] getTargets() {
		return new String[] {
				be.iminds.iot.things.api.Thing.class.getName(),
				be.iminds.iot.things.api.sensor.contact.ContactSensor.class
						.getName() };
	}

	@Override
	public Object getServiceObject(final Object source) throws Exception {
		if (!(source instanceof org.dyamand.sensors.security.DoorWindowContact)) {
			throw new Exception("Cannot translate object!");
		}
		final ContactSensor sensor = new ContactSensor() {

			@Override
			public State getState() {
				final org.dyamand.sensors.security.DoorWindowContact c = (org.dyamand.sensors.security.DoorWindowContact) source;
				return c.isOpen() ? State.OPEN : State.CLOSED;
			}
		};
		return sensor;
	}

	@Override
	public StateVariable translateStateVariable(final String variable,
			final Object value) throws Exception {
		StateVariable translated;
		if (variable.equals(DoorWindowContactServiceType.OPEN_STATE_VAR_TYPE
				.toString())) {
// Path: be.iminds.iot.things.api/src/be/iminds/iot/things/api/sensor/contact/ContactSensor.java
// public interface ContactSensor extends Thing {
// 
//     public final static String STATE = "state";
// 
//     public static enum State {
//     	OPEN, CLOSED;
//     }
// 
//     public State getState();
// }
// 
// Path: be.iminds.iot.things.api/src/be/iminds/iot/things/api/sensor/contact/ContactSensor.java
// public static enum State {
// 	OPEN, CLOSED;
// }
// 
// Path: be.iminds.iot.things.dyamand.adapter/src/be/iminds/iot/things/dyamand/adapter/ServiceAdapter.java
// public interface ServiceAdapter {
// 
// 	/**
// 	 * @return the type string
// 	 */
// 	public String getType();
// 	
// 	/**
// 	 * @return The target interfaces to adapt to 
// 	 */
// 	public String[] getTargets();
// 	
// 	/**
// 	 * Translate the ServicePojo source to an object that implements all target interfaces 
// 	 * @param source The source service
// 	 * @return an object implementing all target interfaces
// 	 */
// 	public Object getServiceObject(final Object source) throws Exception;
// 	
// 	/**
// 	 * Translate a variable name and value to a new state variable
// 	 * @param variable state variable name
// 	 * @param value state variable value
// 	 * @return translated state variable
// 	 */
// 	public StateVariable translateStateVariable(final String variable,
// 		    final Object value) throws Exception;
// 	
// }
// 
// Path: be.iminds.iot.things.dyamand.adapter/src/be/iminds/iot/things/dyamand/adapter/StateVariable.java
// public class StateVariable {
// 
// 	public final String name;
// 	public final Object value;
// 
// 	public StateVariable(final String n, final Object v) {
// 		this.name = n;
// 		this.value = v;
// 	}
// 
// 	public String getName() {
// 		return this.name;
// 	}
// 
// 	public Object getValue() {
// 		return this.value;
// 	}
// }


// Path: be.iminds.iot.things.dyamand.adapter/src/be/iminds/iot/things/dyamand/adapters/ContactSensorAdapter.java
import org.osgi.service.component.annotations.Component;
import be.iminds.iot.things.api.sensor.contact.ContactSensor;
import be.iminds.iot.things.api.sensor.contact.ContactSensor.State;
import be.iminds.iot.things.dyamand.adapter.ServiceAdapter;
import be.iminds.iot.things.dyamand.adapter.StateVariable;
import org.dyamand.sensors.security.DoorWindowContactServiceType;

	@Override
	public String[] getTargets() {
		return new String[] {
				be.iminds.iot.things.api.Thing.class.getName(),
				be.iminds.iot.things.api.sensor.contact.ContactSensor.class
						.getName() };
	}

	@Override
	public Object getServiceObject(final Object source) throws Exception {
		if (!(source instanceof org.dyamand.sensors.security.DoorWindowContact)) {
			throw new Exception("Cannot translate object!");
		}
		final ContactSensor sensor = new ContactSensor() {

			@Override
			public State getState() {
				final org.dyamand.sensors.security.DoorWindowContact c = (org.dyamand.sensors.security.DoorWindowContact) source;
				return c.isOpen() ? State.OPEN : State.CLOSED;
			}
		};
		return sensor;
	}

	@Override
	public StateVariable translateStateVariable(final String variable,
			final Object value) throws Exception {
		StateVariable translated;
		if (variable.equals(DoorWindowContactServiceType.OPEN_STATE_VAR_TYPE
				.toString())) {
			final boolean open = (Boolean) value;