KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > pdfbox > util > BitFlagHelper


1 /**
2  * Copyright (c) 2005, www.pdfbox.org
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions are met:
7  *
8  * 1. Redistributions of source code must retain the above copyright notice,
9  * this list of conditions and the following disclaimer.
10  * 2. Redistributions in binary form must reproduce the above copyright notice,
11  * this list of conditions and the following disclaimer in the documentation
12  * and/or other materials provided with the distribution.
13  * 3. Neither the name of pdfbox; nor the names of its
14  * contributors may be used to endorse or promote products derived from this
15  * software without specific prior written permission.
16  *
17  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20  * DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
21  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
22  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
23  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
24  * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
26  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27  *
28  * http://www.pdfbox.org
29  *
30  */

31 package org.pdfbox.util;
32
33 import org.pdfbox.cos.COSDictionary;
34
35 /**
36  * This class will be used for bit flag operations.
37  *
38  * @author <a HREF="mailto:ben@benlitchfield.com">Ben Litchfield</a>
39  * @version $Revision: 1.4 $
40  */

41 public class BitFlagHelper
42 {
43     private BitFlagHelper()
44     {
45         //helper class should not be constructed
46
}
47     
48     /**
49      * Sets the given boolean value at bitPos in the flags.
50      *
51      * @param dic The dictionary to set the value into.
52      * @param field The name of the field to set the value into.
53      * @param bitFlag the bit position to set the value in.
54      * @param value the value the bit position should have.
55      */

56     public static final void setFlag( COSDictionary dic, String JavaDoc field, int bitFlag, boolean value )
57     {
58         int currentFlags = dic.getInt( field, 0 );
59         if( value )
60         {
61             currentFlags = currentFlags | bitFlag;
62         }
63         else
64         {
65             currentFlags = currentFlags &= ~bitFlag;
66         }
67         dic.setInt( field, currentFlags );
68     }
69     
70     /**
71      * Gets the boolean value from the flags at the given bit
72      * position.
73      *
74      * @param dic The dictionary to get the field from.
75      * @param field The name of the field to get the flag from.
76      * @param bitFlag the bitPosition to get the value from.
77      *
78      * @return true if the number at bitPos is '1'
79      */

80     public static final boolean getFlag(COSDictionary dic, String JavaDoc field, int bitFlag)
81     {
82         int ff = dic.getInt( field, 0 );
83         return (ff & bitFlag) == bitFlag;
84     }
85 }
Popular Tags