[jboss-svn-commits] JBL Code SVN: r36492 - in labs/jbossrules/soa_branches/BRMS-5.1.x: drools-verifier/src/main/java/org/drools/verifier and 1 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sat Dec 25 23:36:30 EST 2010


Author: tsurdilovic
Date: 2010-12-25 23:36:28 -0500 (Sat, 25 Dec 2010)
New Revision: 36492

Modified:
   labs/jbossrules/soa_branches/BRMS-5.1.x/drools-guvnor/src/main/java/org/drools/guvnor/server/util/VerifierRunner.java
   labs/jbossrules/soa_branches/BRMS-5.1.x/drools-verifier/src/main/java/org/drools/verifier/Verifier.java
   labs/jbossrules/soa_branches/BRMS-5.1.x/drools-verifier/src/main/java/org/drools/verifier/builder/VerifierImpl.java
Log:
BRMS-520 : NullPointerException running QA Analisys

Modified: labs/jbossrules/soa_branches/BRMS-5.1.x/drools-guvnor/src/main/java/org/drools/guvnor/server/util/VerifierRunner.java
===================================================================
--- labs/jbossrules/soa_branches/BRMS-5.1.x/drools-guvnor/src/main/java/org/drools/guvnor/server/util/VerifierRunner.java	2010-12-24 14:32:33 UTC (rev 36491)
+++ labs/jbossrules/soa_branches/BRMS-5.1.x/drools-guvnor/src/main/java/org/drools/guvnor/server/util/VerifierRunner.java	2010-12-26 04:36:28 UTC (rev 36492)
@@ -18,6 +18,10 @@
 
 import java.io.StringReader;
 
+import org.drools.builder.DecisionTableConfiguration;
+import org.drools.builder.DecisionTableInputType;
+import org.drools.builder.KnowledgeBuilderFactory;
+import org.drools.builder.ResourceConfiguration;
 import org.drools.builder.ResourceType;
 import org.drools.guvnor.client.common.AssetFormats;
 import org.drools.guvnor.client.rpc.AnalysisReport;
@@ -110,8 +114,16 @@
         while ( assets.hasNext() ) {
             AssetItem asset = assets.next();
             if ( !asset.isArchived() && !asset.getDisabled() ) {
-                verifier.addResourcesToVerify( ResourceFactory.newReaderResource( new StringReader( asset.getContent() ) ),
+                if(resourceType == ResourceType.DTABLE) {
+                    DecisionTableConfiguration dtableconfiguration = KnowledgeBuilderFactory.newDecisionTableConfiguration();
+                    dtableconfiguration.setInputType( DecisionTableInputType.XLS );
+                     
+                    verifier.addResourcesToVerify( ResourceFactory.newByteArrayResource( asset.getBinaryContentAsBytes() ),
+                            resourceType, (ResourceConfiguration) dtableconfiguration );
+                } else {
+                    verifier.addResourcesToVerify( ResourceFactory.newReaderResource( new StringReader( asset.getContent() ) ),
                                                resourceType );
+                }
             }
         }
     }

