#include "pch.h"
#include "System/IO/TextWriter.h"
#include "System/Convert.h"
#include "System/Char.h"

namespace DotNetDupe {
    namespace System {
        namespace IO {
            void TextWriter::Close() {
                Dispose();
            }

            void TextWriter::Dispose() {
                // Base implementation does nothing
            }

            void TextWriter::Flush() {
                // Base implementation does nothing
            }

            void TextWriter::Write(bool bValue) {
                Write(Convert::ToString(bValue));
            }

            void TextWriter::Write(char chValue) {
                // Base class does not know how to write, should be overridden
            }

            void TextWriter::Write(const char* pValue) {
                if (pValue == nullptr) return;
                Write(String(pValue));
            }

            void TextWriter::Write(const String& sValue) {
                for (int iIdx = 0; iIdx < sValue.GetLength(); iIdx++) {
                    Write((char)sValue[iIdx]);
                }
            }

            void TextWriter::Write(int iValue) {
                Write(Convert::ToString(iValue));
            }

            void TextWriter::Write(long long llValue) {
                Write(Convert::ToString(llValue));
            }

            void TextWriter::Write(float fValue) {
                Write(Convert::ToString(fValue));
            }

            void TextWriter::Write(double dValue) {
                Write(Convert::ToString(dValue));
            }

            void TextWriter::WriteLine() {
                Write(GetNewLine());
            }

            void TextWriter::WriteLine(bool bValue) {
                Write(bValue);
                WriteLine();
            }

            void TextWriter::WriteLine(char chValue) {
                Write(chValue);
                WriteLine();
            }

            void TextWriter::WriteLine(const char* pValue) {
                Write(pValue);
                WriteLine();
            }

            void TextWriter::WriteLine(const String& sValue) {
                Write(sValue);
                WriteLine();
            }

            void TextWriter::WriteLine(int iValue) {
                Write(iValue);
                WriteLine();
            }

            void TextWriter::WriteLine(long long llValue) {
                Write(llValue);
                WriteLine();
            }

            void TextWriter::WriteLine(float fValue) {
                Write(fValue);
                WriteLine();
            }

            void TextWriter::WriteLine(double dValue) {
                Write(dValue);
                WriteLine();
            }

            const String& TextWriter::GetNewLine() {
                static String sNewLine("\r\n");
                return sNewLine;
            }
        }
    }
}

Generated by OpenCppCoverage (Version: 0.9.9.0)