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

       @ASN1PreparedElement
       @ASN1Sequence ( name = "GamePlayerMessage" , isSet = false )
       public static class GamePlayerMessageSequenceType implements IASN1PreparedElement {
                
        @ASN1Element ( name = "gameId", isOptional =  false , hasTag =  false  , hasDefaultValue =  false  )
    
	private NonZeroId gameId = null;
                
  
        
    @ASN1PreparedElement
    @ASN1Choice ( name = "gamePlayerNotification" )
    public static class GamePlayerNotificationChoiceType implements IASN1PreparedElement {
            
        @ASN1Element ( name = "gamePlayerJoined", isOptional =  false , hasTag =  true, tag = 0 , hasDefaultValue =  false  )
    
	private GamePlayerJoined gamePlayerJoined = null;
                
  
        @ASN1Element ( name = "gamePlayerLeft", isOptional =  false , hasTag =  true, tag = 1 , hasDefaultValue =  false  )
    
	private GamePlayerLeft gamePlayerLeft = null;
                
  
        @ASN1Element ( name = "gameAdminChanged", isOptional =  false , hasTag =  true, tag = 2 , hasDefaultValue =  false  )
    
	private GameAdminChanged gameAdminChanged = null;
                
  
        @ASN1Element ( name = "removedFromGame", isOptional =  false , hasTag =  true, tag = 3 , hasDefaultValue =  false  )
    
	private RemovedFromGame removedFromGame = null;
                
  
        
        public GamePlayerJoined getGamePlayerJoined () {
            return this.gamePlayerJoined;
        }

        public boolean isGamePlayerJoinedSelected () {
            return this.gamePlayerJoined != null;
        }

        private void setGamePlayerJoined (GamePlayerJoined value) {
            this.gamePlayerJoined = value;
        }

        
        public void selectGamePlayerJoined (GamePlayerJoined value) {
            this.gamePlayerJoined = value;
            
                    setGamePlayerLeft(null);
                
                    setGameAdminChanged(null);
                
                    setRemovedFromGame(null);
                            
        }

        
  
        
        public GamePlayerLeft getGamePlayerLeft () {
            return this.gamePlayerLeft;
        }

        public boolean isGamePlayerLeftSelected () {
            return this.gamePlayerLeft != null;
        }

        private void setGamePlayerLeft (GamePlayerLeft value) {
            this.gamePlayerLeft = value;
        }

        
        public void selectGamePlayerLeft (GamePlayerLeft value) {
            this.gamePlayerLeft = value;
            
                    setGamePlayerJoined(null);
                
                    setGameAdminChanged(null);
                
                    setRemovedFromGame(null);
                            
        }

        
  
        
        public GameAdminChanged getGameAdminChanged () {
            return this.gameAdminChanged;
        }

        public boolean isGameAdminChangedSelected () {
            return this.gameAdminChanged != null;
        }

        private void setGameAdminChanged (GameAdminChanged value) {
            this.gameAdminChanged = value;
        }

        
        public void selectGameAdminChanged (GameAdminChanged value) {
            this.gameAdminChanged = value;
            
                    setGamePlayerJoined(null);
                
                    setGamePlayerLeft(null);
                
                    setRemovedFromGame(null);
                            
        }

        
  
        
        public RemovedFromGame getRemovedFromGame () {
            return this.removedFromGame;
        }

        public boolean isRemovedFromGameSelected () {
            return this.removedFromGame != null;
        }

        private void setRemovedFromGame (RemovedFromGame value) {
            this.removedFromGame = value;
        }

        
        public void selectRemovedFromGame (RemovedFromGame value) {
            this.removedFromGame = value;
            
                    setGamePlayerJoined(null);
                
                    setGamePlayerLeft(null);
                
                    setGameAdminChanged(null);
                            
        }

        
  

	    public void initWithDefaults() {
	    }

        public IASN1PreparedElementData getPreparedData() {
            return preparedData_GamePlayerNotificationChoiceType;
        }

        private static IASN1PreparedElementData preparedData_GamePlayerNotificationChoiceType = CoderFactory.getInstance().newPreparedElementData(GamePlayerNotificationChoiceType.class);

    }

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

        

        public void setGameId (NonZeroId value) {
            this.gameId = value;
        }
        
  
        
        public GamePlayerNotificationChoiceType getGamePlayerNotification () {
            return this.gamePlayerNotification;
        }

        

        public void setGamePlayerNotification (GamePlayerNotificationChoiceType value) {
            this.gamePlayerNotification = value;
        }
        
  
                
                
        public void initWithDefaults() {
            
        }

        public IASN1PreparedElementData getPreparedData() {
            return preparedData_GamePlayerMessageSequenceType;
        }

       private static IASN1PreparedElementData preparedData_GamePlayerMessageSequenceType = CoderFactory.getInstance().newPreparedElementData(GamePlayerMessageSequenceType.class);
                
       }

       
                
        @ASN1Element ( name = "GamePlayerMessage", isOptional =  false , hasTag =  true, tag = 13, 
        tagClass =  TagClass.Application  , hasDefaultValue =  false  )
    
        private GamePlayerMessageSequenceType  value;        

        
        
        public GamePlayerMessage () {
        }
        
        
        
        public void setValue(GamePlayerMessageSequenceType value) {
            this.value = value;
        }
        
        
        
        public GamePlayerMessageSequenceType getValue() {
            return this.value;
        }            
        

	    public void initWithDefaults() {
	    }

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

            
    }
            