summaryrefslogtreecommitdiff
path: root/unoidl
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2014-11-18 16:48:35 +0100
committerStephan Bergmann <sbergman@redhat.com>2014-11-19 08:50:26 +0100
commitb0583c57efc253e4e2f9c86e7900eb02e0e22173 (patch)
treee2e9511299798b9654e97b60e47cab4cab7f19ec /unoidl
parent72f1d57b86ad0a4ce505c0c24c7cf651a934e5ce (diff)
Revert "cosmetic 'en-passant'...."
This reverts commit d4810a814c7c7f3db2df15b62367bd1edc7040f6. Change-Id: Ia062e070c7d7dac5cc4388d1c8e812fb97851d52
Diffstat (limited to 'unoidl')
-rw-r--r--unoidl/source/unoidl-check.cxx1442
1 files changed, 696 insertions, 746 deletions
diff --git a/unoidl/source/unoidl-check.cxx b/unoidl/source/unoidl-check.cxx
index c314b86debcf..22dff88d5f51 100644
--- a/unoidl/source/unoidl-check.cxx
+++ b/unoidl/source/unoidl-check.cxx
@@ -27,12 +27,9 @@
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:
@@ -58,13 +55,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;
}
@@ -73,18 +70,12 @@ bool operator ==( SingleInterfaceBasedServiceEntity::Constructor::Parameter cons
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
@@ -96,14 +87,11 @@ 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;
@@ -111,18 +99,15 @@ 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;
@@ -130,21 +115,19 @@ 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:
@@ -156,828 +139,824 @@ OUString showDirection( unoidl::InterfaceTypeEntity::Method::Parameter::Directio
}
}
-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())
- {
- 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)
+ if (ent2A->getMembers().size()
+ != ent2B->getMembers().size())
{
std::cerr
- << "enum type " << name << " member #"
- << i - ent2A->getMembers().begin() + 1
- << " changed from " << i->name << " = "
- << i->value << " to " << j->name << " = "
- << j->value
- << std::endl;
+ << "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 << " 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())
- {
- 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)
- {
+ 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 member #"
- << i - ent2A->getDirectMembers().begin() + 1
- << " changed from " << i->type << " " << i->name
- << " to " << j->type << " " << j->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
+ << " 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)
{
- if (*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())
{
std::cerr
<< "polymorphic struct type template " << name
- << " type parameter #"
- << i - ent2A->getTypeParameters().begin() + 1
- << " changed from " << *i << " to " << *j
- << std::endl;
+ << " number of type parameters changed from "
+ << ent2A->getTypeParameters().size() << " to "
+ << ent2B->getTypeParameters().size() << std::endl;
std::exit(EXIT_FAILURE);
}
- }
- 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)
+ 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())
{
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;
+ << " 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;
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())
- {
- 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)
- {
+ if (ent2A->getDirectBase() != ent2B->getDirectBase()) {
std::cerr
<< "exception type " << name
- << " direct member #"
- << i - ent2A->getDirectMembers().begin() + 1
- << " changed from " << i->type << " " << i->name
- << " to " << j->type << " " << j->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);
}
- }
- break;
- }
- case unoidl::Entity::SORT_INTERFACE_TYPE:
- {
- rtl::Reference<unoidl::InterfaceTypeEntity> ent2A(
- static_cast<unoidl::InterfaceTypeEntity *>(entA.get()));
- rtl::Reference<unoidl::InterfaceTypeEntity> ent2B(
- static_cast<unoidl::InterfaceTypeEntity *>(entB.get()));
- 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)
+ if (ent2A->getDirectMembers().size()
+ != ent2B->getDirectMembers().size())
{
std::cerr
- << "interface type " << name
- << " direct mandatory base #"
- << (i - ent2A->getDirectMandatoryBases().begin()
- + 1)
- << " changed from " << i->name << " to "
- << j->name
- << std::endl;
+ << "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
+ << " 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;
}
- 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)
+ case unoidl::Entity::SORT_INTERFACE_TYPE:
{
- if (i->name != j->name)
+ rtl::Reference<unoidl::InterfaceTypeEntity> ent2A(
+ static_cast<unoidl::InterfaceTypeEntity *>(entA.get()));
+ rtl::Reference<unoidl::InterfaceTypeEntity> ent2B(
+ static_cast<unoidl::InterfaceTypeEntity *>(entB.get()));
+ if (ent2A->getDirectMandatoryBases().size()
+ != ent2B->getDirectMandatoryBases().size())
{
std::cerr
<< "interface type " << name
- << " direct optional base #"
- << (i - ent2A->getDirectOptionalBases().begin() + 1)
- << " changed from " << i->name << " to "
- << j->name
+ << " number of direct mandatory bases changed from "
+ << ent2A->getDirectMandatoryBases().size() << " to "
+ << ent2B->getDirectMandatoryBases().size()
<< std::endl;
std::exit(EXIT_FAILURE);
}
- }
- 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)
+ 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())
{
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
+ << " number of direct optional bases changed from "
+ << ent2A->getDirectOptionalBases().size() << " to "
+ << ent2B->getDirectOptionalBases().size()
<< std::endl;
std::exit(EXIT_FAILURE);
}
- }
- 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)
+ 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())
{
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;
+ << " number of direct attributes changed from "
+ << ent2A->getDirectAttributes().size() << " to "
+ << ent2B->getDirectAttributes().size() << std::endl;
std::exit(EXIT_FAILURE);
}
- if (i->parameters.size() != j->parameters.size())
+ 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
+ << " 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);
+ }
+ }
+ if (ent2A->getDirectMethods().size()
+ != ent2B->getDirectMethods().size())
{
std::cerr
<< "interface type " << name
- << " direct method " << i->name
- << " number of parameters changed from "
- << i->parameters.size() << " to "
- << j->parameters.size()
- << std::endl;
+ << " 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::Parameter>::const_iterator
- k(i->parameters.begin()),
- l(j->parameters.begin());
- k != i->parameters.end(); ++k, ++l)
+ for (std::vector<unoidl::InterfaceTypeEntity::Method>::const_iterator
+ i(ent2A->getDirectMethods().begin()),
+ j(ent2B->getDirectMethods().begin());
+ i != ent2A->getDirectMethods().end(); ++i, ++j)
{
- if (k->type != l->type || k->direction != l->direction)
+ if (i->name != j->name || i->returnType != j->returnType
+ || i->exceptions != j->exceptions)
{
std::cerr
<< "interface type " << name
- << " direct method " << i->name
- << " parameter #"
- << k - i->parameters.begin() + 1
+ << " direct method #"
+ << i - ent2A->getDirectMethods().begin() + 1
<< " changed from "
- << showDirection(k->direction) << " "
- << k->type << " to "
- << showDirection(l->direction) << " "
- << l->type
+ << i->returnType << " " << i->name //TODO: exceptions
+ << " to " << j->returnType << " " << j->name //TODO: exceptions
<< std::endl;
std::exit(EXIT_FAILURE);
}
- if (k->name != l->name)
- {
+ if (i->parameters.size() != j->parameters.size()) {
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;
+ << " number of parameters changed from "
+ << i->parameters.size() << " to "
+ << j->parameters.size() << 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);
+ if (ent2A->getType() != ent2B->getType()) {
+ std::cerr
+ << "typedef " << name << " type changed from "
+ << ent2A->getType() << " to " << ent2B->getType()
+ << std::endl;
+ std::exit(EXIT_FAILURE);
+ }
+ break;
}
- 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
- j(ent2B->getMembers().begin());
- j != ent2B->getMembers().end(); ++j)
+ i(ent2A->getMembers().begin());
+ i != ent2A->getMembers().end(); ++i)
{
- if (i->name == j->name)
+ bool found = false;
+ for (std::vector<unoidl::ConstantGroupEntity::Member>::const_iterator
+ j(ent2B->getMembers().begin());
+ j != ent2B->getMembers().end(); ++j)
{
- if (i->value != j->value)
- {
- std::cerr
- << "constant group " << name
- << " member " << i->name
- << " changed value"
- << std::endl;
- std::exit(EXIT_FAILURE);
+ 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;
}
- found = true;
- break;
+ }
+ if (!found) {
+ std::cerr
+ << "A constant group " << name << " member "
+ << i->name << " is not present in B"
+ << std::endl;
+ std::exit(EXIT_FAILURE);
}
}
- if (!found)
- {
+ 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
- << "A constant group " << name << " member "
- << i->name << " is not present in B"
+ << "single-interface--based servcie " << name
+ << " base changed from " << ent2A->getBase()
+ << " to " << ent2B->getBase()
<< std::endl;
std::exit(EXIT_FAILURE);
}
- }
- 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())
- {
- 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)
+ if (ent2A->getConstructors().size()
+ != ent2B->getConstructors().size())
{
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;
+ << " 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
+ << "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;
}
- 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)
+ 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
- << " direct mandatory base service #"
- << (i - (ent2A->getDirectMandatoryBaseServices().begin()) + 1)
- << " changed from " << i->name << " to "
- << j->name << std::endl;
+ << (" number of direct mandatory base services"
+ " changed from ")
+ << ent2A->getDirectMandatoryBaseServices().size()
+ << " to "
+ << ent2B->getDirectMandatoryBaseServices().size()
+ << std::endl;
std::exit(EXIT_FAILURE);
}
- }
- 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())
+ for (std::vector<unoidl::AnnotatedReference>::const_iterator
+ i(ent2A->getDirectMandatoryBaseServices().begin()),
+ j(ent2B->getDirectMandatoryBaseServices().begin());
+ i != ent2A->getDirectMandatoryBaseServices().end();
+ ++i, ++j)
{
- std::cerr
- << "accumulation-based service " << name
- << " direct optional base service " << i->name
- << " was removed" << std::endl;
- std::exit(EXIT_FAILURE);
+ 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->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)
+ if (ent2A->getDirectOptionalBaseServices().size()
+ > ent2B->getDirectOptionalBaseServices().size())
{
std::cerr
<< "accumulation-based service " << name
- << " direct mandatory base interface #"
- << (i - (ent2A->getDirectMandatoryBaseInterfaces().begin()) + 1)
- << " changed from " << i->name << " to "
- << j->name << std::endl;
+ << (" number of direct optional base services"
+ " shrank from ")
+ << ent2A->getDirectOptionalBaseServices().size()
+ << " to "
+ << ent2B->getDirectOptionalBaseServices().size()
+ << std::endl;
std::exit(EXIT_FAILURE);
}
- }
- 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(),
+ 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->getDirectOptionalBaseInterfaces().end())
+ == 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())
{
std::cerr
<< "accumulation-based service " << name
- << " direct optional base interface " << i->name
- << " was removed" << std::endl;
+ << (" number of direct mandatory base interfaces"
+ " changed from ")
+ << ent2A->getDirectMandatoryBaseInterfaces().size()
+ << " to "
+ << ent2B->getDirectMandatoryBaseInterfaces().size()
+ << std::endl;
std::exit(EXIT_FAILURE);
}
- }
- if (ent2A->getDirectProperties().size() > ent2B->getDirectProperties().size())
- {
- 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)
+ 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())
{
std::cerr
<< "accumulation-based service " << name
- << " direct property #"
- << i - ent2A->getDirectProperties().begin() + 1
- << " changed from "
- << i->type << " " << i->name //TODO: attributes
+ << (" number of direct optional base interfaces"
+ " shrank from ")
+ << ent2A->getDirectOptionalBaseInterfaces().size()
<< " to "
- << j->type << " " << j->name //TODO: attributes
+ << ent2B->getDirectOptionalBaseInterfaces().size()
<< 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)
+ 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())
{
std::cerr
- << "B accumulation-based service " << name
- << " additional direct property " << i->name
- << " is not optional" << std::endl;
+ << "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
+ << "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;
}
- 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);
+ 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;
}
- 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);
+ 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;
}
- 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"
@@ -988,21 +967,21 @@ void checkIds( rtl::Reference<unoidl::Provider> const & providerA, OUString cons
}
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);
}
}
@@ -1010,8 +989,7 @@ void checkIds( rtl::Reference<unoidl::Provider> const & providerA, OUString cons
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
@@ -1022,17 +1000,14 @@ void checkIds( rtl::Reference<unoidl::Provider> const & providerA, OUString cons
}
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"
@@ -1043,16 +1018,14 @@ void checkIds( rtl::Reference<unoidl::Provider> const & providerA, OUString cons
}
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"
@@ -1064,8 +1037,7 @@ void checkIds( rtl::Reference<unoidl::Provider> const & providerA, OUString cons
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"
@@ -1076,8 +1048,7 @@ void checkIds( rtl::Reference<unoidl::Provider> const & providerA, OUString cons
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 "
@@ -1094,67 +1065,60 @@ void checkIds( rtl::Reference<unoidl::Provider> const & providerA, OUString cons
case unoidl::Entity::SORT_SERVICE_BASED_SINGLETON:
break;
case unoidl::Entity::SORT_CONSTANT_GROUP:
- {
- 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)
{
- bool found = false;
- if (entA.is())
+ 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)
{
- rtl::Reference<unoidl::ConstantGroupEntity> ent2A(
+ bool found = false;
+ if (entA.is()) {
+ 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)
- {
- if (i->name == j->name)
+ entA.get()));
+ for (std::vector<unoidl::ConstantGroupEntity::Member>::const_iterator
+ j(ent2A->getMembers().begin());
+ j != ent2A->getMembers().end(); ++j)
{
- found = true;
- break;
+ if (i->name == j->name) {
+ 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);
+ }
}
- if (!(found || valid(i->name)))
- {
- std::cerr
- << "Constant group " << name << " member "
- << i->name << " uses an invalid identifier"
- << std::endl;
- std::exit(EXIT_FAILURE);
- }
+ break;
}
- 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 "
@@ -1167,81 +1131,67 @@ void checkIds( rtl::Reference<unoidl::Provider> const & providerA, OUString cons
}
break;
case unoidl::Entity::SORT_ACCUMULATION_BASED_SERVICE:
- {
- 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)
{
- if (!valid(i->name))
+ 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)
{
- std::cerr
- << "accumulation-based service " << name
- << " direct property " << i->name
- << " uses an invalid identifier"
- << std::endl;
- std::exit(EXIT_FAILURE);
+ if (!valid(i->name)) {
+ 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;