
package pokerth_protocol;
//
// This file was generated by the BinaryNotes compiler.
// See http://bnotes.sourceforge.net 
// Any modifications to this file will be lost upon recompilation of the source ASN.1. 
//

import org.bn.*;
import org.bn.annotations.*;
import org.bn.annotations.constraints.*;
import org.bn.coders.*;
import org.bn.types.*;




    @ASN1PreparedElement
    @ASN1BoxedType ( name = "AnnounceMessage" )
    public class AnnounceMessage implements IASN1PreparedElement {
                
        

       @ASN1PreparedElement
       @ASN1Sequence ( name = "AnnounceMessage" , isSet = false )
       public static class AnnounceMessageSequenceType implements IASN1PreparedElement {
                
        @ASN1Element ( name = "protocolVersion", isOptional =  false , hasTag =  false  , hasDefaultValue =  false  )
    
	private Version protocolVersion = null;
                
  
        @ASN1Element ( name = "latestGameVersion", isOptional =  false , hasTag =  false  , hasDefaultValue =  false  )
    
	private Version latestGameVersion = null;
                
  @ASN1Integer( name = "" )
    @ASN1ValueRangeConstraint ( 
		
		min = 0L, 
		
		max = 65535L 
		
	   )
	   
        @ASN1Element ( name = "latestBetaRevision", isOptional =  false , hasTag =  false  , hasDefaultValue =  false  )
    
	private Integer latestBetaRevision = null;
                
  

    @ASN1PreparedElement
    @ASN1Enum (
        name = "ServerTypeEnumType"
    )
    public static class ServerTypeEnumType implements IASN1PreparedElement {        
        public enum EnumType {
            
            @ASN1EnumItem ( name = "serverTypeLAN", hasTag = true , tag = 0 )
            serverTypeLAN , 
            @ASN1EnumItem ( name = "serverTypeInternetNoAuth", hasTag = true , tag = 1 )
            serverTypeInternetNoAuth , 
            @ASN1EnumItem ( name = "serverTypeInternetAuth", hasTag = true , tag = 2 )
            serverTypeInternetAuth , 
        }
        
        private EnumType value;
        private Integer integerForm;
        
        public EnumType getValue() {
            return this.value;
        }
        
        public void setValue(EnumType value) {
            this.value = value;
        }
        
        public Integer getIntegerForm() {
            return integerForm;
        }
        
        public void setIntegerForm(Integer value) {
            integerForm = value;
        }

	    public void initWithDefaults() {
	    }

        private static IASN1PreparedElementData preparedData = CoderFactory.getInstance().newPreparedElementData(ServerTypeEnumType.class);
        public IASN1PreparedElementData getPreparedData() {
            return preparedData;
        }

    }
                
        @ASN1Element ( name = "serverType", isOptional =  false , hasTag =  false  , hasDefaultValue =  false  )
    
	private ServerTypeEnumType serverType = null;
                
  @ASN1Integer( name = "" )
    @ASN1ValueRangeConstraint ( 
		
		min = 0L, 
		
		max = 65535L 
		
	   )
	   
        @ASN1Element ( name = "numPlayersOnServer", isOptional =  false , hasTag =  false  , hasDefaultValue =  false  )
    
	private Integer numPlayersOnServer = null;
                
  
        
        public Version getProtocolVersion () {
            return this.protocolVersion;
        }

        

        public void setProtocolVersion (Version value) {
            this.protocolVersion = value;
        }
        
  
        
        public Version getLatestGameVersion () {
            return this.latestGameVersion;
        }

        

        public void setLatestGameVersion (Version value) {
            this.latestGameVersion = value;
        }
        
  
        
        public Integer getLatestBetaRevision () {
            return this.latestBetaRevision;
        }

        

        public void setLatestBetaRevision (Integer value) {
            this.latestBetaRevision = value;
        }
        
  
        
        public ServerTypeEnumType getServerType () {
            return this.serverType;
        }

        

        public void setServerType (ServerTypeEnumType value) {
            this.serverType = value;
        }
        
  
        
        public Integer getNumPlayersOnServer () {
            return this.numPlayersOnServer;
        }

        

        public void setNumPlayersOnServer (Integer value) {
            this.numPlayersOnServer = value;
        }
        
  
                
                
        public void initWithDefaults() {
            
        }

        public IASN1PreparedElementData getPreparedData() {
            return preparedData_AnnounceMessageSequenceType;
        }

       private static IASN1PreparedElementData preparedData_AnnounceMessageSequenceType = CoderFactory.getInstance().newPreparedElementData(AnnounceMessageSequenceType.class);
                
       }

       
                
        @ASN1Element ( name = "AnnounceMessage", isOptional =  false , hasTag =  true, tag = 0, 
        tagClass =  TagClass.Application  , hasDefaultValue =  false  )
    
        private AnnounceMessageSequenceType  value;        

        
        
        public AnnounceMessage () {
        }
        
        
        
        public void setValue(AnnounceMessageSequenceType value) {
            this.value = value;
        }
        
        
        
        public AnnounceMessageSequenceType getValue() {
            return this.value;
        }            
        

	    public void initWithDefaults() {
	    }

        private static IASN1PreparedElementData preparedData = CoderFactory.getInstance().newPreparedElementData(AnnounceMessage.class);
        public IASN1PreparedElementData getPreparedData() {
            return preparedData;
        }

            
    }
            