View Javadoc

1   package org.lcsim.geometry.subdetector;
2   
3   /**
4    * 
5    * @author Jeremy McCormick
6    * @version $Id: BarrelEndcapFlag.java,v 1.5 2010/11/30 00:16:29 jeremy Exp $
7    */
8   public enum BarrelEndcapFlag
9   {
10      UNKNOWN( -1 ), BARREL( 0 ), ENDCAP_NORTH( 1 ), ENDCAP_SOUTH( 2 ), ENDCAP( 3 );
11  
12      private int flag;
13  
14      BarrelEndcapFlag( int flag )
15      {
16          if ( flag < -1 || flag > 3 )
17          {
18              throw new IllegalArgumentException( "Bad BarrelEndcapFlag value: " + flag );
19          }
20  
21          this.flag = flag;
22      }
23  
24      public boolean isBarrel()
25      {
26          return this == BARREL;
27      }
28  
29      public boolean isEndcap()
30      {
31          return flag > 0;
32      }
33  
34      public boolean isEndcapNorth()
35      {
36          return this == ENDCAP_NORTH;
37      }
38  
39      public boolean isEndcapSouth()
40      {
41          return this == ENDCAP_SOUTH;
42      }
43  
44      public int getFlag()
45      {
46          return flag;
47      }
48  
49      public static BarrelEndcapFlag createBarrelEndcapFlag( int flag )
50      {
51          if ( flag == 0 )
52          {
53              return BARREL;
54          }
55          else if ( flag == 1 )
56          {
57              return ENDCAP_NORTH;
58          }
59          else if ( flag == 2 )
60          {
61              return ENDCAP_SOUTH;
62          }
63          else if ( flag == -1 )
64          {
65              return UNKNOWN;
66          }
67          else
68          {
69              throw new IllegalArgumentException( "Bad flag value: " + flag );
70          }
71      }
72  };