/******************************************************************************* * Copyright (c) 2015 IBH SYSTEMS GmbH. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBH SYSTEMS GmbH - initial API and implementation *******************************************************************************/ package org.eclipse.packagedrone.web.controller.validator; import java.util.HashMap; import java.util.HashSet; import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.Set; import org.eclipse.packagedrone.web.controller.binding.BindingError; import org.eclipse.packagedrone.web.controller.binding.MessageBindingError; public class SimpleValidationContext implements ValidationContext { private final Map<String, List<BindingError>> result = new HashMap<> (); private final Set<String> markers = new HashSet<> (); public Set<String> getMarkers () { return this.markers; } @Override public void error ( String path, final BindingError error ) { if ( path == null ) { path = ""; } List<BindingError> pos = this.result.get ( path ); if ( pos == null ) { pos = new LinkedList<> (); this.result.put ( path, pos ); } pos.add ( error ); } @Override public void error ( final BindingError error ) { error ( null, error ); } @Override public void error ( final String errorMessage ) { error ( null, errorMessage ); } @Override public void error ( final String path, final String errorMessage ) { error ( path, new MessageBindingError ( errorMessage ) ); } public ValidationResult getResult () { final ValidationResult vr = new ValidationResult (); vr.setErrors ( this.result ); vr.setMarkers ( this.markers ); return vr; } @Override public void setMarker ( final String marker ) { this.markers.add ( marker ); } }