50
50
* @author Tanguy Soto
51
51
*/
52
52
public class OBSWParameterManager {
53
- /**
54
- * The logger
55
- */
56
- private static final Logger LOGGER = Logger .getLogger (OBSWParameterManager .class .getName ());
57
-
58
- /**
59
- * Default OBSW parameter report interval (seconds)
60
- */
61
- private static final int DEFAULT_REPORT_INTERVAL = 5 ;
62
-
63
- /**
64
- * Helper to read the OBSW parameter from datapool.
65
- */
66
- private final ParameterLister parameterLister ;
67
-
68
- /**
69
- * Maps each parameter proxy (object instance id of the ParameterIdentity in the supervisor) to
70
- * the OBSW parameter it represents.
71
- */
72
- private Map <Long , OBSWParameter > proxyIdsToOBSWParams ;
73
-
74
- /**
75
- * Provides the OBSW parameter values
76
- */
77
- private OBSWParameterValuesProvider valuesProvider ;
78
-
79
- public OBSWParameterManager (InputStream datapool )
80
- throws IOException , JAXBException , XMLStreamException {
81
- // Read from provided inputstreams
82
- parameterLister = new ParameterLister (datapool );
83
-
84
- // Initialize the parameters proxies to OBSW parameter maps
85
- proxyIdsToOBSWParams = new HashMap <>();
86
-
87
- // Instantiate the value provider
88
- HashMap <Identifier , OBSWParameter > parameterMap = parameterLister .getParameters ();
89
- String defaultClass = "esa.mo.nmf.nanosatmosupervisor.parameter.DummyValuesProvider" ;
90
- String valuesProviderClass = System .getProperty ("nmf.supervisor.parameter.valuesprovider.impl" , defaultClass );
91
-
92
- try {
93
- Constructor <?> c = Class .forName (valuesProviderClass ).getConstructor (parameterMap .getClass ());
94
- valuesProvider = (OBSWParameterValuesProvider ) c .newInstance (new Object [] {parameterMap });
95
- } catch (Exception e ) {
96
- LOGGER .log (Level .SEVERE ,
97
- "Error initializing the values provider. Using dummy values provider." , e );
98
- valuesProvider = new DummyValuesProvider (parameterMap );
53
+
54
+ /**
55
+ * The logger
56
+ */
57
+ private static final Logger LOGGER = Logger .getLogger (OBSWParameterManager .class .getName ());
58
+
59
+ /**
60
+ * Default OBSW parameter report interval (seconds)
61
+ */
62
+ private static final int DEFAULT_REPORT_INTERVAL = 5 ;
63
+
64
+ /**
65
+ * Helper to read the OBSW parameter from datapool.
66
+ */
67
+ private final ParameterLister parameterLister ;
68
+
69
+ /**
70
+ * Maps each parameter proxy (object instance id of the ParameterIdentity in
71
+ * the supervisor) to the OBSW parameter it represents.
72
+ */
73
+ private Map <Long , OBSWParameter > proxyIdsToOBSWParams ;
74
+
75
+ /**
76
+ * Provides the OBSW parameter values
77
+ */
78
+ private OBSWParameterValuesProvider valuesProvider ;
79
+
80
+ public OBSWParameterManager (InputStream datapool )
81
+ throws IOException , JAXBException , XMLStreamException {
82
+ // Read from provided inputstreams
83
+ parameterLister = new ParameterLister (datapool );
84
+
85
+ // Initialize the parameters proxies to OBSW parameter maps
86
+ proxyIdsToOBSWParams = new HashMap <>();
87
+
88
+ // Instantiate the value provider
89
+ HashMap <Identifier , OBSWParameter > parameterMap = parameterLister .getParameters ();
90
+ String defaultClass = "esa.mo.nmf.nanosatmosupervisor.parameter.DummyValuesProvider" ;
91
+ String valuesProviderClass = System .getProperty ("nmf.supervisor.parameter.valuesprovider.impl" , defaultClass );
92
+
93
+ try {
94
+ Constructor <?> c = Class .forName (valuesProviderClass ).getConstructor (parameterMap .getClass ());
95
+ valuesProvider = (OBSWParameterValuesProvider ) c .newInstance (new Object []{parameterMap });
96
+ } catch (Exception e ) {
97
+ LOGGER .log (Level .SEVERE ,
98
+ "Error initializing the values provider. Using dummy values provider." , e );
99
+ valuesProvider = new DummyValuesProvider (parameterMap );
100
+ }
99
101
}
100
102
101
103
/**
102
- * Registers proxies for the OBSW parameters using the provided registration object.
104
+ * Registers proxies for the OBSW parameters using the provided registration
105
+ * object.
103
106
*
104
107
* @param registrationObject The registration object
105
108
*/
106
109
public void registerParametersProxies (MCRegistration registrationObject ) {
107
110
// Sort parameters by id
108
- List <OBSWParameter > parameters = new ArrayList <>(parameterLister .getParameters ().values ());
111
+ List <OBSWParameter > parameters
112
+ = new ArrayList <>(parameterLister .getParameters ().values ());
109
113
parameters .sort (Comparator .comparing (OBSWParameter ::getId ));
110
114
111
115
// Create the parameter proxies definitions
112
116
ParameterDefinitionDetailsList paramDefs = new ParameterDefinitionDetailsList ();
113
117
IdentifierList paramIdentifiers = new IdentifierList ();
114
118
115
119
for (OBSWParameter param : parameters ) {
116
- paramDefs .add (new ParameterDefinitionDetails (param .getDescription (), HelperAttributes
117
- .attributeName2typeShortForm (param .getType ()).byteValue (), "" , false , new Duration (
118
- DEFAULT_REPORT_INTERVAL ), null , null ));
120
+ paramDefs .add (new ParameterDefinitionDetails (param .getDescription (),
121
+ HelperAttributes .attributeName2typeShortForm (param .getType ()).byteValue (), "" , false ,
122
+ new Duration ( DEFAULT_REPORT_INTERVAL ), null , null ));
119
123
paramIdentifiers .add (new Identifier (param .getName ()));
120
124
}
121
125
122
126
// Register the parameter proxies
123
127
LongList proxyIds = registrationObject .registerParameters (paramIdentifiers , paramDefs );
124
128
if (proxyIds == null || proxyIds .size () != parameters .size ()) {
125
129
LOGGER .log (Level .SEVERE ,
126
- "Error while registering OBSW parameters proxies: returned IDs are null or some are missing" );
130
+ "Error while registering OBSW parameters proxies: returned IDs are null or some are missing" );
127
131
return ;
128
132
}
129
133
for (int i = 0 ; i < proxyIds .size (); i ++) {
@@ -133,30 +137,32 @@ public void registerParametersProxies(MCRegistration registrationObject) {
133
137
134
138
/**
135
139
* Returns a value for a given OBSW parameter proxy.
136
- *
140
+ *
137
141
* @param parameterID ID of the parameter proxy
138
142
* @return The value
139
143
*/
140
144
public Attribute getValue (Long parameterID ) {
141
- Identifier obswParamIdentifier = new Identifier (proxyIdsToOBSWParams .get (parameterID ).getName ());
145
+ Identifier obswParamIdentifier
146
+ = new Identifier (proxyIdsToOBSWParams .get (parameterID ).getName ());
142
147
return getValue (obswParamIdentifier );
143
148
}
144
149
145
150
/**
146
151
* Sets a new value to a given OBSW parameter.
147
- *
152
+ *
148
153
* @param newRawValue the new value
149
154
* @return true if parameter is set, false otherwise.
150
155
*/
151
156
public Boolean setValue (ParameterRawValue newRawValue ) {
152
- Identifier obswParamIdentifier = new Identifier ( proxyIdsToOBSWParams . get ( newRawValue . getParamInstId ())
153
- .getName ());
157
+ Identifier obswParamIdentifier
158
+ = new Identifier ( proxyIdsToOBSWParams . get ( newRawValue . getParamInstId ()) .getName ());
154
159
return setValue (newRawValue .getRawValue (), obswParamIdentifier );
155
160
}
156
161
157
162
/**
158
163
* @param parameterID The parameter ID to test
159
- * @return true if the ID corresponds to one of the parameter proxies registered by this class
164
+ * @return true if the ID corresponds to one of the parameter proxies
165
+ * registered by this class
160
166
*/
161
167
public boolean isOBSWParameterProxy (Long parameterID ) {
162
168
return proxyIdsToOBSWParams .containsKey (parameterID );
@@ -174,7 +180,7 @@ private Attribute getValue(Identifier identifier) {
174
180
175
181
/**
176
182
* Sets a new value for the given OBSW parameter name.
177
- *
183
+ *
178
184
* @param rawValue The new value of the parameter
179
185
* @param identifier Name of the parameter
180
186
* @return True if parameter is set, false otherwise.
0 commit comments