/* * Copyright (C) 2006-2016 DLR, Germany * * All rights reserved * * http://www.rcenvironment.de/ */ package de.rcenvironment.core.datamodel.api; /** * Defines whether an endpoint is meant to be connected to a component of the same loop level or to a component of the next upper loop * level. * * @author Doreen Seider * * TODO (p2) 8.1.0: Rename to LoopLevel.* (LoopLevelDirection, LoopLevelDifferential, etc. (nothing of them is really nice, thus * keep it open by using .*)) - seid_do */ public enum EndpointCharacter { /** Connected to same loop. */ SAME_LOOP("From same loop level", "To same loop level"), /** Connected to upper loop. */ OUTER_LOOP("From upper loop level", "To upper loop level"); /** Value for {@link EndpointCharacter#SAME_LOOP}. */ public static final String VALUE_SAME_LOOP = "sameLoop"; /** Value for {@link EndpointCharacter#OUTER_LOOP}. */ public static final String VALUE_OUTER_LOOP = "outerLoop"; private final String displayNameInput; private final String displayNameOutput; /** * @param displayName name shown in UIs */ EndpointCharacter(String displayNameInput, String displayNameOutput) { this.displayNameInput = displayNameInput; this.displayNameOutput = displayNameOutput; } /** * Creates {@link EndpointCharacter} instances from the value name used for endpoint definition. * * @param valueName value name used for endpoint definition * @return {@link EndpointCharacter} or <code>null</code> if given value is unknown */ public static EndpointCharacter fromEndpointDefinitionValue(String valueName) { switch (valueName) { case VALUE_SAME_LOOP: return EndpointCharacter.SAME_LOOP; case VALUE_OUTER_LOOP: return EndpointCharacter.OUTER_LOOP; default: return null; } } /** * @param endpointType {@link EndpointType} the display name is used for * @return display name of {@link EndpointCharacter} based on the given {@link EndpointType} */ public String getDisplayName(EndpointType endpointType) { switch (endpointType) { case INPUT: return displayNameInput; case OUTPUT: return displayNameOutput; default: throw new IllegalArgumentException("Endpint type unknown: " + endpointType); } } }