Modified: labs/jbossrules/soa_branches/BRMS-5.1.x/drools-verifier/src/main/java/org/drools/verifier/Verifier.java
===================================================================
--- labs/jbossrules/soa_branches/BRMS-5.1.x/drools-verifier/src/main/java/org/drools/verifier/Verifier.java	2010-12-24 14:32:33 UTC (rev 36491)
+++ labs/jbossrules/soa_branches/BRMS-5.1.x/drools-verifier/src/main/java/org/drools/verifier/Verifier.java	2010-12-26 04:36:28 UTC (rev 36492)
@@ -1,62 +1,66 @@
-/**
- * Copyright 2010 JBoss Inc
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.drools.verifier;
-
-import java.util.List;
-import java.util.jar.JarInputStream;
-
-import org.drools.builder.ResourceType;
-import org.drools.io.Resource;
-import org.drools.verifier.builder.ScopesAgendaFilter;
-import org.drools.verifier.data.VerifierReport;
-
-public interface Verifier {
-
-    /**
-     * Add resource that is verified.
-     * 
-     * @param descr
-     */
-    public void addResourcesToVerify(Resource resource,
-                                     ResourceType type);
-
-    /**
-     * Give model info optionally as a jar. This way verifier doesn't have to figure out the field types.
-     */
-    public void addObjectModel(JarInputStream jar);
-
-    public void flushKnowledgeSession();
-
-    /**
-     * 
-     * This will run the verifier.
-     * 
-     * @return true if everything worked.
-     */
-    public boolean fireAnalysis();
-
-    public boolean fireAnalysis(ScopesAgendaFilter scopesAgendaFilter);
-
-    public VerifierReport getResult();
-
-    public boolean hasErrors();
-
-    public List<VerifierError> getErrors();
-
-    public void dispose();
-
+/**
+ * Copyright 2010 JBoss Inc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.drools.verifier;
+
+import java.util.List;
+import java.util.jar.JarInputStream;
+
+import org.drools.builder.ResourceConfiguration;
+import org.drools.builder.ResourceType;
+import org.drools.io.Resource;
+import org.drools.verifier.builder.ScopesAgendaFilter;
+import org.drools.verifier.data.VerifierReport;
+
+public interface Verifier {
+
+    /**
+     * Add resource that is verified.
+     * 
+     * @param descr
+     */
+    public void addResourcesToVerify(Resource resource,
+                                     ResourceType type);
+    
+    public void addResourcesToVerify(Resource resource,
+            ResourceType type, ResourceConfiguration config);
+
+    /**
+     * Give model info optionally as a jar. This way verifier doesn't have to figure out the field types.
+     */
+    public void addObjectModel(JarInputStream jar);
+
+    public void flushKnowledgeSession();
+
+    /**
+     * 
+     * This will run the verifier.
+     * 
+     * @return true if everything worked.
+     */
+    public boolean fireAnalysis();
+
+    public boolean fireAnalysis(ScopesAgendaFilter scopesAgendaFilter);
+
+    public VerifierReport getResult();
+
+    public boolean hasErrors();
+
+    public List<VerifierError> getErrors();
+
+    public void dispose();
+
 }
\ No newline at end of file

