1 /** 2 * Copyright © 2008-2012 NetAllied Systems GmbH, Ravensburg, Germany. 3 * 4 * Licensed under the MIT Open Source License, 5 * for details please see LICENSE file or the website 6 * http://www.opensource.org/licenses/mit-license.php 7 */ 8 package de.netallied.xsd2cppsax; 9 10 import java.io.FileNotFoundException; 11 import java.io.PrintStream; 12 import java.util.HashMap; 13 import java.util.List; 14 import java.util.Map; 15 import java.util.Map.Entry; 16 17 import org.apache.xerces.xs.XSElementDeclaration; 18 19 /** 20 * Dumps out different data for debugging purposes, e.g. element usage data. 21 * 22 */ 23 public class ElementUsageDumper { 24 25 /** 26 * Dumps out element usage data. 27 */ dumpElementUsage(Map<String, ElementUsage> elementUsage)28 public void dumpElementUsage(Map<String, ElementUsage> elementUsage) throws FileNotFoundException { 29 PrintStream stream = new PrintStream("element_usage.txt"); 30 31 for (Entry<String, ElementUsage> usage : elementUsage.entrySet()) { 32 stream.println(usage.getKey()); 33 34 for (List<XSElementDeclaration> ancestors : usage.getValue().getAncestors()) { 35 stream.print(" "); 36 37 for (XSElementDeclaration ancestor : ancestors) { 38 stream.print(ancestor.getName() + ", "); 39 } 40 41 stream.println(); 42 } 43 44 stream.println(); 45 } 46 47 stream.close(); 48 } 49 50 /** 51 * Dumps out a map. 52 */ dumpMap(PrintStream stream, Map<String, String> map)53 private void dumpMap(PrintStream stream, Map<String, String> map) { 54 for (String key : map.keySet()) { 55 stream.println(" " + key + " -> " + map.get(key)); 56 } 57 } 58 59 /** 60 * Dumps out a parent name and it's child elements. 61 */ dumpMultipleElementsPerParent(Map<String, List<XSElementDeclaration>> elementsPerParent)62 public void dumpMultipleElementsPerParent(Map<String, List<XSElementDeclaration>> elementsPerParent) 63 throws FileNotFoundException { 64 PrintStream stream = new PrintStream("multiple_elements_per_parent.txt"); 65 66 for (String parentName : elementsPerParent.keySet()) { 67 stream.println(parentName); 68 69 for (XSElementDeclaration element : elementsPerParent.get(parentName)) { 70 stream.print(" "); 71 stream.println(element.getName()); 72 } 73 } 74 } 75 76 /** 77 * Dumps out type mapping. 78 */ dumpTypeMapping(Config config)79 public void dumpTypeMapping(Config config) throws FileNotFoundException { 80 PrintStream stream = new PrintStream("type_mapping.txt"); 81 82 // avoid "unused" warning 83 dumpMap(stream, new HashMap<String, String>()); 84 // 85 // Map<String, String> simpleAttrAtomicTypeMapping = 86 // config.getSimpleAttrAtomicTypeMapping(); 87 // stream.println("AttrAtomicTypeMapping"); 88 // dumpMap(stream, simpleAttrAtomicTypeMapping); 89 // stream.println( 90 // "***********************************************************"); 91 // stream.println(); 92 // stream.println(); 93 // 94 // Map<String, String> simpleAttrAtomicTypePreConversionMapping = config 95 // .getSimpleAttrAtomicTypePreConversionMapping(); 96 // stream.println("AttrAtomicTypePreConversionMapping"); 97 // dumpMap(stream, simpleAttrAtomicTypePreConversionMapping); 98 // stream.println( 99 // "***********************************************************"); 100 // stream.println(); 101 // stream.println(); 102 // 103 // Map<String, String> simpleAttrAtomicTypeConversionMapping = 104 // config.getSimpleAttrAtomicTypeConversionMapping(); 105 // stream.println("AttrAtomicTypeConversionMapping"); 106 // dumpMap(stream, simpleAttrAtomicTypeConversionMapping); 107 // stream.println( 108 // "***********************************************************"); 109 // stream.println(); 110 // stream.println(); 111 // 112 // Map<String, String> simpleAttrAtomicTypePostConversionMapping = 113 // config 114 // .getSimpleAttrAtomicTypePostConversionMapping(); 115 // stream.println("AttrAtomicTypePostConversionMapping"); 116 // dumpMap(stream, simpleAttrAtomicTypePostConversionMapping); 117 // stream.println( 118 // "***********************************************************"); 119 // stream.println(); 120 // stream.println(); 121 // 122 // Map<String, String> simpleAttrListTypeMapping = 123 // config.getSimpleAttrListTypeMapping(); 124 // stream.println("AttrListTypeMapping"); 125 // dumpMap(stream, simpleAttrListTypeMapping); 126 // stream.println( 127 // "***********************************************************"); 128 // stream.println(); 129 // stream.println(); 130 // 131 // Map<String, String> simpleAttrListTypePreConversionMapping = 132 // config.getSimpleAttrListTypePreConversionMapping(); 133 // stream.println("AttrListTypePreConversionMapping"); 134 // dumpMap(stream, simpleAttrListTypePreConversionMapping); 135 // stream.println( 136 // "***********************************************************"); 137 // stream.println(); 138 // stream.println(); 139 // 140 // Map<String, String> simpleAttrListTypeConversionMapping = 141 // config.getSimpleAttrListTypeConversionMappingNoItemValidation(); 142 // stream.println("AttrListTypeConversionMapping"); 143 // dumpMap(stream, simpleAttrListTypeConversionMapping); 144 // stream.println( 145 // "***********************************************************"); 146 // stream.println(); 147 // stream.println(); 148 // 149 // Map<String, String> simpleAttrListTypePostConversionMapping = config 150 // .getSimpleAttrListTypePostConversionMapping(); 151 // stream.println("AttrListTypePostConversionMapping"); 152 // dumpMap(stream, simpleAttrListTypePostConversionMapping); 153 // stream.println( 154 // "***********************************************************"); 155 // stream.println(); 156 // stream.println(); 157 // 158 // Map<String, String> simpleDataAtomicTypeMapping = 159 // config.getSimpleDataAtomicTypeMapping(); 160 // stream.println("DataAtomicTypeMapping"); 161 // dumpMap(stream, simpleDataAtomicTypeMapping); 162 // stream.println( 163 // "***********************************************************"); 164 // stream.println(); 165 // stream.println(); 166 // 167 // Map<String, String> simpleDataAtomicTypePreConversionMapping = config 168 // .getSimpleDataAtomicTypePreConversionMapping(); 169 // stream.println("DataAtomicTypePreConversionMapping"); 170 // dumpMap(stream, simpleDataAtomicTypePreConversionMapping); 171 // stream.println( 172 // "***********************************************************"); 173 // stream.println(); 174 // stream.println(); 175 // 176 // Map<String, String> simpleDataAtomicTypeConversionMapping = 177 // config.getSimpleDataAtomicTypeConversionMapping(); 178 // stream.println("DataAtomicTypeConversionMapping"); 179 // dumpMap(stream, simpleDataAtomicTypeConversionMapping); 180 // stream.println( 181 // "***********************************************************"); 182 // stream.println(); 183 // stream.println(); 184 // 185 // Map<String, String> simpleDataAtomicTypePostConversionMapping = 186 // config 187 // .getSimpleDataAtomicTypePostConversionMapping(); 188 // stream.println("DataAtomicTypePostConversionMapping"); 189 // dumpMap(stream, simpleDataAtomicTypePostConversionMapping); 190 // stream.println( 191 // "***********************************************************"); 192 // stream.println(); 193 // stream.println(); 194 // 195 // Map<String, String> simpleDataListTypeMapping = 196 // config.getSimpleDataListTypeMapping(); 197 // stream.println("DataListTypeMapping"); 198 // dumpMap(stream, simpleDataListTypeMapping); 199 // stream.println( 200 // "***********************************************************"); 201 // stream.println(); 202 // stream.println(); 203 // 204 // Map<String, String> simpleDataListTypeConversionMapping = 205 // config.getSimpleDataListTypeConversionMapping(); 206 // stream.println("DataListTypeConversionMapping"); 207 // dumpMap(stream, simpleDataListTypeConversionMapping); 208 // stream.println( 209 // "***********************************************************"); 210 // stream.println(); 211 // stream.println(); 212 // 213 stream.close(); 214 } 215 } 216