Mercurial > dive4elements > river
diff gwt-client/src/main/java/org/dive4elements/river/client/client/ui/RecommandationUtils.java @ 9027:274ddafb719b
S-Info-Proof-Init
Testing
author | gernotbelger |
---|---|
date | Thu, 26 Apr 2018 10:46:12 +0200 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gwt-client/src/main/java/org/dive4elements/river/client/client/ui/RecommandationUtils.java Thu Apr 26 10:46:12 2018 +0200 @@ -0,0 +1,58 @@ +/** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde + * Software engineering by + * Björnsen Beratende Ingenieure GmbH + * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt + * + * This file is Free Software under the GNU AGPL (>=v3) + * and comes with ABSOLUTELY NO WARRANTY! Check out the + * documentation coming with Dive4Elements River for details. + */ +package org.dive4elements.river.client.client.ui; + +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.dive4elements.river.client.client.ui.AbstractPairRecommendationPanel.IRecommendationInfo; +import org.dive4elements.river.client.shared.model.Recommendation; +import org.dive4elements.river.client.shared.model.Recommendation.Facet; +import org.dive4elements.river.client.shared.model.Recommendation.Filter; + +/** + * @author Domenico Nardi Tironi + * + */ +public class RecommandationUtils { + /** + * Creates part of the String that encodes minuend or subtrahend. + * + * @param recommendation + * Recommendation to wrap in string. + * @param info + * Provides the factory to encode. + */ + public static final String createDataString(final String artifactUuid, final Recommendation recommendation, final IRecommendationInfo info) { + final String factory = info.getDataStringFactory(recommendation); + + final Filter filter = recommendation.getFilter(); + Facet f = null; + + if (filter != null) { + final Map<String, List<Facet>> outs = filter.getOuts(); + final Set<Map.Entry<String, List<Facet>>> entries = outs.entrySet(); + + for (final Map.Entry<String, List<Facet>> entry : entries) { + final List<Facet> fs = entry.getValue(); + + f = fs.get(0); + if (f != null) { + break; + } + } + + return "[" + artifactUuid + ";" + f.getName() + ";" + f.getIndex() + ";" + recommendation.getDisplayName() + "]"; + } + + return "[" + artifactUuid + ";" + factory + ";0;" + recommendation.getDisplayName() + "]"; + } +}