/*
 * An XML document type.
 * Localname: authentication
 * Namespace: http://www.bea.com/2003/03/wli/tpm
 * Java type: com.bea.x2003.x03.wli.tpm.AuthenticationDocument
 *
 * Automatically generated - do not modify.
 */
package com.bea.x2003.x03.wli.tpm;


/**
 * A document containing one authentication(@http://www.bea.com/2003/03/wli/tpm) element.
 *
 * This is a complex type.
 */
public interface AuthenticationDocument extends org.apache.xmlbeans.XmlObject
{
    public static final org.apache.xmlbeans.SchemaType type = (org.apache.xmlbeans.SchemaType)
        org.apache.xmlbeans.XmlBeans.typeSystemForClassLoader(AuthenticationDocument.class.getClassLoader(), "schemaorg_apache_xmlbeans.system.SchemasTypeSystem").resolveHandle("authenticationf3e0doctype");
    
    /**
     * Gets the "authentication" element
     */
    com.bea.x2003.x03.wli.tpm.AuthenticationDocument.Authentication getAuthentication();
    
    /**
     * Sets the "authentication" element
     */
    void setAuthentication(com.bea.x2003.x03.wli.tpm.AuthenticationDocument.Authentication authentication);
    
    /**
     * Appends and returns a new empty "authentication" element
     */
    com.bea.x2003.x03.wli.tpm.AuthenticationDocument.Authentication addNewAuthentication();
    
    /**
     * An XML authentication(@http://www.bea.com/2003/03/wli/tpm).
     *
     * This is a complex type.
     */
    public interface Authentication extends org.apache.xmlbeans.XmlObject
    {
        public static final org.apache.xmlbeans.SchemaType type = (org.apache.xmlbeans.SchemaType)
            org.apache.xmlbeans.XmlBeans.typeSystemForClassLoader(Authentication.class.getClassLoader(), "schemaorg_apache_xmlbeans.system.SchemasTypeSystem").resolveHandle("authentication52f4elemtype");
        
        /**
         * Gets the "client-partner-name" attribute
         */
        java.lang.String getClientPartnerName();
        
        /**
         * Gets (as xml) the "client-partner-name" attribute
         */
        com.bea.x2003.x03.wli.tpm.Reference xgetClientPartnerName();
        
        /**
         * Sets the "client-partner-name" attribute
         */
        void setClientPartnerName(java.lang.String clientPartnerName);
        
        /**
         * Sets (as xml) the "client-partner-name" attribute
         */
        void xsetClientPartnerName(com.bea.x2003.x03.wli.tpm.Reference clientPartnerName);
        
        /**
         * Gets the "client-authentication" attribute
         */
        com.bea.x2003.x03.wli.tpm.AuthenticationDocument.Authentication.ClientAuthentication.Enum getClientAuthentication();
        
        /**
         * Gets (as xml) the "client-authentication" attribute
         */
        com.bea.x2003.x03.wli.tpm.AuthenticationDocument.Authentication.ClientAuthentication xgetClientAuthentication();
        
        /**
         * True if has "client-authentication" attribute
         */
        boolean isSetClientAuthentication();
        
        /**
         * Sets the "client-authentication" attribute
         */
        void setClientAuthentication(com.bea.x2003.x03.wli.tpm.AuthenticationDocument.Authentication.ClientAuthentication.Enum clientAuthentication);
        
        /**
         * Sets (as xml) the "client-authentication" attribute
         */
        void xsetClientAuthentication(com.bea.x2003.x03.wli.tpm.AuthenticationDocument.Authentication.ClientAuthentication clientAuthentication);
        
        /**
         * Unsets the "client-authentication" attribute
         */
        void unsetClientAuthentication();
        
        /**
         * Gets the "username" attribute
         */
        java.lang.String getUsername();
        
        /**
         * Gets (as xml) the "username" attribute
         */
        org.apache.xmlbeans.XmlString xgetUsername();
        
        /**
         * True if has "username" attribute
         */
        boolean isSetUsername();
        
