1 // ANNA - Anna is Not Nothingness Anymore //
3 // (c) Copyright 2005-2015 Eduardo Ramos Testillano & Francisco Ruiz Rayo //
5 // See project site at http://redmine.teslayout.com/projects/anna-suite //
6 // See accompanying file LICENSE or copy at http://www.teslayout.com/projects/public/anna.LICENSE //
9 #include <anna/core/util/TextVariable.hpp>
14 TextVariable::TextVariable(const char* name, const Type::_v type, const anna::String& expression) :
16 a_expression(expression) {
19 const char* TextVariable::compose(DataBlock& buffer) const
21 if(Variable::isNull() == true)
22 throw RuntimeException(asString(), ANNA_FILE_LOCATION);
25 case Variable::Type::String:
26 buffer.allocate(a_expression.length() + anna_strlen(getStringValue()) + 1);
27 sprintf((char*) buffer.getData(), a_expression.c_str(), getStringValue());
29 case Variable::Type::Integer:
30 buffer.allocate(a_expression.length() + 16);
31 sprintf((char*) buffer.getData(), a_expression.c_str(), getIntegerValue());
33 case Variable::Type::Integer64:
34 buffer.allocate(a_expression.length() + 32);
35 sprintf((char*) buffer.getData(), a_expression.c_str(), getInteger64Value());
37 case Variable::Type::Float:
38 buffer.allocate(a_expression.length() + 32);
39 sprintf((char*) buffer.getData(), a_expression.c_str(), getFloatValue());
44 return buffer.getData();