/* * Copyright (C) 2006-2016 DLR, Germany * * All rights reserved * * http://www.rcenvironment.de/ */ package de.rcenvironment.components.parametricstudy.common; import java.io.Serializable; import java.util.HashMap; import java.util.Map; /** * Class holding one set of values for a study case. * @author Christian Weiss */ public class StudyDataset implements Serializable { private static final long serialVersionUID = -5549958046464158432L; private final Map<String, Serializable> values = new HashMap<String, Serializable>(); public StudyDataset(final Map<String, Serializable> values) { this.values.putAll(values); } /** * @param key the key of the value to get. * @return the value. */ public Serializable getValue(final String key) { return values.get(key); } /** * @param <T> type super class. * @param key the key of the value to get. * @param clazz type of value. * @return the value. * @throws ClassCastException if cast fails. */ public <T extends Serializable> T getValue(final String key, Class<T> clazz) throws ClassCastException { final Serializable value = values.get(key); if (value != null && !clazz.isAssignableFrom(value.getClass())) { throw new ClassCastException(); } if (value != null) { return clazz.cast(value); } else { return null; } } public Map<String, Serializable> getValues() { return values; } }