View Javadoc

1   /**
2    *
3    * Copyright 2004 The Apache Software Foundation
4    *
5    *  Licensed under the Apache License, Version 2.0 (the "License");
6    *  you may not use this file except in compliance with the License.
7    *  You may obtain a copy of the License at
8    *
9    *     http://www.apache.org/licenses/LICENSE-2.0
10   *
11   *  Unless required by applicable law or agreed to in writing, software
12   *  distributed under the License is distributed on an "AS IS" BASIS,
13   *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   *  See the License for the specific language governing permissions and
15   *  limitations under the License.
16   */
17  
18  package org.apache.geronimo.security.jaas;
19  
20  import java.io.ObjectStreamException;
21  import java.io.Serializable;
22  import javax.security.auth.login.AppConfigurationEntry;
23  
24  
25  /**
26   * A wrapper for the JAAS login module control flag that is Serializable.
27   *
28   * @version $Rev: 355877 $ $Date: 2005-12-10 18:48:27 -0800 (Sat, 10 Dec 2005) $
29   */
30  public class LoginModuleControlFlag implements Serializable {
31  
32      private static final LoginModuleControlFlag[] values = new LoginModuleControlFlag[4];
33  
34      public static final LoginModuleControlFlag REQUIRED = new LoginModuleControlFlag(0, AppConfigurationEntry.LoginModuleControlFlag.REQUIRED, "REQUIRED");
35      public static final LoginModuleControlFlag REQUISITE = new LoginModuleControlFlag(1, AppConfigurationEntry.LoginModuleControlFlag.REQUISITE, "REQUISITE");
36      public static final LoginModuleControlFlag SUFFICIENT = new LoginModuleControlFlag(2, AppConfigurationEntry.LoginModuleControlFlag.SUFFICIENT, "SUFFICIENT");
37      public static final LoginModuleControlFlag OPTIONAL = new LoginModuleControlFlag(3, AppConfigurationEntry.LoginModuleControlFlag.OPTIONAL, "OPTIONAL");
38  
39      private final int ordinal;
40      private final String toString;
41      private final transient AppConfigurationEntry.LoginModuleControlFlag flag;
42  
43      private LoginModuleControlFlag(int ordinal, AppConfigurationEntry.LoginModuleControlFlag flag, String toString) {
44          this.ordinal = ordinal;
45          this.flag = flag;
46          this.toString = toString;
47          values[ordinal] = this;
48      }
49  
50      public AppConfigurationEntry.LoginModuleControlFlag getFlag() {
51          return flag;
52      }
53  
54      public String toString() {
55          return toString;
56      }
57  
58      Object readResolve() throws ObjectStreamException {
59          return values[ordinal];
60      }
61  
62      public static LoginModuleControlFlag getInstance(AppConfigurationEntry.LoginModuleControlFlag flag) {
63          for(int i = 0; i < values.length; i++) {
64              if(values[i].flag == flag) {
65                  return values[i];
66              }
67          }
68          return null;
69      }
70  }