private void getLobFromLocator ( CodeAssembler a , StorablePropertyInfo info ) { if ( ! info . isLob ( ) ) { throw new IllegalArgumentException ( ) ; } TypeDesc type = info . getStorageType ( ) ; String name ; if ( Blob . class . isAssignableFrom ( type . toClass ( ) ) ) { name = "getBlob" ; } else if ( Clob . class . isAssignableFrom ( type . toClass ( ) ) ) { name = "getClob" ; } else { throw new IllegalArgumentException ( ) ; } a . invokeInterface ( TypeDesc . forClass ( RawSupport . class ) , name , type , new TypeDesc [ ] { TypeDesc . forClass ( Storable . class ) , TypeDesc . STRING , TypeDesc . LONG } ) ; }
Generates code to get a Lob from a locator from RawSupport . RawSupport instance Storable instance property name and long locator must be on the stack . Result is a Lob on the stack which may be null .