boost::optional<IdfObject> ForwardTranslator::translateMeter( Meter & modelObject )
{
    boost::optional<IdfObject> idfObject;

    QString name = toQString(modelObject.name()).replace(QString("FuelOil_"), QString("FuelOil#"));

    if (modelObject.meterFileOnly() && modelObject.cumulative()) {
        idfObject = IdfObject (openstudio::IddObjectType::Output_Meter_Cumulative_MeterFileOnly);
        m_idfObjects.push_back(*idfObject);

        idfObject->setString(Output_Meter_Cumulative_MeterFileOnlyFields::Name, toString(name));

        if (!modelObject.isReportingFrequencyDefaulted()) {
            idfObject->setString(Output_Meter_Cumulative_MeterFileOnlyFields::ReportingFrequency, modelObject.reportingFrequency());
        }

    } else if (modelObject.meterFileOnly()) {
        idfObject = IdfObject (openstudio::IddObjectType::Output_Meter_MeterFileOnly);
        m_idfObjects.push_back(*idfObject);

        idfObject->setString(Output_Meter_MeterFileOnlyFields::Name, toString(name));

        if (!modelObject.isReportingFrequencyDefaulted()) {
            idfObject->setString(Output_Meter_MeterFileOnlyFields::ReportingFrequency, modelObject.reportingFrequency());
        }

    } else if (modelObject.cumulative()) {
        idfObject = IdfObject (openstudio::IddObjectType::Output_Meter_Cumulative);
        m_idfObjects.push_back(*idfObject);

        idfObject->setString(Output_Meter_CumulativeFields::Name, toString(name));

        if (!modelObject.isReportingFrequencyDefaulted()) {
            idfObject->setString(Output_Meter_CumulativeFields::ReportingFrequency, modelObject.reportingFrequency());
        }

    } else {
        idfObject = IdfObject (openstudio::IddObjectType::Output_Meter);
        m_idfObjects.push_back(*idfObject);

        idfObject->setString(Output_MeterFields::Name, toString(name));

        if (!modelObject.isReportingFrequencyDefaulted()) {
            idfObject->setString(Output_MeterFields::ReportingFrequency, modelObject.reportingFrequency());
        }

    }

    return idfObject;
}