Author: DartPeng
Date: 2008-09-07 23:13:38 -0400 (Sun, 07 Sep 2008)
New Revision: 10122
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/.classpath
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/.project
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/META-INF/
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/META-INF/MANIFEST.MF
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/build.properties
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/icons/
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/icons/obj16/
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/icons/obj16/att_obj.gif
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/icons/obj16/class_obj.gif
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/libs/
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/libs/commons-beanutils-1.8.0-BETA-javadoc.jar
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/libs/commons-beanutils-1.8.0-BETA-sources.jar
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/libs/commons-beanutils-1.8.0-BETA.jar
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/libs/commons-beanutils-bean-collections-1.8.0-BETA.jar
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/libs/commons-beanutils-core-1.8.0-BETA.jar
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/libs/commons-logging-1.1.1-javadoc.jar
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/libs/commons-logging-1.1.1-sources.jar
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/libs/commons-logging-1.1.1.jar
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/libs/commons-logging-adapters-1.1.1.jar
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/libs/commons-logging-api-1.1.1.jar
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/libs/commons-logging-tests.jar
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/plugin.xml
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/JavaBeanActivator.java
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/analyzer/
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/analyzer/JavaBeanAnalyzer.java
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/commandprocessor/
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/commandprocessor/JavaBeanModelCommandProcessor.java
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/model/
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/model/BeanContentProvider.java
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/model/BeanlabelProvider.java
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/model/JavaBeanModel.java
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/model/JavaBeanModelFactory.java
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/model/JavaBeanParser.java
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/model/JavaStructuredDataModel.java
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/model/JavabeanStructuredContentsModel.java
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/ui/
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/ui/JavaBeanConfigWizardPage.java
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/ui/JavaBeanModelCreationDialog.java
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/ui/JavaBeanModelGraphUIProvider.java
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/ui/JavaBeanModelLoadComposite.java
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/ui/JavaImageConstants.java
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/ui/NewJavaBeanStrucutredDataWizard.java
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src_test/
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src_test/Header.java
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src_test/Order.java
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src_test/srcmodel/
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src_test/srcmodel/Header.java
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src_test/srcmodel/Order.java
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src_test/srcmodel/OrderItem.java
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src_test/targetmodel/
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src_test/targetmodel/LineItem.java
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src_test/targetmodel/LineOrder.java
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src_test/test/
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src_test/test/SmooksAnalyzerTester.java
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src_test/test/Test.smooks.graph
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src_test/test/Test.xml
Log:
first creation
Added: trunk/smooks/plugins/org.jboss.tools.smooks.javabean/.classpath
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.javabean/.classpath
(rev 0)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.javabean/.classpath 2008-09-08 03:13:38
UTC (rev 10122)
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="src_test"/>
+ <classpathentry kind="con"
path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="con"
path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="lib"
path="libs/commons-beanutils-1.8.0-BETA.jar"/>
+ <classpathentry kind="lib"
path="libs/commons-beanutils-1.8.0-BETA-javadoc.jar"/>
+ <classpathentry kind="lib"
path="libs/commons-beanutils-1.8.0-BETA-sources.jar"/>
+ <classpathentry kind="lib"
path="libs/commons-beanutils-bean-collections-1.8.0-BETA.jar"/>
+ <classpathentry kind="lib"
path="libs/commons-beanutils-core-1.8.0-BETA.jar"/>
+ <classpathentry kind="lib"
path="libs/commons-logging-1.1.1.jar"/>
+ <classpathentry kind="lib"
path="libs/commons-logging-1.1.1-javadoc.jar"/>
+ <classpathentry kind="lib"
path="libs/commons-logging-1.1.1-sources.jar"/>
+ <classpathentry kind="lib"
path="libs/commons-logging-adapters-1.1.1.jar"/>
+ <classpathentry kind="lib"
path="libs/commons-logging-api-1.1.1.jar"/>
+ <classpathentry kind="lib"
path="libs/commons-logging-tests.jar"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
Property changes on: trunk/smooks/plugins/org.jboss.tools.smooks.javabean/.classpath
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/smooks/plugins/org.jboss.tools.smooks.javabean/.project
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.javabean/.project
(rev 0)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.javabean/.project 2008-09-08 03:13:38 UTC
(rev 10122)
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.jboss.tools.smooks.javabean</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
Property changes on: trunk/smooks/plugins/org.jboss.tools.smooks.javabean/.project
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/smooks/plugins/org.jboss.tools.smooks.javabean/META-INF/MANIFEST.MF
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.javabean/META-INF/MANIFEST.MF
(rev 0)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.javabean/META-INF/MANIFEST.MF 2008-09-08
03:13:38 UTC (rev 10122)
@@ -0,0 +1,39 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Javabean Plug-in
+Bundle-SymbolicName: org.jboss.tools.smooks.javabean;singleton:=true
+Bundle-Version: 1.0.0
+Bundle-Activator: org.jboss.tools.smooks.javabean.JavaBeanActivator
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.resources,
+ org.eclipse.core.runtime,
+ org.jboss.tools.smooks.ui,
+ org.eclipse.jdt.ui,
+ org.eclipse.jdt.core,
+ org.eclipse.gef,
+ org.eclipse.ui.views,
+ org.eclipse.emf,
+ org.eclipse.emf.ecore,
+ org.jboss.tools.smooks.model,
+ org.jboss.tools.smooks.model.edit,
+ org.eclipse.ui.ide,
+ org.jboss.tools.smooks.graphicalInfo,
+ org.junit
+Eclipse-LazyStart: true
+Bundle-ClassPath: libs/commons-beanutils-1.8.0-BETA.jar,
+ libs/commons-beanutils-1.8.0-BETA-javadoc.jar,
+ libs/commons-beanutils-1.8.0-BETA-sources.jar,
+ libs/commons-beanutils-bean-collections-1.8.0-BETA.jar,
+ libs/commons-beanutils-core-1.8.0-BETA.jar,
+ libs/commons-logging-1.1.1.jar,
+ libs/commons-logging-1.1.1-javadoc.jar,
+ libs/commons-logging-1.1.1-sources.jar,
+ libs/commons-logging-adapters-1.1.1.jar,
+ libs/commons-logging-api-1.1.1.jar,
+ libs/commons-logging-tests.jar,
+ .
+Export-Package: org.jboss.tools.smooks.javabean,
+ org.jboss.tools.smooks.javabean.analyzer,
+ org.jboss.tools.smooks.javabean.commandprocessor,
+ org.jboss.tools.smooks.javabean.model,
+ org.jboss.tools.smooks.javabean.ui
Property changes on:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/META-INF/MANIFEST.MF
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/smooks/plugins/org.jboss.tools.smooks.javabean/build.properties
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.javabean/build.properties
(rev 0)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.javabean/build.properties 2008-09-08
03:13:38 UTC (rev 10122)
@@ -0,0 +1,17 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml,\
+ libs/commons-beanutils-1.8.0-BETA.jar,\
+ libs/commons-beanutils-1.8.0-BETA-javadoc.jar,\
+ libs/commons-beanutils-1.8.0-BETA-sources.jar,\
+ libs/commons-beanutils-bean-collections-1.8.0-BETA.jar,\
+ libs/commons-beanutils-core-1.8.0-BETA.jar,\
+ libs/commons-logging-1.1.1.jar,\
+ libs/commons-logging-1.1.1-javadoc.jar,\
+ libs/commons-logging-1.1.1-sources.jar,\
+ libs/commons-logging-adapters-1.1.1.jar,\
+ libs/commons-logging-api-1.1.1.jar,\
+ libs/commons-logging-tests.jar,\
+ icons/
Property changes on:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/build.properties
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/smooks/plugins/org.jboss.tools.smooks.javabean/icons/obj16/att_obj.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/icons/obj16/att_obj.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/smooks/plugins/org.jboss.tools.smooks.javabean/icons/obj16/class_obj.gif
===================================================================
(Binary files differ)
Property changes on:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/icons/obj16/class_obj.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/libs/commons-beanutils-1.8.0-BETA-javadoc.jar
===================================================================
(Binary files differ)
Property changes on:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/libs/commons-beanutils-1.8.0-BETA-javadoc.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/libs/commons-beanutils-1.8.0-BETA-sources.jar
===================================================================
(Binary files differ)
Property changes on:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/libs/commons-beanutils-1.8.0-BETA-sources.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/libs/commons-beanutils-1.8.0-BETA.jar
===================================================================
(Binary files differ)
Property changes on:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/libs/commons-beanutils-1.8.0-BETA.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/libs/commons-beanutils-bean-collections-1.8.0-BETA.jar
===================================================================
(Binary files differ)
Property changes on:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/libs/commons-beanutils-bean-collections-1.8.0-BETA.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/libs/commons-beanutils-core-1.8.0-BETA.jar
===================================================================
(Binary files differ)
Property changes on:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/libs/commons-beanutils-core-1.8.0-BETA.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/libs/commons-logging-1.1.1-javadoc.jar
===================================================================
(Binary files differ)
Property changes on:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/libs/commons-logging-1.1.1-javadoc.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/libs/commons-logging-1.1.1-sources.jar
===================================================================
(Binary files differ)
Property changes on:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/libs/commons-logging-1.1.1-sources.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/libs/commons-logging-1.1.1.jar
===================================================================
(Binary files differ)
Property changes on:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/libs/commons-logging-1.1.1.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/libs/commons-logging-adapters-1.1.1.jar
===================================================================
(Binary files differ)
Property changes on:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/libs/commons-logging-adapters-1.1.1.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/libs/commons-logging-api-1.1.1.jar
===================================================================
(Binary files differ)
Property changes on:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/libs/commons-logging-api-1.1.1.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/libs/commons-logging-tests.jar
===================================================================
(Binary files differ)
Property changes on:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/libs/commons-logging-tests.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/smooks/plugins/org.jboss.tools.smooks.javabean/plugin.xml
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.javabean/plugin.xml
(rev 0)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.javabean/plugin.xml 2008-09-08 03:13:38
UTC (rev 10122)
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.2"?>
+<plugin>
+ <extension
+ point="org.jboss.tools.smooks.ui.viewerInitor">
+ <viewerInitor
+
contentProvider="org.jboss.tools.smooks.javabean.model.BeanContentProvider"
+
creationWizard="org.jboss.tools.smooks.javabean.ui.NewJavaBeanStrucutredDataWizard"
+
labelProvider="org.jboss.tools.smooks.javabean.model.BeanlabelProvider"
+ name="JavaBean"
+ typeID="org.jboss.tools.smooks.ui.viewerInitor.javabean">
+ </viewerInitor>
+ </extension>
+ <extension
+ point="org.jboss.tools.smooks.ui.analyzer">
+ <mappingAnalyzer
+ class="org.jboss.tools.smooks.javabean.analyzer.JavaBeanAnalyzer"
+ name="JavaBean Analyzer"
+ typeID="org.jboss.tools.smooks.ui.viewerInitor.javabean">
+ <targetSourceType
+ id="org.jboss.tools.smooks.ui.viewerInitor.javabean"
+ name="java2java">
+ </targetSourceType>
+ </mappingAnalyzer>
+ <sourceModelAnalyzer
+ class="org.jboss.tools.smooks.javabean.analyzer.JavaBeanAnalyzer"
+ level="0"
+ name="JavaBean SourceModel Analyzer"
+ typeID="org.jboss.tools.smooks.ui.viewerInitor.javabean">
+ </sourceModelAnalyzer>
+ <targetModelAnalyzer
+ class="org.jboss.tools.smooks.javabean.analyzer.JavaBeanAnalyzer"
+ level="0"
+ name="JavaBean TargetModel Analyzer"
+ typeID="org.jboss.tools.smooks.ui.viewerInitor.javabean">
+ </targetModelAnalyzer>
+ <sourceModelAnalyzer
+ class="org.jboss.tools.smooks.javabean.analyzer.JavaBeanAnalyzer"
+ level="0"
+ name="Javaa12"
+ typeID="org.jboss.tools.smooks.ui.viewerInitor.jadavabean">
+ </sourceModelAnalyzer>
+ <sourceModelAnalyzer
+ class="org.jboss.tools.smooks.javabean.analyzer.JavaBeanAnalyzer"
+ level="0"
+ name="421a"
+ typeID="org.jboss.tools.smooks.ui.viea123nitor.javabean">
+ </sourceModelAnalyzer>
+ <sourceModelAnalyzer
+ class="org.jboss.tools.smooks.javabean.analyzer.JavaBeanAnalyzer"
+ level="0"
+ name="yyy"
+ typeID="org.jboss.tools.sm55555555555555555">
+ </sourceModelAnalyzer>
+ <targetModelAnalyzer
+ class="org.jboss.tools.smooks.javabean.analyzer.JavaBeanAnalyzer"
+ level="0"
+ name="zer"
+ typeID="org.jboss.tools.smooks.ui.viewerInitor.javabea1">
+ </targetModelAnalyzer>
+ <targetModelAnalyzer
+ class="org.jboss.tools.smooks.javabean.analyzer.JavaBeanAnalyzer"
+ level="0"
+ name="J512"
+ typeID="org.jb1">
+ </targetModelAnalyzer>
+ <targetModelAnalyzer
+ class="org.jboss.tools.smooks.javabean.analyzer.JavaBeanAnalyzer"
+ level="0"
+ name="55t"
+ typeID="o5114141">
+ </targetModelAnalyzer>
+ </extension>
+</plugin>
Property changes on: trunk/smooks/plugins/org.jboss.tools.smooks.javabean/plugin.xml
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/JavaBeanActivator.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/JavaBeanActivator.java
(rev 0)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/JavaBeanActivator.java 2008-09-08
03:13:38 UTC (rev 10122)
@@ -0,0 +1,65 @@
+package org.jboss.tools.smooks.javabean;
+
+import org.eclipse.jface.resource.ImageRegistry;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.jboss.tools.smooks.javabean.ui.JavaImageConstants;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class JavaBeanActivator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.jboss.tools.smooks.javabean";
+
+ public static final String DATA_TYPE_ID_JAVABEAN =
"org.jboss.tools.smooks.ui.viewerInitor.javabean";
+
+ // The shared instance
+ private static JavaBeanActivator plugin;
+
+ /**
+ * The constructor
+ */
+ public JavaBeanActivator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ @Override
+ protected void initializeImageRegistry(ImageRegistry reg) {
+ super.initializeImageRegistry(reg);
+ reg.put(JavaImageConstants.IMAGE_JAVA_ATTRIBUTE,
+ imageDescriptorFromPlugin(PLUGIN_ID, "icons/obj16/att_obj.gif"));
+ reg.put(JavaImageConstants.IMAGE_JAVA_OBJECT,
+ imageDescriptorFromPlugin(PLUGIN_ID, "icons/obj16/class_obj.gif"));
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static JavaBeanActivator getDefault() {
+ return plugin;
+ }
+
+}
Property changes on:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/JavaBeanActivator.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/analyzer/JavaBeanAnalyzer.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/analyzer/JavaBeanAnalyzer.java
(rev 0)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/analyzer/JavaBeanAnalyzer.java 2008-09-08
03:13:38 UTC (rev 10122)
@@ -0,0 +1,841 @@
+/*******************************************************************************
+ * Copyright (c) 2008 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at
http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.smooks.javabean.analyzer;
+
+import java.lang.reflect.InvocationTargetException;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.emf.common.command.BasicCommandStack;
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.common.command.CommandStack;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.util.ExtendedMetaData;
+import org.eclipse.emf.ecore.util.FeatureMap;
+import org.eclipse.emf.ecore.xml.type.AnyType;
+import org.eclipse.emf.edit.command.AddCommand;
+import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.resource.ResourceItemProviderAdapterFactory;
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jdt.core.JavaModelException;
+import org.jboss.tools.smooks.analyzer.IMappingAnalyzer;
+import org.jboss.tools.smooks.analyzer.ISourceModelAnalyzer;
+import org.jboss.tools.smooks.analyzer.ITargetModelAnalyzer;
+import org.jboss.tools.smooks.analyzer.MappingModel;
+import org.jboss.tools.smooks.analyzer.SmooksAnalyzerException;
+import org.jboss.tools.smooks.graphical.GraphInformations;
+import org.jboss.tools.smooks.javabean.model.JavaBeanModel;
+import org.jboss.tools.smooks.javabean.model.JavaBeanModelFactory;
+import org.jboss.tools.smooks.ui.gef.model.AbstractStructuredDataModel;
+import org.jboss.tools.smooks.ui.gef.model.GraphRootModel;
+import org.jboss.tools.smooks.ui.gef.model.IConnectableModel;
+import org.jboss.tools.smooks.ui.gef.model.LineConnectionModel;
+import org.jboss.tools.smooks.ui.gef.model.PropertyModel;
+import org.jboss.tools.smooks.ui.gef.model.TreeItemRelationModel;
+import org.jboss.tools.smooks.ui.modelparser.SmooksConfigurationFileGenerateContext;
+import org.jboss.tools.smooks.utils.ProjectClassLoader;
+import org.jboss.tools.smooks.utils.UIUtils;
+import org.milyn.xsd.smooks.AbstractResourceConfig;
+import org.milyn.xsd.smooks.ParamType;
+import org.milyn.xsd.smooks.ResourceConfigType;
+import org.milyn.xsd.smooks.ResourceType;
+import org.milyn.xsd.smooks.SmooksFactory;
+import org.milyn.xsd.smooks.SmooksPackage;
+import org.milyn.xsd.smooks.SmooksResourceListType;
+import org.milyn.xsd.smooks.provider.SmooksItemProviderAdapterFactory;
+import org.milyn.xsd.smooks.util.SmooksModelUtils;
+
+/**
+ * @author Dart Peng
+ *
+ */
+public class JavaBeanAnalyzer implements IMappingAnalyzer,
+ ISourceModelAnalyzer, ITargetModelAnalyzer {
+
+ public static final String BEANPOPULATOR =
"org.milyn.javabean.BeanPopulator";
+
+ public static final String PRO_CLASS_NAME = "__pro_class_name_";
+
+ public static final Object PRO_PROJECT_NAME = "__pro_project_name_";
+
+ public static final String SPACE_STRING = " ";
+
+ private List usedConnectionList = new ArrayList();
+
+ private ComposedAdapterFactory adapterFactory;
+
+ private AdapterFactoryEditingDomain editingDomain;
+
+ private HashMap userdResourceTypeMap = new HashMap();
+
+ private HashMap usedBeanIDMap = new HashMap();
+
+ public JavaBeanAnalyzer() {
+
+ adapterFactory = new ComposedAdapterFactory(
+ ComposedAdapterFactory.Descriptor.Registry.INSTANCE);
+
+ adapterFactory
+ .addAdapterFactory(new ResourceItemProviderAdapterFactory());
+ adapterFactory
+ .addAdapterFactory(new SmooksItemProviderAdapterFactory());
+
+ editingDomain = new AdapterFactoryEditingDomain(adapterFactory,
+ createCommandStack(), new HashMap<Resource, Boolean>());
+ }
+
+ protected CommandStack createCommandStack() {
+ return new BasicCommandStack();
+ }
+
+ public void analyzeGraphicalModel(AbstractStructuredDataModel root,
+ SmooksResourceListType resouceList) {
+
+ List children = root.getChildren();
+ for (Iterator iterator = children.iterator(); iterator.hasNext();) {
+ TreeItemRelationModel dataModel = (TreeItemRelationModel) iterator
+ .next();
+ List targetConnections = dataModel.getModelTargetConnections();
+ if (targetConnections != null && !targetConnections.isEmpty()) {
+ this.analyzeStructuredDataModel(resouceList, root, dataModel,
+ null, null);
+ }
+ }
+ }
+
+ protected void setSelectorIsUsed(String selector) {
+ userdResourceTypeMap.put(selector, new Object());
+ }
+
+ protected boolean beanIDIsUsed(String beanID) {
+ return (usedBeanIDMap.get(beanID) != null);
+ }
+
+ protected void setBeanIDIsUsed(String beanID) {
+ usedBeanIDMap.put(beanID, new Object());
+ }
+
+ protected boolean isSelectorIsUsed(String resourceType) {
+ return (userdResourceTypeMap.get(resourceType) != null);
+ }
+
+ private boolean connectionIsUsed(Object connection) {
+ return (usedConnectionList.indexOf(connection) != -1);
+ }
+
+ private void setConnectionUsed(Object connection) {
+ usedConnectionList.add(connection);
+ }
+
+ /**
+ *
+ * @param resourceList
+ * @param root
+ * @param dataModel
+ * @param parentResourceConfigType
+ * @param beanId
+ */
+ protected void analyzeStructuredDataModel(
+ SmooksResourceListType resourceList,
+ AbstractStructuredDataModel root,
+ AbstractStructuredDataModel dataModel,
+ ResourceConfigType parentResourceConfigType, String beanId) {
+ if (dataModel instanceof IConnectableModel) {
+ // if the mode have no target connections, return
+ if (((IConnectableModel) dataModel).getModelTargetConnections()
+ .isEmpty())
+ return;
+ // if the datamodel is a root structured data model
+ if (dataModel instanceof IConnectableModel) {
+ List targetConnections = ((IConnectableModel) dataModel)
+ .getModelTargetConnections();
+ for (Iterator iterator = targetConnections.iterator(); iterator
+ .hasNext();) {
+ LineConnectionModel connection = (LineConnectionModel) iterator
+ .next();
+ if (connectionIsUsed(connection))
+ continue;
+ Object source = connection.getSource();
+ Object target = connection.getTarget();
+ if (target != dataModel) {
+ continue;
+ }
+ // create the first smooks resource fragment
+
+ JavaBeanModel sourceJavaBean = (JavaBeanModel) ((AbstractStructuredDataModel)
source)
+ .getReferenceEntityModel();
+ JavaBeanModel targetJavaBean = (JavaBeanModel) ((AbstractStructuredDataModel)
target)
+ .getReferenceEntityModel();
+ String sourceClassName = sourceJavaBean.getBeanClass()
+ .getName();
+
+ ResourceConfigType resourceConfig = SmooksFactory.eINSTANCE
+ .createResourceConfigType();
+
+ Command addResourceConfigCommand = AddCommand
+ .create(
+ editingDomain,
+ resourceList,
+ SmooksPackage.eINSTANCE
+ .getSmooksResourceListType_AbstractResourceConfig(),
+ resourceConfig);
+ addResourceConfigCommand.execute();
+ // resouceConfig.
+ resourceConfig
+ .setSelector(getSourceBeanSelectorString((AbstractStructuredDataModel) source));
+ setConnectionUsed(connection);
+
+ ResourceType resource = SmooksFactory.eINSTANCE
+ .createResourceType();
+ resource.setValue(BEANPOPULATOR);
+ resourceConfig.setResource(resource);
+
+ ParamType beanIdParam = SmooksFactory.eINSTANCE
+ .createParamType();
+ beanIdParam.setName("beanId");
+ if (beanId == null)
+ beanId = targetJavaBean.getName();
+ if (beanId.startsWith("${")) {
+ beanId = beanId.substring(2, beanId.indexOf("}"));
+ }
+ SmooksModelUtils
+ .appendTextToSmooksType(beanIdParam, beanId);
+ resourceConfig.getParam().add(beanIdParam);
+
+ ParamType beanClassParam = SmooksFactory.eINSTANCE
+ .createParamType();
+ beanClassParam.setName("beanClass");
+ SmooksModelUtils.appendTextToSmooksType(beanClassParam,
+ targetJavaBean.getBeanClassString());
+ resourceConfig.getParam().add(beanClassParam);
+
+ ParamType bindingsParam = SmooksFactory.eINSTANCE
+ .createParamType();
+ bindingsParam.setName("bindings");
+ resourceConfig.getParam().add(bindingsParam);
+
+ // to dispatch the target's children (Order processing)
+
+ List children = targetJavaBean.getProperties();
+ for (Iterator iterator2 = children.iterator(); iterator2
+ .hasNext();) {
+ JavaBeanModel childJavaBean = (JavaBeanModel) iterator2
+ .next();
+ AbstractStructuredDataModel child = UIUtils
+ .findGraphModel(
+ (AbstractStructuredDataModel) root,
+ childJavaBean);
+ if (child == null)
+ continue;
+ if (child instanceof IConnectableModel) {
+ if (((IConnectableModel) child)
+ .getModelTargetConnections().isEmpty())
+ continue;
+ // how dispatch more than one connection???
+ LineConnectionModel childConnection = (LineConnectionModel) ((IConnectableModel)
child)
+ .getModelTargetConnections().get(0);
+ if (connectionIsUsed(childConnection))
+ continue;
+ Object[] properties = childConnection
+ .getPropertyArray();
+ JavaBeanModel jbean = (JavaBeanModel) child
+ .getReferenceEntityModel();
+ String currentSelectorName = getSelectorString(
+ (AbstractStructuredDataModel) childConnection
+ .getTarget(),
+ (AbstractStructuredDataModel) childConnection
+ .getSource(),
+ (AbstractStructuredDataModel) source);
+ AnyType binding = SmooksModelUtils
+ .addBindingTypeToParamType(bindingsParam,
+ jbean.getName(),
+ currentSelectorName, null, null);
+ for (int i = 0; i < properties.length; i++) {
+ PropertyModel property = (PropertyModel) properties[i];
+ String pname = property.getName();
+ String pvalue = property.getValue();
+ binding.getAnyAttribute().add(
+ ExtendedMetaData.INSTANCE
+ .demandFeature(null, pname,
+ false), pvalue);
+ }
+
+ if (!jbean.isPrimitive()) {
+ analyzeStructuredDataModel(resourceList, root,
+ (AbstractStructuredDataModel) child,
+ resourceConfig, currentSelectorName);
+ }
+ this.setConnectionUsed(childConnection);
+ }
+
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ *
+ * @param target
+ * @param source
+ * @param currentRootModel
+ * @return
+ */
+ protected String getSelectorString(AbstractStructuredDataModel target,
+ AbstractStructuredDataModel source,
+ AbstractStructuredDataModel currentRootModel) {
+ JavaBeanModel sourcebean = (JavaBeanModel) source
+ .getReferenceEntityModel();
+ JavaBeanModel rootbean = (JavaBeanModel) currentRootModel
+ .getReferenceEntityModel();
+ JavaBeanModel currentbean = (JavaBeanModel) target
+ .getReferenceEntityModel();
+ if (sourcebean.getParent() == currentRootModel
+ .getReferenceEntityModel()) {
+ if (!currentbean.isPrimitive()) {
+ return "${" + currentbean.getName() + "}";
+ } else {
+ return rootbean.getBeanClassString() + " "
+ + sourcebean.getName();
+ }
+ } else {
+ JavaBeanModel jbParent = ((JavaBeanModel) source
+ .getReferenceEntityModel()).getParent();
+ AbstractStructuredDataModel parent = UIUtils.findGraphModel(
+ currentRootModel.getParent(), jbParent);
+ String returnString = sourcebean.getName();
+ while (parent != currentRootModel && parent != null) {
+ JavaBeanModel jbm = (JavaBeanModel) parent
+ .getReferenceEntityModel();
+ if (jbm != null)
+ returnString = jbm.getName() + " " + returnString;
+
+ JavaBeanModel jb = ((JavaBeanModel) parent
+ .getReferenceEntityModel()).getParent();
+ parent = UIUtils.findGraphModel(currentRootModel.getParent(),
+ jb);
+ }
+ // if no property
+ if (returnString.equals(sourcebean.getName())) {
+ returnString = ((JavaBeanModel) parent
+ .getReferenceEntityModel()).getBeanClassString()
+ + " " + returnString;
+ }
+ return returnString;
+ }
+ }
+
+ protected String getSourceBeanSelectorString(
+ AbstractStructuredDataModel sourceModel) {
+ JavaBeanModel source = (JavaBeanModel) sourceModel
+ .getReferenceEntityModel();
+ if (Collection.class.isAssignableFrom(source.getBeanClass())) {
+ return source.getName();
+ }
+ return source.getBeanClassString();
+
+ }
+
+ public void analyzeMappingGraphModel(
+ SmooksConfigurationFileGenerateContext context)
+ throws SmooksAnalyzerException {
+ GraphRootModel root = context.getDataMappingRootModel();
+ SmooksResourceListType listType = context.getSmooksResourceListModel();
+ this.analyzeGraphicalModel(root, listType);
+ }
+
+ public List<MappingModel> analyzeMappingSmooksModel(
+ SmooksResourceListType listType, Object sourceObject,
+ Object targetObject) {
+ if (!(sourceObject instanceof JavaBeanModel)
+ || !(targetObject instanceof JavaBeanModel)) {
+ return Collections.EMPTY_LIST;
+ }
+
+ JavaBeanModel source = (JavaBeanModel) sourceObject;
+ JavaBeanModel target = (JavaBeanModel) targetObject;
+ List<MappingModel> mappingModelList = new ArrayList<MappingModel>();
+ List<AbstractResourceConfig> rcl = listType.getAbstractResourceConfig();
+ for (Iterator iterator = rcl.iterator(); iterator.hasNext();) {
+ ResourceConfigType rc = (ResourceConfigType) iterator.next();
+ ResourceType rt = rc.getResource();
+ // find the first BeanPopulator resource config , this is the root.
+ if (rt != null && BEANPOPULATOR.equals(rt.getValue())) {
+ String sourceName = source.getName();
+ Class sourceClazz = source.getBeanClass();
+ if (sourceClazz != null) {
+ sourceName = sourceClazz.getName();
+ }
+ String selector = rc.getSelector();
+ if (sourceName.equals(selector)) {
+ String targetName = target.getName();
+ Class targetClazz = target.getBeanClass();
+ if (targetClazz != null) {
+ targetName = targetClazz.getName();
+ }
+ String beanClass = SmooksModelUtils.getParmaText(
+ "beanClass", rc);
+ if (targetName.equals(beanClass)) {
+ setSelectorIsUsed(sourceName);
+ // create the first connection
+ mappingModelList.add(new MappingModel(source, target));
+ analyzeMappingModelFromResourceConfig(mappingModelList,
+ listType, rc, source, target);
+ }
+ }
+ }
+ }
+
+ return mappingModelList;
+ }
+
+ protected boolean isReferenceSelector(String selector) {
+ return (selector.startsWith("${") &&
selector.endsWith("}"));
+ }
+
+ protected String getBeanIdWithRawSelectorString(String selector) {
+ selector = selector.substring(2, selector.length() - 1);
+ return selector;
+ }
+
+ protected void analyzeMappingModelFromResourceConfig(
+ List<MappingModel> mappingModelList,
+ SmooksResourceListType resourceList,
+ ResourceConfigType resourceConfig, JavaBeanModel source,
+ JavaBeanModel target) {
+ List bindingList = this
+ .getBindingListFromResourceConfigType(resourceConfig);
+ if (bindingList == null)
+ return;
+ for (Iterator iterator = bindingList.iterator(); iterator.hasNext();) {
+ AnyType binding = (AnyType) iterator.next();
+ String property = SmooksModelUtils.getAttributeValueFromAnyType(
+ binding, SmooksModelUtils.ATTRIBUTE_PROPERTY);
+ String selector = SmooksModelUtils.getAttributeValueFromAnyType(
+ binding, SmooksModelUtils.ATTRIBUTE_SELECTOR);
+ JavaBeanModel targetModel = findTheChildJavaBeanModel(property,
+ target);
+ JavaBeanModel sourceModel = null;
+ if (targetModel == null)
+ continue;
+ if (isReferenceSelector(selector)) {
+ ResourceConfigType rc = this
+ .findResourceCinfigTypeWithSelector(selector,
+ resourceList);
+ if (rc != null) {
+ String newSelector = rc.getSelector();
+ sourceModel = findTheChildJavaBeanModel(newSelector, source);
+ if (sourceModel != null) {
+ setSelectorIsUsed(newSelector);
+ analyzeMappingModelFromResourceConfig(mappingModelList,
+ resourceList, rc, sourceModel, targetModel);
+ }
+ }
+ } else {
+ sourceModel = findModelWithSelectorString(selector, source);
+ }
+ if (sourceModel != null) {
+ MappingModel model = new MappingModel(sourceModel, targetModel);
+ FeatureMap it = binding.getAnyAttribute();
+ for(int i = 0 ; i < it.size() ; i++){
+ EStructuralFeature feature = it.getEStructuralFeature(i);
+ if(feature.equals(SmooksModelUtils.ATTRIBUTE_PROPERTY) ||
+ feature.equals(SmooksModelUtils.ATTRIBUTE_SELECTOR))
+ continue;
+ String pname = feature.getName();
+ String pvalue = it.get(feature, false).toString();
+ PropertyModel pmodel =new PropertyModel();
+ pmodel.setName(pname);
+ pmodel.setValue(pvalue);
+ model.getProperties().add(pmodel);
+ }
+ mappingModelList.add(model);
+ }
+ }
+ }
+
+ protected JavaBeanModel findModelWithSelectorString(String selector,
+ JavaBeanModel parentModel) {
+ String[] s = selector.trim().split(" ");
+ String pname = parentModel.getName();
+ Class clazz = parentModel.getBeanClass();
+ JavaBeanModel current = parentModel;
+ if (clazz != null)
+ pname = clazz.getName();
+ if (s != null) {
+ for (int i = 0; i < s.length; i++) {
+ String p = s[i];
+ if (p.equals(pname))
+ continue;
+ JavaBeanModel child = findTheChildJavaBeanModel(p, current);
+ if (child == null)
+ return null;
+ current = child;
+ }
+ return current;
+ }
+ return null;
+ }
+
+ public Object buildSourceInputObjects(GraphInformations graphInfo,
+ SmooksResourceListType listType, IFile sourceFile,
+ ClassLoader classLoader) throws InvocationTargetException {
+ List resourceConfigList = listType.getAbstractResourceConfig();
+ String rootClassName = null;
+ ResourceConfigType current = null;
+ for (Iterator iterator = resourceConfigList.iterator(); iterator
+ .hasNext();) {
+ AbstractResourceConfig ar = (AbstractResourceConfig) iterator
+ .next();
+ if (ar instanceof ResourceConfigType) {
+ ResourceConfigType rc = (ResourceConfigType) ar;
+ ResourceType resourceType = rc.getResource();
+ String resource = resourceType.getValue();
+ if (BEANPOPULATOR.equals(resource)) {
+ // create root beanmodel
+ rootClassName = rc.getSelector();
+ current = rc;
+ break;
+ }
+ }
+ }
+
+ if (rootClassName == null)
+ return null;
+
+ boolean isWarning = false;
+ boolean isError = false;
+ Class clazz = null;
+ try {
+ if (classLoader == null) {
+ IProject project = sourceFile.getProject();
+ classLoader = new ProjectClassLoader(JavaCore.create(project));
+ }
+
+ clazz = classLoader.loadClass(rootClassName);
+ } catch (Exception e) {
+ // ignore
+ }
+ JavaBeanModel model = null;
+ if (clazz != null) {
+ model = JavaBeanModelFactory.getJavaBeanModelWithLazyLoad(clazz);
+ } else {
+ model = new JavaBeanModel(null, rootClassName);
+ model.setRootClassModel(true);
+ model.setError("Can't find the class : " + rootClassName);
+ model.setProperties(new ArrayList());
+ isError = true;
+ }
+ if (model != null) {
+ this.setSelectorIsUsed(rootClassName);
+ buildSourceInputProperties(listType, model, false, isError,
+ current, classLoader);
+ }
+ return model;
+ }
+
+ public Object buildSourceInputObjects(GraphInformations graphInfo,
+ SmooksResourceListType listType, IFile sourceFile)
+ throws InvocationTargetException {
+ return this.buildSourceInputObjects(graphInfo, listType, sourceFile,
+ null);
+ }
+
+ public Object buildTargetInputObjects(GraphInformations graphInfo,
+ SmooksResourceListType listType, IFile sourceFile)
+ throws InvocationTargetException {
+ return this.buildTargetInputObjects(graphInfo, listType, sourceFile,
+ null);
+ }
+
+ public Object buildTargetInputObjects(GraphInformations graphInfo,
+ SmooksResourceListType listType, IFile sourceFile,
+ ClassLoader loader) throws InvocationTargetException {
+ if (loader == null) {
+ try {
+ loader = new ProjectClassLoader(JavaCore.create(sourceFile
+ .getProject()));
+ } catch (JavaModelException e) {
+ // ignore
+ }
+ }
+ List resourceConfigList = listType.getAbstractResourceConfig();
+ String rootClassName = null;
+ ResourceConfigType current = null;
+ for (Iterator iterator = resourceConfigList.iterator(); iterator
+ .hasNext();) {
+ AbstractResourceConfig ar = (AbstractResourceConfig) iterator
+ .next();
+ if (ar instanceof ResourceConfigType) {
+ ResourceConfigType rc = (ResourceConfigType) ar;
+ ResourceType resourceType = rc.getResource();
+ String resource = resourceType.getValue();
+ if (BEANPOPULATOR.equals(resource)) {
+ // create root beanmodel
+ current = rc;
+ break;
+ }
+ }
+ }
+ Class rootClass = null;
+ rootClassName = SmooksModelUtils.getParmaText("beanClass", current);
+ if (rootClassName != null && loader != null) {
+ try {
+ rootClass = loader.loadClass(rootClassName);
+ } catch (ClassNotFoundException e) {
+ // ignore
+ }
+ }
+ boolean rootIsError = false;
+ JavaBeanModel rootModel = null;
+ if (rootClass != null) {
+ rootModel = JavaBeanModelFactory
+ .getJavaBeanModelWithLazyLoad(rootClass);
+ rootIsError = true;
+ } else {
+ rootModel = new JavaBeanModel(null, rootClassName);
+ }
+ setSelectorIsUsed(rootClassName);
+ buildChildrenOfTargetInputModel(listType, rootModel, false,
+ rootIsError, current, loader);
+ return rootModel;
+ }
+
+ protected void buildChildrenOfTargetInputModel(
+ SmooksResourceListType listType, JavaBeanModel beanModel,
+ boolean rootIsWarning, boolean rootIsError,
+ ResourceConfigType currentResourceConfigType,
+ ClassLoader classLoader) {
+ if (currentResourceConfigType != null) {
+ List bindingList = getBindingListFromResourceConfigType(currentResourceConfigType);
+ if (bindingList == null)
+ return;
+ for (Iterator iterator = bindingList.iterator(); iterator.hasNext();) {
+ AnyType binding = (AnyType) iterator.next();
+ String property = SmooksModelUtils
+ .getAttributeValueFromAnyType(binding,
+ SmooksModelUtils.ATTRIBUTE_PROPERTY);
+ String selector = SmooksModelUtils
+ .getAttributeValueFromAnyType(binding,
+ SmooksModelUtils.ATTRIBUTE_SELECTOR);
+ // if(property == null){
+ // continue;
+ // }
+ processBindingPropertyFromTargetModel(listType, property,
+ selector, beanModel, classLoader);
+ }
+ }
+
+ }
+
+ protected void processBindingPropertyFromTargetModel(
+ SmooksResourceListType listType, String property, String selector,
+ JavaBeanModel parentModel, ClassLoader classLoader) {
+ parentModel.getProperties();
+ JavaBeanModel model = this.findTheChildJavaBeanModel(property,
+ parentModel);
+ if (model == null) {
+ model = new JavaBeanModel(null, property);
+ parentModel.addProperty(model);
+ model.setError("don't exist");
+ }
+
+ if (selector.startsWith("${") && selector.endsWith("}")) {
+ selector = selector.substring(2, selector.length() - 1);
+ ResourceConfigType resourceConfig = findResourceCinfigTypeWithSelector(
+ selector, listType);
+ if (resourceConfig != null) {
+ this.buildChildrenOfTargetInputModel(listType, model, false,
+ false, resourceConfig, classLoader);
+ }
+ }
+ }
+
+ protected List getBindingListFromResourceConfigType(
+ ResourceConfigType resourceConfig) {
+ List paramList = resourceConfig.getParam();
+ for (Iterator iterator = paramList.iterator(); iterator.hasNext();) {
+ ParamType param = (ParamType) iterator.next();
+ if ("bindings".equals(param.getName())) {
+ if (param.eContents().isEmpty())
+ continue;
+ List bindingList = (List) param.getMixed().get(
+ SmooksModelUtils.ELEMENT_BINDING, false);
+ return bindingList;
+ }
+ }
+ return null;
+ }
+
+ protected void buildSourceInputProperties(SmooksResourceListType listType,
+ JavaBeanModel beanModel, boolean rootIsWarning,
+ boolean rootIsError, ResourceConfigType currentResourceConfigType,
+ ClassLoader classLoader) {
+ if (currentResourceConfigType != null) {
+ List bindingList = this
+ .getBindingListFromResourceConfigType(currentResourceConfigType);
+ if (bindingList == null)
+ return;
+ for (Iterator iterator2 = bindingList.iterator(); iterator2
+ .hasNext();) {
+ AnyType binding = (AnyType) iterator2.next();
+ String selector = SmooksModelUtils
+ .getAttributeValueFromAnyType(binding,
+ SmooksModelUtils.ATTRIBUTE_SELECTOR);
+ setSelectorIsUsed(currentResourceConfigType.getSelector());
+ analyzeBindingSelector(selector, beanModel, listType,
+ classLoader);
+ }
+ }
+ }
+
+ protected ResourceConfigType findResourceCinfigTypeWithSelector(
+ String selector, SmooksResourceListType listType) {
+ if (isReferenceSelector(selector)) {
+ selector = this.getBeanIdWithRawSelectorString(selector);
+ }
+ List rl = listType.getAbstractResourceConfig();
+ ResourceConfigType resourceConfig = null;
+ for (Iterator iterator = rl.iterator(); iterator.hasNext();) {
+ ResourceConfigType rct = (ResourceConfigType) iterator.next();
+ if (this.isSelectorIsUsed(rct.getSelector()))
+ continue;
+ String beanId = getBeanIDFromParam(rct);
+ if (selector.equals(beanId)) {
+ resourceConfig = rct;
+ break;
+ }
+ }
+ return resourceConfig;
+ }
+
+ protected void analyzeBindingSelector(String selector,
+ JavaBeanModel currentModel, SmooksResourceListType listType,
+ ClassLoader classLoader) {
+ if (selector.startsWith("${") && selector.endsWith("}")) {
+ // should get the bean properties
+ // memory out???
+ currentModel.getProperties();
+ selector = this.getBeanIdWithRawSelectorString(selector);
+ ResourceConfigType resourceConfig = findResourceCinfigTypeWithSelector(
+ selector, listType);
+ if (resourceConfig != null) {
+ String referenceSelector = resourceConfig.getSelector();
+ JavaBeanModel model = findTheChildJavaBeanModel(
+ referenceSelector, currentModel);
+ // try to test the selector is can be loaded by classloader??
+ Class clazz = null;
+ try {
+ if (classLoader != null) {
+ clazz = classLoader.loadClass(referenceSelector);
+ if (clazz != null && model == null)
+ model = JavaBeanModelFactory
+ .getJavaBeanModelWithLazyLoad(clazz);
+ }
+ } catch (Exception e) {
+ // ignore
+ }
+ // something wrong
+ if (model == null) {
+ model = new JavaBeanModel(null, referenceSelector);
+ model.setError("don't exist");
+ model.setProperties(new ArrayList());
+ }
+ if (currentModel.getError() != null) {
+ currentModel.addProperty(model);
+ }
+ buildSourceInputProperties(listType, model, false, true,
+ resourceConfig, classLoader);
+ }
+ } else {
+ selector = selector.trim();
+ String[] properties = selector.split(SPACE_STRING);
+ if (properties != null) {
+ JavaBeanModel currentParent = currentModel;
+ for (int i = 0; i < properties.length; i++) {
+ String property = properties[i].trim();
+ Class currentClazz = currentParent.getBeanClass();
+ if (currentClazz != null
+ && property.equals(currentClazz.getName())) {
+
+ } else {
+ JavaBeanModel pm = findTheChildJavaBeanModel(property,
+ currentParent);
+ if (pm != null) {
+
+ } else {
+ pm = new JavaBeanModel(null, property);
+ pm.setProperties(new ArrayList());
+ pm.setError("don't exist");
+ currentParent.addProperty(pm);
+ }
+ currentParent = pm;
+ }
+ }
+ } else {
+ // if properties is null , how to process?
+ }
+ }
+ }
+
+ protected String getBeanIDFromParam(ResourceConfigType config) {
+ List list = config.getParam();
+ for (Iterator iterator = list.iterator(); iterator.hasNext();) {
+ ParamType p = (ParamType) iterator.next();
+ if ("beanId".equals(p.getName())) {
+ return SmooksModelUtils.getAnyTypeText(p);
+ }
+
+ }
+ return null;
+ }
+
+ /**
+ * Find the child JavaBeanModel from parent with the child name <br>
+ * If the parent JavabeanModel is "Collection" or "Array" , the
child
+ * JavabeanModel is the first child of the parent model,it means that the
+ * param "name" is useless with the status.<br>
+ *
+ * TODO The method need to improve!!!!!
+ *
+ * @param name
+ * @param parentModel
+ * @return
+ */
+ protected JavaBeanModel findTheChildJavaBeanModel(String name,
+ JavaBeanModel parentModel) {
+ List list = parentModel.getProperties();
+ if (list == null)
+ return null;
+ if (parentModel.isList() || parentModel.isArray()) {
+ if (list.size() >= 1) {
+ JavaBeanModel m = (JavaBeanModel) list.get(0);
+ return m;
+ }
+ }
+
+ for (Iterator iterator = list.iterator(); iterator.hasNext();) {
+ JavaBeanModel child = (JavaBeanModel) iterator.next();
+ if (name.equals(child.getName())) {
+ return child;
+ }
+ }
+ return null;
+ }
+}
Property changes on:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/analyzer/JavaBeanAnalyzer.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/commandprocessor/JavaBeanModelCommandProcessor.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/commandprocessor/JavaBeanModelCommandProcessor.java
(rev 0)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/commandprocessor/JavaBeanModelCommandProcessor.java 2008-09-08
03:13:38 UTC (rev 10122)
@@ -0,0 +1,54 @@
+/*******************************************************************************
+ * Copyright (c) 2007 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at
http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.smooks.javabean.commandprocessor;
+
+import org.eclipse.gef.DefaultEditDomain;
+import org.eclipse.gef.GraphicalEditPart;
+import org.eclipse.gef.GraphicalViewer;
+import org.eclipse.gef.requests.CreateRequest;
+import org.eclipse.jface.window.Window;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IEditorPart;
+import org.jboss.tools.smooks.javabean.ui.JavaBeanModelCreationDialog;
+import org.jboss.tools.smooks.ui.gef.commandprocessor.ICommandProcessor;
+import org.jboss.tools.smooks.utils.UIUtils;
+
+/**
+ * @author Dart Peng
+ *
+ * @CreateTime Jul 22, 2008
+ */
+public class JavaBeanModelCommandProcessor implements ICommandProcessor {
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.jboss.tools.smooks.ui.gef.commandprocessor.ICommandProcessor#getNewModel
+ * (java.lang.Object, java.lang.Object, org.eclipse.gef.GraphicalEditPart)
+ */
+ public Object getNewModel(CreateRequest request,
+ GraphicalEditPart rootEditPart) {
+ DefaultEditDomain domain = (DefaultEditDomain) ((GraphicalViewer) rootEditPart
+ .getViewer()).getEditDomain();
+ // rootEditPart.getg
+ IEditorPart editorPart = domain.getEditorPart();
+ Shell shell = editorPart.getSite().getShell();
+ JavaBeanModelCreationDialog dialog = new JavaBeanModelCreationDialog(
+ shell, UIUtils
+ .getJavaProjectFromEditorPart(editorPart));
+ if(dialog.open() == Window.OK){
+ return dialog.getCheckedJavaBeanModel();
+ }
+ return null;
+ }
+
+}
Property changes on:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/commandprocessor/JavaBeanModelCommandProcessor.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/model/BeanContentProvider.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/model/BeanContentProvider.java
(rev 0)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/model/BeanContentProvider.java 2008-09-08
03:13:38 UTC (rev 10122)
@@ -0,0 +1,52 @@
+package org.jboss.tools.smooks.javabean.model;
+
+import java.util.List;
+
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.viewers.Viewer;
+/**
+ *
+ * @author Dart Peng
+ *
+ */
+public class BeanContentProvider implements ITreeContentProvider,
+ IStructuredContentProvider {
+
+ public Object[] getChildren(Object arg0) {
+ if (arg0 instanceof JavaBeanModel) {
+ return ((JavaBeanModel) arg0).getProperties().toArray();
+ }
+ return new Object[] {};
+ }
+
+ public Object getParent(Object arg0) {
+ if(arg0 instanceof JavaBeanModel){
+ return ((JavaBeanModel)arg0).getParent();
+ }
+ return null;
+ }
+
+ public boolean hasChildren(Object bean) {
+ if (bean instanceof JavaBeanModel) {
+ return !((JavaBeanModel) bean).isPrimitive();
+ }
+ return false;
+ }
+
+ public Object[] getElements(Object arg0) {
+ if (arg0 instanceof List) {
+ return ((List) arg0).toArray();
+ }
+ return new Object[]{arg0};
+ }
+
+ public void dispose() {
+
+ }
+
+ public void inputChanged(Viewer arg0, Object arg1, Object arg2) {
+
+ }
+
+}
\ No newline at end of file
Property changes on:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/model/BeanContentProvider.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/model/BeanlabelProvider.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/model/BeanlabelProvider.java
(rev 0)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/model/BeanlabelProvider.java 2008-09-08
03:13:38 UTC (rev 10122)
@@ -0,0 +1,69 @@
+package org.jboss.tools.smooks.javabean.model;
+
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.swt.graphics.Image;
+import org.jboss.tools.smooks.javabean.JavaBeanActivator;
+import org.jboss.tools.smooks.javabean.ui.JavaImageConstants;
+import org.jboss.tools.smooks.ui.SmooksUIActivator;
+import org.jboss.tools.smooks.utils.SmooksGraphConstants;
+
+public class BeanlabelProvider extends LabelProvider {
+
+ public Image getJavaObjectImage() {
+ return JavaBeanActivator.getDefault().getImageRegistry().get(
+ JavaImageConstants.IMAGE_JAVA_OBJECT);
+ }
+
+ public Image getJavaAttributeImage() {
+ return JavaBeanActivator.getDefault().getImageRegistry().get(
+ JavaImageConstants.IMAGE_JAVA_ATTRIBUTE);
+ }
+
+ public String getText(Object element) {
+ if (element instanceof JavaBeanModel) {
+ String name = ((JavaBeanModel) element).getName();
+ if (name == null)
+ name = "<nonamed>";
+
+ Object error = ((JavaBeanModel) element).getError();
+ if (error != null) {
+ name = name + " " + "<" + error.toString() +
">";
+ return name;
+ }
+
+ Class typeRef = ((JavaBeanModel) element).getBeanClass();
+ String typeStr = "";
+ if (typeRef != null) {
+ if (typeRef.isArray()) {
+ typeRef = typeRef.getComponentType();
+ typeStr = typeRef.getName() + "[]";
+ } else {
+ typeStr = typeRef.getName();
+ }
+ }
+ if (!typeStr.equals("")) {
+ name = name + " " + typeStr;
+ }
+
+ return name;
+ }
+ return super.getText(element);
+ }
+
+ @Override
+ public Image getImage(Object element) {
+ if (element instanceof JavaBeanModel) {
+ Object error = ((JavaBeanModel) element).getError();
+ if (error != null) {
+ return SmooksUIActivator.getDefault().getImageRegistry().get(
+ SmooksGraphConstants.IMAGE_ERROR);
+ }
+ if (((JavaBeanModel) element).isPrimitive()) {
+ return this.getJavaAttributeImage();
+ } else {
+ return this.getJavaObjectImage();
+ }
+ }
+ return super.getImage(element);
+ }
+}
\ No newline at end of file
Property changes on:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/model/BeanlabelProvider.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/model/JavaBeanModel.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/model/JavaBeanModel.java
(rev 0)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/model/JavaBeanModel.java 2008-09-08
03:13:38 UTC (rev 10122)
@@ -0,0 +1,362 @@
+/*******************************************************************************
+ * Copyright (c) 2007 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at
http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.smooks.javabean.model;
+
+import java.beans.PropertyDescriptor;
+import java.lang.reflect.Method;
+import java.lang.reflect.ParameterizedType;
+import java.lang.reflect.Type;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+
+import org.apache.commons.beanutils.PropertyUtils;
+import org.jboss.tools.smooks.analyzer.IValidatable;
+
+/**
+ * @author Dart Peng
+ *
+ */
+public class JavaBeanModel implements IValidatable {
+
+ private Object waring = null;
+
+ private Object error = null;
+
+ private String name = "";
+
+ private Class typeRef = null;
+
+ private boolean many = false;
+
+ private boolean collection = false;
+
+ private boolean isPrimitive = false;
+
+ private Class<? extends Object> beanClass = null;
+
+ private JavaBeanModel parent = null;
+
+ public Class getBeanClass() {
+ return beanClass;
+ }
+
+ private Class parentClass = null;
+
+ private boolean isRoot = false;
+
+ private boolean isRootClassModel = false;
+
+ /**
+ * @return the isRootClassModel
+ */
+ public boolean isRootClassModel() {
+ return isRootClassModel;
+ }
+
+ /**
+ * @param isRootClassModel
+ * the isRootClassModel to set
+ */
+ public void setRootClassModel(boolean isRootClassModel) {
+ this.isRootClassModel = isRootClassModel;
+ }
+
+ /**
+ * @return the isRoot
+ */
+ public boolean isRoot() {
+ return isRoot;
+ }
+
+ public String getBeanClassString() {
+ Class clazz = this.getBeanClass();
+ if (clazz == null)
+ return "<null>";
+
+ if (clazz.isArray()) {
+ String s = clazz.getComponentType().getName();
+ return s + "[]";
+ }
+
+ return clazz.getName();
+ }
+
+ /**
+ * @param isRoot
+ * the isRoot to set
+ */
+ public void setRoot(boolean isRoot) {
+ this.isRoot = isRoot;
+ }
+
+ private boolean isList = false;
+
+ private Class componentClass = null;
+
+ private boolean lazyLoadProperties = true;
+
+ public boolean isList() {
+ if(beanClass == null) return false;
+ if (Collection.class.isAssignableFrom(beanClass)) {
+ if (this.propertyDescriptor != null) {
+ Method rmethod = propertyDescriptor.getReadMethod();
+ if (rmethod != null) {
+ Type returnType = rmethod.getGenericReturnType();
+ if (returnType instanceof ParameterizedType) {
+ Type gtype = ((ParameterizedType) returnType)
+ .getActualTypeArguments()[0];
+ Class beanType = (Class) gtype;
+ componentClass = beanType;
+ }
+ }
+ }
+ setList(true);
+ }
+ return isList;
+ }
+
+ public void setList(boolean isList) {
+ this.isList = isList;
+ }
+
+ private PropertyDescriptor propertyDescriptor;
+
+ public PropertyDescriptor getPropertyDescriptor() {
+ return propertyDescriptor;
+ }
+
+ public void setPropertyDescriptor(PropertyDescriptor propertyDescriptor) {
+ this.propertyDescriptor = propertyDescriptor;
+ }
+
+ JavaBeanModel(Class beanClass, String beanName,
+ PropertyDescriptor propertyDescriptor, Class parentClass,
+ boolean lazyLoadProperties) {
+ this.lazyLoadProperties = lazyLoadProperties;
+ this.beanClass = beanClass;
+ this.name = beanName;
+ if (beanClass == null)
+ return;
+ if(this.name == null){
+ this.name = beanClass.getSimpleName();
+ }
+
+
+ if (propertyDescriptor == null)
+ isRoot = true;
+ this.propertyDescriptor = propertyDescriptor;
+ Class beanType = beanClass;
+ if (beanClass.isArray()) {
+ beanType = beanClass.getComponentType();
+ setMany(true);
+ componentClass = beanType;
+ }
+
+ if (Collection.class.isAssignableFrom(beanClass)) {
+ if (this.propertyDescriptor != null) {
+ Method rmethod = propertyDescriptor.getReadMethod();
+ if (rmethod != null) {
+ Type returnType = rmethod.getGenericReturnType();
+ if (returnType instanceof ParameterizedType) {
+ Type gtype = ((ParameterizedType) returnType)
+ .getActualTypeArguments()[0];
+ beanType = (Class) gtype;
+ componentClass = beanType;
+ }
+ }
+ }
+ setList(true);
+ }
+
+ if (beanType.isPrimitive()
+ || JavaBeanModelFactory.isPrimitiveObject(beanType)) {
+ setTypeRef(beanType);
+ this.parentClass = parentClass;
+
+ if (!isArray() && !isList())
+ setPrimitive(true);
+ return;
+ }
+ this.parentClass = parentClass;
+
+ if (!lazyLoadProperties)
+ this.getProperties();
+ }
+
+ JavaBeanModel(Class beanClass, String beanName,
+ PropertyDescriptor propertyDescriptor) {
+ this(beanClass, beanName, propertyDescriptor, null, true);
+ }
+
+ public JavaBeanModel(Class beanClass) {
+ this(beanClass, null, null, null, true);
+ }
+
+ public JavaBeanModel(Class beanClass, String name) {
+ this(beanClass, name, null, null, true);
+ }
+
+ JavaBeanModel(Class beanClass, boolean lazyLoadProperties) {
+ this(beanClass, null, null, null, lazyLoadProperties);
+ }
+
+ public boolean isPrimitive() {
+ return isPrimitive;
+ }
+
+ public void setPrimitive(boolean isPrimitive) {
+ this.isPrimitive = isPrimitive;
+ }
+
+ public boolean isArray() {
+ if(beanClass == null) return false;
+ if (beanClass.isArray()) {
+ Class beanType = beanClass.getComponentType();
+ setMany(true);
+ componentClass = beanType;
+ }
+ return many;
+ }
+
+ public void setMany(boolean many) {
+ this.many = many;
+ }
+
+ public boolean isCollection() {
+ return collection;
+ }
+
+ public void setCollection(boolean collection) {
+ this.collection = collection;
+ }
+
+ public Class getTypeRef() {
+ return typeRef;
+ }
+
+ public void setTypeRef(Class typeRef) {
+ this.typeRef = typeRef;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public void addProperty(JavaBeanModel property) {
+ if (properties != null) {
+ properties.add(property);
+ property.setParent(this);
+ }
+ }
+
+ private List properties;
+
+ public List getProperties() {
+
+ if (properties == null) {
+ properties = new ArrayList();
+ Class beanType = beanClass;
+
+ if (this.componentClass != null) {
+ if (isArray() || isList()) {
+ JavaBeanModel proxyModel = new JavaBeanModel(
+ componentClass, componentClass.getSimpleName(),
+ null, beanClass, this.lazyLoadProperties);
+ beanType = componentClass;
+
+ addProperty(proxyModel);
+
+ return properties;
+ }
+ }
+ if(beanType == null) return null;
+ PropertyDescriptor[] pds = PropertyUtils
+ .getPropertyDescriptors(beanType);
+
+ for (int i = 0; i < pds.length; i++) {
+ PropertyDescriptor pd = pds[i];
+ if ("class".equals(pd.getName()))
+ continue;
+ JavaBeanModel jbm = new JavaBeanModel(pd.getPropertyType(), pd
+ .getName(), pd, beanClass, this.lazyLoadProperties);
+ addProperty(jbm);
+ }
+ }
+ return properties;
+ }
+
+ public void setProperties(List properties) {
+ this.properties = properties;
+ }
+
+ public boolean propertiesHasBeenLoaded() {
+ return properties != null;
+ }
+
+ /**
+ * @return the parent
+ */
+ public JavaBeanModel getParent() {
+ return parent;
+ }
+
+ /**
+ * @param parent
+ * the parent to set
+ */
+ public void setParent(JavaBeanModel parent) {
+ this.parent = parent;
+ }
+
+ public Object getWarning() {
+ return waring;
+ }
+
+ public void setWarning(Object waring) {
+ this.waring = waring;
+ }
+
+ public Object getError() {
+ return error;
+ }
+
+ public void setError(Object error) {
+ this.error = error;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see java.lang.Object#toString()
+ */
+ public String toString() {
+ StringBuffer buffer = new StringBuffer("JavaBean Name : " + name);
+ if (beanClass != null)
+ buffer.append(";Class : " + this.beanClass.getName());
+ if (this.properties != null) {
+ buffer.append("\n");
+ for (Iterator iterator = properties.iterator(); iterator.hasNext();) {
+ JavaBeanModel child = (JavaBeanModel) iterator.next();
+ buffer.append("\t");
+ buffer.append(child.toString());
+ buffer.append("\n");
+ }
+ }
+ return buffer.toString();
+ }
+
+}
Property changes on:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/model/JavaBeanModel.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/model/JavaBeanModelFactory.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/model/JavaBeanModelFactory.java
(rev 0)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/model/JavaBeanModelFactory.java 2008-09-08
03:13:38 UTC (rev 10122)
@@ -0,0 +1,65 @@
+/*******************************************************************************
+ * Copyright (c) 2007 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at
http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.smooks.javabean.model;
+
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.util.ArrayList;
+import java.util.List;
+
+
+/**
+ * @author Dart Peng
+ *
+ */
+public class JavaBeanModelFactory {
+
+
+ private static final List PRIMITIVE_CLASSES = new ArrayList();
+ static{
+ PRIMITIVE_CLASSES.add(Integer.class);
+ PRIMITIVE_CLASSES.add(Double.class);
+ PRIMITIVE_CLASSES.add(Float.class);
+ PRIMITIVE_CLASSES.add(String.class);
+ PRIMITIVE_CLASSES.add(Long.class);
+ PRIMITIVE_CLASSES.add(java.util.Date.class);
+ PRIMITIVE_CLASSES.add(Character.class);
+ PRIMITIVE_CLASSES.add(BigInteger.class);
+ PRIMITIVE_CLASSES.add(BigDecimal.class);
+ PRIMITIVE_CLASSES.add(Byte.class);
+ }
+
+ /**
+ * @param beanClass
+ * @param modelName
+ * @return
+ */
+ public synchronized static JavaBeanModel getJavaBeanModelWithLazyLoad(Class beanClass )
{
+ JavaBeanModel m = new JavaBeanModel(beanClass,true);
+ m.setRootClassModel(true);
+ return m;
+ }
+
+ public synchronized static JavaBeanModel getJavaBeanModel(Class beanClass ) {
+ JavaBeanModel m = new JavaBeanModel(beanClass,false);
+ m.setRootClassModel(true);
+ return m;
+ }
+
+ public static boolean isPrimitiveObject(Class clazz) {
+ return (PRIMITIVE_CLASSES.indexOf(clazz) != -1);
+ }
+
+ public static void main(String[] args) throws SecurityException, NoSuchFieldException {
+// JavaBeanModel jbm = getJavaBeanModel(LineOrder.class);
+// System.out.println(jbm);
+ }
+}
Property changes on:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/model/JavaBeanModelFactory.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/model/JavaBeanParser.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/model/JavaBeanParser.java
(rev 0)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/model/JavaBeanParser.java 2008-09-08
03:13:38 UTC (rev 10122)
@@ -0,0 +1,38 @@
+package org.jboss.tools.smooks.javabean.model;
+
+import org.jboss.tools.smooks.ui.gef.model.AbstractStructuredDataModel;
+import org.jboss.tools.smooks.ui.modelparser.IStructuredModelParser;
+
+/**
+ *
+ * @author Dart Peng
+ *
+ */
+public class JavaBeanParser implements IStructuredModelParser {
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.jboss.tools.smooks.ui.modelparser.IStructuredModelParser#parse(java
+ * .lang.Object)
+ */
+ public AbstractStructuredDataModel parse(Object customModel) {
+ if (customModel instanceof JavaBeanModel) {
+ AbstractStructuredDataModel model = null;
+ String name = ((JavaBeanModel) customModel).getName();
+
+ if (((JavaBeanModel) customModel).isRootClassModel()) {
+ model = new JavaStructuredDataModel();
+ ((JavaStructuredDataModel) model).setLabelName(name);
+ } else {
+ model = new JavabeanStructuredContentsModel();
+ ((JavabeanStructuredContentsModel) model).setName(name);
+ ((JavabeanStructuredContentsModel) model).setTypeString(((JavaBeanModel)
customModel).getBeanClass().getName());
+ }
+ model.setReferenceEntityModel(customModel);
+ return model;
+ }
+ return null;
+ }
+
+}
Property changes on:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/model/JavaBeanParser.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/model/JavaStructuredDataModel.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/model/JavaStructuredDataModel.java
(rev 0)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/model/JavaStructuredDataModel.java 2008-09-08
03:13:38 UTC (rev 10122)
@@ -0,0 +1,6 @@
+package org.jboss.tools.smooks.javabean.model;
+
+import org.jboss.tools.smooks.ui.gef.model.StructuredDataModel;
+
+public class JavaStructuredDataModel extends StructuredDataModel {
+}
Property changes on:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/model/JavaStructuredDataModel.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/model/JavabeanStructuredContentsModel.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/model/JavabeanStructuredContentsModel.java
(rev 0)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/model/JavabeanStructuredContentsModel.java 2008-09-08
03:13:38 UTC (rev 10122)
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * Copyright (c) 2007 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at
http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.smooks.javabean.model;
+
+import org.jboss.tools.smooks.ui.gef.model.StructuredDataContentModel;
+
+/**
+ * @author Dart Peng
+ *
+ */
+public class JavabeanStructuredContentsModel extends StructuredDataContentModel {
+
+ /* (non-Javadoc)
+ * @see org.jboss.tools.smooks.ui.gef.model.StructuredDataContentModel#getName()
+ */
+ @Override
+ public String getName() {
+ return super.getName();
+ }
+}
Property changes on:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/model/JavabeanStructuredContentsModel.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/ui/JavaBeanConfigWizardPage.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/ui/JavaBeanConfigWizardPage.java
(rev 0)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/ui/JavaBeanConfigWizardPage.java 2008-09-08
03:13:38 UTC (rev 10122)
@@ -0,0 +1,132 @@
+/*******************************************************************************
+ * Copyright (c) 2007 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at
http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.smooks.javabean.ui;
+
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Text;
+import org.jboss.tools.smooks.javabean.model.JavaBeanModel;
+
+/**
+ * @author Dart Peng
+ *
+ * @CreateTime Jul 21, 2008
+ */
+public class JavaBeanConfigWizardPage extends WizardPage implements
+ SelectionListener {
+
+ TreeViewer treeViewer;
+
+ Text classText = null;
+
+ Button classBrowseButton = null;
+
+ IJavaProject project = null;
+
+ private JavaBeanModelLoadComposite javaPropertySelectComposite;
+
+ public JavaBeanModel getJavaBeanModel(){
+ return javaPropertySelectComposite.getCheckedJavaBeanModel();
+ }
+
+ public JavaBeanConfigWizardPage(IJavaProject selection) {
+ super("beansearchwizardpage");
+ this.project = selection;
+ }
+
+ protected void initilize() {
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.ecSclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt
+ * .widgets.Composite)
+ */
+ public void createControl(Composite parent) {
+ initilize();
+// Composite cc = new Composite(parent,SWT.NONE);
+// cc.setLayout(new GridLayout());
+ try {
+ javaPropertySelectComposite = new JavaBeanModelLoadComposite(
+ parent, SWT.NONE, getContainer(), project);
+
+// Button button = new Button(cc, SWT.BORDER);
+//
+// final TreeViewer vi = new TreeViewer(cc, SWT.NONE);
+// GridData gd = new GridData(GridData.FILL_BOTH);
+// gd.grabExcessHorizontalSpace = true;
+// gd.grabExcessVerticalSpace = true;
+// vi.setContentProvider(new BeanContentProvider());
+// vi.setLabelProvider(new BeanlabelProvider());
+// vi.getTree().setLayoutData(gd);
+//
+// javaPropertySelectComposite.setLayoutData(gd);
+// button.addSelectionListener(new SelectionAdapter() {
+//
+// /*
+// * (non-Javadoc)
+// *
+// * @see
+// * org.eclipse.swt.events.SelectionAdapter#widgetSelected(org
+// * .eclipse.swt.events.SelectionEvent)
+// */
+// @Override
+// public void widgetSelected(SelectionEvent e) {
+// // TODO Auto-generated method stub
+// super.widgetSelected(e);
+// List l = new ArrayList();
+// l.add(javaPropertySelectComposite.getCheckedJavaBeanModel());
+// vi.setInput(l);
+// }
+//
+// });
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ this.setControl(javaPropertySelectComposite);
+ this.updatePage();
+ }
+
+ protected void updatePage() {
+ String error = null;
+ if (project == null) {
+ error = "Please select a Java project.";
+ }
+ this.setErrorMessage(error);
+ }
+
+ public JavaBeanConfigWizardPage(String pageName, String title,
+ ImageDescriptor titleImage) {
+ super(pageName, title, titleImage);
+ }
+
+ public JavaBeanConfigWizardPage(String pageName) {
+ super(pageName);
+ }
+
+ public void widgetDefaultSelected(SelectionEvent arg0) {
+ widgetSelected(arg0);
+ }
+
+ public void widgetSelected(SelectionEvent arg0) {
+
+ }
+
+}
Property changes on:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/ui/JavaBeanConfigWizardPage.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/ui/JavaBeanModelCreationDialog.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/ui/JavaBeanModelCreationDialog.java
(rev 0)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/ui/JavaBeanModelCreationDialog.java 2008-09-08
03:13:38 UTC (rev 10122)
@@ -0,0 +1,100 @@
+/*******************************************************************************
+ * Copyright (c) 2007 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at
http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.smooks.javabean.ui;
+
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jface.dialogs.TitleAreaDialog;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Shell;
+import org.jboss.tools.smooks.javabean.model.JavaBeanModel;
+
+/**
+ * @author Dart Peng
+ *
+ * @CreateTime Jul 22, 2008
+ */
+public class JavaBeanModelCreationDialog extends TitleAreaDialog {
+
+ IJavaProject project = null;
+ private JavaBeanModelLoadComposite jc;
+
+ private JavaBeanModel returnModel;
+
+ /**
+ *
+ * @return
+ */
+ public JavaBeanModel getCheckedJavaBeanModel() {
+ return returnModel;
+ }
+
+ public JavaBeanModelCreationDialog(Shell parentShell, IJavaProject project) {
+ super(parentShell);
+ this.project = project;
+ }
+
+ public int open(){
+ return super.open();
+ }
+
+
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.dialogs.Dialog#okPressed()
+ */
+ @Override
+ protected void okPressed() {
+ returnModel = jc.getCheckedJavaBeanModel();
+ super.okPressed();
+// returnModel = jc.getCheckedJavaBeanModel();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.eclipse.jface.dialogs.TitleAreaDialog#createDialogArea(org.eclipse
+ * .swt.widgets.Composite)
+ */
+ @Override
+ protected Control createDialogArea(Composite parent) {
+ Control area = super.createDialogArea(parent);
+ try {
+ this.createJavaBeanDialog(area, project);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return area;
+ }
+
+ /**
+ *
+ * @param area
+ * @param project
+ * @return
+ * @throws Exception
+ */
+ protected Control createJavaBeanDialog(Control area, IJavaProject project)
+ throws Exception {
+ jc = new JavaBeanModelLoadComposite((Composite) area, SWT.NONE, null,
+ project);
+ GridData gd = new GridData(GridData.FILL_BOTH);
+ gd.grabExcessHorizontalSpace = true;
+ gd.grabExcessVerticalSpace = true;
+ jc.setLayoutData(gd);
+ gd.heightHint = 400;
+ return area;
+ }
+
+}
Property changes on:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/ui/JavaBeanModelCreationDialog.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/ui/JavaBeanModelGraphUIProvider.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/ui/JavaBeanModelGraphUIProvider.java
(rev 0)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/ui/JavaBeanModelGraphUIProvider.java 2008-09-08
03:13:38 UTC (rev 10122)
@@ -0,0 +1,40 @@
+/*******************************************************************************
+ * Copyright (c) 2008 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at
http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.smooks.javabean.ui;
+
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.swt.graphics.Color;
+import org.jboss.tools.smooks.ui.gef.IGraphUIProvider;
+
+/**
+ * @author Dart Peng
+ * @Date Jul 25, 2008
+ */
+public class JavaBeanModelGraphUIProvider extends LabelProvider implements
+ IGraphUIProvider {
+
+ /* (non-Javadoc)
+ * @see org.jboss.tools.smooks.ui.gef.GraphLabelProvider#getBackgroundColor()
+ */
+ public Color getBackgroundColor() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.tools.smooks.ui.gef.GraphLabelProvider#getTypeText(java.lang.Object)
+ */
+ public String getTypeText(Object model) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+}
Property changes on:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/ui/JavaBeanModelGraphUIProvider.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/ui/JavaBeanModelLoadComposite.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/ui/JavaBeanModelLoadComposite.java
(rev 0)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/ui/JavaBeanModelLoadComposite.java 2008-09-08
03:13:38 UTC (rev 10122)
@@ -0,0 +1,226 @@
+/*******************************************************************************
+ * Copyright (c) 2007 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at
http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.smooks.javabean.ui;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.IType;
+import org.eclipse.jdt.core.search.IJavaSearchScope;
+import org.eclipse.jdt.internal.corext.util.JavaModelUtil;
+import org.eclipse.jdt.internal.ui.search.JavaSearchScopeFactory;
+import org.eclipse.jdt.ui.IJavaElementSearchConstants;
+import org.eclipse.jdt.ui.JavaUI;
+import org.eclipse.jface.operation.IRunnableContext;
+import org.eclipse.jface.viewers.CheckboxTreeViewer;
+import org.eclipse.jface.window.Window;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.dialogs.SelectionDialog;
+import org.jboss.tools.smooks.javabean.model.JavaBeanModel;
+import org.jboss.tools.smooks.javabean.model.JavaBeanModelFactory;
+import org.jboss.tools.smooks.ui.SmooksUIActivator;
+import org.jboss.tools.smooks.utils.ProjectClassLoader;
+
+/**
+ * @author Dart Peng
+ *
+ * @CreateTime Jul 22, 2008
+ */
+public class JavaBeanModelLoadComposite extends Composite implements
+ SelectionListener {
+
+ protected Text classText;
+ private Button classBrowseButton;
+ protected String classFullName;
+ protected boolean loadAtomic;
+ protected IJavaProject javaProject;
+ protected IRunnableContext runnableContext;
+ protected JavaBeanModel currentRootJavaBeanModel = null;
+ protected JavaBeanModel returnJavaBeanModel = null;
+
+ protected ProjectClassLoader loader = null;
+
+ public JavaBeanModelLoadComposite(Composite parent, int style,
+ IRunnableContext runnableContext, IJavaProject project,
+ boolean loadJavapropertiesAtomic) throws Exception {
+ super(parent, style);
+ loadAtomic = loadJavapropertiesAtomic;
+ this.runnableContext = runnableContext;
+ if (this.runnableContext == null) {
+ this.runnableContext = SmooksUIActivator.getDefault()
+ .getWorkbench().getActiveWorkbenchWindow();
+ // this.runnableContext = new
+ // ProgressMonitorDialog(parent.getShell());
+ if (this.runnableContext == null)
+ throw new Exception("Can't init IRunnableContent");
+ }
+
+ if (project != null) {
+ javaProject = project;
+ loader = new ProjectClassLoader(javaProject);
+ }
+
+ createCompositeContent();
+ }
+
+ public JavaBeanModelLoadComposite(Composite parent, int style,
+ IRunnableContext runnableContext, IJavaProject project)
+ throws Exception {
+ this(parent, style, runnableContext, project, true);
+ }
+
+ protected Control createCompositeContent() {
+ Composite parent = this;
+ parent.setLayout(new FillLayout());
+ Composite com = new Composite(parent, SWT.NULL);
+ GridLayout layout = new GridLayout();
+ layout.numColumns = 2;
+ com.setLayout(layout);
+
+ Label classLabel = new Label(com, SWT.NULL);
+ classLabel.setText("Class Name:");
+
+ Composite classTextContainer = new Composite(com, SWT.NONE);
+ GridData gd = new GridData(GridData.FILL_HORIZONTAL);
+ gd.grabExcessHorizontalSpace = true;
+ classTextContainer.setLayoutData(gd);
+
+ GridLayout gl = new GridLayout();
+ gl.numColumns = 2;
+ classTextContainer.setLayout(gl);
+
+ {
+ classText = new Text(classTextContainer, SWT.BORDER);
+ gd = new GridData(GridData.FILL_HORIZONTAL);
+ gd.grabExcessHorizontalSpace = true;
+ classText.setLayoutData(gd);
+ classText.addModifyListener(new ModifyListener() {
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.swt.events.ModifyListener#modifyText(org.eclipse
+ * .swt.events.ModifyEvent)
+ */
+ public void modifyText(ModifyEvent arg0) {
+ classFullName = classText.getText();
+ }
+
+ });
+
+ classBrowseButton = new Button(classTextContainer, SWT.NONE);
+ classBrowseButton.addSelectionListener(this);
+ classBrowseButton.setText("Browse...");
+ }
+ return com;
+ }
+
+ protected void recordModel() {
+ // this.currentRootJavaBeanModel.setProperties(null);
+ // this.fillCheckStateModel(this.currentRootJavaBeanModel);
+ }
+
+ protected void fillTheModelWithCheckStatus(JavaBeanModel javaBeanModel,
+ CheckboxTreeViewer viewer) {
+ ArrayList clist = new ArrayList();
+ if (javaBeanModel.propertiesHasBeenLoaded()) {
+ List children = javaBeanModel.getProperties();
+ for (Iterator iterator = children.iterator(); iterator.hasNext();) {
+ JavaBeanModel child = (JavaBeanModel) iterator.next();
+ boolean checked = viewer.getChecked(child);
+ if (checked) {
+ clist.add(child);
+ fillTheModelWithCheckStatus(child, viewer);
+ }
+ }
+ }
+ javaBeanModel.setProperties(clist);
+ }
+
+ /**
+ *
+ * @return
+ */
+ public JavaBeanModel getCheckedJavaBeanModel() {
+ return this.fillCheckStateModel(currentRootJavaBeanModel);
+ }
+
+ /**
+ *
+ * @return
+ */
+ public JavaBeanModel fillCheckStateModel(JavaBeanModel rootJavaBean) {
+ if (rootJavaBean == null) {
+ // List list = (List) treeViewer.getInput();
+ // if (list != null)
+ // rootJavaBean = (JavaBeanModel) list.get(0);
+ try {
+ ProjectClassLoader loader = new ProjectClassLoader(javaProject);
+ Class clazz = loader.loadClass(this.classText.getText());
+ rootJavaBean = JavaBeanModelFactory
+ .getJavaBeanModelWithLazyLoad(clazz);
+ }catch(Exception e){
+
+ }
+ }
+ // if (rootJavaBean != null)
+ // this.fillTheModelWithCheckStatus(rootJavaBean, treeViewer);
+ return rootJavaBean;
+ }
+
+ public void widgetDefaultSelected(SelectionEvent arg0) {
+ this.widgetSelected(arg0);
+
+ }
+
+ public void widgetSelected(SelectionEvent arg0) {
+ IJavaSearchScope scope = JavaSearchScopeFactory.getInstance()
+ .createJavaProjectSearchScope(javaProject, true);
+ SelectionDialog dialog;
+ try {
+ dialog = JavaUI.createTypeDialog(this.getShell(), runnableContext,
+ scope, IJavaElementSearchConstants.CONSIDER_CLASSES, false);
+ dialog.setMessage("Source Java Bean:");
+ dialog.setTitle("Search java bean");
+
+ if (dialog.open() == Window.OK) {
+ Object[] results = dialog.getResult();
+ if (results.length > 0) {
+ Object result = results[0];
+ String packageFullName = JavaModelUtil
+ .getTypeContainerName((IType) result);
+ classText.setText(packageFullName + "."
+ + ((IType) result).getElementName());
+ }
+ }
+ } catch (Exception e) {
+ // this.setErrorMessage("Error occurs!please see log file");
+ e.printStackTrace();
+ }
+
+ }
+
+
+}
Property changes on:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/ui/JavaBeanModelLoadComposite.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/ui/JavaImageConstants.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/ui/JavaImageConstants.java
(rev 0)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/ui/JavaImageConstants.java 2008-09-08
03:13:38 UTC (rev 10122)
@@ -0,0 +1,6 @@
+package org.jboss.tools.smooks.javabean.ui;
+
+public class JavaImageConstants {
+ public static final String IMAGE_JAVA_ATTRIBUTE = "java_attribute";
+ public static final String IMAGE_JAVA_OBJECT = "java_object";
+}
Property changes on:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/ui/JavaImageConstants.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/ui/NewJavaBeanStrucutredDataWizard.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/ui/NewJavaBeanStrucutredDataWizard.java
(rev 0)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/ui/NewJavaBeanStrucutredDataWizard.java 2008-09-08
03:13:38 UTC (rev 10122)
@@ -0,0 +1,77 @@
+/*******************************************************************************
+ * Copyright (c) 2008 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at
http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.smooks.javabean.ui;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.IFileEditorInput;
+import org.jboss.tools.smooks.javabean.JavaBeanActivator;
+import org.jboss.tools.smooks.ui.IStrucutredDataCreationWizard;
+
+/**
+ * @author Dart Peng
+ * @Date Aug 5, 2008
+ */
+public class NewJavaBeanStrucutredDataWizard extends Wizard implements
IStrucutredDataCreationWizard{
+ JavaBeanConfigWizardPage page = null;
+ IJavaProject project = null;
+ Object result = null;
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.wizard.Wizard#addPages()
+ */
+ @Override
+ public void addPages() {
+ super.addPages();
+ if(page == null){
+ page = new JavaBeanConfigWizardPage(project);
+ this.addPage(page);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.wizard.Wizard#performFinish()
+ */
+ @Override
+ public boolean performFinish() {
+ result = page.getJavaBeanModel();
+ return true;
+ }
+
+ public Object getTreeViewerInputContents() {
+ List<Object> list = new ArrayList<Object>();
+ list.add(result);
+ return list;
+ }
+
+ public void init(IEditorSite site, IEditorInput input) {
+ if(input != null && input instanceof IFileEditorInput){
+ IFileEditorInput fi = (IFileEditorInput)input;
+ IProject project = fi.getFile().getProject();
+ if(project instanceof IJavaProject){
+ this.project = (IJavaProject)project;
+ }else{
+ this.project = JavaCore.create(project);
+ }
+ }
+ }
+
+ public String getInputDataTypeID() {
+ return JavaBeanActivator.DATA_TYPE_ID_JAVABEAN;
+ }
+
+}
Property changes on:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/ui/NewJavaBeanStrucutredDataWizard.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src_test/Header.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src_test/Header.java
(rev 0)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src_test/Header.java 2008-09-08
03:13:38 UTC (rev 10122)
@@ -0,0 +1,17 @@
+
+ public class Header {
+ private Integer age;
+ private String name;
+ public Integer getAge() {
+ return age;
+ }
+ public void setAge(Integer age) {
+ this.age = age;
+ }
+ public String getName() {
+ return name;
+ }
+ public void setName(String name) {
+ this.name = name;
+ }
+}
Property changes on:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src_test/Header.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src_test/Order.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src_test/Order.java
(rev 0)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src_test/Order.java 2008-09-08
03:13:38 UTC (rev 10122)
@@ -0,0 +1,26 @@
+
+public class Order {
+ private String name;
+ private int height;
+ private Header header;
+ public Header getHeader() {
+ return header;
+ }
+ public void setHeader(Header header) {
+ this.header = header;
+ }
+ public String getName() {
+ return name;
+ }
+ public void setName(String name) {
+ this.name = name;
+ }
+ public int getHeight() {
+ return height;
+ }
+ public void setHeight(int height) {
+ this.height = height;
+ }
+
+
+}
Property changes on:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src_test/Order.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src_test/srcmodel/Header.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src_test/srcmodel/Header.java
(rev 0)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src_test/srcmodel/Header.java 2008-09-08
03:13:38 UTC (rev 10122)
@@ -0,0 +1,37 @@
+package srcmodel;
+
+
+import java.util.Date;
+
+/**
+ * @author <a
href="mailto:tom.fennelly@gmail.com">tom.fennelly@gmail.com</a>
+ */
+public class Header {
+ private Long customerNumber = 1234L;
+ private String customerName = "Buzz Lightyear";
+
+ public Long getCustomerNumber() {
+ return customerNumber;
+ }
+
+ public void setCustomerNumber(Long customerNumber) {
+ this.customerNumber = customerNumber;
+ }
+
+ public String getCustomerName() {
+ return customerName;
+ }
+
+ public void setCustomerName(String customerName) {
+ this.customerName = customerName;
+ }
+
+ public String toString() {
+ StringBuilder stringBuilder = new StringBuilder();
+
+ stringBuilder.append("customerNumber: " + customerNumber + ",
");
+ stringBuilder.append("customerName: " + customerName);
+
+ return stringBuilder.toString();
+ }
+}
\ No newline at end of file
Property changes on:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src_test/srcmodel/Header.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src_test/srcmodel/Order.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src_test/srcmodel/Order.java
(rev 0)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src_test/srcmodel/Order.java 2008-09-08
03:13:38 UTC (rev 10122)
@@ -0,0 +1,64 @@
+package srcmodel;
+
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Arrays;
+
+/**
+ * @author <a
href="mailto:tom.fennelly@gmail.com">tom.fennelly@gmail.com</a>
+ */
+public class Order {
+ private Header header;
+ private List<OrderItem> modifyOrderItems;
+
+ private int[] ages;
+ public int[] getAges() {
+ return ages;
+ }
+
+ public void setAges(int[] ages) {
+ this.ages = ages;
+ }
+
+ public Order() {
+ header = new Header();
+ modifyOrderItems = new ArrayList<OrderItem>();
+ modifyOrderItems.add(new OrderItem());
+ modifyOrderItems.add(new OrderItem());
+
+ modifyOrderItems.get(0).setProductId(111);
+ modifyOrderItems.get(0).setQuantity(2);
+ modifyOrderItems.get(0).setPrice(10.99);
+
+ modifyOrderItems.get(1).setProductId(222);
+ modifyOrderItems.get(1).setQuantity(4);
+ modifyOrderItems.get(1).setPrice(25.50);
+ }
+
+ public Header getHeader() {
+ return header;
+ }
+
+ public void setHeader(Header header) {
+ this.header = header;
+ }
+
+ public List<OrderItem> getOrderItems() {
+ return modifyOrderItems;
+ }
+
+ public void setOrderItems(List<OrderItem> orderItems) {
+ this.modifyOrderItems = orderItems;
+ }
+
+ public String toString() {
+ StringBuilder stringBuilder = new StringBuilder();
+
+ stringBuilder.append("Class: " + getClass().getName() +
"\n");
+ stringBuilder.append("\theader: " + header + "\n");
+ stringBuilder.append("\torderItems: " + modifyOrderItems);
+
+ return stringBuilder.toString();
+ }
+}
\ No newline at end of file
Property changes on:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src_test/srcmodel/Order.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src_test/srcmodel/OrderItem.java
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src_test/srcmodel/OrderItem.java
(rev 0)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src_test/srcmodel/OrderItem.java 2008-09-08
03:13:38 UTC (rev 10122)
@@ -0,0 +1,45 @@
+package srcmodel;
+
+
+/**
+ * @author <a
href="mailto:tom.fennelly@gmail.com">tom.fennelly@gmail.com</a>
+ */
+public class OrderItem {
+ private long productId;
+ private Integer quantity;
+ private double price;
+
+ public long getProductId() {
+ return productId;
+ }
+
+ public void setProductId(long productId) {
+ this.productId = productId;
+ }
+
+ public Integer getQuantity() {
+ return quantity;
+ }
+
+ public void setQuantity(Integer quantity) {
+ this.quantity = quantity;
+ }
+
+ public double getPrice() {
+ return price;
+ }
+
+ public void setPrice(double price) {
+ this.price = price;
+ }
+
+ public String toString() {
+ StringBuilder stringBuilder = new StringBuilder();
+
+ stringBuilder.append("{productId: " + productId + " | ");
+ stringBuilder.append("quantity: " + quantity + " | ");
+ stringBuilder.append("price: " + price + "}");
+
+ return stringBuilder.toString();
+ }
+}
\ No newline at end of file
Property changes on:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src_test/srcmodel/OrderItem.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src_test/targetmodel/LineItem.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src_test/targetmodel/LineItem.java
(rev 0)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src_test/targetmodel/LineItem.java 2008-09-08
03:13:38 UTC (rev 10122)
@@ -0,0 +1,62 @@
+/*
+ Milyn - Copyright (C) 2006
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License (version 2.1) as published by the Free Software
+ Foundation.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ See the GNU Lesser General Public License for more details:
+
http://www.gnu.org/licenses/lgpl.txt
+*/
+package targetmodel;
+
+import java.math.BigDecimal;
+import java.util.Arrays;
+
+/**
+ * @author <a
href="mailto:tom.fennelly@gmail.com">tom.fennelly@gmail.com</a>
+ */
+public class LineItem {
+ private String productCode;
+ private int unitQuantity;
+ private BigDecimal unitPrice;
+
+ public String getProductCode() {
+ return productCode;
+ }
+
+ public void setProductCode(String productCode) {
+ this.productCode = productCode;
+ }
+
+ public int getUnitQuantity() {
+ return unitQuantity;
+ }
+
+ public void setUnitQuantity(int unitQuantity) {
+ this.unitQuantity = unitQuantity;
+ }
+
+ public BigDecimal getUnitPrice() {
+ return unitPrice;
+ }
+
+ public void setUnitPrice(BigDecimal unitPrice) {
+ this.unitPrice = unitPrice;
+ }
+
+ public String toString() {
+ StringBuilder stringBuilder = new StringBuilder();
+
+ stringBuilder.append("{productCode: " + productCode + " |
");
+ stringBuilder.append("unitQuantity: " + unitQuantity + " |
");
+ stringBuilder.append("unitPrice: " + unitPrice + "}");
+
+ return stringBuilder.toString();
+ }
+}
\ No newline at end of file
Property changes on:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src_test/targetmodel/LineItem.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src_test/targetmodel/LineOrder.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src_test/targetmodel/LineOrder.java
(rev 0)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src_test/targetmodel/LineOrder.java 2008-09-08
03:13:38 UTC (rev 10122)
@@ -0,0 +1,64 @@
+/*
+ Milyn - Copyright (C) 2006
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License (version 2.1) as published by the Free Software
+ Foundation.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ See the GNU Lesser General Public License for more details:
+
http://www.gnu.org/licenses/lgpl.txt
+*/
+package targetmodel;
+
+import java.util.Arrays;
+
+/**
+ * @author <a
href="mailto:tom.fennelly@gmail.com">tom.fennelly@gmail.com</a>
+ */
+public class LineOrder {
+ private String customerId;
+ private String customerName;
+ private LineItem[] lineItems;
+
+ public String getCustomerId() {
+ return customerId;
+ }
+
+ public void setCustomerId(String customerId) {
+ this.customerId = customerId;
+ }
+
+ public String getCustomerName() {
+ return customerName;
+ }
+
+ public void setCustomerName(String customerName) {
+ this.customerName = customerName;
+ }
+
+ public LineItem[] getLineItems() {
+ return lineItems;
+ }
+
+ public void setLineItems(LineItem[] lineItems) {
+ this.lineItems = lineItems;
+ }
+
+ public String toString() {
+ StringBuilder stringBuilder = new StringBuilder();
+
+ stringBuilder.append("Class: " + getClass().getName() +
"\n");
+ stringBuilder.append("\tcustomerId: " + customerId + "\n");
+ stringBuilder.append("\tcustomerName: " + customerName +
"\n");
+ if(lineItems != null) {
+ stringBuilder.append("\tlineItems: " + Arrays.asList(lineItems));
+ }
+
+ return stringBuilder.toString();
+ }
+}
\ No newline at end of file
Property changes on:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src_test/targetmodel/LineOrder.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src_test/test/SmooksAnalyzerTester.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src_test/test/SmooksAnalyzerTester.java
(rev 0)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src_test/test/SmooksAnalyzerTester.java 2008-09-08
03:13:38 UTC (rev 10122)
@@ -0,0 +1,73 @@
+/*******************************************************************************
+ * Copyright (c) 2008 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at
http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package test;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.lang.reflect.InvocationTargetException;
+import java.util.Collections;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+import org.eclipse.emf.ecore.EPackage.Registry;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.xmi.impl.XMLResourceFactoryImpl;
+import org.jboss.tools.smooks.graphical.GraphInformations;
+import org.jboss.tools.smooks.graphical.GraphicalPackage;
+import org.jboss.tools.smooks.javabean.analyzer.JavaBeanAnalyzer;
+import org.milyn.xsd.smooks.DocumentRoot;
+import org.milyn.xsd.smooks.SmooksPackage;
+import org.milyn.xsd.smooks.SmooksResourceListType;
+import org.milyn.xsd.smooks.util.SmooksResourceFactoryImpl;
+
+/**
+ * @author Dart Peng Date : 2008-9-1
+ */
+public class SmooksAnalyzerTester extends TestCase {
+ public void testParse() {
+ Registry.INSTANCE.put(GraphicalPackage.eNS_URI,
+ GraphicalPackage.eINSTANCE);
+ Registry.INSTANCE.put(SmooksPackage.eNS_URI, SmooksPackage.eINSTANCE);
+ try {
+ ClassLoader classLoader = SmooksAnalyzerTester.class
+ .getClassLoader();
+ Resource resource = new SmooksResourceFactoryImpl()
+ .createResource(null);
+ Resource gr = new XMLResourceFactoryImpl().createResource(null);
+ InputStream stream1 = classLoader
+ .getResourceAsStream("test/Test.xml");
+ InputStream stream2 = classLoader
+ .getResourceAsStream("test/Test.smooks.graph");
+ gr.load(stream2, Collections.EMPTY_MAP);
+ GraphInformations graph = (GraphInformations) gr.getContents().get(
+ 0);
+
+ resource.load(stream1, Collections.EMPTY_MAP);
+ JavaBeanAnalyzer sourceModelAnalyzer = new JavaBeanAnalyzer();
+ JavaBeanAnalyzer targetModelAnalyzer = new JavaBeanAnalyzer();
+ JavaBeanAnalyzer connectionsAnalyzer = new JavaBeanAnalyzer();
+ SmooksResourceListType listType = ((DocumentRoot) resource
+ .getContents().get(0)).getSmooksResourceList();
+ Object source = sourceModelAnalyzer.buildSourceInputObjects(graph,
+ listType, null, classLoader);
+ Object target = targetModelAnalyzer.buildTargetInputObjects(graph,
+ listType, null, classLoader);
+ List connections = connectionsAnalyzer.analyzeMappingSmooksModel(
+ listType, source, target);
+ System.out.println(connections);
+ } catch (IOException e) {
+ e.printStackTrace();
+ } catch (InvocationTargetException e) {
+ e.printStackTrace();
+ }
+ }
+}
Property changes on:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src_test/test/SmooksAnalyzerTester.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src_test/test/Test.smooks.graph
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src_test/test/Test.smooks.graph
(rev 0)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src_test/test/Test.smooks.graph 2008-09-08
03:13:38 UTC (rev 10122)
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="ASCII"?>
+<GraphInformations
xmlns="http://www.jboss.org/tools/smooks">
+ <mappingType
targetTypeID="org.jboss.tools.smooks.ui.viewerInitor.javabean"
sourceTypeID="org.jboss.tools.smooks.ui.viewerInitor.javabean"/>
+</GraphInformations>
Added: trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src_test/test/Test.xml
===================================================================
--- trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src_test/test/Test.xml
(rev 0)
+++ trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src_test/test/Test.xml 2008-09-08
03:13:38 UTC (rev 10122)
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="ASCII"?>
+<smooks-resource-list
xmlns="http://www.milyn.org/xsd/smooks-1.0.xsd">
+ <resource-config selector="srcmodel.Order">
+ <resource>org.milyn.javabean.BeanPopulator</resource>
+ <param name="beanId">LineOrder</param>
+ <param name="beanClass">targetmodel.LineOrder</param>
+ <param name="bindings">
+ <binding property="customerId"
+ selector="header customerNumber" />
+ <binding property="customerName"
+ selector="header customerName" />
+ <binding property="lineItems" selector="${lineItems}" />
+ </param>
+ </resource-config>
+ <resource-config selector="orderItems">
+ <resource>org.milyn.javabean.BeanPopulator</resource>
+ <param name="beanId">lineItems</param>
+ <param name="beanClass">targetmodel.LineItem[]</param>
+ <param name="bindings">
+ <binding property="LineItem" selector="${LineItem}" />
+ </param>
+ </resource-config>
+ <resource-config selector="srcmodel.OrderItem">
+ <resource>org.milyn.javabean.BeanPopulator</resource>
+ <param name="beanId">LineItem</param>
+ <param name="beanClass">targetmodel.LineItem</param>
+ <param name="bindings">
+ <binding property="productCode"
+ selector="srcmodel.OrderItem productId" />
+ <binding property="unitPrice"
+ selector="srcmodel.OrderItem price" />
+ <binding property="unitPrice"
+ selector="srcmodel.OrderItem Ate" />
+ <binding property="unitQuantity"
+ selector="srcmodel.OrderItem quantity" />
+ </param>
+ </resource-config>
+</smooks-resource-list>
\ No newline at end of file
Property changes on:
trunk/smooks/plugins/org.jboss.tools.smooks.javabean/src_test/test/Test.xml
___________________________________________________________________
Name: svn:mime-type
+ text/plain