Blame src/cppunit/Message.cpp

Packit 8c9aa0
#include <cppunit/Message.h>
Packit 8c9aa0
#include <stdexcept>
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
CPPUNIT_NS_BEGIN
Packit 8c9aa0
Packit 8c9aa0
Message::Message( const Message &other )
Packit 8c9aa0
    : m_shortDescription()
Packit 8c9aa0
    , m_details()
Packit 8c9aa0
{
Packit 8c9aa0
   *this = other;
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Message::Message( const std::string &shortDescription )
Packit 8c9aa0
    : m_shortDescription( shortDescription )
Packit 8c9aa0
    , m_details()
Packit 8c9aa0
{
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
Message::Message( const std::string &shortDescription,
Packit 8c9aa0
                  const std::string &detail1 )
Packit 8c9aa0
    : m_shortDescription( shortDescription )
Packit 8c9aa0
    , m_details()
Packit 8c9aa0
{
Packit 8c9aa0
  addDetail( detail1 );
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
Message::Message( const std::string &shortDescription,
Packit 8c9aa0
                  const std::string &detail1,
Packit 8c9aa0
                  const std::string &detail2 )
Packit 8c9aa0
    : m_shortDescription( shortDescription )
Packit 8c9aa0
    , m_details()
Packit 8c9aa0
{
Packit 8c9aa0
  addDetail( detail1, detail2 );
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
Message::Message( const std::string &shortDescription,
Packit 8c9aa0
                  const std::string &detail1,
Packit 8c9aa0
                  const std::string &detail2,
Packit 8c9aa0
                  const std::string &detail3 )
Packit 8c9aa0
    : m_shortDescription( shortDescription )
Packit 8c9aa0
    , m_details()
Packit 8c9aa0
{
Packit 8c9aa0
  addDetail( detail1, detail2, detail3 );
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Message::~Message()
Packit 8c9aa0
{
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Message &
Packit 8c9aa0
Message::operator =( const Message &other )
Packit 8c9aa0
{
Packit 8c9aa0
   if ( this != &other )
Packit 8c9aa0
   {
Packit 8c9aa0
      m_shortDescription = other.m_shortDescription.c_str();
Packit 8c9aa0
      m_details.clear();
Packit 8c9aa0
      Details::const_iterator it = other.m_details.begin();
Packit 8c9aa0
      Details::const_iterator itEnd = other.m_details.end();
Packit 8c9aa0
      while ( it != itEnd )
Packit 8c9aa0
         m_details.push_back( (*it++).c_str() );
Packit 8c9aa0
   }
Packit 8c9aa0
Packit 8c9aa0
   return *this;
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
const std::string &
Packit 8c9aa0
Message::shortDescription() const
Packit 8c9aa0
{
Packit 8c9aa0
  return m_shortDescription;
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
int 
Packit 8c9aa0
Message::detailCount() const
Packit 8c9aa0
{
Packit 8c9aa0
  return m_details.size();
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
std::string 
Packit 8c9aa0
Message::detailAt( int index ) const
Packit 8c9aa0
{
Packit 8c9aa0
  if ( index < 0  ||  index >= detailCount() )
Packit 8c9aa0
    throw std::invalid_argument( "Message::detailAt() : invalid index" );
Packit 8c9aa0
Packit 8c9aa0
  return m_details[ index ];
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
std::string 
Packit 8c9aa0
Message::details() const
Packit 8c9aa0
{
Packit 8c9aa0
  std::string details;
Packit 8c9aa0
  for ( Details::const_iterator it = m_details.begin(); it != m_details.end(); ++it )
Packit 8c9aa0
  {
Packit 8c9aa0
    details += "- ";
Packit 8c9aa0
    details += *it;
Packit 8c9aa0
    details += '\n';
Packit 8c9aa0
  }
Packit 8c9aa0
  return details;
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
void 
Packit 8c9aa0
Message::clearDetails()
Packit 8c9aa0
{
Packit 8c9aa0
  m_details.clear();
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
void 
Packit 8c9aa0
Message::addDetail( const std::string &detail )
Packit 8c9aa0
{
Packit 8c9aa0
  m_details.push_back( detail );
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
void 
Packit 8c9aa0
Message::addDetail( const std::string &detail1,
Packit 8c9aa0
                    const std::string &detail2 )
Packit 8c9aa0
{
Packit 8c9aa0
  addDetail( detail1 );
Packit 8c9aa0
  addDetail( detail2 );
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
void 
Packit 8c9aa0
Message::addDetail( const std::string &detail1,
Packit 8c9aa0
                    const std::string &detail2,
Packit 8c9aa0
                    const std::string &detail3 )
Packit 8c9aa0
{
Packit 8c9aa0
  addDetail( detail1, detail2 );
Packit 8c9aa0
  addDetail( detail3 );
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
void 
Packit 8c9aa0
Message::addDetail( const Message &message )
Packit 8c9aa0
{
Packit 8c9aa0
  m_details.insert( m_details.end(), 
Packit 8c9aa0
                    message.m_details.begin(), 
Packit 8c9aa0
                    message.m_details.end() );
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
void 
Packit 8c9aa0
Message::setShortDescription( const std::string &shortDescription )
Packit 8c9aa0
{
Packit 8c9aa0
  m_shortDescription = shortDescription;
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
bool 
Packit 8c9aa0
Message::operator ==( const Message &other ) const
Packit 8c9aa0
{
Packit 8c9aa0
  return m_shortDescription == other.m_shortDescription  &&
Packit 8c9aa0
         m_details == other.m_details;
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
bool 
Packit 8c9aa0
Message::operator !=( const Message &other ) const
Packit 8c9aa0
{
Packit 8c9aa0
  return !( *this == other );
Packit 8c9aa0
}
Packit 8c9aa0
Packit 8c9aa0
Packit 8c9aa0
CPPUNIT_NS_END
Packit 8c9aa0