/*
* Copyright (C) 2006-2016 DLR, Germany
*
* All rights reserved
*
* http://www.rcenvironment.de/
*/
package de.rcenvironment.components.excel.common;
import java.io.File;
import java.io.Serializable;
import de.rcenvironment.core.datamodel.api.TypedDatumSerializer;
import de.rcenvironment.core.datamodel.types.api.SmallTableTD;
/**
* Represents one normalized channel value.
* Normalized means that this class contains plain data regardless of transfer method
*
* @author Markus Kunde
*/
public class ChannelValue implements Serializable {
private static final long serialVersionUID = 4317907370959158263L;
/**
* True if value is from input channel.
*/
private boolean isInputValue = false;
/**
* Array containing the values of channels.
*/
private String valuesSerialized = null;
/**
* Plain text name of channel.
*/
private String channelName = null;
/**
* if true all data will be written into Excel even if cell area does not fit.
*/
private boolean expand = false;
private File excelFile;
private String preMacro = null;
private String runMacro = null;
private String postMacro = null;
private long iteration;
private ExcelAddress excelAddress;
/**
* Constructor.
*
* @param excelFile Excel file
* @param address Excel address where value(s) are connected to
* @param channelName name of RCE-Channel
* @param isInputValue if true channel is an input channel
* @param expanding if true all data will be written into Excel even if cell area does not fit
* @param iterationStep iteratin of step
*/
public ChannelValue(final File excelFile, final ExcelAddress address, final String channelName, final boolean isInputValue,
final boolean expanding, final long iterationStep) {
this.excelFile = excelFile;
excelAddress = address;
this.channelName = channelName;
this.isInputValue = isInputValue;
iteration = iterationStep;
}
/**
* Returns true of value is from input channel.
* @return Returns the isInputValue.
*/
public boolean isInputValue() {
return isInputValue;
}
/**
* Returns name of channel.
*
* @return channel name
*/
public String getChannelName() {
return channelName;
}
/**
* Get iteration step.
*
* @return iteration step
*/
public long getIteration() {
return iteration;
}
/**
* Gets all values of one concrete channel value.
* @return Returns the values or null if no plain values are set.
*/
public SmallTableTD getValues() {
TypedDatumSerializer serializer = new ServiceHolder().getSerializer();
return (SmallTableTD) serializer.deserialize(valuesSerialized);
}
/**
* Sets values of a concrete channel value. Should be used if vals are only a few.
* @param vals The values to set.
*/
public void setValues(final SmallTableTD vals) {
TypedDatumSerializer serializer = new ServiceHolder().getSerializer();
valuesSerialized = serializer.serialize(vals);
}
/**
* Returns Excel address.
*
* @return excel address
*/
public ExcelAddress getExcelAddress() {
return excelAddress;
}
/**
* Returns expanding flat.
*
* @return if true all data will be written into Excel even if cell area does not fit
*/
public boolean isExpanding() {
return expand;
}
/**
* Get Excel file object.
*
* @return excel file
*/
public File getFile() {
return excelFile;
}
/**
* Returns name of macro which runs before insertion of input channels.
*
* @return name of macro
*/
public String getPreMacro() {
return preMacro;
}
/**
* Sets the name of macro which runs before insertion of input channels.
*
* @param preMacro name of macro
*/
public void setPreMacro(String preMacro) {
this.preMacro = preMacro;
}
/**
* Returns name of macro which runs after insertion of input channels.
*
* @return name of macro
*/
public String getRunMacro() {
return runMacro;
}
/**
* Sets the name of macro which runs after insertion of input channels.
*
* @param runMacro name of macro
*/
public void setRunMacro(String runMacro) {
this.runMacro = runMacro;
}
/**
* Returns name of macro which runs after reading of output channels.
*
* @return name of macro
*/
public String getPostMacro() {
return postMacro;
}
/**
* Sets the name of macro which runs after reading of output channels.
*
* @param postMacro name of macro
*/
public void setPostMacro(String postMacro) {
this.postMacro = postMacro;
}
}