@SuppressWarnings ( "unchecked" )
@Override
public Driver process ( final org.eclipse.scada.configuration.infrastructure.Driver infraDriver, final Map<Node, org.eclipse.scada.configuration.world.Node> nodes )
{
final T driver = (T)infraDriver;
final S result = createDriver ( driver, nodes );
result.setName ( driver.getName () );
result.setSecurityConfiguration ( Worlds.findSecurityConfiguration ( driver ) );
Worlds.addUserService ( result, driver );
final World world = Containers.findContainer ( infraDriver, World.class );
final DataAccessExporter exporter = OsgiFactory.eINSTANCE.createDataAccessExporter ();
exporter.setName ( "exporter" );
result.getExporter ().add ( exporter );
exporter.getEndpoints ().add ( Endpoints.registerEndpoint ( nodes.get ( driver.getNode () ), world.getOptions ().getBaseDaNgpPort () + driver.getInstanceNumber (), Endpoints.reference ( exporter ), "EquinoxDriver Endpoint: " + driver.getName () ) );
final ConfigurationAdministratorExporter caExporter = OsgiFactory.eINSTANCE.createConfigurationAdministratorExporter ();
caExporter.setName ( "caExporter" );
result.getExporter ().add ( caExporter );
caExporter.getEndpoints ().add ( Endpoints.registerEndpoint ( nodes.get ( driver.getNode () ), world.getOptions ().getBaseCaNgpPort () + driver.getInstanceNumber (), Endpoints.reference ( caExporter ), "CA Exporter: " + driver.getName () ) );
result.getModules ().addAll ( WorldGenerator.makeModules ( world, driver, result ) );
return result;
}