        /**
         * Sets the "username" attribute
         */
        void setUsername(java.lang.String username);
        
        /**
         * Sets (as xml) the "username" attribute
         */
        void xsetUsername(org.apache.xmlbeans.XmlString username);
        
        /**
         * Unsets the "username" attribute
         */
        void unsetUsername();
        
        /**
         * Gets the "password-alias" attribute
         */
        java.lang.String getPasswordAlias();
        
        /**
         * Gets (as xml) the "password-alias" attribute
         */
        org.apache.xmlbeans.XmlString xgetPasswordAlias();
        
        /**
         * True if has "password-alias" attribute
         */
        boolean isSetPasswordAlias();
        
        /**
         * Sets the "password-alias" attribute
         */
        void setPasswordAlias(java.lang.String passwordAlias);
        
        /**
         * Sets (as xml) the "password-alias" attribute
         */
        void xsetPasswordAlias(org.apache.xmlbeans.XmlString passwordAlias);
        
        /**
         * Unsets the "password-alias" attribute
         */
        void unsetPasswordAlias();
        
        /**
         * Gets the "client-certificate-name" attribute
         */
        java.lang.String getClientCertificateName();
        
        /**
         * Gets (as xml) the "client-certificate-name" attribute
         */
        com.bea.x2003.x03.wli.tpm.Reference xgetClientCertificateName();
        
        /**
         * True if has "client-certificate-name" attribute
         */
        boolean isSetClientCertificateName();
        
        /**
         * Sets the "client-certificate-name" attribute
         */
        void setClientCertificateName(java.lang.String clientCertificateName);
        
        /**
         * Sets (as xml) the "client-certificate-name" attribute
         */
        void xsetClientCertificateName(com.bea.x2003.x03.wli.tpm.Reference clientCertificateName);
        
        /**
         * Unsets the "client-certificate-name" attribute
         */
        void unsetClientCertificateName();
        
        /**
         * Gets the "server-authentication" attribute
         */
        com.bea.x2003.x03.wli.tpm.AuthenticationDocument.Authentication.ServerAuthentication.Enum getServerAuthentication();
        
        /**
         * Gets (as xml) the "server-authentication" attribute
         */
        com.bea.x2003.x03.wli.tpm.AuthenticationDocument.Authentication.ServerAuthentication xgetServerAuthentication();
        
        /**
         * True if has "server-authentication" attribute
         */
        boolean isSetServerAuthentication();
        
        /**
         * Sets the "server-authentication" attribute
         */
        void setServerAuthentication(com.bea.x2003.x03.wli.tpm.AuthenticationDocument.Authentication.ServerAuthentication.Enum serverAuthentication);
        
        /**
         * Sets (as xml) the "server-authentication" attribute
         */
        void xsetServerAuthentication(com.bea.x2003.x03.wli.tpm.AuthenticationDocument.Authentication.ServerAuthentication serverAuthentication);
        
        /**
         * Unsets the "server-authentication" attribute
         */
        void unsetServerAuthentication();
        
        /**
         * Gets the "server-certificate-name" attribute
         */
        java.lang.String getServerCertificateName();
        
        /**
         * Gets (as xml) the "server-certificate-name" attribute
         */
        com.bea.x2003.x03.wli.tpm.Reference xgetServerCertificateName();
        
        /**
         * True if has "server-certificate-name" attribute
         */
        boolean isSetServerCertificateName();
        
        /**
         * Sets the "server-certificate-name" attribute
         */
        void setServerCertificateName(java.lang.String serverCertificateName);
        
        /**
         * Sets (as xml) the "server-certificate-name" attribute
         */
        void xsetServerCertificateName(com.bea.x2003.x03.wli.tpm.Reference serverCertificateName);
        
        /**
         * Unsets the "server-certificate-name" attribute
         */
        void unsetServerCertificateName();
        
