@@ -90,35 +90,33 @@ static Point decode(@Nonnull final String argMapcode,
9090 final int incodexhi = mapcode .indexOf ('.' );
9191 final int incodex = (incodexhi * 10 ) + (incodexlen - incodexhi );
9292
93- final Data mapcoderData = new Data ();
94-
9593 for (int i = from ; i <= upto ; i ++) {
96- final int codexi = mapcoderData .calcCodex (i );
97- if (mapcoderData .recType (i ) == 0 ) {
98- if (mapcoderData .isNameless (i )) {
94+ final int codexi = Data .calcCodex (i );
95+ if (Data .recType (i ) == 0 ) {
96+ if (Data .isNameless (i )) {
9997 // i = nameless
10098 if (((codexi == 21 ) && (incodex == 22 )) ||
10199 ((codexi == 22 ) && (incodex == 32 )) ||
102100 ((codexi == 13 ) && (incodex == 23 ))) {
103- result = decodeNameless (mapcode , i , extrapostfix , mapcoderData );
101+ result = decodeNameless (mapcode , i , extrapostfix );
104102 break ;
105103 }
106104 } else {
107105 // i = grid without headerletter
108106 if ((codexi == incodex ) || ((incodex == 22 ) && (codexi == 21 ))) {
109107 result = decodeGrid (mapcode ,
110- mapcoderData .getBoundaries (i ).getMinX (), mapcoderData .getBoundaries (i ).getMinY (),
111- mapcoderData .getBoundaries (i ).getMaxX (), mapcoderData .getBoundaries (i ).getMaxY (),
108+ Data .getBoundaries (i ).getMinX (), Data .getBoundaries (i ).getMinY (),
109+ Data .getBoundaries (i ).getMaxX (), Data .getBoundaries (i ).getMaxY (),
112110 i , extrapostfix );
113111
114- if (mapcoderData .isRestricted (i ) && result .isDefined ()) {
112+ if (Data .isRestricted (i ) && result .isDefined ()) {
115113 boolean fitssomewhere = false ;
116114 int j ;
117115 for (j = upto - 1 ; j >= from ; j --) {
118- if (!mapcoderData .isRestricted (j )) {
119- final int xdiv8 = Common .xDivider (mapcoderData .getBoundaries (j ).getMinY (),
120- mapcoderData .getBoundaries (j ).getMaxY ()) / 4 ;
121- if (mapcoderData .getBoundaries (j ).extendBounds (xdiv8 , 60 ).containsPoint (result )) {
116+ if (!Data .isRestricted (j )) {
117+ final int xdiv8 = Common .xDivider (Data .getBoundaries (j ).getMinY (),
118+ Data .getBoundaries (j ).getMaxY ()) / 4 ;
119+ if (Data .getBoundaries (j ).extendBounds (xdiv8 , 60 ).containsPoint (result )) {
122120 fitssomewhere = true ;
123121 break ;
124122 }
@@ -131,20 +129,20 @@ static Point decode(@Nonnull final String argMapcode,
131129 break ;
132130 }
133131 }
134- } else if (mapcoderData .recType (i ) == 1 ) {
132+ } else if (Data .recType (i ) == 1 ) {
135133 // i = grid with headerletter
136- if ((incodex == codexi + 10 ) && (mapcoderData .headerLetter (i ).charAt (0 ) == mapcode .charAt (0 ))) {
134+ if ((incodex == codexi + 10 ) && (Data .headerLetter (i ).charAt (0 ) == mapcode .charAt (0 ))) {
137135 result = decodeGrid (mapcode .substring (1 ),
138- mapcoderData .getBoundaries (i ).getMinX (), mapcoderData .getBoundaries (i ).getMinY (),
139- mapcoderData .getBoundaries (i ).getMaxX (), mapcoderData .getBoundaries (i ).getMaxY (),
136+ Data .getBoundaries (i ).getMinX (), Data .getBoundaries (i ).getMinY (),
137+ Data .getBoundaries (i ).getMaxX (), Data .getBoundaries (i ).getMaxY (),
140138 i , extrapostfix );
141139 break ;
142140 }
143141 }
144142 else {
145143 // i = autoheader
146144 if (((incodex == 23 ) && (codexi == 22 )) || ((incodex == 33 ) && (codexi == 23 ))) {
147- result = decodeAutoHeader (mapcode , i , extrapostfix , mapcoderData );
145+ result = decodeAutoHeader (mapcode , i , extrapostfix );
148146 break ;
149147 }
150148 }
@@ -160,7 +158,7 @@ static Point decode(@Nonnull final String argMapcode,
160158
161159 // LIMIT_TO_OUTRECT : make sure it fits the country
162160 if (ccode != CCODE_EARTH ) {
163- final SubArea mapcoderRect = mapcoderData .getBoundaries (upto ); // find
161+ final SubArea mapcoderRect = Data .getBoundaries (upto ); // find
164162 // encompassing
165163 // rect
166164 final int xdiv8 = Common .xDivider (mapcoderRect .getMinY (), mapcoderRect .getMaxY ()) / 4 ;
@@ -348,10 +346,9 @@ private static Point decodeGrid(final String str, final int minx, final int miny
348346 }
349347
350348 @ Nonnull
351- private static Point decodeNameless (final String str , final int firstrec , final String extrapostfix ,
352- final Data mapcoderData ) {
349+ private static Point decodeNameless (final String str , final int firstrec , final String extrapostfix ) {
353350 String result = str ;
354- final int codexm = mapcoderData .calcCodex (firstrec );
351+ final int codexm = Data .calcCodex (firstrec );
355352 if (codexm == 22 ) {
356353 result = result .substring (0 , 3 ) + result .substring (4 );
357354 } else {
@@ -420,14 +417,14 @@ private static Point decodeNameless(final String str, final int firstrec, final
420417 int side = DataAccess .smartDiv (m );
421418 int xSIDE = side ;
422419
423- final int maxy = mapcoderData .getBoundaries (m ).getMaxY ();
424- final int minx = mapcoderData .getBoundaries (m ).getMinX ();
425- final int miny = mapcoderData .getBoundaries (m ).getMinY ();
420+ final int maxy = Data .getBoundaries (m ).getMaxY ();
421+ final int minx = Data .getBoundaries (m ).getMinX ();
422+ final int miny = Data .getBoundaries (m ).getMinY ();
426423
427424 final int dx ;
428425 final int dy ;
429426
430- if (mapcoderData .isSpecialShape (m )) {
427+ if (Data .isSpecialShape (m )) {
431428 xSIDE *= side ;
432429 side = 1 + ((maxy - miny ) / 90 );
433430 xSIDE = xSIDE / side ;
@@ -454,11 +451,10 @@ private static Point decodeNameless(final String str, final int firstrec, final
454451 }
455452
456453 @ Nonnull
457- private static Point decodeAutoHeader (final String input , final int m , final String extrapostfix ,
458- @ Nonnull final Data mapcoderData ) {
454+ private static Point decodeAutoHeader (final String input , final int m , final String extrapostfix ) {
459455 // returns Point.isUndefined() in case or error
460456 int storageStart = 0 ;
461- final int codexm = mapcoderData .calcCodex (m );
457+ final int codexm = Data .calcCodex (m );
462458
463459 int value = decodeBase31 (input ); // decode top (before dot)
464460 value *= 961 * 31 ;
@@ -468,14 +464,14 @@ private static Point decodeAutoHeader(final String input, final int m, final Str
468464 int i ;
469465 i = m ;
470466 while (true ) {
471- if ((mapcoderData .recType (i )<2 ) || (Data .calcCodex (i ) != codexm )) {
467+ if ((Data .recType (i )<2 ) || (Data .calcCodex (i ) != codexm )) {
472468 return Point .undefined (); // return undefined
473469 }
474470
475- final int maxx = mapcoderData .getBoundaries (i ).getMaxX ();
476- final int maxy = mapcoderData .getBoundaries (i ).getMaxY ();
477- final int minx = mapcoderData .getBoundaries (i ).getMinX ();
478- final int miny = mapcoderData .getBoundaries (i ).getMinY ();
471+ final int maxx = Data .getBoundaries (i ).getMaxX ();
472+ final int maxy = Data .getBoundaries (i ).getMaxY ();
473+ final int minx = Data .getBoundaries (i ).getMinX ();
474+ final int miny = Data .getBoundaries (i ).getMinY ();
479475
480476 int h = ((maxy - miny ) + 89 ) / 90 ;
481477 final int xdiv = Common .xDivider (miny , maxy );
@@ -486,7 +482,7 @@ private static Point decodeAutoHeader(final String input, final int m, final Str
486482
487483 int product = (w / 168 ) * (h / 176 ) * 961 * 31 ;
488484
489- if (mapcoderData .recType (i ) == 2 ) {
485+ if (Data .recType (i ) == 2 ) {
490486 final int goodRounder = (codexm >= 23 ) ? (961 * 961 * 31 ) : (961 * 961 );
491487 product = ((((storageStart + product + goodRounder ) - 1 ) / goodRounder ) * goodRounder ) - storageStart ;
492488 }
0 commit comments