Author: DartPeng
Date: 2008-09-03 21:33:49 -0400 (Wed, 03 Sep 2008)
New Revision: 10056
Added:
workspace/dart/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/MappingModel.java
Modified:
workspace/dart/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/IAnalyzer.java
workspace/dart/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksGraphicalFormPage.java
workspace/dart/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/model/AbstractStructuredDataConnectionModel.java
workspace/dart/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/model/LineConnectionModel.java
workspace/dart/plugins/trunk/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/analyzer/JavaBeanAnalyzer.java
workspace/dart/plugins/trunk/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/model/BeanContentProvider.java
workspace/dart/plugins/trunk/org.jboss.tools.smooks.javabean/src_test/test/SmooksAnalyzerTester.java
Log:
Modified:
workspace/dart/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/IAnalyzer.java
===================================================================
---
workspace/dart/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/IAnalyzer.java 2008-09-03
22:14:54 UTC (rev 10055)
+++
workspace/dart/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/IAnalyzer.java 2008-09-04
01:33:49 UTC (rev 10056)
@@ -28,8 +28,8 @@
SmooksConfigurationFileGenerateContext context)
throws SmooksAnalyzerException;
- public List<LineConnectionModel> analyzeMappingSmooksModel(
- SmooksResourceListType listType);
+ public List<MappingModel> analyzeMappingSmooksModel(
+ SmooksResourceListType listType,Object sourceObject,Object targetObject);
public Object buildSourceInputObjects(GraphInformations graphInfo,
SmooksResourceListType listType, IFile sourceFile)
Added:
workspace/dart/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/MappingModel.java
===================================================================
---
workspace/dart/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/MappingModel.java
(rev 0)
+++
workspace/dart/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/MappingModel.java 2008-09-04
01:33:49 UTC (rev 10056)
@@ -0,0 +1,45 @@
+/**
+ *
+ */
+package org.jboss.tools.smooks.analyzer;
+
+/**
+ * @author root
+ *
+ */
+public class MappingModel {
+ protected Object source;
+ protected Object target;
+
+ public MappingModel(Object source,Object target){
+ setSource(source);
+ setTarget(target);
+ }
+
+ public Object getSource() {
+ return source;
+ }
+ public void setSource(Object source) {
+ this.source = source;
+ }
+ public Object getTarget() {
+ return target;
+ }
+ public void setTarget(Object target) {
+ this.target = target;
+ }
+
+
+ public String toString(){
+ StringBuffer buffer = new StringBuffer();
+ if(source != null)
+ buffer.append("Source : " + source);
+ else
+ buffer.append("Source is NULL ");
+ if(target != null)
+ buffer.append(";Target : " + target);
+ else
+ buffer.append(";Target is NULL ");
+ return buffer.toString();
+ }
+}
Property changes on:
workspace/dart/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/MappingModel.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified:
workspace/dart/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksGraphicalFormPage.java
===================================================================
---
workspace/dart/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksGraphicalFormPage.java 2008-09-03
22:14:54 UTC (rev 10055)
+++
workspace/dart/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksGraphicalFormPage.java 2008-09-04
01:33:49 UTC (rev 10056)
@@ -16,6 +16,7 @@
import java.util.ArrayList;
import java.util.Collections;
import java.util.EventObject;
+import java.util.Iterator;
import java.util.List;
import org.eclipse.core.resources.IFile;
@@ -51,6 +52,7 @@
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.ITreeContentProvider;
import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.swt.SWT;
@@ -86,6 +88,7 @@
import org.eclipse.ui.forms.widgets.Section;
import org.jboss.tools.smooks.analyzer.AnalyzerFactory;
import org.jboss.tools.smooks.analyzer.IAnalyzer;
+import org.jboss.tools.smooks.analyzer.MappingModel;
import org.jboss.tools.smooks.analyzer.SmooksAnalyzerException;
import org.jboss.tools.smooks.analyzer.SmooksFileBuilder;
import org.jboss.tools.smooks.graphical.GraphInformations;
@@ -98,6 +101,7 @@
import org.jboss.tools.smooks.ui.gef.editparts.SmooksEditPartFactory;
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.LineConnectionModel;
import org.jboss.tools.smooks.ui.gef.model.RootModel;
import org.jboss.tools.smooks.ui.gef.model.SourceModel;
import org.jboss.tools.smooks.ui.gef.model.TargetModel;
@@ -138,6 +142,7 @@
protected Object sourceTreeViewerInputModel = null;
protected Object targetTreeViewerInputModel = null;
+ protected List<MappingModel> initConnectionList = null;
protected boolean commandStackChanged = false;
protected ActionRegistry actionRegistry;
@@ -305,15 +310,17 @@
toolkit.paintBordersFor(rootMainControl);
form.pack();
-
- this.hookGraphicalViewer();
- this.initGraphicalViewer();
if (initSourceTreeViewerProviders()) {
initSourceTreeViewer();
+ expandSourceConnectionModel();
}
if (initTargetTreeViewerProviders()) {
initTargetTreeViewer();
+ expandTargetConnectionModel();
}
+ this.hookGraphicalViewer();
+ this.initGraphicalViewer();
+
getSite().getSelectionProvider().addSelectionChangedListener(this);
}
@@ -351,6 +358,34 @@
}
}
+ protected void expandSourceConnectionModel() {
+ this.expandConnectionModel(sourceViewer, true);
+ }
+
+ protected void expandConnectionModel(TreeViewer viewer, boolean isSource) {
+ ITreeContentProvider provider = (ITreeContentProvider) viewer
+ .getContentProvider();
+ if (provider == null)
+ return;
+ for (Iterator iterator = initConnectionList.iterator(); iterator
+ .hasNext();) {
+ MappingModel connection = (MappingModel) iterator.next();
+ Object currentModel = connection.getTarget();
+ if (isSource) {
+ currentModel = connection.getSource();
+ }
+ Object parent = provider.getParent(currentModel);
+ while (parent != null && parent != currentModel) {
+ viewer.expandToLevel(parent, 1);
+ parent = provider.getParent(parent);
+ }
+ }
+ }
+
+ protected void expandTargetConnectionModel() {
+ this.expandConnectionModel(targetViewer, false);
+ }
+
protected boolean initSourceTreeViewerProviders() {
return this.initTreeViewerProvider(sourceViewer, sourceDataTypeID);
}
@@ -521,7 +556,7 @@
rootModel = new GraphRootModel();
this.createSourceGraphModels();
this.createTargetGraphModels();
-
+ this.createConnectionModels();
this.getGraphicalViewer().setEditPartFactory(
new SmooksEditPartFactory());
this.getGraphicalViewer().setContents(rootModel);
@@ -555,6 +590,43 @@
});
}
+ protected void createConnectionModels() {
+ List children = this.rootModel.getChildren();
+ for (Iterator iterator = children.iterator(); iterator.hasNext();) {
+ TreeItemRelationModel source = (TreeItemRelationModel) iterator
+ .next();
+ if (source instanceof SourceModel) {
+ for (Iterator iterator2 = children.iterator(); iterator2
+ .hasNext();) {
+ TreeItemRelationModel target = (TreeItemRelationModel) iterator2
+ .next();
+ if (target instanceof TargetModel) {
+ if (canConnected(source, target)) {
+ new LineConnectionModel(source, target);
+ }
+ }
+ }
+ }
+ }
+ }
+
+ protected boolean canConnected(TreeItemRelationModel source,
+ TreeItemRelationModel target) {
+ Object sourceReferModel = source.getReferenceEntityModel();
+ Object targetReferModel = target.getReferenceEntityModel();
+ if (initConnectionList == null)
+ return false;
+ for (Iterator iterator = initConnectionList.iterator(); iterator
+ .hasNext();) {
+ MappingModel mapping = (MappingModel) iterator.next();
+ Object s = mapping.getSource();
+ Object t = mapping.getTarget();
+ if (s == sourceReferModel && t == targetReferModel)
+ return true;
+ }
+ return false;
+ }
+
public SelectionSynchronizer getSelectionSynchronizer() {
if (selectionSynchronizer == null)
selectionSynchronizer = new SelectionSynchronizer();
@@ -625,17 +697,25 @@
.getSmooksModelAnalyzer(sourceDataTypeID);
IAnalyzer targetModelAnalyzer = AnalyzerFactory.getInstance()
.getSmooksModelAnalyzer(targetDataTypeID);
+ IAnalyzer connectionAnalyzer = AnalyzerFactory.getInstance()
+ .getGraphModelAnalyzer(sourceDataTypeID, targetDataTypeID);
SmooksResourceListType listType = ((DocumentRoot) resource
.getContents().get(0)).getSmooksResourceList();
-
- sourceTreeViewerInputModel = sourceModelAnalyzer
- .buildSourceInputObjects(graph, listType,
- ((IFileEditorInput) input).getFile());
+ if (sourceModelAnalyzer != null)
+ sourceTreeViewerInputModel = sourceModelAnalyzer
+ .buildSourceInputObjects(graph, listType,
+ ((IFileEditorInput) input).getFile());
+ if (targetModelAnalyzer != null)
+ targetTreeViewerInputModel = targetModelAnalyzer
+ .buildTargetInputObjects(graph, listType,
+ ((IFileEditorInput) input).getFile());
+ if (connectionAnalyzer != null) {
+ initConnectionList = connectionAnalyzer
+ .analyzeMappingSmooksModel(listType,
+ sourceTreeViewerInputModel,
+ targetTreeViewerInputModel);
+ }
- targetTreeViewerInputModel = targetModelAnalyzer
- .buildTargetInputObjects(graph, listType,
- ((IFileEditorInput) input).getFile());
-
} catch (IOException e) {
e.printStackTrace();
} catch (CoreException e) {
Modified:
workspace/dart/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/model/AbstractStructuredDataConnectionModel.java
===================================================================
---
workspace/dart/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/model/AbstractStructuredDataConnectionModel.java 2008-09-03
22:14:54 UTC (rev 10055)
+++
workspace/dart/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/model/AbstractStructuredDataConnectionModel.java 2008-09-04
01:33:49 UTC (rev 10056)
@@ -4,6 +4,18 @@
private IConnectableModel source;
private IConnectableModel target;
+ public AbstractStructuredDataConnectionModel(IConnectableModel source,
+ IConnectableModel target) {
+ this.setSource(source);
+ this.setTarget(target);
+ attachSource();
+ attachTarget();
+ }
+
+ public AbstractStructuredDataConnectionModel(){
+
+ }
+
/**
* t�ӵ���ʼ����ӵ�source
*/
Modified:
workspace/dart/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/model/LineConnectionModel.java
===================================================================
---
workspace/dart/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/model/LineConnectionModel.java 2008-09-03
22:14:54 UTC (rev 10055)
+++
workspace/dart/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/gef/model/LineConnectionModel.java 2008-09-04
01:33:49 UTC (rev 10056)
@@ -3,6 +3,15 @@
public class LineConnectionModel extends AbstractStructuredDataConnectionModel {
+ public LineConnectionModel(IConnectableModel source,
+ IConnectableModel target) {
+ super(source, target);
+ }
+
+ public LineConnectionModel(){
+ super();
+ }
+
public void connect() {
this.attachSource();
this.attachTarget();
Modified:
workspace/dart/plugins/trunk/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/analyzer/JavaBeanAnalyzer.java
===================================================================
---
workspace/dart/plugins/trunk/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/analyzer/JavaBeanAnalyzer.java 2008-09-03
22:14:54 UTC (rev 10055)
+++
workspace/dart/plugins/trunk/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/analyzer/JavaBeanAnalyzer.java 2008-09-04
01:33:49 UTC (rev 10056)
@@ -13,6 +13,7 @@
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;
@@ -22,11 +23,8 @@
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.xml.type.AnyType;
-import org.eclipse.emf.ecore.xml.type.XMLTypePackage;
import org.eclipse.emf.edit.command.AddCommand;
import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
@@ -34,6 +32,7 @@
import org.eclipse.jdt.core.JavaCore;
import org.eclipse.jdt.core.JavaModelException;
import org.jboss.tools.smooks.analyzer.IAnalyzer;
+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;
@@ -340,8 +339,121 @@
this.analyzeGraphicalModel(root, listType);
}
- public List<LineConnectionModel> analyzeMappingSmooksModel(
- SmooksResourceListType 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);
+ 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){
+ mappingModelList.add(new MappingModel(sourceModel,
+ targetModel));
+ }
+ }
+ }
+
+ 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;
}
@@ -488,7 +600,7 @@
// continue;
// }
processBindingPropertyFromTargetModel(listType, property,
- selector, beanModel,classLoader);
+ selector, beanModel, classLoader);
}
}
@@ -496,27 +608,23 @@
protected void processBindingPropertyFromTargetModel(
SmooksResourceListType listType, String property, String selector,
- JavaBeanModel parentModel,ClassLoader classLoader) {
+ JavaBeanModel parentModel, ClassLoader classLoader) {
parentModel.getProperties();
- JavaBeanModel model = this.findTheChildJavaBeanModel(property, parentModel);
- if(model == null){
- model = new JavaBeanModel(null,property);
+ 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("}")){
+
+ if (selector.startsWith("${") && selector.endsWith("}")) {
selector = selector.substring(2, selector.length() - 1);
- List rList = listType.getAbstractResourceConfig();
- for (Iterator iterator = rList.iterator(); iterator.hasNext();) {
- ResourceConfigType configType = (ResourceConfigType) iterator.next();
- if(isSelectorIsUsed(configType.getSelector())){
- continue;
- }
- String beanId = this.getBeanIDFromParam(configType);
- if(selector.equals(beanId)){
- this.buildChildrenOfTargetInputModel(listType, model, false, false, configType,
classLoader);
- }
+ ResourceConfigType resourceConfig = findResourceCinfigTypeWithSelector(
+ selector, listType);
+ if (resourceConfig != null) {
+ this.buildChildrenOfTargetInputModel(listType, model, false,
+ false, resourceConfig, classLoader);
}
}
}
@@ -557,6 +665,26 @@
}
}
+ 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) {
@@ -564,19 +692,9 @@
// should get the bean properties
// memory out???
currentModel.getProperties();
- selector = selector.substring(2, selector.length() - 1);
- 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;
- }
- }
+ selector = this.getBeanIdWithRawSelectorString(selector);
+ ResourceConfigType resourceConfig = findResourceCinfigTypeWithSelector(
+ selector, listType);
if (resourceConfig != null) {
String referenceSelector = resourceConfig.getSelector();
JavaBeanModel model = findTheChildJavaBeanModel(
@@ -586,7 +704,7 @@
try {
if (classLoader != null) {
clazz = classLoader.loadClass(referenceSelector);
- if (clazz != null)
+ if (clazz != null && model == null)
model = JavaBeanModelFactory
.getJavaBeanModelWithLazyLoad(clazz);
}
@@ -595,11 +713,13 @@
}
// something wrong
if (model == null) {
- model = new JavaBeanModel(null, selector);
+ model = new JavaBeanModel(null, referenceSelector);
model.setError("don't exist");
model.setProperties(new ArrayList());
}
- currentModel.addProperty(model);
+ if(currentModel.getError() != null){
+ currentModel.addProperty(model);
+ }
buildSourceInputProperties(listType, model, false, true,
resourceConfig, classLoader);
}
@@ -650,8 +770,10 @@
* 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.
+ * param "name" is useless with the status.<br>
*
+ * TODO The method need to improve!!!!!
+ *
* @param name
* @param parentModel
* @return
Modified:
workspace/dart/plugins/trunk/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/model/BeanContentProvider.java
===================================================================
---
workspace/dart/plugins/trunk/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/model/BeanContentProvider.java 2008-09-03
22:14:54 UTC (rev 10055)
+++
workspace/dart/plugins/trunk/org.jboss.tools.smooks.javabean/src/org/jboss/tools/smooks/javabean/model/BeanContentProvider.java 2008-09-04
01:33:49 UTC (rev 10056)
@@ -21,6 +21,9 @@
}
public Object getParent(Object arg0) {
+ if(arg0 instanceof JavaBeanModel){
+ return ((JavaBeanModel)arg0).getParent();
+ }
return null;
}
Modified:
workspace/dart/plugins/trunk/org.jboss.tools.smooks.javabean/src_test/test/SmooksAnalyzerTester.java
===================================================================
---
workspace/dart/plugins/trunk/org.jboss.tools.smooks.javabean/src_test/test/SmooksAnalyzerTester.java 2008-09-03
22:14:54 UTC (rev 10055)
+++
workspace/dart/plugins/trunk/org.jboss.tools.smooks.javabean/src_test/test/SmooksAnalyzerTester.java 2008-09-04
01:33:49 UTC (rev 10056)
@@ -14,6 +14,7 @@
import java.io.InputStream;
import java.lang.reflect.InvocationTargetException;
import java.util.Collections;
+import java.util.List;
import junit.framework.TestCase;
@@ -37,24 +38,32 @@
GraphicalPackage.eINSTANCE);
Registry.INSTANCE.put(SmooksPackage.eNS_URI, SmooksPackage.eINSTANCE);
try {
- ClassLoader classLoader = SmooksAnalyzerTester.class.getClassLoader();
+ 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);
+ 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);
+ 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 obj = sourceModelAnalyzer
- .buildSourceInputObjects(graph, listType, null,classLoader);
- System.out.println(obj);
+ 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) {