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

       @ASN1PreparedElement
       @ASN1Sequence ( name = "GameListMessage" , isSet = false )
       public static class GameListMessageSequenceType implements IASN1PreparedElement {
                
        @ASN1Element ( name = "gameId", isOptional =  false , hasTag =  false  , hasDefaultValue =  false  )
    
	private NonZeroId gameId = null;
                
  
        
    @ASN1PreparedElement
    @ASN1Choice ( name = "gameListNotification" )
    public static class GameListNotificationChoiceType implements IASN1PreparedElement {
            
        @ASN1Element ( name = "gameListNew", isOptional =  false , hasTag =  true, tag = 0 , hasDefaultValue =  false  )
    
	private GameListNew gameListNew = null;
                
  
        @ASN1Element ( name = "gameListUpdate", isOptional =  false , hasTag =  true, tag = 1 , hasDefaultValue =  false  )
    
	private GameListUpdate gameListUpdate = null;
                
  
        @ASN1Element ( name = "gameListPlayerJoined", isOptional =  false , hasTag =  true, tag = 2 , hasDefaultValue =  false  )
    
	private GameListPlayerJoined gameListPlayerJoined = null;
                
  
        @ASN1Element ( name = "gameListPlayerLeft", isOptional =  false , hasTag =  true, tag = 3 , hasDefaultValue =  false  )
    
	private GameListPlayerLeft gameListPlayerLeft = null;
                
  
        @ASN1Element ( name = "gameListAdminChanged", isOptional =  false , hasTag =  true, tag = 4 , hasDefaultValue =  false  )
    
	private GameListAdminChanged gameListAdminChanged = null;
                
  
        
        public GameListNew getGameListNew () {
            return this.gameListNew;
        }

        public boolean isGameListNewSelected () {
            return this.gameListNew != null;
        }

        private void setGameListNew (GameListNew value) {
            this.gameListNew = value;
        }

        
        public void selectGameListNew (GameListNew value) {
            this.gameListNew = value;
            
                    setGameListUpdate(null);
                
                    setGameListPlayerJoined(null);
                
                    setGameListPlayerLeft(null);
                
                    setGameListAdminChanged(null);
                            
        }

        
  
        
        public GameListUpdate getGameListUpdate () {
            return this.gameListUpdate;
        }

        public boolean isGameListUpdateSelected () {
            return this.gameListUpdate != null;
        }

        private void setGameListUpdate (GameListUpdate value) {
            this.gameListUpdate = value;
        }

        
        public void selectGameListUpdate (GameListUpdate value) {
            this.gameListUpdate = value;
            
                    setGameListNew(null);
                
                    setGameListPlayerJoined(null);
                
                    setGameListPlayerLeft(null);
                
                    setGameListAdminChanged(null);
                            
        }

        
  
        
        public GameListPlayerJoined getGameListPlayerJoined () {
            return this.gameListPlayerJoined;
        }

        public boolean isGameListPlayerJoinedSelected () {
            return this.gameListPlayerJoined != null;
        }

        private void setGameListPlayerJoined (GameListPlayerJoined value) {
            this.gameListPlayerJoined = value;
        }

        
        public void selectGameListPlayerJoined (GameListPlayerJoined value) {
            this.gameListPlayerJoined = value;
            
                    setGameListNew(null);
                
                    setGameListUpdate(null);
                
                    setGameListPlayerLeft(null);
                
                    setGameListAdminChanged(null);
                            
        }

        
  
        
        public GameListPlayerLeft getGameListPlayerLeft () {
            return this.gameListPlayerLeft;
        }

        public boolean isGameListPlayerLeftSelected () {
            return this.gameListPlayerLeft != null;
        }

        private void setGameListPlayerLeft (GameListPlayerLeft value) {
            this.gameListPlayerLeft = value;
        }

        
        public void selectGameListPlayerLeft (GameListPlayerLeft value) {
            this.gameListPlayerLeft = value;
            
                    setGameListNew(null);
                
                    setGameListUpdate(null);
                
                    setGameListPlayerJoined(null);
                
                    setGameListAdminChanged(null);
                            
        }

        
  
        
        public GameListAdminChanged getGameListAdminChanged () {
            return this.gameListAdminChanged;
        }

        public boolean isGameListAdminChangedSelected () {
            return this.gameListAdminChanged != null;
        }

        private void setGameListAdminChanged (GameListAdminChanged value) {
            this.gameListAdminChanged = value;
        }

        
        public void selectGameListAdminChanged (GameListAdminChanged value) {
            this.gameListAdminChanged = value;
            
                    setGameListNew(null);
                
                    setGameListUpdate(null);
                
                    setGameListPlayerJoined(null);
                
                    setGameListPlayerLeft(null);
                            
        }

        
  

	    public void initWithDefaults() {
	    }

        public IASN1PreparedElementData getPreparedData() {
            return preparedData_GameListNotificationChoiceType;
        }

        private static IASN1PreparedElementData preparedData_GameListNotificationChoiceType = CoderFactory.getInstance().newPreparedElementData(GameListNotificationChoiceType.class);

    }

                
        @ASN1Element ( name = "gameListNotification", isOptional =  false , hasTag =  false  , hasDefaultValue =  false  )
    
	private GameListNotificationChoiceType gameListNotification = null;
                
  
        
        public NonZeroId getGameId () {
            return this.gameId;
        }

        

        public void setGameId (NonZeroId value) {
            this.gameId = value;
        }
        
  
        
        public GameListNotificationChoiceType getGameListNotification () {
            return this.gameListNotification;
        }

        

        public void setGameListNotification (GameListNotificationChoiceType value) {
            this.gameListNotification = value;
        }
        
  
                
                
        public void initWithDefaults() {
            
        }

        public IASN1PreparedElementData getPreparedData() {
            return preparedData_GameListMessageSequenceType;
        }

       private static IASN1PreparedElementData preparedData_GameListMessageSequenceType = CoderFactory.getInstance().newPreparedElementData(GameListMessageSequenceType.class);
                
       }

       
                
        @ASN1Element ( name = "GameListMessage", isOptional =  false , hasTag =  true, tag = 7, 
        tagClass =  TagClass.Application  , hasDefaultValue =  false  )
    
        private GameListMessageSequenceType  value;        

        
        
        public GameListMessage () {
        }
        
        
        
        public void setValue(GameListMessageSequenceType value) {
            this.value = value;
        }
        
        
        
        public GameListMessageSequenceType getValue() {
            return this.value;
        }            
        

	    public void initWithDefaults() {
	    }

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

            
    }
            