/* * Copyright (C) 2006-2016 DLR, Germany * * All rights reserved * * http://www.rcenvironment.de/ */ package de.rcenvironment.core.gui.xpathchooser; import de.rcenvironment.core.utils.common.variables.legacy.VariableType; /** * One variable entry as defined by the xpath chooser. * @author Arne Bachmann * @author Markus Kunde */ public final class VariableEntry { /** * Delimiter for to string conversion. */ private static final String SERIALIZE_SEP = ";"; /** * Variable name, only a..z,A..Z,0..9,_. */ private String name; /** * The xpath of the XML location. */ private String xpath; /** * Variable direction. */ private EVariableDirection direction; /** * Data type. */ private VariableType type; /** * Default constructor. */ public VariableEntry() { // do nothing } /** * Copy constructor. * @param copyFrom The origin */ public VariableEntry(final VariableEntry copyFrom) { direction = copyFrom.direction; name = copyFrom.name; xpath = copyFrom.xpath; type = copyFrom.type; } /** * Initializing constructor. * @param aDirection The direction * @param aName The name * @param anXpath The xpath * @param aType the type */ public VariableEntry(final EVariableDirection aDirection, final String aName, final String anXpath, final VariableType aType) { direction = aDirection; name = aName; xpath = anXpath; type = aType; } /** * Deserializing constructor. * @param fromString The string representation as created in toString */ public VariableEntry(final String fromString) { final int firstPos = fromString.indexOf(SERIALIZE_SEP); final int secondPos = fromString.indexOf(SERIALIZE_SEP, firstPos + 1); final int thirdPos = fromString.indexOf(SERIALIZE_SEP, secondPos + 1); direction = EVariableDirection.valueOf(fromString.substring(0, firstPos)); name = fromString.substring(firstPos + 1, secondPos); xpath = fromString.substring(secondPos + 1, thirdPos); type = VariableType.valueOf(fromString.substring(thirdPos + 1)); } /** * Getter. * @return the name */ public String getName() { return name; } /** * Setter. * @param aName the name to set * @return this */ public VariableEntry setName(final String aName) { this.name = aName; return this; } /** * Getter. * @return the xpath */ public String getXpath() { return xpath; } /** * Setter. * @param aXpath the xpath to set * @return this */ public VariableEntry setXpath(final String aXpath) { this.xpath = aXpath; return this; } /** * Getter. * @return the direction */ public EVariableDirection getDirection() { return direction; } /** * Setter. * @param aDirection the direction to set * @return this */ public VariableEntry setDirection(final EVariableDirection aDirection) { this.direction = aDirection; return this; } /** * Get the defined type. * @return The type */ public VariableType getType() { return type; } /** * Set the defined data type. * @param aType The type * @return The object self */ public VariableEntry setType(final VariableType aType) { type = aType; return this; } @Override public String toString() { return direction.name() + SERIALIZE_SEP + name + SERIALIZE_SEP + xpath + SERIALIZE_SEP + type.toString(); } }