Ignore:
Timestamp:
04/29/13 16:29:53 (11 years ago)
Author:
pharms
Message:
  • remove a find bugs warning
File:
1 edited

Legend:

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

    r1188 r1189  
    1515package de.ugoe.cs.autoquest.tasktrees.temporalrelation; 
    1616 
     17import java.io.IOException; 
     18import java.io.ObjectInputStream; 
    1719import java.util.HashMap; 
    1820import java.util.Iterator; 
     
    7476     * </p> 
    7577     */ 
    76     SequenceForTaskDetectionRule(TaskEqualityRuleManager taskEqualityRuleManager, 
    77                                  TaskEquality            minimalTaskEquality, 
    78                                  ITaskFactory            taskFactory, 
    79                                  ITaskBuilder            taskBuilder) 
     78    SequenceForTaskDetectionRule(TaskEquality minimalTaskEquality, 
     79                                 ITaskFactory taskFactory, 
     80                                 ITaskBuilder taskBuilder) 
    8081    { 
    8182        this.taskFactory = taskFactory; 
    8283        this.taskBuilder = taskBuilder; 
    8384         
    84         this.taskComparator = new TaskComparator(taskEqualityRuleManager, minimalTaskEquality); 
     85        this.taskComparator = new TaskComparator(minimalTaskEquality); 
    8586    } 
    8687 
     
    887888     */ 
    888889    private static class TaskComparator implements SymbolComparator<ITaskInstance> { 
    889  
     890         
    890891        /** */ 
    891         private Comparer comparer; 
     892        private TaskEquality minimalNodeEquality; 
    892893 
    893894        /** */ 
    894         private Comparer lexicalComparer; 
     895        private transient Comparer comparer; 
    895896 
    896897        /** */ 
    897         private HashMap<Long, Boolean> equalityBuffer = new HashMap<Long, Boolean>(); 
     898        private transient Comparer lexicalComparer; 
    898899 
    899900        /** */ 
    900         private HashMap<Long, Boolean> lexicalEqualityBuffer; 
     901        private transient HashMap<Long, Boolean> equalityBuffer = new HashMap<Long, Boolean>(); 
     902 
     903        /** */ 
     904        private transient HashMap<Long, Boolean> lexicalEqualityBuffer; 
    901905 
    902906        /** 
    903907         * 
    904908         */ 
    905         public TaskComparator(TaskEqualityRuleManager taskEqualityRuleManager, 
    906                               TaskEquality            minimalNodeEquality) 
    907         { 
    908             super(); 
    909              
    910             if (minimalNodeEquality == TaskEquality.LEXICALLY_EQUAL) { 
    911                 comparer = new LexicalComparer(taskEqualityRuleManager); 
    912             } 
    913             else if (minimalNodeEquality == TaskEquality.SYNTACTICALLY_EQUAL) { 
    914                 comparer = new SyntacticalComparer(taskEqualityRuleManager); 
    915             } 
    916             else if (minimalNodeEquality == TaskEquality.SEMANTICALLY_EQUAL) { 
    917                 comparer = new SemanticalComparer(taskEqualityRuleManager); 
    918             } 
    919             else { 
    920                 comparer = new DefaultComparer(taskEqualityRuleManager, minimalNodeEquality); 
    921             } 
    922              
    923             if (minimalNodeEquality == TaskEquality.LEXICALLY_EQUAL) { 
    924                 lexicalComparer = comparer; 
    925                 lexicalEqualityBuffer = equalityBuffer; 
    926             } 
    927             else { 
    928                 lexicalComparer = new LexicalComparer(taskEqualityRuleManager); 
    929                 lexicalEqualityBuffer = new HashMap<Long, Boolean>(); 
    930             } 
     909        public TaskComparator(TaskEquality minimalNodeEquality) { 
     910            this.minimalNodeEquality = minimalNodeEquality; 
     911            init(); 
    931912        } 
    932913 
     
    991972            return result; 
    992973        } 
     974         
     975        /** 
     976         *  
     977         */ 
     978        private void init() { 
     979            if (minimalNodeEquality == TaskEquality.LEXICALLY_EQUAL) { 
     980                comparer = new LexicalComparer(); 
     981            } 
     982            else if (minimalNodeEquality == TaskEquality.SYNTACTICALLY_EQUAL) { 
     983                comparer = new SyntacticalComparer(); 
     984            } 
     985            else if (minimalNodeEquality == TaskEquality.SEMANTICALLY_EQUAL) { 
     986                comparer = new SemanticalComparer(); 
     987            } 
     988            else { 
     989                comparer = new DefaultComparer(this.minimalNodeEquality); 
     990            } 
     991             
     992            if (minimalNodeEquality == TaskEquality.LEXICALLY_EQUAL) { 
     993                lexicalComparer = comparer; 
     994                lexicalEqualityBuffer = equalityBuffer; 
     995            } 
     996            else { 
     997                lexicalComparer = new LexicalComparer(); 
     998                lexicalEqualityBuffer = new HashMap<Long, Boolean>(); 
     999            } 
     1000        } 
     1001         
     1002        /** 
     1003         * <p> 
     1004         * deserialize this object and reinitialize the buffers 
     1005         * </p> 
     1006         */ 
     1007        private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException { 
     1008            in.defaultReadObject(); 
     1009            init(); 
     1010        } 
    9931011    } 
    9941012 
     
    10101028         
    10111029        /** 
    1012          * <p> 
    1013          * the task equality manager needed for comparing tasks with each other 
    1014          * </p> 
    1015          */ 
    1016         private TaskEqualityRuleManager taskEqualityRuleManager; 
    1017          
    1018         /** 
    1019          * 
    1020          */ 
    1021         public LexicalComparer(TaskEqualityRuleManager taskEqualityRuleManager) { 
    1022            this.taskEqualityRuleManager = taskEqualityRuleManager; 
    1023         } 
    1024          
    1025         /** 
    10261030         *  
    10271031         */ 
    10281032        public boolean compare(ITask task1, ITask task2) { 
    1029             return taskEqualityRuleManager.areLexicallyEqual(task1, task2); 
     1033            return TaskEqualityRuleManager.getInstance().areLexicallyEqual(task1, task2); 
    10301034        } 
    10311035    } 
     
    10371041         
    10381042        /** 
    1039          * <p> 
    1040          * the task equality manager needed for comparing tasks with each other 
    1041          * </p> 
    1042          */ 
    1043         private TaskEqualityRuleManager taskEqualityRuleManager; 
    1044          
    1045         /** 
    1046          * 
    1047          */ 
    1048         public SyntacticalComparer(TaskEqualityRuleManager taskEqualityRuleManager) { 
    1049            this.taskEqualityRuleManager = taskEqualityRuleManager; 
    1050         } 
    1051          
    1052         /** 
    10531043         *  
    10541044         */ 
    10551045        public boolean compare(ITask task1, ITask task2) { 
    1056             return taskEqualityRuleManager.areSyntacticallyEqual(task1, task2); 
     1046            return TaskEqualityRuleManager.getInstance().areSyntacticallyEqual(task1, task2); 
    10571047        } 
    10581048    } 
     
    10641054         
    10651055        /** 
    1066          * <p> 
    1067          * the task equality manager needed for comparing tasks with each other 
    1068          * </p> 
    1069          */ 
    1070         private TaskEqualityRuleManager taskEqualityRuleManager; 
    1071          
    1072         /** 
    1073          * 
    1074          */ 
    1075         public SemanticalComparer(TaskEqualityRuleManager taskEqualityRuleManager) { 
    1076            this.taskEqualityRuleManager = taskEqualityRuleManager; 
    1077         } 
    1078          
    1079         /** 
    10801056         *  
    10811057         */ 
    10821058        public boolean compare(ITask task1, ITask task2) { 
    1083             return taskEqualityRuleManager.areSemanticallyEqual(task1, task2); 
     1059            return TaskEqualityRuleManager.getInstance().areSemanticallyEqual(task1, task2); 
    10841060        } 
    10851061    } 
     
    10901066    private static class DefaultComparer implements Comparer { 
    10911067         
    1092         /** 
    1093          * <p> 
    1094          * the task equality manager needed for comparing tasks with each other 
    1095          * </p> 
    1096          */ 
    1097         private TaskEqualityRuleManager taskEqualityRuleManager; 
    1098  
    10991068        /** 
    11001069         * <p> 
     
    11071076         * 
    11081077         */ 
    1109         public DefaultComparer(TaskEqualityRuleManager taskEqualityRuleManager, 
    1110                                TaskEquality            minimalNodeEquality) 
    1111         { 
    1112            this.taskEqualityRuleManager = taskEqualityRuleManager; 
     1078        public DefaultComparer(TaskEquality minimalNodeEquality) { 
    11131079           this.minimalNodeEquality = minimalNodeEquality; 
    11141080        } 
     
    11181084         */ 
    11191085        public boolean compare(ITask task1, ITask task2) { 
    1120             return taskEqualityRuleManager.areAtLeastEqual(task1, task2, minimalNodeEquality); 
     1086            return TaskEqualityRuleManager.getInstance().areAtLeastEqual 
     1087                (task1, task2, minimalNodeEquality); 
    11211088        } 
    11221089    } 
Note: See TracChangeset for help on using the changeset viewer.