stx/support.py
author Jan Vrany <jan.vrany@fit.cvut.cz>
Fri, 19 Jun 2015 08:46:40 +0100
changeset 5 370848e6fc80
parent 2 ef575a931434
permissions -rw-r--r--
Fixes in tapsets and tapscripts for Java

import types

class Decorator ( object ):
    '''
    Generic decorator class
    '''

    _obj = None

    def __init__ ( self , obj ):
        object.__setattr__(self, "_obj", obj)

    def target(self):
        return self._obj
    
    def __getattr__(self, aname):
        target = self._obj
        f = getattr(target, aname)
        if isinstance(f, types.MethodType):
            # Rebind the method to the target.
            return new.instancemethod(f.im_func, self, target.__class__)
        else:
            return f

    def __repr__( self ):
        return "[" +str(self.__class__) + ' : ' + self._obj.__repr__() + "]"