gernotbelger@9027: /** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde gernotbelger@9027: * Software engineering by gernotbelger@9027: * Björnsen Beratende Ingenieure GmbH gernotbelger@9027: * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt gernotbelger@9027: * gernotbelger@9027: * This file is Free Software under the GNU AGPL (>=v3) gernotbelger@9027: * and comes with ABSOLUTELY NO WARRANTY! Check out the gernotbelger@9027: * documentation coming with Dive4Elements River for details. gernotbelger@9027: */ gernotbelger@9027: package org.dive4elements.river.client.client.ui; gernotbelger@9027: gernotbelger@9027: import java.util.List; gernotbelger@9027: import java.util.Map; gernotbelger@9027: import java.util.Set; gernotbelger@9027: gernotbelger@9027: import org.dive4elements.river.client.client.ui.AbstractPairRecommendationPanel.IRecommendationInfo; gernotbelger@9027: import org.dive4elements.river.client.shared.model.Recommendation; gernotbelger@9027: import org.dive4elements.river.client.shared.model.Recommendation.Facet; gernotbelger@9027: import org.dive4elements.river.client.shared.model.Recommendation.Filter; gernotbelger@9027: gernotbelger@9027: /** gernotbelger@9027: * @author Domenico Nardi Tironi gernotbelger@9027: * gernotbelger@9027: */ gernotbelger@9027: public class RecommandationUtils { gernotbelger@9027: /** gernotbelger@9027: * Creates part of the String that encodes minuend or subtrahend. gernotbelger@9027: * gernotbelger@9027: * @param recommendation gernotbelger@9027: * Recommendation to wrap in string. gernotbelger@9027: * @param info gernotbelger@9027: * Provides the factory to encode. gernotbelger@9027: */ gernotbelger@9027: public static final String createDataString(final String artifactUuid, final Recommendation recommendation, final IRecommendationInfo info) { gernotbelger@9027: final String factory = info.getDataStringFactory(recommendation); gernotbelger@9027: gernotbelger@9027: final Filter filter = recommendation.getFilter(); gernotbelger@9027: Facet f = null; gernotbelger@9027: gernotbelger@9027: if (filter != null) { gernotbelger@9027: final Map> outs = filter.getOuts(); gernotbelger@9027: final Set>> entries = outs.entrySet(); gernotbelger@9027: gernotbelger@9027: for (final Map.Entry> entry : entries) { gernotbelger@9027: final List fs = entry.getValue(); gernotbelger@9027: gernotbelger@9027: f = fs.get(0); gernotbelger@9027: if (f != null) { gernotbelger@9027: break; gernotbelger@9027: } gernotbelger@9027: } gernotbelger@9027: gernotbelger@9027: return "[" + artifactUuid + ";" + f.getName() + ";" + f.getIndex() + ";" + recommendation.getDisplayName() + "]"; gernotbelger@9027: } gernotbelger@9027: gernotbelger@9027: return "[" + artifactUuid + ";" + factory + ";0;" + recommendation.getDisplayName() + "]"; gernotbelger@9027: } gernotbelger@9027: }