28
28
import java .util .Map ;
29
29
import java .util .regex .Matcher ;
30
30
import java .util .regex .Pattern ;
31
- import java .util .stream .Collectors ;
32
-
33
31
import org .apache .commons .lang3 .tuple .Pair ;
34
32
import org .apache .commons .lang3 .tuple .Triple ;
35
33
import org .apache .logging .log4j .LogManager ;
36
34
import org .apache .logging .log4j .Logger ;
37
35
import org .json .JSONArray ;
38
36
import org .json .JSONObject ;
39
- import org .openscience .cdk .AtomContainer ;
40
- import org .openscience .cdk .DefaultChemObjectBuilder ;
41
37
import org .openscience .cdk .exception .CDKException ;
42
38
import org .openscience .cdk .exception .InvalidSmilesException ;
43
39
import org .openscience .cdk .inchi .InChIGeneratorFactory ;
44
40
import org .openscience .cdk .inchi .InChIToStructure ;
45
41
import org .openscience .cdk .interfaces .IAtomContainer ;
46
42
import org .openscience .cdk .interfaces .IMolecularFormula ;
43
+ import org .openscience .cdk .silent .SilentChemObjectBuilder ;
47
44
import org .openscience .cdk .smiles .SmilesParser ;
48
45
import org .openscience .cdk .tools .manipulator .MolecularFormulaManipulator ;
49
46
@@ -244,7 +241,7 @@ public String CH_FORMULA() {
244
241
* Returns the molecular formula as an String with HTML sup tags.
245
242
*/
246
243
public String CH_FORMULA1 () {
247
- IMolecularFormula m = MolecularFormulaManipulator .getMolecularFormula (ch_formula , DefaultChemObjectBuilder .getInstance ());
244
+ IMolecularFormula m = MolecularFormulaManipulator .getMolecularFormula (ch_formula , SilentChemObjectBuilder .getInstance ());
248
245
return MolecularFormulaManipulator .getHTML (m );
249
246
}
250
247
public void CH_FORMULA (String value ) {
@@ -264,12 +261,12 @@ public String CH_SMILES() {
264
261
return ch_smiles ;
265
262
}
266
263
public IAtomContainer CH_SMILES_obj () {
267
- if ("N/A" .equals (ch_smiles )) return new AtomContainer ();
264
+ if ("N/A" .equals (ch_smiles )) return SilentChemObjectBuilder . getInstance (). newAtomContainer ();
268
265
try {
269
- return new SmilesParser (DefaultChemObjectBuilder .getInstance ()).parseSmiles (ch_smiles );
266
+ return new SmilesParser (SilentChemObjectBuilder .getInstance ()).parseSmiles (ch_smiles );
270
267
} catch (InvalidSmilesException e ) {
271
268
logger .error ("Structure generation from SMILES failed. Error: \" " + e .getMessage () + "\" for \" " + ch_smiles + "\" ." );
272
- return new AtomContainer ();
269
+ return SilentChemObjectBuilder . getInstance (). newAtomContainer ();
273
270
}
274
271
}
275
272
public void CH_SMILES (String value ) {
@@ -281,10 +278,10 @@ public String CH_IUPAC() {
281
278
return ch_iupac ;
282
279
}
283
280
public IAtomContainer CH_IUPAC_obj () {
284
- if ("N/A" .equals (ch_iupac )) return new AtomContainer ();
281
+ if ("N/A" .equals (ch_iupac )) return SilentChemObjectBuilder . getInstance (). newAtomContainer ();
285
282
try {
286
283
// Get InChIToStructure
287
- InChIToStructure intostruct = InChIGeneratorFactory .getInstance ().getInChIToStructure (ch_iupac , DefaultChemObjectBuilder .getInstance ());
284
+ InChIToStructure intostruct = InChIGeneratorFactory .getInstance ().getInChIToStructure (ch_iupac , SilentChemObjectBuilder .getInstance ());
288
285
INCHI_RET ret = intostruct .getReturnStatus ();
289
286
if (ret == INCHI_RET .WARNING ) {
290
287
// Structure generated, but with warning message
@@ -293,11 +290,12 @@ public IAtomContainer CH_IUPAC_obj() {
293
290
else if (ret != INCHI_RET .OKAY ) {
294
291
// Structure generation failed
295
292
logger .error ("Structure generation failed: " + ret .toString () + " [" + intostruct .getMessage () + "] for \" " + ch_iupac + "\" ." );
293
+ return SilentChemObjectBuilder .getInstance ().newAtomContainer ();
296
294
}
297
295
return intostruct .getAtomContainer ();
298
296
} catch (CDKException e ) {
299
297
logger .error ("Structure generation from InChI failed. Error: \" " + e .getMessage () + "\" for \" " + ch_iupac + "\" ." );
300
- return new AtomContainer ();
298
+ return SilentChemObjectBuilder . getInstance (). newAtomContainer ();
301
299
}
302
300
}
303
301
public void CH_IUPAC (String value ) {
@@ -692,11 +690,22 @@ public String createStructuredData() {
692
690
sb .append ("\" headline\" : \" " +RECORD_TITLE1 ()+"\" ,\n " );
693
691
sb .append ("\" name\" : \" " +RECORD_TITLE ().get (0 )+"\" ,\n " );
694
692
sb .append ("\" description\" : \" " + description + "\" ,\n " );
693
+ sb .append ("\" measurementTechnique\" : \" mass spectrometry\" ,\n " );
695
694
String [] tokens = DATE1 ();
696
695
sb .append ("\" datePublished\" : \" " +tokens [0 ].replace ("." ,"-" )+"\" ,\n " );
697
696
if (tokens .length >= 2 ) { sb .append ("\" dateCreated\" : \" " +tokens [1 ].replace ("." ,"-" )+"\" ,\n " ); }
698
697
if (tokens .length == 3 ) { sb .append ("\" dateModified\" : \" " +tokens [2 ].replace ("." ,"-" )+"\" ,\n " ); }
699
- sb .append ("\" license\" : \" https://creativecommons.org/licenses\" ,\n " );
698
+ // sb.append("\"license\": \"https://creativecommons.org/licenses\",\n");
699
+ // sb.append("\"license\": \""+LICENSE() +"\",\n");
700
+ // Convert licenses to URLs
701
+ if (LICENSE ().equals ("CC0" )) { sb .append ("\" license\" : \" https://creativecommons.org/share-your-work/public-domain/cc0\" ,\n " );
702
+ } else if (LICENSE ().equals ("CC BY-SA" ) || LICENSE ().equals ("CC BY SA" ) || LICENSE ().equals ("CC-BY SA" ) || LICENSE ().equals ("CC-BY-SA" )) { sb .append ("\" license\" : \" https://creativecommons.org/licenses/by-sa/4.0\" ,\n " );
703
+ } else if (LICENSE ().equals ("CC BY" ) || LICENSE ().equals ("CC-BY" ) || LICENSE ().equals ("BY CC" ) || LICENSE ().equals ("BY-CC" )) { sb .append ("\" license\" : \" https://creativecommons.org/licenses/by/4.0\" ,\n " );
704
+ } else if (LICENSE ().equals ("CC BY-NC" ) || LICENSE ().equals ("CC-BY-NC" ) || LICENSE ().equals ("CC BY NC" ) || LICENSE ().equals ("CC-BY NC" )) { sb .append ("\" license\" : \" https://creativecommons.org/licenses/by-nc/4.0\" ,\n " );
705
+ } else if (LICENSE ().equals ("CC BY-SA NC" ) || LICENSE ().equals ("CC BY-NC-SA 4.0 International" ) || LICENSE ().equals ("CC BY-NC-SA" )) { sb .append ("\" license\" : \" https://creativecommons.org/licenses/by-nc-sa/4.0\" ,\n " );
706
+ } else if (LICENSE ().equals ("CC BY-NC-ND" )) { sb .append ("\" license\" : \" https://creativecommons.org/licenses/by-nc-nd/4.0\" ,\n " );
707
+ } else sb .append ("\" license\" : \" null\" ,\n " );
708
+
700
709
sb .append ("\" citation\" : \" " +PUBLICATION ()+"\" ,\n " );
701
710
if (COMMENT ().size () == 1 ) sb .append ("\" comment\" : \" " + COMMENT ().get (0 ) +"\" ,\n " );
702
711
else if (COMMENT ().size () >= 1 ) sb .append ("\" comment\" : [\" " + String .join ("\" , \" " , COMMENT ()) +"\" ],\n " );
0 commit comments