@Override public void processData(final String id, final IdentifiableMessage<String, UnitConfig, UnitConfig.Builder> entry, final ProtoBufMessageMap<String, UnitConfig, UnitConfig.Builder> entryMap, final ProtoBufRegistry<String, UnitConfig, UnitConfig.Builder> registry) throws CouldNotPerformException, EntryModification { AgentConfig agentConfig = entry.getMessage().getAgentConfig(); if (!agentConfig.hasAgentClassId() || agentConfig.getAgentClassId().isEmpty()) { throw new NotAvailableException("agentclass.id"); } // get throws a CouldNotPerformException if the agent class with the id does not exists agentClassRegistry.get(agentConfig.getAgentClassId()); } }
if (registry.tryLockRegistry()) {
private void unlockInternalRegistries() { assert lock.isWriteLockedByCurrentThread(); // unlock all internal registries lockedRegistries.forEach((registry) -> { registry.unlockRegistry(); }); // clear list lockedRegistries.clear(); // unlock this controller lock.writeLock().unlock(); }
@Override public void processData(final String id, final IdentifiableMessage<String, UnitConfig, UnitConfig.Builder> entry, final ProtoBufMessageMap<String, UnitConfig, UnitConfig.Builder> entryMap, final ProtoBufRegistry<String, UnitConfig, UnitConfig.Builder> registry) throws CouldNotPerformException, EntryModification { AppConfig appConfig = entry.getMessage().getAppConfig(); if (!appConfig.hasAppClassId() || appConfig.getAppClassId().isEmpty()) { throw new NotAvailableException("appclass.id"); } // get throws a CouldNotPerformException if the agent class with the id does not exists appClassRegistry.get(appConfig.getAppClassId()); } }
@Override public void processData(final String id, final IdentifiableMessage<String, UnitConfig, UnitConfig.Builder> entry, final ProtoBufMessageMap<String, UnitConfig, UnitConfig.Builder> entryMap, final ProtoBufRegistry<String, UnitConfig, UnitConfig.Builder> registry) throws CouldNotPerformException, EntryModification { UnitConfig unitConfig = entry.getMessage(); DeviceConfig deviceConfig = unitConfig.getDeviceConfig(); if (!deviceConfig.hasDeviceClassId()) { throw new NotAvailableException("deviceclass"); } if (!deviceConfig.hasDeviceClassId() || deviceConfig.getDeviceClassId().isEmpty()) { throw new NotAvailableException("deviceclass.id"); } // get throws a CouldNotPerformException if the device class with the id does not exists deviceClassRegistry.get(deviceConfig.getDeviceClassId()); } }
@Override public void processData(String id, IdentifiableMessage<String, UnitConfig, UnitConfig.Builder> entry, ProtoBufMessageMap<String, UnitConfig, UnitConfig.Builder> entryMap, ProtoBufRegistry<String, UnitConfig, UnitConfig.Builder> registry) throws CouldNotPerformException, EntryModification { UnitConfig.Builder deviceUnitConfig = entry.getMessage().toBuilder(); boolean modification = false; final DeviceClassType.DeviceClass deviceClass = deviceClassRegistry.get(deviceUnitConfig.getDeviceConfig().getDeviceClassId()).getMessage(); // Setup default bounding if (!deviceUnitConfig.hasBoundToUnitHost()) { deviceUnitConfig.setBoundToUnitHost(!DeviceConfigUtils.checkDuplicatedUnitType(deviceUnitConfig, deviceClass, registry)); modification = true; } if (modification) { throw new EntryModification(entry.setMessage(deviceUnitConfig), this); } } }
@Override public void processData(final String id, final IdentifiableMessage<String, UnitConfig, UnitConfig.Builder> entry, ProtoBufMessageMap<String, UnitConfig, UnitConfig.Builder> entryMap, final ProtoBufRegistry<String, UnitConfig, UnitConfig.Builder> registry) throws CouldNotPerformException, EntryModification { UnitConfig appUnitConfig = entry.getMessage(); if (!appUnitConfig.hasPlacementConfig()) { throw new NotAvailableException("agent.placementConfig"); } if (!appUnitConfig.getPlacementConfig().hasLocationId() || appUnitConfig.getPlacementConfig().getLocationId().isEmpty()) { throw new NotAvailableException("app.placementConfig.locationId"); } if (!appUnitConfig.getAppConfig().hasAppClassId() || appUnitConfig.getAppConfig().getAppClassId().isEmpty()) { throw new NotAvailableException("app.appClassId"); } Scope newScope = ScopeGenerator.generateAppScope(appUnitConfig, appClassRegistry.get(appUnitConfig.getAppConfig().getAppClassId()).getMessage(), locationRegistry.getMessage(appUnitConfig.getPlacementConfig().getLocationId())); // verify and update scope if (!ScopeGenerator.generateStringRep(appUnitConfig.getScope()).equals(ScopeGenerator.generateStringRep(newScope))) { if (appMap.containsKey(ScopeGenerator.generateStringRep(newScope))) { throw new InvalidStateException("Two apps [" + appUnitConfig + "][" + appMap.get(ScopeGenerator.generateStringRep(newScope)) + "] are registered with the same label and location"); } else { appMap.put(ScopeGenerator.generateStringRep(newScope), appUnitConfig); entry.setMessage(appUnitConfig.toBuilder().setScope(newScope)); throw new EntryModification(entry, this); } } }
@Override public void processData(String id, IdentifiableMessage<String, UnitConfig, UnitConfig.Builder> entry, ProtoBufMessageMap<String, UnitConfig, UnitConfig.Builder> entryMap, ProtoBufRegistry<String, UnitConfig, UnitConfig.Builder> registry) throws CouldNotPerformException, EntryModification { UnitConfig agentUnitConfig = entry.getMessage(); if (!agentUnitConfig.hasPlacementConfig()) { throw new NotAvailableException("agent.placementConfig"); } if (!agentUnitConfig.getPlacementConfig().hasLocationId() || agentUnitConfig.getPlacementConfig().getLocationId().isEmpty()) { throw new NotAvailableException("agent.placementConfig.locationId"); } if (!agentUnitConfig.getAgentConfig().hasAgentClassId() || agentUnitConfig.getAgentConfig().getAgentClassId().isEmpty()) { throw new NotAvailableException("agent.agentClassId"); } Scope newScope = ScopeGenerator.generateAgentScope(agentUnitConfig, agentClassRegistry.get(agentUnitConfig.getAgentConfig().getAgentClassId()).getMessage(), locationRegistry.getMessage(agentUnitConfig.getPlacementConfig().getLocationId())); // verify and update scope if (!ScopeGenerator.generateStringRep(agentUnitConfig.getScope()).equals(ScopeGenerator.generateStringRep(newScope))) { if (agentMap.containsKey(ScopeGenerator.generateStringRep(newScope))) { throw new InvalidStateException("Two agents [" + agentUnitConfig + "][" + agentMap.get(ScopeGenerator.generateStringRep(newScope)) + "] are registered with the same label and location"); } else { agentMap.put(ScopeGenerator.generateStringRep(newScope), agentUnitConfig); entry.setMessage(agentUnitConfig.toBuilder().setScope(newScope)); throw new EntryModification(entry, this); } } }
@Override public String generateDefaultLabel(final UnitConfig unitConfig) throws CouldNotPerformException { try { if (unitConfig == null) { throw new NotAvailableException("UnitConfig"); } if (!unitConfig.hasDeviceConfig()) { throw new NotAvailableException("UnitConfig.DeviceConfig"); } if (!unitConfig.getDeviceConfig().hasDeviceClassId() || unitConfig.getDeviceConfig().getDeviceClassId().isEmpty()) { throw new NotAvailableException("UnitConfig.DeviceConfig.DeviceClass"); } final DeviceClass deviceClass = deviceClassRegistry.get(unitConfig.getDeviceConfig().getDeviceClassId()).getMessage(); return deviceClass.getCompany() + " " + deviceClass.getLabel() + " " + super.generateDefaultLabel(unitConfig); } catch (CouldNotPerformException ex) { throw new CouldNotPerformException("Could not generate unit label!", ex); } } }
DeviceClass deviceClass = deviceClassRegistry.get(hostUnitConfig.getDeviceConfig().getDeviceClassId()).getMessage();
DeviceClass deviceClass = deviceClassRegistry.get(deviceConfig.getDeviceClassId()).getMessage(); List<UnitConfig> unitConfigs = new ArrayList<>(); for (String unitId : deviceConfig.getUnitIdList()) {
throw new NotAvailableException("deviceConfig.deviceClassId"); DeviceClass deviceClass = deviceClassRegistry.get(deviceConfig.getDeviceClassId()).getMessage();
logger.info("Publish " + locationRegistry.get(connectionConfig.getPlacementConfig().getLocationId()).getMessage().getPlacementConfig().getTransformationFrameId() + " to " + connectionConfig.getPlacementConfig().getTransformationFrameId()); Transform transformation = PoseTransformer.transform(connectionConfig.getPlacementConfig().getPosition(), locationRegistry.get(connectionConfig.getPlacementConfig().getLocationId()).getMessage().getPlacementConfig().getTransformationFrameId(), connectionConfig.getPlacementConfig().getTransformationFrameId());
throw new NotAvailableException("deviceConfig.deviceClassId"); DeviceClass deviceClass = deviceClassRegistry.get(deviceConfig.getDeviceClassId()).getMessage();
return deviceClassRegistry.get(unitConfig.getDeviceConfig().getDeviceClassId()).getMessage().getShape();