protected void createForConnection ( final ItemCreator creator, final ConnectionProvider connectionProvider ) { { final CreationRequest<SourceItem> c = creator.createSelfItem ( null ); c.localTags ( "CON" ); c.dataType ( DataType.BOOLEAN ); c.customizationTags ( "input" ); c.addMasterListener ( new ConnectionMasterHandlerImpl ( NAME_FORMAT_CONNECTED, connectionProvider ) ); c.create (); } { final CreationRequest<SourceItem> c = creator.createSelfItem ( null ); c.localTags ( "STATE" ); c.dataType ( DataType.STRING ); c.customizationTags ( "input" ); c.addMasterListener ( new ConnectionMasterHandlerImpl ( NAME_FORMAT_STATE, connectionProvider ) ); c.create (); } } }
@Override public void createItems ( final ItemCreator itemCreator ) { for ( final DataComponent component : this.globalize.getComponents () ) { final Map<List<String>, ItemCreation> items = createItems ( component ); for ( final Map.Entry<List<String>, ItemCreation> entry : items.entrySet () ) { final CreationRequest<SourceItem> req = itemCreator.createImportItem ( this.globalize.getSourceMaster (), entry.getValue ().getItem ().getName () ); req.request ( entry.getValue ().getCustomizationRequest () ); req.addCustomizationTags ( "globalized" ); req.incrementGlobalizationLevel (); // override the local tags with the original local tags, not the modified ones req.localTags ( entry.getKey () ); // now create the item req.create (); } } }
/** * Create a formula item from a CreationRequest and record it for replacing * dangling references * * @param req * the creation request * @return the created formula item */ protected FormulaItem createFormulaItem ( final CreationRequest<FormulaItem> req ) { req.addMasterListener ( new MasterListener<FormulaItem> () { @Override public void setMaster ( final FormulaItem item, final MasterContext master ) { AbstractDanglingGenerator.this.danglingFormulaItemMap.put ( master.getImplementation (), item ); } } ); return req.create (); }
@Override public CreationRequest<SourceItem> createSelfItem ( final String sourceName ) { final CreationRequest<SourceItem> req = createSourceItem ( null, sourceName ); req.addMasterListener ( new MasterListener<SourceItem> () { @Override public void setMaster ( final SourceItem item, final MasterContext master ) { Helper.setSourceConnectionFromEndpoints ( item, master.getImplementation (), Locator.getSelfEndpoints ( master.getImplementation () ) ); } } ); return req; }
protected void processGroup ( final MasterServer app, final SummaryGroup group, final AbstractComponentItemCreator creator ) { final SummaryItem item = OsgiFactory.eINSTANCE.createSummaryItem (); item.setGroup ( group ); item.setInformation ( OsgiFactory.eINSTANCE.createItemInformation () ); item.getInformation ().setDescription ( String.format ( "Summary group information: %s", Names.makeId ( group ) ) ); item.getInformation ().getHierarchy ().addAll ( Names.makeHierarchy ( group ) ); item.getInformation ().setSystem ( "SCADA" ); final CreationRequest<SummaryItem> c = creator.addItem ( item ); c.localTags ( "SUMMARY" ); c.customizationTags ( "summary" ); final SummaryItem sumItem = c.create (); /* * FIXME: next thing is a bit wonky * actually the summary group should be used for generating sub items * but since the customization process can rename the item, the generator * cannot create a name for this later on. So for now all items * that are SummaryItem will be treated as sub-summary items. */ if ( group.eContainer () instanceof SummaryGroup ) { ( (SummaryGroup)group.eContainer () ).getItems ().add ( sumItem ); } }
@Override protected CreationRequest<?> createRequest ( final ItemCreator itemCreator ) { return itemCreator.createPersistentItem ().localTags ( this.persistentValue.getName () ); } }
@Override public CreationRequest<SourceItem> createSelfItem ( final String sourceName ) { final CreationRequest<SourceItem> req = createSourceItem ( null, sourceName ); req.addMasterListener ( new MasterListener<SourceItem> () { @Override public void setMaster ( final SourceItem item, final MasterContext master ) { Helper.setSourceConnectionFromEndpoints ( item, master.getImplementation (), Locator.getSelfEndpoints ( master.getImplementation () ) ); } } ); return req; }
/** * Create a script item from a CreationRequest and record it for replacing * dangling references * * @param req * the creation request * @return the created script item */ protected ScriptItem createScriptItem ( final CreationRequest<ScriptItem> req ) { req.addMasterListener ( new MasterListener<ScriptItem> () { @Override public void setMaster ( final ScriptItem item, final MasterContext master ) { AbstractDanglingGenerator.this.danglingScriptItemMap.put ( master.getImplementation (), item ); } } ); return req.create (); }
@Override protected CreationRequest<?> createRequest ( final ItemCreator itemCreator ) { return itemCreator.createTransientItem ().localTags ( this.transientValue.getName () ); } }
@Override public void createItems ( final ItemCreator itemCreator ) { final CreationRequest<?> request = createRequest ( itemCreator ); request.localTags ( this.singleValue.getName () ); request.dataType ( this.singleValue.getDataType () ); request.customizationTags ( this.singleValue.getCustomizationTags () ); request.information ( this.singleValue.getShortDescription (), null, null ); request.direction ( this.singleValue.isReadable (), this.singleValue.isWritable () ); request.create (); }
@Override public CreationRequest<SourceItem> createSourceItem ( final Driver source, final String sourceName ) { final CreationRequest<SourceItem> req = super.createSourceItem ( source, sourceName ); if ( source != null ) { req.addMasterListener ( new MasterListener<SourceItem> () { @Override public void setMaster ( final SourceItem item, final MasterContext master ) { setDriverConnection ( source, item, master ); } } ); } return req; }
c.localTags ( "NUM" ).customizationTags ( "analog", "input" ); c.information ( "Number of entries in data mapper", null, null ); c.create (); c.localTags ( "ERR" ).customizationTags ( "digital", "input" ); c.information ( "Data loading error", null, null ); c.create (); c.localTags ( "LOADING" ).customizationTags ( "digital", "input" ); c.information ( "Loading data", null, null ); c.create (); c.localTags ( "RELOAD" ).customizationTags ( "command" ); c.information ( "Perform reload", null, null ); c.create ();
@Override public <T extends Device> CreationRequest<SourceItem> createDeviceItem ( final T device, final String sourceName ) { final CreationRequest<SourceItem> req = super.createDeviceItem ( device, sourceName ); req.addMasterListener ( new MasterListener<SourceItem> () { @Override public void setMaster ( final SourceItem item, final MasterContext master ) { final AbstractFactoryDriver driver = Helper.findDriverForDevice ( master.getDefinition (), device ); if ( driver == null ) { throw new RuntimeException ( String.format ( "Device '%s' does not belong to a driver that is assigned to master server %s", device, master.getDefinition () ) ); } setDriverConnection ( driver, item, master ); } } ); return req; }
@Override public void createItems ( final ItemCreator itemCreator ) { final DanglingItemReference source = this.mappedSourceValue.getInput ().createReference (); final CreationRequest<ReferenceItem> c = itemCreator.createReferenceItem ( source ); c.customizationTags ( this.mappedSourceValue.getCustomizationTags () ); c.localTags ( this.mappedSourceValue.getName () ); c.dataType ( this.mappedSourceValue.getDataType () ); final ReferenceItem item = c.create (); this.refs.add ( item ); }
@Override public CreationRequest<SourceItem> createImportItem ( final MasterImport masterImport, final String sourceName ) { final CreationRequest<SourceItem> req = super.createImportItem ( masterImport, sourceName ); req.addMasterListener ( new MasterListener<SourceItem> () { @Override public void setMaster ( final SourceItem item, final MasterContext master ) { final MasterContext importedMaster = ItemCreatorImpl.this.ctx.getMasterContext ( masterImport.getImportedMaster () ); final DataAccessConnection con = findConnection ( master.getImplementation (), importedMaster.getImplementation () ); if ( con == null ) { throw new IllegalStateException ( String.format ( "Unable to find DataAccess connection from %s to %s", master.getImplementation (), importedMaster.getImplementation () ) ); } item.setConnection ( con ); } } ); return req; }
@Override public void createItems ( final ItemCreator itemCreator ) { final CreationRequest<ChangeCounterItem> request = itemCreator.createChangeCounterItem ( this.changeCounter.getType (), this.changeCounter.getOnError (), this.changeCounter.getValues () ); // FIXME: implement parameters request.localTags ( this.changeCounter.getName () ); request.customizationTags ( this.changeCounter.getCustomizationTags () ); request.dataType ( DataType.INT64 ); request.information ( this.changeCounter.getShortDescription (), null, null ); this.mapping.put ( this.changeCounter.getBuffer ().getName (), request.create () ); }
@Override public CreationRequest<SourceItem> createSelfItem ( final String sourceName ) { final SourceItem item = OsgiFactory.eINSTANCE.createSourceItem (); item.setSourceName ( sourceName ); final CreationRequest<SourceItem> req = addItem ( item ); req.addMasterListener ( new MasterListener<SourceItem> () { @Override public void setMaster ( final SourceItem item, final MasterContext master ) { final List<Endpoint> endpoints = Locator.getSelfEndpoints ( master.getImplementation () ); Helper.setSourceConnectionFromEndpoints ( item, master.getImplementation (), endpoints ); } } ); return req; }
@Override public void createItems ( final ItemCreator creator, final AverageModule implementation ) { for ( final OutputDefinition output : this.calculationComponent.getOutputs () ) { final OutputSpecification outputSpec = Calculations.findSpecification ( implementation, output ); final AverageReferenceType type = AverageReferenceType.get ( output.getName () ); if ( type == null ) { throw new IllegalStateException ( String.format ( "Average reference type %s is unknown. Use any of: %s.", output.getName (), StringHelper.join ( AverageReferenceType.values (), ", " ) ) ); } final CreationRequest<AverageItem> c = createAverageItem ( creator, type ); c.localTags ( output.getLocalTag () ); c.customizationTags ( output.getCustomizationTags () );// the output of a calculation module is an input for the system c.dataType ( outputSpec.getDataType () ); c.addMasterListener ( new MasterListener<AverageItem> () { @Override public void setMaster ( final AverageItem item, final MasterContext master ) { final Average average = AverageModuleGenerator.this.map.get ( master.getImplementation () ); item.setSource ( average ); } } ); c.create (); } }
@Override public CreationRequest<SourceItem> createSelfItem ( final String sourceName ) { final SourceItem item = OsgiFactory.eINSTANCE.createSourceItem (); item.setSourceName ( sourceName ); final CreationRequest<SourceItem> req = addItem ( item ); req.addMasterListener ( new MasterListener<SourceItem> () { @Override public void setMaster ( final SourceItem item, final MasterContext master ) { final List<Endpoint> endpoints = Locator.getSelfEndpoints ( master.getImplementation () ); Helper.setSourceConnectionFromEndpoints ( item, master.getImplementation (), endpoints ); } } ); return req; }
@Override public void createItems ( final ItemCreator creator, final MovingAverageModule implementation ) { for ( final OutputDefinition output : this.calculationComponent.getOutputs () ) { final OutputSpecification outputSpec = Calculations.findSpecification ( implementation, output ); final MovingAverageReferenceType type = MovingAverageReferenceType.get ( output.getName () ); if ( type == null ) { throw new IllegalStateException ( String.format ( "Moving average reference type %s is unknown. Use any of: %s.", output.getName (), StringHelper.join ( MovingAverageReferenceType.values (), ", " ) ) ); } final CreationRequest<MovingAverageItem> c = createAverageItem ( creator, type ); c.localTags ( output.getLocalTag () ); c.customizationTags ( output.getCustomizationTags () );// the output of a calculation module is an input for the system c.dataType ( outputSpec.getDataType () ); c.addMasterListener ( new MasterListener<MovingAverageItem> () { @Override public void setMaster ( final MovingAverageItem item, final MasterContext master ) { final MovingAverage average = MovingAverageModuleGenerator.this.map.get ( master.getImplementation () ); item.setSource ( average ); } } ); c.create (); } }