@@ -29,6 +29,24 @@ public SubstanceBean createSubstance(SubstanceBean substanceBean) throws Excepti
2929 if (substanceBean .name ().trim ().isEmpty ())
3030 throw new Exception ("Substance name cannot be empty" );
3131
32+ if (substanceBean .nfpaFlammability () != null ) {
33+ if (substanceBean .nfpaFlammability () < 0 || substanceBean .nfpaFlammability () > 4 ) {
34+ throw new IllegalArgumentException ("NFPA Flammability rating must be between 0 and 4" );
35+ }
36+ }
37+
38+ if (substanceBean .nfpaHealth () != null ) {
39+ if (substanceBean .nfpaHealth () < 0 || substanceBean .nfpaHealth () > 4 ) {
40+ throw new IllegalArgumentException ("NFPA Health rating must be between 0 and 4" );
41+ }
42+ }
43+
44+ if (substanceBean .nfpaReactivity () != null ) {
45+ if (substanceBean .nfpaReactivity () < 0 || substanceBean .nfpaReactivity () > 4 ) {
46+ throw new IllegalArgumentException ("NFPA Reactivity rating must be between 0 and 4" );
47+ }
48+ }
49+
3250 SubstanceSupplierEntity supplier = substanceSupplierRepository .findByName (substanceBean .supplier ())
3351 .orElse (new SubstanceSupplierEntity ());
3452
@@ -43,6 +61,14 @@ public SubstanceBean createSubstance(SubstanceBean substanceBean) throws Excepti
4361 entity .setSupplier (supplier );
4462 entity .setMolecularFormula (substanceBean .molecularFormula ());
4563 entity .setCasNumber (substanceBean .casNumber ());
64+ entity .setNfpa704Health (substanceBean .nfpaHealth ());
65+ entity .setNfpa704Flammability (substanceBean .nfpaFlammability ());
66+ entity .setNfpa704Reactivity (substanceBean .nfpaReactivity ());
67+
68+ if (substanceBean .nfpaSpecifiedHazard () != null ) {
69+ entity .setNfpa704SpecifiedHazard (substanceBean .nfpaSpecifiedHazard ());
70+ }
71+
4672
4773 substanceRepository .save (entity );
4874
@@ -80,12 +106,21 @@ public SubstanceBean patchChemicalSubstance(Long id, SubstanceBean substanceBean
80106 entity .setSupplier (supplier );
81107 }
82108 if (substanceBean .nfpaHealth () != null ) {
109+ if (substanceBean .nfpaHealth () < 0 || substanceBean .nfpaHealth () > 4 ) {
110+ throw new IllegalArgumentException ("NFPA Health rating must be between 0 and 4" );
111+ }
83112 entity .setNfpa704Health (substanceBean .nfpaHealth ());
84113 }
85114 if (substanceBean .nfpaFlammability () != null ) {
115+ if (substanceBean .nfpaFlammability () < 0 || substanceBean .nfpaFlammability () > 4 ) {
116+ throw new IllegalArgumentException ("NFPA Flammability rating must be between 0 and 4" );
117+ }
86118 entity .setNfpa704Flammability (substanceBean .nfpaFlammability ());
87119 }
88120 if (substanceBean .nfpaReactivity () != null ) {
121+ if (substanceBean .nfpaReactivity () < 0 || substanceBean .nfpaReactivity () > 4 ) {
122+ throw new IllegalArgumentException ("NFPA Reactivity rating must be between 0 and 4" );
123+ }
89124 entity .setNfpa704Reactivity (substanceBean .nfpaReactivity ());
90125 }
91126 if (substanceBean .nfpaSpecifiedHazard () != null ) {
0 commit comments