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/CMDgenerateReplayfile.java

    r203 r209  
    66 
    77import de.ugoe.cs.eventbench.ReplayGenerator; 
    8 import de.ugoe.cs.eventbench.data.Event; 
     8import de.ugoe.cs.eventbench.SequenceInstanceOf; 
    99import de.ugoe.cs.eventbench.data.GlobalDataContainer; 
    1010import de.ugoe.cs.eventbench.data.ReplayableEvent; 
     
    1313 
    1414/** 
    15  * <p>Command to create a replay file from stored sessions.</p> 
     15 * <p> 
     16 * Command to create a replay file from stored sessions. 
     17 * </p> 
     18 *  
    1619 * @author Steffen Herbold 
    1720 * @version 1.0 
     
    1922public class CMDgenerateReplayfile implements Command { 
    2023 
    21         /* (non-Javadoc) 
     24        /* 
     25         * (non-Javadoc) 
     26         *  
    2227         * @see de.ugoe.cs.util.console.Command#help() 
    2328         */ 
    2429        @Override 
    2530        public void help() { 
    26                 Console.println("Usage: generateReplayfile <filename> {<sequences>}");           
     31                Console.println("Usage: generateReplayfile <filename> {<sequences>}"); 
    2732        } 
    2833 
    29         /* (non-Javadoc) 
     34        /* 
     35         * (non-Javadoc) 
     36         *  
    3037         * @see de.ugoe.cs.util.console.Command#run(java.util.List) 
    3138         */ 
     
    3340        @Override 
    3441        public void run(List<Object> parameters) { 
    35                 if( parameters.size() < 1 ) { 
     42                if (parameters.size() < 1) { 
    3643                        throw new InvalidParameterException(); 
    3744                } 
    3845                String filename = (String) parameters.get(0); 
    3946                String sequencesName = "sequences"; 
    40                 if( parameters.size()==2 ) { 
     47                if (parameters.size() == 2) { 
    4148                        sequencesName = (String) parameters.get(1); 
    4249                } 
    43                  
     50 
    4451                Collection<List<ReplayableEvent<?>>> sequences = null; 
    45                 Object dataObject = GlobalDataContainer.getInstance().getData(sequencesName); 
    46                          
    47                 try { 
    48                         sequences = (Collection<List<ReplayableEvent<?>>>) dataObject; 
    49                         ReplayGenerator generator = new ReplayGenerator(); 
    50                         if( sequences!=null && sequences.size()>0 && sequences.iterator().next().get(0) instanceof Event ) { 
    51                                 generator.createLogfileMultipleSessions(sequences, filename); 
    52                         } else { 
    53                                 Console.printerrln("Loaded data not are not sequences!"); 
    54                                 if( sequencesName.equals("sequences") ) {  
    55                                         Console.traceln("Illegal use of \"sequences\" parameter in the GlobalDataContainer."); 
    56                                         Console.traceln("The parameter should always be of type Collection<List<Event>>!"); 
    57                                 } 
    58                         } 
     52                Object dataObject = GlobalDataContainer.getInstance().getData( 
     53                                sequencesName); 
     54                if (dataObject == null) { 
     55                        Console.println("Object " + sequencesName 
     56                                        + " not found in storage."); 
     57                        return; 
    5958                } 
    60                 catch(ClassCastException e) { 
    61                         Console.printerrln("Sequences not found"); 
     59                if (!SequenceInstanceOf.isCollectionOfSequences(dataObject)) { 
     60                        Console.println("Object " + sequencesName 
     61                                        + "not of type Collection<List<Event<?>>>."); 
     62                        return; 
    6263                } 
    63                  
     64 
     65                sequences = (Collection<List<ReplayableEvent<?>>>) dataObject; 
     66                ReplayGenerator generator = new ReplayGenerator(); 
     67                generator.createLogfileMultipleSessions(sequences, filename); 
    6468        } 
    6569 
Note: See TracChangeset for help on using the changeset viewer.