Exemplo n.º 1
0
        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
Exemplo n.º 2
0
    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)
Exemplo n.º 3
0
        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))
Exemplo n.º 4
0
    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)
Exemplo n.º 5
0
    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)
Exemplo n.º 6
0
    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)
Exemplo n.º 7
0
    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)
Exemplo n.º 8
0
    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)
Exemplo n.º 9
0
        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
Exemplo n.º 10
0
        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
Exemplo n.º 11
0
        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