View Javadoc

1   package org.ximtec.igesture.io;
2   
3   import org.ximtec.igesture.core.DefaultDataObject;
4   import org.ximtec.igesture.util.Constant;
5   
6   /**
7    * This class defines an association between a {@link org.ximtec.igesture.io.IUser} and a {@link org.ximtec.igesture.io.AbstractGestureDevice}. 
8    * Both objects are saved in the association. It extends {@link org.ximtec.igesture.core.DefaultDataObject} so the association can be serialized.
9    * It also implements the {@link org.ximtec.igesture.io.Device} interface.
10   * @author Bjorn Puype, bpuype@gmail.com
11   *
12   */
13  public class DeviceUserAssociation extends DefaultDataObject //implements Device
14  {
15  
16  	private AbstractGestureDevice<?,?> device;
17  	private IUser user;
18  	
19  	/**
20  	 * Constructor
21  	 * @param device	The device.
22  	 * @param user		The user to associate with the device.
23  	 */
24  	public DeviceUserAssociation(AbstractGestureDevice<?,?> device, IUser user)
25  	{
26  		this.device = device;
27  		this.user = user;
28  	}
29  
30  //	@Override
31  	public void connect() {
32  		device.connect();
33  	}
34  
35  //	@Override
36  	public void disconnect() {
37  		device.disconnect();
38  	}
39  
40  //	@Override
41  	public String getConnectionType() {
42  		return Constant.getConnectionTypeName(device.getConnectionType());
43  	}
44  
45  //	@Override
46  	public String getDeviceID() {
47  		return device.getDeviceID();
48  	}
49  
50  //	@Override
51  	public String getDeviceType() {
52  		return Constant.getDeviceTypeName(device.getDeviceType());
53  	}
54  
55  //	@Override
56  	public String getName() {
57  		return device.getName();
58  	}
59  
60  //	@Override
61  //	public boolean hasUniqueDeviceID() {
62  //		return device.hasUniqueDeviceID();
63  //	}
64  
65  //	@Override
66  	public boolean isConnectable() {
67  		return device.isConnectable();
68  	}
69  
70  //	@Override
71  	public boolean isDisconnectable() {
72  		return device.isDisconnectable();
73  	}
74  
75  //	@Override
76  	public void setConnectionType(String connectionType) {
77  		device.setConnectionType(Constant.getConnectionTypeValue(connectionType));
78  	}
79  
80  //	@Override
81  	public void setDeviceID(String id) {
82  		device.setDeviceID(id);
83  	}
84  
85  //	@Override
86  //	public void setDeviceType(String deviceType) {
87  //		device.setDeviceType(Constant.getTypeValue(deviceType));
88  //	}
89  
90  //	@Override
91  	public void setName(String name) {
92  		device.setName(name);
93  	}
94  
95  	/**
96  	 * Set the associated user.
97  	 * @param user	The user to associate.
98  	 */
99  	public void setUser(User user) {
100 		this.user = user;
101 	}
102 	
103 	/**
104 	 * Get a String representation of the user.
105 	 * @return String representation of the user.
106 	 */
107 	public String getUser()
108 	{
109 		return user.toString();
110 	}
111 	
112 	/**
113 	 * Get the device of this association. 
114 	 * @return The device.
115 	 */
116 	public AbstractGestureDevice<?,?> getDeviceItem()
117 	{
118 		return device;
119 	}
120 	
121 	/**
122 	 * Get the associated User.
123 	 * @return The associated user.
124 	 */
125 	public IUser getUserItem()
126 	{
127 		return user;
128 	}
129 
130 //	@Override
131 	public boolean isDefaultDevice() {
132 		return device.isDefaultDevice();
133 	}
134 
135 //	@Override
136 	public void setDefaultDevice(boolean isDefault) {
137 		device.setDefaultDevice(isDefault);
138 	}
139 
140 //	@Override
141 	public boolean isConnected() {
142 		return device.isConnected();
143 	}
144 
145 //	@Override
146 	public void setIsConnected(boolean isConnected) {
147 		device.setIsConnected(isConnected);
148 	}
149 	
150 	/**
151 	 * Check whether the device is connected or not.
152 	 * @return	True if connected, else false.
153 	 * @see isConnected()
154 	 */
155 	public boolean getConnected() {
156 		return isConnected();
157 		//for convenience, be able to use reflection.
158 	}
159 	
160 	/**
161 	 * Change the connection status of the device.
162 	 * @param isConnected The new connection status.
163 	 * @see setIsConnected(boolean)
164 	 */
165 	public void setConnected(boolean isConnected)
166 	{
167 		setIsConnected(isConnected);
168 		//for convenience, be able to use reflection.
169 	}
170 	
171 	public String toString()
172 	{
173 		return device.toString()+" - "+user.toString();
174 	}
175 
176 	/* (non-Javadoc)
177 	 * @see org.ximtec.igesture.tool.view.devicemanager.Device#getDeviceType()
178 	 */
179 //	@Override
180 	public String getDeviceClass() {
181 		return device.getDeviceClass();
182 	}
183 
184 }