        /**
         * An XML client-authentication(@).
         *
         * This is an atomic type that is a restriction of com.bea.x2003.x03.wli.tpm.AuthenticationDocument$Authentication$ClientAuthentication.
         */
        public interface ClientAuthentication extends org.apache.xmlbeans.XmlNMTOKEN
        {
            public static final org.apache.xmlbeans.SchemaType type = (org.apache.xmlbeans.SchemaType)
                org.apache.xmlbeans.XmlBeans.typeSystemForClassLoader(ClientAuthentication.class.getClassLoader(), "schemaorg_apache_xmlbeans.system.SchemasTypeSystem").resolveHandle("clientauthentication5a12attrtype");
            
            org.apache.xmlbeans.StringEnumAbstractBase enumValue();
            void set(org.apache.xmlbeans.StringEnumAbstractBase e);
            
            static final Enum NONE = Enum.forString("NONE");
            static final Enum BASIC = Enum.forString("BASIC");
            static final Enum SSL_CERT_MUTUAL = Enum.forString("SSL_CERT_MUTUAL");
            
            static final int INT_NONE = Enum.INT_NONE;
            static final int INT_BASIC = Enum.INT_BASIC;
            static final int INT_SSL_CERT_MUTUAL = Enum.INT_SSL_CERT_MUTUAL;
            
            /**
             * Enumeration value class for com.bea.x2003.x03.wli.tpm.AuthenticationDocument$Authentication$ClientAuthentication.
             * These enum values can be used as follows:
             * <pre>
             * enum.toString(); // returns the string value of the enum
             * enum.intValue(); // returns an int value, useful for switches
             * // e.g., case Enum.INT_NONE
             * Enum.forString(s); // returns the enum value for a string
             * Enum.forInt(i); // returns the enum value for an int
             * </pre>
             * Enumeration objects are immutable singleton objects that
             * can be compared using == object equality. They have no
             * public constructor. See the constants defined within this
             * class for all the valid values.
             */
            static final class Enum extends org.apache.xmlbeans.StringEnumAbstractBase
            {
                /**
                 * Returns the enum value for a string, or null if none.
                 */
                public static Enum forString(java.lang.String s)
                    { return (Enum)table.forString(s); }
                /**
                 * Returns the enum value corresponding to an int, or null if none.
                 */
                public static Enum forInt(int i)
                    { return (Enum)table.forInt(i); }
                
                private Enum(java.lang.String s, int i)
                    { super(s, i); }
                
                static final int INT_NONE = 1;
                static final int INT_BASIC = 2;
                static final int INT_SSL_CERT_MUTUAL = 3;
                
                public static final org.apache.xmlbeans.StringEnumAbstractBase.Table table =
                    new org.apache.xmlbeans.StringEnumAbstractBase.Table
                (
                    new Enum[]
                    {
                      new Enum("NONE", INT_NONE),
                      new Enum("BASIC", INT_BASIC),
                      new Enum("SSL_CERT_MUTUAL", INT_SSL_CERT_MUTUAL),
                    }
                );
                private static final long serialVersionUID = 1L;
                private java.lang.Object readResolve() { return forInt(intValue()); } 
            }
            
            /**
             * A factory class with static methods for creating instances
             * of this type.
             */
            
            public static final class Factory
            {
                public static com.bea.x2003.x03.wli.tpm.AuthenticationDocument.Authentication.ClientAuthentication newValue(java.lang.Object obj) {
                  return (com.bea.x2003.x03.wli.tpm.AuthenticationDocument.Authentication.ClientAuthentication) type.newValue( obj ); }
                
                public static com.bea.x2003.x03.wli.tpm.AuthenticationDocument.Authentication.ClientAuthentication newInstance() {
                  return (com.bea.x2003.x03.wli.tpm.AuthenticationDocument.Authentication.ClientAuthentication) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().newInstance( type, null ); }
                
                public static com.bea.x2003.x03.wli.tpm.AuthenticationDocument.Authentication.ClientAuthentication newInstance(org.apache.xmlbeans.XmlOptions options) {
                  return (com.bea.x2003.x03.wli.tpm.AuthenticationDocument.Authentication.ClientAuthentication) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().newInstance( type, options ); }
                
                private Factory() { } // No instance of this class allowed
            }
        }
        
