View Javadoc

1   /*
2   Copyright (C) 2007 Dirk Huenniger
3   
4   This library is free software; you can redistribute it and/or
5   modify it under the terms of the GNU Lesser General Public
6   License as published by the Free Software Foundation; either
7   version 2.1 of the License, or (at your option) any later version.
8   
9   This library is distributed in the hope that it will be useful,
10  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  Lesser General Public License for more details.
13  
14  You should have received a copy of the GNU Lesser General Public
15  License along with this library; if not, write to the Free Software
16  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
17   */
18  
19  package org.indi.objects;
20  
21  /**
22   * An implementation of the light element as defined by the indi standard
23   * 
24   * @author Dirk Hünniger
25   * 
26   */
27  public class Light extends Element {
28      /**
29       * 
30       */
31      private static final long serialVersionUID = 1L;
32  
33      /**
34       * class constuctor
35       * 
36       * @param name
37       *                the name of the light (unique identyfier)
38       * @param label
39       *                the label of the light (to be used by the GUI)
40       * @param state
41       *                the state the light is initially in
42       */
43      public Light(String name, String label, State state) {
44  	super(name, label, stateToString(state));
45      }
46  
47      /**
48       * class constuctor
49       * 
50       * @param name
51       *                the name of the light (unique identyfier)
52       * @param label
53       *                the label of the light (to be used by the GUI)
54       */
55      public Light(String name, String value) {
56  	super(name, null, value);
57  	if (value.equals("Idle")) {
58  	    return;
59  	}
60  	if (value.equals("Ok")) {
61  	    return;
62  	}
63  	if (value.equals("Busy")) {
64  	    return;
65  	}
66  	if (value.equals("Alert")) {
67  	    return;
68  	}
69  	throw new BadValueException(value);
70      }
71  
72      /**
73       * converts a state object to its string reprentation
74       * 
75       * @param state
76       *                the light to be converted
77       * @return the string representation of the light supplyed
78       */
79      public static String stateToString(State state) {
80  	return state == State.Idle ? "Idle" : state == State.Ok ? "Ok"
81  		: state == State.Busy ? "Busy" :
82  		/* state==Alert */"Alert";
83      }
84  
85      /**
86       * 
87       * @return the state of the light
88       */
89      public State getState() {
90  	return State.valueOf(this.value);
91      }
92  
93      @Override
94      protected String getType() {
95  	// TODO Auto-generated method stub
96  	return "Light";
97      }
98  }