package nsdb;

public class _NucFeatureWriterStub
	extends org.omg.CORBA.portable.ObjectImpl
	implements nsdb.NucFeatureWriter
{
	private String[] ids = {"IDL:nsdb/NucFeatureWriter:1.0","IDL:nsdb/NucFeature:1.0","IDL:seqdb/Feature:1.0"};
	public String[] _ids()
	{
		return ids;
	}

	public final static java.lang.Class _opsClass = nsdb.NucFeatureWriterOperations.class;
	public nsdb.Datestamp getDatestamp()
	{
		while(true)
		{
		if(! this._is_local())
		{
			org.omg.CORBA.portable.InputStream _is = null;
			try
			{
				org.omg.CORBA.portable.OutputStream _os = _request( "getDatestamp", true);
				_is = _invoke(_os);
				nsdb.Datestamp _result = nsdb.DatestampHelper.read(_is);
				return _result;
			}
			catch( org.omg.CORBA.portable.RemarshalException _rx ){}
			catch( org.omg.CORBA.portable.ApplicationException _ax )
			{
				String _id = _ax.getId();
				throw new RuntimeException("Unexpected exception " + _id );
			}
			finally
			{
				this._releaseReply(_is);
			}
		}
		else
		{
			org.omg.CORBA.portable.ServantObject _so = _servant_preinvoke( "getDatestamp", _opsClass );
			if( _so == null )
				throw new org.omg.CORBA.UNKNOWN("local invocations not supported!");
			NucFeatureWriterOperations _localServant = (NucFeatureWriterOperations)_so.servant;
			nsdb.Datestamp _result;			try
			{
			_result = _localServant.getDatestamp();
			}
			finally
			{
				_servant_postinvoke(_so);
			}
			return _result;
		}

		}

	}

	public nsdb.NucFeaturePackage.Qualifier[] getQualifiers() throws type.NoResult
	{
		while(true)
		{
		if(! this._is_local())
		{
			org.omg.CORBA.portable.InputStream _is = null;
			try
			{
				org.omg.CORBA.portable.OutputStream _os = _request( "getQualifiers", true);
				_is = _invoke(_os);
				nsdb.NucFeaturePackage.Qualifier[] _result = nsdb.NucFeaturePackage.QualifierListHelper.read(_is);
				return _result;
			}
			catch( org.omg.CORBA.portable.RemarshalException _rx ){}
			catch( org.omg.CORBA.portable.ApplicationException _ax )
			{
				String _id = _ax.getId();
				if( _id.equals("IDL:type/NoResult:1.0"))
				{
					throw type.NoResultHelper.read(_ax.getInputStream());
				}
				else 
					throw new RuntimeException("Unexpected exception " + _id );
			}
			finally
			{
				this._releaseReply(_is);
			}
		}
		else
		{
			org.omg.CORBA.portable.ServantObject _so = _servant_preinvoke( "getQualifiers", _opsClass );
			if( _so == null )
				throw new org.omg.CORBA.UNKNOWN("local invocations not supported!");
			NucFeatureWriterOperations _localServant = (NucFeatureWriterOperations)_so.servant;
			nsdb.NucFeaturePackage.Qualifier[] _result;			try
			{
			_result = _localServant.getQualifiers();
			}
			finally
			{
				_servant_postinvoke(_so);
			}
			return _result;
		}

		}

	}

	public void set(nsdb.Datestamp datestamp, java.lang.String key, java.lang.String location, nsdb.NucFeaturePackage.Qualifier[] qualifier_list) throws nsdb.InvalidKey,nsdb.LocationParse,type.IndexOutOfRange,type.InvalidRelation,nsdb.QualifierParse,nsdb.InvalidQualifier,nsdb.OutOfDate,nsdb.ReadOnlyException
	{
		while(true)
		{
		if(! this._is_local())
		{
			org.omg.CORBA.portable.InputStream _is = null;
			try
			{
				org.omg.CORBA.portable.OutputStream _os = _request( "set", true);
				nsdb.DatestampHelper.write(_os,datestamp);
				_os.write_string(key);
				_os.write_string(location);
				nsdb.NucFeaturePackage.QualifierListHelper.write(_os,qualifier_list);
				_is = _invoke(_os);
				return;
			}
			catch( org.omg.CORBA.portable.RemarshalException _rx ){}
			catch( org.omg.CORBA.portable.ApplicationException _ax )
			{
				String _id = _ax.getId();
				if( _id.equals("IDL:nsdb/InvalidKey:1.0"))
				{
					throw nsdb.InvalidKeyHelper.read(_ax.getInputStream());
				}
				else if( _id.equals("IDL:nsdb/LocationParse:1.0"))
				{
					throw nsdb.LocationParseHelper.read(_ax.getInputStream());
				}
				else if( _id.equals("IDL:type/IndexOutOfRange:1.0"))
				{
					throw type.IndexOutOfRangeHelper.read(_ax.getInputStream());
				}
				else if( _id.equals("IDL:type/InvalidRelation:1.0"))
				{
					throw type.InvalidRelationHelper.read(_ax.getInputStream());
				}
				else if( _id.equals("IDL:nsdb/QualifierParse:1.0"))
				{
					throw nsdb.QualifierParseHelper.read(_ax.getInputStream());
				}
				else if( _id.equals("IDL:nsdb/InvalidQualifier:1.0"))
				{
					throw nsdb.InvalidQualifierHelper.read(_ax.getInputStream());
				}
				else if( _id.equals("IDL:nsdb/OutOfDate:1.0"))
				{
					throw nsdb.OutOfDateHelper.read(_ax.getInputStream());
				}
				else if( _id.equals("IDL:nsdb/ReadOnlyException:1.0"))
				{
					throw nsdb.ReadOnlyExceptionHelper.read(_ax.getInputStream());
				}
				else 
					throw new RuntimeException("Unexpected exception " + _id );
			}
			finally
			{
				this._releaseReply(_is);
			}
		}
		else
		{
			org.omg.CORBA.portable.ServantObject _so = _servant_preinvoke( "set", _opsClass );
			if( _so == null )
				throw new org.omg.CORBA.UNKNOWN("local invocations not supported!");
			NucFeatureWriterOperations _localServant = (NucFeatureWriterOperations)_so.servant;
			try
			{
			_localServant.set(datestamp,key,location,qualifier_list);
			}
			finally
			{
				_servant_postinvoke(_so);
			}
			return;
		}

		}

	}

	public type.DbXref[] getNucSeqs()
	{
		while(true)
		{
		if(! this._is_local())
		{
			org.omg.CORBA.portable.InputStream _is = null;
			try
			{
				org.omg.CORBA.portable.OutputStream _os = _request( "getNucSeqs", true);
				_is = _invoke(_os);
				type.DbXref[] _result = type.DbXrefListHelper.read(_is);
				return _result;
			}
			catch( org.omg.CORBA.portable.RemarshalException _rx ){}
			catch( org.omg.CORBA.portable.ApplicationException _ax )
			{
				String _id = _ax.getId();
				throw new RuntimeException("Unexpected exception " + _id );
			}
			finally
			{
				this._releaseReply(_is);
			}
		}
		else
		{
			org.omg.CORBA.portable.ServantObject _so = _servant_preinvoke( "getNucSeqs", _opsClass );
			if( _so == null )
				throw new org.omg.CORBA.UNKNOWN("local invocations not supported!");
			NucFeatureWriterOperations _localServant = (NucFeatureWriterOperations)_so.servant;
			type.DbXref[] _result;			try
			{
			_result = _localServant.getNucSeqs();
			}
			finally
			{
				_servant_postinvoke(_so);
			}
			return _result;
		}

		}

	}

	public void setLocation(nsdb.Datestamp datestamp, java.lang.String location) throws nsdb.LocationParse,type.IndexOutOfRange,nsdb.OutOfDate,nsdb.ReadOnlyException
	{
		while(true)
		{
		if(! this._is_local())
		{
			org.omg.CORBA.portable.InputStream _is = null;
			try
			{
				org.omg.CORBA.portable.OutputStream _os = _request( "setLocation", true);
				nsdb.DatestampHelper.write(_os,datestamp);
				_os.write_string(location);
				_is = _invoke(_os);
				return;
			}
			catch( org.omg.CORBA.portable.RemarshalException _rx ){}
			catch( org.omg.CORBA.portable.ApplicationException _ax )
			{
				String _id = _ax.getId();
				if( _id.equals("IDL:nsdb/LocationParse:1.0"))
				{
					throw nsdb.LocationParseHelper.read(_ax.getInputStream());
				}
				else if( _id.equals("IDL:type/IndexOutOfRange:1.0"))
				{
					throw type.IndexOutOfRangeHelper.read(_ax.getInputStream());
				}
				else if( _id.equals("IDL:nsdb/OutOfDate:1.0"))
				{
					throw nsdb.OutOfDateHelper.read(_ax.getInputStream());
				}
				else if( _id.equals("IDL:nsdb/ReadOnlyException:1.0"))
				{
					throw nsdb.ReadOnlyExceptionHelper.read(_ax.getInputStream());
				}
				else 
					throw new RuntimeException("Unexpected exception " + _id );
			}
			finally
			{
				this._releaseReply(_is);
			}
		}
		else
		{
			org.omg.CORBA.portable.ServantObject _so = _servant_preinvoke( "setLocation", _opsClass );
			if( _so == null )
				throw new org.omg.CORBA.UNKNOWN("local invocations not supported!");
			NucFeatureWriterOperations _localServant = (NucFeatureWriterOperations)_so.servant;
			try
			{
			_localServant.setLocation(datestamp,location);
			}
			finally
			{
				_servant_postinvoke(_so);
			}
			return;
		}

		}

	}

	public java.lang.String getFeatureId()
	{
		while(true)
		{
		if(! this._is_local())
		{
			org.omg.CORBA.portable.InputStream _is = null;
			try
			{
				org.omg.CORBA.portable.OutputStream _os = _request( "getFeatureId", true);
				_is = _invoke(_os);
				java.lang.String _result = _is.read_string();
				return _result;
			}
			catch( org.omg.CORBA.portable.RemarshalException _rx ){}
			catch( org.omg.CORBA.portable.ApplicationException _ax )
			{
				String _id = _ax.getId();
				throw new RuntimeException("Unexpected exception " + _id );
			}
			finally
			{
				this._releaseReply(_is);
			}
		}
		else
		{
			org.omg.CORBA.portable.ServantObject _so = _servant_preinvoke( "getFeatureId", _opsClass );
			if( _so == null )
				throw new org.omg.CORBA.UNKNOWN("local invocations not supported!");
			NucFeatureWriterOperations _localServant = (NucFeatureWriterOperations)_so.servant;
			java.lang.String _result;			try
			{
			_result = _localServant.getFeatureId();
			}
			finally
			{
				_servant_postinvoke(_so);
			}
			return _result;
		}

		}

	}

	public void removeQualiferByName(nsdb.Datestamp datestamp, java.lang.String name) throws type.InvalidRelation,nsdb.OutOfDate,nsdb.ReadOnlyException
	{
		while(true)
		{
		if(! this._is_local())
		{
			org.omg.CORBA.portable.InputStream _is = null;
			try
			{
				org.omg.CORBA.portable.OutputStream _os = _request( "removeQualiferByName", true);
				nsdb.DatestampHelper.write(_os,datestamp);
				_os.write_string(name);
				_is = _invoke(_os);
				return;
			}
			catch( org.omg.CORBA.portable.RemarshalException _rx ){}
			catch( org.omg.CORBA.portable.ApplicationException _ax )
			{
				String _id = _ax.getId();
				if( _id.equals("IDL:type/InvalidRelation:1.0"))
				{
					throw type.InvalidRelationHelper.read(_ax.getInputStream());
				}
				else if( _id.equals("IDL:nsdb/OutOfDate:1.0"))
				{
					throw nsdb.OutOfDateHelper.read(_ax.getInputStream());
				}
				else if( _id.equals("IDL:nsdb/ReadOnlyException:1.0"))
				{
					throw nsdb.ReadOnlyExceptionHelper.read(_ax.getInputStream());
				}
				else 
					throw new RuntimeException("Unexpected exception " + _id );
			}
			finally
			{
				this._releaseReply(_is);
			}
		}
		else
		{
			org.omg.CORBA.portable.ServantObject _so = _servant_preinvoke( "removeQualiferByName", _opsClass );
			if( _so == null )
				throw new org.omg.CORBA.UNKNOWN("local invocations not supported!");
			NucFeatureWriterOperations _localServant = (NucFeatureWriterOperations)_so.servant;
			try
			{
			_localServant.removeQualiferByName(datestamp,name);
			}
			finally
			{
				_servant_postinvoke(_so);
			}
			return;
		}

		}

	}

	public void setKey(nsdb.Datestamp datestamp, java.lang.String key) throws nsdb.InvalidKey,type.InvalidRelation,nsdb.OutOfDate,nsdb.ReadOnlyException
	{
		while(true)
		{
		if(! this._is_local())
		{
			org.omg.CORBA.portable.InputStream _is = null;
			try
			{
				org.omg.CORBA.portable.OutputStream _os = _request( "setKey", true);
				nsdb.DatestampHelper.write(_os,datestamp);
				_os.write_string(key);
				_is = _invoke(_os);
				return;
			}
			catch( org.omg.CORBA.portable.RemarshalException _rx ){}
			catch( org.omg.CORBA.portable.ApplicationException _ax )
			{
				String _id = _ax.getId();
				if( _id.equals("IDL:nsdb/InvalidKey:1.0"))
				{
					throw nsdb.InvalidKeyHelper.read(_ax.getInputStream());
				}
				else if( _id.equals("IDL:type/InvalidRelation:1.0"))
				{
					throw type.InvalidRelationHelper.read(_ax.getInputStream());
				}
				else if( _id.equals("IDL:nsdb/OutOfDate:1.0"))
				{
					throw nsdb.OutOfDateHelper.read(_ax.getInputStream());
				}
				else if( _id.equals("IDL:nsdb/ReadOnlyException:1.0"))
				{
					throw nsdb.ReadOnlyExceptionHelper.read(_ax.getInputStream());
				}
				else 
					throw new RuntimeException("Unexpected exception " + _id );
			}
			finally
			{
				this._releaseReply(_is);
			}
		}
		else
		{
			org.omg.CORBA.portable.ServantObject _so = _servant_preinvoke( "setKey", _opsClass );
			if( _so == null )
				throw new org.omg.CORBA.UNKNOWN("local invocations not supported!");
			NucFeatureWriterOperations _localServant = (NucFeatureWriterOperations)_so.servant;
			try
			{
			_localServant.setKey(datestamp,key);
			}
			finally
			{
				_servant_postinvoke(_so);
			}
			return;
		}

		}

	}

	public nsdb.FeatureLocation getLocation() throws type.NoResult
	{
		while(true)
		{
		if(! this._is_local())
		{
			org.omg.CORBA.portable.InputStream _is = null;
			try
			{
				org.omg.CORBA.portable.OutputStream _os = _request( "getLocation", true);
				_is = _invoke(_os);
				nsdb.FeatureLocation _result = nsdb.FeatureLocationHelper.read(_is);
				return _result;
			}
			catch( org.omg.CORBA.portable.RemarshalException _rx ){}
			catch( org.omg.CORBA.portable.ApplicationException _ax )
			{
				String _id = _ax.getId();
				if( _id.equals("IDL:type/NoResult:1.0"))
				{
					throw type.NoResultHelper.read(_ax.getInputStream());
				}
				else 
					throw new RuntimeException("Unexpected exception " + _id );
			}
			finally
			{
				this._releaseReply(_is);
			}
		}
		else
		{
			org.omg.CORBA.portable.ServantObject _so = _servant_preinvoke( "getLocation", _opsClass );
			if( _so == null )
				throw new org.omg.CORBA.UNKNOWN("local invocations not supported!");
			NucFeatureWriterOperations _localServant = (NucFeatureWriterOperations)_so.servant;
			nsdb.FeatureLocation _result;			try
			{
			_result = _localServant.getLocation();
			}
			finally
			{
				_servant_postinvoke(_so);
			}
			return _result;
		}

		}

	}

	public nsdb.NucFeaturePackage.Qualifier getQualifier(java.lang.String qualifier_name) throws type.NoResult,type.InvalidRelation
	{
		while(true)
		{
		if(! this._is_local())
		{
			org.omg.CORBA.portable.InputStream _is = null;
			try
			{
				org.omg.CORBA.portable.OutputStream _os = _request( "getQualifier", true);
				_os.write_string(qualifier_name);
				_is = _invoke(_os);
				nsdb.NucFeaturePackage.Qualifier _result = nsdb.NucFeaturePackage.QualifierHelper.read(_is);
				return _result;
			}
			catch( org.omg.CORBA.portable.RemarshalException _rx ){}
			catch( org.omg.CORBA.portable.ApplicationException _ax )
			{
				String _id = _ax.getId();
				if( _id.equals("IDL:type/NoResult:1.0"))
				{
					throw type.NoResultHelper.read(_ax.getInputStream());
				}
				else if( _id.equals("IDL:type/InvalidRelation:1.0"))
				{
					throw type.InvalidRelationHelper.read(_ax.getInputStream());
				}
				else 
					throw new RuntimeException("Unexpected exception " + _id );
			}
			finally
			{
				this._releaseReply(_is);
			}
		}
		else
		{
			org.omg.CORBA.portable.ServantObject _so = _servant_preinvoke( "getQualifier", _opsClass );
			if( _so == null )
				throw new org.omg.CORBA.UNKNOWN("local invocations not supported!");
			NucFeatureWriterOperations _localServant = (NucFeatureWriterOperations)_so.servant;
			nsdb.NucFeaturePackage.Qualifier _result;			try
			{
			_result = _localServant.getQualifier(qualifier_name);
			}
			finally
			{
				_servant_postinvoke(_so);
			}
			return _result;
		}

		}

	}

	public void setQualifiers(nsdb.Datestamp datestamp, nsdb.NucFeaturePackage.Qualifier[] qualifier_list) throws type.InvalidRelation,nsdb.QualifierParse,nsdb.InvalidQualifier,nsdb.OutOfDate,nsdb.ReadOnlyException
	{
		while(true)
		{
		if(! this._is_local())
		{
			org.omg.CORBA.portable.InputStream _is = null;
			try
			{
				org.omg.CORBA.portable.OutputStream _os = _request( "setQualifiers", true);
				nsdb.DatestampHelper.write(_os,datestamp);
				nsdb.NucFeaturePackage.QualifierListHelper.write(_os,qualifier_list);
				_is = _invoke(_os);
				return;
			}
			catch( org.omg.CORBA.portable.RemarshalException _rx ){}
			catch( org.omg.CORBA.portable.ApplicationException _ax )
			{
				String _id = _ax.getId();
				if( _id.equals("IDL:type/InvalidRelation:1.0"))
				{
					throw type.InvalidRelationHelper.read(_ax.getInputStream());
				}
				else if( _id.equals("IDL:nsdb/QualifierParse:1.0"))
				{
					throw nsdb.QualifierParseHelper.read(_ax.getInputStream());
				}
				else if( _id.equals("IDL:nsdb/InvalidQualifier:1.0"))
				{
					throw nsdb.InvalidQualifierHelper.read(_ax.getInputStream());
				}
				else if( _id.equals("IDL:nsdb/OutOfDate:1.0"))
				{
					throw nsdb.OutOfDateHelper.read(_ax.getInputStream());
				}
				else if( _id.equals("IDL:nsdb/ReadOnlyException:1.0"))
				{
					throw nsdb.ReadOnlyExceptionHelper.read(_ax.getInputStream());
				}
				else 
					throw new RuntimeException("Unexpected exception " + _id );
			}
			finally
			{
				this._releaseReply(_is);
			}
		}
		else
		{
			org.omg.CORBA.portable.ServantObject _so = _servant_preinvoke( "setQualifiers", _opsClass );
			if( _so == null )
				throw new org.omg.CORBA.UNKNOWN("local invocations not supported!");
			NucFeatureWriterOperations _localServant = (NucFeatureWriterOperations)_so.servant;
			try
			{
			_localServant.setQualifiers(datestamp,qualifier_list);
			}
			finally
			{
				_servant_postinvoke(_so);
			}
			return;
		}

		}

	}

	public int getFeatureVersion()
	{
		while(true)
		{
		if(! this._is_local())
		{
			org.omg.CORBA.portable.InputStream _is = null;
			try
			{
				org.omg.CORBA.portable.OutputStream _os = _request( "getFeatureVersion", true);
				_is = _invoke(_os);
				int _result = _is.read_long();
				return _result;
			}
			catch( org.omg.CORBA.portable.RemarshalException _rx ){}
			catch( org.omg.CORBA.portable.ApplicationException _ax )
			{
				String _id = _ax.getId();
				throw new RuntimeException("Unexpected exception " + _id );
			}
			finally
			{
				this._releaseReply(_is);
			}
		}
		else
		{
			org.omg.CORBA.portable.ServantObject _so = _servant_preinvoke( "getFeatureVersion", _opsClass );
			if( _so == null )
				throw new org.omg.CORBA.UNKNOWN("local invocations not supported!");
			NucFeatureWriterOperations _localServant = (NucFeatureWriterOperations)_so.servant;
			int _result;			try
			{
			_result = _localServant.getFeatureVersion();
			}
			finally
			{
				_servant_postinvoke(_so);
			}
			return _result;
		}

		}

	}

	public void setQualifier(nsdb.Datestamp datestamp, nsdb.NucFeaturePackage.Qualifier qualifier) throws type.InvalidRelation,nsdb.QualifierParse,nsdb.InvalidQualifier,nsdb.OutOfDate,nsdb.ReadOnlyException
	{
		while(true)
		{
		if(! this._is_local())
		{
			org.omg.CORBA.portable.InputStream _is = null;
			try
			{
				org.omg.CORBA.portable.OutputStream _os = _request( "setQualifier", true);
				nsdb.DatestampHelper.write(_os,datestamp);
				nsdb.NucFeaturePackage.QualifierHelper.write(_os,qualifier);
				_is = _invoke(_os);
				return;
			}
			catch( org.omg.CORBA.portable.RemarshalException _rx ){}
			catch( org.omg.CORBA.portable.ApplicationException _ax )
			{
				String _id = _ax.getId();
				if( _id.equals("IDL:type/InvalidRelation:1.0"))
				{
					throw type.InvalidRelationHelper.read(_ax.getInputStream());
				}
				else if( _id.equals("IDL:nsdb/QualifierParse:1.0"))
				{
					throw nsdb.QualifierParseHelper.read(_ax.getInputStream());
				}
				else if( _id.equals("IDL:nsdb/InvalidQualifier:1.0"))
				{
					throw nsdb.InvalidQualifierHelper.read(_ax.getInputStream());
				}
				else if( _id.equals("IDL:nsdb/OutOfDate:1.0"))
				{
					throw nsdb.OutOfDateHelper.read(_ax.getInputStream());
				}
				else if( _id.equals("IDL:nsdb/ReadOnlyException:1.0"))
				{
					throw nsdb.ReadOnlyExceptionHelper.read(_ax.getInputStream());
				}
				else 
					throw new RuntimeException("Unexpected exception " + _id );
			}
			finally
			{
				this._releaseReply(_is);
			}
		}
		else
		{
			org.omg.CORBA.portable.ServantObject _so = _servant_preinvoke( "setQualifier", _opsClass );
			if( _so == null )
				throw new org.omg.CORBA.UNKNOWN("local invocations not supported!");
			NucFeatureWriterOperations _localServant = (NucFeatureWriterOperations)_so.servant;
			try
			{
			_localServant.setQualifier(datestamp,qualifier);
			}
			finally
			{
				_servant_postinvoke(_so);
			}
			return;
		}

		}

	}

	public java.lang.String getKey()
	{
		while(true)
		{
		if(! this._is_local())
		{
			org.omg.CORBA.portable.InputStream _is = null;
			try
			{
				org.omg.CORBA.portable.OutputStream _os = _request( "getKey", true);
				_is = _invoke(_os);
				java.lang.String _result = _is.read_string();
				return _result;
			}
			catch( org.omg.CORBA.portable.RemarshalException _rx ){}
			catch( org.omg.CORBA.portable.ApplicationException _ax )
			{
				String _id = _ax.getId();
				throw new RuntimeException("Unexpected exception " + _id );
			}
			finally
			{
				this._releaseReply(_is);
			}
		}
		else
		{
			org.omg.CORBA.portable.ServantObject _so = _servant_preinvoke( "getKey", _opsClass );
			if( _so == null )
				throw new org.omg.CORBA.UNKNOWN("local invocations not supported!");
			NucFeatureWriterOperations _localServant = (NucFeatureWriterOperations)_so.servant;
			java.lang.String _result;			try
			{
			_result = _localServant.getKey();
			}
			finally
			{
				_servant_postinvoke(_so);
			}
			return _result;
		}

		}

	}

}
