
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
    @ASN1Sequence ( name = "NetGameInfo", isSet = false )
    public class NetGameInfo implements IASN1PreparedElement {
            
    @ASN1String( name = "", 
        stringType = UniversalTag.UTF8String , isUCS = false )
    @ASN1ValueRangeConstraint ( 
		
		min = 1L, 
		
		max = 64L 
		
	   )
	   
        @ASN1Element ( name = "gameName", isOptional =  false , hasTag =  false  , hasDefaultValue =  false  )
    
	private String gameName = null;
                
  

    @ASN1PreparedElement
    @ASN1Enum (
        name = "NetGameTypeEnumType"
    )
    public static class NetGameTypeEnumType implements IASN1PreparedElement {        
        public enum EnumType {
            
            @ASN1EnumItem ( name = "normalGame", hasTag = true , tag = 1 )
            normalGame , 
            @ASN1EnumItem ( name = "registeredOnlyGame", hasTag = true , tag = 2 )
            registeredOnlyGame , 
            @ASN1EnumItem ( name = "inviteOnlyGame", hasTag = true , tag = 3 )
            inviteOnlyGame , 
            @ASN1EnumItem ( name = "rankingGame", hasTag = true , tag = 4 )
            rankingGame , 
        }
        
        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(NetGameTypeEnumType.class);
        public IASN1PreparedElementData getPreparedData() {
            return preparedData;
        }

    }
                
        @ASN1Element ( name = "netGameType", isOptional =  false , hasTag =  false  , hasDefaultValue =  false  )
    
	private NetGameTypeEnumType netGameType = null;
                
  @ASN1Integer( name = "" )
    @ASN1ValueRangeConstraint ( 
		
		min = 2L, 
		
		max = 10L 
		
	   )
	   
        @ASN1Element ( name = "maxNumPlayers", isOptional =  false , hasTag =  false  , hasDefaultValue =  false  )
    
	private Integer maxNumPlayers = null;
                
  
        
    @ASN1PreparedElement
    @ASN1Choice ( name = "raiseIntervalMode" )
    public static class RaiseIntervalModeChoiceType implements IASN1PreparedElement {
            @ASN1Integer( name = "" )
    @ASN1ValueRangeConstraint ( 
		
		min = 1L, 
		
		max = 1000L 
		
	   )
	   
        @ASN1Element ( name = "raiseEveryHands", isOptional =  false , hasTag =  true, tag = 0 , hasDefaultValue =  false  )
    
	private Integer raiseEveryHands = null;
                
  @ASN1Integer( name = "" )
    @ASN1ValueRangeConstraint ( 
		
		min = 1L, 
		
		max = 1000L 
		
	   )
	   
        @ASN1Element ( name = "raiseEveryMinutes", isOptional =  false , hasTag =  true, tag = 1 , hasDefaultValue =  false  )
    
	private Integer raiseEveryMinutes = null;
                
  
        
        public Integer getRaiseEveryHands () {
            return this.raiseEveryHands;
        }

        public boolean isRaiseEveryHandsSelected () {
            return this.raiseEveryHands != null;
        }

        private void setRaiseEveryHands (Integer value) {
            this.raiseEveryHands = value;
        }

        
        public void selectRaiseEveryHands (Integer value) {
            this.raiseEveryHands = value;
            
                    setRaiseEveryMinutes(null);
                            
        }

        
  
        
        public Integer getRaiseEveryMinutes () {
            return this.raiseEveryMinutes;
        }

        public boolean isRaiseEveryMinutesSelected () {
            return this.raiseEveryMinutes != null;
        }

        private void setRaiseEveryMinutes (Integer value) {
            this.raiseEveryMinutes = value;
        }

        
        public void selectRaiseEveryMinutes (Integer value) {
            this.raiseEveryMinutes = value;
            
                    setRaiseEveryHands(null);
                            
        }

        
  

	    public void initWithDefaults() {
	    }

        public IASN1PreparedElementData getPreparedData() {
            return preparedData_RaiseIntervalModeChoiceType;
        }

        private static IASN1PreparedElementData preparedData_RaiseIntervalModeChoiceType = CoderFactory.getInstance().newPreparedElementData(RaiseIntervalModeChoiceType.class);

    }

                
        @ASN1Element ( name = "raiseIntervalMode", isOptional =  false , hasTag =  false  , hasDefaultValue =  false  )
    
	private RaiseIntervalModeChoiceType raiseIntervalMode = null;
                
  

    @ASN1PreparedElement
    @ASN1Enum (
        name = "EndRaiseModeEnumType"
    )
    public static class EndRaiseModeEnumType implements IASN1PreparedElement {        
        public enum EnumType {
            
            @ASN1EnumItem ( name = "doubleBlinds", hasTag = true , tag = 1 )
            doubleBlinds , 
            @ASN1EnumItem ( name = "raiseByEndValue", hasTag = true , tag = 2 )
            raiseByEndValue , 
            @ASN1EnumItem ( name = "keepLastBlind", hasTag = true , tag = 3 )
            keepLastBlind , 
        }
        
        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(EndRaiseModeEnumType.class);
        public IASN1PreparedElementData getPreparedData() {
            return preparedData;
        }

    }
                
        @ASN1Element ( name = "endRaiseMode", isOptional =  false , hasTag =  false  , hasDefaultValue =  false  )
    
	private EndRaiseModeEnumType endRaiseMode = null;
                
  @ASN1Integer( name = "" )
    @ASN1ValueRangeConstraint ( 
		
		min = 1L, 
		
		max = 11L 
		
	   )
	   
        @ASN1Element ( name = "proposedGuiSpeed", isOptional =  false , hasTag =  false  , hasDefaultValue =  false  )
    
	private Integer proposedGuiSpeed = null;
                
  @ASN1Integer( name = "" )
    @ASN1ValueRangeConstraint ( 
		
		min = 5L, 
		
		max = 20L 
		
	   )
	   
        @ASN1Element ( name = "delayBetweenHands", isOptional =  false , hasTag =  false  , hasDefaultValue =  false  )
    
	private Integer delayBetweenHands = null;
                
  @ASN1Integer( name = "" )
    @ASN1ValueRangeConstraint ( 
		
		min = 0L, 
		
		max = 60L 
		
	   )
	   
        @ASN1Element ( name = "playerActionTimeout", isOptional =  false , hasTag =  false  , hasDefaultValue =  false  )
    
	private Integer playerActionTimeout = null;
                
  @ASN1Integer( name = "" )
    @ASN1ValueRangeConstraint ( 
		
		min = 1L, 
		
		max = 20000L 
		
	   )
	   
        @ASN1Element ( name = "firstSmallBlind", isOptional =  false , hasTag =  false  , hasDefaultValue =  false  )
    
	private Integer firstSmallBlind = null;
                
  
        @ASN1Element ( name = "endRaiseSmallBlindValue", isOptional =  false , hasTag =  false  , hasDefaultValue =  false  )
    
	private InitialAmountOfMoney endRaiseSmallBlindValue = null;
                
  
        @ASN1Element ( name = "startMoney", isOptional =  false , hasTag =  false  , hasDefaultValue =  false  )
    
	private InitialNonZeroAmountOfMoney startMoney = null;
                
  
@ASN1SequenceOf( name = "manualBlinds", isSetOf = false ) 

    @ASN1ValueRangeConstraint ( 
		
		min = 0L, 
		
		max = 30L 
		
	   )
	   
        @ASN1Element ( name = "manualBlinds", isOptional =  false , hasTag =  false  , hasDefaultValue =  false  )
    
	private java.util.Collection<InitialNonZeroAmountOfMoney>  manualBlinds = null;
                
  
        
        public String getGameName () {
            return this.gameName;
        }

        

        public void setGameName (String value) {
            this.gameName = value;
        }
        
  
        
        public NetGameTypeEnumType getNetGameType () {
            return this.netGameType;
        }

        

        public void setNetGameType (NetGameTypeEnumType value) {
            this.netGameType = value;
        }
        
  
        
        public Integer getMaxNumPlayers () {
            return this.maxNumPlayers;
        }

        

        public void setMaxNumPlayers (Integer value) {
            this.maxNumPlayers = value;
        }
        
  
        
        public RaiseIntervalModeChoiceType getRaiseIntervalMode () {
            return this.raiseIntervalMode;
        }

        

        public void setRaiseIntervalMode (RaiseIntervalModeChoiceType value) {
            this.raiseIntervalMode = value;
        }
        
  
        
        public EndRaiseModeEnumType getEndRaiseMode () {
            return this.endRaiseMode;
        }

        

        public void setEndRaiseMode (EndRaiseModeEnumType value) {
            this.endRaiseMode = value;
        }
        
  
        
        public Integer getProposedGuiSpeed () {
            return this.proposedGuiSpeed;
        }

        

        public void setProposedGuiSpeed (Integer value) {
            this.proposedGuiSpeed = value;
        }
        
  
        
        public Integer getDelayBetweenHands () {
            return this.delayBetweenHands;
        }

        

        public void setDelayBetweenHands (Integer value) {
            this.delayBetweenHands = value;
        }
        
  
        
        public Integer getPlayerActionTimeout () {
            return this.playerActionTimeout;
        }

        

        public void setPlayerActionTimeout (Integer value) {
            this.playerActionTimeout = value;
        }
        
  
        
        public Integer getFirstSmallBlind () {
            return this.firstSmallBlind;
        }

        

        public void setFirstSmallBlind (Integer value) {
            this.firstSmallBlind = value;
        }
        
  
        
        public InitialAmountOfMoney getEndRaiseSmallBlindValue () {
            return this.endRaiseSmallBlindValue;
        }

        

        public void setEndRaiseSmallBlindValue (InitialAmountOfMoney value) {
            this.endRaiseSmallBlindValue = value;
        }
        
  
        
        public InitialNonZeroAmountOfMoney getStartMoney () {
            return this.startMoney;
        }

        

        public void setStartMoney (InitialNonZeroAmountOfMoney value) {
            this.startMoney = value;
        }
        
  
        
        public java.util.Collection<InitialNonZeroAmountOfMoney>  getManualBlinds () {
            return this.manualBlinds;
        }

        

        public void setManualBlinds (java.util.Collection<InitialNonZeroAmountOfMoney>  value) {
            this.manualBlinds = value;
        }
        
  
                    
        
        public void initWithDefaults() {
            
        }

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

            
    }
            