
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 = "AuthMessage" )
    public class AuthMessage implements IASN1PreparedElement {
                
        
        
    @ASN1PreparedElement
    @ASN1Choice ( name = "AuthMessage" )
    public static class AuthMessageChoiceType implements IASN1PreparedElement {
            
        @ASN1Element ( name = "authServerChallenge", isOptional =  false , hasTag =  true, tag = 0 , hasDefaultValue =  false  )
    
	private AuthServerChallenge authServerChallenge = null;
                
  
        @ASN1Element ( name = "authClientResponse", isOptional =  false , hasTag =  true, tag = 1 , hasDefaultValue =  false  )
    
	private AuthClientResponse authClientResponse = null;
                
  
        @ASN1Element ( name = "authServerVerification", isOptional =  false , hasTag =  true, tag = 2 , hasDefaultValue =  false  )
    
	private AuthServerVerification authServerVerification = null;
                
  
        
        public AuthServerChallenge getAuthServerChallenge () {
            return this.authServerChallenge;
        }

        public boolean isAuthServerChallengeSelected () {
            return this.authServerChallenge != null;
        }

        private void setAuthServerChallenge (AuthServerChallenge value) {
            this.authServerChallenge = value;
        }

        
        public void selectAuthServerChallenge (AuthServerChallenge value) {
            this.authServerChallenge = value;
            
                    setAuthClientResponse(null);
                
                    setAuthServerVerification(null);
                            
        }

        
  
        
        public AuthClientResponse getAuthClientResponse () {
            return this.authClientResponse;
        }

        public boolean isAuthClientResponseSelected () {
            return this.authClientResponse != null;
        }

        private void setAuthClientResponse (AuthClientResponse value) {
            this.authClientResponse = value;
        }

        
        public void selectAuthClientResponse (AuthClientResponse value) {
            this.authClientResponse = value;
            
                    setAuthServerChallenge(null);
                
                    setAuthServerVerification(null);
                            
        }

        
  
        
        public AuthServerVerification getAuthServerVerification () {
            return this.authServerVerification;
        }

        public boolean isAuthServerVerificationSelected () {
            return this.authServerVerification != null;
        }

        private void setAuthServerVerification (AuthServerVerification value) {
            this.authServerVerification = value;
        }

        
        public void selectAuthServerVerification (AuthServerVerification value) {
            this.authServerVerification = value;
            
                    setAuthServerChallenge(null);
                
                    setAuthClientResponse(null);
                            
        }

        
  

	    public void initWithDefaults() {
	    }

        public IASN1PreparedElementData getPreparedData() {
            return preparedData_AuthMessageChoiceType;
        }

        private static IASN1PreparedElementData preparedData_AuthMessageChoiceType = CoderFactory.getInstance().newPreparedElementData(AuthMessageChoiceType.class);

    }

                
        @ASN1Element ( name = "AuthMessage", isOptional =  false , hasTag =  true, tag = 2, 
        tagClass =  TagClass.Application  , hasDefaultValue =  false  )
    
        private AuthMessageChoiceType  value;        

        
        
        public AuthMessage () {
        }
        
        
        
        public void setValue(AuthMessageChoiceType value) {
            this.value = value;
        }
        
        
        
        public AuthMessageChoiceType getValue() {
            return this.value;
        }            
        

	    public void initWithDefaults() {
	    }

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

            
    }
            