public static Id<StrategySettings> createAvailableStrategyId(Config config) { long maxStrategyId = 0; Iterator<StrategySettings> iterator = config.strategy().getStrategySettings().iterator(); while(iterator.hasNext()){ maxStrategyId = Math.max(maxStrategyId, Long.parseLong(iterator.next().getId().toString())); } return Id.create(maxStrategyId + 1, StrategySettings.class); }
private StrategySettings getStrategySettings(final Id<StrategySettings> index, final boolean createIfMissing) { StrategySettings settings = null; // should be in a map, but it is difficult to keep consistency with the // delegate... for ( StrategySettings s : getStrategySettings() ) { if ( !s.getId().equals( index ) ) continue; if ( settings != null ) throw new IllegalStateException( "several settings with id "+index ); settings = s; } if (settings == null && createIfMissing) { settings = new StrategySettings(index); addStrategySettings( settings ); } return settings; }
private ConfigGroup toUnderscoredModule(final StrategyConfigGroup initialGroup) { // yyyy is this method/this execution path still necessary? Maybe we need to be able to read config v1, but certainly // we don't need to WRITE it, do we? kai/mz, nov'15 final ConfigGroup module = new ConfigGroup( initialGroup.getName() ); for ( Map.Entry<String, String> e : initialGroup.getParams().entrySet() ) { log.info( "add param "+e.getKey() ); module.addParam( e.getKey() , e.getValue() ); } for ( StrategySettings settings : initialGroup.getStrategySettings() ) { final Id<StrategySettings> id = settings.getId(); module.addParam( "Module_"+id , settings.getStrategyName() ); module.addParam( "ModuleProbability_"+id , ""+settings.getWeight() ); module.addParam( "ModuleDisableAfterIteration_"+id , ""+settings.getDisableAfter() ); module.addParam( "ModuleExePath_"+id , settings.getExePath() ); module.addParam( "ModuleSubpopulation_"+id , settings.getSubpopulation() ); } return module; }