- params.subcomponentHighLevelStates.forEach(this::addSubcomponentHighLevelState);
- params.atomicHighLevelStates.forEach(this::addAtomicHighLevelState);
+ if (params != null)
+ {
+ params.subcomponentHighLevelStates.forEach(this::addSubcomponentHighLevelState);
+ params.atomicHighLevelStates.forEach(this::addAtomicHighLevelState);
+ }
+ }
+
+ public SubcomponentHighLevelStateHandler addSubcomponentHighLevelState(String subcomponentStateID,
+ SubcomponentHighLevelStateHandlerParams handlerParams)
+ {
+ return addSubcomponentHighLevelState(subcomponentStateID,
+ StandardHighLevelStateHandlerSnippetSuppliers.subcomponentHandlerSupplier.getSnippetSupplier(handlerParams.id)::create,
+ handlerParams.params);
+ }
+
+ public <P, H extends SubcomponentHighLevelStateHandler> H addSubcomponentHighLevelState(String subcomponentStateID,
+ BiFunction<HighLevelStateHandlerContext, P, H> handlerConstructor, P handlerParams)
+ {
+ return addSubcomponentHighLevelState(subcomponentStateID, c -> handlerConstructor.apply(c, handlerParams));