Changeset 175


Ignore:
Timestamp:
Feb 15, 2012, 6:00:41 PM (5 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 edited

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";
Note: See TracChangeset for help on using the changeset viewer.