Package eomodeldoc

Source Code of eomodeldoc.EOModelGraffle

package eomodeldoc;

import java.io.File;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Set;

import org.eclipse.core.runtime.NullProgressMonitor;
import org.objectstyle.wolips.eomodeler.core.model.EOModelGroup;
import org.objectstyle.wolips.eomodeler.core.model.EOModelVerificationFailure;
import org.objectstyle.wolips.eomodeler.doc.EOModelGraffleGenerator;
import org.objectstyle.wolips.eomodeler.factories.EclipseProjectEOModelGroupFactory;
import org.objectstyle.wolips.eomodeler.factories.IDEAProjectEOModelGroupFactory;
import org.objectstyle.wolips.eomodeler.factories.SimpleManifestEOModelGroupFactory;

public class EOModelGraffle {
  @SuppressWarnings("deprecation")
  public static void main(String[] args) throws Exception {
    System.setProperty("javax.xml.xpath.XPathFactory:http://java.sun.com/jaxp/xpath/dom", "com.sun.org.apache.xpath.internal.jaxp.XPathFactoryImpl");
    File modelGroupFolder = new File(".");
    File outputFile = null;
    File templateFolder = null;
    List<String> modelPaths = new LinkedList<String>();
    for (int argNum = 0; argNum < args.length; argNum++) {
      String arg = args[argNum];
      if ("-model".equals(arg)) {
        modelPaths.add(args[++argNum]);
      }
      else if ("-modelgroup".equals(arg)) {
        modelGroupFolder = new File(args[++argNum]);
      }
      else if ("-templates".equals(arg)) {
        templateFolder = new File(args[++argNum]);
      }
      else if ("-output".equals(arg)) {
        outputFile = new File(args[++argNum]);
      }
    }

    if (outputFile == null) {
      System.out.println("eomodelgraffle -output /path/to/output/Model.graffle [-model /path/to/model.eomodeld]* [-modelgroup /path/to/working/dir] [-templates /path/to/templates]");
      System.exit(0);
    }

    EOModelGroup modelGroup = new EOModelGroup();
    Set<EOModelVerificationFailure> failures = new HashSet<EOModelVerificationFailure>();
    if (modelPaths.size() == 0) {
      new SimpleManifestEOModelGroupFactory().loadModelGroup(modelGroupFolder, modelGroup, failures, true, new NullProgressMonitor());
      new IDEAProjectEOModelGroupFactory().loadModelGroup(modelGroupFolder, modelGroup, failures, true, new NullProgressMonitor());
      new EclipseProjectEOModelGroupFactory().loadModelGroup(modelGroupFolder, modelGroup, failures, true, new NullProgressMonitor());
    }
    else {
      for (String modelPath : modelPaths) {
        modelGroup.loadModelFromURL(new File(modelPath).toURL());
      }
    }
    modelGroup.resolve(failures);
    modelGroup.verify(failures);
    EOModelGraffleGenerator g = new EOModelGraffleGenerator(false, modelGroup, templateFolder, outputFile);
    g.generate();
  }
}
TOP

Related Classes of eomodeldoc.EOModelGraffle

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.