1   /*
2    * Copyright (C) 2015 Uwe Plonus
3    *
4    * This program is free software: you can redistribute it and/or modify
5    * it under the terms of the GNU General Public License as published by
6    * the Free Software Foundation, either version 3 of the License, or
7    * (at your option) any later version.
8    *
9    * This program is distributed in the hope that it will be useful,
10   * but WITHOUT ANY WARRANTY; without even the implied warranty of
11   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12   * GNU General Public License for more details.
13   *
14   * You should have received a copy of the GNU General Public License
15   * along with this program.  If not, see <http://www.gnu.org/licenses/>.
16   */
17  package org.sw4j.examples.bitoperation;
18  
19  import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
20  
21  /**
22   * Example for "BIT: Check for sign of bitwise operation" {@code (BIT_SIGNED_CHECK)}.
23   */
24  public class CheckSign {
25  
26      private static final int FLAG = 0x40000000;
27  
28      private static final int HIGHEST_FLAG = 0x80000000;
29  
30      public boolean bug(int value) {
31          boolean flagSet = ((value & FLAG) > 0);
32          return flagSet;
33      }
34  
35      public boolean highBitBug(int value) {
36          boolean flagSet = ((value & HIGHEST_FLAG) > 0);
37          return flagSet;
38      }
39  
40      @SuppressFBWarnings(value="BIT_SIGNED_CHECK")
41      public boolean suppressedBug(int value) {
42          boolean flagSet = ((value & FLAG) > 0);
43          return flagSet;
44      }
45  
46  }