Modified: labs/jbossrules/soa_branches/BRMS-5.1.x/drools-verifier/src/main/java/org/drools/verifier/builder/VerifierImpl.java
===================================================================
--- labs/jbossrules/soa_branches/BRMS-5.1.x/drools-verifier/src/main/java/org/drools/verifier/builder/VerifierImpl.java	2010-12-24 14:32:33 UTC (rev 36491)
+++ labs/jbossrules/soa_branches/BRMS-5.1.x/drools-verifier/src/main/java/org/drools/verifier/builder/VerifierImpl.java	2010-12-26 04:36:28 UTC (rev 36492)
@@ -1,280 +1,302 @@
-/**
- * Copyright 2010 JBoss Inc
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.drools.verifier.builder;
-
-import java.text.ParseException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.jar.JarInputStream;
-
-import org.drools.KnowledgeBase;
-import org.drools.builder.KnowledgeBuilderError;
-import org.drools.builder.ResourceType;
-import org.drools.compiler.PackageBuilderErrors;
-import org.drools.io.Resource;
-import org.drools.lang.descr.PackageDescr;
-import org.drools.runtime.StatefulKnowledgeSession;
-import org.drools.verifier.DefaultVerifierConfiguration;
-import org.drools.verifier.Verifier;
-import org.drools.verifier.VerifierConfiguration;
-import org.drools.verifier.VerifierError;
-import org.drools.verifier.components.RulePackage;
-import org.drools.verifier.components.VerifierRule;
-import org.drools.verifier.data.VerifierComponent;
-import org.drools.verifier.data.VerifierReport;
-import org.drools.verifier.data.VerifierReportFactory;
-import org.drools.verifier.misc.DrlPackageParser;
-import org.drools.verifier.misc.DrlRuleParser;
-import org.drools.verifier.visitor.PackageDescrVisitor;
-
-/**
- * This is the main user class for verifier. This will use rules to validate
- * rules, caching the "knowledge base" of verifier rules.
- * 
- * @author Toni Rikkola
- */
-public class VerifierImpl
-    implements
-    Verifier {
-
-    private KnowledgeBase               verifierKnowledgeBase;
-    private StatefulKnowledgeSession    ksession;
-
-    private final VerifierConfiguration conf;
-
-    private List<VerifierError>         errors                 = new ArrayList<VerifierError>();
-
-    private VerifierReport              result                 = VerifierReportFactory.newVerifierReport();
-
-    private List<JarInputStream>        jars                   = new ArrayList<JarInputStream>();
-
-    private VerifierPackageBuilder      verifierPackageBuilder = new VerifierPackageBuilder();
-
-    public VerifierImpl(VerifierConfiguration conf) {
-        this.conf = conf;
-    }
-
-    public VerifierImpl() {
-        this.conf = new DefaultVerifierConfiguration();
-    }
-
-    public StatefulKnowledgeSession getKnowledgeSession() {
-        return ksession;
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @seeorg.drools.verifier.Verifier#addPackageDescr(org.drools.lang.descr.
-     * PackageDescr)
-     */
-    public void addPackageDescr(PackageDescr descr) {
-        try {
-
-            PackageDescrVisitor ruleFlattener = new PackageDescrVisitor( result.getVerifierData(),
-                                                                         jars );
-
-            ruleFlattener.visitPackageDescr( descr );
-
-        } catch ( Throwable t ) {
-            t.printStackTrace();
-        }
-    }
-
-    public void addObjectModel(JarInputStream jar) {
-        this.jars.add( jar );
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.drools.verifier.Verifier#reloadAnalysisKnowledgeBase()
-     */
-    public synchronized void reloadVerifierKnowledgeBase() throws Exception {
-        updateRuleBase();
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.drools.verifier.Verifier#fireAnalysis()
-     */
-    public boolean fireAnalysis() {
-        return analyse( new ScopesAgendaFilter( true,
-                                                ScopesAgendaFilter.ALL_SCOPES ) );
-    }
-
-    public boolean fireAnalysis(ScopesAgendaFilter scopesAgendaFilter) {
-        return analyse( scopesAgendaFilter );
-    }
-
-    private boolean analyse(ScopesAgendaFilter scopesAgendaFilter) {
-        try {
-
-            if ( this.verifierKnowledgeBase == null ) {
-                synchronized ( this.getClass() ) {
-                    updateRuleBase();
-                    updateKnowledgeSession();
-                }
-            }
-
-            for ( Object object : result.getVerifierData().getAll() ) {
-                ksession.insert( object );
-            }
-
-            // Object that returns the results.
-            ksession.setGlobal( "result",
-                                result );
-
-            ksession.fireAllRules( scopesAgendaFilter );
-            String test = "";
-            test = test;
-
-        } catch ( Exception e ) {
-            throw new RuntimeException( e );
-        }
-
-        return true;
-    }
-
-    public void flushKnowledgeSession() {
-        updateKnowledgeSession();
-    }
-
-    private void updateKnowledgeSession() {
-        if ( this.ksession != null ) {
-            this.ksession.dispose();
-        }
-
-        ksession = verifierKnowledgeBase.newStatefulKnowledgeSession();
-    }
-
-    /**
-     * Returns the verifier results as <code>AnalysisResult</code> object.
-     * 
-     * @return Analysis result
-     */
-    public VerifierReport getResult() {
-        return result;
-    }
-
-    private void updateRuleBase() {
-
-        VerifierKnowledgeBaseBuilder verifierKnowledgeBaseBuilder = new VerifierKnowledgeBaseBuilder();
-
-        verifierKnowledgeBase = verifierKnowledgeBaseBuilder.newVerifierKnowledgeBase( conf );
-
-        if ( verifierKnowledgeBaseBuilder.hasErrors() ) {
-            this.errors.addAll( verifierKnowledgeBaseBuilder.getErrors() );
-        }
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.drools.verifier.Verifier#dispose()
-     */
-    public void dispose() {
-        if ( ksession != null ) {
-            synchronized ( this.getClass() ) {
-                ksession.dispose();
-            }
-        }
-    }
-
-    public void addResourcesToVerify(Resource resource,
-                                     ResourceType type) {
-
-        verifierPackageBuilder.addKnowledgeResource( resource,
-                                                     type,
-                                                     null );
-
-        if ( verifierPackageBuilder.hasErrors() ) {
-            addVerifierErrors( verifierPackageBuilder.getErrors() );
-        }
-
-        PackageDescr pkg = verifierPackageBuilder.getPackageDescr();
-        if ( pkg != null ) {
-            addPackageDescr( pkg );
-
-        } else {
-            errors.add( new VerifierError( "Verifier could not form a PackageDescr from the resources that it was trying to verify." ) );
-        }
-    }
-
-    private void addVerifierErrors(PackageBuilderErrors packageBuilderErrors) {
-        for ( KnowledgeBuilderError knowledgeBuilderError : packageBuilderErrors ) {
-            errors.add( new VerifierError( knowledgeBuilderError.getMessage() ) );
-        }
-    }
-
-    /**
-     * 
-     * Adds meta data from DRL to package and rule.
-     * 
-     * @param drl Package DRL
-     */
-    private void addDrlData(String drl) {
-
-        List<DrlRuleParser> rules;
-
-        try {
-            DrlPackageParser pData = addDrlPackageData( drl );
-            rules = pData.getRules();
-        } catch ( ParseException e ) {
-            rules = DrlRuleParser.findRulesDataFromDrl( drl );
-        }
-
-        addDrlRulesData( rules );
-    }
-
-    private void addDrlRulesData(List<DrlRuleParser> rules) {
-        for ( DrlRuleParser rData : rules ) {
-            VerifierRule rule = this.result.getVerifierData().getRuleByName( rData.getName() );
-
-            if ( rule != null ) {
-                rule.getHeader().addAll( rData.getHeader() );
-                rule.getLhsRows().addAll( rData.getLhs() );
-                rule.getRhsRows().addAll( rData.getRhs() );
-                rule.setDescription( rData.getDescription() );
-                rule.getCommentMetadata().addAll( rData.getMetadata() );
-                rule.getOtherInfo().putAll( rData.getOtherInformation() );
-            }
-        }
-    }
-
-    private DrlPackageParser addDrlPackageData(String drl) throws ParseException {
-        DrlPackageParser pData = DrlPackageParser.findPackageDataFromDrl( drl );
-
-        RulePackage rPackage = this.result.getVerifierData().getPackageByName( pData.getName() );
-
-        rPackage.getGlobals().addAll( pData.getGlobals() );
-        rPackage.setDescription( pData.getDescription() );
-        rPackage.getMetadata().addAll( pData.getMetadata() );
-        rPackage.getOtherInfo().putAll( pData.getOtherInformation() );
-
-        return pData;
-    }
-
-    public List<VerifierError> getErrors() {
-        return errors;
-    }
-
-    public boolean hasErrors() {
-        return !errors.isEmpty();
-    }
-}
+/**
+ * Copyright 2010 JBoss Inc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.drools.verifier.builder;
+
+import java.text.ParseException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.jar.JarInputStream;
+
+import org.drools.KnowledgeBase;
+import org.drools.builder.KnowledgeBuilderError;
+import org.drools.builder.ResourceConfiguration;
+import org.drools.builder.ResourceType;
+import org.drools.compiler.PackageBuilderErrors;
+import org.drools.io.Resource;
+import org.drools.lang.descr.PackageDescr;
+import org.drools.runtime.StatefulKnowledgeSession;
+import org.drools.verifier.DefaultVerifierConfiguration;
+import org.drools.verifier.Verifier;
+import org.drools.verifier.VerifierConfiguration;
+import org.drools.verifier.VerifierError;
+import org.drools.verifier.components.RulePackage;
+import org.drools.verifier.components.VerifierRule;
+import org.drools.verifier.data.VerifierComponent;
+import org.drools.verifier.data.VerifierReport;
+import org.drools.verifier.data.VerifierReportFactory;
+import org.drools.verifier.misc.DrlPackageParser;
+import org.drools.verifier.misc.DrlRuleParser;
+import org.drools.verifier.visitor.PackageDescrVisitor;
+
+/**
+ * This is the main user class for verifier. This will use rules to validate
+ * rules, caching the "knowledge base" of verifier rules.
+ * 
+ * @author Toni Rikkola
+ */
+public class VerifierImpl
+    implements
+    Verifier {
+
+    private KnowledgeBase               verifierKnowledgeBase;
+    private StatefulKnowledgeSession    ksession;
+
+    private final VerifierConfiguration conf;
+
+    private List<VerifierError>         errors                 = new ArrayList<VerifierError>();
+
+    private VerifierReport              result                 = VerifierReportFactory.newVerifierReport();
+
+    private List<JarInputStream>        jars                   = new ArrayList<JarInputStream>();
+
+    private VerifierPackageBuilder      verifierPackageBuilder = new VerifierPackageBuilder();
+
+    public VerifierImpl(VerifierConfiguration conf) {
+        this.conf = conf;
+    }
+
+    public VerifierImpl() {
+        this.conf = new DefaultVerifierConfiguration();
+    }
+
+    public StatefulKnowledgeSession getKnowledgeSession() {
+        return ksession;
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @seeorg.drools.verifier.Verifier#addPackageDescr(org.drools.lang.descr.
+     * PackageDescr)
+     */
+    public void addPackageDescr(PackageDescr descr) {
+        try {
+
+            PackageDescrVisitor ruleFlattener = new PackageDescrVisitor( result.getVerifierData(),
+                                                                         jars );
+
+            ruleFlattener.visitPackageDescr( descr );
+
+        } catch ( Throwable t ) {
+            t.printStackTrace();
+        }
+    }
+
+    public void addObjectModel(JarInputStream jar) {
+        this.jars.add( jar );
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see org.drools.verifier.Verifier#reloadAnalysisKnowledgeBase()
+     */
+    public synchronized void reloadVerifierKnowledgeBase() throws Exception {
+        updateRuleBase();
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see org.drools.verifier.Verifier#fireAnalysis()
+     */
+    public boolean fireAnalysis() {
+        return analyse( new ScopesAgendaFilter( true,
+                                                ScopesAgendaFilter.ALL_SCOPES ) );
+    }
+
+    public boolean fireAnalysis(ScopesAgendaFilter scopesAgendaFilter) {
+        return analyse( scopesAgendaFilter );
+    }
+
+    private boolean analyse(ScopesAgendaFilter scopesAgendaFilter) {
+        try {
+
+            if ( this.verifierKnowledgeBase == null ) {
+                synchronized ( this.getClass() ) {
+                    updateRuleBase();
+                    updateKnowledgeSession();
+                }
+            }
+
+            for ( Object object : result.getVerifierData().getAll() ) {
+                ksession.insert( object );
+            }
+
+            // Object that returns the results.
+            ksession.setGlobal( "result",
+                                result );
+
+            ksession.fireAllRules( scopesAgendaFilter );
+            String test = "";
+            test = test;
+
+        } catch ( Exception e ) {
+            throw new RuntimeException( e );
+        }
+
+        return true;
+    }
+
+    public void flushKnowledgeSession() {
+        updateKnowledgeSession();
+    }
+
+    private void updateKnowledgeSession() {
+        if ( this.ksession != null ) {
+            this.ksession.dispose();
+        }
+
+        ksession = verifierKnowledgeBase.newStatefulKnowledgeSession();
+    }
+
+    /**
+     * Returns the verifier results as <code>AnalysisResult</code> object.
+     * 
+     * @return Analysis result
+     */
+    public VerifierReport getResult() {
+        return result;
+    }
+
+    private void updateRuleBase() {
+
+        VerifierKnowledgeBaseBuilder verifierKnowledgeBaseBuilder = new VerifierKnowledgeBaseBuilder();
+
+        verifierKnowledgeBase = verifierKnowledgeBaseBuilder.newVerifierKnowledgeBase( conf );
+
+        if ( verifierKnowledgeBaseBuilder.hasErrors() ) {
+            this.errors.addAll( verifierKnowledgeBaseBuilder.getErrors() );
+        }
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see org.drools.verifier.Verifier#dispose()
+     */
+    public void dispose() {
+        if ( ksession != null ) {
+            synchronized ( this.getClass() ) {
+                ksession.dispose();
+            }
+        }
+    }
+
+    
+    
+    public void addResourcesToVerify(Resource resource, ResourceType type,
+            ResourceConfiguration config) {
+        verifierPackageBuilder.addKnowledgeResource( resource,
+                type,
+                config );
+
+            if ( verifierPackageBuilder.hasErrors() ) {
+                addVerifierErrors( verifierPackageBuilder.getErrors() );
+            }
+
+            PackageDescr pkg = verifierPackageBuilder.getPackageDescr();
+            if ( pkg != null ) {
+                addPackageDescr( pkg );
+            } else {
+                errors.add( new VerifierError( "Verifier could not form a PackageDescr from the resources that it was trying to verify." ) );
+            }
+        
+    }
+    
+    public void addResourcesToVerify(Resource resource,
+                                     ResourceType type) {
+
+        verifierPackageBuilder.addKnowledgeResource( resource,
+                                                     type,
+                                                     null );
+
+        if ( verifierPackageBuilder.hasErrors() ) {
+            addVerifierErrors( verifierPackageBuilder.getErrors() );
+        }
+
+        PackageDescr pkg = verifierPackageBuilder.getPackageDescr();
+        if ( pkg != null ) {
+            addPackageDescr( pkg );
+
+        } else {
+            errors.add( new VerifierError( "Verifier could not form a PackageDescr from the resources that it was trying to verify." ) );
+        }
+    }
+
+    private void addVerifierErrors(PackageBuilderErrors packageBuilderErrors) {
+        for ( KnowledgeBuilderError knowledgeBuilderError : packageBuilderErrors ) {
+            errors.add( new VerifierError( knowledgeBuilderError.getMessage() ) );
+        }
+    }
+
+    /**
+     * 
+     * Adds meta data from DRL to package and rule.
+     * 
+     * @param drl Package DRL
+     */
+    private void addDrlData(String drl) {
+
+        List<DrlRuleParser> rules;
+
+        try {
+            DrlPackageParser pData = addDrlPackageData( drl );
+            rules = pData.getRules();
+        } catch ( ParseException e ) {
+            rules = DrlRuleParser.findRulesDataFromDrl( drl );
+        }
+
+        addDrlRulesData( rules );
+    }
+
+    private void addDrlRulesData(List<DrlRuleParser> rules) {
+        for ( DrlRuleParser rData : rules ) {
+            VerifierRule rule = this.result.getVerifierData().getRuleByName( rData.getName() );
+
+            if ( rule != null ) {
+                rule.getHeader().addAll( rData.getHeader() );
+                rule.getLhsRows().addAll( rData.getLhs() );
+                rule.getRhsRows().addAll( rData.getRhs() );
+                rule.setDescription( rData.getDescription() );
+                rule.getCommentMetadata().addAll( rData.getMetadata() );
+                rule.getOtherInfo().putAll( rData.getOtherInformation() );
+            }
+        }
+    }
+
+    private DrlPackageParser addDrlPackageData(String drl) throws ParseException {
+        DrlPackageParser pData = DrlPackageParser.findPackageDataFromDrl( drl );
+
+        RulePackage rPackage = this.result.getVerifierData().getPackageByName( pData.getName() );
+
+        rPackage.getGlobals().addAll( pData.getGlobals() );
+        rPackage.setDescription( pData.getDescription() );
+        rPackage.getMetadata().addAll( pData.getMetadata() );
+        rPackage.getOtherInfo().putAll( pData.getOtherInformation() );
+
+        return pData;
+    }
+
+    public List<VerifierError> getErrors() {
+        return errors;
+    }
+
+    public boolean hasErrors() {
+        return !errors.isEmpty();
+    }
+}



More information about the jboss-svn-commits mailing list