summaryrefslogtreecommitdiff
path: root/unodevtools/source/skeletonmaker/cppcompskeleton.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'unodevtools/source/skeletonmaker/cppcompskeleton.cxx')
-rw-r--r--unodevtools/source/skeletonmaker/cppcompskeleton.cxx119
1 files changed, 52 insertions, 67 deletions
diff --git a/unodevtools/source/skeletonmaker/cppcompskeleton.cxx b/unodevtools/source/skeletonmaker/cppcompskeleton.cxx
index bfea9a03ced7..41ef20394654 100644
--- a/unodevtools/source/skeletonmaker/cppcompskeleton.cxx
+++ b/unodevtools/source/skeletonmaker/cppcompskeleton.cxx
@@ -30,8 +30,8 @@ using namespace ::codemaker::cpp;
namespace skeletonmaker { namespace cpp {
void generateIncludes(std::ostream & o,
- const boost::unordered_set< OString, OStringHash >& interfaces,
- OString propertyhelper, bool serviceobject,
+ const std::set< OUString >& interfaces,
+ OUString propertyhelper, bool serviceobject,
bool supportxcomponent)
{
o << "#include \"sal/config.h\"\n";
@@ -55,7 +55,7 @@ void generateIncludes(std::ostream & o,
o << "#include \"cppuhelper/propertysetmixin.hxx\"\n";
}
- boost::unordered_set< OString, OStringHash >::const_iterator iter = interfaces.begin();
+ std::set< OUString >::const_iterator iter = interfaces.begin();
while (iter != interfaces.end())
{
o << "#include \""
@@ -138,7 +138,7 @@ OString generateCompHelperDeclaration(std::ostream & o,
void generateCompHelperDefinition(std::ostream & o,
const OString & implname,
const OString & classname,
- const boost::unordered_set< OString, OStringHash >& services)
+ const std::set< OUString >& services)
{
OString nm;
short nbrackets = generateNamespace(o, implname, true, nm);
@@ -151,12 +151,12 @@ void generateCompHelperDefinition(std::ostream & o,
"_getSupportedServiceNames()\n{\n css::uno::Sequence< "
<< "::rtl::OUString >" << " s(" << services.size() << ");\n";
- boost::unordered_set< OString, OStringHash >::const_iterator iter = services.begin();
+ std::set< OUString >::const_iterator iter = services.begin();
short i=0;
while (iter != services.end())
{
o << " s[" << i++ << "] = ::rtl::OUString(\""
- << (*iter).replace('/','.') << "\");\n";
+ << *iter << "\");\n";
++iter;
}
o << " return s;\n}\n\n";
@@ -500,7 +500,7 @@ void generateXDispatchProvider(std::ostream& o,
void generateAddinConstructorAndHelper(std::ostream& o,
ProgramOptions const & options,
rtl::Reference< TypeManager > const & manager, const OString & classname,
- const boost::unordered_set< OString, OStringHash >& interfaces)
+ const std::set< OUString >& interfaces)
{
o << classname << "::" << classname
<< "(css::uno::Reference< css::uno::XComponentContext > const & context) :\n"
@@ -582,18 +582,13 @@ void generateMemberInitialization(std::ostream& o,
for (AttributeInfo::const_iterator i(members.begin());
i != members.end(); ++i)
{
- RTTypeClass typeClass;
- OString type(i->second.first.replace('.','/'));
- OString name;
sal_Int32 rank;
- std::vector< OString > arguments;
- codemaker::UnoType::Sort sort = codemaker::decomposeAndResolve(
- manager, type, true, true, true, &typeClass, &name, &rank,
- &arguments);
-
- if (sort <= codemaker::UnoType::SORT_CHAR && rank == 0) {
- o << ",\n m_" << i->first << "(";
- printType(o, options, manager, type, 16, true);
+ if ((manager->decompose(i->type, true, 0, &rank, 0, 0)
+ <= codemaker::UnoType::SORT_CHAR)
+ && rank == 0)
+ {
+ o << ",\n m_" << i->name << "(";
+ printType(o, options, manager, i->type, 16, true);
o << ")";
}
}
@@ -609,9 +604,8 @@ void generateMemberDeclaration(std::ostream& o,
i != members.end(); ++i)
{
o << " ";
- printType(o, options, manager, i->second.first.replace('.','/'),
- 1, false);
- o << " m_" << i->first << ";\n";
+ printType(o, options, manager, i->type, 1, false);
+ o << " m_" << i->name << ";\n";
}
}
@@ -619,11 +613,11 @@ OString generateClassDefinition(std::ostream& o,
ProgramOptions const & options,
rtl::Reference< TypeManager > const & manager,
OString const & classname,
- boost::unordered_set< OString, OStringHash > const & interfaces,
+ std::set< OUString > const & interfaces,
AttributeInfo const & properties,
AttributeInfo const & attributes,
- boost::unordered_set< OString, OStringHash > const & propinterfaces,
- OString const & propertyhelper, bool supportxcomponent)
+ std::set< OUString > const & propinterfaces,
+ OUString const & propertyhelper, bool supportxcomponent)
{
OStringBuffer parentname(64);
o << "class " << classname << ":\n";
@@ -641,11 +635,10 @@ OString generateClassDefinition(std::ostream& o,
o << " public ::cppu::WeakImplHelper" << interfaces.size() << "<";
}
- boost::unordered_set< OString, OStringHash >::const_iterator iter =
- interfaces.begin();
+ std::set< OUString >::const_iterator iter = interfaces.begin();
while (iter != interfaces.end())
{
- o << "\n " << scopedCppName(*iter);
+ o << "\n " << scopedCppName(u2b(*iter));
++iter;
if (iter != interfaces.end())
o << ",";
@@ -656,7 +649,7 @@ OString generateClassDefinition(std::ostream& o,
if (propertyhelper.getLength() > 1) {
o << ",\n public ::cppu::PropertySetMixin< "
- << scopedCppName(propertyhelper) << " >";
+ << scopedCppName(u2b(propertyhelper)) << " >";
}
o << "\n{\npublic:\n"
@@ -682,11 +675,10 @@ OString generateClassDefinition(std::ostream& o,
OStringBuffer buffer(256);
buffer.append(parentname.toString());
buffer.append("< ");
- boost::unordered_set< OString, OStringHash >::const_iterator iter =
- interfaces.begin();
+ std::set< OUString >::const_iterator iter = interfaces.begin();
while (iter != interfaces.end())
{
- buffer.append(scopedCppName(*iter));
+ buffer.append(scopedCppName(u2b(*iter)));
++iter;
if (iter != interfaces.end())
buffer.append(", ");
@@ -700,13 +692,11 @@ OString generateClassDefinition(std::ostream& o,
<< parent << "::release(); }\n\n";
}
- boost::unordered_set< OString, OStringHash >::const_iterator it =
- interfaces.begin();
+ std::set< OUString >::const_iterator it = interfaces.begin();
codemaker::GeneratedTypeSet generated;
while (it != interfaces.end())
{
- typereg::Reader reader(manager->getTypeReader((*it).replace('.','/')));
- printMethods(o, options, manager, reader, generated, "", "", " ",
+ printMethods(o, options, manager, *it, generated, "", "", " ",
true, propertyhelper);
++it;
}
@@ -794,10 +784,9 @@ OString generateClassDefinition(std::ostream& o,
<< "(css::uno::Reference< css::uno::XComponentContext > const & context) :\n";
if (supportxcomponent) {
o << " ::cppu::WeakComponentImplHelper" << interfaces.size() << "<";
- boost::unordered_set< OString, OStringHash >::const_iterator iter =
- interfaces.begin();
+ std::set< OUString >::const_iterator iter = interfaces.begin();
while (iter != interfaces.end()) {
- o << "\n " << scopedCppName(*iter);
+ o << "\n " << scopedCppName(u2b(*iter));
++iter;
if (iter != interfaces.end())
o << ",";
@@ -807,7 +796,7 @@ OString generateClassDefinition(std::ostream& o,
}
if (propertyhelper.getLength() > 1) {
o << " ::cppu::PropertySetMixin< "
- << scopedCppName(propertyhelper) << " >(\n"
+ << scopedCppName(u2b(propertyhelper)) << " >(\n"
<< " context, static_cast< Implements >(\n ";
OStringBuffer buffer(128);
if (propinterfaces.find("com/sun/star/beans/XPropertySet")
@@ -881,22 +870,20 @@ void generateXServiceInfoBodies(std::ostream& o,
void generateMethodBodies(std::ostream& o,
ProgramOptions const & options,
rtl::Reference< TypeManager > const & manager,
- boost::unordered_set< OString, OStringHash > const & interfaces,
+ std::set< OUString > const & interfaces,
OString const & classname,
OString const & comphelpernamespace,
- OString const & propertyhelper)
+ OUString const & propertyhelper)
{
OString name(classname.concat("::"));
- boost::unordered_set< OString, OStringHash >::const_iterator iter =
- interfaces.begin();
+ std::set< OUString >::const_iterator iter = interfaces.begin();
codemaker::GeneratedTypeSet generated;
while (iter != interfaces.end()) {
if ( (*iter).equals("com.sun.star.lang.XServiceInfo") ) {
generateXServiceInfoBodies(o, name, comphelpernamespace);
- generated.add(*iter);
+ generated.add(u2b(*iter));
} else {
- typereg::Reader reader(manager->getTypeReader((*iter).replace('.','/')));
- printMethods(o, options, manager, reader, generated, "_",
+ printMethods(o, options, manager, *iter, generated, "_",
name, "", true, propertyhelper);
}
++iter;
@@ -906,10 +893,10 @@ void generateMethodBodies(std::ostream& o,
void generateQueryInterface(std::ostream& o,
ProgramOptions const & options,
rtl::Reference< TypeManager > const & manager,
- const boost::unordered_set< OString, OStringHash >& interfaces,
+ const std::set< OUString >& interfaces,
OString const & parentname,
OString const & classname,
- OString const & propertyhelper)
+ OUString const & propertyhelper)
{
if (propertyhelper.isEmpty())
return;
@@ -924,11 +911,10 @@ void generateQueryInterface(std::ostream& o,
o << "css::uno::Any a(";
o << parentname << "<";
- boost::unordered_set< OString, OStringHash >::const_iterator iter =
- interfaces.begin();
+ std::set< OUString >::const_iterator iter = interfaces.begin();
while (iter != interfaces.end())
{
- o << "\n " << scopedCppName(*iter);
+ o << "\n " << scopedCppName(u2b(*iter));
++iter;
if (iter != interfaces.end())
o << ",";
@@ -945,8 +931,7 @@ void generateQueryInterface(std::ostream& o,
o << "::cppu::OPropertySetHelper::queryInterface(type));\n";
} else {
o << "::cppu::PropertySetMixin<\n ";
- printType(o, options, manager, propertyhelper.replace('.', '/'),
- 0, false);
+ printType(o, options, manager, propertyhelper, 0, false);
o << " >::queryInterface(\n type));\n";
}
}
@@ -963,17 +948,17 @@ void generateSkeleton(ProgramOptions const & options,
return;
}
- boost::unordered_set< OString, OStringHash > interfaces;
- boost::unordered_set< OString, OStringHash > services;
+ std::set< OUString > interfaces;
+ std::set< OUString > services;
AttributeInfo properties;
AttributeInfo attributes;
- boost::unordered_set< OString, OStringHash > propinterfaces;
+ std::set< OUString > propinterfaces;
bool serviceobject = false;
bool supportxcomponent = false;
std::vector< OString >::const_iterator iter = types.begin();
while (iter != types.end()) {
- checkType(manager, *iter, interfaces, services, properties);
+ checkType(manager, b2u(*iter), interfaces, services, properties);
++iter;
}
@@ -992,7 +977,7 @@ void generateSkeleton(ProgramOptions const & options,
if (!services.empty())
serviceobject = true;
- OString propertyhelper = checkPropertyHelper(
+ OUString propertyhelper = checkPropertyHelper(
options, manager, services, interfaces, attributes, propinterfaces);
checkDefaultInterfaces(interfaces, services, propertyhelper);
@@ -1095,22 +1080,22 @@ void generateCalcAddin(ProgramOptions const & options,
rtl::Reference< TypeManager > const & manager,
std::vector< OString > const & types)
{
- boost::unordered_set< OString, OStringHash > interfaces;
- boost::unordered_set< OString, OStringHash > services;
+ std::set< OUString > interfaces;
+ std::set< OUString > services;
AttributeInfo properties;
AttributeInfo attributes;
- boost::unordered_set< OString, OStringHash > propinterfaces;
+ std::set< OUString > propinterfaces;
bool serviceobject = false;
bool supportxcomponent = false;
std::vector< OString >::const_iterator iter = types.begin();
while (iter != types.end()) {
- checkType(manager, *iter, interfaces, services, properties);
+ checkType(manager, b2u(*iter), interfaces, services, properties);
++iter;
}
- OString sAddinService;
+ OUString sAddinService;
if (services.size() != 1) {
throw CannotDumpException(
"for calc add-in components one and only one service type is necessary!"
@@ -1119,10 +1104,10 @@ void generateCalcAddin(ProgramOptions const & options,
// get the one and only add-in service for later use
- boost::unordered_set< OString, OStringHash >::const_iterator iter2 = services.begin();
- sAddinService = (*iter2).replace('/', '.');
+ std::set< OUString >::const_iterator iter2 = services.begin();
+ sAddinService = *iter2;
if (sAddinService.equals("com.sun.star.sheet.AddIn")) {
- sAddinService = (*(++iter2)).replace('/', '.');
+ sAddinService = *(++iter2);
}
// if backwardcompatible==true the AddIn service needs to be added to the
@@ -1142,7 +1127,7 @@ void generateCalcAddin(ProgramOptions const & options,
}
}
- OString propertyhelper = checkPropertyHelper(
+ OUString propertyhelper = checkPropertyHelper(
options, manager, services, interfaces, attributes, propinterfaces);
if (!propertyhelper.isEmpty())