context: //
  // System.Messaging
  //
  // Authors:
  //      Peter Van Isacker (sclytrack@planetinternet.be)
  //
  // (C) 2003 Peter Van Isacker
  //
  
  //
  // Permission is hereby granted, free of charge, to any person obtaining
  // a copy of this software and associated documentation files (the
  // "Software"), to deal in the Software without restriction, including
  // without limitation the rights to use, copy, modify, merge, publish,
  // distribute, sublicense, and/or sell copies of the Software, and to
  // permit persons to whom the Software is furnished to do so, subject to
  // the following conditions:
  // 
  // The above copyright notice and this permission notice shall be
  // included in all copies or substantial portions of the Software.
  // 
  // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
  // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
  // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
  // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
  // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  //
  
  using System;
  using System.ComponentModel;
  
  namespace System.Messaging
  {
  	[TypeConverter (typeof(ExpandableObjectConverter))]
  	public class MessagePropertyFilter
  	{
  		private bool acknowledgeType = false;
  		private bool acknowledgment = false;
  		private bool administrationQueue = false;
  		private bool appSpecific = false;
  		private bool arrivedTime = false;
  		private bool attachSenderId = false;
  		private bool authenticated = false;
  		private bool authenticationProviderName = false;
  		private bool authenticationProviderType = false;
  		private bool body = false;
  		private bool connectorType = false;
  		private bool correlationId = false;
  		private int defaultBodySize = 1024;
  		private int defaultExtensionSize = 255;
  		private int defaultLabelSize = 255;
  		private bool destinationQueue = false;
  		private bool destinationSymmetricKey = false;
  		private bool digitalSignature = false;
  		private bool encryptionAlgorithm = false;
  		private bool extension = false;
  		private bool hashAlgorithm = false;
  		private bool id = false;
  		private bool isFirstInTransaction = false;
  		private bool isLastInTransaction = false;
  		private bool label = false;
  		private bool messageType = false;
  		private bool priority = false;
  		private bool recoverable = false;
  		private bool responseQueue = false;
  		private bool senderCertificate = false;
  		private bool senderId = false;
  		private bool senderVersion = false;
  		private bool sentTime = false;
  		private bool sourceMachine = false;
  		private bool timeToBeReceived = false;
  		private bool timeToReachQueue = false;
  		private bool transactionId = false;
  		private bool transactionStatusQueue = false;
  		private bool useAuthentication = false;
  		private bool useDeadLetterQueue = false;
  		private bool useEncryption = false;
  		private bool useJournalQueue = false;
  		private bool useTracing = false;
  
  		[MonoTODO]
  		public MessagePropertyFilter ()
  		{
  
  		}
  
  		[DefaultValue (true)]
  		[MessagingDescription ("MsgAcknowledgeType")]
  		public bool AcknowledgeType
  		{
  			get { return acknowledgeType; }
  			set { acknowledgeType = value; }
  		}
  
  		[DefaultValue (true)]
  		[MessagingDescription ("MsgAcknowledgement")]
  		public bool Acknowledgment
  		{
  			get { return acknowledgment; }
  			set { acknowledgment = value; }
  		}
  
  		[DefaultValue (true)]
  		[MessagingDescription ("MsgAdministrationQueue")]
  		public bool AdministrationQueue
  		{
  			get { return administrationQueue; }
  			set { administrationQueue = value; }
  		}
  
  		[DefaultValue (false)]
  		[MessagingDescription ("MsgAppSpecific")]
  		public bool AppSpecific
  		{
  			get { return appSpecific; }
  			set { appSpecific = value; }
  		}
  
  		[DefaultValue (false)]
  		[MessagingDescription ("MsgArrivedTime")]
  		public bool ArrivedTime
  		{
  			get { return arrivedTime; }
  			set { arrivedTime = value; }
  		}
  
  		[DefaultValue (false)]
  		[MessagingDescription ("MsgAttachSenderId")]
  		public bool AttachSenderId
  		{
  			get { return attachSenderId; }
  			set { attachSenderId = value; }
  		}
  
  		[DefaultValue (false)]
  		[MessagingDescription ("MsgAuthenticated")]
  		public bool Authenticated
  		{
  			get { return authenticated; }
  			set { authenticated = value; }
  		}
  
  		[DefaultValue (false)]
  		[MessagingDescription ("MsgAuthenticationProviderName")]
  		public bool AuthenticationProviderName
  		{
  			get { return authenticationProviderName; }
  			set { authenticationProviderName = value; }
  		}
  
  		[DefaultValue (false)]
  		[MessagingDescription ("MsgAuthenticationProviderType")]
  		public bool AuthenticationProviderType
  		{
  			get { return authenticationProviderType; }
  			set { authenticationProviderType = value; }
  		}
  
  		[DefaultValue (true)]
  		[MessagingDescription ("MsgBody")]
  		public bool Body
  		{
  			get { return body; }
  			set { body = value; }
  		}
  
  		[DefaultValue (false)]
  		[MessagingDescription ("MsgConnectorType")]
  		public bool ConnectorType
  		{
  			get { return connectorType; }
  			set { connectorType = value; }
  		}
  
  		[DefaultValue (false)]
  		[MessagingDescription ("MsgCorrelationId")]
  		public bool CorrelationId
  		{
  			get { return correlationId; }
  			set { correlationId = value; }
  		}
  
  		[DefaultValue (1024)]
  		[MessagingDescription ("MsgDefaultBodySize")]
  		public int DefaultBodySize
  		{
  			get { return defaultBodySize; }
  			set
  			{
  				if (value < 0) 
  					throw new ArgumentException ("DefaultBodySize");
  				defaultBodySize = value;
  			}
  		}
  
  		[DefaultValue (255)]
  		[MessagingDescription ("MsgDefaultExtensionSize")]
  		public int DefaultExtensionSize
  		{
  			get { return defaultExtensionSize; }
  			set
  			{
  				if (value < 0) 
  					throw new ArgumentException ("DefaultExtensionSize");
  				defaultExtensionSize = value;
  			}
  		}
  
  		[DefaultValue (255)]
  		[MessagingDescription ("MsgDefaultLabelSize")]
  		public int DefaultLabelSize
  		{
  			get { return defaultLabelSize; }
  			set
  			{
  				if (value < 0) throw new ArgumentException ("DefaultLabelSize");
  				defaultLabelSize = value;
  			}
  		}
  
  		[DefaultValue (false)]
  		[MessagingDescription ("MsgDestinationQueue")]
  		public bool DestinationQueue
  		{
  			get { return destinationQueue; }
  			set { destinationQueue = value; }
  		}
  
  		[DefaultValue (false)]
  		[MessagingDescription ("MsgDestinationSymmetricKey")]
  		public bool DestinationSymmetricKey
  		{
  			get { return destinationSymmetricKey; }
  			set { destinationSymmetricKey = value; }
  		}
  
  		[DefaultValue (false)]
  		[MessagingDescription ("MsgDigitalSignature")]
  		public bool DigitalSignature
  		{
  			get { return digitalSignature; }
  			set { digitalSignature = value; }
  		}
  
  		[DefaultValue (false)]
  		[MessagingDescription ("MsgEncryptionAlgorithm")]
  		public bool EncryptionAlgorithm
  		{
  			get { return encryptionAlgorithm; }
  			set { encryptionAlgorithm = value; }
  		}
  
  		[DefaultValue (false)]
  		[MessagingDescription ("MsgExtension")]
  		public bool Extension
  		{
  			get { return extension; }
  			set { extension = value; }
  		}
  
  		[DefaultValue (false)]
  		[MessagingDescription ("MsgHashAlgorithm")]
  		public bool HashAlgorithm
  		{
  			get { return hashAlgorithm; }
  			set { hashAlgorithm = value; }
  		}
  
  		[DefaultValue (false)]
  		[MessagingDescription ("MsgId")]
  		public bool Id
  		{
  			get { return id; }
  			set { id = value; }
  		}
  
  		[DefaultValue (false)]
  		[MessagingDescription ("MsgIsFirstInTransaction")]
  		public bool IsFirstInTransaction
  		{
  			get { return isFirstInTransaction; }
  			set { isFirstInTransaction = value; }
  		}
  
  		[DefaultValue (false)]
  		[MessagingDescription ("MsgIsLastInTransaction")]
  		public bool IsLastInTransaction
  		{
  			get { return isLastInTransaction; }
  			set { isLastInTransaction = value; }
  		}
  
  		[DefaultValue (true)]
  		[MessagingDescription ("MsgLabel")]
  		public bool Label
  		{
  			get { return label; }
  			set { label = value; }
  		}
  
  		[DefaultValue (true)]
  		[MessagingDescription ("MsgMessageType")]
  		public bool MessageType
  		{
  			get { return messageType; }
  			set { messageType = value; }
  		}
  
  		[DefaultValue (false)]
  		[MessagingDescription ("MsgPriority")]
  		public bool Priority
  		{
  			get { return priority; }
  			set { priority = value; }
  		}
  
  		[DefaultValue (false)]
  		[MessagingDescription ("MsgRecoverable")]
  		public bool Recoverable
  		{
  			get { return recoverable; }
  			set { recoverable = value; }
  		}
  
  		[DefaultValue (true)]
  		[MessagingDescription ("MsgResponseQueue")]
  		public bool ResponseQueue
  		{
  			get { return responseQueue; }
  			set { responseQueue = value; }
  		}
  
  		[DefaultValue (false)]
  		[MessagingDescription ("MsgSenderCertificate")]
  		public bool SenderCertificate
  		{
  			get { return senderCertificate; }
  			set { senderCertificate = value; }
  		}
  
  		[DefaultValue (false)]
  		[MessagingDescription ("MsgSenderId")]
  		public bool SenderId
  		{
  			get { return senderId; }
  			set { senderId = value; }
  		}
  
  		[DefaultValue (false)]
  		[MessagingDescription ("MsgSenderVersion")]
  		public bool SenderVersion
  		{
  			get { return senderVersion; }
  			set { senderVersion = value; }
  		}
  
  		[DefaultValue (false)]
  		[MessagingDescription ("MsgSentTime")]
  		public bool SentTime
  		{
  			get { return sentTime; }
  			set { sentTime = value; }
  		}
  
  		[DefaultValue (false)]
  		[MessagingDescription ("MsgSourceMachine")]
  		public bool SourceMachine
  		{
  
gt: 			get { return sourceMachine; }