Author: jsdelfino
Date: Tue Feb 28 23:49:30 2006
New Revision: 381939
URL: http://svn.apache.org/viewcvs?rev=381939&view=rev
Log:
integrated SCA WSDL2Java tool with the Axis 2 WSDL2Java code generator - first
stable version of the command line tool and Maven plugin
Added:
incubator/tuscany/java/sca/tools/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/JavaInterfaceGenerator.java
(with props)
incubator/tuscany/java/sca/tools/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/SDODataBindingCodegenExtension.java
(with props)
Modified:
incubator/tuscany/java/sca/plugin/src/main/java/org/apache/tuscany/tools/wsdl2java/plugin/WSDL2JavaGeneratorMojo.java
incubator/tuscany/java/sca/tools/pom.xml
incubator/tuscany/java/sca/tools/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/WSDL2JavaGenerator.java
Modified:
incubator/tuscany/java/sca/plugin/src/main/java/org/apache/tuscany/tools/wsdl2java/plugin/WSDL2JavaGeneratorMojo.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/plugin/src/main/java/org/apache/tuscany/tools/wsdl2java/plugin/WSDL2JavaGeneratorMojo.java?rev=381939&r1=381938&r2=381939&view=diff
==============================================================================
---
incubator/tuscany/java/sca/plugin/src/main/java/org/apache/tuscany/tools/wsdl2java/plugin/WSDL2JavaGeneratorMojo.java
(original)
+++
incubator/tuscany/java/sca/plugin/src/main/java/org/apache/tuscany/tools/wsdl2java/plugin/WSDL2JavaGeneratorMojo.java
Tue Feb 28 23:49:30 2006
@@ -79,8 +79,8 @@
File file = files[i];
File marker = new File(targetDirectory, ".gen#" + file.getName());
if (file.lastModified() > marker.lastModified()) {
- getLog().info("Generating SDO interfaces from " + file);
- WSDL2JavaGenerator.generateFromWSDL(file.toString(),
targetDirectory, javaPackage, genOptions);
+ getLog().info("Generating Java service interfaces from " +
file);
+ WSDL2JavaGenerator.generateFromWSDL(file.toString(),
targetDirectory, javaPackage, null, genOptions);
}
try {
marker.createNewFile();
Modified: incubator/tuscany/java/sca/tools/pom.xml
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/tools/pom.xml?rev=381939&r1=381938&r2=381939&view=diff
==============================================================================
--- incubator/tuscany/java/sca/tools/pom.xml (original)
+++ incubator/tuscany/java/sca/tools/pom.xml Tue Feb 28 23:49:30 2006
@@ -43,6 +43,12 @@
<version>SNAPSHOT</version>
<scope>compile</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.tuscany</groupId>
+ <artifactId>tuscany-model</artifactId>
+ <version>SNAPSHOT</version>
+ <scope>compile</scope>
+ </dependency>
<dependency>
<groupId>org.eclipse.emf</groupId>
@@ -83,14 +89,14 @@
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.0.4</version>
- <scope>test</scope>
+ <scope>compile</scope>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.12</version>
- <scope>test</scope>
+ <scope>compile</scope>
</dependency>
<dependency>
Added:
incubator/tuscany/java/sca/tools/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/JavaInterfaceGenerator.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/tools/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/JavaInterfaceGenerator.java?rev=381939&view=auto
==============================================================================
---
incubator/tuscany/java/sca/tools/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/JavaInterfaceGenerator.java
(added)
+++
incubator/tuscany/java/sca/tools/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/JavaInterfaceGenerator.java
Tue Feb 28 23:49:30 2006
@@ -0,0 +1,142 @@
+/**
+ *
+ * Copyright 2005 BEA Systems Inc.
+ * Copyright 2005 International Business Machines Corporation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.tools.wsdl2java.generate;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.wsdl.WSDLException;
+import javax.xml.namespace.QName;
+
+import org.apache.axis2.i18n.Messages;
+import org.apache.axis2.util.FileWriter;
+import org.apache.axis2.wsdl.builder.WOMBuilderFactory;
+import org.apache.axis2.wsdl.codegen.CodeGenConfiguration;
+import org.apache.axis2.wsdl.codegen.CodeGenerationException;
+import org.apache.axis2.wsdl.codegen.emitter.JavaEmitter;
+import org.apache.axis2.wsdl.codegen.extension.CodeGenExtension;
+import org.apache.axis2.wsdl.codegen.extension.DefaultDatabindingExtension;
+import org.apache.axis2.wsdl.codegen.extension.PackageFinder;
+import org.apache.axis2.wsdl.codegen.extension.WSDLValidatorExtension;
+import org.apache.axis2.wsdl.codegen.writer.InterfaceWriter;
+import org.apache.axis2.wsdl.databinding.JavaTypeMapper;
+import org.apache.axis2.wsdl.i18n.CodegenMessages;
+import org.apache.tuscany.model.util.XMLNameUtil;
+import org.apache.wsdl.WSDLDescription;
+import org.w3c.dom.Document;
+
+public class JavaInterfaceGenerator {
+
+ private List codegenExtensions = new ArrayList();
+ private CodeGenConfiguration codegenConfiguration;
+
+ public JavaInterfaceGenerator(String uri, String outputLocation, String
packageName, Map<QName, String> typeMapping) throws CodeGenerationException {
+ WSDLDescription wom;
+ try {
+ wom =
WOMBuilderFactory.getBuilder(org.apache.wsdl.WSDLConstants.WSDL_1_1).build(uri).getDescription();
+ } catch (WSDLException e) {
+ throw new
CodeGenerationException(CodegenMessages.getMessage("engine.wsdlParsingException"),
e);
+ }
+
+ if (packageName==null)
+
packageName=XMLNameUtil.getPackageNameFromNamespace(wom.getTargetNameSpace());
+
+ JavaTypeMapper typeMapper=new JavaTypeMapper();
+ for (Map.Entry<QName, String> e : typeMapping.entrySet() ) {
+ typeMapper.addTypeMappingName(e.getKey(), e.getValue());
+ }
+
+ codegenConfiguration = new CodeGenConfiguration(wom, new HashMap());
+ codegenConfiguration.setAdvancedCodeGenEnabled(false);
+ codegenConfiguration.setAsyncOn(false);
+ codegenConfiguration.setCodeGenerationStyle(0);
+ codegenConfiguration.setDatabindingType("sdo");
+ codegenConfiguration.setGenerateAll(true);
+ codegenConfiguration.setGenerateDeployementDescriptor(false);
+ codegenConfiguration.setOutputLanguage("java");
+ codegenConfiguration.setOutputLocation(new File(outputLocation));
+ codegenConfiguration.setPackageName(packageName);
+ codegenConfiguration.setPackClasses(true);
+ codegenConfiguration.setPolicyMap(new HashMap());
+ codegenConfiguration.setPortName(null);
+ codegenConfiguration.setServerSide(false);
+ codegenConfiguration.setServiceName(null);
+ codegenConfiguration.setSyncOn(true);
+ codegenConfiguration.setTypeMapper(typeMapper);
+ codegenConfiguration.setWriteMessageReceiver(false);
+ codegenConfiguration.setWriteTestCase(false);
+
+ addExtension(new WSDLValidatorExtension());
+ addExtension(new PackageFinder());
+ addExtension(new SDODataBindingCodegenExtension(typeMapper));
+ addExtension(new DefaultDatabindingExtension());
+ }
+
+ private void addExtension(CodeGenExtension ext) {
+ ext.init(codegenConfiguration);
+ codegenExtensions.add(ext);
+ }
+
+
+ public void generate() throws CodeGenerationException {
+ try {
+ for (int i = 0; i < codegenExtensions.size(); i++) {
+ ((CodeGenExtension) codegenExtensions.get(i)).engage();
+ }
+
+ class JavaInterfaceEmitter extends JavaEmitter {
+
+ protected void writeInterface(boolean writeDatabinders) throws
Exception {
+ Document interfaceModel =
createDOMDocumentForInterface(writeDatabinders);
+ if (!configuration.getOutputLocation().exists()) {
+ configuration.getOutputLocation().mkdirs();
+ }
+ InterfaceWriter interfaceWriter =
+ new
InterfaceWriter(this.configuration.getOutputLocation(),
+ this.configuration.getOutputLanguage());
+
+ String packageName =
interfaceModel.getDocumentElement().getAttribute("package");
+ String className =
interfaceModel.getDocumentElement().getAttribute("name");
+
+ System.out.println(">> Generating Java class
"+packageName+"."+className);
+ File outputFile =
FileWriter.createClassFile(this.configuration.getOutputLocation(), packageName,
className, ".java");
+ if (outputFile.exists())
+ outputFile.delete();
+
+ writeClass(interfaceModel, interfaceWriter);
+ };
+
+ };
+
+ JavaInterfaceEmitter emitter=new JavaInterfaceEmitter();
+ emitter.setCodeGenConfiguration(codegenConfiguration);
+ emitter.setMapper(codegenConfiguration.getTypeMapper());
+
+ emitter.writeInterface(false);
+
+ } catch (Exception e) {
+ throw new CodeGenerationException(e);
+ }
+ }
+
+
+}
Propchange:
incubator/tuscany/java/sca/tools/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/JavaInterfaceGenerator.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
incubator/tuscany/java/sca/tools/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/JavaInterfaceGenerator.java
------------------------------------------------------------------------------
svn:keywords = Rev,Date
Added:
incubator/tuscany/java/sca/tools/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/SDODataBindingCodegenExtension.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/tools/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/SDODataBindingCodegenExtension.java?rev=381939&view=auto
==============================================================================
---
incubator/tuscany/java/sca/tools/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/SDODataBindingCodegenExtension.java
(added)
+++
incubator/tuscany/java/sca/tools/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/SDODataBindingCodegenExtension.java
Tue Feb 28 23:49:30 2006
@@ -0,0 +1,48 @@
+/**
+ *
+ * Copyright 2005 BEA Systems Inc.
+ * Copyright 2005 International Business Machines Corporation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.tools.wsdl2java.generate;
+
+import org.apache.axis2.wsdl.codegen.extension.AbstractDBProcessingExtension;
+import org.apache.axis2.wsdl.databinding.TypeMapper;
+
+/**
+ * SDO data binding codegen extension.
+ */
+public class SDODataBindingCodegenExtension extends
AbstractDBProcessingExtension {
+
+ private TypeMapper typeMapper;
+
+ public SDODataBindingCodegenExtension(TypeMapper typeMapper) {
+ this.typeMapper=typeMapper;
+ }
+
+ protected boolean testFallThrough(String dbFrameworkName) {
+ return !dbFrameworkName.equals("sdo");
+ }
+
+ public void engage() {
+ if (testFallThrough(configuration.getDatabindingType())) {
+ return;
+ }
+
+ // Set the type mapper into the config
+ configuration.setTypeMapper(typeMapper);
+
+ }
+
+}
Propchange:
incubator/tuscany/java/sca/tools/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/SDODataBindingCodegenExtension.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
incubator/tuscany/java/sca/tools/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/SDODataBindingCodegenExtension.java
------------------------------------------------------------------------------
svn:keywords = Rev,Date
Modified:
incubator/tuscany/java/sca/tools/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/WSDL2JavaGenerator.java
URL:
http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/tools/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/WSDL2JavaGenerator.java?rev=381939&r1=381938&r2=381939&view=diff
==============================================================================
---
incubator/tuscany/java/sca/tools/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/WSDL2JavaGenerator.java
(original)
+++
incubator/tuscany/java/sca/tools/src/main/java/org/apache/tuscany/tools/wsdl2java/generate/WSDL2JavaGenerator.java
Tue Feb 28 23:49:30 2006
@@ -23,36 +23,37 @@
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Collections;
+import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
+import java.util.Map;
import java.util.StringTokenizer;
-import org.apache.axis2.wsdl.WSDL2Java;
+import javax.xml.namespace.QName;
+
import org.apache.tuscany.sdo.helper.XSDHelperImpl;
import org.apache.tuscany.sdo.util.DataObjectUtil;
+import org.eclipse.emf.codegen.ecore.genmodel.GenClass;
import org.eclipse.emf.codegen.ecore.genmodel.GenModel;
import org.eclipse.emf.codegen.ecore.genmodel.GenModelFactory;
import org.eclipse.emf.codegen.ecore.genmodel.GenPackage;
import org.eclipse.emf.codegen.util.CodeGenUtil;
-import org.eclipse.emf.common.util.BasicMonitor;
import org.eclipse.emf.common.util.Diagnostic;
import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EClassifier;
import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.emf.ecore.impl.EPackageRegistryImpl;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.resource.ResourceSet;
import org.eclipse.emf.ecore.util.BasicExtendedMetaData;
-import org.eclipse.emf.ecore.util.Diagnostician;
import org.eclipse.emf.ecore.util.ExtendedMetaData;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.util.XSDResourceImpl;
import commonj.sdo.helper.XSDHelper;
-public class WSDL2JavaGenerator
-{
+public class WSDL2JavaGenerator {
/**
* Generate Java interfaces from WSDL
@@ -79,14 +80,6 @@
*/
public static void main(String args[])
{
- try {
- WSDL2Java.main(args);
- } catch (Exception e) {
- throw new IllegalArgumentException(e);
- }
- if (true)
- return;
-
if (args.length == 0)
{
printUsage();
@@ -95,7 +88,8 @@
String targetDirectory = null;
- String javaPackage = null;
+ String wsdlJavaPackage = null;
+ String xsdJavaPackage = null;
int genOptions = 0;
@@ -108,7 +102,7 @@
}
else if (args[index].equalsIgnoreCase("-javaPackage"))
{
- javaPackage = args[++index];
+ wsdlJavaPackage = args[++index];
}
//else if (...)
else
@@ -117,101 +111,102 @@
return;
}
}
-
+
String wsdlFileName = args[index];
+ if (wsdlFileName==null || targetDirectory==null) {
+ printUsage();
+ return;
+ }
+
+ generateFromWSDL(wsdlFileName, targetDirectory, wsdlJavaPackage,
xsdJavaPackage, 0);
- generateFromWSDL(wsdlFileName, targetDirectory, javaPackage, 0);
}
- public static void generateFromWSDL(String xsdFileName, String
targetDirectory, String javaPackage, int genOptions)
+ public static void generateFromWSDL(String wsdlFileName, String
targetDirectory, String wsdlJavaPackage, String xsdJavaPackage, int genOptions)
{
DataObjectUtil.initRuntime();
- EPackage.Registry packageRegistry = new
EPackageRegistryImpl(EPackage.Registry.INSTANCE)
- {
- public EPackage firstPackage = null;
-
- };
+ EPackage.Registry packageRegistry = new
EPackageRegistryImpl(EPackage.Registry.INSTANCE);
ExtendedMetaData extendedMetaData = new
BasicExtendedMetaData(packageRegistry);
XSDHelper xsdHelper = new XSDHelperImpl(extendedMetaData);
try
{
- File inputFile = new File(xsdFileName).getAbsoluteFile();
+ File inputFile = new File(wsdlFileName).getAbsoluteFile();
InputStream inputStream = new FileInputStream(inputFile);
xsdHelper.define(inputStream, inputFile.toURI().toString());
if (targetDirectory == null)
{
- targetDirectory = new File(xsdFileName).getCanonicalFile().getParent();
+ targetDirectory = new
File(wsdlFileName).getCanonicalFile().getParent();
}
else
{
targetDirectory = new File(targetDirectory).getCanonicalPath();
}
+ Map<QName, String> typeMapping=new HashMap<QName, String>();
if (!packageRegistry.values().isEmpty())
{
- String packageURI = getSchemaNamespace(xsdFileName);
ResourceSet resourceSet = DataObjectUtil.createResourceSet();
-
- List usedGenPackages = new ArrayList();
- GenModel genModel = null;
+
+ List<GenPackage> genPackages=new ArrayList<GenPackage>();
+ Map<EClass, GenClass> genClasses=new HashMap<EClass, GenClass>();
for (Iterator iter = packageRegistry.values().iterator();
iter.hasNext();)
{
EPackage currentEPackage = (EPackage)iter.next();
- String currentBasePackage = extractBasePackageName(currentEPackage,
javaPackage);
+ String currentBasePackage = extractBasePackageName(currentEPackage,
xsdJavaPackage);
String currentPrefix =
CodeGenUtil.capName(currentEPackage.getName());
GenPackage currentGenPackage = createGenPackage(currentEPackage,
currentBasePackage, currentPrefix, genOptions, resourceSet);
- if (currentEPackage.getNsURI().equals(packageURI))
- {
- genModel = currentGenPackage.getGenModel();
- }
- else
- {
- usedGenPackages.add(currentGenPackage);
+ genPackages.add(currentGenPackage);
+ for (GenClass genClass :
(List<GenClass>)currentGenPackage.getGenClasses()) {
+ genClasses.put(genClass.getEcoreClass(), genClass);
}
+
}
-
- genModel.getUsedGenPackages().addAll(usedGenPackages);
- generateFromGenModel(genModel, targetDirectory);
- }
- /*
- for (Iterator iter = packageRegistry.values().iterator();
iter.hasNext();)
- {
- EPackage ePackage = (EPackage)iter.next();
- String basePackage = extractBasePackageName(ePackage, javaPackage);
- if (prefix == null)
- {
- prefix = CodeGenUtil.capName(ePackage.getName());
+ for (GenPackage currentGenPackage : genPackages) {
+ EPackage currentEPackage=currentGenPackage.getEcorePackage();
+ for (GenClass genClass :
(List<GenClass>)currentGenPackage.getGenClasses()) {
+ QName qname=new
QName(extendedMetaData.getNamespace(currentEPackage),
extendedMetaData.getName(genClass.getEcoreClass()));
+ String
interfaceName=currentGenPackage.getInterfacePackageName()+'.'+genClass.getInterfaceName();
+ typeMapping.put(qname, interfaceName);
+ }
+
+ EClass
documentRoot=extendedMetaData.getDocumentRoot(currentEPackage);
+ if (documentRoot!=null) {
+ for (EStructuralFeature element :
(List<EStructuralFeature>)extendedMetaData.getElements(documentRoot)) {
+ EClassifier elementType=element.getEType();
+ if (elementType instanceof EClass) {
+ GenClass genClass=genClasses.get(elementType);
+ QName qname=new
QName(extendedMetaData.getNamespace(currentEPackage),
extendedMetaData.getName(element));
+ String
interfaceName=genClass.getGenPackage().getInterfacePackageName()+'.'+genClass.getInterfaceName();
+ typeMapping.put(qname, interfaceName);
+ } else if (elementType instanceof EClassifier) {
+ QName qname=new
QName(extendedMetaData.getNamespace(currentEPackage),
extendedMetaData.getName(element));
+ String
interfaceName=elementType.getInstanceClass().getName();
+ typeMapping.put(qname, interfaceName);
+ }
+ }
+ }
}
- generateFromEPackage(ePackage, targetDirectory, basePackage, prefix,
genOptions);
}
- */
+
+ try {
+ JavaInterfaceGenerator codeGenerator=new
JavaInterfaceGenerator(wsdlFileName, targetDirectory, wsdlJavaPackage,
typeMapping);
+ codeGenerator.generate();
+ } catch (Exception e) {
+ throw new IllegalArgumentException(e);
+ }
+
}
catch (IOException e)
{
- e.printStackTrace();
+ throw new IllegalArgumentException(e);
}
}
- public static String getSchemaNamespace(String xsdFileName)
- {
- File inputFile = new File(xsdFileName).getAbsoluteFile();
- ResourceSet resourceSet = DataObjectUtil.createResourceSet();
- Resource model =
resourceSet.createResource(URI.createURI(inputFile.toURI().toString()));
- try {
- InputStream inputStream = new FileInputStream(inputFile);
- ((XSDResourceImpl)model).load(inputStream, null);
- }
- catch (Exception e) {}
- XSDSchema schema = (XSDSchema)model.getContents().get(0);
- return schema.getTargetNamespace();
-
- }
-
public static GenPackage createGenPackage(EPackage ePackage, String
basePackage, String prefix, int genOptions, ResourceSet resourceSet)
{
GenModel genModel = ecore2GenModel(ePackage, basePackage, prefix,
genOptions);
@@ -226,48 +221,6 @@
genModelResource.getContents().add(genModel);
return (GenPackage)genModel.getGenPackages().get(0);
- }
-
- public static void generateFromEPackage(EPackage ePackage, String
targetDirectory, String basePackage, String prefix, int genOptions)
- {
- GenModel genModel = ecore2GenModel(ePackage, basePackage, prefix,
genOptions);
-
- ResourceSet resourceSet = DataObjectUtil.createResourceSet();
- URI ecoreURI = URI.createURI("file:///temp.ecore");
- URI genModelURI =
ecoreURI.trimFileExtension().appendFileExtension("genmodel");
-
- Resource ecoreResource = resourceSet.createResource(ecoreURI);
- ecoreResource.getContents().add(ePackage);
-
- Resource genModelResource = resourceSet.createResource(genModelURI);
- genModelResource.getContents().add(genModel);
-
- generateFromGenModel(genModel, targetDirectory);
- }
-
- public static void generateFromGenModel(GenModel genModel, String
targetDirectory)
- {
- Resource resource = genModel.eResource();
-
- if (targetDirectory != null)
- {
- resource.getResourceSet().getURIConverter().getURIMap().put(
- URI.createURI("platform:/resource/TargetProject/"),
- URI.createFileURI(targetDirectory + "/"));
- genModel.setModelDirectory("/TargetProject");
- }
-
- genModel.gen(new BasicMonitor.Printing(System.out));
-
- for (Iterator j = resource.getContents().iterator(); j.hasNext();)
- {
- EObject eObject = (EObject)j.next();
- Diagnostic diagnostic = Diagnostician.INSTANCE.validate(eObject);
- if (diagnostic.getSeverity() != Diagnostic.OK)
- {
- printDiagnostic(diagnostic, "");
- }
- }
}
public static GenModel ecore2GenModel(EPackage ePackage, String basePackage,
String prefix, int genOptions)