Author: DartPeng
Date: 2008-11-05 04:49:17 -0500 (Wed, 05 Nov 2008)
New Revision: 11515
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/javabean/analyzer/JavaBeanAnalyzer.java
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml2java/analyzer/XMLSourceModelAnalyzer.java
Log:
JBIDE-2988
Check the "selector" string , if there is any "/" "\"
":" , the analyzer will throw a exception
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/javabean/analyzer/JavaBeanAnalyzer.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/javabean/analyzer/JavaBeanAnalyzer.java 2008-11-05
08:31:21 UTC (rev 11514)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/javabean/analyzer/JavaBeanAnalyzer.java 2008-11-05
09:49:17 UTC (rev 11515)
@@ -54,6 +54,7 @@
import org.jboss.tools.smooks.model.SmooksResourceListType;
import org.jboss.tools.smooks.model.provider.SmooksItemProviderAdapterFactory;
import org.jboss.tools.smooks.model.util.SmooksModelUtils;
+import org.jboss.tools.smooks.ui.SmooksUIActivator;
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;
@@ -193,15 +194,6 @@
ResourceConfigType resourceConfig = SmooksFactory.eINSTANCE
.createResourceConfigType();
resourceList.add(resourceConfig);
- // Command addResourceConfigCommand = AddCommand
- // .create(
- // editingDomain,
- // resourceList,
- // SmooksPackage.eINSTANCE
- // .getSmooksResourceListType_AbstractResourceConfig(),
- // resourceConfig);
- // addResourceConfigCommand.execute();
- // resouceConfig.
resourceConfig
.setSelector(getSourceBeanSelectorString((AbstractStructuredDataModel) source));
setConnectionUsed(connection);
@@ -273,8 +265,9 @@
.addBindingTypeToParamType(
bindingsParam, jbean.getName(),
currentSelectorName, null, null);
- UIUtils.assignConnectionPropertyToBinding(childConnection, binding,
- new String[] { "property", "selector" });
+ UIUtils.assignConnectionPropertyToBinding(
+ childConnection, binding, new String[] {
+ "property", "selector" });
if (!jbean.isPrimitive()) {
analyzeStructuredDataModel(
resourceList,
@@ -530,7 +523,7 @@
SmooksResourceListType resourceList,
ResourceConfigType resourceConfig, JavaBeanModel source,
JavaBeanModel target) {
- List bindingList = this
+ List bindingList = SmooksModelUtils
.getBindingListFromResourceConfigType(resourceConfig);
if (bindingList == null)
return;
@@ -565,9 +558,9 @@
}
if (sourceModel != null) {
MappingModel model = new MappingModel(sourceModel, targetModel);
- UIUtils.assignBindingPropertyToMappingModel(binding, model, new Object[] {
- SmooksModelUtils.ATTRIBUTE_PROPERTY,
- SmooksModelUtils.ATTRIBUTE_SELECTOR });
+ UIUtils.assignBindingPropertyToMappingModel(binding, model,
+ new Object[] { SmooksModelUtils.ATTRIBUTE_PROPERTY,
+ SmooksModelUtils.ATTRIBUTE_SELECTOR });
mappingModelList.add(model);
}
}
@@ -783,7 +776,8 @@
ResourceConfigType currentResourceConfigType,
ClassLoader classLoader) {
if (currentResourceConfigType != null) {
- List bindingList = getBindingListFromResourceConfigType(currentResourceConfigType);
+ List bindingList = SmooksModelUtils
+ .getBindingListFromResourceConfigType(currentResourceConfigType);
if (bindingList == null)
return;
for (Iterator iterator = bindingList.iterator(); iterator.hasNext();) {
@@ -826,28 +820,28 @@
}
}
- 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 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
+ List bindingList = SmooksModelUtils
.getBindingListFromResourceConfigType(currentResourceConfigType);
if (bindingList == null)
return;
Modified:
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml2java/analyzer/XMLSourceModelAnalyzer.java
===================================================================
---
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml2java/analyzer/XMLSourceModelAnalyzer.java 2008-11-05
08:31:21 UTC (rev 11514)
+++
trunk/smooks/plugins/org.jboss.tools.smooks.ui/src/org/jboss/tools/smooks/xml2java/analyzer/XMLSourceModelAnalyzer.java 2008-11-05
09:49:17 UTC (rev 11515)
@@ -10,15 +10,68 @@
******************************************************************************/
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 org.eclipse.emf.ecore.xml.type.AnyType;
+import org.jboss.tools.smooks.graphical.GraphInformations;
+import org.jboss.tools.smooks.model.AbstractResourceConfig;
+import org.jboss.tools.smooks.model.ResourceConfigType;
+import org.jboss.tools.smooks.model.SmooksResourceListType;
+import org.jboss.tools.smooks.model.util.SmooksModelUtils;
+
/**
* @author Dart Peng<br>
* Date : Sep 23, 2008
*/
-public class XMLSourceModelAnalyzer extends AbstractXMLModelAnalyzer{
+public class XMLSourceModelAnalyzer extends AbstractXMLModelAnalyzer {
+ public static final String[] SELECTORE_SPLITER = new String[] { ":",
"\\", "/" };
+
public XMLSourceModelAnalyzer() {
super("sourceDataPath");
}
-
+
+ @Override
+ public Object buildSourceInputObjects(GraphInformations graphInfo,
+ SmooksResourceListType listType, IFile sourceFile)
+ throws InvocationTargetException {
+ List<AbstractResourceConfig> lists = listType
+ .getAbstractResourceConfig();
+ for (Iterator<AbstractResourceConfig> iterator = lists.iterator(); iterator
+ .hasNext();) {
+ ResourceConfigType resourceConfig = (ResourceConfigType) iterator
+ .next();
+ String selector = resourceConfig.getSelector();
+ checkBindingSelector(selector);
+ List<Object> list = SmooksModelUtils
+ .getBindingListFromResourceConfigType(resourceConfig);
+ if(list == null) continue;
+ for (Iterator<Object> iterator2 = list.iterator(); iterator2
+ .hasNext();) {
+ AnyType binding = (AnyType) iterator2.next();
+ String bindingMessage = SmooksModelUtils
+ .getAttributeValueFromAnyType(binding,
+ SmooksModelUtils.ATTRIBUTE_SELECTOR);
+ checkBindingSelector(bindingMessage);
+ }
+ }
+ return super.buildSourceInputObjects(graphInfo, listType, sourceFile);
+ }
+
+ protected void checkBindingSelector(String message)
+ throws InvocationTargetException {
+ if(message == null) return;
+ for (int i = 0; i < SELECTORE_SPLITER.length; i++) {
+ String splitString = SELECTORE_SPLITER[i];
+ if (message.indexOf(splitString) != -1) {
+ throw new InvocationTargetException(new Exception(
+ "[XML] The Selector string dosen't support \""
+ + splitString + "\" character"));
+ }
+ }
+ }
+
}