        /**
         * An XML server-authentication(@).
         *
         * This is an atomic type that is a restriction of com.bea.x2003.x03.wli.tpm.AuthenticationDocument$Authentication$ServerAuthentication.
         */
        public interface ServerAuthentication extends org.apache.xmlbeans.XmlNMTOKEN
        {
            public static final org.apache.xmlbeans.SchemaType type = (org.apache.xmlbeans.SchemaType)
                org.apache.xmlbeans.XmlBeans.typeSystemForClassLoader(ServerAuthentication.class.getClassLoader(), "schemaorg_apache_xmlbeans.system.SchemasTypeSystem").resolveHandle("serverauthentication698aattrtype");
            
            org.apache.xmlbeans.StringEnumAbstractBase enumValue();
            void set(org.apache.xmlbeans.StringEnumAbstractBase e);
            
            static final Enum NONE = Enum.forString("NONE");
            static final Enum SSL_CERT = Enum.forString("SSL_CERT");
            
            static final int INT_NONE = Enum.INT_NONE;
            static final int INT_SSL_CERT = Enum.INT_SSL_CERT;
            
            /**
             * Enumeration value class for com.bea.x2003.x03.wli.tpm.AuthenticationDocument$Authentication$ServerAuthentication.
             * These enum values can be used as follows:
             * <pre>
             * enum.toString(); // returns the string value of the enum
             * enum.intValue(); // returns an int value, useful for switches
             * // e.g., case Enum.INT_NONE
             * Enum.forString(s); // returns the enum value for a string
             * Enum.forInt(i); // returns the enum value for an int
             * </pre>
             * Enumeration objects are immutable singleton objects that
             * can be compared using == object equality. They have no
             * public constructor. See the constants defined within this
             * class for all the valid values.
             */
            static final class Enum extends org.apache.xmlbeans.StringEnumAbstractBase
            {
                /**
                 * Returns the enum value for a string, or null if none.
                 */
                public static Enum forString(java.lang.String s)
                    { return (Enum)table.forString(s); }
                /**
                 * Returns the enum value corresponding to an int, or null if none.
                 */
                public static Enum forInt(int i)
                    { return (Enum)table.forInt(i); }
                
                private Enum(java.lang.String s, int i)
                    { super(s, i); }
                
                static final int INT_NONE = 1;
                static final int INT_SSL_CERT = 2;
                
                public static final org.apache.xmlbeans.StringEnumAbstractBase.Table table =
                    new org.apache.xmlbeans.StringEnumAbstractBase.Table
                (
                    new Enum[]
                    {
                      new Enum("NONE", INT_NONE),
                      new Enum("SSL_CERT", INT_SSL_CERT),
                    }
                );
                private static final long serialVersionUID = 1L;
                private java.lang.Object readResolve() { return forInt(intValue()); } 
            }
            
            /**
             * A factory class with static methods for creating instances
             * of this type.
             */
            
            public static final class Factory
            {
                public static com.bea.x2003.x03.wli.tpm.AuthenticationDocument.Authentication.ServerAuthentication newValue(java.lang.Object obj) {
                  return (com.bea.x2003.x03.wli.tpm.AuthenticationDocument.Authentication.ServerAuthentication) type.newValue( obj ); }
                
                public static com.bea.x2003.x03.wli.tpm.AuthenticationDocument.Authentication.ServerAuthentication newInstance() {
                  return (com.bea.x2003.x03.wli.tpm.AuthenticationDocument.Authentication.ServerAuthentication) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().newInstance( type, null ); }
                
                public static com.bea.x2003.x03.wli.tpm.AuthenticationDocument.Authentication.ServerAuthentication newInstance(org.apache.xmlbeans.XmlOptions options) {
                  return (com.bea.x2003.x03.wli.tpm.AuthenticationDocument.Authentication.ServerAuthentication) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().newInstance( type, options ); }
                
                private Factory() { } // No instance of this class allowed
            }
        }
        
        /**
         * A factory class with static methods for creating instances
         * of this type.
         */
        
