@@ -75,7 +75,7 @@ public void neglectSpaceDelimitedCoordinates() {
75
75
* @return
76
76
*/
77
77
public StereoMolecule getCompactMolecule (String idcode ) {
78
- return (idcode == null || idcode .length () == 0 ) ? null : getCompactMolecule (idcode .getBytes (StandardCharsets .UTF_8 ), null );
78
+ return (idcode == null || idcode .isEmpty () ) ? null : getCompactMolecule (idcode .getBytes (StandardCharsets .UTF_8 ), null );
79
79
}
80
80
81
81
/**
@@ -151,7 +151,7 @@ public StereoMolecule getCompactMolecule(byte[] idcode, byte[] coordinates, int
151
151
* @param idcode null or idcode, which may contain coordinates separated by a space character
152
152
*/
153
153
public void parse (StereoMolecule mol , String idcode ) {
154
- if (idcode == null || idcode .length () == 0 ) {
154
+ if (idcode == null || idcode .isEmpty () ) {
155
155
parse (mol , (byte [])null , (byte [])null );
156
156
return ;
157
157
}
@@ -437,9 +437,10 @@ public void parse(StereoMolecule mol, byte[] idcode, byte[] coordinates, int idc
437
437
int offset = 0 ;
438
438
while (decodeBits (1 ) == 1 ) {
439
439
int dataType = offset + decodeBits (4 );
440
+ int no ;
440
441
switch (dataType ) {
441
442
case 0 : // datatype 'AtomQFNoMoreNeighbours'
442
- int no = decodeBits (abits );
443
+ no = decodeBits (abits );
443
444
for (int i =0 ; i <no ; i ++) {
444
445
int atom = decodeBits (abits );
445
446
mMol .setAtomQueryFeature (atom , Molecule .cAtomQFNoMoreNeighbours , true );
@@ -762,10 +763,10 @@ public void parse(StereoMolecule mol, byte[] idcode, byte[] coordinates, int idc
762
763
from = 0 ;
763
764
factor = 8.0 ;
764
765
}
765
- mMol .setAtomX (atom , mMol .getAtomX (from ) + factor * (decodeBits (resolutionBits ) - binCount / 2 ));
766
- mMol .setAtomY (atom , mMol .getAtomY (from ) + factor * (decodeBits (resolutionBits ) - binCount / 2 ));
766
+ mMol .setAtomX (atom , mMol .getAtomX (from ) + factor * (decodeBits (resolutionBits ) - binCount / 2.0 ));
767
+ mMol .setAtomY (atom , mMol .getAtomY (from ) + factor * (decodeBits (resolutionBits ) - binCount / 2.0 ));
767
768
if (coordsAre3D )
768
- mMol .setAtomZ (atom , mMol .getAtomZ (from ) + factor * (decodeBits (resolutionBits ) - binCount / 2 ));
769
+ mMol .setAtomZ (atom , mMol .getAtomZ (from ) + factor * (decodeBits (resolutionBits ) - binCount / 2.0 ));
769
770
}
770
771
771
772
if (coordinates [coordsStart ] == '#' ) { // we have 3D-coordinates that include implicit hydrogen coordinates
@@ -781,10 +782,10 @@ public void parse(StereoMolecule mol, byte[] idcode, byte[] coordinates, int idc
781
782
int hydrogen = mMol .addAtom (1 );
782
783
mMol .addBond (atom , hydrogen , Molecule .cBondTypeSingle );
783
784
784
- mMol .setAtomX (hydrogen , mMol .getAtomX (atom ) + (decodeBits (resolutionBits ) - binCount / 2 ));
785
- mMol .setAtomY (hydrogen , mMol .getAtomY (atom ) + (decodeBits (resolutionBits ) - binCount / 2 ));
785
+ mMol .setAtomX (hydrogen , mMol .getAtomX (atom ) + (decodeBits (resolutionBits ) - binCount / 2.0 ));
786
+ mMol .setAtomY (hydrogen , mMol .getAtomY (atom ) + (decodeBits (resolutionBits ) - binCount / 2.0 ));
786
787
if (coordsAre3D )
787
- mMol .setAtomZ (hydrogen , mMol .getAtomZ (atom ) + (decodeBits (resolutionBits ) - binCount / 2 ));
788
+ mMol .setAtomZ (hydrogen , mMol .getAtomZ (atom ) + (decodeBits (resolutionBits ) - binCount / 2.0 ));
788
789
}
789
790
}
790
791
@@ -935,10 +936,10 @@ public void parseCoordinates(byte[] encodedCoords, int coordsStart, StereoMolecu
935
936
from = 0 ;
936
937
factor = 8.0 ;
937
938
}
938
- coords [atom ].x = coords [from ].x + factor * (decodeBits (resolutionBits ) - binCount / 2 );
939
- coords [atom ].y = coords [from ].y + factor * (decodeBits (resolutionBits ) - binCount / 2 );
939
+ coords [atom ].x = coords [from ].x + factor * (decodeBits (resolutionBits ) - binCount / 2.0 );
940
+ coords [atom ].y = coords [from ].y + factor * (decodeBits (resolutionBits ) - binCount / 2.0 );
940
941
if (coordsAre3D )
941
- coords [atom ].z = coords [from ].z + factor * (decodeBits (resolutionBits ) - binCount / 2 );
942
+ coords [atom ].z = coords [from ].z + factor * (decodeBits (resolutionBits ) - binCount / 2.0 );
942
943
}
943
944
944
945
double avbl = coordsAre3D ? 1.5 : Molecule .getDefaultAverageBondLength ();
@@ -954,10 +955,10 @@ public void parseCoordinates(byte[] encodedCoords, int coordsStart, StereoMolecu
954
955
for (int atom = 0 ; atom < atomCount ; atom ++) {
955
956
int hCount = mol .getAllConnAtoms (atom ) - mol .getConnAtoms (atom );
956
957
for (int i = 0 ; i < hCount ; i ++) {
957
- coords [hydrogen ].x = coords [atom ].x + (decodeBits (resolutionBits ) - binCount / 2 );
958
- coords [hydrogen ].y = coords [atom ].y + (decodeBits (resolutionBits ) - binCount / 2 );
958
+ coords [hydrogen ].x = coords [atom ].x + (decodeBits (resolutionBits ) - binCount / 2.0 );
959
+ coords [hydrogen ].y = coords [atom ].y + (decodeBits (resolutionBits ) - binCount / 2.0 );
959
960
if (coordsAre3D )
960
- coords [hydrogen ].z = coords [atom ].z + (decodeBits (resolutionBits ) - binCount / 2 );
961
+ coords [hydrogen ].z = coords [atom ].z + (decodeBits (resolutionBits ) - binCount / 2.0 );
961
962
962
963
hydrogen ++;
963
964
}
@@ -1072,7 +1073,7 @@ else if (coordinates[coordStart] == '!' || coordinates[coordStart] == '#') {
1072
1073
}
1073
1074
1074
1075
public int getIDCodeVersion (String idcode ) {
1075
- if (idcode == null || idcode .length () == 0 )
1076
+ if (idcode == null || idcode .isEmpty () )
1076
1077
return -1 ;
1077
1078
1078
1079
return getIDCodeVersion (idcode .getBytes (StandardCharsets .UTF_8 ));
@@ -1090,7 +1091,7 @@ public int getIDCodeVersion(byte[] idcode) {
1090
1091
}
1091
1092
1092
1093
public int getAtomCount (String idcode ) {
1093
- if (idcode == null || idcode .length () == 0 )
1094
+ if (idcode == null || idcode .isEmpty () )
1094
1095
return 0 ;
1095
1096
1096
1097
return getAtomCount (idcode .getBytes (StandardCharsets .UTF_8 ), 0 );
@@ -1120,7 +1121,7 @@ public int getAtomCount(byte[] idcode, int offset) {
1120
1121
* @return int[] with atom and bond count as first and second values
1121
1122
*/
1122
1123
public int [] getAtomAndBondCounts (String idcode , int [] count ) {
1123
- if (idcode == null || idcode .length () == 0 )
1124
+ if (idcode == null || idcode .isEmpty () )
1124
1125
return null ;
1125
1126
1126
1127
return getAtomAndBondCounts (idcode .getBytes (StandardCharsets .UTF_8 ), 0 , count );
@@ -1192,7 +1193,7 @@ private double decodeShift(int value, int binCount) {
1192
1193
boolean isNegative = (value >= halfBinCount );
1193
1194
if (isNegative )
1194
1195
value -= halfBinCount ;
1195
- double steepness = binCount /32 ;
1196
+ double steepness = binCount /32.0 ;
1196
1197
double doubleValue = steepness * value / (halfBinCount - value );
1197
1198
return isNegative ? -doubleValue : doubleValue ;
1198
1199
}
@@ -1366,9 +1367,10 @@ public void printContent(byte[] idcode, byte[] coordinates) {
1366
1367
int offset = 0 ;
1367
1368
while (decodeBits (1 ) == 1 ) {
1368
1369
int dataType = offset + decodeBits (4 );
1370
+ int no ;
1369
1371
switch (dataType ) {
1370
1372
case 0 : // datatype 'AtomQFNoMoreNeighbours'
1371
- int no = decodeBits (abits );
1373
+ no = decodeBits (abits );
1372
1374
System .out .print ("noMoreNeighbours:" );
1373
1375
for (int i = 0 ; i < no ; i ++)
1374
1376
System .out .print (" " + decodeBits (abits ));
@@ -1675,12 +1677,12 @@ public void printContent(byte[] idcode, byte[] coordinates) {
1675
1677
factor = 8.0 ;
1676
1678
}
1677
1679
System .out .print (atom + " (" );
1678
- coords [0 ][atom ] = coords [0 ][from ] + factor * (decodeBits (resolutionBits ) - binCount / 2 );
1680
+ coords [0 ][atom ] = coords [0 ][from ] + factor * (decodeBits (resolutionBits ) - binCount / 2.0 );
1679
1681
System .out .print ((int ) coords [0 ][atom ] + "," );
1680
- coords [1 ][atom ] = coords [1 ][from ] + factor * (decodeBits (resolutionBits ) - binCount / 2 );
1682
+ coords [1 ][atom ] = coords [1 ][from ] + factor * (decodeBits (resolutionBits ) - binCount / 2.0 );
1681
1683
System .out .print ((int ) coords [1 ][atom ]);
1682
1684
if (coordsAre3D ) {
1683
- coords [2 ][atom ] = coords [2 ][from ] + factor * (decodeBits (resolutionBits ) - binCount / 2 );
1685
+ coords [2 ][atom ] = coords [2 ][from ] + factor * (decodeBits (resolutionBits ) - binCount / 2.0 );
1684
1686
System .out .print ("," + (int ) coords [0 ][atom ]);
1685
1687
}
1686
1688
System .out .print ("), " );
@@ -1719,12 +1721,12 @@ public void printContent(byte[] idcode, byte[] coordinates) {
1719
1721
System .out .print (atom );
1720
1722
for (int i = 0 ; i < hCount [atom ]; i ++) {
1721
1723
System .out .print (" (" );
1722
- coords [0 ][hydrogen ] = coords [0 ][atom ] + (decodeBits (resolutionBits ) - binCount / 2 );
1724
+ coords [0 ][hydrogen ] = coords [0 ][atom ] + (decodeBits (resolutionBits ) - binCount / 2.0 );
1723
1725
System .out .print ((int ) coords [0 ][hydrogen ] + "," );
1724
- coords [1 ][hydrogen ] = coords [1 ][atom ] + (decodeBits (resolutionBits ) - binCount / 2 );
1726
+ coords [1 ][hydrogen ] = coords [1 ][atom ] + (decodeBits (resolutionBits ) - binCount / 2.0 );
1725
1727
System .out .print ((int ) coords [1 ][hydrogen ]);
1726
1728
if (coordsAre3D ) {
1727
- coords [2 ][hydrogen ] = coords [2 ][atom ] + (decodeBits (resolutionBits ) - binCount / 2 );
1729
+ coords [2 ][hydrogen ] = coords [2 ][atom ] + (decodeBits (resolutionBits ) - binCount / 2.0 );
1728
1730
System .out .print ("," + (int ) coords [2 ][hydrogen ]);
1729
1731
}
1730
1732
System .out .print ("), " );
0 commit comments