Author: DartPeng
Date: 2008-08-20 05:58:02 -0400 (Wed, 20 Aug 2008)
New Revision: 9810
Added:
workspace/dart/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/AbstractAnalyzer.java
Modified:
workspace/dart/plugins/org.jboss.tools.smooks.javabean/META-INF/MANIFEST.MF
workspace/dart/plugins/org.jboss.tools.smooks.ui/META-INF/MANIFEST.MF
workspace/dart/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/AnalyzerFactory.java
workspace/dart/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/SmooksFileBuilder.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/modelparser/SmooksConfigurationFileGenerateContext.java
workspace/dart/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/utils/UIUtils.java
workspace/dart/plugins/org.jboss.tools.smooks.xml/META-INF/MANIFEST.MF
workspace/dart/plugins/org.jboss.tools.smooks.xml/src/org/jboss/tools/smooks/xml/model/AbstractXMLObject.java
workspace/dart/plugins/org.jboss.tools.smooks.xml/src/org/jboss/tools/smooks/xml/model/DocumentObject.java
workspace/dart/plugins/org.jboss.tools.smooks.xml/src/org/jboss/tools/smooks/xml/model/TagObject.java
Log:
Change some interfaces struction and some method for modifying Analyzer design
Modified: workspace/dart/plugins/org.jboss.tools.smooks.javabean/META-INF/MANIFEST.MF
===================================================================
--- workspace/dart/plugins/org.jboss.tools.smooks.javabean/META-INF/MANIFEST.MF 2008-08-20
09:17:31 UTC (rev 9809)
+++ workspace/dart/plugins/org.jboss.tools.smooks.javabean/META-INF/MANIFEST.MF 2008-08-20
09:58:02 UTC (rev 9810)
@@ -30,3 +30,8 @@
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
Modified: workspace/dart/plugins/org.jboss.tools.smooks.ui/META-INF/MANIFEST.MF
===================================================================
--- workspace/dart/plugins/org.jboss.tools.smooks.ui/META-INF/MANIFEST.MF 2008-08-20
09:17:31 UTC (rev 9809)
+++ workspace/dart/plugins/org.jboss.tools.smooks.ui/META-INF/MANIFEST.MF 2008-08-20
09:58:02 UTC (rev 9810)
@@ -16,7 +16,10 @@
org.eclipse.jdt.ui,
org.eclipse.xsd,
org.eclipse.ui.forms,
- org.jboss.tools.smooks.model
+ org.jboss.tools.smooks.model,
+ org.eclipse.emf,
+ org.eclipse.emf.edit,
+ org.jboss.tools.smooks.model.edit
Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Bundle-ClassPath: .
Added:
workspace/dart/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/AbstractAnalyzer.java
===================================================================
---
workspace/dart/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/AbstractAnalyzer.java
(rev 0)
+++
workspace/dart/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/AbstractAnalyzer.java 2008-08-20
09:58:02 UTC (rev 9810)
@@ -0,0 +1,107 @@
+/*******************************************************************************
+ * 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.analyzer;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+
+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.resource.Resource;
+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.milyn.xsd.smooks.ParamType;
+import org.milyn.xsd.smooks.ResourceConfigType;
+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
+ * @Date Aug 20, 2008
+ */
+public abstract class AbstractAnalyzer implements IAnalyzer {
+ protected List usedConnectionList = new ArrayList();
+ protected AdapterFactoryEditingDomain editingDomain;
+ protected ComposedAdapterFactory adapterFactory;
+
+ public AbstractAnalyzer() {
+ 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();
+ }
+
+ protected boolean connectionIsUsed(Object connection) {
+ return (usedConnectionList.indexOf(connection) != -1);
+ }
+
+ protected void setConnectionUsed(Object connection) {
+ usedConnectionList.add(connection);
+ }
+
+ protected void cleanUsedConnectionList() {
+ usedConnectionList.clear();
+ }
+
+ protected void addResourceConfigType(SmooksResourceListType resourceList,
+ ResourceConfigType resourceConfig) {
+ Command addResourceConfigCommand = AddCommand.create(
+ getEditingDomain(), resourceList, SmooksPackage.eINSTANCE
+ .getSmooksResourceListType_AbstractResourceConfig(),
+ resourceConfig);
+ addResourceConfigCommand.execute();
+ }
+
+
+ protected ParamType addParamTypeToResourceConfig(
+ ResourceConfigType resourceConfigType, String name, String text) {
+ ParamType paramType = SmooksFactory.eINSTANCE.createParamType();
+ paramType.setName(name);
+ if (text != null) {
+ SmooksModelUtils.appendTextToSmooksType(paramType, text);
+ }
+ resourceConfigType.getParam().add(paramType);
+ return paramType;
+ }
+
+ /**
+ * @return the editingDomain
+ */
+ public AdapterFactoryEditingDomain getEditingDomain() {
+ return editingDomain;
+ }
+
+ /**
+ * @param editingDomain
+ * the editingDomain to set
+ */
+ public void setEditingDomain(AdapterFactoryEditingDomain editingDomain) {
+ this.editingDomain = editingDomain;
+ }
+
+}
Property changes on:
workspace/dart/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/AbstractAnalyzer.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified:
workspace/dart/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/AnalyzerFactory.java
===================================================================
---
workspace/dart/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/AnalyzerFactory.java 2008-08-20
09:17:31 UTC (rev 9809)
+++
workspace/dart/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/AnalyzerFactory.java 2008-08-20
09:58:02 UTC (rev 9810)
@@ -39,7 +39,6 @@
private void initAnalyzerMap() {
if (analyzerMap == null) {
analyzerMap = new HashMap<String, AnalyzerMapper>();
- ;
IExtensionRegistry registry = Platform.getExtensionRegistry();
IExtensionPoint ep = registry
.getExtensionPoint(SmooksExtensionPointConstants.EXTENTION_POINT_ANALYZER);
Modified:
workspace/dart/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/SmooksFileBuilder.java
===================================================================
---
workspace/dart/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/SmooksFileBuilder.java 2008-08-20
09:17:31 UTC (rev 9809)
+++
workspace/dart/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/analyzer/SmooksFileBuilder.java 2008-08-20
09:58:02 UTC (rev 9810)
@@ -11,8 +11,12 @@
import org.eclipse.emf.ecore.resource.Resource;
import org.jboss.tools.smooks.ui.modelparser.SmooksConfigurationFileGenerateContext;
import org.milyn.xsd.smooks.DocumentRoot;
+import org.milyn.xsd.smooks.ParamType;
+import org.milyn.xsd.smooks.ResourceConfigType;
import org.milyn.xsd.smooks.SmooksFactory;
import org.milyn.xsd.smooks.SmooksResourceListType;
+import org.milyn.xsd.smooks.util.SmooksConstants;
+import org.milyn.xsd.smooks.util.SmooksModelUtils;
import org.milyn.xsd.smooks.util.SmooksResourceFactoryImpl;
public class SmooksFileBuilder {
@@ -24,14 +28,21 @@
AnalyzerFactory factory = AnalyzerFactory.getInstance();
IAnalyzer analyzer = factory.getAnalyzer(context.getSourceDataTypeID(),
context.getTargetDataTypeID());
+
if (analyzer == null)
throw new SmooksAnalyzerException(
"can't find the Analyzer for sourceID : "
+ context.getSourceDataTypeID()
+ " and the targetID : "
+ context.getTargetDataTypeID());
+
SmooksResourceListType listType = analyzer
.analyzeMappingGraphModel(context);
+
+ // init the smooksresourcelist
+ initSmooksParseStyle(context,listType);
+
+ // serialize model to stream
Resource resource = new SmooksResourceFactoryImpl()
.createResource(null);
DocumentRoot dr = SmooksFactory.eINSTANCE.createDocumentRoot();
@@ -44,4 +55,25 @@
resource.save(outputStream, Collections.EMPTY_MAP);
return new ByteArrayInputStream(outputStream.toByteArray());
}
+ /**
+ *
+ * <code> <resource-config selector="global-parameters">
+ * <param name="stream.filter.type">SAX< /param>
+ * </resource-config> </code>
+ * @param context
+ * @param resourceList
+ */
+ protected void initSmooksParseStyle(SmooksConfigurationFileGenerateContext
context,SmooksResourceListType resourceList){
+// String type = context.getSmooksType();
+// if(type == null) return;
+// ResourceConfigType config = SmooksFactory.eINSTANCE.createResourceConfigType();
+// config.setSelector(SmooksConstants.GLOBAL_PARAMETERS);
+// ParamType param = SmooksFactory.eINSTANCE.createParamType();
+// param.setName(SmooksConstants.STREAM_FILTER_TYPE);
+// SmooksModelUtils.appendTextToSmooksType(param, SmooksConstants.SAX);
+//
+// config.getParam().add(param);
+
+// resourceList.getAbstractResourceConfig().add(0,config);
+ }
}
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-08-20
09:17:31 UTC (rev 9809)
+++
workspace/dart/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/editors/SmooksGraphicalFormPage.java 2008-08-20
09:58:02 UTC (rev 9810)
@@ -91,6 +91,7 @@
import org.jboss.tools.smooks.ui.modelparser.SmooksConfigurationFileGenerateContext;
import org.jboss.tools.smooks.ui.wizards.TransformDataSelectionWizard;
import org.jboss.tools.smooks.utils.UIUtils;
+import org.milyn.xsd.smooks.util.SmooksConstants;
/**
* @author Dart Peng
@@ -436,7 +437,7 @@
SmooksConfigurationFileGenerateContext context = new
SmooksConfigurationFileGenerateContext();
context.setSourceDataTypeID(this.sourceDataTypeID);
context.setTargetDataTypeID(this.targetDataTypeID);
- context.setSmooksType("SAX");
+ context.setSmooksType(SmooksConstants.SAX);
context.setDataMappingRootModel(this.rootModel);
return context;
}
Modified:
workspace/dart/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/modelparser/SmooksConfigurationFileGenerateContext.java
===================================================================
---
workspace/dart/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/modelparser/SmooksConfigurationFileGenerateContext.java 2008-08-20
09:17:31 UTC (rev 9809)
+++
workspace/dart/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/ui/modelparser/SmooksConfigurationFileGenerateContext.java 2008-08-20
09:58:02 UTC (rev 9810)
@@ -18,10 +18,7 @@
*/
public class SmooksConfigurationFileGenerateContext {
- public static final String TYPE_SAX = "sax";
- public static final String TYPE_DOM = "sax";
-
protected String sourceDataTypeID = null;
protected String targetDataTypeID = null;
protected GraphRootModel dataMappingRootModel;
Modified:
workspace/dart/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/utils/UIUtils.java
===================================================================
---
workspace/dart/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/utils/UIUtils.java 2008-08-20
09:17:31 UTC (rev 9809)
+++
workspace/dart/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/utils/UIUtils.java 2008-08-20
09:58:02 UTC (rev 9810)
@@ -18,6 +18,8 @@
import org.eclipse.ui.IFileEditorInput;
import org.jboss.tools.smooks.ui.ViewerInitorStore;
import org.jboss.tools.smooks.ui.gef.model.AbstractStructuredDataModel;
+import org.jboss.tools.smooks.ui.gef.model.IConnectableModel;
+import org.jboss.tools.smooks.ui.gef.model.LineConnectionModel;
/**
*
@@ -37,6 +39,50 @@
return createFillLayout(1, 1);
}
+ public static boolean hasSourceConnectionModel(
+ AbstractStructuredDataModel model) {
+ if (model instanceof IConnectableModel) {
+ return !((IConnectableModel) model).getModelSourceConnections()
+ .isEmpty();
+ }
+ return false;
+ }
+
+ public static boolean hasTargetConnectionModel(
+ AbstractStructuredDataModel model) {
+ if (model instanceof IConnectableModel) {
+ return !((IConnectableModel) model).getModelTargetConnections()
+ .isEmpty();
+ }
+ return false;
+ }
+
+ public static LineConnectionModel getFirstSourceModelViaConnection(
+ AbstractStructuredDataModel target) {
+ if (target instanceof IConnectableModel) {
+ List list = ((IConnectableModel) target)
+ .getModelSourceConnections();
+ if (list.isEmpty())
+ return null;
+ // get the first connection
+ return (LineConnectionModel) list.get(0);
+ }
+ return null;
+ }
+
+ public static LineConnectionModel getFirstTargetModelViaConnection(
+ AbstractStructuredDataModel target) {
+ if (target instanceof IConnectableModel) {
+ List list = ((IConnectableModel) target)
+ .getModelTargetConnections();
+ if (list.isEmpty())
+ return null;
+ // get the first connection
+ return (LineConnectionModel) list.get(0);
+ }
+ return null;
+ }
+
/**
*
* @param parent
Modified: workspace/dart/plugins/org.jboss.tools.smooks.xml/META-INF/MANIFEST.MF
===================================================================
--- workspace/dart/plugins/org.jboss.tools.smooks.xml/META-INF/MANIFEST.MF 2008-08-20
09:17:31 UTC (rev 9809)
+++ workspace/dart/plugins/org.jboss.tools.smooks.xml/META-INF/MANIFEST.MF 2008-08-20
09:58:02 UTC (rev 9810)
@@ -19,3 +19,9 @@
Eclipse-LazyStart: true
Bundle-ClassPath: libs/dom4j-1.6.1.jar,
.
+Export-Package: org.jboss.tools.smooks.xml,
+ org.jboss.tools.smooks.xml.model,
+ org.jboss.tools.smooks.xml.ui,
+ org.jboss.tools.smooks.xml2java.model,
+ org.jboss.tools.smooks.xsd.model,
+ org.jboss.tools.smooks.xsd.ui
Modified:
workspace/dart/plugins/org.jboss.tools.smooks.xml/src/org/jboss/tools/smooks/xml/model/AbstractXMLObject.java
===================================================================
---
workspace/dart/plugins/org.jboss.tools.smooks.xml/src/org/jboss/tools/smooks/xml/model/AbstractXMLObject.java 2008-08-20
09:17:31 UTC (rev 9809)
+++
workspace/dart/plugins/org.jboss.tools.smooks.xml/src/org/jboss/tools/smooks/xml/model/AbstractXMLObject.java 2008-08-20
09:58:02 UTC (rev 9810)
@@ -19,6 +19,8 @@
*/
public class AbstractXMLObject {
+ protected AbstractXMLObject parent;
+
protected String name;
protected List<AbstractXMLObject> children = new
ArrayList<AbstractXMLObject>();
@@ -38,6 +40,20 @@
public void setChildren(List<AbstractXMLObject> children) {
this.children = children;
}
+
+ /**
+ * @return the parent
+ */
+ public AbstractXMLObject getParent() {
+ return parent;
+ }
+
+ /**
+ * @param parent the parent to set
+ */
+ public void setParent(AbstractXMLObject parent) {
+ this.parent = parent;
+ }
}
Modified:
workspace/dart/plugins/org.jboss.tools.smooks.xml/src/org/jboss/tools/smooks/xml/model/DocumentObject.java
===================================================================
---
workspace/dart/plugins/org.jboss.tools.smooks.xml/src/org/jboss/tools/smooks/xml/model/DocumentObject.java 2008-08-20
09:17:31 UTC (rev 9809)
+++
workspace/dart/plugins/org.jboss.tools.smooks.xml/src/org/jboss/tools/smooks/xml/model/DocumentObject.java 2008-08-20
09:58:02 UTC (rev 9810)
@@ -23,6 +23,7 @@
public void setRootTag(TagObject rootTag) {
this.rootTag = rootTag;
+ if(rootTag != null) rootTag.setParent(this);
}
public String toString(){
@@ -31,5 +32,15 @@
return "Docuement Object : " +getName();
}
+
+ /* (non-Javadoc)
+ * @see org.jboss.tools.smooks.xml.model.AbstractXMLObject#getParent()
+ */
+ @Override
+ public AbstractXMLObject getParent() {
+ return null;
+ }
+
+
}
Modified:
workspace/dart/plugins/org.jboss.tools.smooks.xml/src/org/jboss/tools/smooks/xml/model/TagObject.java
===================================================================
---
workspace/dart/plugins/org.jboss.tools.smooks.xml/src/org/jboss/tools/smooks/xml/model/TagObject.java 2008-08-20
09:17:31 UTC (rev 9809)
+++
workspace/dart/plugins/org.jboss.tools.smooks.xml/src/org/jboss/tools/smooks/xml/model/TagObject.java 2008-08-20
09:58:02 UTC (rev 9810)
@@ -28,23 +28,32 @@
public void setProperties(List<TagPropertyObject> properties) {
this.properties = properties;
}
-
- public void addProperty(TagPropertyObject pro){
+
+ public void addProperty(TagPropertyObject pro) {
this.getProperties().add(pro);
+ if (pro != null)
+ pro.setParent(this);
}
-
- public void removeProperty(TagPropertyObject pro){
+
+ public void removeProperty(TagPropertyObject pro) {
this.getProperties().remove(pro);
+ if (pro != null)
+ pro.setParent(null);
}
-
- public void addChildTag(TagObject tag){
+
+ public void addChildTag(TagObject tag) {
this.getChildren().add(tag);
+ if (tag != null)
+ tag.setParent(this);
}
- public void removeChildTag(TagObject tag){
+
+ public void removeChildTag(TagObject tag) {
this.getChildren().remove(tag);
+ if (tag != null)
+ tag.setParent(null);
}
-
- public String toString(){
+
+ public String toString() {
StringBuffer buffer = new StringBuffer(getName());
buffer.append("\n");
for (Iterator iterator = properties.iterator(); iterator.hasNext();) {
@@ -53,7 +62,7 @@
buffer.append(pro.getName());
buffer.append("\n");
}
-
+
List l = getChildren();
for (Iterator iterator = l.iterator(); iterator.hasNext();) {
TagObject tag = (TagObject) iterator.next();
@@ -63,5 +72,5 @@
}
return buffer.toString();
}
-
+
}