コード例 #1
0
ファイル: reflected_string.py プロジェクト: 0xr0ot/drozer
 def __init__(self, native, *args, **kwargs):
     ReflectedType.__init__(self, *args, **kwargs)
     
     try:
         self._native = native.decode("utf-8")
     except UnicodeError:
         self._native = native
コード例 #2
0
    def __init__(self, ref, *args, **kwargs):
        ReflectedType.__init__(self, *args, **kwargs)

        self._ref = ref
        self._class = None
        self._field_names = set()
        self._not_field_names = set(['_ref', 'getField'])
コード例 #3
0
    def __init__(self, native, *args, **kwargs):
        ReflectedType.__init__(self, *args, **kwargs)

        try:
            self._native = native.decode("utf-8")
        except UnicodeError:
            self._native = native
コード例 #4
0
ファイル: reflected_object.py プロジェクト: 0xr0ot/drozer
    def __init__(self, ref, *args, **kwargs):
        ReflectedType.__init__(self, *args, **kwargs)

        self._ref = ref
        self._class = None
        self._field_names = set()
        self._not_field_names = set(['_ref', 'getField'])
コード例 #5
0
ファイル: reflected_object.py プロジェクト: 0xr0ot/drozer
    def __setattr__(self, attr, value):
        if attr.startswith('_'):
            object.__setattr__(self, attr, value)
            return

        if attr in self._field_names:
            return self._reflector.setProperty(self, attr, ReflectedType.fromNative(value, reflector=self._reflector))

        if attr not in self._not_field_names:
            try:
                return self._reflector.setProperty(self, attr, ReflectedType.fromNative(value, reflector=self._reflector))
            except ReflectionException:
                self._not_field_names.add(attr)
コード例 #6
0
    def _pb(self):
        """
        Get an Argument representation of the Array, as defined in the drozer
        protocol.
        """

        argument = Message.Argument(type=Message.Argument.ARRAY)

        if self._native[0]._pb().type == Message.Argument.ARRAY:
            argument.array.type = Message.Array.ARRAY
        elif self._native[0]._pb().type == Message.Argument.NULL:
            argument.array.type = Message.Array.OBJECT
        elif self._native[0]._pb().type == Message.Argument.OBJECT:
            argument.array.type = Message.Array.OBJECT
        elif self._native[0]._pb().type == Message.Argument.STRING:
            argument.array.type = Message.Array.STRING
        elif self._native[0]._pb().type == Message.Argument.PRIMITIVE:
            argument.array.type = Message.Array.PRIMITIVE

        for e in self._native:
            element = argument.array.element.add()
            element.MergeFrom(
                ReflectedType.fromNative(e, reflector=self._reflector)._pb())

        return argument
コード例 #7
0
    def __setattr__(self, attr, value):
        if attr.startswith('_'):
            object.__setattr__(self, attr, value)
            return

        if attr in self._field_names:
            return self._reflector.setProperty(
                self, attr,
                ReflectedType.fromNative(value, reflector=self._reflector))

        if attr not in self._not_field_names:
            try:
                return self._reflector.setProperty(
                    self, attr,
                    ReflectedType.fromNative(value, reflector=self._reflector))
            except ReflectionException:
                self._not_field_names.add(attr)
コード例 #8
0
ファイル: base.py プロジェクト: LeadroyaL/drozer-py3
    def arg(self, native, obj_type=None):
        """
        Utility method to build a ReflectedType from a native value.

        This should be used to force an object to assume a particular data type
        in Java.
        """

        return ReflectedType.fromNative(native, reflector=self.reflector, obj_type=obj_type)
コード例 #9
0
ファイル: reflected_object.py プロジェクト: 0xr0ot/drozer
    def _invoker(self, method_name, *args, **kwargs):
        """
        Invokes methods on the object, in the Java VM, proxying through the
        reflector's invoke() method.
        """

        result = self._reflector.invoke(self, method_name, *map(lambda arg: ReflectedType.fromNative(arg, reflector=self._reflector), args), **kwargs)

        return result
コード例 #10
0
    def fromArgument(cls, argument, reflector):
        """
        Builds a new ReflectedArray, given an Argument as defined in the drozer
        protocol that contains an Array.
        """

        array = []

        for element in argument.array.element:
            array.append(ReflectedType.fromArgument(element, reflector))

        return ReflectedArray(array, reflector=reflector)
コード例 #11
0
ファイル: reflected_array.py プロジェクト: 0xr0ot/drozer
    def fromArgument(cls, argument, reflector):
        """
        Builds a new ReflectedArray, given an Argument as defined in the drozer
        protocol that contains an Array.
        """

        array = []

        for element in argument.array.element:
            array.append(ReflectedType.fromArgument(element, reflector))

        return ReflectedArray(array, reflector=reflector)
コード例 #12
0
    def _invoker(self, method_name, *args, **kwargs):
        """
        Invokes methods on the object, in the Java VM, proxying through the
        reflector's invoke() method.
        """

        result = self._reflector.invoke(
            self, method_name,
            *map(
                lambda arg: ReflectedType.fromNative(
                    arg, reflector=self._reflector), args), **kwargs)

        return result
