[jbosstools-commits] JBoss Tools SVN: r30862 - in trunk/cdi/plugins/org.jboss.tools.cdi.seam.config.core/src/org/jboss/tools/cdi/seam/config/core: scanner and 1 other directories.
jbosstools-commits at lists.jboss.org
jbosstools-commits at lists.jboss.org
Tue Apr 26 20:56:17 EDT 2011
Author: scabanovich
Date: 2011-04-26 20:56:17 -0400 (Tue, 26 Apr 2011)
New Revision: 30862
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.seam.config.core/src/org/jboss/tools/cdi/seam/config/core/definition/SeamBeanDefinition.java
trunk/cdi/plugins/org.jboss.tools.cdi.seam.config.core/src/org/jboss/tools/cdi/seam/config/core/definition/SeamFieldDefinition.java
trunk/cdi/plugins/org.jboss.tools.cdi.seam.config.core/src/org/jboss/tools/cdi/seam/config/core/scanner/SeamDefinitionBuilder.java
trunk/cdi/plugins/org.jboss.tools.cdi.seam.config.core/src/org/jboss/tools/cdi/seam/config/core/util/Util.java
Log:
JBIDE-3120
https://issues.jboss.org/browse/JBIDE-3120
Modified: trunk/cdi/plugins/org.jboss.tools.cdi.seam.config.core/src/org/jboss/tools/cdi/seam/config/core/definition/SeamBeanDefinition.java
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.seam.config.core/src/org/jboss/tools/cdi/seam/config/core/definition/SeamBeanDefinition.java 2011-04-26 23:58:08 UTC (rev 30861)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.seam.config.core/src/org/jboss/tools/cdi/seam/config/core/definition/SeamBeanDefinition.java 2011-04-27 00:56:17 UTC (rev 30862)
@@ -14,6 +14,7 @@
import java.util.List;
import org.eclipse.jdt.core.IType;
+import org.jboss.tools.cdi.seam.config.core.scanner.SAXElement;
/**
*
@@ -39,4 +40,12 @@
methods.add(method);
}
+ public SeamFieldDefinition getField(String name) {
+ for (SeamFieldDefinition d: fields) {
+ SAXElement e = d.getElement();
+ if(name.equals(e.getLocalName())) return d;
+ }
+ return null;
+ }
+
}
Modified: trunk/cdi/plugins/org.jboss.tools.cdi.seam.config.core/src/org/jboss/tools/cdi/seam/config/core/definition/SeamFieldDefinition.java
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.seam.config.core/src/org/jboss/tools/cdi/seam/config/core/definition/SeamFieldDefinition.java 2011-04-26 23:58:08 UTC (rev 30861)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.seam.config.core/src/org/jboss/tools/cdi/seam/config/core/definition/SeamFieldDefinition.java 2011-04-27 00:56:17 UTC (rev 30862)
@@ -10,7 +10,13 @@
******************************************************************************/
package org.jboss.tools.cdi.seam.config.core.definition;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
import org.eclipse.jdt.core.IField;
+import org.jboss.tools.cdi.seam.config.core.scanner.SAXText;
/**
*
@@ -18,12 +24,45 @@
*
*/
public class SeamFieldDefinition extends SeamMemberDefinition {
- IField field;
+ protected IField field;
+ protected List<SAXText> listValue = null;
+ protected Map<SAXText, SAXText> mapValue = null;
+
public SeamFieldDefinition() {}
public void setField(IField field) {
this.field = field;
}
+ public String getValue() {
+ return listValue == null || listValue.size() == 0 ? null : listValue.get(0).getValue();
+ }
+
+ public void addValue(SAXText value) {
+ if(listValue == null) listValue = new ArrayList<SAXText>();
+ listValue.add(value);
+ }
+
+ public List<String> getListValue() {
+ List<String> result = new ArrayList<String>();
+ if(listValue != null) for (SAXText t: listValue) {
+ result.add(t.getValue());
+ }
+ return result;
+ }
+
+ public void addValue(SAXText key, SAXText value) {
+ if(mapValue == null) mapValue = new HashMap<SAXText, SAXText>();
+ mapValue.put(key, value);
+ }
+
+ public Map<String, String> getMapValue() {
+ Map<String, String> result = new HashMap<String, String>();
+ if(mapValue != null) for (SAXText t: mapValue.keySet()) {
+ result.put(t.getValue(), mapValue.get(t).getValue());
+ }
+ return result;
+ }
+
}
Modified: trunk/cdi/plugins/org.jboss.tools.cdi.seam.config.core/src/org/jboss/tools/cdi/seam/config/core/scanner/SeamDefinitionBuilder.java
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.seam.config.core/src/org/jboss/tools/cdi/seam/config/core/scanner/SeamDefinitionBuilder.java 2011-04-26 23:58:08 UTC (rev 30861)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.seam.config.core/src/org/jboss/tools/cdi/seam/config/core/scanner/SeamDefinitionBuilder.java 2011-04-27 00:56:17 UTC (rev 30862)
@@ -139,16 +139,22 @@
SeamFieldDefinition def = new SeamFieldDefinition();
def.setElement(element);
def.setField(field);
+ if(Util.hasText(element)) {
+ def.addValue(element.getTextNode());
+ }
List<SAXElement> es = element.getChildElements();
for (SAXElement c: es) {
if(!Util.isConfigRelevant(c)) continue;
- if(Util.containsEEPackage(c)) {
- if(Util.isValue(c)) {
+ if(Util.isValue(c)) {
+ if(Util.hasText(c)) {
+ def.addValue(c.getTextNode());
+ } else {
scanFieldValue(c);
- } else if(Util.isEntry(c)) {
- scanEntry(c);
}
continue;
+ } else if(Util.isEntry(c)) {
+ scanEntry(def, c);
+ continue;
}
IType t = Util.resolveType(c, project);
if(t != null) {
@@ -180,14 +186,30 @@
}
}
- private void scanEntry(SAXElement element) {
+ private void scanEntry(SeamFieldDefinition def, SAXElement element) {
List<SAXElement> es = element.getChildElements();
+ SAXText key = null;
+ SAXText value = null;
for (SAXElement c: es) {
if(!Util.isConfigRelevant(c)) continue;
- if(Util.isKey(c) || Util.isValue(c)) {
- scanFieldValue(c);
+ if(Util.isKey(c)) {
+ if(Util.hasText(c)) {
+ key = c.getTextNode();
+ } else {
+ scanFieldValue(c);
+ }
}
+ if(Util.isValue(c)) {
+ if(Util.hasText(c)) {
+ value = c.getTextNode();
+ } else {
+ scanFieldValue(c);
+ }
+ }
}
+ if(key != null && value != null) {
+ def.addValue(key, value);
+ }
}
private SeamMethodDefinition scanMethod(SAXElement element, IMethod method) {
@@ -197,17 +219,17 @@
List<SAXElement> es = element.getChildElements();
for (SAXElement c: es) {
if(!Util.isConfigRelevant(c)) continue;
- if(Util.containsEEPackage(c)) {
- if(Util.isParameters(c)) {
- List<SAXElement> ps = element.getChildElements();
- for (SAXElement p: ps) {
- SeamParameterDefinition pd = scanParameter(p);
- if(pd != null) def.addParameter(pd);
- }
- } else if(Util.isArray(c)) {
- SeamParameterDefinition pd = scanParameter(c);
+ if(Util.isParameters(c)) {
+ List<SAXElement> ps = element.getChildElements();
+ for (SAXElement p: ps) {
+ SeamParameterDefinition pd = scanParameter(p);
if(pd != null) def.addParameter(pd);
- }
+ }
+ continue;
+ } else if(Util.isArray(c)) {
+ SeamParameterDefinition pd = scanParameter(c);
+ if(pd != null) def.addParameter(pd);
+ continue;
}
IType t = Util.resolveType(c, project);
if(t != null) {
Modified: trunk/cdi/plugins/org.jboss.tools.cdi.seam.config.core/src/org/jboss/tools/cdi/seam/config/core/util/Util.java
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.seam.config.core/src/org/jboss/tools/cdi/seam/config/core/util/Util.java 2011-04-26 23:58:08 UTC (rev 30861)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.seam.config.core/src/org/jboss/tools/cdi/seam/config/core/util/Util.java 2011-04-27 00:56:17 UTC (rev 30862)
@@ -11,6 +11,7 @@
import org.jboss.tools.cdi.core.CDICoreNature;
import org.jboss.tools.cdi.seam.config.core.CDISeamConfigConstants;
import org.jboss.tools.cdi.seam.config.core.scanner.SAXElement;
+import org.jboss.tools.cdi.seam.config.core.scanner.SAXText;
public class Util implements CDISeamConfigConstants {
public static Map<String, String> EE_TYPES = new HashMap<String, String>();
@@ -145,4 +146,9 @@
return (keyword1.equals(n) || keyword2.equals(n)) && containsEEPackage(element);
}
+ public static boolean hasText(SAXElement element) {
+ SAXText t = element.getTextNode();
+ return t != null && t.getValue() != null && t.getValue().trim().length() > 0;
+ }
+
}
More information about the jbosstools-commits
mailing list