Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'jpa/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/core/internal/ClassesGenerator.java')
-rw-r--r--jpa/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/core/internal/ClassesGenerator.java95
1 files changed, 88 insertions, 7 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/core/internal/ClassesGenerator.java b/jpa/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/core/internal/ClassesGenerator.java
index 1bf7fa6edc..2625e54105 100644
--- a/jpa/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/core/internal/ClassesGenerator.java
+++ b/jpa/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/core/internal/ClassesGenerator.java
@@ -40,6 +40,8 @@ public class ClassesGenerator extends AbstractJptGenerator
private final String targetPackage;
private final String catalog;
private final String[] bindingsFileNames;
+ private final ClassesGeneratorOptions generatorOptions;
+ private final ClassesGeneratorExtensionOptions generatorExtensionOptions;
private final String mainType;
// ********** static methods **********
@@ -50,8 +52,10 @@ public class ClassesGenerator extends AbstractJptGenerator
String outputDir,
String targetPackage,
String catalog,
- boolean useMoxyGenerator,
+ boolean usesMoxyGenerator,
String[] bindingsFileNames,
+ ClassesGeneratorOptions generatorOptions,
+ ClassesGeneratorExtensionOptions generatorExtensionOptions,
IProgressMonitor monitor) {
if (javaProject == null) {
throw new NullPointerException();
@@ -61,8 +65,10 @@ public class ClassesGenerator extends AbstractJptGenerator
outputDir,
targetPackage,
catalog,
- useMoxyGenerator,
- bindingsFileNames).generate(monitor);
+ usesMoxyGenerator,
+ bindingsFileNames,
+ generatorOptions,
+ generatorExtensionOptions).generate(monitor);
}
// ********** constructors **********
@@ -73,15 +79,19 @@ public class ClassesGenerator extends AbstractJptGenerator
String outputDir,
String targetPackage,
String catalog,
- boolean useMoxyGenerator,
- String[] bindingsFileNames) {
+ boolean usesMoxyGenerator,
+ String[] bindingsFileNames,
+ ClassesGeneratorOptions generatorOptions,
+ ClassesGeneratorExtensionOptions generatorExtensionOptions) {
super(javaProject);
this.xmlSchemaName = xmlSchemaName;
this.outputDir = outputDir;
this.targetPackage = targetPackage;
this.catalog = catalog;
this.bindingsFileNames = bindingsFileNames;
- this.mainType = (useMoxyGenerator) ? JAXB_ECLIPSELINK_GEN_CLASS : JAXB_GENERIC_GEN_CLASS;
+ this.generatorOptions = generatorOptions;
+ this.generatorExtensionOptions = generatorExtensionOptions;
+ this.mainType = (usesMoxyGenerator) ? JAXB_ECLIPSELINK_GEN_CLASS : JAXB_GENERIC_GEN_CLASS;
}
@Override
@@ -132,8 +142,11 @@ public class ClassesGenerator extends AbstractJptGenerator
@Override
protected void specifyProgramArguments() {
StringBuffer programArguments = new StringBuffer();
- // options
+
programArguments.append("-d "); //$NON-NLS-1$
+ if(StringTools.stringIsEmpty(this.outputDir)) {
+ throw new RuntimeException("Output directory cannot be empty"); //$NON-NLS-1$
+ }
programArguments.append(this.outputDir);
if( ! StringTools.stringIsEmpty(this.targetPackage)) {
programArguments.append(" -p "); //$NON-NLS-1$
@@ -143,6 +156,74 @@ public class ClassesGenerator extends AbstractJptGenerator
programArguments.append(" -catalog "); //$NON-NLS-1$
programArguments.append(this.catalog);
}
+
+ // Options
+ if( ! StringTools.stringIsEmpty(this.generatorOptions.getProxy())) {
+ programArguments.append(" -httpproxy "); //$NON-NLS-1$
+ programArguments.append(this.generatorOptions.getProxy());
+ }
+ if( ! StringTools.stringIsEmpty(this.generatorOptions.getProxyFile())) {
+ programArguments.append(" -httpproxyfile "); //$NON-NLS-1$
+ programArguments.append(this.generatorOptions.getProxyFile());
+ }
+
+ if( ! this.generatorOptions.usesStrictValidation()) {
+ programArguments.append(" -nv"); //$NON-NLS-1$
+ }
+ if(this.generatorOptions.makesReadOnly()) {
+ programArguments.append(" -readOnly"); //$NON-NLS-1$
+ }
+ if(this.generatorOptions.suppressesPackageInfoGen()) {
+ programArguments.append(" -npa"); //$NON-NLS-1$
+ }
+ if(this.generatorOptions.suppressesHeaderGen()) {
+ programArguments.append(" -no-header"); //$NON-NLS-1$
+ }
+ if(this.generatorOptions.targetIs20()) {
+ programArguments.append(" -target 2.0"); //$NON-NLS-1$
+ }
+ if(this.generatorOptions.isVerbose()) {
+ programArguments.append(" -verbose"); //$NON-NLS-1$
+ }
+ if(this.generatorOptions.isQuiet()) {
+ programArguments.append(" -quiet"); //$NON-NLS-1$
+ }
+
+ if(this.generatorOptions.treatsAsXmlSchema()) {
+ programArguments.append(" -xmlschema"); //$NON-NLS-1$
+ }
+ if(this.generatorOptions.treatsAsRelaxNg()) {
+ programArguments.append(" -relaxng"); //$NON-NLS-1$
+ }
+ if(this.generatorOptions.treatsAsRelaxNgCompact()) {
+ programArguments.append(" -relaxng-compact"); //$NON-NLS-1$
+ }
+ if(this.generatorOptions.treatsAsDtd()) {
+ programArguments.append(" -dtd"); //$NON-NLS-1$
+ }
+ if(this.generatorOptions.treatsAsWsdl()) {
+ programArguments.append(" -wsdl"); //$NON-NLS-1$
+ }
+ if(this.generatorOptions.showsVersion()) {
+ programArguments.append(" -version"); //$NON-NLS-1$
+ }
+ if(this.generatorOptions.showsHelp()) {
+ programArguments.append(" -help"); //$NON-NLS-1$
+ }
+
+ // Extension Options
+ if(this.generatorExtensionOptions.allowsExtensions()) {
+ programArguments.append(" -extension"); //$NON-NLS-1$
+ }
+ if( ! StringTools.stringIsEmpty(this.generatorExtensionOptions.getClasspath())) {
+ programArguments.append(" -classpath "); //$NON-NLS-1$
+ programArguments.append(this.generatorExtensionOptions.getClasspath());
+ }
+ if( ! StringTools.stringIsEmpty(this.generatorExtensionOptions.getAdditionalArgs())) {
+ programArguments.append(' ');
+ programArguments.append(this.generatorExtensionOptions.getAdditionalArgs());
+ }
+
// schema
programArguments.append(' ');
programArguments.append(this.xmlSchemaName);

Back to the top