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     */
020    package org.apache.directory.server.kerberos.shared.messages.value.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     * @version $Rev: 540371 $, $Date: 2007-05-22 02:00:43 +0200 (Tue, 22 May 2007) $
029     */
030    public class TicketFlags extends AbstractKerberosFlags
031    {
032        private static final long serialVersionUID = 1L;
033    
034        
035       /**
036         * Basic constructor of a TicketFlags BitString
037         */
038        public TicketFlags()
039        {
040            super();
041        }
042        
043        
044        /**
045         * Constructor of a TicketFlags BitString with an int value
046         */
047        public TicketFlags( int flags )
048        {
049            super( getBytes( flags ) );
050        }
051        
052        
053        /**
054         * Basic constructor of a TicketFlags BitString with a byte array
055         */
056        public TicketFlags( byte[] flags )
057        {
058            super( flags );
059        }
060        
061        
062        /**
063         * Ticket flag - reserved
064         */
065        public boolean isReserved()
066        {
067            return isFlagSet( TicketFlag.RESERVED );
068        }
069    
070        
071        /**
072         * Ticket flag - forwardable
073         */
074        public boolean isForwardable()
075        {
076            return isFlagSet( TicketFlag.FORWARDABLE );
077        }
078        
079    
080        /**
081         * Ticket flag - forwarded
082         */
083        public boolean isForwarded()
084        {
085            return isFlagSet( TicketFlag.FORWARDED );
086        }
087    
088        
089        /**
090         * Ticket flag - proxiable
091         */
092        public boolean isProxiable()
093        {
094            return isFlagSet( TicketFlag.PROXIABLE );
095        }
096    
097        
098        /**
099         * Ticket flag - proxy
100         */
101        public boolean isProxy()
102        {
103            return isFlagSet( TicketFlag.PROXY );
104        }
105    
106        
107        /**
108         * Ticket flag - may be postdated
109         */
110        public boolean isMayPosdate()
111        {
112            return isFlagSet( TicketFlag.MAY_POSTDATE );
113        }
114    
115        
116        /**
117         * Ticket flag - postdated
118         */
119        public boolean isPostdated()
120        {
121            return isFlagSet( TicketFlag.POSTDATED );
122        }
123    
124        
125        /**
126         * Ticket flag - invalid
127         */
128        public boolean isInvalid()
129        {
130            return isFlagSet( TicketFlag.INVALID );
131        }
132    
133        
134        /**
135         * Ticket flag - renewable
136         */
137        public boolean isRenewable()
138        {
139            return isFlagSet( TicketFlag.RENEWABLE );
140        }
141    
142        
143        /**
144         * Ticket flag - initial
145         */
146        public boolean isInitial()
147        {
148            return isFlagSet( TicketFlag.INITIAL );
149        }
150    
151        
152        /**
153         * Ticket flag - pre-authentication
154         */
155        public boolean isPreAuth()
156        {
157            return isFlagSet( TicketFlag.PRE_AUTHENT );
158        }
159    
160        
161        /**
162         * Ticket flag - hardware authentication
163         */
164        public boolean isHwAuthent()
165        {
166            return isFlagSet( TicketFlag.HW_AUTHENT );
167        }
168    
169        
170        /**
171         * Ticket flag - transitedEncoding policy checked
172         */
173        public boolean isTransitedPolicyChecked()
174        {
175            return isFlagSet( TicketFlag.TRANSITED_POLICY_CHECKED );
176        }
177        
178    
179        /**
180         * Ticket flag - OK as delegate
181         */
182        public boolean isOkAsDelegate()
183        {
184            return isFlagSet( TicketFlag.OK_AS_DELEGATE );
185        }
186        
187        
188        /**
189         * Converts the object to a printable string.
190         */
191        /*public static String toString( int flags )
192        {
193            StringBuilder result = new StringBuilder();
194    
195            if ( ( flags & ( 1 << TicketFlag.RESERVED.getOrdinal() ) ) != 0 )
196            {
197                result.append( "RESERVED " );
198            }
199    
200            if ( ( flags & ( 1 << TicketFlag.FORWARDABLE.getOrdinal() ) ) != 0 )
201            {
202                result.append( "FORWARDABLE " );
203            }
204    
205            if ( ( flags & ( 1 << TicketFlag.FORWARDED.getOrdinal() ) ) != 0 )
206            {
207                result.append( "FORWARDED " );
208            }
209    
210            if ( ( flags & ( 1 << TicketFlag.PROXIABLE.getOrdinal() ) ) != 0 )
211            {
212                result.append( "PROXIABLE " );
213            }
214    
215            if ( ( flags & ( 1 << TicketFlag.PROXY.getOrdinal() ) ) != 0 )
216            {
217                result.append( "PROXY " );
218            }
219    
220            if ( ( flags & ( 1 << TicketFlag.MAY_POSTDATE.getOrdinal() ) ) != 0 )
221            {
222                result.append( "MAY_POSTDATE " );
223            }
224    
225            if ( ( flags & ( 1 << TicketFlag.POSTDATED.getOrdinal() ) ) != 0 )
226            {
227                result.append( "POSTDATED " );
228            }
229    
230            if ( ( flags & ( 1 << TicketFlag.INVALID.getOrdinal() ) ) != 0 )
231            {
232                result.append( "INVALID " );
233            }
234    
235            if ( ( flags & ( 1 << TicketFlag.RENEWABLE.getOrdinal() ) ) != 0 )
236            {
237                result.append( "RENEWABLE " );
238            }
239    
240            if ( ( flags & ( 1 << TicketFlag.INITIAL.getOrdinal() ) ) != 0 )
241            {
242                result.append( "INITIAL " );
243            }
244    
245            if ( ( flags & ( 1 << TicketFlag.PRE_AUTHENT.getOrdinal() ) ) != 0 )
246            {
247                result.append( "PRE_AUTHENT " );
248            }
249    
250            if ( ( flags & ( 1 << TicketFlag.HW_AUTHENT.getOrdinal() ) ) != 0 )
251            {
252                result.append( "HW_AUTHENT " );
253            }
254    
255            if ( ( flags & ( 1 << TicketFlag.TRANSITED_POLICY_CHECKED.getOrdinal() ) ) != 0 )
256            {
257                result.append( "TRANSITED_POLICY_CHECKED " );
258            }
259    
260            if ( ( flags & ( 1 << TicketFlag.OK_AS_DELEGATE.getOrdinal() ) ) != 0 )
261            {
262                result.append( "OPTS_OK_AS_DELEGATE " );
263            }
264    
265            return result.toString().trim();
266        }*/
267    
268        
269        /**
270         * Converts the object to a printable string.
271         */
272        public String toString()
273        {
274            StringBuilder result = new StringBuilder();
275    
276            if ( isFlagSet( TicketFlag.RESERVED ) )
277            {
278                result.append( "RESERVED(0) " );
279            }
280    
281            if ( isFlagSet( TicketFlag.FORWARDABLE ) )
282            {
283                result.append( "FORWARDABLE(1) " );
284            }
285    
286            if ( isFlagSet( TicketFlag.FORWARDED ) )
287            {
288                result.append( "FORWARDED(2) " );
289            }
290    
291            if ( isFlagSet( TicketFlag.PROXIABLE ) )
292            {
293                result.append( "PROXIABLE(3) " );
294            }
295    
296            if ( isFlagSet( TicketFlag.PROXY ) )
297            {
298                result.append( "PROXY(4) " );
299            }
300    
301            if ( isFlagSet( TicketFlag.MAY_POSTDATE ) )
302            {
303                result.append( "MAY_POSTDATE(5) " );
304            }
305    
306            if ( isFlagSet( TicketFlag.POSTDATED ) )
307            {
308                result.append( "POSTDATED(6) " );
309            }
310    
311            if ( isFlagSet( TicketFlag.INVALID ) )
312            {
313                result.append( "INVALID(7) " );
314            }
315    
316            if ( isFlagSet( TicketFlag.RENEWABLE ) )
317            {
318                result.append( "RENEWABLE(8) " );
319            }
320    
321            if ( isFlagSet( TicketFlag.INITIAL ) )
322            {
323                result.append( "INITIAL(9) " );
324            }
325    
326            if ( isFlagSet( TicketFlag.PRE_AUTHENT ) )
327            {
328                result.append( "PRE_AUTHENT(10) " );
329            }
330    
331            if ( isFlagSet( TicketFlag.HW_AUTHENT ) )
332            {
333                result.append( "HW_AUTHENT(11) " );
334            }
335    
336            if ( isFlagSet( TicketFlag.TRANSITED_POLICY_CHECKED ) )
337            {
338                result.append( "TRANSITED_POLICY_CHECKED(12) " );
339            }
340    
341            if ( isFlagSet( TicketFlag.OK_AS_DELEGATE ) )
342            {
343                result.append( "OK_AS_DELEGATE(13) " );
344            }
345    
346            return result.toString().trim();
347        }
348    }