package org.python.core; public class PyClassMethod extends PyObject implements PyType.Newstyle { // xxx __init__ //~ BEGIN GENERATED REGION -- DO NOT EDIT SEE gexpose.py /* type info */ public static final String exposed_name="classmethod"; public static void typeSetup(PyObject dict,PyType.Newstyle marker) { class exposed___get__ extends PyBuiltinMethodNarrow { exposed___get__(PyObject self,PyBuiltinFunction.Info info) { super(self,info); } public PyBuiltinFunction bind(PyObject self) { return new exposed___get__(self,info); } public PyObject __call__(PyObject arg0,PyObject arg1) { return((PyClassMethod)self).classmethod___get__(arg0,arg1); } public PyObject __call__(PyObject arg0) { return((PyClassMethod)self).classmethod___get__(arg0); } } dict.__setitem__("__get__",new PyMethodDescr("__get__",PyClassMethod.class,1,2,new exposed___get__(null,null))); dict.__setitem__("__new__",new PyNewWrapper(PyClassMethod.class,"__new__",1,1) { public PyObject new_impl(boolean init,PyType subtype,PyObject[]args,String[]keywords) { return classmethod_new(this,init,subtype,args,keywords); } }); } //~ END GENERATED REGION -- DO NOT EDIT SEE gexpose.py protected PyObject callable; public PyClassMethod(PyObject callable) { if (!callable.isCallable()) { throw Py.TypeError("'" + callable.getType().fastGetName() + "' object is not callable"); } this.callable = callable; } public PyObject __get__(PyObject obj) { return classmethod___get__(obj, null); } public PyObject __get__(PyObject obj, PyObject type) { return classmethod___get__(obj, type); } final PyObject classmethod___get__(PyObject obj) { return classmethod___get__(obj, null); } final PyObject classmethod___get__(PyObject obj, PyObject type) { if(type == null) { type = obj.getType(); } return new PyMethod(type, callable, type.getType()); } final static PyObject classmethod_new(PyNewWrapper new_, boolean init, PyType subtype, PyObject[] args, String[] keywords) { if (keywords.length != 0) { throw Py.TypeError("classmethod does not accept keyword arguments"); } if (args.length != 1) { throw Py.TypeError("classmethod expected 1 argument, got " + args.length); } return new PyClassMethod(args[0]); } }