/* * Copyright (C) 2006-2016 DLR, Germany * * All rights reserved * * http://www.rcenvironment.de/ */ package de.rcenvironment.core.datamodel.api; import de.rcenvironment.core.datamodel.types.api.BooleanTD; import de.rcenvironment.core.datamodel.types.api.DateTimeTD; import de.rcenvironment.core.datamodel.types.api.DirectoryReferenceTD; import de.rcenvironment.core.datamodel.types.api.EmptyTD; import de.rcenvironment.core.datamodel.types.api.FileReferenceTD; import de.rcenvironment.core.datamodel.types.api.FloatTD; import de.rcenvironment.core.datamodel.types.api.NotAValueTD; import de.rcenvironment.core.datamodel.types.api.IntegerTD; import de.rcenvironment.core.datamodel.types.api.MatrixTD; import de.rcenvironment.core.datamodel.types.api.ShortTextTD; import de.rcenvironment.core.datamodel.types.api.SmallTableTD; import de.rcenvironment.core.datamodel.types.api.VectorTD; /** * Factory for {@link TypedDatum} instances. * * @author Robert Mischke * @author Sascha Zur * @author Doreen Seider */ public interface TypedDatumFactory { /** * @param value that should be contained. * @return a {@link BooleanTD} value container */ BooleanTD createBoolean(boolean value); /** * @param value that should be contained. * @return a {@link IntegerTD} value container */ IntegerTD createInteger(long value); /** * @param value that should be contained. * @return a {@link FloatTD} value container */ FloatTD createFloat(double value); /** * @param value of the short text. * @return an empty {@link ShortTextTD} value container * */ ShortTextTD createShortText(String value); /** * @param dimension of the new vector * @return an empty {@link VectorTD} instance */ VectorTD createVector(int dimension); /** * @param values Given vector entries * @return a {@link VectorTD} instance */ VectorTD createVector(FloatTD[] values); /** * @param column of the matrix * @param row of the matrix * @return an column x row dimensioned matrix */ MatrixTD createMatrix(int column, int row); /** * @param values predefined values for the matrix * @return a {@link MatrixTD} instance */ MatrixTD createMatrix(FloatTD[][] values); /** * @param rows row dimension * @param columns column dimension * @return an empty {@link SmallTableTD} instance */ SmallTableTD createSmallTable(int rows, int columns); /** * @param tableEntries Given table entries * @return a {@link SmallTableTD} instance */ SmallTableTD createSmallTable(TypedDatum[][] tableEntries); /** * @param dateTime the datum has to represent * @return an empty {@link DateTimeTD} value container */ DateTimeTD createDateTime(long dateTime); /** * @param reference file reference * @param fileName name of the file * @return an {@link FileReferenceTD} instance */ FileReferenceTD createFileReference(String reference, String fileName); /** * @param reference directory reference * @param dirName of the directory reference * @return an {@link DirectoryReferenceTD} instance */ DirectoryReferenceTD createDirectoryReference(String reference, String dirName); /** * @return an empty value. */ EmptyTD createEmpty(); /** * Like {@link #createNotAValue(NotAValueTD.Cause)} called with {@link Cause.InvalidInputs}. * @return an undefined value (NaV) */ NotAValueTD createNotAValue(); /** * @param cause {@link Cause} why the {@link NotAValueTD} was sent * @return an undefined value (NaV) */ NotAValueTD createNotAValue(NotAValueTD.Cause cause); /** * Like {@link #createNotAValue(String, NotAValueTD.Cause)} called with {@link Cause.InvalidInputs}. * @param identifier identifier of the {@link NotAValueTD} instance * @return an undefined value (NaV) */ NotAValueTD createNotAValue(String identifier); /** * @param identifier identifier of the {@link NotAValueTD} instance * @param cause {@link Cause} why the {@link NotAValueTD} was sent * @return an undefined value (NaV) */ NotAValueTD createNotAValue(String identifier, NotAValueTD.Cause cause); }