[Libreoffice-commits] core.git: 7 commits - chart2/source extensions/source hwpfilter/source l10ntools/source sal/osl unoidl/source
Stephan Bergmann
sbergman at redhat.com
Thu Jul 31 02:59:42 PDT 2014
Please refrain from such cosmetic changes in the future. IIRC, the
unoidl module (being mostly written by a single person, me) more-or-less
consistently used a single formatting style until now. I see no good
reason to change that to another formatting style.
Stephan
On 07/10/2014 10:33 PM, Norbert Thiebaud wrote:
> commit d4810a814c7c7f3db2df15b62367bd1edc7040f6
> Author: Norbert Thiebaud <nthiebaud at gmail.com>
> Date: Thu Jul 10 18:46:38 2014 +0200
>
> cosmetic 'en-passant'....
>
> Change-Id: I9a787065898004ece4bd55839c563b7395e3a314
>
> diff --git a/unoidl/source/unoidl-check.cxx b/unoidl/source/unoidl-check.cxx
> index 137d950..93cfc2d 100644
> --- a/unoidl/source/unoidl-check.cxx
> +++ b/unoidl/source/unoidl-check.cxx
> @@ -27,9 +27,12 @@
>
> namespace unoidl {
>
> -bool operator ==(ConstantValue const & lhs, ConstantValue const & rhs) {
> - if (lhs.type == rhs.type) {
> - switch (lhs.type) {
> +bool operator ==(ConstantValue const & lhs, ConstantValue const & rhs)
> +{
> + if (lhs.type == rhs.type)
> + {
> + switch (lhs.type)
> + {
> case ConstantValue::TYPE_BOOLEAN:
> return lhs.booleanValue == rhs.booleanValue;
> case ConstantValue::TYPE_BYTE:
> @@ -55,13 +58,13 @@ bool operator ==(ConstantValue const & lhs, ConstantValue const & rhs) {
> return false;
> }
>
> -bool operator !=(ConstantValue const & lhs, ConstantValue const & rhs) {
> +bool operator !=(ConstantValue const & lhs, ConstantValue const & rhs)
> +{
> return !(lhs == rhs);
> }
>
> -bool operator ==(
> - SingleInterfaceBasedServiceEntity::Constructor::Parameter const & lhs,
> - SingleInterfaceBasedServiceEntity::Constructor::Parameter const & rhs)
> +bool operator ==( SingleInterfaceBasedServiceEntity::Constructor::Parameter const & lhs,
> + SingleInterfaceBasedServiceEntity::Constructor::Parameter const & rhs)
> {
> return lhs.name == rhs.name && lhs.type == rhs.type && lhs.rest == rhs.rest;
> }
> @@ -70,12 +73,18 @@ bool operator ==(
>
> namespace {
>
> -void badUsage() {
> +void badUsage()
> +{
> std::cerr
> - << "Usage:" << std::endl << std::endl
> + << "Usage:"
> + << std::endl
> + << std::endl
> << (" unoidl-check [<extra registries A>] <registry A> -- [<extra"
> " registries B>]")
> - << std::endl << " <registry B>" << std::endl << std::endl
> + << std::endl
> + << " <registry B>"
> + << std::endl
> + << std::endl
> << ("where each <registry> is either a new- or legacy-format .rdb file,"
> " a single .idl")
> << std::endl
> @@ -87,11 +96,14 @@ void badUsage() {
> std::exit(EXIT_FAILURE);
> }
>
> -OUString getArgumentUri(sal_uInt32 argument, bool * delimiter) {
> +OUString getArgumentUri(sal_uInt32 argument, bool * delimiter)
> +{
> OUString arg;
> rtl_getAppCommandArg(argument, &arg.pData);
> - if (arg == "--") {
> - if (delimiter == 0) {
> + if (arg == "--")
> + {
> + if (delimiter == 0)
> + {
> badUsage();
> }
> *delimiter = true;
> @@ -99,15 +111,18 @@ OUString getArgumentUri(sal_uInt32 argument, bool * delimiter) {
> }
> OUString url;
> osl::FileBase::RC e1 = osl::FileBase::getFileURLFromSystemPath(arg, url);
> - if (e1 != osl::FileBase::E_None) {
> + if (e1 != osl::FileBase::E_None)
> + {
> std::cerr
> << "Cannot convert \"" << arg << "\" to file URL, error code "
> - << +e1 << std::endl;
> + << +e1
> + << std::endl;
> std::exit(EXIT_FAILURE);
> }
> OUString cwd;
> oslProcessError e2 = osl_getProcessWorkingDir(&cwd.pData);
> - if (e2 != osl_Process_E_None) {
> + if (e2 != osl_Process_E_None)
> + {
> std::cerr
> << "Cannot obtain working directory, error code " << +e2
> << std::endl;
> @@ -115,19 +130,21 @@ OUString getArgumentUri(sal_uInt32 argument, bool * delimiter) {
> }
> OUString abs;
> e1 = osl::FileBase::getAbsoluteFileURL(cwd, url, abs);
> - if (e1 != osl::FileBase::E_None) {
> + if (e1 != osl::FileBase::E_None)
> + {
> std::cerr
> << "Cannot make \"" << url
> - << "\" into an absolute file URL, error code " << +e1 << std::endl;
> + << "\" into an absolute file URL, error code " << +e1
> + << std::endl;
> std::exit(EXIT_FAILURE);
> }
> return abs;
> }
>
> -OUString showDirection(
> - unoidl::InterfaceTypeEntity::Method::Parameter::Direction direction)
> +OUString showDirection( unoidl::InterfaceTypeEntity::Method::Parameter::Direction direction)
> {
> - switch (direction) {
> + switch (direction)
> + {
> case unoidl::InterfaceTypeEntity::Method::Parameter::DIRECTION_IN:
> return OUString("[in]");
> case unoidl::InterfaceTypeEntity::Method::Parameter::DIRECTION_OUT:
> @@ -139,824 +156,828 @@ OUString showDirection(
> }
> }
>
> -struct EqualsAnnotation {
> +struct EqualsAnnotation
> +{
> EqualsAnnotation(OUString const & name): name_(name) {}
>
> bool operator ()(unoidl::AnnotatedReference const & ref)
> - { return ref.name == name_; }
> + { return ref.name == name_; }
>
> private:
> OUString name_;
> };
>
> -void checkMap(
> - rtl::Reference<unoidl::Provider> const & providerB, OUString const & prefix,
> - rtl::Reference<unoidl::MapCursor> const & cursor)
> +void checkMap( rtl::Reference<unoidl::Provider> const & providerB, OUString const & prefix,
> + rtl::Reference<unoidl::MapCursor> const & cursor)
> {
> assert(providerB.is());
> assert(cursor.is());
> - for (;;) {
> + for (;;)
> + {
> OUString id;
> rtl::Reference<unoidl::Entity> entA(cursor->getNext(&id));
> - if (!entA.is()) {
> + if (!entA.is())
> + {
> break;
> }
> OUString name(prefix + id);
> - if (entA->getSort() == unoidl::Entity::SORT_MODULE) {
> - checkMap(
> - providerB, name + ".",
> - (static_cast<unoidl::ModuleEntity *>(entA.get())
> - ->createCursor()));
> - } else {
> + if (entA->getSort() == unoidl::Entity::SORT_MODULE)
> + {
> + checkMap( providerB, name + ".",
> + (static_cast<unoidl::ModuleEntity *>(entA.get())->createCursor()));
> + }
> + else
> + {
> rtl::Reference<unoidl::Entity> entB(providerB->findEntity(name));
> - if (!entB.is()) {
> + if (!entB.is())
> + {
> std::cerr
> << "A entity " << name << " is not present in B"
> << std::endl;
> std::exit(EXIT_FAILURE);
> }
> - if (entA->getSort() != entB->getSort()) {
> + if (entA->getSort() != entB->getSort())
> + {
> std::cerr
> << "A entity " << name << " is of different sort in B"
> << std::endl;
> std::exit(EXIT_FAILURE);
> }
> - if ((dynamic_cast<unoidl::PublishableEntity *>(entA.get())
> - ->isPublished())
> - && (!dynamic_cast<unoidl::PublishableEntity *>(entB.get())
> - ->isPublished()))
> + if ((dynamic_cast<unoidl::PublishableEntity *>(entA.get())->isPublished()) &&
> + (!dynamic_cast<unoidl::PublishableEntity *>(entB.get())->isPublished()))
> {
> std::cerr
> << "A published entity " << name << " is not published in B"
> << std::endl;
> std::exit(EXIT_FAILURE);
> }
> - switch (entA->getSort()) {
> + switch (entA->getSort())
> + {
> case unoidl::Entity::SORT_MODULE:
> assert(false && "this cannot happen");
> //deliberate fall-through anyway
> case unoidl::Entity::SORT_ENUM_TYPE:
> - {
> - rtl::Reference<unoidl::EnumTypeEntity> ent2A(
> + {
> + rtl::Reference<unoidl::EnumTypeEntity> ent2A(
> static_cast<unoidl::EnumTypeEntity *>(entA.get()));
> - rtl::Reference<unoidl::EnumTypeEntity> ent2B(
> + rtl::Reference<unoidl::EnumTypeEntity> ent2B(
> static_cast<unoidl::EnumTypeEntity *>(entB.get()));
> - if (ent2A->getMembers().size()
> - != ent2B->getMembers().size())
> +
> + if (ent2A->getMembers().size() != ent2B->getMembers().size())
> + {
> + std::cerr
> + << "enum type " << name
> + << " number of members changed from "
> + << ent2A->getMembers().size() << " to "
> + << ent2B->getMembers().size()
> + << std::endl;
> + std::exit(EXIT_FAILURE);
> + }
> + for (std::vector<unoidl::EnumTypeEntity::Member>::const_iterator
> + i(ent2A->getMembers().begin()),
> + j(ent2B->getMembers().begin());
> + i != ent2A->getMembers().end(); ++i, ++j)
> + {
> + if (i->name != j->name ||
> + i->value != j->value)
> {
> std::cerr
> - << "enum type " << name
> - << " number of members changed from "
> - << ent2A->getMembers().size() << " to "
> - << ent2B->getMembers().size() << std::endl;
> + << "enum type " << name << " member #"
> + << i - ent2A->getMembers().begin() + 1
> + << " changed from " << i->name << " = "
> + << i->value << " to " << j->name << " = "
> + << j->value
> + << std::endl;
> std::exit(EXIT_FAILURE);
> }
> - for (std::vector<unoidl::EnumTypeEntity::Member>::const_iterator
> - i(ent2A->getMembers().begin()),
> - j(ent2B->getMembers().begin());
> - i != ent2A->getMembers().end(); ++i, ++j)
> - {
> - if (i->name != j->name || i->value != j->value) {
> - std::cerr
> - << "enum type " << name << " member #"
> - << i - ent2A->getMembers().begin() + 1
> - << " changed from " << i->name << " = "
> - << i->value << " to " << j->name << " = "
> - << j->value << std::endl;
> - std::exit(EXIT_FAILURE);
> - }
> - }
> - break;
> }
> + break;
> + }
> case unoidl::Entity::SORT_PLAIN_STRUCT_TYPE:
> + {
> + rtl::Reference<unoidl::PlainStructTypeEntity> ent2A(
> + static_cast<unoidl::PlainStructTypeEntity *>(entA.get()));
> + rtl::Reference<unoidl::PlainStructTypeEntity> ent2B(
> + static_cast<unoidl::PlainStructTypeEntity *>(entB.get()));
> +
> + if (ent2A->getDirectBase() != ent2B->getDirectBase())
> {
> - rtl::Reference<unoidl::PlainStructTypeEntity> ent2A(
> - static_cast<unoidl::PlainStructTypeEntity *>(
> - entA.get()));
> - rtl::Reference<unoidl::PlainStructTypeEntity> ent2B(
> - static_cast<unoidl::PlainStructTypeEntity *>(
> - entB.get()));
> - if (ent2A->getDirectBase() != ent2B->getDirectBase()) {
> - std::cerr
> - << "plain struct type " << name
> - << " direct base changed from "
> - << (ent2A->getDirectBase().isEmpty()
> - ? OUString("none") : ent2A->getDirectBase())
> - << " to "
> - << (ent2B->getDirectBase().isEmpty()
> - ? OUString("none") : ent2B->getDirectBase())
> - << std::endl;
> - std::exit(EXIT_FAILURE);
> - }
> - if (ent2A->getDirectMembers().size()
> - != ent2B->getDirectMembers().size())
> + std::cerr
> + << "plain struct type " << name
> + << " direct base changed from "
> + << (ent2A->getDirectBase().isEmpty() ? OUString("none") : ent2A->getDirectBase())
> + << " to "
> + << (ent2B->getDirectBase().isEmpty() ? OUString("none") : ent2B->getDirectBase())
> + << std::endl;
> + std::exit(EXIT_FAILURE);
> + }
> + if (ent2A->getDirectMembers().size()
> + != ent2B->getDirectMembers().size())
> + {
> + std::cerr
> + << "plain struct type " << name
> + << " number of direct members changed from "
> + << ent2A->getDirectMembers().size() << " to "
> + << ent2B->getDirectMembers().size() << std::endl;
> + std::exit(EXIT_FAILURE);
> + }
> + for (std::vector<unoidl::PlainStructTypeEntity::Member>::const_iterator
> + i(ent2A->getDirectMembers().begin()),
> + j(ent2B->getDirectMembers().begin());
> + i != ent2A->getDirectMembers().end(); ++i, ++j)
> + {
> + if (i->name != j->name ||
> + i->type != j->type)
> {
> std::cerr
> << "plain struct type " << name
> - << " number of direct members changed from "
> - << ent2A->getDirectMembers().size() << " to "
> - << ent2B->getDirectMembers().size() << std::endl;
> + << " direct member #"
> + << i - ent2A->getDirectMembers().begin() + 1
> + << " changed from " << i->type << " " << i->name
> + << " to " << j->type << " " << j->name
> + << std::endl;
> std::exit(EXIT_FAILURE);
> }
> - for (std::vector<unoidl::PlainStructTypeEntity::Member>::const_iterator
> - i(ent2A->getDirectMembers().begin()),
> - j(ent2B->getDirectMembers().begin());
> - i != ent2A->getDirectMembers().end(); ++i, ++j)
> - {
> - if (i->name != j->name || i->type != j->type) {
> - std::cerr
> - << "plain struct type " << name
> - << " direct member #"
> - << i - ent2A->getDirectMembers().begin() + 1
> - << " changed from " << i->type << " " << i->name
> - << " to " << j->type << " " << j->name
> - << std::endl;
> - std::exit(EXIT_FAILURE);
> - }
> - }
> - break;
> }
> + break;
> + }
> case unoidl::Entity::SORT_POLYMORPHIC_STRUCT_TYPE_TEMPLATE:
> + {
> + rtl::Reference<unoidl::PolymorphicStructTypeTemplateEntity>
> + ent2A(static_cast<unoidl::PolymorphicStructTypeTemplateEntity *>(entA.get()));
> + rtl::Reference<unoidl::PolymorphicStructTypeTemplateEntity>
> + ent2B(static_cast<unoidl::PolymorphicStructTypeTemplateEntity *>(entB.get()));
> +
> + if (ent2A->getTypeParameters().size() != ent2B->getTypeParameters().size())
> + {
> + std::cerr
> + << "polymorphic struct type template " << name
> + << " number of type parameters changed from "
> + << ent2A->getTypeParameters().size() << " to "
> + << ent2B->getTypeParameters().size()
> + << std::endl;
> + std::exit(EXIT_FAILURE);
> + }
> + for (std::vector<OUString>::const_iterator
> + i(ent2A->getTypeParameters().begin()),
> + j(ent2B->getTypeParameters().begin());
> + i != ent2A->getTypeParameters().end(); ++i, ++j)
> {
> - rtl::Reference<unoidl::PolymorphicStructTypeTemplateEntity>
> - ent2A(
> - static_cast<unoidl::PolymorphicStructTypeTemplateEntity *>(
> - entA.get()));
> - rtl::Reference<unoidl::PolymorphicStructTypeTemplateEntity>
> - ent2B(
> - static_cast<unoidl::PolymorphicStructTypeTemplateEntity *>(
> - entB.get()));
> - if (ent2A->getTypeParameters().size()
> - != ent2B->getTypeParameters().size())
> + if (*i != *j)
> {
> std::cerr
> << "polymorphic struct type template " << name
> - << " number of type parameters changed from "
> - << ent2A->getTypeParameters().size() << " to "
> - << ent2B->getTypeParameters().size() << std::endl;
> + << " type parameter #"
> + << i - ent2A->getTypeParameters().begin() + 1
> + << " changed from " << *i << " to " << *j
> + << std::endl;
> std::exit(EXIT_FAILURE);
> }
> - for (std::vector<OUString>::const_iterator
> - i(ent2A->getTypeParameters().begin()),
> - j(ent2B->getTypeParameters().begin());
> - i != ent2A->getTypeParameters().end(); ++i, ++j)
> - {
> - if (*i != *j) {
> - std::cerr
> - << "polymorphic struct type template " << name
> - << " type parameter #"
> - << i - ent2A->getTypeParameters().begin() + 1
> - << " changed from " << *i << " to " << *j
> - << std::endl;
> - std::exit(EXIT_FAILURE);
> - }
> - }
> - if (ent2A->getMembers().size()
> - != ent2B->getMembers().size())
> + }
> + if (ent2A->getMembers().size() != ent2B->getMembers().size())
> + {
> + std::cerr
> + << "polymorphic struct type template " << name
> + << " number of members changed from "
> + << ent2A->getMembers().size() << " to "
> + << ent2B->getMembers().size() << std::endl;
> + std::exit(EXIT_FAILURE);
> + }
> + for (std::vector<unoidl::PolymorphicStructTypeTemplateEntity::Member>::const_iterator
> + i(ent2A->getMembers().begin()),
> + j(ent2B->getMembers().begin());
> + i != ent2A->getMembers().end(); ++i, ++j)
> + {
> + if (i->name != j->name ||
> + i->type != j->type ||
> + i->parameterized != j->parameterized)
> {
> std::cerr
> << "polymorphic struct type template " << name
> - << " number of members changed from "
> - << ent2A->getMembers().size() << " to "
> - << ent2B->getMembers().size() << std::endl;
> - std::exit(EXIT_FAILURE);
> - }
> - for (std::vector<unoidl::PolymorphicStructTypeTemplateEntity::Member>::const_iterator
> - i(ent2A->getMembers().begin()),
> - j(ent2B->getMembers().begin());
> - i != ent2A->getMembers().end(); ++i, ++j)
> - {
> - if (i->name != j->name || i->type != j->type
> - || i->parameterized != j->parameterized)
> - {
> - std::cerr
> - << "polymorphic struct type template " << name
> - << " member #"
> - << i - ent2A->getMembers().begin() + 1
> - << " changed from "
> - << (i->parameterized
> - ? OUString("parameterized ") : OUString())
> - << i->type << " " << i->name
> - << " to "
> - << (j->parameterized
> - ? OUString("parameterized ") : OUString())
> - << j->type << " " << j->name
> - << std::endl;
> + << " member #"
> + << i - ent2A->getMembers().begin() + 1
> + << " changed from "
> + << (i->parameterized ? OUString("parameterized ") : OUString())
> + << i->type << " " << i->name
> + << " to "
> + << (j->parameterized ? OUString("parameterized ") : OUString())
> + << j->type << " " << j->name
> + << std::endl;
> std::exit(EXIT_FAILURE);
> - }
> }
> - break;
> }
> + break;
> + }
> case unoidl::Entity::SORT_EXCEPTION_TYPE:
> - {
> - rtl::Reference<unoidl::ExceptionTypeEntity> ent2A(
> + {
> + rtl::Reference<unoidl::ExceptionTypeEntity> ent2A(
> static_cast<unoidl::ExceptionTypeEntity *>(entA.get()));
> - rtl::Reference<unoidl::ExceptionTypeEntity> ent2B(
> + rtl::Reference<unoidl::ExceptionTypeEntity> ent2B(
> static_cast<unoidl::ExceptionTypeEntity *>(entB.get()));
> - if (ent2A->getDirectBase() != ent2B->getDirectBase()) {
> - std::cerr
> - << "exception type " << name
> - << " direct base changed from "
> - << (ent2A->getDirectBase().isEmpty()
> - ? OUString("none") : ent2A->getDirectBase())
> - << " to "
> - << (ent2B->getDirectBase().isEmpty()
> - ? OUString("none") : ent2B->getDirectBase())
> - << std::endl;
> - std::exit(EXIT_FAILURE);
> - }
> - if (ent2A->getDirectMembers().size()
> - != ent2B->getDirectMembers().size())
> + if (ent2A->getDirectBase() != ent2B->getDirectBase())
> + {
> + std::cerr
> + << "exception type " << name
> + << " direct base changed from "
> + << (ent2A->getDirectBase().isEmpty() ? OUString("none") : ent2A->getDirectBase())
> + << " to "
> + << (ent2B->getDirectBase().isEmpty() ? OUString("none") : ent2B->getDirectBase())
> + << std::endl;
> + std::exit(EXIT_FAILURE);
> + }
> + if (ent2A->getDirectMembers().size() != ent2B->getDirectMembers().size())
> + {
> + std::cerr
> + << "exception type " << name
> + << " number of direct members changed from "
> + << ent2A->getDirectMembers().size() << " to "
> + << ent2B->getDirectMembers().size() << std::endl;
> + std::exit(EXIT_FAILURE);
> + }
> + for (std::vector<unoidl::ExceptionTypeEntity::Member>::const_iterator
> + i(ent2A->getDirectMembers().begin()),
> + j(ent2B->getDirectMembers().begin());
> + i != ent2A->getDirectMembers().end(); ++i, ++j)
> + {
> + if (i->name != j->name || i->type != j->type)
> {
> std::cerr
> << "exception type " << name
> - << " number of direct members changed from "
> - << ent2A->getDirectMembers().size() << " to "
> - << ent2B->getDirectMembers().size() << std::endl;
> + << " direct member #"
> + << i - ent2A->getDirectMembers().begin() + 1
> + << " changed from " << i->type << " " << i->name
> + << " to " << j->type << " " << j->name
> + << std::endl;
> std::exit(EXIT_FAILURE);
> }
> - for (std::vector<unoidl::ExceptionTypeEntity::Member>::const_iterator
> - i(ent2A->getDirectMembers().begin()),
> - j(ent2B->getDirectMembers().begin());
> - i != ent2A->getDirectMembers().end(); ++i, ++j)
> - {
> - if (i->name != j->name || i->type != j->type) {
> - std::cerr
> - << "exception type " << name
> - << " direct member #"
> - << i - ent2A->getDirectMembers().begin() + 1
> - << " changed from " << i->type << " " << i->name
> - << " to " << j->type << " " << j->name
> - << std::endl;
> - std::exit(EXIT_FAILURE);
> - }
> - }
> - break;
> }
> + break;
> + }
> case unoidl::Entity::SORT_INTERFACE_TYPE:
> - {
> - rtl::Reference<unoidl::InterfaceTypeEntity> ent2A(
> + {
> + rtl::Reference<unoidl::InterfaceTypeEntity> ent2A(
> static_cast<unoidl::InterfaceTypeEntity *>(entA.get()));
> - rtl::Reference<unoidl::InterfaceTypeEntity> ent2B(
> + rtl::Reference<unoidl::InterfaceTypeEntity> ent2B(
> static_cast<unoidl::InterfaceTypeEntity *>(entB.get()));
> - if (ent2A->getDirectMandatoryBases().size()
> - != ent2B->getDirectMandatoryBases().size())
> + if (ent2A->getDirectMandatoryBases().size() != ent2B->getDirectMandatoryBases().size())
> + {
> + std::cerr
> + << "interface type " << name
> + << " number of direct mandatory bases changed from "
> + << ent2A->getDirectMandatoryBases().size() << " to "
> + << ent2B->getDirectMandatoryBases().size()
> + << std::endl;
> + std::exit(EXIT_FAILURE);
> + }
> + for (std::vector<unoidl::AnnotatedReference>::const_iterator
> + i(ent2A->getDirectMandatoryBases().begin()),
> + j(ent2B->getDirectMandatoryBases().begin());
> + i != ent2A->getDirectMandatoryBases().end(); ++i, ++j)
> + {
> + if (i->name != j->name)
> {
> std::cerr
> << "interface type " << name
> - << " number of direct mandatory bases changed from "
> - << ent2A->getDirectMandatoryBases().size() << " to "
> - << ent2B->getDirectMandatoryBases().size()
> + << " direct mandatory base #"
> + << (i - ent2A->getDirectMandatoryBases().begin()
> + + 1)
> + << " changed from " << i->name << " to "
> + << j->name
> << std::endl;
> std::exit(EXIT_FAILURE);
> }
> - for (std::vector<unoidl::AnnotatedReference>::const_iterator
> - i(ent2A->getDirectMandatoryBases().begin()),
> - j(ent2B->getDirectMandatoryBases().begin());
> - i != ent2A->getDirectMandatoryBases().end(); ++i, ++j)
> - {
> - if (i->name != j->name) {
> - std::cerr
> - << "interface type " << name
> - << " direct mandatory base #"
> - << (i - ent2A->getDirectMandatoryBases().begin()
> - + 1)
> - << " changed from " << i->name << " to "
> - << j->name << std::endl;
> - std::exit(EXIT_FAILURE);
> - }
> - }
> - if (ent2A->getDirectOptionalBases().size()
> - != ent2B->getDirectOptionalBases().size())
> + }
> + if (ent2A->getDirectOptionalBases().size() != ent2B->getDirectOptionalBases().size())
> + {
> + std::cerr
> + << "interface type " << name
> + << " number of direct optional bases changed from "
> + << ent2A->getDirectOptionalBases().size() << " to "
> + << ent2B->getDirectOptionalBases().size()
> + << std::endl;
> + std::exit(EXIT_FAILURE);
> + }
> + for (std::vector<unoidl::AnnotatedReference>::const_iterator
> + i(ent2A->getDirectOptionalBases().begin()),
> + j(ent2B->getDirectOptionalBases().begin());
> + i != ent2A->getDirectOptionalBases().end(); ++i, ++j)
> + {
> + if (i->name != j->name)
> {
> std::cerr
> << "interface type " << name
> - << " number of direct optional bases changed from "
> - << ent2A->getDirectOptionalBases().size() << " to "
> - << ent2B->getDirectOptionalBases().size()
> + << " direct optional base #"
> + << (i - ent2A->getDirectOptionalBases().begin() + 1)
> + << " changed from " << i->name << " to "
> + << j->name
> << std::endl;
> std::exit(EXIT_FAILURE);
> }
> - for (std::vector<unoidl::AnnotatedReference>::const_iterator
> - i(ent2A->getDirectOptionalBases().begin()),
> - j(ent2B->getDirectOptionalBases().begin());
> - i != ent2A->getDirectOptionalBases().end(); ++i, ++j)
> - {
> - if (i->name != j->name) {
> - std::cerr
> - << "interface type " << name
> - << " direct optional base #"
> - << (i - ent2A->getDirectOptionalBases().begin()
> - + 1)
> - << " changed from " << i->name << " to "
> - << j->name << std::endl;
> - std::exit(EXIT_FAILURE);
> - }
> - }
> - if (ent2A->getDirectAttributes().size()
> - != ent2B->getDirectAttributes().size())
> + }
> + if (ent2A->getDirectAttributes().size()
> + != ent2B->getDirectAttributes().size())
> + {
> + std::cerr
> + << "interface type " << name
> + << " number of direct attributes changed from "
> + << ent2A->getDirectAttributes().size() << " to "
> + << ent2B->getDirectAttributes().size() << std::endl;
> + std::exit(EXIT_FAILURE);
> + }
> + for (std::vector<unoidl::InterfaceTypeEntity::Attribute>::const_iterator
> + i(ent2A->getDirectAttributes().begin()),
> + j(ent2B->getDirectAttributes().begin());
> + i != ent2A->getDirectAttributes().end(); ++i, ++j)
> + {
> + if (i->name != j->name ||
> + i->type != j->type ||
> + i->bound != j->bound ||
> + i->readOnly != j->readOnly ||
> + i->getExceptions != j->getExceptions ||
> + i->setExceptions != j->setExceptions)
> {
> std::cerr
> << "interface type " << name
> - << " number of direct attributes changed from "
> - << ent2A->getDirectAttributes().size() << " to "
> - << ent2B->getDirectAttributes().size() << std::endl;
> + << " direct attribute #"
> + << i - ent2A->getDirectAttributes().begin() + 1
> + << " changed from "
> + << (i->bound ? OUString("bound ") : OUString())
> + << (i->readOnly ? OUString("read-only ") : OUString())
> + << i->type << " " << i->name //TODO: exceptions
> + << " to "
> + << (j->bound ? OUString("bound ") : OUString())
> + << (j->readOnly ? OUString("read-only ") : OUString())
> + << j->type << " " << j->name //TODO: exceptions
> + << std::endl;
> std::exit(EXIT_FAILURE);
> }
> - for (std::vector<unoidl::InterfaceTypeEntity::Attribute>::const_iterator
> - i(ent2A->getDirectAttributes().begin()),
> - j(ent2B->getDirectAttributes().begin());
> - i != ent2A->getDirectAttributes().end(); ++i, ++j)
> + }
> + if (ent2A->getDirectMethods().size()
> + != ent2B->getDirectMethods().size())
> + {
> + std::cerr
> + << "interface type " << name
> + << " number of direct methods changed from "
> + << ent2A->getDirectMethods().size() << " to "
> + << ent2B->getDirectMethods().size() << std::endl;
> + std::exit(EXIT_FAILURE);
> + }
> + for (std::vector<unoidl::InterfaceTypeEntity::Method>::const_iterator
> + i(ent2A->getDirectMethods().begin()),
> + j(ent2B->getDirectMethods().begin());
> + i != ent2A->getDirectMethods().end(); ++i, ++j)
> + {
> + if (i->name != j->name ||
> + i->returnType != j->returnType ||
> + i->exceptions != j->exceptions)
> {
> - if (i->name != j->name || i->type != j->type
> - || i->bound != j->bound
> - || i->readOnly != j->readOnly
> - || i->getExceptions != j->getExceptions
> - || i->setExceptions != j->setExceptions)
> - {
> - std::cerr
> - << "interface type " << name
> - << " direct attribute #"
> - << i - ent2A->getDirectAttributes().begin() + 1
> - << " changed from "
> - << (i->bound ? OUString("bound ") : OUString())
> - << (i->readOnly
> - ? OUString("read-only ") : OUString())
> - << i->type << " " << i->name //TODO: exceptions
> - << " to "
> - << (j->bound ? OUString("bound ") : OUString())
> - << (j->readOnly
> - ? OUString("read-only ") : OUString())
> - << j->type << " " << j->name //TODO: exceptions
> - << std::endl;
> - std::exit(EXIT_FAILURE);
> - }
> + std::cerr
> + << "interface type " << name
> + << " direct method #"
> + << i - ent2A->getDirectMethods().begin() + 1
> + << " changed from "
> + << i->returnType << " " << i->name //TODO: exceptions
> + << " to " << j->returnType << " " << j->name //TODO: exceptions
> + << std::endl;
> + std::exit(EXIT_FAILURE);
> }
> - if (ent2A->getDirectMethods().size()
> - != ent2B->getDirectMethods().size())
> + if (i->parameters.size() != j->parameters.size())
> {
> std::cerr
> << "interface type " << name
> - << " number of direct methods changed from "
> - << ent2A->getDirectMethods().size() << " to "
> - << ent2B->getDirectMethods().size() << std::endl;
> + << " direct method " << i->name
> + << " number of parameters changed from "
> + << i->parameters.size() << " to "
> + << j->parameters.size()
> + << std::endl;
> std::exit(EXIT_FAILURE);
> }
> - for (std::vector<unoidl::InterfaceTypeEntity::Method>::const_iterator
> - i(ent2A->getDirectMethods().begin()),
> - j(ent2B->getDirectMethods().begin());
> - i != ent2A->getDirectMethods().end(); ++i, ++j)
> + for (std::vector<unoidl::InterfaceTypeEntity::Method::Parameter>::const_iterator
> + k(i->parameters.begin()),
> + l(j->parameters.begin());
> + k != i->parameters.end(); ++k, ++l)
> {
> - if (i->name != j->name || i->returnType != j->returnType
> - || i->exceptions != j->exceptions)
> + if (k->type != l->type || k->direction != l->direction)
> {
> std::cerr
> << "interface type " << name
> - << " direct method #"
> - << i - ent2A->getDirectMethods().begin() + 1
> + << " direct method " << i->name
> + << " parameter #"
> + << k - i->parameters.begin() + 1
> << " changed from "
> - << i->returnType << " " << i->name //TODO: exceptions
> - << " to " << j->returnType << " " << j->name //TODO: exceptions
> + << showDirection(k->direction) << " "
> + << k->type << " to "
> + << showDirection(l->direction) << " "
> + << l->type
> << std::endl;
> std::exit(EXIT_FAILURE);
> }
> - if (i->parameters.size() != j->parameters.size()) {
> + if (k->name != l->name)
> + {
> std::cerr
> << "interface type " << name
> << " direct method " << i->name
> - << " number of parameters changed from "
> - << i->parameters.size() << " to "
> - << j->parameters.size() << std::endl;
> + << " parameter #"
> + << k - i->parameters.begin() + 1
> + << " changed name from " << k->name
> + << " to " << l->name
> + << std::endl;
> std::exit(EXIT_FAILURE);
> }
> - for (std::vector<unoidl::InterfaceTypeEntity::Method::Parameter>::const_iterator
> - k(i->parameters.begin()),
> - l(j->parameters.begin());
> - k != i->parameters.end(); ++k, ++l)
> - {
> - if (k->type != l->type || k->direction != l->direction)
> - {
> - std::cerr
> - << "interface type " << name
> - << " direct method " << i->name
> - << " parameter #"
> - << k - i->parameters.begin() + 1
> - << " changed from "
> - << showDirection(k->direction) << " "
> - << k->type << " to "
> - << showDirection(l->direction) << " "
> - << l->type << std::endl;
> - std::exit(EXIT_FAILURE);
> - }
> - if (k->name != l->name) {
> - std::cerr
> - << "interface type " << name
> - << " direct method " << i->name
> - << " parameter #"
> - << k - i->parameters.begin() + 1
> - << " changed name from " << k->name
> - << " to " << l->name << std::endl;
> - std::exit(EXIT_FAILURE);
> - }
> - }
> }
> - break;
> }
> + break;
> + }
> case unoidl::Entity::SORT_TYPEDEF:
> - {
> - rtl::Reference<unoidl::TypedefEntity> ent2A(
> + {
> + rtl::Reference<unoidl::TypedefEntity> ent2A(
> static_cast<unoidl::TypedefEntity *>(entA.get()));
> - rtl::Reference<unoidl::TypedefEntity> ent2B(
> + rtl::Reference<unoidl::TypedefEntity> ent2B(
> static_cast<unoidl::TypedefEntity *>(entB.get()));
> - if (ent2A->getType() != ent2B->getType()) {
> - std::cerr
> - << "typedef " << name << " type changed from "
> - << ent2A->getType() << " to " << ent2B->getType()
> - << std::endl;
> - std::exit(EXIT_FAILURE);
> - }
> - break;
> + if (ent2A->getType() != ent2B->getType())
> + {
> + std::cerr
> + << "typedef " << name << " type changed from "
> + << ent2A->getType() << " to " << ent2B->getType()
> + << std::endl;
> + std::exit(EXIT_FAILURE);
> }
> + break;
> + }
> case unoidl::Entity::SORT_CONSTANT_GROUP:
> - {
> - rtl::Reference<unoidl::ConstantGroupEntity> ent2A(
> + {
> + rtl::Reference<unoidl::ConstantGroupEntity> ent2A(
> static_cast<unoidl::ConstantGroupEntity *>(entA.get()));
> - rtl::Reference<unoidl::ConstantGroupEntity> ent2B(
> + rtl::Reference<unoidl::ConstantGroupEntity> ent2B(
> static_cast<unoidl::ConstantGroupEntity *>(entB.get()));
> + for (std::vector<unoidl::ConstantGroupEntity::Member>::const_iterator
> + i(ent2A->getMembers().begin());
> + i != ent2A->getMembers().end(); ++i)
> + {
> + bool found = false;
> for (std::vector<unoidl::ConstantGroupEntity::Member>::const_iterator
> - i(ent2A->getMembers().begin());
> - i != ent2A->getMembers().end(); ++i)
> + j(ent2B->getMembers().begin());
> + j != ent2B->getMembers().end(); ++j)
> {
> - bool found = false;
> - for (std::vector<unoidl::ConstantGroupEntity::Member>::const_iterator
> - j(ent2B->getMembers().begin());
> - j != ent2B->getMembers().end(); ++j)
> + if (i->name == j->name)
> {
> - if (i->name == j->name) {
> - if (i->value != j->value) {
> - std::cerr
> - << "constant group " << name
> - << " member " << i->name
> - << " changed value" << std::endl;
> - std::exit(EXIT_FAILURE);
> - }
> - found = true;
> - break;
> + if (i->value != j->value)
> + {
> + std::cerr
> + << "constant group " << name
> + << " member " << i->name
> + << " changed value"
> + << std::endl;
> + std::exit(EXIT_FAILURE);
> }
> - }
> - if (!found) {
> - std::cerr
> - << "A constant group " << name << " member "
> - << i->name << " is not present in B"
> - << std::endl;
> - std::exit(EXIT_FAILURE);
> + found = true;
> + break;
> }
> }
> - break;
> - }
> - case unoidl::Entity::SORT_SINGLE_INTERFACE_BASED_SERVICE:
> - {
> - rtl::Reference<unoidl::SingleInterfaceBasedServiceEntity>
> - ent2A(
> - static_cast<unoidl::SingleInterfaceBasedServiceEntity *>(
> - entA.get()));
> - rtl::Reference<unoidl::SingleInterfaceBasedServiceEntity>
> - ent2B(
> - static_cast<unoidl::SingleInterfaceBasedServiceEntity *>(
> - entB.get()));
> - if (ent2A->getBase() != ent2B->getBase()) {
> - std::cerr
> - << "single-interface--based servcie " << name
> - << " base changed from " << ent2A->getBase()
> - << " to " << ent2B->getBase()
> - << std::endl;
> - std::exit(EXIT_FAILURE);
> - }
> - if (ent2A->getConstructors().size()
> - != ent2B->getConstructors().size())
> + if (!found)
> {
> std::cerr
> - << "single-interface--based service " << name
> - << " number of constructors changed from "
> - << ent2A->getConstructors().size() << " to "
> - << ent2B->getConstructors().size() << std::endl;
> + << "A constant group " << name << " member "
> + << i->name << " is not present in B"
> + << std::endl;
> std::exit(EXIT_FAILURE);
> }
> - for (std::vector<unoidl::SingleInterfaceBasedServiceEntity::Constructor>::const_iterator
> - i(ent2A->getConstructors().begin()),
> - j(ent2B->getConstructors().begin());
> - i != ent2A->getConstructors().end(); ++i, ++j)
> - {
> - if (i->name != j->name || i->parameters != j->parameters
> - || i->exceptions != j->exceptions
> - || i->defaultConstructor != j->defaultConstructor)
> - {
> - std::cerr
> - << "single-interface--based service " << name
> - << " constructor #"
> - << i - ent2A->getConstructors().begin() + 1
> - << " changed from "
> - << (i->defaultConstructor
> - ? OUString("default ") : i->name) //TODO: parameters, exceptions
> - << " to "
> - << (j->defaultConstructor
> - ? OUString("default ") : j->name) //TODO: parameters, exceptions
> - << std::endl;
> - std::exit(EXIT_FAILURE);
> - }
> - }
> - break;
> }
> - case unoidl::Entity::SORT_ACCUMULATION_BASED_SERVICE:
> + break;
> + }
> + case unoidl::Entity::SORT_SINGLE_INTERFACE_BASED_SERVICE:
> + {
> + rtl::Reference<unoidl::SingleInterfaceBasedServiceEntity>
> + ent2A( static_cast<unoidl::SingleInterfaceBasedServiceEntity *>( entA.get()));
> + rtl::Reference<unoidl::SingleInterfaceBasedServiceEntity>
> + ent2B( static_cast<unoidl::SingleInterfaceBasedServiceEntity *>( entB.get()));
> + if (ent2A->getBase() != ent2B->getBase())
> + {
> + std::cerr
> + << "single-interface--based servcie " << name
> + << " base changed from " << ent2A->getBase()
> + << " to " << ent2B->getBase()
> + << std::endl;
> + std::exit(EXIT_FAILURE);
> + }
> + if (ent2A->getConstructors().size() != ent2B->getConstructors().size())
> {
> - rtl::Reference<unoidl::AccumulationBasedServiceEntity>
> - ent2A(
> - static_cast<unoidl::AccumulationBasedServiceEntity *>(
> - entA.get()));
> - rtl::Reference<unoidl::AccumulationBasedServiceEntity>
> - ent2B(
> - static_cast<unoidl::AccumulationBasedServiceEntity *>(
> - entB.get()));
> - if (ent2A->getDirectMandatoryBaseServices().size()
> - != ent2B->getDirectMandatoryBaseServices().size())
> + std::cerr
> + << "single-interface--based service " << name
> + << " number of constructors changed from "
> + << ent2A->getConstructors().size() << " to "
> + << ent2B->getConstructors().size() << std::endl;
> + std::exit(EXIT_FAILURE);
> + }
> + for (std::vector<unoidl::SingleInterfaceBasedServiceEntity::Constructor>::const_iterator
> + i(ent2A->getConstructors().begin()),
> + j(ent2B->getConstructors().begin());
> + i != ent2A->getConstructors().end(); ++i, ++j)
> + {
> + if (i->name != j->name ||
> + i->parameters != j->parameters ||
> + i->exceptions != j->exceptions ||
> + i->defaultConstructor != j->defaultConstructor)
> {
> std::cerr
> - << "accumulation-based service " << name
> - << (" number of direct mandatory base services"
> - " changed from ")
> - << ent2A->getDirectMandatoryBaseServices().size()
> + << "single-interface--based service " << name
> + << " constructor #"
> + << i - ent2A->getConstructors().begin() + 1
> + << " changed from "
> + << (i->defaultConstructor ? OUString("default ") : i->name) //TODO: parameters, exceptions
> << " to "
> - << ent2B->getDirectMandatoryBaseServices().size()
> + << (j->defaultConstructor ? OUString("default ") : j->name) //TODO: parameters, exceptions
> << std::endl;
> std::exit(EXIT_FAILURE);
> }
> - for (std::vector<unoidl::AnnotatedReference>::const_iterator
> - i(ent2A->getDirectMandatoryBaseServices().begin()),
> - j(ent2B->getDirectMandatoryBaseServices().begin());
> - i != ent2A->getDirectMandatoryBaseServices().end();
> - ++i, ++j)
> - {
> - if (i->name != j->name) {
> - std::cerr
> - << "accumulation-based service " << name
> - << " direct mandatory base service #"
> - << (i
> - - (ent2A->getDirectMandatoryBaseServices()
> - .begin())
> - + 1)
> - << " changed from " << i->name << " to "
> - << j->name << std::endl;
> - std::exit(EXIT_FAILURE);
> - }
> - }
> - if (ent2A->getDirectOptionalBaseServices().size()
> - > ent2B->getDirectOptionalBaseServices().size())
> + }
> + break;
> + }
> + case unoidl::Entity::SORT_ACCUMULATION_BASED_SERVICE:
> + {
> + rtl::Reference<unoidl::AccumulationBasedServiceEntity>
> + ent2A( static_cast<unoidl::AccumulationBasedServiceEntity *>( entA.get()));
> + rtl::Reference<unoidl::AccumulationBasedServiceEntity>
> + ent2B( static_cast<unoidl::AccumulationBasedServiceEntity *>( entB.get()));
> +
> + if (ent2A->getDirectMandatoryBaseServices().size() != ent2B->getDirectMandatoryBaseServices().size())
> + {
> + std::cerr
> + << "accumulation-based service " << name
> + << " number of direct mandatory base services changed from "
> + << ent2A->getDirectMandatoryBaseServices().size()
> + << " to "
> + << ent2B->getDirectMandatoryBaseServices().size()
> + << std::endl;
> + std::exit(EXIT_FAILURE);
> + }
> + for (std::vector<unoidl::AnnotatedReference>::const_iterator
> + i(ent2A->getDirectMandatoryBaseServices().begin()),
> + j(ent2B->getDirectMandatoryBaseServices().begin());
> + i != ent2A->getDirectMandatoryBaseServices().end();
> + ++i, ++j)
> + {
> + if (i->name != j->name)
> {
> std::cerr
> << "accumulation-based service " << name
> - << (" number of direct optional base services"
> - " shrank from ")
> - << ent2A->getDirectOptionalBaseServices().size()
> - << " to "
> - << ent2B->getDirectOptionalBaseServices().size()
> - << std::endl;
> + << " direct mandatory base service #"
> + << (i - (ent2A->getDirectMandatoryBaseServices().begin()) + 1)
> + << " changed from " << i->name << " to "
> + << j->name << std::endl;
> std::exit(EXIT_FAILURE);
> }
> - for (std::vector<unoidl::AnnotatedReference>::const_iterator
> - i(ent2A->getDirectOptionalBaseServices().begin());
> - i != ent2A->getDirectOptionalBaseServices().end();
> - ++i)
> - {
> - if (std::find_if(
> + }
> + if (ent2A->getDirectOptionalBaseServices().size() > ent2B->getDirectOptionalBaseServices().size())
> + {
> + std::cerr
> + << "accumulation-based service " << name
> + << " number of direct optional base services shrank from "
> + << ent2A->getDirectOptionalBaseServices().size()
> + << " to "
> + << ent2B->getDirectOptionalBaseServices().size()
> + << std::endl;
> + std::exit(EXIT_FAILURE);
> + }
> + for (std::vector<unoidl::AnnotatedReference>::const_iterator
> + i(ent2A->getDirectOptionalBaseServices().begin());
> + i != ent2A->getDirectOptionalBaseServices().end();
> + ++i)
> + {
> + if (std::find_if(
> ent2B->getDirectOptionalBaseServices().begin(),
> ent2B->getDirectOptionalBaseServices().end(),
> EqualsAnnotation(i->name))
> - == ent2B->getDirectOptionalBaseServices().end())
> - {
> - std::cerr
> - << "accumulation-based service " << name
> - << " direct optional base service " << i->name
> - << " was removed" << std::endl;
> - std::exit(EXIT_FAILURE);
> - }
> - }
> - if (ent2A->getDirectMandatoryBaseInterfaces().size()
> - != ent2B->getDirectMandatoryBaseInterfaces().size())
> + == ent2B->getDirectOptionalBaseServices().end())
> {
> std::cerr
> << "accumulation-based service " << name
> - << (" number of direct mandatory base interfaces"
> - " changed from ")
> - << ent2A->getDirectMandatoryBaseInterfaces().size()
> - << " to "
> - << ent2B->getDirectMandatoryBaseInterfaces().size()
> - << std::endl;
> + << " direct optional base service " << i->name
> + << " was removed" << std::endl;
> std::exit(EXIT_FAILURE);
> }
> - for (std::vector<unoidl::AnnotatedReference>::const_iterator
> - i(ent2A->getDirectMandatoryBaseInterfaces()
> - .begin()),
> - j(ent2B->getDirectMandatoryBaseInterfaces()
> - .begin());
> - i != ent2A->getDirectMandatoryBaseInterfaces().end();
> - ++i, ++j)
> - {
> - if (i->name != j->name) {
> - std::cerr
> - << "accumulation-based service " << name
> - << " direct mandatory base interface #"
> - << (i
> - - (ent2A->getDirectMandatoryBaseInterfaces()
> - .begin())
> - + 1)
> - << " changed from " << i->name << " to "
> - << j->name << std::endl;
> - std::exit(EXIT_FAILURE);
> - }
> - }
> - if (ent2A->getDirectOptionalBaseInterfaces().size()
> - > ent2B->getDirectOptionalBaseInterfaces().size())
> + }
> + if (ent2A->getDirectMandatoryBaseInterfaces().size()
> + != ent2B->getDirectMandatoryBaseInterfaces().size())
> + {
> + std::cerr
> + << "accumulation-based service " << name
> + << (" number of direct mandatory base interfaces"
> + " changed from ")
> + << ent2A->getDirectMandatoryBaseInterfaces().size()
> + << " to "
> + << ent2B->getDirectMandatoryBaseInterfaces().size()
> + << std::endl;
> + std::exit(EXIT_FAILURE);
> + }
> + for (std::vector<unoidl::AnnotatedReference>::const_iterator
> + i(ent2A->getDirectMandatoryBaseInterfaces().begin()),
> + j(ent2B->getDirectMandatoryBaseInterfaces().begin());
> + i != ent2A->getDirectMandatoryBaseInterfaces().end();
> + ++i, ++j)
> + {
> + if (i->name != j->name)
> {
> std::cerr
> << "accumulation-based service " << name
> - << (" number of direct optional base interfaces"
> - " shrank from ")
> - << ent2A->getDirectOptionalBaseInterfaces().size()
> - << " to "
> - << ent2B->getDirectOptionalBaseInterfaces().size()
> - << std::endl;
> + << " direct mandatory base interface #"
> + << (i - (ent2A->getDirectMandatoryBaseInterfaces().begin()) + 1)
> + << " changed from " << i->name << " to "
> + << j->name << std::endl;
> std::exit(EXIT_FAILURE);
> }
> - for (std::vector<unoidl::AnnotatedReference>::const_iterator
> - i(ent2A->getDirectOptionalBaseInterfaces()
> - .begin());
> - i != ent2A->getDirectOptionalBaseInterfaces().end();
> - ++i)
> - {
> - if (std::find_if(
> - (ent2B->getDirectOptionalBaseInterfaces()
> - .begin()),
> + }
> + if (ent2A->getDirectOptionalBaseInterfaces().size() > ent2B->getDirectOptionalBaseInterfaces().size())
> + {
> + std::cerr
> + << "accumulation-based service " << name
> + << (" number of direct optional base interfaces"
> + " shrank from ")
> + << ent2A->getDirectOptionalBaseInterfaces().size()
> + << " to "
> + << ent2B->getDirectOptionalBaseInterfaces().size()
> + << std::endl;
> + std::exit(EXIT_FAILURE);
> + }
> + for (std::vector<unoidl::AnnotatedReference>::const_iterator
> + i(ent2A->getDirectOptionalBaseInterfaces().begin());
> + i != ent2A->getDirectOptionalBaseInterfaces().end();
> + ++i)
> + {
> + if (std::find_if(
> + (ent2B->getDirectOptionalBaseInterfaces().begin()),
> ent2B->getDirectOptionalBaseInterfaces().end(),
> EqualsAnnotation(i->name))
> - == ent2B->getDirectOptionalBaseInterfaces().end())
> - {
> - std::cerr
> - << "accumulation-based service " << name
> - << " direct optional base interface " << i->name
> - << " was removed" << std::endl;
> - std::exit(EXIT_FAILURE);
> - }
> - }
> - if (ent2A->getDirectProperties().size()
> - > ent2B->getDirectProperties().size())
> + == ent2B->getDirectOptionalBaseInterfaces().end())
> {
> std::cerr
> << "accumulation-based service " << name
> - << " number of direct properties changed from "
> - << ent2A->getDirectProperties().size() << " to "
> - << ent2B->getDirectProperties().size() << std::endl;
> + << " direct optional base interface " << i->name
> + << " was removed" << std::endl;
> std::exit(EXIT_FAILURE);
> }
> - for (std::vector<unoidl::AccumulationBasedServiceEntity::Property>::const_iterator
> - i(ent2A->getDirectProperties().begin()),
> - j(ent2B->getDirectProperties().begin());
> - i != ent2A->getDirectProperties().end(); ++i, ++j)
> - {
> - if (i->name != j->name || i->type != j->type
> - || i->attributes != j->attributes)
> - {
> - std::cerr
> - << "accumulation-based service " << name
> - << " direct property #"
> - << i - ent2A->getDirectProperties().begin() + 1
> - << " changed from "
> - << i->type << " " << i->name //TODO: attributes
> - << " to "
> - << j->type << " " << j->name //TODO: attributes
> - << std::endl;
> - std::exit(EXIT_FAILURE);
> - }
> - }
> - for (std::vector<unoidl::AccumulationBasedServiceEntity::Property>::const_iterator
> - i(ent2B->getDirectProperties().begin()
> - + ent2A->getDirectProperties().size());
> - i != ent2B->getDirectProperties().end(); ++i)
> - {
> - if ((i->attributes & unoidl::AccumulationBasedServiceEntity::Property::ATTRIBUTE_OPTIONAL) == 0)
> - {
> - std::cerr
> - << "B accumulation-based service " << name
> - << " additional direct property " << i->name
> - << " is not optional" << std::endl;
> - std::exit(EXIT_FAILURE);
> - }
> - }
> - break;
> }
> - case unoidl::Entity::SORT_INTERFACE_BASED_SINGLETON:
> + if (ent2A->getDirectProperties().size() > ent2B->getDirectProperties().size())
> {
> - rtl::Reference<unoidl::InterfaceBasedSingletonEntity> ent2A(
> - static_cast<unoidl::InterfaceBasedSingletonEntity *>(
> - entA.get()));
> - rtl::Reference<unoidl::InterfaceBasedSingletonEntity> ent2B(
> - static_cast<unoidl::InterfaceBasedSingletonEntity *>(
> - entB.get()));
> - if (ent2A->getBase() != ent2B->getBase()) {
> + std::cerr
> + << "accumulation-based service " << name
> + << " number of direct properties changed from "
> + << ent2A->getDirectProperties().size() << " to "
> + << ent2B->getDirectProperties().size() << std::endl;
> + std::exit(EXIT_FAILURE);
> + }
> + for (std::vector<unoidl::AccumulationBasedServiceEntity::Property>::const_iterator
> + i(ent2A->getDirectProperties().begin()),
> + j(ent2B->getDirectProperties().begin());
> + i != ent2A->getDirectProperties().end(); ++i, ++j)
> + {
> + if (i->name != j->name ||
> + i->type != j->type ||
> + i->attributes != j->attributes)
> + {
> std::cerr
> - << "interface-based singleton " << name
> - << " base changed from " << ent2A->getBase()
> - << " to " << ent2B->getBase() << std::endl;
> + << "accumulation-based service " << name
> + << " direct property #"
> + << i - ent2A->getDirectProperties().begin() + 1
> + << " changed from "
> + << i->type << " " << i->name //TODO: attributes
> + << " to "
> + << j->type << " " << j->name //TODO: attributes
> + << std::endl;
> std::exit(EXIT_FAILURE);
> }
> - break;
> }
> - case unoidl::Entity::SORT_SERVICE_BASED_SINGLETON:
> + for (std::vector<unoidl::AccumulationBasedServiceEntity::Property>::const_iterator
> + i(ent2B->getDirectProperties().begin()
> + + ent2A->getDirectProperties().size());
> + i != ent2B->getDirectProperties().end(); ++i)
> {
> - rtl::Reference<unoidl::ServiceBasedSingletonEntity> ent2A(
> - static_cast<unoidl::ServiceBasedSingletonEntity *>(
> - entA.get()));
> - rtl::Reference<unoidl::ServiceBasedSingletonEntity> ent2B(
> - static_cast<unoidl::ServiceBasedSingletonEntity *>(
> - entB.get()));
> - if (ent2A->getBase() != ent2B->getBase()) {
> + if ((i->attributes & unoidl::AccumulationBasedServiceEntity::Property::ATTRIBUTE_OPTIONAL) == 0)
> + {
> std::cerr
> - << "service-based singleton " << name
> - << " base changed from " << ent2A->getBase()
> - << " to " << ent2B->getBase() << std::endl;
> + << "B accumulation-based service " << name
> + << " additional direct property " << i->name
> + << " is not optional" << std::endl;
> std::exit(EXIT_FAILURE);
> }
> - break;
> }
> + break;
> + }
> + case unoidl::Entity::SORT_INTERFACE_BASED_SINGLETON:
> + {
> + rtl::Reference<unoidl::InterfaceBasedSingletonEntity> ent2A(
> + static_cast<unoidl::InterfaceBasedSingletonEntity *>(entA.get()));
> + rtl::Reference<unoidl::InterfaceBasedSingletonEntity> ent2B(
> + static_cast<unoidl::InterfaceBasedSingletonEntity *>(entB.get()));
> +
> + if (ent2A->getBase() != ent2B->getBase())
> + {
> + std::cerr
> + << "interface-based singleton " << name
> + << " base changed from " << ent2A->getBase()
> + << " to " << ent2B->getBase() << std::endl;
> + std::exit(EXIT_FAILURE);
> + }
> + break;
> + }
> + case unoidl::Entity::SORT_SERVICE_BASED_SINGLETON:
> + {
> + rtl::Reference<unoidl::ServiceBasedSingletonEntity> ent2A(
> + static_cast<unoidl::ServiceBasedSingletonEntity *>(entA.get()));
> + rtl::Reference<unoidl::ServiceBasedSingletonEntity> ent2B(
> + static_cast<unoidl::ServiceBasedSingletonEntity *>(entB.get()));
> +
> + if (ent2A->getBase() != ent2B->getBase())
> + {
> + std::cerr
> + << "service-based singleton " << name
> + << " base changed from " << ent2A->getBase()
> + << " to " << ent2B->getBase()
> + << std::endl;
> + std::exit(EXIT_FAILURE);
> + }
> + break;
> + }
> }
> }
> }
> }
>
> -bool valid(OUString const & identifier) {
> - for (sal_Int32 i = 0;; ++i) {
> +bool valid(OUString const & identifier)
> +{
> + for (sal_Int32 i = 0;; ++i)
> + {
> i = identifier.indexOf('_', i);
> - if (i == -1) {
> + if (i == -1)
> + {
> return true;
> }
> - if (!rtl::isAsciiUpperCase(identifier[0]) || identifier[i - 1] == '_') {
> + if (!rtl::isAsciiUpperCase(identifier[0]) || identifier[i - 1] == '_')
> + {
> return false;
> }
> }
> }
>
> -void checkIds(
> - rtl::Reference<unoidl::Provider> const & providerA, OUString const & prefix,
> - rtl::Reference<unoidl::MapCursor> const & cursor)
> +void checkIds( rtl::Reference<unoidl::Provider> const & providerA, OUString const & prefix,
> + rtl::Reference<unoidl::MapCursor> const & cursor)
> {
> assert(cursor.is());
> - for (;;) {
> + for (;;)
> + {
> OUString id;
> rtl::Reference<unoidl::Entity> entB(cursor->getNext(&id));
> - if (!entB.is()) {
> + if (!entB.is())
> + {
> break;
> }
> OUString name(prefix + id);
> rtl::Reference<unoidl::Entity> entA(providerA->findEntity(name));
> - if (!(entA.is() || valid(id))) {
> + if (!(entA.is() || valid(id)))
> + {
> std::cerr
> << "entity name " << name << " uses an invalid identifier"
> << std::endl;
> std::exit(EXIT_FAILURE);
> }
> - switch (entB->getSort()) {
> + switch (entB->getSort())
> + {
> case unoidl::Entity::SORT_MODULE:
> - checkIds(
> - providerA, name + ".",
> - (static_cast<unoidl::ModuleEntity *>(entB.get())
> - ->createCursor()));
> + checkIds( providerA, name + ".",
> + (static_cast<unoidl::ModuleEntity *>(entB.get())->createCursor()));
> break;
> case unoidl::Entity::SORT_ENUM_TYPE:
> - if (!entA.is()) {
> - rtl::Reference<unoidl::EnumTypeEntity> ent2B(
> - static_cast<unoidl::EnumTypeEntity *>(entB.get()));
> + if (!entA.is())
> + {
> + rtl::Reference<unoidl::EnumTypeEntity> ent2B(static_cast<unoidl::EnumTypeEntity *>(entB.get()));
> +
> for (std::vector<unoidl::EnumTypeEntity::Member>::const_iterator
> i(ent2B->getMembers().begin());
> i != ent2B->getMembers().end(); ++i)
> {
> - if (!valid(i->name)) {
> + if (!valid(i->name))
> + {
> std::cerr
> << "enum type " << name << " member " << i->name
> - << " uses an invalid identifier" << std::endl;
> + << " uses an invalid identifier"
> + << std::endl;
> std::exit(EXIT_FAILURE);
> }
> }
> }
> break;
> case unoidl::Entity::SORT_PLAIN_STRUCT_TYPE:
> - if (!entA.is()) {
> + if (!entA.is())
> + {
> rtl::Reference<unoidl::PlainStructTypeEntity> ent2B(
> - static_cast<unoidl::PlainStructTypeEntity *>(
> - entB.get()));
> + static_cast<unoidl::PlainStructTypeEntity *>(entB.get()));
> +
> for (std::vector<unoidl::PlainStructTypeEntity::Member>::const_iterator
> i(ent2B->getDirectMembers().begin());
> i != ent2B->getDirectMembers().end(); ++i)
> {
> - if (!valid(i->name)) {
> + if (!valid(i->name))
> + {
> std::cerr
> << "plain struct type " << name << " direct member "
> << i->name << " uses an invalid identifier"
> @@ -967,21 +988,21 @@ void checkIds(
> }
> break;
> case unoidl::Entity::SORT_POLYMORPHIC_STRUCT_TYPE_TEMPLATE:
> - if (!entA.is()) {
> + if (!entA.is())
> + {
> rtl::Reference<unoidl::PolymorphicStructTypeTemplateEntity>
> - ent2B(
> - static_cast<
> - unoidl::PolymorphicStructTypeTemplateEntity *>(
> - entB.get()));
> - for (std::vector<OUString>::const_iterator i(
> - ent2B->getTypeParameters().begin());
> + ent2B( static_cast< unoidl::PolymorphicStructTypeTemplateEntity *>(entB.get()));
> +
> + for (std::vector<OUString>::const_iterator i(ent2B->getTypeParameters().begin());
> i != ent2B->getTypeParameters().end(); ++i)
> {
> - if (!valid(*i)) {
> + if (!valid(*i))
> + {
> std::cerr
> << "polymorphic struct type template " << name
> << " type parameter " << *i
> - << " uses an invalid identifier" << std::endl;
> + << " uses an invalid identifier"
> + << std::endl;
> std::exit(EXIT_FAILURE);
> }
> }
> @@ -989,7 +1010,8 @@ void checkIds(
> i(ent2B->getMembers().begin());
> i != ent2B->getMembers().end(); ++i)
> {
> - if (!valid(i->name)) {
> + if (!valid(i->name))
> + {
> std::cerr
> << "polymorphic struct type template " << name
> << " member " << i->name
> @@ -1000,14 +1022,17 @@ void checkIds(
> }
> break;
> case unoidl::Entity::SORT_EXCEPTION_TYPE:
> - if (!entA.is()) {
> + if (!entA.is())
> + {
> rtl::Reference<unoidl::ExceptionTypeEntity> ent2B(
> - static_cast<unoidl::ExceptionTypeEntity *>(entB.get()));
> + static_cast<unoidl::ExceptionTypeEntity *>(entB.get()));
> +
> for (std::vector<unoidl::ExceptionTypeEntity::Member>::const_iterator
> i(ent2B->getDirectMembers().begin());
> i != ent2B->getDirectMembers().end(); ++i)
> {
> - if (!valid(i->name)) {
> + if (!valid(i->name))
> + {
> std::cerr
> << "exception type " << name << " direct member "
> << i->name << " uses an invalid identifier"
> @@ -1018,14 +1043,16 @@ void checkIds(
> }
> break;
> case unoidl::Entity::SORT_INTERFACE_TYPE:
> - if (!entA.is()) {
> + if (!entA.is())
> + {
> rtl::Reference<unoidl::InterfaceTypeEntity> ent2B(
> - static_cast<unoidl::InterfaceTypeEntity *>(entB.get()));
> + static_cast<unoidl::InterfaceTypeEntity *>(entB.get()));
> for (std::vector<unoidl::InterfaceTypeEntity::Attribute>::const_iterator
> i(ent2B->getDirectAttributes().begin());
> i != ent2B->getDirectAttributes().end(); ++i)
> {
> - if (!valid(i->name)) {
> + if (!valid(i->name))
> + {
> std::cerr
> << "interface type " << name << " direct attribute "
> << i->name << " uses an invalid identifier"
> @@ -1037,7 +1064,8 @@ void checkIds(
> i(ent2B->getDirectMethods().begin());
> i != ent2B->getDirectMethods().end(); ++i)
> {
> - if (!valid(i->name)) {
> + if (!valid(i->name))
> + {
> std::cerr
> << "interface type " << name << " direct method "
> << i->name << " uses an invalid identifier"
> @@ -1048,7 +1076,8 @@ void checkIds(
> j(i->parameters.begin());
> j != i->parameters.end(); ++j)
> {
> - if (!valid(j->name)) {
> + if (!valid(j->name))
> + {
> std::cerr
> << "interface type " << name
> << " direct method " << i->name << " parameter "
> @@ -1065,60 +1094,67 @@ void checkIds(
> case unoidl::Entity::SORT_SERVICE_BASED_SINGLETON:
> break;
> case unoidl::Entity::SORT_CONSTANT_GROUP:
> - {
> - rtl::Reference<unoidl::ConstantGroupEntity> ent2B(
> + {
> + rtl::Reference<unoidl::ConstantGroupEntity> ent2B(
> static_cast<unoidl::ConstantGroupEntity *>(entB.get()));
> - for (std::vector<unoidl::ConstantGroupEntity::Member>::const_iterator
> - i(ent2B->getMembers().begin());
> - i != ent2B->getMembers().end(); ++i)
> + for (std::vector<unoidl::ConstantGroupEntity::Member>::const_iterator
> + i(ent2B->getMembers().begin());
> + i != ent2B->getMembers().end(); ++i)
> + {
> + bool found = false;
> + if (entA.is())
> {
> - bool found = false;
> - if (entA.is()) {
> - rtl::Reference<unoidl::ConstantGroupEntity> ent2A(
> + rtl::Reference<unoidl::ConstantGroupEntity> ent2A(
> static_cast<unoidl::ConstantGroupEntity *>(
> - entA.get()));
> - for (std::vector<unoidl::ConstantGroupEntity::Member>::const_iterator
> - j(ent2A->getMembers().begin());
> - j != ent2A->getMembers().end(); ++j)
> + entA.get()));
> + for (std::vector<unoidl::ConstantGroupEntity::Member>::const_iterator
> + j(ent2A->getMembers().begin());
> + j != ent2A->getMembers().end(); ++j)
> + {
> + if (i->name == j->name)
> {
> - if (i->name == j->name) {
> - found = true;
> - break;
> - }
> + found = true;
> + break;
> }
> }
> - if (!(found || valid(i->name))) {
> - std::cerr
> - << "Constant group " << name << " member "
> - << i->name << " uses an invalid identifier"
> - << std::endl;
> - std::exit(EXIT_FAILURE);
> - }
> }
> - break;
> + if (!(found || valid(i->name)))
> + {
> + std::cerr
> + << "Constant group " << name << " member "
> + << i->name << " uses an invalid identifier"
> + << std::endl;
> + std::exit(EXIT_FAILURE);
> + }
> }
> + break;
> + }
> case unoidl::Entity::SORT_SINGLE_INTERFACE_BASED_SERVICE:
> - if (!entA.is()) {
> + if (!entA.is())
> + {
> rtl::Reference<unoidl::SingleInterfaceBasedServiceEntity>
> - ent2B(
> - static_cast<unoidl::SingleInterfaceBasedServiceEntity *>(
> - entB.get()));
> + ent2B( static_cast<unoidl::SingleInterfaceBasedServiceEntity *>(
> + entB.get()));
> +
> for (std::vector<unoidl::SingleInterfaceBasedServiceEntity::Constructor>::const_iterator
> i(ent2B->getConstructors().begin());
> i != ent2B->getConstructors().end(); ++i)
> {
> - if (!valid(i->name)) {
> + if (!valid(i->name))
> + {
> std::cerr
> << "single-interface--based service " << name
> << " constructor " << i->name
> - << " uses an invalid identifier" << std::endl;
> + << " uses an invalid identifier"
> + << std::endl;
> std::exit(EXIT_FAILURE);
> }
> for (std::vector<unoidl::SingleInterfaceBasedServiceEntity::Constructor::Parameter>::const_iterator
> j(i->parameters.begin());
> j != i->parameters.end(); ++j)
> {
> - if (!valid(j->name)) {
> + if (!valid(j->name))
> + {
> std::cerr
> << "single-interface--based service " << name
> << " constructor " << i->name << " parameter "
> @@ -1131,67 +1167,81 @@ void checkIds(
> }
> break;
> case unoidl::Entity::SORT_ACCUMULATION_BASED_SERVICE:
> - {
> - rtl::Reference<unoidl::AccumulationBasedServiceEntity> ent2B(
> + {
> + rtl::Reference<unoidl::AccumulationBasedServiceEntity> ent2B(
> static_cast<unoidl::AccumulationBasedServiceEntity *>(
> - entB.get()));
> - std::vector<unoidl::AccumulationBasedServiceEntity::Property>::size_type
> - n(entA.is()
> - ? (static_cast<unoidl::AccumulationBasedServiceEntity *>(
> - entA.get())
> - ->getDirectProperties().size())
> - : 0);
> - assert(n <= ent2B->getDirectProperties().size());
> - for (std::vector<unoidl::AccumulationBasedServiceEntity::Property>::const_iterator
> - i(ent2B->getDirectProperties().begin() + n);
> - i != ent2B->getDirectProperties().end(); ++i)
> + entB.get()));
> + std::vector<unoidl::AccumulationBasedServiceEntity::Property>::size_type
> + n(entA.is() ?
> + (static_cast<unoidl::AccumulationBasedServiceEntity *>(entA.get())->getDirectProperties().size()) : 0);
> + assert(n <= ent2B->getDirectProperties().size());
> +
> + for (std::vector<unoidl::AccumulationBasedServiceEntity::Property>::const_iterator
> + i(ent2B->getDirectProperties().begin() + n);
> + i != ent2B->getDirectProperties().end(); ++i)
> + {
> + if (!valid(i->name))
> {
> - if (!valid(i->name)) {
> - std::cerr
> - << "accumulation-based service " << name
> - << " direct property " << i->name
> - << " uses an invalid identifier" << std::endl;
> - std::exit(EXIT_FAILURE);
> - }
> + std::cerr
> + << "accumulation-based service " << name
> + << " direct property " << i->name
> + << " uses an invalid identifier"
> + << std::endl;
> + std::exit(EXIT_FAILURE);
> }
> - break;
> }
> + break;
> + }
> }
> }
> }
>
> }
>
> -SAL_IMPLEMENT_MAIN() {
> - try {
> +SAL_IMPLEMENT_MAIN()
> +{
> + try
> + {
> sal_uInt32 args = rtl_getAppCommandArgCount();
> rtl::Reference<unoidl::Manager> mgr[2];
> mgr[0] = new unoidl::Manager;
> mgr[1] = new unoidl::Manager;
> +
> rtl::Reference<unoidl::Provider> prov[2];
> int side = 0;
> - for (sal_uInt32 i = 0; i != args; ++i) {
> + for (sal_uInt32 i = 0; i != args; ++i)
> + {
> bool delimiter = false;
> OUString uri(getArgumentUri(i, side == 0 ? &delimiter : 0));
> - if (delimiter) {
> + if (delimiter)
> + {
> side = 1;
> - } else {
> - try {
> + }
> + else
> + {
> + try
> + {
> prov[side] = mgr[side]->addProvider(uri);
> - } catch (unoidl::NoSuchFileException &) {
> + }
> + catch (unoidl::NoSuchFileException &)
> + {
> std::cerr
> - << "Input <" << uri << "> does not exist" << std::endl;
> + << "Input <" << uri << "> does not exist"
> + << std::endl;
> std::exit(EXIT_FAILURE);
> }
> }
> }
> - if (side == 0 || !(prov[0].is() && prov[1].is())) {
> + if (side == 0 || !(prov[0].is() && prov[1].is()))
> + {
> badUsage();
> }
> checkMap(prov[1], "", prov[0]->createRootCursor());
> checkIds(prov[0], "", prov[1]->createRootCursor());
> return EXIT_SUCCESS;
> - } catch (unoidl::FileFormatException & e1) {
> + }
> + catch (unoidl::FileFormatException & e1)
> + {
> std::cerr
> << "Bad input <" << e1.getUri() << ">: " << e1.getDetail()
> << std::endl;
More information about the LibreOffice
mailing list