Package sc.lang

Class DynObject

    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addProperty​(java.lang.Object propType, java.lang.String propName, java.lang.Object initValue)  
      static java.lang.Object create​(boolean doInit, java.lang.String typeName, java.lang.Object outerObj, java.lang.String constructorSig, java.lang.Object... args)  
      static java.lang.Object create​(boolean doInit, TypeDeclaration dynType, java.lang.Object outerObj, java.lang.String constructorSig, java.lang.Object... args)  
      static java.lang.Object create​(java.lang.String typeName, java.lang.Object outerObj, java.lang.String constructorSig, java.lang.Object... args)  
      static java.lang.Object create​(java.lang.String typeName, java.lang.String constructorSig, java.lang.Object... args)  
      static java.lang.Object create​(TypeDeclaration dynType, java.lang.Object outerObj, java.lang.String constructorSig, java.lang.Object... args)  
      static java.lang.Object create​(TypeDeclaration dynType, java.lang.String constructorSig, java.lang.Object... args)  
      static java.lang.Object createCompiled​(boolean doInit, TypeDeclaration dynType, java.lang.Object outerObj, java.lang.String constructorSig, java.lang.Object... args)  
      static java.lang.Object createVirtual​(boolean doInit, java.lang.String typeName, java.lang.Object outerObj, java.lang.String constructorSig, java.lang.Object... args)  
      static java.lang.Object createVirtual​(java.lang.String typeName, java.lang.Object outerObj, java.lang.String constructorSig, java.lang.Object... args)
      When generating getX inner object methods in dynamic stubs, to allow these to be overridden without adding a new getX method to a modifyInherited type, look up the most specific version of the dype for the given instance.
      BodyTypeDeclaration getDynType()  
      static java.lang.Object getParentInstance​(java.lang.Object srcObj)  
      java.lang.Object getProperty​(int propIndex, boolean getField)  
      java.lang.Object getProperty​(java.lang.String propName, boolean getField)  
      java.lang.Object getPropertyFromWrapper​(IDynObject origObj, int propIndex, boolean getField)  
      java.lang.Object getPropertyFromWrapper​(IDynObject origObj, java.lang.String propName, boolean getField)  
      static java.lang.Object getStaticProperty​(java.lang.String typeName, java.lang.String propName)  
      static TypeDeclaration getType​(java.lang.String typeName)  
      <T> T getTypedProperty​(java.lang.String propName, java.lang.Class<T> propType)  
      static <T> T getTypedStaticProperty​(java.lang.String typeName, java.lang.String propName, java.lang.Class<T> valClass)  
      boolean hasDynObject()  
      java.lang.Object invoke​(int methodIndex, java.lang.Object... args)  
      java.lang.Object invoke​(java.lang.String methodName, java.lang.String paramSig, java.lang.Object... args)  
      java.lang.Object invokeFromWrapper​(java.lang.Object origObj, int methodIndex, java.lang.Object... args)  
      java.lang.Object invokeFromWrapper​(java.lang.Object origObj, java.lang.String methodName, java.lang.String paramSig, java.lang.Object... args)  
      static java.lang.Object invokeInst​(java.lang.Object inst, java.lang.String methodName, java.lang.String paramSig, java.lang.Object... args)  
      static java.lang.Object invokeStatic​(java.lang.String typeName, java.lang.String methodName, java.lang.String paramSig, java.lang.Object... args)  
      static <T> T resolveName​(java.lang.String typeName, java.lang.Class<T> valClass)  
      void setDynType​(java.lang.Object typeObj)  
      void setLazyInitProperty​(int index)  
      void setProperty​(int propIndex, java.lang.Object value, boolean setField)  
      void setProperty​(java.lang.String propName, java.lang.Object value, boolean setField)  
      void setPropertyFromWrapper​(java.lang.Object origObj, java.lang.String propName, java.lang.Object value, boolean setField)  
      static void setStaticProperty​(java.lang.String typeName, java.lang.String propName, java.lang.Object value)  
      static void setStaticProperty​(TypeDeclaration dynType, java.lang.String propName, java.lang.Object value)  
      void setTypeFromWrapper​(java.lang.Object thisObj, java.lang.Object typeObj)  
      java.lang.String toString()  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • lazyInitSentinel

        public static final java.lang.String lazyInitSentinel
      • OUTER_INSTANCE_SLOT

        public static final int OUTER_INSTANCE_SLOT
        Index of the slot reserved for storing the enclosing instance
        See Also:
        Constant Field Values
    • Method Detail

      • getProperty

        public java.lang.Object getProperty​(java.lang.String propName,
                                            boolean getField)
        Specified by:
        getProperty in interface IDynObject
      • getProperty

        public java.lang.Object getProperty​(int propIndex,
                                            boolean getField)
        Specified by:
        getProperty in interface IDynObject
      • setLazyInitProperty

        public void setLazyInitProperty​(int index)
      • getTypedProperty

        public <T> T getTypedProperty​(java.lang.String propName,
                                      java.lang.Class<T> propType)
        Specified by:
        getTypedProperty in interface IDynObject
      • setPropertyFromWrapper

        public void setPropertyFromWrapper​(java.lang.Object origObj,
                                           java.lang.String propName,
                                           java.lang.Object value,
                                           boolean setField)
        Specified by:
        setPropertyFromWrapper in interface IDynSupport
      • setProperty

        public void setProperty​(java.lang.String propName,
                                java.lang.Object value,
                                boolean setField)
        Specified by:
        setProperty in interface IDynObject
      • setProperty

        public void setProperty​(int propIndex,
                                java.lang.Object value,
                                boolean setField)
        Specified by:
        setProperty in interface IDynObject
      • setStaticProperty

        public static void setStaticProperty​(java.lang.String typeName,
                                             java.lang.String propName,
                                             java.lang.Object value)
      • setStaticProperty

        public static void setStaticProperty​(TypeDeclaration dynType,
                                             java.lang.String propName,
                                             java.lang.Object value)
      • getStaticProperty

        public static java.lang.Object getStaticProperty​(java.lang.String typeName,
                                                         java.lang.String propName)
      • getTypedStaticProperty

        public static <T> T getTypedStaticProperty​(java.lang.String typeName,
                                                   java.lang.String propName,
                                                   java.lang.Class<T> valClass)
      • resolveName

        public static <T> T resolveName​(java.lang.String typeName,
                                        java.lang.Class<T> valClass)
      • getType

        public static TypeDeclaration getType​(java.lang.String typeName)
      • addProperty

        public void addProperty​(java.lang.Object propType,
                                java.lang.String propName,
                                java.lang.Object initValue)
        Specified by:
        addProperty in interface IDynObject
      • create

        public static java.lang.Object create​(TypeDeclaration dynType,
                                              java.lang.String constructorSig,
                                              java.lang.Object... args)
      • create

        public static java.lang.Object create​(TypeDeclaration dynType,
                                              java.lang.Object outerObj,
                                              java.lang.String constructorSig,
                                              java.lang.Object... args)
      • create

        public static java.lang.Object create​(boolean doInit,
                                              TypeDeclaration dynType,
                                              java.lang.Object outerObj,
                                              java.lang.String constructorSig,
                                              java.lang.Object... args)
      • createCompiled

        public static java.lang.Object createCompiled​(boolean doInit,
                                                      TypeDeclaration dynType,
                                                      java.lang.Object outerObj,
                                                      java.lang.String constructorSig,
                                                      java.lang.Object... args)
      • create

        public static java.lang.Object create​(java.lang.String typeName,
                                              java.lang.String constructorSig,
                                              java.lang.Object... args)
      • create

        public static java.lang.Object create​(java.lang.String typeName,
                                              java.lang.Object outerObj,
                                              java.lang.String constructorSig,
                                              java.lang.Object... args)
      • createVirtual

        public static java.lang.Object createVirtual​(java.lang.String typeName,
                                                     java.lang.Object outerObj,
                                                     java.lang.String constructorSig,
                                                     java.lang.Object... args)
        When generating getX inner object methods in dynamic stubs, to allow these to be overridden without adding a new getX method to a modifyInherited type, look up the most specific version of the dype for the given instance. I think this is a little bit of runtime overhead but avoids a lot of changing the compiled definition.
      • createVirtual

        public static java.lang.Object createVirtual​(boolean doInit,
                                                     java.lang.String typeName,
                                                     java.lang.Object outerObj,
                                                     java.lang.String constructorSig,
                                                     java.lang.Object... args)
      • create

        public static java.lang.Object create​(boolean doInit,
                                              java.lang.String typeName,
                                              java.lang.Object outerObj,
                                              java.lang.String constructorSig,
                                              java.lang.Object... args)
      • invokeFromWrapper

        public java.lang.Object invokeFromWrapper​(java.lang.Object origObj,
                                                  java.lang.String methodName,
                                                  java.lang.String paramSig,
                                                  java.lang.Object... args)
      • invokeFromWrapper

        public java.lang.Object invokeFromWrapper​(java.lang.Object origObj,
                                                  int methodIndex,
                                                  java.lang.Object... args)
      • invoke

        public java.lang.Object invoke​(java.lang.String methodName,
                                       java.lang.String paramSig,
                                       java.lang.Object... args)
        Specified by:
        invoke in interface IDynObject
      • invoke

        public java.lang.Object invoke​(int methodIndex,
                                       java.lang.Object... args)
        Specified by:
        invoke in interface IDynObject
      • invokeInst

        public static java.lang.Object invokeInst​(java.lang.Object inst,
                                                  java.lang.String methodName,
                                                  java.lang.String paramSig,
                                                  java.lang.Object... args)
      • invokeStatic

        public static java.lang.Object invokeStatic​(java.lang.String typeName,
                                                    java.lang.String methodName,
                                                    java.lang.String paramSig,
                                                    java.lang.Object... args)
      • toString

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

        public static java.lang.Object getParentInstance​(java.lang.Object srcObj)
      • setDynType

        public void setDynType​(java.lang.Object typeObj)
        Specified by:
        setDynType in interface IDynObject
      • setTypeFromWrapper

        public void setTypeFromWrapper​(java.lang.Object thisObj,
                                       java.lang.Object typeObj)