001/*
002 *  Licensed to the Apache Software Foundation (ASF) under one
003 *  or more contributor license agreements.  See the NOTICE file
004 *  distributed with this work for additional information
005 *  regarding copyright ownership.  The ASF licenses this file
006 *  to you under the Apache License, Version 2.0 (the
007 *  "License"); you may not use this file except in compliance
008 *  with the License.  You may obtain a copy of the License at
009 *  
010 *    http://www.apache.org/licenses/LICENSE-2.0
011 *  
012 *  Unless required by applicable law or agreed to in writing,
013 *  software distributed under the License is distributed on an
014 *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
015 *  KIND, either express or implied.  See the License for the
016 *  specific language governing permissions and limitations
017 *  under the License. 
018 *  
019 */
020package org.apache.directory.shared.kerberos.flags;
021
022
023/**
024 * An implementation of a BitString for the TicketFlags. The different values
025 * are stored in an int, as there can't be more than 32 flags (TicketFlag).
026 * 
027 * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
028 */
029public class TicketFlags extends AbstractKerberosFlags
030{
031    /**
032      * Basic constructor of a TicketFlags BitString
033      */
034    public TicketFlags()
035    {
036        super();
037    }
038
039
040    /**
041     * Constructor of a TicketFlags BitString with an int value
042     */
043    public TicketFlags( int flags )
044    {
045        super( flags );
046    }
047
048
049    /**
050     * Basic constructor of a TicketFlags BitString with a byte array
051     */
052    public TicketFlags( byte[] flags )
053    {
054        super( flags );
055    }
056
057
058    /**
059     * Ticket flag - reserved
060     */
061    public boolean isReserved()
062    {
063        return isFlagSet( TicketFlag.RESERVED );
064    }
065
066
067    /**
068     * Ticket flag - forwardable
069     */
070    public boolean isForwardable()
071    {
072        return isFlagSet( TicketFlag.FORWARDABLE );
073    }
074
075
076    /**
077     * Ticket flag - forwarded
078     */
079    public boolean isForwarded()
080    {
081        return isFlagSet( TicketFlag.FORWARDED );
082    }
083
084
085    /**
086     * Ticket flag - proxiable
087     */
088    public boolean isProxiable()
089    {
090        return isFlagSet( TicketFlag.PROXIABLE );
091    }
092
093
094    /**
095     * Ticket flag - proxy
096     */
097    public boolean isProxy()
098    {
099        return isFlagSet( TicketFlag.PROXY );
100    }
101
102
103    /**
104     * Ticket flag - may be postdated
105     */
106    public boolean isMayPosdate()
107    {
108        return isFlagSet( TicketFlag.MAY_POSTDATE );
109    }
110
111
112    /**
113     * Ticket flag - postdated
114     */
115    public boolean isPostdated()
116    {
117        return isFlagSet( TicketFlag.POSTDATED );
118    }
119
120
121    /**
122     * Ticket flag - invalid
123     */
124    public boolean isInvalid()
125    {
126        return isFlagSet( TicketFlag.INVALID );
127    }
128
129
130    /**
131     * Ticket flag - renewable
132     */
133    public boolean isRenewable()
134    {
135        return isFlagSet( TicketFlag.RENEWABLE );
136    }
137
138
139    /**
140     * Ticket flag - initial
141     */
142    public boolean isInitial()
143    {
144        return isFlagSet( TicketFlag.INITIAL );
145    }
146
147
148    /**
149     * Ticket flag - pre-authentication
150     */
151    public boolean isPreAuth()
152    {
153        return isFlagSet( TicketFlag.PRE_AUTHENT );
154    }
155
156
157    /**
158     * Ticket flag - hardware authentication
159     */
160    public boolean isHwAuthent()
161    {
162        return isFlagSet( TicketFlag.HW_AUTHENT );
163    }
164
165
166    /**
167     * Ticket flag - transitedEncoding policy checked
168     */
169    public boolean isTransitedPolicyChecked()
170    {
171        return isFlagSet( TicketFlag.TRANSITED_POLICY_CHECKED );
172    }
173
174
175    /**
176     * Ticket flag - OK as delegate
177     */
178    public boolean isOkAsDelegate()
179    {
180        return isFlagSet( TicketFlag.OK_AS_DELEGATE );
181    }
182
183
184    /**
185     * Converts the object to a printable string.
186     */
187    @Override
188    public String toString()
189    {
190        StringBuilder result = new StringBuilder();
191
192        if ( isFlagSet( TicketFlag.RESERVED ) )
193        {
194            result.append( "RESERVED(0) " );
195        }
196
197        if ( isFlagSet( TicketFlag.FORWARDABLE ) )
198        {
199            result.append( "FORWARDABLE(1) " );
200        }
201
202        if ( isFlagSet( TicketFlag.FORWARDED ) )
203        {
204            result.append( "FORWARDED(2) " );
205        }
206
207        if ( isFlagSet( TicketFlag.PROXIABLE ) )
208        {
209            result.append( "PROXIABLE(3) " );
210        }
211
212        if ( isFlagSet( TicketFlag.PROXY ) )
213        {
214            result.append( "PROXY(4) " );
215        }
216
217        if ( isFlagSet( TicketFlag.MAY_POSTDATE ) )
218        {
219            result.append( "MAY_POSTDATE(5) " );
220        }
221
222        if ( isFlagSet( TicketFlag.POSTDATED ) )
223        {
224            result.append( "POSTDATED(6) " );
225        }
226
227        if ( isFlagSet( TicketFlag.INVALID ) )
228        {
229            result.append( "INVALID(7) " );
230        }
231
232        if ( isFlagSet( TicketFlag.RENEWABLE ) )
233        {
234            result.append( "RENEWABLE(8) " );
235        }
236
237        if ( isFlagSet( TicketFlag.INITIAL ) )
238        {
239            result.append( "INITIAL(9) " );
240        }
241
242        if ( isFlagSet( TicketFlag.PRE_AUTHENT ) )
243        {
244            result.append( "PRE_AUTHENT(10) " );
245        }
246
247        if ( isFlagSet( TicketFlag.HW_AUTHENT ) )
248        {
249            result.append( "HW_AUTHENT(11) " );
250        }
251
252        if ( isFlagSet( TicketFlag.TRANSITED_POLICY_CHECKED ) )
253        {
254            result.append( "TRANSITED_POLICY_CHECKED(12) " );
255        }
256
257        if ( isFlagSet( TicketFlag.OK_AS_DELEGATE ) )
258        {
259            result.append( "OK_AS_DELEGATE(13) " );
260        }
261
262        return result.toString().trim();
263    }
264}