@Override public Future<ActionFuture> setActivationState(final ActivationState activationState, final UnitType unitType) throws CouldNotPerformException { ActionDescription.Builder actionDescription = ActionDescriptionProcessor.getActionDescription(ActionAuthority.getDefaultInstance(), ResourceAllocation.Initiator.SYSTEM); ServiceStateDescription.Builder serviceStateDescription = actionDescription.getServiceStateDescriptionBuilder(); serviceStateDescription.setUnitType(unitType); try { return applyAction(Services.updateActionDescription(actionDescription, activationState, getServiceType()).build()); } catch (InterruptedException ex) { Thread.currentThread().interrupt(); throw new CouldNotPerformException("Could not set activationState", ex); } } }
protected ActionDescription.Builder updateActionDescription(final ActionDescription.Builder actionDescription) throws CouldNotPerformException { ServiceStateDescription.Builder serviceStateDescription = actionDescription.getServiceStateDescriptionBuilder(); serviceStateDescription.setUnitId(getId()); actionDescription.setDescription(actionDescription.getDescription().replace(ActionDescriptionProcessor.LABEL_KEY, getLabel())); //TODO: update USER key with authentication, should not be needed anymore in release 2.0 because the location remote // should use the applyAction method of the AbstractUnitRemote which does it. actionDescription.setLabel(actionDescription.getLabel().replace(ActionDescriptionProcessor.LABEL_KEY, getLabel())); return actionDescription; }
serviceStateDescription.setUnitType(actionParameter.getUnitType());
ResourceAllocation.Builder resourceAllocation = actionDescription.getResourceAllocationBuilder(); serviceStateDescription.setUnitId(getId()); resourceAllocation.addResourceIds(ScopeGenerator.generateStringRep(getScope()));
for (ServiceDescription serviceDescription : getUnitTemplate().getServiceDescriptionList()) { try { ServiceStateDescription.Builder serviceStateDescription = ServiceStateDescription.newBuilder().setServiceType(serviceDescription.getType()).setUnitId(getId()); serviceStateDescription.setServiceAttribute(serviceJSonProcessor.serialize(serviceAttribute)); } catch (InvalidStateException ex) { serviceStateDescription.setUnitId(getId()); serviceStateDescription.setUnitType(getUnitTemplate().getType()); serviceStateDescription.setServiceType(serviceDescription.getType()); serviceStateDescription.setServiceAttributeType(serviceJSonProcessor.getServiceAttributeType(serviceAttribute)); snapshotBuilder.addServiceStateDescription(serviceStateDescription.build()); } catch (CouldNotPerformException | ClassCastException ex) { exceptionStack = MultiException.push(this, ex, exceptionStack);
ServiceJSonProcessor jSonProcessor = new ServiceJSonProcessor(); serviceStateDescription.setServiceAttribute(jSonProcessor.serialize(serviceAttribute)); serviceStateDescription.setServiceAttributeType(jSonProcessor.getServiceAttributeType(serviceAttribute)); serviceStateDescription.setServiceType(serviceType);
serviceStateDescription.setUnitId(unitRemote.getId().toString()); serviceStateDescription.setUnitType(unitType);
private ActionDescription updateActionDescriptionForUnit(ActionDescription actionDescription, UnitRemote unitRemote) throws CouldNotPerformException { // create new builder and copy fields ActionDescription.Builder unitActionDescription = ActionDescription.newBuilder(actionDescription); // get a new resource allocation id ActionDescriptionProcessor.updateResourceAllocationId(unitActionDescription); // update the action chain ActionDescriptionProcessor.updateActionChain(unitActionDescription, actionDescription); // resource ids should only contain that unit ResourceAllocation.Builder unitResourceAllocation = unitActionDescription.getResourceAllocationBuilder(); unitResourceAllocation.clearResourceIds(); unitResourceAllocation.addResourceIds(ScopeGenerator.generateStringRep(unitRemote.getScope())); // update the id in the serviceStateDescription to that of the unit ServiceStateDescription.Builder serviceStateDescription = unitActionDescription.getServiceStateDescriptionBuilder(); serviceStateDescription.setUnitId((String) unitRemote.getId()); return unitActionDescription.build(); }
public Consumer(final UnitController<?,?> unitController) { this.active = false; this.serviceStateObserver = (Observer) (final Observable source, final Object data) -> { try { ActionDescription responsibleAction = Services.getResponsibleAction(((GeneratedMessage) data)); // build consumer action out of responsible action ActionDescription.Builder consumerActionBuilder = responsibleAction.toBuilder(); consumerActionBuilder.getServiceStateDescriptionBuilder().setUnitId(unitController.getId()); consumerActionBuilder.getServiceStateDescriptionBuilder().setUnitType(unitController.getUnitType()); // apply new action unitController.applyAction(consumerActionBuilder.build()); } catch (CouldNotPerformException ex) { ExceptionPrinter.printHistory("Could not consume update!", ex, LOGGER); } }; }
@Override public Future<ActionFutureType.ActionFuture> setEmphasisState(EmphasisState emphasisState, UnitType unitType) throws CouldNotPerformException { ActionDescription.Builder actionDescription = ActionDescriptionProcessor.getActionDescription(ActionAuthority.getDefaultInstance(), ResourceAllocation.Initiator.SYSTEM); ServiceStateDescription.Builder serviceStateDescription = actionDescription.getServiceStateDescriptionBuilder(); serviceStateDescription.setUnitType(unitType); try { return applyAction(Services.updateActionDescription(actionDescription, emphasisState, getServiceType()).build()); } catch (InterruptedException ex) { Thread.currentThread().interrupt(); throw new CouldNotPerformException("Could not set brightnessState", ex); } }
@Override public Future<ActionFuture> setColorState(final ColorState colorState, final UnitType unitType) throws CouldNotPerformException { ActionDescription.Builder actionDescription = ActionDescriptionProcessor.getActionDescription(ActionAuthority.getDefaultInstance(), ResourceAllocation.Initiator.SYSTEM); ServiceStateDescription.Builder serviceStateDescription = actionDescription.getServiceStateDescriptionBuilder(); serviceStateDescription.setUnitType(unitType); try { return applyAction(Services.updateActionDescription(actionDescription, colorState, getServiceType()).build()); } catch (InterruptedException ex) { Thread.currentThread().interrupt(); throw new CouldNotPerformException("Could not set colorState", ex); } }
@Override public Future<ActionFuture> setTargetTemperatureState(final TemperatureState temperatureState, final UnitType unitType) throws CouldNotPerformException { ActionDescription.Builder actionDescription = ActionDescriptionProcessor.getActionDescription(ActionAuthority.getDefaultInstance(), ResourceAllocation.Initiator.SYSTEM); ServiceStateDescription.Builder serviceStateDescription = actionDescription.getServiceStateDescriptionBuilder(); serviceStateDescription.setUnitType(unitType); try { return applyAction(Services.updateActionDescription(actionDescription, temperatureState, getServiceType()).build()); } catch (InterruptedException ex) { Thread.currentThread().interrupt(); throw new CouldNotPerformException("Could not set temperatureState", ex); } }
@Override public Future<ActionFuture> setBrightnessState(final BrightnessState brightnessState, final UnitType unitType) throws CouldNotPerformException { ActionDescription.Builder actionDescription = ActionDescriptionProcessor.getActionDescription(ActionAuthority.getDefaultInstance(), ResourceAllocation.Initiator.SYSTEM); ServiceStateDescription.Builder serviceStateDescription = actionDescription.getServiceStateDescriptionBuilder(); serviceStateDescription.setUnitType(unitType); try { return applyAction(Services.updateActionDescription(actionDescription, brightnessState, getServiceType()).build()); } catch (InterruptedException ex) { Thread.currentThread().interrupt(); throw new CouldNotPerformException("Could not set brightnessState", ex); } }
@Override public Future<ActionFuture> setBlindState(final BlindState blindState, final UnitType unitType) throws CouldNotPerformException { ActionDescription.Builder actionDescription = ActionDescriptionProcessor.getActionDescription(ActionAuthority.getDefaultInstance(), ResourceAllocation.Initiator.SYSTEM); ServiceStateDescription.Builder serviceStateDescription = actionDescription.getServiceStateDescriptionBuilder(); serviceStateDescription.setUnitType(unitType); try { return applyAction(Services.updateActionDescription(actionDescription, blindState, getServiceType()).build()); } catch (InterruptedException ex) { Thread.currentThread().interrupt(); throw new CouldNotPerformException("Could not set blindState", ex); } } }
@Override public Future<ActionFuture> setPowerState(final PowerState powerState, final UnitType unitType) throws CouldNotPerformException { ActionDescription.Builder actionDescription = ActionDescriptionProcessor.getActionDescription(ActionAuthority.getDefaultInstance(), ResourceAllocation.Initiator.SYSTEM); ServiceStateDescription.Builder serviceStateDescription = actionDescription.getServiceStateDescriptionBuilder(); serviceStateDescription.setUnitType(unitType); try { return applyAction(Services.updateActionDescription(actionDescription, powerState, getServiceType()).build()); } catch (InterruptedException ex) { Thread.currentThread().interrupt(); throw new CouldNotPerformException("Could not set powerState", ex); } }
@Override public Future<ActionFuture> setStandbyState(final StandbyState standbyState, final UnitType unitType) throws CouldNotPerformException { ActionDescription.Builder actionDescription = ActionDescriptionProcessor.getActionDescription(ActionAuthority.getDefaultInstance(), ResourceAllocation.Initiator.SYSTEM); ServiceStateDescription.Builder serviceStateDescription = actionDescription.getServiceStateDescriptionBuilder(); serviceStateDescription.setUnitType(unitType); try { return applyAction(Services.updateActionDescription(actionDescription, standbyState, getServiceType()).build()); } catch (InterruptedException ex) { Thread.currentThread().interrupt(); throw new CouldNotPerformException("Could not set standbyState", ex); } }