コード例 #1
0
  /**
   * @param classifiers
   * @return
   */
  private Document generateConfig(Collection classifiers) {
    Element configEl = new Element("hibernate-configuration");

    Element sessEl = new Element("session-factory");
    configEl.addContent(sessEl);

    for (Iterator i = classifiers.iterator(); i.hasNext(); ) {
      Classifier klass = (Classifier) i.next();
      UmlPackage pkg = null;
      if (_pkgName != null) {
        pkg = UML13Utils.getPackage(UML13Utils.getModel(klass), _pkgName);
      } else {
        pkg = UML13Utils.getModel(klass);
      }

      String fileSuffix = _fileSuffix;
      if (fileSuffix == null) {
        fileSuffix = ".hbm.xml";
      }
      UmlClass superClass = UML13Utils.getSuperClass((UmlClass) klass);
      if (superClass == null) {
        String nn = UML13Utils.getNamespaceName(pkg, klass);
        String resourceName =
            nn.replace('.', '/') + Constant.FORWARD_SLASH + klass.getName() + fileSuffix;
        //               String implResourceName = resourceName + "/impl";
        Element mappingEl = new Element("mapping");
        sessEl.addContent(mappingEl);
        mappingEl.setAttribute("resource", resourceName);

        String resourceName1 =
            nn.replace('.', '/') + "/impl/" + klass.getName() + "Impl" + fileSuffix;
        Element mappingE2 = new Element("mapping");
        sessEl.addContent(mappingE2);
        mappingE2.setAttribute("resource", resourceName1);
      }
    }

    DocType docType =
        new DocType(
            "hibernate-configuration",
            "-//Hibernate/Hibernate Configuration DTD 3.0//EN",
            "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd");
    Document doc = new Document();
    doc.setDocType(docType);
    doc.setRootElement(configEl);
    return doc;
  }