Class JavaDialectRuntimeData

  • All Implemented Interfaces:
    java.io.Externalizable, java.io.Serializable, java.lang.Cloneable, org.drools.base.rule.DialectRuntimeData

    public class JavaDialectRuntimeData
    extends java.lang.Object
    implements org.drools.base.rule.DialectRuntimeData, java.io.Externalizable
    See Also:
    Serialized Form
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      org.drools.base.rule.DialectRuntimeData clone​(org.drools.base.rule.DialectRuntimeRegistry registry, java.lang.ClassLoader rootClassLoader)  
      org.drools.base.rule.DialectRuntimeData clone​(org.drools.base.rule.DialectRuntimeRegistry registry, java.lang.ClassLoader rootClassLoader, boolean excludeClasses)  
      byte[] getBytecode​(java.lang.String resourceName)  
      byte[] getClassDefinition​(java.lang.String className)  
      java.lang.ClassLoader getClassLoader()  
      java.lang.ClassLoader getRootClassLoader()  
      java.util.Map<java.lang.String,​byte[]> getStore()  
      boolean isDirty()  
      void merge​(org.drools.base.rule.DialectRuntimeRegistry registry, org.drools.base.rule.DialectRuntimeData newData)  
      void merge​(org.drools.base.rule.DialectRuntimeRegistry registry, org.drools.base.rule.DialectRuntimeData newData, boolean excludeClasses)  
      void onAdd​(org.drools.base.rule.DialectRuntimeRegistry registry, java.lang.ClassLoader rootClassLoader)  
      void onBeforeExecute()  
      void onRemove()  
      void putAllClassDefinitions​(java.util.Map classDefinitions)  
      void putAllInvokers​(java.util.Map<java.lang.String,​org.drools.base.rule.accessor.Wireable> invokers)  
      void putClassDefinition​(java.lang.String className, byte[] classDef)  
      void putInvoker​(java.lang.String className, org.drools.base.rule.accessor.Wireable invoker)  
      byte[] read​(java.lang.String resourceName)  
      void readExternal​(java.io.ObjectInput stream)
      Handles the read serialization of the PackageCompilationData.
      void reload()
      This class drops the classLoader and reloads it.
      boolean remove​(java.lang.String resourceName)  
      void removeFunction​(org.drools.base.definitions.impl.KnowledgePackageImpl pkg, org.drools.base.rule.Function function)  
      void removeRule​(org.drools.base.definitions.impl.KnowledgePackageImpl pkg, org.drools.base.definitions.rule.impl.RuleImpl rule)  
      void setDirty​(boolean dirty)  
      java.lang.String toString()  
      void write​(java.lang.String resourceName, byte[] clazzData)  
      void writeExternal​(java.io.ObjectOutput stream)
      Handles the write serialization of the PackageCompilationData.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface org.drools.base.rule.DialectRuntimeData

        compile, resetParserConfiguration
    • Constructor Detail

      • JavaDialectRuntimeData

        public JavaDialectRuntimeData()
    • Method Detail

      • writeExternal

        public void writeExternal​(java.io.ObjectOutput stream)
                           throws java.io.IOException
        Handles the write serialization of the PackageCompilationData. Patterns in Rules may reference generated data which cannot be serialized by default methods. The PackageCompilationData holds a reference to the generated bytecode. The generated bytecode must be restored before any Rules.
        Specified by:
        writeExternal in interface java.io.Externalizable
        Throws:
        java.io.IOException
      • readExternal

        public void readExternal​(java.io.ObjectInput stream)
                          throws java.io.IOException,
                                 java.lang.ClassNotFoundException
        Handles the read serialization of the PackageCompilationData. Patterns in Rules may reference generated data which cannot be serialized by default methods. The PackageCompilationData holds a reference to the generated bytecode; which must be restored before any Rules. A custom ObjectInputStream, able to resolve classes against the bytecode, is used to restore the Rules.
        Specified by:
        readExternal in interface java.io.Externalizable
        Throws:
        java.io.IOException
        java.lang.ClassNotFoundException
      • onAdd

        public void onAdd​(org.drools.base.rule.DialectRuntimeRegistry registry,
                          java.lang.ClassLoader rootClassLoader)
        Specified by:
        onAdd in interface org.drools.base.rule.DialectRuntimeData
      • onRemove

        public void onRemove()
        Specified by:
        onRemove in interface org.drools.base.rule.DialectRuntimeData
      • onBeforeExecute

        public void onBeforeExecute()
        Specified by:
        onBeforeExecute in interface org.drools.base.rule.DialectRuntimeData
      • clone

        public org.drools.base.rule.DialectRuntimeData clone​(org.drools.base.rule.DialectRuntimeRegistry registry,
                                                             java.lang.ClassLoader rootClassLoader)
        Specified by:
        clone in interface org.drools.base.rule.DialectRuntimeData
      • clone

        public org.drools.base.rule.DialectRuntimeData clone​(org.drools.base.rule.DialectRuntimeRegistry registry,
                                                             java.lang.ClassLoader rootClassLoader,
                                                             boolean excludeClasses)
        Specified by:
        clone in interface org.drools.base.rule.DialectRuntimeData
      • merge

        public void merge​(org.drools.base.rule.DialectRuntimeRegistry registry,
                          org.drools.base.rule.DialectRuntimeData newData)
        Specified by:
        merge in interface org.drools.base.rule.DialectRuntimeData
      • merge

        public void merge​(org.drools.base.rule.DialectRuntimeRegistry registry,
                          org.drools.base.rule.DialectRuntimeData newData,
                          boolean excludeClasses)
        Specified by:
        merge in interface org.drools.base.rule.DialectRuntimeData
      • isDirty

        public boolean isDirty()
        Specified by:
        isDirty in interface org.drools.base.rule.DialectRuntimeData
      • setDirty

        public void setDirty​(boolean dirty)
        Specified by:
        setDirty in interface org.drools.base.rule.DialectRuntimeData
      • getStore

        public java.util.Map<java.lang.String,​byte[]> getStore()
      • getBytecode

        public byte[] getBytecode​(java.lang.String resourceName)
      • getClassLoader

        public java.lang.ClassLoader getClassLoader()
        Specified by:
        getClassLoader in interface org.drools.base.rule.DialectRuntimeData
      • getRootClassLoader

        public java.lang.ClassLoader getRootClassLoader()
        Specified by:
        getRootClassLoader in interface org.drools.base.rule.DialectRuntimeData
      • removeRule

        public void removeRule​(org.drools.base.definitions.impl.KnowledgePackageImpl pkg,
                               org.drools.base.definitions.rule.impl.RuleImpl rule)
        Specified by:
        removeRule in interface org.drools.base.rule.DialectRuntimeData
      • removeFunction

        public void removeFunction​(org.drools.base.definitions.impl.KnowledgePackageImpl pkg,
                                   org.drools.base.rule.Function function)
        Specified by:
        removeFunction in interface org.drools.base.rule.DialectRuntimeData
      • read

        public byte[] read​(java.lang.String resourceName)
      • write

        public void write​(java.lang.String resourceName,
                          byte[] clazzData)
      • remove

        public boolean remove​(java.lang.String resourceName)
        Specified by:
        remove in interface org.drools.base.rule.DialectRuntimeData
      • reload

        public void reload()
        This class drops the classLoader and reloads it. During this process it must re-wire all the invokeables.
        Specified by:
        reload in interface org.drools.base.rule.DialectRuntimeData
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • putInvoker

        public void putInvoker​(java.lang.String className,
                               org.drools.base.rule.accessor.Wireable invoker)
      • putAllInvokers

        public void putAllInvokers​(java.util.Map<java.lang.String,​org.drools.base.rule.accessor.Wireable> invokers)
      • putClassDefinition

        public void putClassDefinition​(java.lang.String className,
                                       byte[] classDef)
      • putAllClassDefinitions

        public void putAllClassDefinitions​(java.util.Map classDefinitions)
      • getClassDefinition

        public byte[] getClassDefinition​(java.lang.String className)