| 1 17 18 package com.finalist.jag.uml; 19 20 import com.finalist.jaggenerator.modules.*; 21 import com.finalist.jaggenerator.ConsoleLogger; 22 import com.finalist.jaggenerator.JagGenerator; 23 import com.finalist.uml14.simpleuml.*; 24 import org.w3c.dom.Document ; 25 import org.apache.commons.logging.Log; 26 import org.apache.commons.logging.LogFactory; 27 28 import javax.xml.parsers.DocumentBuilder ; 29 import javax.xml.parsers.DocumentBuilderFactory ; 30 import java.io.File ; 31 import java.io.OutputStream ; 32 import java.io.FileOutputStream ; 33 import java.io.IOException ; 34 import java.util.*; 35 36 37 43 public class Jag2UMLGenerator { 44 45 static Log log = LogFactory.getLog(Jag2UMLGenerator.class); 46 47 public final static String stringType = "java.lang.String"; 48 public final static String intType = "java.lang.Integer"; 49 public final static String sqlDateType = "java.sql.Date"; 50 public final static String sqlTimestampType = "java.sql.Timestamp"; 51 public final static String sqlUtilType = "java.util.Date"; 52 public final static String byteType = "java.lang.Byte"; 53 public final static String floatType = "java.lang.Float"; 54 public final static String doubleType = "java.lang.Double"; 55 public final static String longType = "java.lang.Long"; 56 public final static String shortType = "java.lang.Short"; 57 public final static String bigDecimalType = "java.math.BigDecimal"; 58 public final static String defaultType = "DEFAULT"; 59 60 public final static String stringValue = "String"; 61 public final static String intValue = "Integer"; 62 public final static String sqlDateValue = "Date"; 63 public final static String sqlTimestampValue = "Timestamp"; 64 public final static String sqlUtilValue = "Date"; 65 public final static String byteValue = "Byte"; 66 public final static String floatValue = "Float"; 67 public final static String doubleValue = "Double"; 68 public final static String longValue = "Long"; 69 public final static String shortValue = "Short"; 70 public final static String bigDecimalValue = "BigDecimal"; 71 72 public final static String defaultValue = "String"; 73 74 private HashMap typeMappings = null; 75 private SimpleUmlPackage javaLangPackage = null; 76 private SimpleUmlPackage javaUtilPackage = null; 77 private SimpleUmlPackage javaSqlPackage = null; 78 private SimpleUmlPackage javaMathPackage = null; 79 private static ConsoleLogger logger; 80 81 86 public Jag2UMLGenerator(ConsoleLogger logger) { 87 this.logger = logger; 88 } 89 90 93 public Jag2UMLGenerator() { 94 } 95 96 97 102 public void generateXMI(String skeletFileName) { 103 generateXMI(skeletFileName, null); 104 } 105 106 112 public void generateXMI(String skeletFileName, File output) { 113 Root root = null; 114 File skeletFile = null; 115 try { 116 skeletFile = new File (skeletFileName); 117 DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 118 DocumentBuilder builder = null; 119 Document doc = null; 120 builder = dbf.newDocumentBuilder(); 121 doc = builder.parse(skeletFile); 122 root = new Root(doc); 123 124 } catch (Exception e) { 125 e.printStackTrace(); 126 } 127 128 if (output == null) { 129 output = skeletFile.getParentFile(); 130 } 131 132 generateXMI(root, output); 133 } 134 135 private void generateXMI(Root root, File output) { 136 App app = root.app; 137 Config conf = root.config; 138 ArrayList sessionEJBs = root.getSessionEjbs(); 140 141 String rootPackage = app.rootPackageText.getText(); 142 String projectName = app.descriptionText.getText(); 143 144 SimpleModel simpleModel = new SimpleModel(); 145 simpleModel.setName(projectName); 146 149 createBasicTypes(simpleModel); 151 simpleModel.addSimpleUmlPackage(rootPackage); 152 createDataSource(root.datasource, simpleModel); 153 createConfigClass(root.config,root.app,root.paths,simpleModel); 154 155 HashMap entityEJBMap = createEntityEJBs(root.getEntityEjbs(), simpleModel); 157 158 HashMap sessionEJBMap = createSessionEJBs(root.getSessionEjbs(), simpleModel); 160 161 for (int i = 0; i < sessionEJBs.size(); i++) { 164 Session s = (Session) sessionEJBs.get(i); 165 String refName = s.getRefName(); 166 167 SimpleUmlClass sessionUMLClass = (SimpleUmlClass) sessionEJBMap.get(refName); 169 170 ArrayList entityRefs = s.getEntityRefs(); 171 for (int j = 0; j < entityRefs.size(); j++) { 172 String entityRefName = (String ) entityRefs.get(j); 173 SimpleUmlClass entityUMLClass = (SimpleUmlClass) entityEJBMap.get(entityRefName); 174 if (entityUMLClass != null) { 175 SimpleDependency dep = new SimpleDependency(); 177 dep.setClient(sessionUMLClass); 178 dep.setSupplier(entityUMLClass); 179 simpleModel.addSimpleDependency(dep); 182 } 183 } 185 } 186 createContainerManagedRelations(root.getEntityEjbs(), entityEJBMap, simpleModel); 187 188 try { 189 if (output.isDirectory()) { 190 output = new File (output, simpleModel.getName() + ".xmi"); 191 } 192 OutputStream outputStream = new FileOutputStream (output); 193 simpleModel.writeModel(outputStream); 194 } catch (IOException ioe) { 195 log("Error writing the file."); 196 } 197 } 198 199 206 private HashMap createEntityEJBs(ArrayList entityEJBs, SimpleModel simpleModel) { 207 HashMap map = new HashMap(); 208 for (int i = 0; i < entityEJBs.size(); i++) { 209 Entity e = (Entity) entityEJBs.get(i); 210 String documentation = e.getDescription().toString(); 211 String name = e.getName().toString(); 212 String refName = e.getRefName(); 213 String tableName = e.getTableName(); 214 String displayName = e.getDisplayName().toString(); 215 String entityRootPackage = e.getRootPackage().toString(); 216 217 simpleModel.addSimpleUmlPackage(entityRootPackage); 218 String isCompositeKey = e.getIsComposite(); 219 String isAssocation = e.getIsAssociationEntity(); 220 SimpleUmlClass umlClass = new SimpleUmlClass(name, SimpleModelElement.PUBLIC); 224 simpleModel.setStereoType(JagUMLProfile.STEREOTYPE_CLASS_ENTITY, umlClass); 227 simpleModel.addTaggedValue(JagUMLProfile.TAGGED_VALUE_DOCUMENTATION, documentation, umlClass); 228 simpleModel.addTaggedValue(JagUMLProfile.TAGGED_VALUE_CLASS_TABLE_NAME, tableName, umlClass); 229 if (!"".equals(displayName)) { 230 simpleModel.addTaggedValue(JagUMLProfile.TAGGED_VALUE_CLASS_DISPLAY_NAME, displayName, umlClass); 231 } 232 if ("true".equals(isCompositeKey)) { 233 simpleModel.addTaggedValue(JagUMLProfile.TAGGED_VALUE_CLASS_COMPOSITE_PRIMARY_KEY, e.getPrimaryKeyType().toString(), umlClass); 234 } 235 if ("true".equals(isAssocation)) { 236 simpleModel.addTaggedValue(JagUMLProfile.TAGGED_VALUE_CLASS_IS_ASSOCIATION, isAssocation, umlClass); 237 } 238 239 ArrayList fields = (ArrayList) e.getFields(); 240 for (int j = 0; j < fields.size(); j++) { 241 Field field = (Field) fields.get(j); 242 String fieldType = field.getType(); 243 String fieldName = field.getName().toString(); 244 SimpleUmlClass type = (SimpleUmlClass) typeMappings.get(fieldType); 245 if (type == null) { 246 log("Unknown type: " + type + " for field " + fieldType); 247 type = (SimpleUmlClass) typeMappings.get(this.stringType); 248 } 249 250 SimpleAttribute theAttribute = new SimpleAttribute(fieldName, SimpleModelElement.PUBLIC, type); 251 umlClass.addSimpleAttribute(theAttribute); 252 253 String foreignKey = field.getForeignKey().toString(); 254 256 if (field.isPrimaryKey()) { 257 simpleModel.setStereoType(JagUMLProfile.STEREOTYPE_ATTRIBUTE_PRIMARY_KEY, theAttribute); 258 } else if (field.isNullable() == false) { 259 260 simpleModel.setStereoType(JagUMLProfile.STEREOTYPE_ATTRIBUTE_REQUIRED, theAttribute); 261 } 262 263 if (field.isForeignKey()) { 264 String stereoTypeForeignKey = JagUMLProfile.STEREOTYPE_ATTRIBUTE_FOREIGN_KEY; 266 } 267 268 String jdbcType = field.getJdbcType().toString(); 269 simpleModel.addTaggedValue(JagUMLProfile.TAGGED_VALUE_ATTRIBUTE_JDBC_TYPE, jdbcType, theAttribute); 270 271 String sqlType = field.getSqlType().toString(); 272 simpleModel.addTaggedValue(JagUMLProfile.TAGGED_VALUE_ATTRIBUTE_SQL_TYPE, sqlType, theAttribute); 273 274 String columnName = field.getColumnName(); 275 simpleModel.addTaggedValue(JagUMLProfile.TAGGED_VALUE_ATTRIBUTE_COLUMN_NAME, columnName, theAttribute); 276 277 boolean autoGeneratedPrimarykey = field.getHasAutoGenPrimaryKey(); 278 simpleModel.addTaggedValue(JagUMLProfile.TAGGED_VALUE_ATTRIBUTE_AUTO_PRIMARY_KEY, 279 "" + autoGeneratedPrimarykey, theAttribute); 280 } 281 282 SimpleUmlPackage pk = simpleModel.addSimpleUmlPackage(entityRootPackage); 283 pk.addSimpleClassifier(umlClass); 284 map.put(refName, umlClass); 285 } 286 287 return map; 288 } 289 290 291 private HashMap createSessionEJBs(ArrayList sessionEJBs, SimpleModel simpleModel) { 292 HashMap map = new HashMap(); 293 for (int i = 0; i < sessionEJBs.size(); i++) { 294 Session s = (Session) sessionEJBs.get(i); 295 296 297 298 String sessionPackage = s.getRootPackage().toString(); 299 String documentation = s.getDescription().toString(); 300 String name = s.getName().toString(); 301 String refName = s.getRefName(); 302 303 simpleModel.addSimpleUmlPackage(sessionPackage); 304 SimpleUmlPackage pk = simpleModel.addSimpleUmlPackage(sessionPackage); 305 String sessionStereoType = JagUMLProfile.STEREOTYPE_CLASS_SERVICE; 307 308 SimpleUmlClass sessionClass = new SimpleUmlClass(name, SimpleModelElement.PUBLIC); 309 simpleModel.setStereoType(JagUMLProfile.STEREOTYPE_CLASS_SERVICE, sessionClass); 310 simpleModel.addTaggedValue(JagUMLProfile.TAGGED_VALUE_DOCUMENTATION, documentation, sessionClass); 311 pk.addSimpleClassifier(sessionClass); 312 313 ArrayList methods = s.getBusinessMethods(); 314 if (methods != null) { 315 for (int j=0; j< methods.size(); j++) { 316 BusinessMethod bm = (BusinessMethod) methods.get(j); 317 SimpleOperation op = new SimpleOperation(); 318 op.setName(bm.getMethodName()); 319 String desc = bm.getDescription(); 320 if (desc == null) { 321 desc = ""; 322 } 323 simpleModel.addTaggedValue(JagUMLProfile.TAGGED_VALUE_DOCUMENTATION, desc, op); 324 325 ArrayList arguments = bm.getArgumentList(); 327 if (arguments != null) { 328 for (int k=0; k < arguments.size(); k++) { 329 BusinessArgument arg = (BusinessArgument) arguments.get(k); 330 SimpleParameter sp = new SimpleParameter(); 331 sp.setName(arg.getName()); 332 SimpleUmlClass sc = new SimpleUmlClass(arg.getType(), SimpleModelElement.PUBLIC); 333 simpleModel.addSimpleClassifier(sc); 334 sp.setKind(SimpleParameter.IN); 335 sp.setType(sc); 336 op.addSimpleParameter(sp); 337 338 } 339 } 340 SimpleParameter sp = new SimpleParameter(); 342 sp.setName(""); 343 SimpleUmlClass sc = new SimpleUmlClass(bm.getReturnType(), SimpleModelElement.PUBLIC); 344 simpleModel.addSimpleClassifier(sc); 345 sp.setKind(SimpleParameter.RETURN); 346 sp.setType(sc); 347 op.addSimpleParameter(sp); 348 sessionClass.addSimpleOperation(op); 349 } 350 } 351 352 map.put(refName, sessionClass); 353 } 354 return map; 355 } 356 357 364 private void createContainerManagedRelations(ArrayList entityEJBs, HashMap entityEJBMap, SimpleModel simpleModel) { 365 for (int i = 0; i < entityEJBs.size(); i++) { 366 Entity e = (Entity) entityEJBs.get(i); 367 368 List relationFieldNames = e.getRelations(); 369 370 for (int j = 0; j < relationFieldNames.size(); j++) { 371 Relation rel = (Relation) relationFieldNames.get(j); 372 String source = e.getRefName(); 373 String destination = rel.getRelatedEntity().getRefName(); 374 boolean navigable = rel.isBidirectional(); 375 376 int targetCardinality = -1; 377 if (rel.isTargetMultiple()) { 378 targetCardinality = -1; 380 } else { 381 targetCardinality = 1; 382 } 383 384 SimpleUmlClass sourceClass = (SimpleUmlClass) entityEJBMap.get(source); 385 SimpleUmlClass destinationClass = (SimpleUmlClass) entityEJBMap.get(destination); 386 if (sourceClass != null && destinationClass != null) { 387 SimpleAssociationEnd sourceEnd = new SimpleAssociationEnd(sourceClass.getName(), sourceClass, 0, 1, navigable); 388 SimpleAssociationEnd destinationEnd = 389 new SimpleAssociationEnd(destinationClass.getName(), destinationClass, 0, targetCardinality, true); 390 SimpleAssociation assoc = new SimpleAssociation(rel.getFieldName().toString(), sourceEnd, destinationEnd); 391 simpleModel.addTaggedValue(JagUMLProfile.TAGGED_VALUE_ASSOCIATION_FOREIGN_FIELD, 392 rel.getForeignPkFieldName().toString(), assoc); 393 simpleModel.addTaggedValue(JagUMLProfile.TAGGED_VALUE_ASSOCIATION_MULTIPLICITY, 394 rel.isTargetMultiple() ? JagUMLProfile.TAGGED_VALUE_ASSOCIATION_MULTIPLICITY_MANY_TO_ONE: JagUMLProfile.TAGGED_VALUE_ASSOCIATION_MULTIPLICITY_ONE_TO_ONE, assoc); 395 simpleModel.addTaggedValue(JagUMLProfile.TAGGED_VALUE_ASSOCIATION_BIDIRECTIONAL, 396 rel.isBidirectional() ? "true":"false", assoc); 397 simpleModel.addSimpleAssociation(assoc); 398 } 400 401 } 402 } 403 404 } 405 406 407 private void createConfigClass(Config config, App app, Paths paths, SimpleModel simpleModel) { 408 String rootPackage = app.rootPackageText.getText(); 409 String projectName = app.descriptionText.getText(); 410 String logging = app.getLogFramework(); 411 SimpleUmlClass dsClass = new SimpleUmlClass("Config" + projectName, SimpleModelElement.PUBLIC); 412 simpleModel.setStereoType(JagUMLProfile.STEREOTYPE_CLASS_JAG_CONFIG, dsClass); 413 414 simpleModel.addTaggedValue(JagUMLProfile.TAGGED_VALUE_MODEL_AUTHOR, config.getAuthorText(), dsClass); 416 simpleModel.addTaggedValue(JagUMLProfile.TAGGED_VALUE_MODEL_VERSION, config.getVersionText(), dsClass); 417 simpleModel.addTaggedValue(JagUMLProfile.TAGGED_VALUE_MODEL_COMPANY, config.getCompanyText(), dsClass); 418 simpleModel.addTaggedValue(JagUMLProfile.TAGGED_VALUE_MODEL_TEMPLATE, 419 config.getTemplate().getTemplateDir().toString(), dsClass); 420 if (config.getTemplateSettings().get(JagGenerator.TEMPLATE_APPLICATION_SERVER) != null) { 421 simpleModel.addTaggedValue(JagUMLProfile.TAGGED_VALUE_CONFIG_APPSERVER, 422 (String ) config.getTemplateSettings().get(JagGenerator.TEMPLATE_APPLICATION_SERVER), dsClass); 423 } 424 if (config.getTemplateSettings().get(JagGenerator.TEMPLATE_USE_RELATIONS) != null) { 425 simpleModel.addTaggedValue(JagUMLProfile.TAGGED_VALUE_CONFIG_USE_RELATIONS, 426 (String ) config.getTemplateSettings().get(JagGenerator.TEMPLATE_USE_RELATIONS), dsClass); 427 } 428 if (config.getTemplateSettings().get(JagGenerator.TEMPLATE_USE_MOCK) != null) { 429 simpleModel.addTaggedValue(JagUMLProfile.TAGGED_VALUE_CONFIG_USE_MOCK, 430 (String ) config.getTemplateSettings().get(JagGenerator.TEMPLATE_USE_MOCK), dsClass); 431 } 432 if (config.getTemplateSettings().get(JagGenerator.TEMPLATE_USE_JAVA5) != null) { 433 simpleModel.addTaggedValue(JagUMLProfile.TAGGED_VALUE_CONFIG_USE_JAVA5, 434 (String ) config.getTemplateSettings().get(JagGenerator.TEMPLATE_USE_JAVA5), dsClass); 435 } 436 if (config.getTemplateSettings().get(JagGenerator.TEMPLATE_WEB_TIER) != null) { 437 simpleModel.addTaggedValue(JagUMLProfile.TAGGED_VALUE_CONFIG_WEB_TIER, 438 (String ) config.getTemplateSettings().get(JagGenerator.TEMPLATE_WEB_TIER), dsClass); 439 } 440 441 if (config.getTemplateSettings().get(JagGenerator.TEMPLATE_BUSINESS_TIER) != null) { 442 simpleModel.addTaggedValue(JagUMLProfile.TAGGED_VALUE_CONFIG_BUSINESS_TIER, 443 (String ) config.getTemplateSettings().get(JagGenerator.TEMPLATE_BUSINESS_TIER), dsClass); 444 } 445 if (config.getTemplateSettings().get(JagGenerator.TEMPLATE_SERVICE_TIER) != null) { 446 simpleModel.addTaggedValue(JagUMLProfile.TAGGED_VALUE_CONFIG_SERVICE_TIER, 447 (String ) config.getTemplateSettings().get(JagGenerator.TEMPLATE_SERVICE_TIER), dsClass); 448 } 449 450 simpleModel.addTaggedValue(JagUMLProfile.TAGGED_VALUE_MODEL_APPLICATION_NAME, app.getName().toString(), dsClass); 452 simpleModel.addTaggedValue(JagUMLProfile.TAGGED_VALUE_MODEL_DESCRIPTION, projectName, dsClass); 453 simpleModel.addTaggedValue(JagUMLProfile.TAGGED_VALUE_MODEL_APPLICATION_VERSION, app.getVersion().toString(), dsClass); 454 simpleModel.addTaggedValue(JagUMLProfile.TAGGED_VALUE_MODEL_ROOT_PACKAGE, rootPackage, dsClass); 455 simpleModel.addTaggedValue(JagUMLProfile.TAGGED_VALUE_MODEL_LOGGING, logging, dsClass); 456 simpleModel.addTaggedValue(JagUMLProfile.TAGGED_VALUE_MODEL_DATE_FORMAT, app.getDateFormat().toString(), dsClass); 457 simpleModel.addTaggedValue(JagUMLProfile.TAGGED_VALUE_MODEL_TIMESTAMP_FORMAT, app.getTimestampFormat().toString(), dsClass); 458 459 simpleModel.addTaggedValue(JagUMLProfile.TAGGED_VALUE_MODEL_SERVICE_PATH, paths.getServiceOutput(), dsClass); 461 simpleModel.addTaggedValue(JagUMLProfile.TAGGED_VALUE_MODEL_EJB_PATH, paths.getEjbOutput(), dsClass); 462 simpleModel.addTaggedValue(JagUMLProfile.TAGGED_VALUE_MODEL_WEB_PATH, paths.getWebOutput(), dsClass); 463 simpleModel.addTaggedValue(JagUMLProfile.TAGGED_VALUE_MODEL_JSP_PATH, paths.getJspOutput(), dsClass); 464 simpleModel.addTaggedValue(JagUMLProfile.TAGGED_VALUE_MODEL_TEST_PATH, paths.getTestOutput(), dsClass); 465 simpleModel.addTaggedValue(JagUMLProfile.TAGGED_VALUE_MODEL_CONFIG_PATH, paths.getConfigOutput(), dsClass); 466 simpleModel.addTaggedValue(JagUMLProfile.TAGGED_VALUE_MODEL_SWING_PATH, paths.getSwingOutput(), dsClass); 467 simpleModel.addTaggedValue(JagUMLProfile.TAGGED_VALUE_MODEL_MOCK_PATH, paths.getMockOutput(), dsClass); 468 simpleModel.addTaggedValue(JagUMLProfile.TAGGED_VALUE_MODEL_HIBERNATE_PATH, paths.getHibernateOutput(), dsClass); 469 470 simpleModel.addSimpleClassifier(dsClass); 471 } 472 473 474 475 private void createDataSource(Datasource ds, SimpleModel simpleModel) { 476 SimpleUmlClass dsClass = new SimpleUmlClass("DataSource" + simpleModel.getName(), SimpleModelElement.PUBLIC); 477 simpleModel.setStereoType(JagUMLProfile.STEREOTYPE_CLASS_DATA_SOURCE, dsClass); 478 simpleModel.addTaggedValue(JagUMLProfile.TAGGED_VALUE_CLASS_DATA_SOURCE_JDBC_URL, ds.getJdbcUrl().toString(), dsClass); 479 simpleModel.addTaggedValue(JagUMLProfile.TAGGED_VALUE_CLASS_DATA_SOURCE_MAPPING, 480 ds.getDatabase().getTypeMapping(), dsClass); 481 simpleModel.addTaggedValue(JagUMLProfile.TAGGED_VALUE_CLASS_DATA_SOURCE_USER_NAME, ds.getUserName().toString(), dsClass); 482 simpleModel.addTaggedValue(JagUMLProfile.TAGGED_VALUE_CLASS_DATA_SOURCE_PASSWORD, ds.getPassword().toString(), dsClass); 483 simpleModel.addTaggedValue(JagUMLProfile.TAGGED_VALUE_CLASS_DATA_SOURCE_JNDI_NAME, ds.getJndiName().toString(), dsClass); 484 simpleModel.addSimpleClassifier(dsClass); 485 } 486 487 495 public HashMap createBasicTypes(SimpleModel simpleModel) { 496 if (typeMappings != null) { 497 return typeMappings; 498 } 499 typeMappings = new HashMap(); 500 501 javaLangPackage = simpleModel.addSimpleUmlPackage("java.lang"); 503 javaUtilPackage = simpleModel.addSimpleUmlPackage("java.util"); 504 javaSqlPackage = simpleModel.addSimpleUmlPackage("java.sql"); 505 javaMathPackage = simpleModel.addSimpleUmlPackage("java.math"); 506 507 508 HashMap basicTypes = new HashMap(); 510 511 basicTypes.put(stringType, stringValue); 512 basicTypes.put(intType, intValue); 513 basicTypes.put(byteType, byteValue); 514 basicTypes.put(shortType, shortValue); 515 basicTypes.put(floatType, floatValue); 516 basicTypes.put(doubleType, doubleValue); 517 basicTypes.put(longType, longValue); 518 519 Set basicTypesSet = basicTypes.keySet(); 520 for (Iterator iterator = basicTypesSet.iterator(); iterator.hasNext();) { 521 String key = (String ) iterator.next(); 522 SimpleUmlClass simpleUmlClass = new SimpleUmlClass((String ) basicTypes.get(key), SimpleModelElement.PUBLIC); 523 javaLangPackage.addSimpleClassifier(simpleUmlClass); 524 typeMappings.put(key, simpleUmlClass); 525 } 526 basicTypes.put(bigDecimalType, bigDecimalValue); 527 basicTypes.put(sqlDateType, sqlDateValue); 528 basicTypes.put(sqlTimestampType, sqlTimestampValue); 529 basicTypes.put(sqlUtilType, sqlUtilValue); 530 typeMappings.put(defaultType, typeMappings.get(stringType)); 532 533 SimpleUmlClass simpleUmlClass = new SimpleUmlClass((String ) basicTypes.get(bigDecimalType), SimpleModelElement.PUBLIC); 535 javaMathPackage.addSimpleClassifier(simpleUmlClass); 536 typeMappings.put(bigDecimalType, simpleUmlClass); 537 538 simpleUmlClass = new SimpleUmlClass((String ) basicTypes.get(sqlDateType), SimpleModelElement.PUBLIC); 539 javaSqlPackage.addSimpleClassifier(simpleUmlClass); 540 typeMappings.put(sqlDateType, simpleUmlClass); 541 542 simpleUmlClass = new SimpleUmlClass((String ) basicTypes.get(sqlTimestampType), SimpleModelElement.PUBLIC); 543 javaSqlPackage.addSimpleClassifier(simpleUmlClass); 544 typeMappings.put(sqlTimestampType, simpleUmlClass); 545 546 simpleUmlClass = new SimpleUmlClass((String ) basicTypes.get(sqlUtilType), SimpleModelElement.PUBLIC); 547 javaUtilPackage.addSimpleClassifier(simpleUmlClass); 548 typeMappings.put(sqlUtilType, simpleUmlClass); 549 550 return typeMappings; 551 } 552 553 557 public static void main(String [] args) { 558 if (args.length == 1) { 559 (new Jag2UMLGenerator()).generateXMI(args[0]); 560 } else { 561 log("Pass a JAG xml file as argument!"); 562 } 563 564 565 } 566 567 private static void log(String message) { 568 log.info(message); 569 if (logger == null) { 570 log.info(message); 571 } 572 } 573 } 574 575 | Popular Tags |