[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