@Override
 public PluginWrapper getPlugin() {
   initPython();
   if (pexec.isImplemented(26)) {
     return (PluginWrapper) pexec.execPython("get_plugin");
   } else {
     return super.getPlugin();
   }
 }
 @Override
 public List<String> getPossibleViewNames(String baseName) {
   initPython();
   if (pexec.isImplemented(22)) {
     return (List) pexec.execPython("get_possible_view_names", baseName);
   } else {
     return super.getPossibleViewNames(baseName);
   }
 }
 @Override
 public XmlFile getConfigFile() {
   initPython();
   if (pexec.isImplemented(25)) {
     return (XmlFile) pexec.execPython("get_config_file");
   } else {
     return super.getConfigFile();
   }
 }
 @Override
 public String getHelpFile(Klass<?> clazz, String fieldName) {
   initPython();
   if (pexec.isImplemented(16)) {
     return (String) pexec.execPython("get_help_file", clazz, fieldName);
   } else {
     return super.getHelpFile(clazz, fieldName);
   }
 }
 @Override
 public String getGlobalConfigPage() {
   initPython();
   if (pexec.isImplemented(21)) {
     return (String) pexec.execPython("get_global_config_page");
   } else {
     return super.getGlobalConfigPage();
   }
 }
 @Override
 public String getId() {
   initPython();
   if (pexec.isImplemented(1)) {
     return (String) pexec.execPython("get_id");
   } else {
     return super.getId();
   }
 }
 @Override
 public String getHelpFile(final String fieldName) {
   initPython();
   if (pexec.isImplemented(15)) {
     return (String) pexec.execPython("get_help_file", fieldName);
   } else {
     return super.getHelpFile(fieldName);
   }
 }
 @Override
 public ToolInstaller newInstance(StaplerRequest req, JSONObject formData) throws FormException {
   initPython();
   if (pexec.isImplemented(12)) {
     return (ToolInstaller) pexec.execPython("new_instance", req, formData);
   } else {
     return super.newInstance(req, formData);
   }
 }
 @Override
 public Klass<?> getKlass() {
   initPython();
   if (pexec.isImplemented(13)) {
     return (Klass) pexec.execPython("get_klass");
   } else {
     return super.getKlass();
   }
 }
 @Override
 public String getCheckUrl(String fieldName) {
   initPython();
   if (pexec.isImplemented(4)) {
     return (String) pexec.execPython("get_check_url", fieldName);
   } else {
     return super.getCheckUrl(fieldName);
   }
 }
 @Override
 public PropertyType getGlobalPropertyType(String field) {
   initPython();
   if (pexec.isImplemented(10)) {
     return (PropertyType) pexec.execPython("get_global_property_type", field);
   } else {
     return super.getGlobalPropertyType(field);
   }
 }
 @Override
 public String getDescriptorUrl() {
   initPython();
   if (pexec.isImplemented(3)) {
     return (String) pexec.execPython("get_descriptor_url");
   } else {
     return super.getDescriptorUrl();
   }
 }
 @Override
 public Class<ToolInstaller> getT() {
   initPython();
   if (pexec.isImplemented(2)) {
     return (Class) pexec.execPython("get_t");
   } else {
     return super.getT();
   }
 }
 @Override
 public String getHelpFile() {
   initPython();
   if (pexec.isImplemented(14)) {
     return (String) pexec.execPython("get_help_file");
   } else {
     return super.getHelpFile();
   }
 }
 @Override
 public @Nonnull PropertyType getPropertyTypeOrDie(
     @Nonnull Object instance, @Nonnull String field) {
   initPython();
   if (pexec.isImplemented(8)) {
     return (PropertyType) pexec.execPython("get_property_type_or_die", instance, field);
   } else {
     return super.getPropertyTypeOrDie(instance, field);
   }
 }
 @Override
 public String getShortDescription() {
   initPython();
   return (String) pexec.execPython("get_short_description");
 }
 public Object execPython(String function, Object... params) {
   initPython();
   return pexec.execPython(function, params);
 }
 @Override
 public String getDisplayName() {
   initPython();
   return (String) pexec.execPython("get_display_name");
 }