gernotbelger@9256: /** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde gernotbelger@9256: * Software engineering by gernotbelger@9256: * Björnsen Beratende Ingenieure GmbH gernotbelger@9256: * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt gernotbelger@9256: * gernotbelger@9256: * This file is Free Software under the GNU AGPL (>=v3) gernotbelger@9256: * and comes with ABSOLUTELY NO WARRANTY! Check out the gernotbelger@9256: * documentation coming with Dive4Elements River for details. gernotbelger@9256: */ gernotbelger@9256: package org.dive4elements.river.client.client.ui.uinfo; gernotbelger@9256: gernotbelger@9256: import java.util.ArrayList; gernotbelger@9256: import java.util.List; gernotbelger@9256: gernotbelger@9256: import org.dive4elements.river.client.client.FLYSConstants; gernotbelger@9256: import org.dive4elements.river.client.client.ui.AbstractSingleItemPanel.IMultiSingleBehaviour; gernotbelger@9256: gernotbelger@9256: /** gernotbelger@9256: * @author Domenico Nardi Tironi gernotbelger@9256: * gernotbelger@9256: */ gernotbelger@9256: public abstract class ValidationBehaviourSingleMultiInputItem implements IMultiSingleBehaviour { gernotbelger@9256: gernotbelger@9256: private List validInputs = null; gernotbelger@9481: protected String errorForItemMsg = null; gernotbelger@9270: protected final FLYSConstants MSG; gernotbelger@9559: private final String appendStringForCreateOld; gernotbelger@9256: gernotbelger@9256: public ValidationBehaviourSingleMultiInputItem(final List validInputs, final String errorForItemMsg, final FLYSConstants MSG) { gernotbelger@9256: this.validInputs = validInputs; gernotbelger@9256: this.errorForItemMsg = errorForItemMsg; gernotbelger@9256: this.MSG = MSG; // etwas unglücklich... gernotbelger@9559: this.appendStringForCreateOld = ""; gernotbelger@9256: } gernotbelger@9256: gernotbelger@9559: public ValidationBehaviourSingleMultiInputItem(final String appendStringForCreateOld, final FLYSConstants MSG) { gernotbelger@9559: this.appendStringForCreateOld = appendStringForCreateOld; gernotbelger@9270: this.MSG = MSG; gernotbelger@9256: } gernotbelger@9256: gernotbelger@9256: protected final List validateSingleInput(final String sValue) { gernotbelger@9256: final List errors = new ArrayList(); gernotbelger@9256: // String filtered = ""; gernotbelger@9256: // int goodValues = 0; gernotbelger@9256: errors.addAll(validateNumber(sValue)); gernotbelger@9256: boolean isGood = false; gernotbelger@9481: for (final String validYear : this.getValidInputs()) { gernotbelger@9256: /* No list contains for strings? */ gernotbelger@9256: if (sValue.equals(validYear)) { gernotbelger@9256: isGood = true; gernotbelger@9256: break; gernotbelger@9256: } gernotbelger@9256: } gernotbelger@9256: if (!isGood) { gernotbelger@9256: String tmp = this.errorForItemMsg; gernotbelger@9256: tmp = tmp.replace("$1", sValue); gernotbelger@9256: errors.add(tmp); gernotbelger@9256: } gernotbelger@9256: gernotbelger@9256: return errors; gernotbelger@9256: } gernotbelger@9256: gernotbelger@9256: protected final List validateNumber(final String sValue) { gernotbelger@9256: final List errors = new ArrayList(); gernotbelger@9256: gernotbelger@9256: try { gernotbelger@9256: Integer.parseInt(sValue); gernotbelger@9256: } gernotbelger@9256: catch (final NumberFormatException e) { gernotbelger@9267: gernotbelger@9256: errors.add(this.MSG.wrongFormat() + ": " + sValue); gernotbelger@9256: gernotbelger@9256: } gernotbelger@9256: return errors; gernotbelger@9256: } gernotbelger@9256: gernotbelger@9256: @Override gernotbelger@9481: public final void setErrorForItemMsg(final String errorForItemMsg) { gernotbelger@9481: this.errorForItemMsg = errorForItemMsg; gernotbelger@9481: gernotbelger@9481: } gernotbelger@9481: gernotbelger@9481: @Override gernotbelger@9256: public final void setValidInputs(final List validInputs) { gernotbelger@9256: this.validInputs = validInputs; gernotbelger@9256: gernotbelger@9256: } gernotbelger@9256: gernotbelger@9481: protected final List getValidInputs() { gernotbelger@9481: return this.validInputs; gernotbelger@9256: } gernotbelger@9256: gernotbelger@9559: @Override gernotbelger@9559: public String appendStringForCreateOld() { gernotbelger@9559: return this.appendStringForCreateOld; gernotbelger@9559: } gernotbelger@9559: gernotbelger@9256: }