        public static final class Factory
        {
            public static com.bea.x2003.x03.wli.tpm.AuthenticationDocument.Authentication newInstance() {
              return (com.bea.x2003.x03.wli.tpm.AuthenticationDocument.Authentication) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().newInstance( type, null ); }
            
            public static com.bea.x2003.x03.wli.tpm.AuthenticationDocument.Authentication newInstance(org.apache.xmlbeans.XmlOptions options) {
              return (com.bea.x2003.x03.wli.tpm.AuthenticationDocument.Authentication) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().newInstance( type, options ); }
            
            private Factory() { } // No instance of this class allowed
        }
    }
    
    /**
     * A factory class with static methods for creating instances
     * of this type.
     */
    
    public static final class Factory
    {
        public static com.bea.x2003.x03.wli.tpm.AuthenticationDocument newInstance() {
          return (com.bea.x2003.x03.wli.tpm.AuthenticationDocument) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().newInstance( type, null ); }
        
        public static com.bea.x2003.x03.wli.tpm.AuthenticationDocument newInstance(org.apache.xmlbeans.XmlOptions options) {
          return (com.bea.x2003.x03.wli.tpm.AuthenticationDocument) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().newInstance( type, options ); }
        
        /** @param xmlAsString the string value to parse */
        public static com.bea.x2003.x03.wli.tpm.AuthenticationDocument parse(java.lang.String xmlAsString) throws org.apache.xmlbeans.XmlException {
          return (com.bea.x2003.x03.wli.tpm.AuthenticationDocument) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().parse( xmlAsString, type, null ); }
        
        public static com.bea.x2003.x03.wli.tpm.AuthenticationDocument parse(java.lang.String xmlAsString, org.apache.xmlbeans.XmlOptions options) throws org.apache.xmlbeans.XmlException {
          return (com.bea.x2003.x03.wli.tpm.AuthenticationDocument) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().parse( xmlAsString, type, options ); }
        
        /** @param file the file from which to load an xml document */
        public static com.bea.x2003.x03.wli.tpm.AuthenticationDocument parse(java.io.File file) throws org.apache.xmlbeans.XmlException, java.io.IOException {
          return (com.bea.x2003.x03.wli.tpm.AuthenticationDocument) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().parse( file, type, null ); }
        
        public static com.bea.x2003.x03.wli.tpm.AuthenticationDocument parse(java.io.File file, org.apache.xmlbeans.XmlOptions options) throws org.apache.xmlbeans.XmlException, java.io.IOException {
          return (com.bea.x2003.x03.wli.tpm.AuthenticationDocument) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().parse( file, type, options ); }
        
        public static com.bea.x2003.x03.wli.tpm.AuthenticationDocument parse(java.net.URL u) throws org.apache.xmlbeans.XmlException, java.io.IOException {
          return (com.bea.x2003.x03.wli.tpm.AuthenticationDocument) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().parse( u, type, null ); }
        
        public static com.bea.x2003.x03.wli.tpm.AuthenticationDocument parse(java.net.URL u, org.apache.xmlbeans.XmlOptions options) throws org.apache.xmlbeans.XmlException, java.io.IOException {
          return (com.bea.x2003.x03.wli.tpm.AuthenticationDocument) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().parse( u, type, options ); }
        
        public static com.bea.x2003.x03.wli.tpm.AuthenticationDocument parse(java.io.InputStream is) throws org.apache.xmlbeans.XmlException, java.io.IOException {
          return (com.bea.x2003.x03.wli.tpm.AuthenticationDocument) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().parse( is, type, null ); }
        
        public static com.bea.x2003.x03.wli.tpm.AuthenticationDocument parse(java.io.InputStream is, org.apache.xmlbeans.XmlOptions options) throws org.apache.xmlbeans.XmlException, java.io.IOException {
          return (com.bea.x2003.x03.wli.tpm.AuthenticationDocument) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().parse( is, type, options ); }
        
        public static com.bea.x2003.x03.wli.tpm.AuthenticationDocument parse(java.io.Reader r) throws org.apache.xmlbeans.XmlException, java.io.IOException {
          return (com.bea.x2003.x03.wli.tpm.AuthenticationDocument) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().parse( r, type, null ); }
        
