/*
* Copyright (C) 2017 by Fonoster Inc (http://fonoster.com)
* http://astivetoolkit.org
*
* This file is part of Astive Toolkit(ATK)
*
* 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 org.astivetoolkit.menu;
/**
* Provides access control restricted menus.
*
* @since 1.0
*/
public abstract class Authenticator {
private boolean authenticated = false;
private int maxAuth = 3;
/**
* Creates a new Authenticator object.
*/
public Authenticator() {
}
/**
* Maximum attempts allowed to authenticate.
*
* @return maximum attempts of authentication before hang up.
*/
public int getMaxAuth() {
return maxAuth;
}
/**
* The authentication variable is modified by the final implementation
* of this class.
*
* @return true if authentication was successful false otherwise.
*/
public boolean isAuthenticated() {
return authenticated;
}
/**
* Sets authentication to true or false. The authentication variable is
* modified by the final implementation of this class.
*
* @param authenticated set to true to allow client to enter restricted
* menus, or false to denied access.
*/
public void setAuthenticated(boolean authenticated) {
this.authenticated = authenticated;
}
/**
* Overwrites the maximum(default) attempts to authenticate.
*
* @param maxAuth new maximum attempts to authenticate.
*/
public void setMaxAuth(int maxAuth) {
this.maxAuth = maxAuth;
}
/**
* Use by final implementation to set the variable
* <code>authenticated</code>.
*/
public abstract void signIn();
/**
* Set's the variable authenticated to false.
*/
public void signOut() {
setAuthenticated(false);
}
}