summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--codemaker/source/cppumaker/cpputype.cxx35
-rw-r--r--codemaker/source/cppumaker/cpputype.hxx1
-rw-r--r--cppuhelper/inc/cppuhelper/weakagg.hxx1
-rw-r--r--idlc/inc/idlc/idlc.hxx2
-rw-r--r--idlc/source/astdeclaration.cxx3
-rw-r--r--idlc/source/idlc.cxx16
6 files changed, 47 insertions, 11 deletions
diff --git a/codemaker/source/cppumaker/cpputype.cxx b/codemaker/source/cppumaker/cpputype.cxx
index eca01435a4e2..149653f2e757 100644
--- a/codemaker/source/cppumaker/cpputype.cxx
+++ b/codemaker/source/cppumaker/cpputype.cxx
@@ -1354,6 +1354,22 @@ OString CppuType::indent() const
//*************************************************************************
// InterfaceType
//*************************************************************************
+
+namespace {
+
+bool isDocumentedDeprecated(OUString const & documentation) {
+ return documentation.indexOf("@deprecated") != -1;
+ //TODO: this check is somewhat crude
+}
+
+void dumpDeprecation(FileStream & o, bool deprecated) {
+ if (deprecated) {
+ o << "SAL_DEPRECATED_INTERNAL(\"marked @deprecated in UNOIDL\") ";
+ }
+}
+
+}
+
InterfaceType::InterfaceType(typereg::Reader& typeReader,
const OString& typeName,
const TypeManager& typeMgr)
@@ -1362,6 +1378,7 @@ InterfaceType::InterfaceType(typereg::Reader& typeReader,
m_inheritedMemberCount = 0;
m_hasAttributes = false;
m_hasMethods = false;
+ m_isDeprecated = isDocumentedDeprecated(m_reader.getDocumentation());
}
InterfaceType::~InterfaceType()
@@ -1465,13 +1482,18 @@ void InterfaceType::dumpAttributes(FileStream& o)
fieldType = rtl::OUStringToOString(
m_reader.getFieldTypeName(i), RTL_TEXTENCODING_UTF8);
+ bool depr = m_isDeprecated
+ || isDocumentedDeprecated(m_reader.getFieldDocumentation(i));
+
if (first)
{
first = sal_False;
o << "\n" << indent() << "// Attributes\n";
}
- o << indent() << "virtual ";
+ o << indent();
+ dumpDeprecation(o, depr);
+ o << "virtual ";
dumpType(o, fieldType);
o << " SAL_CALL get" << fieldName << "()";
dumpAttributeExceptionSpecification(o, name, RT_MODE_ATTRIBUTE_GET);
@@ -1480,7 +1502,9 @@ void InterfaceType::dumpAttributes(FileStream& o)
if ((access & RT_ACCESS_READONLY) == 0)
{
bool byRef = passByReference(fieldType);
- o << indent() << "virtual void SAL_CALL set" << fieldName << "( ";
+ o << indent();
+ dumpDeprecation(o, depr);
+ o << "virtual void SAL_CALL set" << fieldName << "( ";
dumpType(o, fieldType, byRef, byRef);
o << " _" << fieldName.toAsciiLowerCase() << " )";
dumpAttributeExceptionSpecification(o, name, RT_MODE_ATTRIBUTE_SET);
@@ -1529,7 +1553,12 @@ void InterfaceType::dumpMethods(FileStream& o)
o << "\n" << indent() << "// Methods\n";
}
- o << indent() << "virtual ";
+ o << indent();
+ dumpDeprecation(
+ o,
+ (m_isDeprecated
+ || isDocumentedDeprecated(m_reader.getMethodDocumentation(i))));
+ o << "virtual ";
dumpType(o, returnType);
o << " SAL_CALL " << methodName << "( ";
for (sal_uInt16 j=0; j < paramCount; j++)
diff --git a/codemaker/source/cppumaker/cpputype.hxx b/codemaker/source/cppumaker/cpputype.hxx
index a2781cba2557..12abd54cf958 100644
--- a/codemaker/source/cppumaker/cpputype.hxx
+++ b/codemaker/source/cppumaker/cpputype.hxx
@@ -191,6 +191,7 @@ protected:
sal_uInt32 m_inheritedMemberCount;
bool m_hasAttributes;
bool m_hasMethods;
+ bool m_isDeprecated;
private:
void dumpExceptionSpecification(
diff --git a/cppuhelper/inc/cppuhelper/weakagg.hxx b/cppuhelper/inc/cppuhelper/weakagg.hxx
index f4ae380a7218..094e178ec222 100644
--- a/cppuhelper/inc/cppuhelper/weakagg.hxx
+++ b/cppuhelper/inc/cppuhelper/weakagg.hxx
@@ -79,7 +79,6 @@ public:
@param Delegator the object that delegate its queryInterface to this aggregate.
*/
- SAL_DEPRECATED_INTERNAL("do not use XAggregation")
virtual void SAL_CALL setDelegator( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > & Delegator )
throw(::com::sun::star::uno::RuntimeException);
/** Called by the delegator or queryInterface. Re-implement this method instead of
diff --git a/idlc/inc/idlc/idlc.hxx b/idlc/inc/idlc/idlc.hxx
index df110603425f..30f54362b4bf 100644
--- a/idlc/inc/idlc/idlc.hxx
+++ b/idlc/inc/idlc/idlc.hxx
@@ -78,7 +78,7 @@ public:
m_documentation = documentation;
m_bIsDocValid = sal_True;
}
- sal_Bool isDocValid();
+ OUString processDocumentation();
sal_Bool isInMainFile()
{ return m_bIsInMainfile; }
void setInMainfile(sal_Bool bInMainfile)
diff --git a/idlc/source/astdeclaration.cxx b/idlc/source/astdeclaration.cxx
index 7a1bf314b3ed..ef0996323153 100644
--- a/idlc/source/astdeclaration.cxx
+++ b/idlc/source/astdeclaration.cxx
@@ -76,8 +76,7 @@ AstDeclaration::AstDeclaration(NodeType type, const OString& name, AstScope* pSc
m_bImported = sal_True;
}
- if ( idlc()->isDocValid() )
- m_documentation = OStringToOUString(idlc()->getDocumentation(), RTL_TEXTENCODING_UTF8);
+ m_documentation = idlc()->processDocumentation();
m_bPublished = idlc()->isPublished();
}
diff --git a/idlc/source/idlc.cxx b/idlc/source/idlc.cxx
index a064e7b1d4a3..895a54554ff6 100644
--- a/idlc/source/idlc.cxx
+++ b/idlc/source/idlc.cxx
@@ -274,11 +274,19 @@ void Idlc::reset()
m_includes.clear();
}
-sal_Bool Idlc::isDocValid()
+OUString Idlc::processDocumentation()
{
- if ( m_bGenerateDoc )
- return m_bIsDocValid;
- return sal_False;;
+ OUString doc;
+ if (m_bIsDocValid) {
+ OString raw(getDocumentation());
+ if (m_bGenerateDoc) {
+ doc = OStringToOUString(raw, RTL_TEXTENCODING_UTF8);
+ } else if (raw.indexOf("@deprecated") != -1) {
+ //TODO: this check is somewhat crude
+ doc = "@deprecated";
+ }
+ }
+ return doc;
}
static void lcl_writeString(::osl::File & rFile, ::osl::FileBase::RC & o_rRC,