@Override
 public <G, D, L> void exportParameters(
     ParameterHelper helper, DataDocument<G, D, L> document, D dictionary) {
   document.addToDictionary(
       dictionary, "$name", helper.toClassName(MutableMeasurementProfile.class));
   if (intensityDeviation != 0 && !Double.isNaN(intensityDeviation))
     document.addToDictionary(dictionary, "intensityDeviation", getIntensityDeviation());
   if (getMedianNoiseIntensity() != 0 && !Double.isNaN(getMedianNoiseIntensity()))
     document.addToDictionary(dictionary, "medianNoiseIntensity", getMedianNoiseIntensity());
   if (formulaConstraints != null)
     document.addToDictionary(
         dictionary, "formulaConstraints", helper.wrap(document, getFormulaConstraints()));
   if (getAllowedMassDeviation() != null)
     document.addToDictionary(
         dictionary, "allowedMassDeviation", getAllowedMassDeviation().toString());
   if (getStandardMs1MassDeviation() != null)
     document.addToDictionary(
         dictionary, "standardMs1MassDeviation", getStandardMs1MassDeviation().toString());
   if (getStandardMs2MassDeviation() != null)
     document.addToDictionary(
         dictionary, "standardMs2MassDeviation", getStandardMs2MassDeviation().toString());
   if (getStandardMassDifferenceDeviation() != null)
     document.addToDictionary(
         dictionary,
         "standardMassDifferenceDeviation",
         getStandardMassDifferenceDeviation().toString());
 }
 @Override
 public <G, D, L> void importParameters(
     ParameterHelper helper, DataDocument<G, D, L> document, D dictionary) {
   final Set<String> keys = document.keySetOfDictionary(dictionary);
   if (keys.contains("intensityDeviation"))
     setIntensityDeviation(document.getDoubleFromDictionary(dictionary, "intensityDeviation"));
   if (keys.contains("medianNoiseIntensity"))
     setMedianNoiseIntensity(document.getDoubleFromDictionary(dictionary, "medianNoiseIntensity"));
   if (keys.contains("formulaConstraints"))
     setFormulaConstraints(
         (FormulaConstraints)
             helper.unwrap(
                 document, document.getFromDictionary(dictionary, "formulaConstraints")));
   if (keys.contains("allowedMassDeviation"))
     allowedMassDeviation =
         Deviation.fromString(
             document.getStringFromDictionary(dictionary, "allowedMassDeviation"));
   if (keys.contains("standardMs1MassDeviation"))
     standardMs1MassDeviation =
         Deviation.fromString(
             document.getStringFromDictionary(dictionary, "standardMs1MassDeviation"));
   if (keys.contains("standardMs2MassDeviation"))
     standardMs2MassDeviation =
         Deviation.fromString(
             document.getStringFromDictionary(dictionary, "standardMs2MassDeviation"));
   if (keys.contains("standardMassDifferenceDeviation"))
     standardMassDifferenceDeviation =
         Deviation.fromString(
             document.getStringFromDictionary(dictionary, "standardMassDifferenceDeviation"));
 }
 @Override
 public <G, D, L> LinearIntensityDependency readFromParameters(
     ParameterHelper helper, DataDocument<G, D, L> document, D dictionary) {
   final double zeroIntensity = document.getDoubleFromDictionary(dictionary, "zeroIntensity");
   final double fullIntensity = document.getDoubleFromDictionary(dictionary, "fullIntensity");
   return new LinearIntensityDependency(fullIntensity, zeroIntensity);
 }
 @Override
 public <G, D, L> void exportParameters(
     ParameterHelper helper, DataDocument<G, D, L> document, D dictionary) {
   document.addToDictionary(dictionary, "score", penalty);
 }
 @Override
 public <G, D, L> void importParameters(
     ParameterHelper helper, DataDocument<G, D, L> document, D dictionary) {
   this.penalty = document.getDoubleFromDictionary(dictionary, "score");
 }
 @Override
 public <G, D, L> void exportParameters(
     ParameterHelper helper, DataDocument<G, D, L> document, D dictionary) {
   document.addToDictionary(dictionary, "zeroIntensity", zeroIntensity);
   document.addToDictionary(dictionary, "fullIntensity", fullIntensity);
 }