org.geant.sat.ui.utils.AssessorDetailsHelper.java Source code

Java tutorial

Introduction

Here is the source code for org.geant.sat.ui.utils.AssessorDetailsHelper.java

Source

/*
 * GANT BSD Software License
 *
 * Copyright (c) 2017 - 2020, GANT
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without modification, are permitted provided that the
 * following conditions are met:
 *
 * 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following
 * disclaimer.
 *
 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the
 * following disclaimer in the documentation and/or other materials provided with the distribution.
 *
 * 3. Neither the name of the GANT nor the names of its contributors may be used to endorse or promote products
 * derived from this software without specific prior written permission.
 *
 * Disclaimer:
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
 * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

package org.geant.sat.ui.utils;

import java.util.HashSet;
import java.util.List;
import java.util.Set;

import org.geant.sat.api.dto.AssessorDetails;

import com.vaadin.ui.ItemCaptionGenerator;

/** class implementing helpers for assessor details.*/
@SuppressWarnings("serial")
public class AssessorDetailsHelper implements ItemCaptionGenerator<AssessorDetails> {

    @Override
    public String apply(AssessorDetails item) {
        return display(item);
    }

    /**
     * Converts assessor to a human readable string.
     * 
     * @param item
     *            assessor details.
     * @return assessor display string.
     */
    public static String display(AssessorDetails item) {
        if (item.getId() == null) {
            return item.getValue();
        }
        return item.getId() + ": " + item.getValue();
    }

    /**
     * Creates a new set of assessor details by picking assessors from "pool"
     * based on "selection". The assessors are picked by matching id.
     * 
     * @param pool
     *            to pick assessors from
     * @param selection
     *            assessors to be picked.
     * @return assessors
     */
    public static Set<AssessorDetails> selectionToSet(List<AssessorDetails> pool, List<AssessorDetails> selection) {
        Set<AssessorDetails> result = new HashSet<AssessorDetails>();
        for (AssessorDetails assessorDetail : pool) {
            for (AssessorDetails preselectedAssessorDetail : selection) {
                if (preselectedAssessorDetail.getId().equals(assessorDetail.getId())) {
                    result.add(assessorDetail);
                }
            }
        }
        return result;

    }

}