        public static com.bea.x2003.x03.wli.tpm.AuthenticationDocument parse(java.io.Reader r, org.apache.xmlbeans.XmlOptions options) throws org.apache.xmlbeans.XmlException, java.io.IOException {
          return (com.bea.x2003.x03.wli.tpm.AuthenticationDocument) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().parse( r, type, options ); }
        
        public static com.bea.x2003.x03.wli.tpm.AuthenticationDocument parse(javax.xml.stream.XMLStreamReader sr) throws org.apache.xmlbeans.XmlException {
          return (com.bea.x2003.x03.wli.tpm.AuthenticationDocument) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().parse( sr, type, null ); }
        
        public static com.bea.x2003.x03.wli.tpm.AuthenticationDocument parse(javax.xml.stream.XMLStreamReader sr, org.apache.xmlbeans.XmlOptions options) throws org.apache.xmlbeans.XmlException {
          return (com.bea.x2003.x03.wli.tpm.AuthenticationDocument) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().parse( sr, type, options ); }
        
        public static com.bea.x2003.x03.wli.tpm.AuthenticationDocument parse(org.w3c.dom.Node node) throws org.apache.xmlbeans.XmlException {
          return (com.bea.x2003.x03.wli.tpm.AuthenticationDocument) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().parse( node, type, null ); }
        
        public static com.bea.x2003.x03.wli.tpm.AuthenticationDocument parse(org.w3c.dom.Node node, org.apache.xmlbeans.XmlOptions options) throws org.apache.xmlbeans.XmlException {
          return (com.bea.x2003.x03.wli.tpm.AuthenticationDocument) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().parse( node, type, options ); }
        
        /** @deprecated {@link org.apache.xmlbeans.xml.stream.XMLInputStream} */
        public static com.bea.x2003.x03.wli.tpm.AuthenticationDocument parse(org.apache.xmlbeans.xml.stream.XMLInputStream xis) throws org.apache.xmlbeans.XmlException, org.apache.xmlbeans.xml.stream.XMLStreamException {
          return (com.bea.x2003.x03.wli.tpm.AuthenticationDocument) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().parse( xis, type, null ); }
        
        /** @deprecated {@link org.apache.xmlbeans.xml.stream.XMLInputStream} */
        public static com.bea.x2003.x03.wli.tpm.AuthenticationDocument parse(org.apache.xmlbeans.xml.stream.XMLInputStream xis, org.apache.xmlbeans.XmlOptions options) throws org.apache.xmlbeans.XmlException, org.apache.xmlbeans.xml.stream.XMLStreamException {
          return (com.bea.x2003.x03.wli.tpm.AuthenticationDocument) org.apache.xmlbeans.XmlBeans.getContextTypeLoader().parse( xis, type, options ); }
        
        /** @deprecated {@link org.apache.xmlbeans.xml.stream.XMLInputStream} */
        public static org.apache.xmlbeans.xml.stream.XMLInputStream newValidatingXMLInputStream(org.apache.xmlbeans.xml.stream.XMLInputStream xis) throws org.apache.xmlbeans.XmlException, org.apache.xmlbeans.xml.stream.XMLStreamException {
          return org.apache.xmlbeans.XmlBeans.getContextTypeLoader().newValidatingXMLInputStream( xis, type, null ); }
        
        /** @deprecated {@link org.apache.xmlbeans.xml.stream.XMLInputStream} */
        public static org.apache.xmlbeans.xml.stream.XMLInputStream newValidatingXMLInputStream(org.apache.xmlbeans.xml.stream.XMLInputStream xis, org.apache.xmlbeans.XmlOptions options) throws org.apache.xmlbeans.XmlException, org.apache.xmlbeans.xml.stream.XMLStreamException {
          return org.apache.xmlbeans.XmlBeans.getContextTypeLoader().newValidatingXMLInputStream( xis, type, options ); }
        
        private Factory() { } // No instance of this class allowed
    }
}
