Ignore:
Timestamp:
09/28/11 03:03:13 (13 years ago)
Author:
sherbold
Message:
  • greatly improved type checking and consistency of type checking for objects checked out of the GlobalDataContainer?
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/EventBenchConsole/src/de/ugoe/cs/eventbench/commands/CMDgenerateRandomSequences.java

    r171 r209  
    1313 
    1414/** 
    15  * <p>Command to generate random sessions.</p> 
     15 * <p> 
     16 * Command to generate random sessions. 
     17 * </p> 
     18 *  
    1619 * @author Steffen Herbold 
    1720 * @version 1.0 
     
    1922public class CMDgenerateRandomSequences implements Command { 
    2023 
    21         /* (non-Javadoc) 
     24        /* 
     25         * (non-Javadoc) 
     26         *  
    2227         * @see de.ugoe.cs.util.console.Command#run(java.util.List) 
    2328         */ 
     
    3439                        sequencesName = (String) parameters.get(1); 
    3540                        numSessions = Integer.parseInt((String) parameters.get(2)); 
    36                         maxIter = numSessions*10; 
    37                         if( parameters.size()>=4 ) { 
     41                        maxIter = numSessions * 10; 
     42                        if (parameters.size() >= 4) { 
    3843                                maxIter = Long.parseLong((String) parameters.get(3)); 
    3944                        } 
    40                         if( parameters.size()>=5 ) { 
     45                        if (parameters.size() >= 5) { 
    4146                                minLength = Integer.parseInt((String) parameters.get(4)); 
    4247                        } 
    43                         if( parameters.size()>=6 ) { 
     48                        if (parameters.size() >= 6) { 
    4449                                maxLength = Integer.parseInt((String) parameters.get(5)); 
    4550                        } 
    46                 } 
    47                 catch (Exception e) { 
     51                } catch (Exception e) { 
    4852                        throw new InvalidParameterException(); 
    4953                } 
    50                  
    51                 IStochasticProcess model = null;  
    52                 Object dataObject = GlobalDataContainer.getInstance().getData(modelname); 
    53                 if( dataObject==null ) { 
     54 
     55                IStochasticProcess model = null; 
     56                Object dataObject = GlobalDataContainer.getInstance() 
     57                                .getData(modelname); 
     58                if (dataObject == null) { 
    5459                        Console.println("Model " + modelname + " not found in storage."); 
     60                        return; 
    5561                } 
    56                 else if( !(dataObject instanceof IStochasticProcess) ) { 
     62                if (!(dataObject instanceof IStochasticProcess)) { 
    5763                        Console.println("Object " + modelname + " not of type MarkovModel!"); 
    58                 } else { 
    59                         model = (IStochasticProcess) dataObject; 
    60                         Set<List<? extends Event<?>>> sequences = new HashSet<List<? extends Event<?>>>(numSessions); 
    61                         long numIterations = 0; 
    62                         while( sequences.size()<numSessions && numIterations<maxIter ) { 
    63                                 List<? extends Event<?>> generatedSequence = model.randomSequence(); 
    64                                 if( generatedSequence.size()>=minLength && generatedSequence.size()<=maxLength ) { 
    65                                         sequences.add(generatedSequence); 
    66                                 } 
    67                                 numIterations++; 
     64                        return; 
     65                } 
     66                model = (IStochasticProcess) dataObject; 
     67                Set<List<? extends Event<?>>> sequences = new HashSet<List<? extends Event<?>>>( 
     68                                numSessions); 
     69                long numIterations = 0; 
     70                while (sequences.size() < numSessions && numIterations < maxIter) { 
     71                        List<? extends Event<?>> generatedSequence = model.randomSequence(); 
     72                        if (generatedSequence.size() >= minLength 
     73                                        && generatedSequence.size() <= maxLength) { 
     74                                sequences.add(generatedSequence); 
    6875                        } 
    69                         if( sequences.size() < numSessions ) { 
    70                                 Console.println("Only " + sequences.size() + " unique sessions generated after " + maxIter + " iterations"); 
    71                         } 
    72                         if( GlobalDataContainer.getInstance().addData(sequencesName, sequences) ) { 
    73                                 Console.traceln("Old data \"" + sequencesName + "\" overwritten"); 
    74                         } 
     76                        numIterations++; 
     77                } 
     78                if (sequences.size() < numSessions) { 
     79                        Console.println("Only " + sequences.size() 
     80                                        + " unique sessions generated after " + maxIter 
     81                                        + " iterations"); 
     82                } 
     83                if (GlobalDataContainer.getInstance().addData(sequencesName, sequences)) { 
     84                        Console.traceln("Old data \"" + sequencesName + "\" overwritten"); 
    7585                } 
    7686        } 
    7787 
    78         /* (non-Javadoc) 
     88        /* 
     89         * (non-Javadoc) 
     90         *  
    7991         * @see de.ugoe.cs.util.console.Command#help() 
    8092         */ 
Note: See TracChangeset for help on using the changeset viewer.