[jboss-svn-commits] JBL Code SVN: r20708 - in labs/jbossrules/trunk: drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon Jun 23 15:18:45 EDT 2008
Author: mark.proctor at jboss.com
Date: 2008-06-23 15:18:45 -0400 (Mon, 23 Jun 2008)
New Revision: 20708
Modified:
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java
labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/DRLInfo.java
labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/DroolsEclipsePlugin.java
Log:
JBRULES-1656 PackageBulder to support multiple namespaces
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java 2008-06-23 18:22:40 UTC (rev 20707)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/PackageBuilder.java 2008-06-23 19:18:45 UTC (rev 20708)
@@ -885,6 +885,13 @@
this.results.clear();
}
+ public String getDefaultNamespace() {
+ return this.defaultNamespace;
+ }
+
+ public String getDefaultDialect() {
+ return this.defaultDialect;
+ }
public static class MissingPackageNameException extends IllegalArgumentException {
private static final long serialVersionUID = 400L;
Modified: labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/DRLInfo.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/DRLInfo.java 2008-06-23 18:22:40 UTC (rev 20707)
+++ labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/DRLInfo.java 2008-06-23 19:18:45 UTC (rev 20708)
@@ -6,16 +6,16 @@
import java.util.List;
import org.drools.compiler.Dialect;
-import org.drools.compiler.DialectRegistry;
+import org.drools.compiler.DialectCompiletimeRegistry;
import org.drools.compiler.DroolsError;
import org.drools.compiler.PackageBuilder;
import org.drools.lang.descr.AttributeDescr;
import org.drools.lang.descr.FunctionDescr;
import org.drools.lang.descr.PackageDescr;
import org.drools.lang.descr.RuleDescr;
+import org.drools.rule.DialectRuntimeRegistry;
import org.drools.rule.LineMappings;
import org.drools.rule.Package;
-import org.drools.rule.DialectDatas;
public class DRLInfo {
@@ -30,9 +30,9 @@
// cached entry
private transient RuleInfo[] ruleInfos;
private transient FunctionInfo[] functionInfos;
- private DialectRegistry dialectRegistry;
+ private DialectCompiletimeRegistry dialectRegistry;
- public DRLInfo(String sourcePathName, PackageDescr packageDescr, List parserErrors, DialectRegistry dialectRegistry) {
+ public DRLInfo(String sourcePathName, PackageDescr packageDescr, List parserErrors, DialectCompiletimeRegistry dialectRegistry) {
if (sourcePathName == null || "".equals(sourcePathName)) {
throw new IllegalArgumentException("Invalid sourcePathName " + sourcePathName);
}
@@ -47,7 +47,7 @@
this.dialectRegistry = dialectRegistry;
}
- public DRLInfo(String pathName, PackageDescr packageDescr, List parserErrors, Package compiledPackage, DroolsError[] builderErrors, DialectRegistry dialectRegistry) {
+ public DRLInfo(String pathName, PackageDescr packageDescr, List parserErrors, Package compiledPackage, DroolsError[] builderErrors, DialectCompiletimeRegistry dialectRegistry) {
this(pathName, packageDescr, parserErrors, dialectRegistry);
if (compiledPackage == null) {
throw new IllegalArgumentException("Null package");
@@ -185,7 +185,7 @@
if (!isCompiled()) {
throw new IllegalArgumentException("Package has not been compiled");
}
- DialectDatas datas = compiledPackage.getDialectDatas();
+ DialectRuntimeRegistry datas = compiledPackage.getDialectRuntimeRegistry();
LineMappings mappings = datas.getLineMappings(className);
consequenceJavaLineNumber = mappings.getOffset();
@@ -269,7 +269,7 @@
if (!isCompiled()) {
throw new IllegalArgumentException("Package has not been compiled");
}
- javaLineNumber = compiledPackage.getDialectDatas().getLineMappings(className).getOffset();
+ javaLineNumber = compiledPackage.getDialectRuntimeRegistry().getLineMappings(className).getOffset();
}
return javaLineNumber;
}
Modified: labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/DroolsEclipsePlugin.java
===================================================================
--- labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/DroolsEclipsePlugin.java 2008-06-23 18:22:40 UTC (rev 20707)
+++ labs/jbossrules/trunk/drools-eclipse/drools-eclipse-plugin/src/main/java/org/drools/eclipse/DroolsEclipsePlugin.java 2008-06-23 19:18:45 UTC (rev 20708)
@@ -1,4 +1,5 @@
package org.drools.eclipse;
+
/*
* Copyright 2005 JBoss Inc
*
@@ -24,6 +25,7 @@
import java.util.MissingResourceException;
import java.util.ResourceBundle;
+import org.drools.compiler.DialectCompiletimeRegistry;
import org.drools.compiler.DrlParser;
import org.drools.compiler.DroolsParserException;
import org.drools.compiler.PackageBuilder;
@@ -69,391 +71,445 @@
* @author <a href="mailto:kris_verlaenen at hotmail.com">kris verlaenen </a>
*/
public class DroolsEclipsePlugin extends AbstractUIPlugin {
-
- public static final int INTERNAL_ERROR = 120;
- public static final String PLUGIN_ID = "org.drools.eclipse";
- public static final String BUILD_RESULT_PACKAGE = "Package";
- public static final String BUILD_RESULT_PACKAGE_DESCR = "PackageDescr";
-
- //The shared instance.
- private static DroolsEclipsePlugin plugin;
- //Resource bundle.
- private ResourceBundle resourceBundle;
- private Map colors = new HashMap();
- private Map parsedRules = new HashMap();
- private Map compiledRules = new HashMap();
- private Map ruleInfoByClassNameMap = new HashMap();
- private Map functionInfoByClassNameMap = new HashMap();
- private Map<IResource, ProcessInfo> processInfos = new HashMap<IResource, ProcessInfo>();
- private Map<String, ProcessInfo> processInfosById = new HashMap<String, ProcessInfo>();
- private boolean useCachePreference;
- private FormColors ruleBuilderFormColors;
+ public static final int INTERNAL_ERROR = 120;
+ public static final String PLUGIN_ID = "org.drools.eclipse";
+ public static final String BUILD_RESULT_PACKAGE = "Package";
+ public static final String BUILD_RESULT_PACKAGE_DESCR = "PackageDescr";
- /**
- * The constructor.
- */
- public DroolsEclipsePlugin() {
- super();
- plugin = this;
- }
+ //The shared instance.
+ private static DroolsEclipsePlugin plugin;
+ //Resource bundle.
+ private ResourceBundle resourceBundle;
+ private Map colors = new HashMap();
+ private Map parsedRules = new HashMap();
+ private Map compiledRules = new HashMap();
+ private Map ruleInfoByClassNameMap = new HashMap();
+ private Map functionInfoByClassNameMap = new HashMap();
+ private Map<IResource, ProcessInfo> processInfos = new HashMap<IResource, ProcessInfo>();
+ private Map<String, ProcessInfo> processInfosById = new HashMap<String, ProcessInfo>();
+ private boolean useCachePreference;
- /**
- * This method is called upon plug-in activation
- */
- public void start(BundleContext context) throws Exception {
- super.start(context);
- IPreferenceStore preferenceStore = getPreferenceStore();
- useCachePreference = preferenceStore.getBoolean(IDroolsConstants.CACHE_PARSED_RULES);
- preferenceStore.addPropertyChangeListener(new IPropertyChangeListener() {
- public void propertyChange(PropertyChangeEvent event) {
- if (IDroolsConstants.CACHE_PARSED_RULES.equals(event.getProperty())) {
- useCachePreference = ((Boolean) event.getNewValue()).booleanValue();
- if (!useCachePreference) {
- clearCache();
- }
- }
- }
- });
+ private FormColors ruleBuilderFormColors;
+ /**
+ * The constructor.
+ */
+ public DroolsEclipsePlugin() {
+ super();
+ plugin = this;
}
-
- public void clearCache() {
- parsedRules.clear();
- compiledRules.clear();
- ruleInfoByClassNameMap.clear();
- functionInfoByClassNameMap.clear();
- processInfos.clear();
- processInfosById = null;
- }
- /**
- * This method is called when the plug-in is stopped
- */
- public void stop(BundleContext context) throws Exception {
- super.stop(context);
- plugin = null;
- resourceBundle = null;
- parsedRules = null;
- compiledRules = null;
- processInfos = null;
- processInfosById = null;
- Iterator iterator = colors.values().iterator();
- while (iterator.hasNext()) {
- ((Color) iterator.next()).dispose();
- }
- }
+ /**
+ * This method is called upon plug-in activation
+ */
+ public void start(BundleContext context) throws Exception {
+ super.start( context );
+ IPreferenceStore preferenceStore = getPreferenceStore();
+ useCachePreference = preferenceStore.getBoolean( IDroolsConstants.CACHE_PARSED_RULES );
+ preferenceStore.addPropertyChangeListener( new IPropertyChangeListener() {
+ public void propertyChange(PropertyChangeEvent event) {
+ if ( IDroolsConstants.CACHE_PARSED_RULES.equals( event.getProperty() ) ) {
+ useCachePreference = ((Boolean) event.getNewValue()).booleanValue();
+ if ( !useCachePreference ) {
+ clearCache();
+ }
+ }
+ }
+ } );
- /**
- * Returns the shared instance.
- */
- public static DroolsEclipsePlugin getDefault() {
- return plugin;
- }
+ }
- /**
- * Returns the string from the plugin's resource bundle,
- * or 'key' if not found.
- */
- public static String getResourceString(String key) {
- ResourceBundle bundle = DroolsEclipsePlugin.getDefault().getResourceBundle();
- try {
- return (bundle != null) ? bundle.getString(key) : key;
- } catch (MissingResourceException e) {
- return key;
- }
- }
+ public void clearCache() {
+ parsedRules.clear();
+ compiledRules.clear();
+ ruleInfoByClassNameMap.clear();
+ functionInfoByClassNameMap.clear();
+ processInfos.clear();
+ processInfosById = null;
+ }
- /**
- * Returns the plugin's resource bundle,
- */
- public ResourceBundle getResourceBundle() {
- try {
- if (resourceBundle == null)
- resourceBundle = ResourceBundle.getBundle("droolsIDE.DroolsIDEPluginResources");
- } catch (MissingResourceException x) {
- resourceBundle = null;
- }
- return resourceBundle;
- }
+ /**
+ * This method is called when the plug-in is stopped
+ */
+ public void stop(BundleContext context) throws Exception {
+ super.stop( context );
+ plugin = null;
+ resourceBundle = null;
+ parsedRules = null;
+ compiledRules = null;
+ processInfos = null;
+ processInfosById = null;
+ Iterator iterator = colors.values().iterator();
+ while ( iterator.hasNext() ) {
+ ((Color) iterator.next()).dispose();
+ }
+ }
- /**
- * Returns an image descriptor for the image file at the given
- * plug-in relative path.
+ /**
+ * Returns the shared instance.
+ */
+ public static DroolsEclipsePlugin getDefault() {
+ return plugin;
+ }
+
+ /**
+ * Returns the string from the plugin's resource bundle,
+ * or 'key' if not found.
+ */
+ public static String getResourceString(String key) {
+ ResourceBundle bundle = DroolsEclipsePlugin.getDefault().getResourceBundle();
+ try {
+ return (bundle != null) ? bundle.getString( key ) : key;
+ } catch ( MissingResourceException e ) {
+ return key;
+ }
+ }
+
+ /**
+ * Returns the plugin's resource bundle,
+ */
+ public ResourceBundle getResourceBundle() {
+ try {
+ if ( resourceBundle == null ) resourceBundle = ResourceBundle.getBundle( "droolsIDE.DroolsIDEPluginResources" );
+ } catch ( MissingResourceException x ) {
+ resourceBundle = null;
+ }
+ return resourceBundle;
+ }
+
+ /**
+ * Returns an image descriptor for the image file at the given
+ * plug-in relative path.
* Uses the plug ins image registry to "cache" it.
- *
- * @param path the path
- * @return the image descriptor
- */
- public static ImageDescriptor getImageDescriptor(String path) {
-
+ *
+ * @param path the path
+ * @return the image descriptor
+ */
+ public static ImageDescriptor getImageDescriptor(String path) {
+
DroolsEclipsePlugin plugin = getDefault();
ImageRegistry reg = plugin.getImageRegistry();
ImageDescriptor des = reg.getDescriptor( path );
- if (des == null) {
- des = AbstractUIPlugin.imageDescriptorFromPlugin("org.drools.eclipse", path);
- reg.put( path, des );
+ if ( des == null ) {
+ des = AbstractUIPlugin.imageDescriptorFromPlugin( "org.drools.eclipse",
+ path );
+ reg.put( path,
+ des );
}
- return des;
- }
-
+ return des;
+ }
+
public static String getUniqueIdentifier() {
- if (getDefault() == null) {
+ if ( getDefault() == null ) {
return PLUGIN_ID;
}
return getDefault().getBundle().getSymbolicName();
}
-
+
public static void log(Throwable t) {
Throwable top = t;
- if (t instanceof DebugException) {
+ if ( t instanceof DebugException ) {
DebugException de = (DebugException) t;
IStatus status = de.getStatus();
- if (status.getException() != null) {
+ if ( status.getException() != null ) {
top = status.getException();
}
- }
- log(new Status(IStatus.ERROR, getUniqueIdentifier(),
- INTERNAL_ERROR, "Internal error in Drools Plugin: ", top));
+ }
+ log( new Status( IStatus.ERROR,
+ getUniqueIdentifier(),
+ INTERNAL_ERROR,
+ "Internal error in Drools Plugin: ",
+ top ) );
}
public static void log(IStatus status) {
- getDefault().getLog().log(status);
+ getDefault().getLog().log( status );
}
- public Color getColor(String type) {
- return (Color) colors.get(type);
- }
-
- public void setColor(String type, Color color) {
- colors.put(type, color);
- }
-
- protected void initializeDefaultPreferences(IPreferenceStore store) {
- store.setDefault(IDroolsConstants.BUILD_ALL, false);
- store.setDefault(IDroolsConstants.EDITOR_FOLDING, true);
- store.setDefault(IDroolsConstants.CACHE_PARSED_RULES, true);
- store.setDefault(IDroolsConstants.DSL_RULE_EDITOR_COMPLETION_FULL_SENTENCES, true);
- }
-
- public DRLInfo parseResource(IResource resource, boolean compile) throws DroolsParserException {
- DRLInfo result = (DRLInfo) compiledRules.get(resource);
- if (result == null && !compile) {
- result = (DRLInfo) parsedRules.get(resource);
- }
- if (result != null) {
- return result;
- }
- return generateParsedResource(resource, compile);
- }
-
- public DRLInfo parseResource(AbstractRuleEditor editor, boolean useUnsavedContent, boolean compile) throws DroolsParserException {
- IResource resource = editor.getResource();
- if (!editor.isDirty() || !useUnsavedContent) {
- DRLInfo result = (DRLInfo) compiledRules.get(resource);
- if (result == null && !compile) {
- result = (DRLInfo) parsedRules.get(resource);
- }
- if (result != null) {
- return result;
- }
- }
- if (!editor.isDirty()) {
- return generateParsedResource(editor.getContent(), resource, true, compile);
- }
- // TODO: can we cache result when using unsaved content as well?
- return generateParsedResource(editor.getContent(), resource, !useUnsavedContent, compile);
- }
-
- public DRLInfo parseXLSResource(String content, IResource resource) throws DroolsParserException {
- DRLInfo result = (DRLInfo) compiledRules.get(resource);
- if (result != null) {
- return result;
- }
- return generateParsedResource(content, resource, false, true);
- }
-
- public DRLInfo parseBRLResource(String content, IResource resource) throws DroolsParserException {
- DRLInfo result = (DRLInfo) compiledRules.get(resource);
- if (result != null) {
- return result;
- }
- return generateParsedResource(content, resource, false, true);
- }
-
- public void invalidateResource(IResource resource) {
- DRLInfo cached = (DRLInfo) compiledRules.remove(resource);
- if (cached != null) {
- RuleInfo[] ruleInfos = cached.getRuleInfos();
- for (int i = 0; i < ruleInfos.length; i++) {
- ruleInfoByClassNameMap.remove(ruleInfos[i].getClassName());
- }
- FunctionInfo[] functionInfos = cached.getFunctionInfos();
- for (int i = 0; i < functionInfos.length; i++) {
- functionInfoByClassNameMap.remove(functionInfos[i].getClassName());
- }
- }
- parsedRules.remove(resource);
- ProcessInfo processInfo = processInfos.remove(resource);
- if (processInfo != null) {
- processInfosById.remove(processInfo.getProcessId());
- }
- }
-
- private DRLInfo generateParsedResource(IResource resource, boolean compile) throws DroolsParserException {
- if (resource instanceof IFile) {
- IFile file = (IFile) resource;
- try {
- String content = new String(Util.getResourceContentsAsCharArray(file));
- return generateParsedResource(content, file, true, compile);
- } catch (CoreException e) {
- log(e);
- }
- }
- return null;
- }
+ public Color getColor(String type) {
+ return (Color) colors.get( type );
+ }
- public DRLInfo generateParsedResource(String content, IResource resource, boolean useCache, boolean compile) throws DroolsParserException {
- useCache = useCache && useCachePreference;
+ public void setColor(String type,
+ Color color) {
+ colors.put( type,
+ color );
+ }
+
+ protected void initializeDefaultPreferences(IPreferenceStore store) {
+ store.setDefault( IDroolsConstants.BUILD_ALL,
+ false );
+ store.setDefault( IDroolsConstants.EDITOR_FOLDING,
+ true );
+ store.setDefault( IDroolsConstants.CACHE_PARSED_RULES,
+ true );
+ store.setDefault( IDroolsConstants.DSL_RULE_EDITOR_COMPLETION_FULL_SENTENCES,
+ true );
+ }
+
+ public DRLInfo parseResource(IResource resource,
+ boolean compile) throws DroolsParserException {
+ DRLInfo result = (DRLInfo) compiledRules.get( resource );
+ if ( result == null && !compile ) {
+ result = (DRLInfo) parsedRules.get( resource );
+ }
+ if ( result != null ) {
+ return result;
+ }
+ return generateParsedResource( resource,
+ compile );
+ }
+
+ public DRLInfo parseResource(AbstractRuleEditor editor,
+ boolean useUnsavedContent,
+ boolean compile) throws DroolsParserException {
+ IResource resource = editor.getResource();
+ if ( !editor.isDirty() || !useUnsavedContent ) {
+ DRLInfo result = (DRLInfo) compiledRules.get( resource );
+ if ( result == null && !compile ) {
+ result = (DRLInfo) parsedRules.get( resource );
+ }
+ if ( result != null ) {
+ return result;
+ }
+ }
+ if ( !editor.isDirty() ) {
+ return generateParsedResource( editor.getContent(),
+ resource,
+ true,
+ compile );
+ }
+ // TODO: can we cache result when using unsaved content as well?
+ return generateParsedResource( editor.getContent(),
+ resource,
+ !useUnsavedContent,
+ compile );
+ }
+
+ public DRLInfo parseXLSResource(String content,
+ IResource resource) throws DroolsParserException {
+ DRLInfo result = (DRLInfo) compiledRules.get( resource );
+ if ( result != null ) {
+ return result;
+ }
+ return generateParsedResource( content,
+ resource,
+ false,
+ true );
+ }
+
+ public DRLInfo parseBRLResource(String content,
+ IResource resource) throws DroolsParserException {
+ DRLInfo result = (DRLInfo) compiledRules.get( resource );
+ if ( result != null ) {
+ return result;
+ }
+ return generateParsedResource( content,
+ resource,
+ false,
+ true );
+ }
+
+ public void invalidateResource(IResource resource) {
+ DRLInfo cached = (DRLInfo) compiledRules.remove( resource );
+ if ( cached != null ) {
+ RuleInfo[] ruleInfos = cached.getRuleInfos();
+ for ( int i = 0; i < ruleInfos.length; i++ ) {
+ ruleInfoByClassNameMap.remove( ruleInfos[i].getClassName() );
+ }
+ FunctionInfo[] functionInfos = cached.getFunctionInfos();
+ for ( int i = 0; i < functionInfos.length; i++ ) {
+ functionInfoByClassNameMap.remove( functionInfos[i].getClassName() );
+ }
+ }
+ parsedRules.remove( resource );
+ ProcessInfo processInfo = processInfos.remove( resource );
+ if ( processInfo != null ) {
+ processInfosById.remove( processInfo.getProcessId() );
+ }
+ }
+
+ private DRLInfo generateParsedResource(IResource resource,
+ boolean compile) throws DroolsParserException {
+ if ( resource instanceof IFile ) {
+ IFile file = (IFile) resource;
+ try {
+ String content = new String( Util.getResourceContentsAsCharArray( file ) );
+ return generateParsedResource( content,
+ file,
+ true,
+ compile );
+ } catch ( CoreException e ) {
+ log( e );
+ }
+ }
+ return null;
+ }
+
+ public DRLInfo generateParsedResource(String content,
+ IResource resource,
+ boolean useCache,
+ boolean compile) throws DroolsParserException {
+ useCache = useCache && useCachePreference;
DrlParser parser = new DrlParser();
try {
- Reader dslReader = DSLAdapter.getDSLContent(content, resource);
+ Reader dslReader = DSLAdapter.getDSLContent( content,
+ resource );
ClassLoader oldLoader = Thread.currentThread().getContextClassLoader();
ClassLoader newLoader = DroolsBuilder.class.getClassLoader();
String level = null;
- if (resource.getProject().getNature("org.eclipse.jdt.core.javanature") != null) {
- IJavaProject project = JavaCore.create(resource.getProject());
- newLoader = ProjectClassLoader.getProjectClassLoader(project);
- level = project.getOption(JavaCore.COMPILER_COMPLIANCE, true);
+ if ( resource.getProject().getNature( "org.eclipse.jdt.core.javanature" ) != null ) {
+ IJavaProject project = JavaCore.create( resource.getProject() );
+ newLoader = ProjectClassLoader.getProjectClassLoader( project );
+ level = project.getOption( JavaCore.COMPILER_COMPLIANCE,
+ true );
}
try {
- Thread.currentThread().setContextClassLoader(newLoader);
+ Thread.currentThread().setContextClassLoader( newLoader );
PackageBuilderConfiguration builder_configuration = new PackageBuilderConfiguration();
- if (level != null) {
- JavaDialectConfiguration javaConf = ( JavaDialectConfiguration ) builder_configuration.getDialectConfiguration( "java" );
- javaConf.setJavaLanguageLevel(level);
+ if ( level != null ) {
+ JavaDialectConfiguration javaConf = (JavaDialectConfiguration) builder_configuration.getDialectConfiguration( "java" );
+ javaConf.setJavaLanguageLevel( level );
}
- builder_configuration.setClassLoader(newLoader);
+ builder_configuration.setClassLoader( newLoader );
// first parse the source
PackageDescr packageDescr = null;
List parserErrors = null;
- if (useCache) {
- DRLInfo cachedDrlInfo = (DRLInfo) parsedRules.get(resource);
- if (cachedDrlInfo != null) {
- packageDescr = cachedDrlInfo.getPackageDescr();
- parserErrors = cachedDrlInfo.getParserErrors();
- }
+ if ( useCache ) {
+ DRLInfo cachedDrlInfo = (DRLInfo) parsedRules.get( resource );
+ if ( cachedDrlInfo != null ) {
+ packageDescr = cachedDrlInfo.getPackageDescr();
+ parserErrors = cachedDrlInfo.getParserErrors();
+ }
}
-
- if (packageDescr == null) {
- if (dslReader != null) {
- packageDescr = parser.parse(content, dslReader);
- } else {
- packageDescr = parser.parse(content);
- }
- parserErrors = parser.getErrors();
+
+ if ( packageDescr == null ) {
+ if ( dslReader != null ) {
+ packageDescr = parser.parse( content,
+ dslReader );
+ } else {
+ packageDescr = parser.parse( content );
+ }
+ parserErrors = parser.getErrors();
}
- PackageBuilder builder = new PackageBuilder(builder_configuration);
- DRLInfo result = null;
- // compile parsed rules if necessary
- if (compile && !parser.hasErrors()) {
+ PackageBuilder builder = new PackageBuilder( builder_configuration );
+ DRLInfo result = null;
+ // compile parsed rules if necessary
+ if ( compile && !parser.hasErrors() ) {
// check whether a .package file exists and add it
- if (resource.getParent() != null) {
- MyResourceVisitor visitor = new MyResourceVisitor();
- resource.getParent().accept(visitor, IResource.DEPTH_ONE, IResource.NONE);
- IResource packageDef = visitor.getPackageDef();
- if (packageDef != null) {
- builder.addPackage(parseResource(packageDef, false).getPackageDescr());
- }
+ if ( resource.getParent() != null ) {
+ MyResourceVisitor visitor = new MyResourceVisitor();
+ resource.getParent().accept( visitor,
+ IResource.DEPTH_ONE,
+ IResource.NONE );
+ IResource packageDef = visitor.getPackageDef();
+ if ( packageDef != null ) {
+ builder.addPackage( parseResource( packageDef,
+ false ).getPackageDescr() );
+ }
}
-
- builder.addPackage(packageDescr);
- result = new DRLInfo(
- resource.getProjectRelativePath().toString(),
- packageDescr, parserErrors,
- builder.getPackage(), builder.getErrors().getErrors(), builder.getDialectRegistry());
- } else {
- result = new DRLInfo(
- resource.getProjectRelativePath().toString(),
- packageDescr, parserErrors, builder.getDialectRegistry());
- }
-
- // cache result
- if (useCache) {
- if (compile && !parser.hasErrors()) {
- parsedRules.remove(resource);
- compiledRules.put(resource, result);
- RuleInfo[] ruleInfos = result.getRuleInfos();
- for (int i = 0; i < ruleInfos.length; i++) {
- ruleInfoByClassNameMap.put(ruleInfos[i].getClassName(), ruleInfos[i]);
- }
- FunctionInfo[] functionInfos = result.getFunctionInfos();
- for (int i = 0; i < functionInfos.length; i++) {
- functionInfoByClassNameMap.put(functionInfos[i].getClassName(), functionInfos[i]);
- }
- } else {
- parsedRules.put(resource, result);
- }
- }
- return result;
+
+ builder.addPackage( packageDescr );
+
+ result = new DRLInfo( resource.getProjectRelativePath().toString(),
+ packageDescr,
+ parserErrors,
+ builder.getPackage(),
+ builder.getErrors().getErrors(),
+ builder.getPackageRegistry( builder.getDefaultNamespace() ).getDialectCompiletimeRegistry() );
+ } else {
+ result = new DRLInfo( resource.getProjectRelativePath().toString(),
+ packageDescr,
+ parserErrors,
+ builder.getPackageRegistry( builder.getDefaultNamespace() ).getDialectCompiletimeRegistry() );
+ }
+
+ // cache result
+ if ( useCache ) {
+ if ( compile && !parser.hasErrors() ) {
+ parsedRules.remove( resource );
+ compiledRules.put( resource,
+ result );
+ RuleInfo[] ruleInfos = result.getRuleInfos();
+ for ( int i = 0; i < ruleInfos.length; i++ ) {
+ ruleInfoByClassNameMap.put( ruleInfos[i].getClassName(),
+ ruleInfos[i] );
+ }
+ FunctionInfo[] functionInfos = result.getFunctionInfos();
+ for ( int i = 0; i < functionInfos.length; i++ ) {
+ functionInfoByClassNameMap.put( functionInfos[i].getClassName(),
+ functionInfos[i] );
+ }
+ } else {
+ parsedRules.put( resource,
+ result );
+ }
+ }
+ return result;
} finally {
- Thread.currentThread().setContextClassLoader(oldLoader);
+ Thread.currentThread().setContextClassLoader( oldLoader );
}
- } catch (CoreException e) {
- log(e);
+ } catch ( CoreException e ) {
+ log( e );
}
- return null;
- }
-
- public RuleInfo getRuleInfoByClass(String ruleClassName) {
- return (RuleInfo) ruleInfoByClassNameMap.get(ruleClassName);
- }
+ return null;
+ }
- public FunctionInfo getFunctionInfoByClass(String functionClassName) {
- return (FunctionInfo) functionInfoByClassNameMap.get(functionClassName);
- }
-
- public ProcessInfo parseProcess(String input, IResource resource) {
- try {
+ public RuleInfo getRuleInfoByClass(String ruleClassName) {
+ return (RuleInfo) ruleInfoByClassNameMap.get( ruleClassName );
+ }
+
+ public FunctionInfo getFunctionInfoByClass(String functionClassName) {
+ return (FunctionInfo) functionInfoByClassNameMap.get( functionClassName );
+ }
+
+ public ProcessInfo parseProcess(String input,
+ IResource resource) {
+ try {
ClassLoader oldLoader = Thread.currentThread().getContextClassLoader();
ClassLoader newLoader = this.getClass().getClassLoader();
try {
- Thread.currentThread().setContextClassLoader(newLoader);
+ Thread.currentThread().setContextClassLoader( newLoader );
PackageBuilderConfiguration configuration = new PackageBuilderConfiguration();
XmlProcessReader xmlReader = new XmlProcessReader( configuration.getSemanticModules() );
- Process process = xmlReader.read(new StringReader(input));
- if (process != null) {
- return parseProcess(process, resource);
+ Process process = xmlReader.read( new StringReader( input ) );
+ if ( process != null ) {
+ return parseProcess( process,
+ resource );
} else {
- throw new IllegalArgumentException(
- "Could not parse process " + resource);
+ throw new IllegalArgumentException( "Could not parse process " + resource );
}
} finally {
- Thread.currentThread().setContextClassLoader(oldLoader);
- }
- } catch (Exception e) {
- log(e);
+ Thread.currentThread().setContextClassLoader( oldLoader );
+ }
+ } catch ( Exception e ) {
+ log( e );
}
- return null;
- }
-
- public ProcessInfo getProcessInfo(String processId) {
- return processInfosById.get(processId);
- }
-
- public ProcessInfo parseProcess(Process process, IResource resource) {
+ return null;
+ }
+
+ public ProcessInfo getProcessInfo(String processId) {
+ return processInfosById.get( processId );
+ }
+
+ public ProcessInfo parseProcess(Process process,
+ IResource resource) {
PackageBuilder packageBuilder = new PackageBuilder();
- ProcessBuilder processBuilder = new ProcessBuilder(packageBuilder);
- processBuilder.buildProcess(process);
- ProcessInfo processInfo = new ProcessInfo(process.getId(), process);
- processInfo.setErrors(processBuilder.getErrors());
- if (useCachePreference) {
- processInfos.put(resource, processInfo);
- processInfosById.put(process.getId(), processInfo);
+ ProcessBuilder processBuilder = new ProcessBuilder( packageBuilder );
+ processBuilder.buildProcess( process );
+ ProcessInfo processInfo = new ProcessInfo( process.getId(),
+ process );
+ processInfo.setErrors( processBuilder.getErrors() );
+ if ( useCachePreference ) {
+ processInfos.put( resource,
+ processInfo );
+ processInfosById.put( process.getId(),
+ processInfo );
}
return processInfo;
- }
+ }
/**
* Form Colors, default colors for now.
@@ -469,16 +525,20 @@
return ruleBuilderFormColors;
}
- private class MyResourceVisitor implements IResourceVisitor {
- private IResource packageDef;
- public boolean visit(IResource resource) throws CoreException {
- if ("package".equals(resource.getFileExtension())) {
- packageDef = resource;
- }
- return true;
- }
- public IResource getPackageDef() {
- return packageDef;
- }
- }
+ private class MyResourceVisitor
+ implements
+ IResourceVisitor {
+ private IResource packageDef;
+
+ public boolean visit(IResource resource) throws CoreException {
+ if ( "package".equals( resource.getFileExtension() ) ) {
+ packageDef = resource;
+ }
+ return true;
+ }
+
+ public IResource getPackageDef() {
+ return packageDef;
+ }
+ }
}
More information about the jboss-svn-commits
mailing list