in server/src/main/java/com/epam/indigoeln/core/chemistry/sdf/SdUnit.java [237:277]
public void init(String molecule, boolean allKeysToUpperCase, boolean molFilePortionOnly) {
try {
if (molecule == null) {
valid = false;
validString = "Input molecule was NULL";
return;
}
upperCase = allKeysToUpperCase;
String mol = molecule;
if (mol.contains("\r")) {
mol = createConsistentLineTermination(mol);
}
if (molFilePortionOnly) {
mol = mol.substring(0, mol.indexOf(MOLECULE_PATTERN) + 6);
mol = mol + "\n\n$$$$";
}
if (!mol.contains(MOLECULE_PATTERN) || !mol.contains("$$$$")) {
valid = false;
validString = "Does not contain \"M END\" or \"$$$$\"";
molPortion = "Not a valid molecule!";
}
if (mol.contains(MOLECULE_PATTERN)) {
setMol(mol.substring(0, mol.indexOf(MOLECULE_PATTERN) + 6) + "\n");
}
validString = validateDetail(molPortion);
if (!validString.startsWith(OK)) {
valid = false;
}
infoPortion = parseInfo(mol, keyList);
} catch (IllegalArgumentException e) {
LOGGER.error("SDUnit init error", e);
valid = false;
if (validString.startsWith(OK)) {
validString = e.getMessage();
} else {
validString = validString + " AND " + e.getMessage();
}
} catch (Exception e) {
LOGGER.error("SDUnit init error", e);
}
}