Author: DartPeng
Date: 2008-09-23 05:51:51 -0400 (Tue, 23 Sep 2008)
New Revision: 10404
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/util/GraphicalInformationSaver.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksGraphicalFormPage.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/modelparser/SmooksConfigurationFileGenerateContext.java
trunk/smooks/plugins/org.jboss.tools.smooks.xml2java/src/org/jboss/tools/smooks/xml2java/analyzer/XML2JavaAnalyzer.java
Log:
add parse function for XML2Java analyzer
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/util/GraphicalInformationSaver.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/util/GraphicalInformationSaver.java 2008-09-23
08:56:08 UTC (rev 10403)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/graphical/util/GraphicalInformationSaver.java 2008-09-23
09:51:51 UTC (rev 10404)
@@ -13,24 +13,24 @@
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.util.Collections;
+import java.util.Enumeration;
+import java.util.Properties;
import org.eclipse.core.resources.IContainer;
import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.Path;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.xmi.XMLResource;
import org.eclipse.emf.ecore.xmi.impl.XMLResourceFactoryImpl;
-import org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IFileEditorInput;
import org.jboss.tools.smooks.graphical.GraphInformations;
import org.jboss.tools.smooks.graphical.GraphicalFactory;
import org.jboss.tools.smooks.graphical.MappingDataType;
+import org.jboss.tools.smooks.graphical.Param;
+import org.jboss.tools.smooks.graphical.Params;
import org.jboss.tools.smooks.ui.modelparser.SmooksConfigurationFileGenerateContext;
/**
@@ -99,12 +99,28 @@
}
if (graph != null) {
initMappingTypes(graph, sourceID, targetID);
+ Params params = GraphicalFactory.eINSTANCE.createParams();
+ graph.setParams(params);
+ initParams(params,context);
}
graphicalFileResource.save(Collections.EMPTY_MAP);
}
}
+ private void initParams(Params params,
+ SmooksConfigurationFileGenerateContext context) {
+ Properties pros = context.getProperties();
+ Enumeration<Object> keys = pros.keys();
+ while(keys.hasMoreElements()){
+ String key = (String) keys.nextElement();
+ Param param = GraphicalFactory.eINSTANCE.createParam();
+ param.setName(key);
+ param.setValue(pros.getProperty(key));
+ params.getParam().add(param);
+ }
+ }
+
protected void initMappingTypes(GraphInformations infor, String sourceID,
String targetID) {
MappingDataType mapping = infor.getMappingType();
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksGraphicalFormPage.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksGraphicalFormPage.java 2008-09-23
08:56:08 UTC (rev 10403)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksGraphicalFormPage.java 2008-09-23
09:51:51 UTC (rev 10404)
@@ -699,6 +699,7 @@
context.setTargetDataTypeID(this.targetDataTypeID);
context.setSmooksType(SmooksModelConstants.SAX);
context.setDataMappingRootModel(this.rootModel);
+ context.setSmooksConfigFile(((IFileEditorInput)getEditorInput()).getFile());
}
protected Composite createUISectionContainer(Composite parent, int columns) {
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/modelparser/SmooksConfigurationFileGenerateContext.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/modelparser/SmooksConfigurationFileGenerateContext.java 2008-09-23
08:56:08 UTC (rev 10403)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/modelparser/SmooksConfigurationFileGenerateContext.java 2008-09-23
09:51:51 UTC (rev 10404)
@@ -12,7 +12,9 @@
import java.util.ArrayList;
import java.util.List;
+import java.util.Properties;
+import org.eclipse.core.resources.IFile;
import org.eclipse.emf.edit.domain.EditingDomain;
import org.jboss.tools.smooks.graphical.Param;
import org.jboss.tools.smooks.model.SmooksResourceListType;
@@ -30,7 +32,8 @@
protected GraphRootModel dataMappingRootModel;
protected SmooksResourceListType smooksResourceListModel;
protected List generatorResourceList = new ArrayList();
-
+ private Properties properties = new Properties();
+ protected IFile smooksConfigFile = null;
protected EditingDomain domain;
protected String smooksType = null;
@@ -110,4 +113,25 @@
this.generatorResourceList = generatorResourceList;
}
+ public void putProperty(String paramName,String paramValue){
+ properties.setProperty(paramName, paramValue);
+ }
+
+ public String getProperty(String paramName){
+ return properties.getProperty(paramName);
+ }
+
+ public void cleanProperties(){
+ properties.clear();
+ }
+ public IFile getSmooksConfigFile() {
+ return smooksConfigFile;
+ }
+ public void setSmooksConfigFile(IFile smooksConfigFile) {
+ this.smooksConfigFile = smooksConfigFile;
+ }
+ public Properties getProperties() {
+ return properties;
+ }
+
}
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.xml2java/src/org/jboss/tools/smooks/xml2java/analyzer/XML2JavaAnalyzer.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.xml2java/src/org/jboss/tools/smooks/xml2java/analyzer/XML2JavaAnalyzer.java 2008-09-23
08:56:08 UTC (rev 10403)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.xml2java/src/org/jboss/tools/smooks/xml2java/analyzer/XML2JavaAnalyzer.java 2008-09-23
09:51:51 UTC (rev 10404)
@@ -10,15 +10,15 @@
******************************************************************************/
package org.jboss.tools.smooks.xml2java.analyzer;
-import java.lang.reflect.InvocationTargetException;
import java.util.Iterator;
import java.util.List;
-import org.eclipse.core.resources.IFile;
+import javax.swing.text.html.HTMLDocument.HTMLReader.TagAction;
+
import org.jboss.tools.smooks.analyzer.AbstractAnalyzer;
+import org.jboss.tools.smooks.analyzer.MappingModel;
import org.jboss.tools.smooks.analyzer.MappingResourceConfigList;
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.model.ParamType;
import org.jboss.tools.smooks.model.ResourceConfigType;
@@ -36,6 +36,7 @@
import org.jboss.tools.smooks.ui.modelparser.SmooksConfigurationFileGenerateContext;
import org.jboss.tools.smooks.utils.UIUtils;
import org.jboss.tools.smooks.xml.model.AbstractXMLObject;
+import org.jboss.tools.smooks.xml.model.TagObject;
import org.jboss.tools.smooks.xml.model.TagPropertyObject;
/**
@@ -52,10 +53,11 @@
public void analyzeMappingGraphModel(
SmooksConfigurationFileGenerateContext context)
throws SmooksAnalyzerException {
-
- String filePath = context.getSmooksConfigFile().getLocation().toOSString();
+
+ String filePath = context.getSmooksConfigFile().getLocation()
+ .toOSString();
context.putProperty(XMLSourceModelAnalyzer.XML_FILE, filePath);
-
+
SmooksResourceListType listType = context.getSmooksResourceListModel();
GraphRootModel rootModel = context.getDataMappingRootModel();
List children = rootModel.getChildren();
@@ -102,7 +104,7 @@
ResourceConfigType resourceConfigType = SmooksFactory.eINSTANCE
.createResourceConfigType();
context.getGeneratorResourceList().add(resourceConfigType);
-// addResourceConfigType(listType, resourceConfigType);
+ // addResourceConfigType(listType, resourceConfigType);
// set the selector string value
resourceConfigType.setSelector(source.getName());
// create a resource and add it to resourceConfig
@@ -130,12 +132,12 @@
// add bindings param
ParamType bindingsParam = addParamTypeToResourceConfig(
resourceConfigType, SmooksModelConstants.BINDINGS, null);
- processBindingsParam(bindingsParam, target,source, context, listType);
+ processBindingsParam(bindingsParam, target, source, context, listType);
//
}
protected void processBindingsParam(ParamType bindingsParam,
- JavaBeanModel javaBean,AbstractXMLObject source,
+ JavaBeanModel javaBean, AbstractXMLObject source,
SmooksConfigurationFileGenerateContext context,
SmooksResourceListType listType) {
List properties = javaBean.getProperties();
@@ -157,8 +159,9 @@
String selector = getSelectorID(child);
if (!isComplex) {
- selector = getSelectorIDViaXMLObject((AbstractXMLObject) sourceModel
- .getReferenceEntityModel(),source);
+ selector = getSelectorIDViaXMLObject(
+ (AbstractXMLObject) sourceModel
+ .getReferenceEntityModel(), source);
}
SmooksModelUtils.addBindingTypeToParamType(bindingsParam, child
.getName(), selector, null, null);
@@ -172,15 +175,17 @@
}
}
- protected String getSelectorIDViaXMLObject(AbstractXMLObject
sourceModel,AbstractXMLObject currentRoot) {
+ protected String getSelectorIDViaXMLObject(AbstractXMLObject sourceModel,
+ AbstractXMLObject currentRoot) {
String name = sourceModel.getName();
if (sourceModel instanceof TagPropertyObject) {
name = "@" + name;
}
AbstractXMLObject parent = sourceModel.getParent();
- while ( parent != null && parent.getName() != null) {
+ while (parent != null && parent.getName() != null) {
name = parent.getName() + " " + name;
- if(parent == currentRoot) break;
+ if (parent == currentRoot)
+ break;
parent = parent.getParent();
}
return name;
@@ -195,23 +200,83 @@
return target.getName();
}
- public List<LineConnectionModel> analyzeMappingSmooksModel(
- SmooksResourceListType listType) {
- // TODO Auto-generated method stub
+ public MappingResourceConfigList analyzeMappingSmooksModel(
+ SmooksResourceListType listType, Object sourceObject,
+ Object targetObject) {
+ if (!(sourceObject instanceof AbstractXMLObject)
+ || !(targetObject instanceof JavaBeanModel)) {
+ return MappingResourceConfigList.createEmptyList();
+ }
+
+ AbstractXMLObject sourceRoot = (AbstractXMLObject) sourceObject;
+ JavaBeanModel sourceTarget = (JavaBeanModel) targetObject;
+
+ ResourceConfigType rootResourceConfig = findFirstMappingResourceConfig(listType);
+ String selector = rootResourceConfig.getSelector();
+ AbstractXMLObject source = findXMLObjectBySelector(selector, sourceRoot);
+ if(source == null) return MappingResourceConfigList.createEmptyList();
+
+ MappingResourceConfigList rcl = new MappingResourceConfigList();
+ MappingModel mapping = new MappingModel(source,sourceTarget);
+ rcl.getMappingModelList().add(mapping);
+ rcl.addResourceConfig(rootResourceConfig);
+
return null;
}
- public Object buildSourceInputObjects(GraphInformations graphInfo,
- SmooksResourceListType listType, IFile sourceFile)
- throws InvocationTargetException {
- // TODO Auto-generated method stub
+ protected void createMappingResourceConfigList(ResourceConfigType config,
+ AbstractXMLObject sourceRoot, JavaBeanModel targetRoot) {
+ String selector = config.getSelector();
+ AbstractXMLObject source = findXMLObjectBySelector(selector, sourceRoot);
+ }
+
+ private AbstractXMLObject findXMLObjectBySelector(String selector,
+ AbstractXMLObject root) {
+ if (selector == null)
+ return null;
+ if (selector.equals(root.getName())) {
+ return root;
+ }
+ if (root instanceof TagObject) {
+ List properties = ((TagObject) root).getProperties();
+ for (Iterator iterator = properties.iterator(); iterator.hasNext();) {
+ TagPropertyObject pro = (TagPropertyObject) iterator.next();
+ if (selector.equals(pro.getName()))
+ return pro;
+ }
+ List<AbstractXMLObject> tags = ((TagObject) root).getChildren();
+ for (Iterator iterator = tags.iterator(); iterator.hasNext();) {
+ AbstractXMLObject tagChild = (AbstractXMLObject) iterator
+ .next();
+ AbstractXMLObject result = findXMLObjectBySelector(selector,
+ tagChild);
+ if (result != null)
+ return result;
+ }
+ }
return null;
+
}
- public MappingResourceConfigList analyzeMappingSmooksModel(
- SmooksResourceListType listType, Object sourceObject,
- Object targetObject) {
- // TODO Auto-generated method stub
+ protected void createMappingResourceConfigList(
+ MappingResourceConfigList configList, SmooksResourceListType list,
+ AbstractXMLObject sourceRoot, JavaBeanModel targetRoot) {
+
+ }
+
+ private ResourceConfigType findFirstMappingResourceConfig(
+ SmooksResourceListType listType) {
+ List list = listType.getAbstractResourceConfig();
+ for (Iterator iterator = list.iterator(); iterator.hasNext();) {
+ ResourceConfigType resource = (ResourceConfigType) iterator.next();
+ ResourceType rt = resource.getResource();
+ if (rt == null)
+ continue;
+ String value = rt.getValue();
+ if (SmooksModelConstants.BEAN_POPULATOR.equals(value)) {
+ return resource;
+ }
+ }
return null;
}