/**
 *
 * Copyright 2006 The Apache Software Foundation
 *
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 */
package javax.security.auth.message;

/**
 * @version $Rev$ $Date$
 */
public class AuthStatus {

    public static final AuthStatus FAILURE = new AuthStatus();
    public static final AuthStatus SEND_CONTINUE = new AuthStatus();
    public static final AuthStatus SEND_FAILURE = new AuthStatus();
    public static final AuthStatus SEND_SUCCESS = new AuthStatus();
    public static final AuthStatus SUCCESS = new AuthStatus();

    private AuthStatus() {
    }
    
}
