package CosTrading;
abstract public class _RegisterImplBase extends org.omg.CORBA.portable.Skeleton implements CosTrading.Register {
  protected _RegisterImplBase(java.lang.String name) {
    super(name);
  }
  protected _RegisterImplBase() {
  }
  public java.lang.String[] _ids() {
    return __ids;
  }
  private static java.lang.String[] __ids = {
    "IDL:omg.org/CosTrading/Register:1.0",
    "IDL:omg.org/CosTrading/TraderComponents:1.0",
    "IDL:omg.org/CosTrading/SupportAttributes:1.0"
  };
  public org.omg.CORBA.portable.MethodPointer[] _methods() {
    org.omg.CORBA.portable.MethodPointer[] methods = {
      new org.omg.CORBA.portable.MethodPointer("export", 0, 0),
      new org.omg.CORBA.portable.MethodPointer("withdraw", 0, 1),
      new org.omg.CORBA.portable.MethodPointer("describe", 0, 2),
      new org.omg.CORBA.portable.MethodPointer("modify", 0, 3),
      new org.omg.CORBA.portable.MethodPointer("withdraw_using_constraint", 0, 4),
      new org.omg.CORBA.portable.MethodPointer("resolve", 0, 5),
      new org.omg.CORBA.portable.MethodPointer("_get_lookup_if", 1, 0),
      new org.omg.CORBA.portable.MethodPointer("_get_register_if", 1, 1),
      new org.omg.CORBA.portable.MethodPointer("_get_link_if", 1, 2),
      new org.omg.CORBA.portable.MethodPointer("_get_proxy_if", 1, 3),
      new org.omg.CORBA.portable.MethodPointer("_get_admin_if", 1, 4),
      new org.omg.CORBA.portable.MethodPointer("_get_supports_modifiable_properties", 2, 0),
      new org.omg.CORBA.portable.MethodPointer("_get_supports_dynamic_properties", 2, 1),
      new org.omg.CORBA.portable.MethodPointer("_get_supports_proxy_offers", 2, 2),
      new org.omg.CORBA.portable.MethodPointer("_get_type_repos", 2, 3),
    };
    return methods;
  }
  public boolean _execute(org.omg.CORBA.portable.MethodPointer method, org.omg.CORBA.portable.InputStream input, org.omg.CORBA.portable.OutputStream output) {
    switch(method.interface_id) {
    case 0: {
      return CosTrading._RegisterImplBase._execute(this, method.method_id, input, output); 
    }
    case 1: {
      return CosTrading._TraderComponentsImplBase._execute(this, method.method_id, input, output); 
    }
    case 2: {
      return CosTrading._SupportAttributesImplBase._execute(this, method.method_id, input, output); 
    }
    }
    throw new org.omg.CORBA.MARSHAL();
  }
  public static boolean _execute(CosTrading.Register _self, int _method_id, org.omg.CORBA.portable.InputStream _input, org.omg.CORBA.portable.OutputStream _output) {
    switch(_method_id) {
    case 0: {
      try {
        org.omg.CORBA.Object reference;
        reference = _input.read_Object();
        java.lang.String type;
        type = _input.read_string();
        CosTrading.Property[] properties;
        properties = CosTrading.PropertySeqHelper.read(_input);
        java.lang.String _result = _self.export(reference,type,properties);
        _output.write_string(_result);
      }
      catch(CosTrading.RegisterPackage.InvalidObjectRef _exception) {
        CosTrading.RegisterPackage.InvalidObjectRefHelper.write(_output, _exception);
        return true;
      }
      catch(CosTrading.IllegalServiceType _exception) {
        CosTrading.IllegalServiceTypeHelper.write(_output, _exception);
        return true;
      }
      catch(CosTrading.UnknownServiceType _exception) {
        CosTrading.UnknownServiceTypeHelper.write(_output, _exception);
        return true;
      }
      catch(CosTrading.RegisterPackage.InterfaceTypeMismatch _exception) {
        CosTrading.RegisterPackage.InterfaceTypeMismatchHelper.write(_output, _exception);
        return true;
      }
      catch(CosTrading.IllegalPropertyName _exception) {
        CosTrading.IllegalPropertyNameHelper.write(_output, _exception);
        return true;
      }
      catch(CosTrading.PropertyTypeMismatch _exception) {
        CosTrading.PropertyTypeMismatchHelper.write(_output, _exception);
        return true;
      }
      catch(CosTrading.ReadonlyDynamicProperty _exception) {
        CosTrading.ReadonlyDynamicPropertyHelper.write(_output, _exception);
        return true;
      }
      catch(CosTrading.MissingMandatoryProperty _exception) {
        CosTrading.MissingMandatoryPropertyHelper.write(_output, _exception);
        return true;
      }
      catch(CosTrading.DuplicatePropertyName _exception) {
        CosTrading.DuplicatePropertyNameHelper.write(_output, _exception);
        return true;
      }
      return false;
    }
    case 1: {
      try {
        java.lang.String id;
        id = _input.read_string();
        _self.withdraw(id);
      }
      catch(CosTrading.IllegalOfferId _exception) {
        CosTrading.IllegalOfferIdHelper.write(_output, _exception);
        return true;
      }
      catch(CosTrading.UnknownOfferId _exception) {
        CosTrading.UnknownOfferIdHelper.write(_output, _exception);
        return true;
      }
      catch(CosTrading.RegisterPackage.ProxyOfferId _exception) {
        CosTrading.RegisterPackage.ProxyOfferIdHelper.write(_output, _exception);
        return true;
      }
      return false;
    }
    case 2: {
      try {
        java.lang.String id;
        id = _input.read_string();
        CosTrading.RegisterPackage.OfferInfo _result = _self.describe(id);
        CosTrading.RegisterPackage.OfferInfoHelper.write(_output, _result);
      }
      catch(CosTrading.IllegalOfferId _exception) {
        CosTrading.IllegalOfferIdHelper.write(_output, _exception);
        return true;
      }
      catch(CosTrading.UnknownOfferId _exception) {
        CosTrading.UnknownOfferIdHelper.write(_output, _exception);
        return true;
      }
      catch(CosTrading.RegisterPackage.ProxyOfferId _exception) {
        CosTrading.RegisterPackage.ProxyOfferIdHelper.write(_output, _exception);
        return true;
      }
      return false;
    }
    case 3: {
      try {
        java.lang.String id;
        id = _input.read_string();
        java.lang.String[] del_list;
        del_list = CosTrading.PropertyNameSeqHelper.read(_input);
        CosTrading.Property[] modify_list;
        modify_list = CosTrading.PropertySeqHelper.read(_input);
        _self.modify(id,del_list,modify_list);
      }
      catch(CosTrading.NotImplemented _exception) {
        CosTrading.NotImplementedHelper.write(_output, _exception);
        return true;
      }
      catch(CosTrading.IllegalOfferId _exception) {
        CosTrading.IllegalOfferIdHelper.write(_output, _exception);
        return true;
      }
      catch(CosTrading.UnknownOfferId _exception) {
        CosTrading.UnknownOfferIdHelper.write(_output, _exception);
        return true;
      }
      catch(CosTrading.RegisterPackage.ProxyOfferId _exception) {
        CosTrading.RegisterPackage.ProxyOfferIdHelper.write(_output, _exception);
        return true;
      }
      catch(CosTrading.IllegalPropertyName _exception) {
        CosTrading.IllegalPropertyNameHelper.write(_output, _exception);
        return true;
      }
      catch(CosTrading.RegisterPackage.UnknownPropertyName _exception) {
        CosTrading.RegisterPackage.UnknownPropertyNameHelper.write(_output, _exception);
        return true;
      }
      catch(CosTrading.PropertyTypeMismatch _exception) {
        CosTrading.PropertyTypeMismatchHelper.write(_output, _exception);
        return true;
      }
      catch(CosTrading.ReadonlyDynamicProperty _exception) {
        CosTrading.ReadonlyDynamicPropertyHelper.write(_output, _exception);
        return true;
      }
      catch(CosTrading.RegisterPackage.MandatoryProperty _exception) {
        CosTrading.RegisterPackage.MandatoryPropertyHelper.write(_output, _exception);
        return true;
      }
      catch(CosTrading.RegisterPackage.ReadonlyProperty _exception) {
        CosTrading.RegisterPackage.ReadonlyPropertyHelper.write(_output, _exception);
        return true;
      }
      catch(CosTrading.DuplicatePropertyName _exception) {
        CosTrading.DuplicatePropertyNameHelper.write(_output, _exception);
        return true;
      }
      return false;
    }
    case 4: {
      try {
        java.lang.String type;
        type = _input.read_string();
        java.lang.String constr;
        constr = _input.read_string();
        _self.withdraw_using_constraint(type,constr);
      }
      catch(CosTrading.IllegalServiceType _exception) {
        CosTrading.IllegalServiceTypeHelper.write(_output, _exception);
        return true;
      }
      catch(CosTrading.UnknownServiceType _exception) {
        CosTrading.UnknownServiceTypeHelper.write(_output, _exception);
        return true;
      }
      catch(CosTrading.IllegalConstraint _exception) {
        CosTrading.IllegalConstraintHelper.write(_output, _exception);
        return true;
      }
      catch(CosTrading.RegisterPackage.NoMatchingOffers _exception) {
        CosTrading.RegisterPackage.NoMatchingOffersHelper.write(_output, _exception);
        return true;
      }
      return false;
    }
    case 5: {
      try {
        java.lang.String[] name;
        name = CosTrading.LinkNameSeqHelper.read(_input);
        CosTrading.Register _result = _self.resolve(name);
        CosTrading.RegisterHelper.write(_output, _result);
      }
      catch(CosTrading.RegisterPackage.IllegalTraderName _exception) {
        CosTrading.RegisterPackage.IllegalTraderNameHelper.write(_output, _exception);
        return true;
      }
      catch(CosTrading.RegisterPackage.UnknownTraderName _exception) {
        CosTrading.RegisterPackage.UnknownTraderNameHelper.write(_output, _exception);
        return true;
      }
      catch(CosTrading.RegisterPackage.RegisterNotSupported _exception) {
        CosTrading.RegisterPackage.RegisterNotSupportedHelper.write(_output, _exception);
        return true;
      }
      return false;
    }
    }
    throw new org.omg.CORBA.MARSHAL();
  }
}
