
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 = "JoinGameRequestMessage" )
    public class JoinGameRequestMessage implements IASN1PreparedElement {
                
        

       @ASN1PreparedElement
       @ASN1Sequence ( name = "JoinGameRequestMessage" , isSet = false )
       public static class JoinGameRequestMessageSequenceType implements IASN1PreparedElement {
                
        
    @ASN1PreparedElement
    @ASN1Choice ( name = "joinGameAction" )
    public static class JoinGameActionChoiceType implements IASN1PreparedElement {
            
        @ASN1Element ( name = "joinExistingGame", isOptional =  false , hasTag =  true, tag = 0 , hasDefaultValue =  false  )
    
	private JoinExistingGame joinExistingGame = null;
                
  
        @ASN1Element ( name = "joinNewGame", isOptional =  false , hasTag =  true, tag = 1 , hasDefaultValue =  false  )
    
	private JoinNewGame joinNewGame = null;
                
  
        @ASN1Element ( name = "rejoinExistingGame", isOptional =  false , hasTag =  true, tag = 2 , hasDefaultValue =  false  )
    
	private RejoinExistingGame rejoinExistingGame = null;
                
  
        
        public JoinExistingGame getJoinExistingGame () {
            return this.joinExistingGame;
        }

        public boolean isJoinExistingGameSelected () {
            return this.joinExistingGame != null;
        }

        private void setJoinExistingGame (JoinExistingGame value) {
            this.joinExistingGame = value;
        }

        
        public void selectJoinExistingGame (JoinExistingGame value) {
            this.joinExistingGame = value;
            
                    setJoinNewGame(null);
                
                    setRejoinExistingGame(null);
                            
        }

        
  
        
        public JoinNewGame getJoinNewGame () {
            return this.joinNewGame;
        }

        public boolean isJoinNewGameSelected () {
            return this.joinNewGame != null;
        }

        private void setJoinNewGame (JoinNewGame value) {
            this.joinNewGame = value;
        }

        
        public void selectJoinNewGame (JoinNewGame value) {
            this.joinNewGame = value;
            
                    setJoinExistingGame(null);
                
                    setRejoinExistingGame(null);
                            
        }

        
  
        
        public RejoinExistingGame getRejoinExistingGame () {
            return this.rejoinExistingGame;
        }

        public boolean isRejoinExistingGameSelected () {
            return this.rejoinExistingGame != null;
        }

        private void setRejoinExistingGame (RejoinExistingGame value) {
            this.rejoinExistingGame = value;
        }

        
        public void selectRejoinExistingGame (RejoinExistingGame value) {
            this.rejoinExistingGame = value;
            
                    setJoinExistingGame(null);
                
                    setJoinNewGame(null);
                            
        }

        
  

	    public void initWithDefaults() {
	    }

        public IASN1PreparedElementData getPreparedData() {
            return preparedData_JoinGameActionChoiceType;
        }

        private static IASN1PreparedElementData preparedData_JoinGameActionChoiceType = CoderFactory.getInstance().newPreparedElementData(JoinGameActionChoiceType.class);

    }

                
        @ASN1Element ( name = "joinGameAction", isOptional =  false , hasTag =  false  , hasDefaultValue =  false  )
    
	private JoinGameActionChoiceType joinGameAction = null;
                
  @ASN1Boolean( name = "" )
    
        @ASN1Element ( name = "autoLeave", isOptional =  false , hasTag =  false  , hasDefaultValue =  false  )
    
	private Boolean autoLeave = null;
                
  
        
        public JoinGameActionChoiceType getJoinGameAction () {
            return this.joinGameAction;
        }

        

        public void setJoinGameAction (JoinGameActionChoiceType value) {
            this.joinGameAction = value;
        }
        
  
        
        public Boolean getAutoLeave () {
            return this.autoLeave;
        }

        

        public void setAutoLeave (Boolean value) {
            this.autoLeave = value;
        }
        
  
                
                
        public void initWithDefaults() {
            
        }

        public IASN1PreparedElementData getPreparedData() {
            return preparedData_JoinGameRequestMessageSequenceType;
        }

       private static IASN1PreparedElementData preparedData_JoinGameRequestMessageSequenceType = CoderFactory.getInstance().newPreparedElementData(JoinGameRequestMessageSequenceType.class);
                
       }

       
                
        @ASN1Element ( name = "JoinGameRequestMessage", isOptional =  false , hasTag =  true, tag = 11, 
        tagClass =  TagClass.Application  , hasDefaultValue =  false  )
    
        private JoinGameRequestMessageSequenceType  value;        

        
        
        public JoinGameRequestMessage () {
        }
        
        
        
        public void setValue(JoinGameRequestMessageSequenceType value) {
            this.value = value;
        }
        
        
        
        public JoinGameRequestMessageSequenceType getValue() {
            return this.value;
        }            
        

	    public void initWithDefaults() {
	    }

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

            
    }
            