/*
 * ConfigReader.cpp
 *
 *  Created on: Jan 9, 2012
 *      Author: godin
 */

#include "ConfigReader.h"
#include "data/StrValue.h"

ConfigReader::ConfigReader( Component* owner, DataElement& element,
                            const Unit& defaultUnit )
    : DataReader( owner, element, defaultUnit )
{}

ConfigReader::~ConfigReader()
{
}


void ConfigReader::setConfigured( bool configured )
{
    configured_ = configured;
}


bool ConfigReader::configured()
{
    return configured_;
}


bool ConfigReader::read( const Unit& unit, unsigned char& readTo )
{
    if( !configured_ )
    {
        return false;
    }
    return DataReader::read( unit, readTo );
}


bool ConfigReader::read( const Unit& unit, double& readTo )
{
    if( !configured_ )
    {
        return false;
    }
    return DataReader::read( unit, readTo );
}

bool ConfigReader::read( const Unit& unit, float& readTo )
{
    if( !configured_ )
    {
        return false;
    }
    return DataReader::read( unit, readTo );
}

bool ConfigReader::read( const Unit& unit, int& readTo )
{
    if( !configured_ )
    {
        return false;
    }
    return DataReader::read( unit, readTo );
}

bool ConfigReader::read( bool& readTo )
{
    if( !configured_ )
    {
        return false;
    }
    return DataReader::read( readTo );
}

bool ConfigReader::read( Timespan& readTo )
{
    if( !configured_ )
    {
        return false;
    }
    return DataReader::read( readTo );
}

bool ConfigReader::read( DataValue& readTo )
{
    if( !configured_ )
    {
        return false;
    }
    return DataReader::read( readTo );
}

bool ConfigReader::read( Str& readTo )
{
    StrValue temp;
    if( read( temp ) )
    {
        readTo = temp.asString();
        return true;
    }
    return false;
}
