| /******************************************************************************** |
| * Copyright (c) 2015-2019 Contributors to the Eclipse Foundation |
| * |
| * See the NOTICE file(s) distributed with this work for additional |
| * information regarding copyright ownership. |
| * |
| * This program and the accompanying materials are made available under the |
| * terms of the Eclipse Public License v. 2.0 which is available at |
| * http://www.eclipse.org/legal/epl-2.0. |
| * |
| * SPDX-License-Identifier: EPL-2.0 |
| * |
| ********************************************************************************/ |
| |
| package org.eclipse.mdm.api.base.massdata; |
| |
| import org.eclipse.mdm.api.base.model.Channel; |
| import org.eclipse.mdm.api.base.model.ChannelGroup; |
| import org.eclipse.mdm.api.base.model.ScalarType; |
| import org.eclipse.mdm.api.base.model.Unit; |
| |
| /** |
| * This builder allows to specify a source {@link Unit} which is different to |
| * the origin {@code Unit} of the underlying {@link Channel}. In Addition to |
| * that this builder allows to configure numerically sortable measured values to |
| * be independent, which means the measured values do not depend on those of |
| * other {@link Channel}s within their common {@link ChannelGroup}. The |
| * numerically sortable types are listed below: |
| * |
| * <ul> |
| * <li>{@link ScalarType#DATE}</li> |
| * <li>{@link ScalarType#BYTE}</li> |
| * <li>{@link ScalarType#SHORT}</li> |
| * <li>{@link ScalarType#INTEGER}</li> |
| * <li>{@link ScalarType#LONG}</li> |
| * <li>{@link ScalarType#FLOAT}</li> |
| * <li>{@link ScalarType#DOUBLE}</li> |
| * </ul> |
| * |
| * @since 1.0.0 |
| * @author Viktor Stoehr, Gigatronik Ingolstadt GmbH |
| * @author Sebastian Dirsch, Gigatronik Ingolstadt GmbH |
| */ |
| public final class UnitIndependentBuilder extends IndependentBuilder { |
| |
| // ====================================================================== |
| // Constructors |
| // ====================================================================== |
| |
| /** |
| * Constructor. |
| * |
| * @param writeRequest The {@link WriteRequest} whose measured values source |
| * {@link Unit} may be changed or marked as independent. |
| */ |
| UnitIndependentBuilder(WriteRequest writeRequest) { |
| super(writeRequest); |
| } |
| |
| // ====================================================================== |
| // Public methods |
| // ====================================================================== |
| |
| /** |
| * Sets a source {@link Unit} for the previously defined measured values. |
| * |
| * @param sourceUnit The source {@code Unit}. |
| * @return The {@link IndependentBuilder} is returned. |
| */ |
| public IndependentBuilder sourceUnit(Unit sourceUnit) { |
| getWriteRequest().setSourceUnit(sourceUnit); |
| return this; |
| } |
| |
| } |