Changeset 1734 for trunk/docx4j


Ignore:
Timestamp:
12/27/11 03:05:57 (5 months ago)
Author:
jharrop
Message:

Field name is case-insensitive when performing mail merge.

Location:
trunk/docx4j/src/main/java/org/docx4j/model/fields/merge
Files:
1 added
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/docx4j/src/main/java/org/docx4j/model/fields/merge/MailMerger.java

    r1733 r1734  
    5252 * will continue, as will footnotes/endnotes.  
    5353 *  
     54 * LIMITATIONS: 
     55 * - currently only applied to main document part 
     56 *   (easily extended) 
     57 * - no support for text before (\b) and text after (\f) 
     58 *   switches 
     59 * - no support for \m and \v switches 
     60 * - no support formatting (date/time, numeric, or general),  
     61 *   including MERGEFORMAT (which means preserve 
     62 *   the formatting of any existing field result) 
     63 * - no support for multiple MERGEFIELD in a single 
     64 *   instruction (eg MERGEFIELD CoutesyTitle \f " " MERGEFIELD FirstName \f " " MERGEFIELD LastName )  
     65 *  
    5466 * @author jharrop 
    5567 * 
     
    7082         */ 
    7183        public static WordprocessingMLPackage getConsolidatedResultCrude(WordprocessingMLPackage input,  
    72                         List<Map<String, String>> data) throws Docx4JException { 
     84                        List<Map<DataFieldName, String>> data) throws Docx4JException { 
    7385                 
    7486                // Just MDP for now 
     
    171183         
    172184        public static List<WordprocessingMLPackage> getResults(WordprocessingMLPackage input,  
    173                         List<Map<String, String>> data) throws Docx4JException { 
     185                        List<Map<DataFieldName, String>> data) throws Docx4JException { 
    174186                 
    175187                List<WordprocessingMLPackage> pkgs = new ArrayList<WordprocessingMLPackage>(); 
     
    216228         */ 
    217229        private static List<List<Object>> perform(ContentAccessor contentList,  
    218                         List<Map<String, String>> data ) throws Docx4JException { 
     230                        List<Map<DataFieldName, String>> data ) throws Docx4JException { 
    219231                 
    220232                                 
    221233                List<List<Object>> results = new ArrayList<List<Object>>(); 
    222                 for (Map<String, String> datamap : data) { 
     234                for (Map<DataFieldName, String> datamap : data) { 
    223235                         
    224236                        // We need our fieldRefs point to the correct objects; 
     
    258270                                        log.info("Key: '" + key + "'"); 
    259271                                         
    260                                         String val = datamap.get(key); 
     272                                        String val = datamap.get( new DataFieldName(key)); 
    261273                                         
    262274                                        if (val==null) { 
     
    301313                                                System.getProperty("user.dir") + "/mergefield1.docx")); 
    302314                 
    303                 List<Map<String, String>> data = new ArrayList<Map<String, String>>(); 
    304  
    305                 Map<String, String> map = new HashMap<String, String>(); 
    306                 map.put("Kundenname", "Plutext"); 
    307                 map.put("Kundenstrasse", "Bourke Street"); 
     315                List<Map<DataFieldName, String>> data = new ArrayList<Map<DataFieldName, String>>(); 
     316 
     317                Map<DataFieldName, String> map = new HashMap<DataFieldName, String>(); 
     318                map.put( new DataFieldName("Kundenname"), "Plutext"); 
     319                map.put(new DataFieldName("Kundenstrasse"), "Bourke Street"); 
    308320                 
    309321                data.add(map); 
    310322                                 
    311                 map = new HashMap<String, String>(); 
    312                 map.put("Kundenname", "Name 2"); 
    313                 map.put("Kundenstrasse", "Collins Street"); 
     323                map = new HashMap<DataFieldName, String>(); 
     324                map.put( new DataFieldName("Kundenname"), "Jason"); 
     325                map.put(new DataFieldName("Kundenstrasse"), "Collins Street"); 
    314326                 
    315327                data.add(map);           
Note: See TracChangeset for help on using the changeset viewer.