// Note: Instrumentation statements are highlighted in green

#include "EmailAddressInfo.hpp"
#include "string_io.hpp"

///////////////////////////////////////////////////////////////////////////////
// EmailAddressInfo class
///////////////////////////////////////////////////////////////////////////////

// Visual Member Definition
VISIBILITY_START(EmailAddressInfo, "Email Address Info", 5)
VVARIABLE(EmailAddressInfo, emailAddress, "Email Address", 0, 0)
VVARIABLE(EmailAddressInfo, isDefault, "Default address", 0, 0)
VVARIABLE(EmailAddressInfo, usePlainText, "Use plain text only", 0, 0)
VVOID_FUNCTION(EmailAddressInfo, clear, "Clear", 0, 0)
VISIBILITY_END

EmailAddressInfo::EmailAddressInfo(void)
{
}

EmailAddressInfo::EmailAddressInfo(const EmailAddressInfo & that)
{
  *this = that;
}

EmailAddressInfo::~EmailAddressInfo(void)
{
}

EmailAddressInfo & EmailAddressInfo::operator =(const EmailAddressInfo & that)
{
  if (this != &that) {
    emailAddress = that.emailAddress;
    isDefault = that.isDefault;
    usePlainText = that.usePlainText;
  }
  return *this;
}

std::ostream & operator<< (std::ostream& os, EmailAddressInfo & out_obj)
{
  write_string(os, out_obj.emailAddress);
  os << out_obj.isDefault << " ";
  os << out_obj.usePlainText << " ";
  return os;
}

std::istream & operator>> (std::istream & is, EmailAddressInfo & in_obj)
{
  read_string(is, in_obj.emailAddress);
  is >> in_obj.isDefault;
  is >> in_obj.usePlainText;
  return is;
}

bool EmailAddressInfo::operator==(const EmailAddressInfo & that) const
{
  return emailAddress == that.emailAddress;
}

bool EmailAddressInfo::operator!=(const EmailAddressInfo & that) const
{
  return emailAddress != that.emailAddress;
}

bool EmailAddressInfo::operator<(const EmailAddressInfo & that) const
{
  return emailAddress < that.emailAddress;
}

bool EmailAddressInfo::operator>(const EmailAddressInfo & that) const
{
  return emailAddress > that.emailAddress;
}
  
void EmailAddressInfo::clear(void)
{
  emailAddress = "";
  isDefault = false;
  usePlainText = false;
}

void EmailAddressInfo::populateEditView(void)
{
  emailAddress = "jack@mgoose.net";
  isDefault = true;
  usePlainText = false;
}


Copyright 2002-2007 Outerface Technologies, Inc.