Blame lib/DtdDeclEventHandler.cxx

Packit 8a864e
// Copyright (c) 1999 Matthias Clasen
Packit 8a864e
// See the file COPYING for copying permission.
Packit 8a864e
Packit 8a864e
#include "splib.h"
Packit 8a864e
#include "DtdDeclEventHandler.h"
Packit 8a864e
#include "macros.h"
Packit 8a864e
Packit 8a864e
#ifdef SP_NAMESPACE
Packit 8a864e
namespace SP_NAMESPACE {
Packit 8a864e
#endif
Packit 8a864e
  
Packit 8a864e
DtdDeclEventHandler::DtdDeclEventHandler(const StringC &pubid)
Packit 8a864e
: pubid_(pubid), match_(0)
Packit 8a864e
{
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
void DtdDeclEventHandler::message(MessageEvent *event)
Packit 8a864e
{
Packit 8a864e
  switch (event->message().type->severity()) {
Packit 8a864e
  case MessageType::quantityError:
Packit 8a864e
  case MessageType::error:
Packit 8a864e
  case MessageType::idrefError:
Packit 8a864e
    delete event;
Packit 8a864e
    cancel();
Packit 8a864e
    break;
Packit 8a864e
  case MessageType::info:
Packit 8a864e
  case MessageType::warning:
Packit 8a864e
    delete event;
Packit 8a864e
    break;
Packit 8a864e
  }
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
void DtdDeclEventHandler::startDtd(StartDtdEvent *event)
Packit 8a864e
{
Packit 8a864e
  const Entity *entity = event->entity().pointer();
Packit 8a864e
  if (entity) {
Packit 8a864e
    const StringC *pubid = 
Packit 8a864e
      entity->asExternalEntity()->externalId().publicIdString();
Packit 8a864e
    if (pubid && pubid_ == *pubid) 
Packit 8a864e
      match_ = 1;
Packit 8a864e
  }
Packit 8a864e
  delete event;
Packit 8a864e
  cancel();
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
Boolean DtdDeclEventHandler::match() const
Packit 8a864e
{
Packit 8a864e
  return match_;
Packit 8a864e
}
Packit 8a864e
Packit 8a864e
#ifdef SP_NAMESPACE
Packit 8a864e
}
Packit 8a864e
#endif
Packit 8a864e
Packit 8a864e
Packit 8a864e