Changeset 175

Show
Ignore:
Timestamp:
15-02-12 18:00:41 (2 years ago)
Author:
tim.te.beek@…
Message:

Make ParserSettingsModel? @JsonSerialize?-able using Jackson JSON library
Add code to serialize and load ParserSettingsModel? using JSON
Add test for the above code
Add exhaustive example import profile used in tests

Location:
trunk/piqc-plugin/src
Files:
3 added
2 modified

Legend:

Unmodified
Added
Removed
  • trunk/piqc-plugin/src/main/java/nl/nbic/brs/piqc/tableimport/models/ParserSettingsModel.java

    r171 r175  
    1818import lombok.Setter; 
    1919 
     20import org.codehaus.jackson.map.annotate.JsonSerialize; 
     21 
    2022/** 
    2123 * Settings for parsing a structured text table file. 
     
    2527@Setter(AccessLevel.NONE) 
    2628public class ParserSettingsModel implements Cloneable { 
    27         private File                                    tableFile                               = null; 
    28         private char                                    delimiter                               = ','; 
    29         private Character                               comment                                 = null; 
    30         private int                                             startFrom                               = 0; 
    31         private int                                             linesToParse                    = 30; 
    32         private boolean                                 firstRowHeader                  = true; 
     29        @JsonSerialize(as = File.class) 
     30        private File                            tableFile                               = null; 
     31 
     32        private char                            delimiter                               = ','; 
     33        private Character                       comment                                 = null; 
     34        private int                                     startFrom                               = 0; 
     35        private int                                     linesToParse                    = 30; 
     36        private boolean                         firstRowHeader                  = true; 
    3337 
    3438        // Keep an index rather than name to handle firstRowHandle toggling 
    35         private Integer                                 sourceIDAttr                    = null; 
    36         private Integer                                 edgeIDAttr                              = null; 
    37         private Integer                                 targetIDAttr                    = null; 
     39        private Integer                         sourceIDAttr                    = null; 
     40        private Integer                         edgeIDAttr                              = null; 
     41        private Integer                         targetIDAttr                    = null; 
    3842 
    3943        // Lists with additional attributes per source node, target node or edge 
    40         private SortedSet<Integer>              additionalSourceAttr    = new TreeSet<Integer>(); 
    41         private SortedSet<Integer>              additionalEdgeAttr              = new TreeSet<Integer>(); 
    42         private SortedSet<Integer>              additionalTargetAttr    = new TreeSet<Integer>(); 
     44        private SortedSet<Integer>      additionalSourceAttr    = new TreeSet<Integer>(); 
     45        private SortedSet<Integer>      additionalEdgeAttr              = new TreeSet<Integer>(); 
     46        private SortedSet<Integer>      additionalTargetAttr    = new TreeSet<Integer>(); 
    4347 
    4448        // Do not grant access to the underlying map, so we can restrict addition to addInterpretation & fireSettingsChanged 
     49        @JsonSerialize 
     50        Map<Integer, Class<?>>          interpretation                  = new TreeMap<Integer, Class<?>>(); 
     51 
     52        // Listener instances should remain private to this instance, and should not be accessible to the JSON serialization 
    4553        @Getter(value = AccessLevel.NONE) 
    46         Map<Integer, Class<?>>                  interpretation                  = new TreeMap<Integer, Class<?>>(); 
    47  
    48         // Listeners are private to this instance 
    49         @Getter(value = AccessLevel.NONE) 
    50         private List<ChangeListener>    listeners                               = new ArrayList<ChangeListener>(); 
     54        List<ChangeListener>            listeners                               = new ArrayList<ChangeListener>(); 
    5155 
    5256        public void addChangeListener(final ChangeListener listener) { 
     
    9498                clone.listeners = new ArrayList<ChangeListener>(); 
    9599                return clone; 
     100        } 
     101 
     102        // JSON Serialization using Jackson requires a public getter method, but discourage anyone from using it directly 
     103        @Deprecated 
     104        public Map<Integer, Class<?>> getInterpretation() { 
     105                return interpretation; 
    96106        } 
    97107 
  • trunk/piqc-plugin/src/main/java/nl/nbic/brs/piqc/tableimport/panels/PreviewPanel.java

    r157 r175  
    142142                                return null; 
    143143 
    144                         // Alert user when we can not write to file, only if it already exists 
     144                        // Alert user when we can not read from file, only if it already exists 
    145145                        if (!fileChooser.getSelectedFile().exists() || !fileChooser.getSelectedFile().canRead()) { 
    146146                                String title = "File not readable";