コード例 #1
0
ファイル: wrappers.py プロジェクト: jni/python-javabridge
 def __call__(self, *args):
     '''Constructors'''
     env = J.get_env()
     jconstructors = self.klass.getConstructors()
     for jconstructor in env.get_object_array_elements(jconstructors):
         constructor = J.get_constructor_wrapper(jconstructor)
         params = env.get_object_array_elements(
             constructor.getParameterTypes())
         is_var_args = J.call(constructor.o, "isVarArgs", "()Z")
         if len(args) < len(params) - (1 if is_var_args else 0):
             continue
         if len(args) > len(params) and not is_var_args:
             continue
         if is_var_args:
             pm1 = len(params)-1
             args1 = args[:pm1] + [args[pm1:]]
         else:
             args1 = args
         try:
             cargs = [cast(o, klass) for o, klass in zip(args1, params)]
         except:
             last_e = sys.exc_info()[1]
             continue
         args_sig = "".join(map(sig, params))
         msig = "(%s)V" % (args_sig)
         result =  J.make_instance(self.cname, msig, *cargs)
         result = JWrapper(result)
         return result
     raise TypeError("No matching constructor found")
コード例 #2
0
 def __call__(self, *args):
     '''Constructors'''
     env = J.get_env()
     jconstructors = self.klass.getConstructors()
     for jconstructor in env.get_object_array_elements(jconstructors):
         constructor = J.get_constructor_wrapper(jconstructor)
         params = env.get_object_array_elements(
             constructor.getParameterTypes())
         is_var_args = J.call(constructor.o, "isVarArgs", "()Z")
         if len(args) < len(params) - (1 if is_var_args else 0):
             continue
         if len(args) > len(params) and not is_var_args:
             continue
         if is_var_args:
             pm1 = len(params) - 1
             args1 = args[:pm1] + [args[pm1:]]
         else:
             args1 = args
         try:
             cargs = [cast(o, klass) for o, klass in zip(args1, params)]
         except:
             last_e = sys.exc_info()[1]
             continue
         args_sig = "".join(map(sig, params))
         msig = "(%s)V" % (args_sig)
         result = J.make_instance(self.cname, msig, *cargs)
         result = JWrapper(result)
         return result
     raise TypeError("No matching constructor found")
コード例 #3
0
ファイル: macros.py プロジェクト: cdeepakroy/CellProfiler
def get_plugin(classname):
    '''Return an instance of the named plugin'''
    if classname.startswith("ij."):
        cls = J.class_for_name(classname)
    else:
        cls = J.class_for_name(classname, get_user_loader())
    cls = J.get_class_wrapper(cls, True)
    constructor = J.get_constructor_wrapper(cls.getConstructor(None))
    return constructor.newInstance(None)