2727 * ----------------------------------------------------------------------------------------------
2828 * Package private implementation class. For internal use within the Mapcode implementation only.
2929 * ----------------------------------------------------------------------------------------------
30- *
30+ * <p/>
3131 * This class contains the module that reads the Mapcode areas into memory and processes them.
3232 */
3333class DataAccess {
3434 private static final Logger LOG = LoggerFactory .getLogger (DataAccess .class );
3535
36- private static final int nrTerritories ;
37- private static final int nrTerritoryRecords ;
36+ private static final int NR_TERRITORIES ;
37+ private static final int NR_TERRITORY_RECORDS ;
3838 private static final int [] DATA_START ;
3939 private static final int [] FILE_DATA ;
4040
4141 private static final String FILE_NAME = "/com/mapcode/mminfo.dat" ;
42+ private static final int HEADER_SIZE = 8 ;
4243
4344 // Read data only once in static initializer.
4445 static {
@@ -58,40 +59,39 @@ class DataAccess {
5859 nrBytes = inputStream .read (readBuffer );
5960 }
6061
61- // Copy stream into data
62+ // Copy stream into data.
6263 final byte [] bytes = outputStream .toByteArray ();
6364 assert total == bytes .length ;
64-
65- // read SIGNATURE "MC", VERSION
65+
66+ // Read SIGNATURE "MC", VERSION.
6667 assert total > 12 ;
6768 assert (char ) bytes [0 ] == 'M' ;
6869 assert (char ) bytes [1 ] == 'C' ;
6970 final int dataVersion = (bytes [2 ] & 255 ) + ((bytes [3 ] & 255 ) << 8 );
7071 assert (dataVersion >= 220 );
71- final int HEADER_SIZE = 8 ;
7272
73- // read header: NR TERRITORIES, NR RECTRANGLE RECORD
74- nrTerritoryRecords = (bytes [4 ] & 255 ) + ((bytes [5 ] & 255 ) << 8 );
75- nrTerritories = (bytes [6 ] & 255 ) + ((bytes [7 ] & 255 ) << 8 );
76- LOG .info ("version={} nrTerritories ={} nrTerritoryRecords ={}" ,dataVersion ,nrTerritories , nrTerritoryRecords );
77- final int expectedsize = HEADER_SIZE + ((nrTerritories + 1 ) * 2 ) + (nrTerritoryRecords * 20 );
73+ // Read header: NR TERRITORIES, NR RECTANGLE RECORD.
74+ NR_TERRITORY_RECORDS = (bytes [4 ] & 255 ) + ((bytes [5 ] & 255 ) << 8 );
75+ NR_TERRITORIES = (bytes [6 ] & 255 ) + ((bytes [7 ] & 255 ) << 8 );
76+ LOG .info ("version={} NR_TERRITORIES ={} NR_TERRITORY_RECORDS ={}" , dataVersion , NR_TERRITORIES , NR_TERRITORY_RECORDS );
77+ final int expectedsize = HEADER_SIZE + ((NR_TERRITORIES + 1 ) * 2 ) + (NR_TERRITORY_RECORDS * 20 );
7878 assert (expectedsize == total );
7979
80- // read DATA+START array (2 bytes per territory, plus closing record)
81- DATA_START = new int [nrTerritories + 1 ];
80+ // Read DATA+START array (2 bytes per territory, plus closing record).
81+ DATA_START = new int [NR_TERRITORIES + 1 ];
8282 int i = HEADER_SIZE ;
83- for (int k = 0 ; k <= nrTerritories ; k ++) {
83+ for (int k = 0 ; k <= NR_TERRITORIES ; k ++) {
8484 DATA_START [k ] = (bytes [i ] & 255 ) + ((bytes [i + 1 ] & 255 ) << 8 );
8585 i += 2 ;
8686 }
87-
88- // read territory rectangle data (5 longs per record)
89- FILE_DATA = new int [nrTerritoryRecords * 5 ];
90- for (int k = 0 ; k < nrTerritoryRecords * 5 ; k ++) {
91- FILE_DATA [k ] = ((bytes [i ] & 255 )) +
92- ((bytes [i + 1 ] & 255 ) << 8 ) +
93- ((bytes [i + 2 ] & 255 ) << 16 ) +
94- ((bytes [i + 3 ] & 255 ) << 24 );
87+
88+ // Read territory rectangle data (5 longs per record).
89+ FILE_DATA = new int [NR_TERRITORY_RECORDS * 5 ];
90+ for (int k = 0 ; k < ( NR_TERRITORY_RECORDS * 5 ) ; k ++) {
91+ FILE_DATA [k ] = ((bytes [i ] & 255 )) +
92+ ((bytes [i + 1 ] & 255 ) << 8 ) +
93+ ((bytes [i + 2 ] & 255 ) << 16 ) +
94+ ((bytes [i + 3 ] & 255 ) << 24 );
9595 i += 4 ;
9696 }
9797 } finally {
@@ -111,36 +111,36 @@ private DataAccess() {
111111 // Empty.
112112 }
113113
114- static int minx (final int i ) {
115- return FILE_DATA [i * 5 ];
114+ static int getMinX (final int territoryRecord ) {
115+ return FILE_DATA [territoryRecord * 5 ];
116116 }
117-
118- static int miny (final int i ) {
119- return FILE_DATA [(i * 5 ) + 1 ];
117+
118+ static int getMinY (final int territoryRecord ) {
119+ return FILE_DATA [(territoryRecord * 5 ) + 1 ];
120120 }
121-
122- static int maxx (final int i ) {
123- return FILE_DATA [(i * 5 ) + 2 ];
121+
122+ static int getMaxX (final int territoryRecord ) {
123+ return FILE_DATA [(territoryRecord * 5 ) + 2 ];
124124 }
125125
126- static int maxy (final int i ) {
127- return FILE_DATA [(i * 5 ) + 3 ];
126+ static int getMaxY (final int territoryRecord ) {
127+ return FILE_DATA [(territoryRecord * 5 ) + 3 ];
128128 }
129129
130- static int dataFlags (final int i ) {
131- return FILE_DATA [(i * 5 ) + 4 ] & 65535 ;
130+ static int getDataFlags (final int territoryRecord ) {
131+ return FILE_DATA [(territoryRecord * 5 ) + 4 ] & 65535 ;
132132 }
133133
134- static int smartDiv (final int i ) {
135- return FILE_DATA [(i * 5 ) + 4 ] >> 16 ;
134+ static int getSmartDiv (final int territoryRecord ) {
135+ return FILE_DATA [(territoryRecord * 5 ) + 4 ] >> 16 ;
136136 }
137137
138138 // / low-level routines for data access
139- static int dataFirstRecord (final int ccode ) {
140- return DATA_START [ccode ];
139+ static int getDataFirstRecord (final int territoryNumber ) {
140+ return DATA_START [territoryNumber ];
141141 }
142142
143- static int dataLastRecord (final int ccode ) {
144- return DATA_START [ccode + 1 ] - 1 ;
143+ static int getDataLastRecord (final int territoryNumber ) {
144+ return DATA_START [territoryNumber + 1 ] - 1 ;
145145 }
146146}
0 commit comments