def query(self, uri, projection=None, selection=None, selectionArgs=None, sortOrder=None): """ Query a database-backed content provider, with an optional projection, filter conditions and sort order. """ client = self.__get_client(uri) if client == None: raise ReflectionException( "Could not get a ContentProviderClient for %s." % uri) cursor = None try: cursor = client.query(self.parseUri(uri), projection, selection, selectionArgs, sortOrder) except ReflectionException as e: if e.message.startswith("Unknown Exception"): raise ReflectionException("Could not query %s." % uri) else: raise self.__release(client) return cursor
def deleteAll(self): """ Removes all objects stored in the remote ObjectStore. """ response = self.sendAndReceive(ReflectionRequestFactory.deleteAll()) if response is None: raise ReflectionException("expected a response to DELETE_ALL") elif response.reflection_response.status == Message.ReflectionResponse.SUCCESS: return True else: raise ReflectionException( response.reflection_response.errormessage)
def read(self, uri): """ Read a file from a file-system-based content provider. """ client = self.__get_client(uri) if self.__must_release_client: fd = None if client != None: try: fd = client.openFile(self.parseUri(uri), "r") except ReflectionException as e: if e.message.startswith("Unknown Exception"): raise ReflectionException( "Could not read from %s." % uri) else: raise self.__release(client) if fd != None: ByteStreamReader = self.__module.loadClass( "common/ByteStreamReader.apk", "ByteStreamReader") return str( ByteStreamReader.read( self.__module.new("java.io.FileInputStream", fd.getFileDescriptor()))) else: return None else: return self.__content_resolver.openInputStream( self.parseUri(uri))
def getProperty(self, robj, property_name): """ Reads a property from an object, and returns the value. """ response = self.sendAndReceive( ReflectionRequestFactory.getProperty(robj._ref, property_name)) if response is None: raise ReflectionException("expected a response to GET_PROPERTY") elif response.reflection_response.status == Message.ReflectionResponse.SUCCESS: return ReflectedType.fromArgument( response.reflection_response.result, reflector=self) else: raise ReflectionException( response.reflection_response.errormessage)
def setProperty(self, robj, property_name, value): """ Sets a property on an object to a given value. """ response = self.sendAndReceive( ReflectionRequestFactory.setProperty(robj._ref, property_name, value)) if response is None: raise ReflectionException("expected a response to SET_PROPERTY") elif response.reflection_response.status == Message.ReflectionResponse.SUCCESS: return response else: raise ReflectionException( response.reflection_response.errormessage)
def resolve(self, class_name): """ Resolves a Java class, given its fully qualified name, and returns a ReflectedObject that can be used to instantiate it with #construct. """ response = self.sendAndReceive( ReflectionRequestFactory.resolve(class_name)) if response is None: raise ReflectionException("expected a response to RESOLVE") elif response.reflection_response.status == Message.ReflectionResponse.SUCCESS: return ReflectedType.fromArgument( response.reflection_response.result, reflector=self) else: raise ReflectionException( response.reflection_response.errormessage)
def invoke(self, robj, method, *args): """ Invokes a method on an object, and returns the return value. """ response = self.sendAndReceive( ReflectionRequestFactory.invoke(robj._ref, method).setArguments(args)) if response is None: raise ReflectionException("expected a response to INVOKE") elif response.reflection_response.status == Message.ReflectionResponse.SUCCESS: return ReflectedType.fromArgument( response.reflection_response.result, reflector=self) else: raise ReflectionException( response.reflection_response.errormessage)
def construct(self, robj, *args): """ Constructs a new instance of a class, with optional arguments, and returns the object instance. """ response = self.sendAndReceive( ReflectionRequestFactory.construct(robj._ref).setArguments(args)) if response is None: raise ReflectionException("expected a response to CONSTRUCT") elif response.reflection_response.status == Message.ReflectionResponse.SUCCESS: return ReflectedType.fromArgument( response.reflection_response.result, reflector=self) else: raise ReflectionException( response.reflection_response.errormessage)
def insert(self, uri, contentValues): """ Insert contentValues into a content provider. """ client = self.__get_client(uri) return_val = None try: return_val = client.insert(self.parseUri(uri), contentValues) except ReflectionException as e: if e.message.startswith("Unknown Exception"): raise ReflectionException("Could not insert into %s." % uri) else: raise self.__release(client) return return_val
def update(self, uri, contentValues, selection, selectionArgs): """ Update records in a content provider with contentValues. """ client = self.__get_client(uri) return_val = None try: return_val = client.update(self.parseUri(uri), contentValues, selection, selectionArgs) except ReflectionException as e: if e.message.startswith("Unknown Exception"): raise ReflectionException("Could not update %s." % uri) else: raise self.__release(client) return return_val
def delete(self, uri, selection, selectionArgs): """ Delete from a content provider, given filter conditions. """ client = self.__get_client(uri) return_val = None try: return_val = client.delete(self.parseUri(uri), selection, selectionArgs) except ReflectionException as e: if e.message.startswith("Unknown Exception"): raise ReflectionException("Could not delete from %s." % uri) else: raise self.__release(client) return return_val