Ignore:
Timestamp:
12/08/17 16:43:41 (7 years ago)
Author:
pharms
Message:
  • solved some findbugs issues
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/autoquest-core-tasktrees/src/main/java/de/ugoe/cs/autoquest/tasktrees/treeimpl/TaskModel.java

    r1948 r2242  
    162162     * </p> 
    163163     */ 
    164     private synchronized void ensureInitialized() { 
    165         if (index == null) { 
    166             index = new TaskModelIndex(); 
    167              
    168             for (IUserSession session : this.userSessions) { 
    169                 for (ITaskInstance taskInstance : session) { 
    170                     index.handleTaskInstance(taskInstance); 
    171                 } 
    172             } 
    173              
    174             // count all events covered 
    175             int allEventsCovered = 0; 
    176             Collection<ITask> tasks = getTasks(); 
    177             for (ITask task : tasks) { 
    178                 if (task instanceof IEventTask) { 
    179                     allEventsCovered += task.getInstances().size(); 
    180                 } 
    181             } 
    182              
    183             int[] eventCoverageRatios = new int[tasks.size()]; 
    184             int i = 0; 
    185  
    186             // add some further measures 
    187             for (ITask task : tasks) { 
    188                 TaskInfo info = index.taskMap.get(task); 
    189                 info.addMeasure(TaskMetric.EVENT_COVERAGE_RATIO); 
    190                  
    191                 int coveredEvents = info.getMeasureValue(TaskMetric.EVENT_COVERAGE); 
    192                 int coverageRatio = 0; 
    193                  
    194                 if (allEventsCovered > 0) { 
    195                     coverageRatio = (coveredEvents * 1000) / allEventsCovered; 
    196                 } 
    197                  
    198                 eventCoverageRatios[i++] = coverageRatio; 
    199                 info.setCount(TaskMetric.EVENT_COVERAGE_RATIO, coverageRatio); 
    200             } 
    201              
    202             Arrays.sort(eventCoverageRatios); 
    203              
    204             // add some further measures 
    205             for (ITask task : tasks) { 
    206                 TaskInfo info = index.taskMap.get(task); 
    207                 info.addMeasure(TaskMetric.EVENT_COVERAGE_QUANTILE); 
    208                 int quantile = Arrays.binarySearch 
    209                     (eventCoverageRatios, info.getMeasureValue(TaskMetric.EVENT_COVERAGE_RATIO)); 
    210                  
    211                 quantile = 1000 * quantile / eventCoverageRatios.length; 
    212                  
    213                 info.setCount(TaskMetric.EVENT_COVERAGE_QUANTILE, quantile); 
    214             } 
    215              
    216             //index.dumpToCSV(System.out); 
    217             /*try { 
    218                 OutputStream stream = new FileOutputStream(new File("tasks.csv")); 
    219                 index.dumpToCSV(new PrintStream(stream)); 
    220                 stream.close(); 
    221             } 
    222             catch (FileNotFoundException e) { 
    223                 e.printStackTrace(); 
    224             }*/ 
    225         } 
    226          
     164    private void ensureInitialized() { 
     165        synchronized (this) { 
     166            if (index == null) { 
     167                index = new TaskModelIndex(); 
     168 
     169                for (IUserSession session : this.userSessions) { 
     170                    for (ITaskInstance taskInstance : session) { 
     171                        index.handleTaskInstance(taskInstance); 
     172                    } 
     173                } 
     174 
     175                // count all events covered 
     176                int allEventsCovered = 0; 
     177                Collection<ITask> tasks = getTasks(); 
     178                for (ITask task : tasks) { 
     179                    if (task instanceof IEventTask) { 
     180                        allEventsCovered += task.getInstances().size(); 
     181                    } 
     182                } 
     183 
     184                int[] eventCoverageRatios = new int[tasks.size()]; 
     185                int i = 0; 
     186 
     187                // add some further measures 
     188                for (ITask task : tasks) { 
     189                    TaskInfo info = index.taskMap.get(task); 
     190                    info.addMeasure(TaskMetric.EVENT_COVERAGE_RATIO); 
     191 
     192                    int coveredEvents = info.getMeasureValue(TaskMetric.EVENT_COVERAGE); 
     193                    int coverageRatio = 0; 
     194 
     195                    if (allEventsCovered > 0) { 
     196                        coverageRatio = (coveredEvents * 1000) / allEventsCovered; 
     197                    } 
     198 
     199                    eventCoverageRatios[i++] = coverageRatio; 
     200                    info.setCount(TaskMetric.EVENT_COVERAGE_RATIO, coverageRatio); 
     201                } 
     202 
     203                Arrays.sort(eventCoverageRatios); 
     204 
     205                // add some further measures 
     206                for (ITask task : tasks) { 
     207                    TaskInfo info = index.taskMap.get(task); 
     208                    info.addMeasure(TaskMetric.EVENT_COVERAGE_QUANTILE); 
     209                    int quantile = Arrays.binarySearch 
     210                            (eventCoverageRatios, info.getMeasureValue(TaskMetric.EVENT_COVERAGE_RATIO)); 
     211 
     212                    quantile = 1000 * quantile / eventCoverageRatios.length; 
     213 
     214                    info.setCount(TaskMetric.EVENT_COVERAGE_QUANTILE, quantile); 
     215                } 
     216 
     217                //index.dumpToCSV(System.out); 
     218                /*try { 
     219                    OutputStream stream = new FileOutputStream(new File("tasks.csv")); 
     220                    index.dumpToCSV(new PrintStream(stream)); 
     221                    stream.close(); 
     222                } 
     223                catch (FileNotFoundException e) { 
     224                    e.printStackTrace(); 
     225                }*/ 
     226            } 
     227        } 
    227228    } 
    228229 
Note: See TracChangeset for help on using the changeset viewer.