コード例 #13
0
    def __validateAndConvert(self, objects):
        """
        A utility method to help build a ReflectedArray from a collection of
        other objects.

        This enforces some validation, such as checking that all objects in an
        array are of consistent type.
        """

        if not hasattr(objects, '__iter__'):
            raise TypeError("objects is not iterable")

        list_type = None

        for obj in objects:
            if not list_type:
                list_type = type(obj)
            else:
                if type(obj) != list_type:
                    raise TypeError("mismatched array element types")

            yield ReflectedType.fromNative(obj, self._reflector)
コード例 #14
0
ファイル: reflected_array.py プロジェクト: 0xr0ot/drozer
    def __validateAndConvert(self, objects):
        """
        A utility method to help build a ReflectedArray from a collection of
        other objects.

        This enforces some validation, such as checking that all objects in an
        array are of consistent type.
        """

        if not hasattr(objects, '__iter__'):
            raise TypeError("objects is not iterable")

        list_type = None

        for obj in objects:
            if not list_type:
                list_type = type(obj)
            else:
                if type(obj) != list_type:
                    raise TypeError("mismatched array element types")

            yield ReflectedType.fromNative(obj, self._reflector)
コード例 #15
0
ファイル: reflected_array.py プロジェクト: 0xr0ot/drozer
    def _pb(self):
        """
        Get an Argument representation of the Array, as defined in the drozer
        protocol.
        """

        argument = Message.Argument(type=Message.Argument.ARRAY)

        if self._native[0]._pb().type == Message.Argument.ARRAY:
            argument.array.type = Message.Array.ARRAY
        elif self._native[0]._pb().type == Message.Argument.NULL:
            argument.array.type = Message.Array.OBJECT
        elif self._native[0]._pb().type == Message.Argument.OBJECT:
            argument.array.type = Message.Array.OBJECT
        elif self._native[0]._pb().type == Message.Argument.STRING:
            argument.array.type = Message.Array.STRING
        elif self._native[0]._pb().type == Message.Argument.PRIMITIVE:
            argument.array.type = Message.Array.PRIMITIVE

        for e in self._native:
            element = argument.array.element.add()
            element.MergeFrom(ReflectedType.fromNative(e, reflector=self._reflector)._pb())

        return argument
コード例 #16
0
ファイル: reflected_null.py プロジェクト: 4cce1er/drozer-py3
 def __eq__(self, other):
     if (other == None):
         return True
     else:
         return ReflectedType.__eq__(self, other)
コード例 #17
0
ファイル: reflected_primitive.py プロジェクト: 0xr0ot/drozer
    def __init__(self, primitive_type, native, *args, **kwargs):
        ReflectedType.__init__(self, *args, **kwargs)

        self._type = primitive_type
        self._native = native
コード例 #18
0
ファイル: reflected_null.py プロジェクト: 0xr0ot/drozer
 def __ne__(self, other):
     if(other == None):
         return False
     else:
         return ReflectedType.__ne__(self, other)
コード例 #19
0
ファイル: reflected_null.py プロジェクト: 0xr0ot/drozer
 def __eq__(self, other):
     if(other == None):
         return True
     else:
         return ReflectedType.__eq__(self, other)
コード例 #20
0
    def append(self, obj):
        self._native.append(ReflectedType.fromNative(obj, self._reflector))

        return self
コード例 #21
0
ファイル: reflected_array.py プロジェクト: 0xr0ot/drozer
    def append(self, obj):
        self._native.append(ReflectedType.fromNative(obj, self._reflector))

        return self
コード例 #22
0
ファイル: reflected_binary.py プロジェクト: amarekano/drozer
 def __init__(self, native, *args, **kwargs):
     ReflectedType.__init__(self, *args, **kwargs)
     
     self._native = native
コード例 #23
0
    def __init__(self, native, *args, **kwargs):
        ReflectedType.__init__(self, *args, **kwargs)

        self._native = native
コード例 #24
0
ファイル: reflected_array.py プロジェクト: 0xr0ot/drozer
 def __setitem__(self, index, obj):
     self._native[index] = ReflectedType.fromNative(obj, self._reflector)
コード例 #25
0
    def __init__(self, primitive_type, native, *args, **kwargs):
        ReflectedType.__init__(self, *args, **kwargs)

        self._type = primitive_type
        self._native = native
コード例 #26
0
 def insert(self, i, obj):
     self._native.insert(i, ReflectedType.fromNative(obj, self._reflector))
コード例 #27
0
ファイル: reflected_null.py プロジェクト: 4cce1er/drozer-py3
 def __ne__(self, other):
     if (other == None):
         return False
     else:
         return ReflectedType.__ne__(self, other)
コード例 #28
0
ファイル: reflected_array.py プロジェクト: 0xr0ot/drozer
 def insert(self, i, obj):
     self._native.insert(i, ReflectedType.fromNative(obj, self._reflector))
コード例 #29
0
ファイル: reflected_array.py プロジェクト: 0xr0ot/drozer
    def __init__(self, objects, *args, **kwargs):
        ReflectedType.__init__(self, *args, **kwargs)

        self._native = list(self.__validateAndConvert(objects))
コード例 #30
0
    def __init__(self, objects, *args, **kwargs):
        ReflectedType.__init__(self, *args, **kwargs)

        self._native = list(self.__validateAndConvert(objects))
コード例 #31
0
 def __setitem__(self, index, obj):
     self._native[index] = ReflectedType.fromNative(obj, self._reflector)