filter/Configuration_filter.mk                                |    6 
 filter/qa/complex/filter/detection/typeDetection/files.csv    |    6 
 filter/source/config/cache/typedetection.cxx                  |   19 
 filter/source/config/cache/typedetection.hxx                  |  800 ++++------
 filter/source/config/fragments/filters/HTML.xcu               |    2 
 filter/source/config/fragments/filters/HTML_MasterDoc.xcu     |    2 
 filter/source/config/fragments/filters/HTML__StarCalc_.xcu    |    2 
 filter/source/config/fragments/filters/HTML__StarWriter_.xcu  |    2 
 filter/source/config/fragments/filters/calc_HTML_WebQuery.xcu |    2 
 filter/source/config/fragments/filters/writerglobal8_HTML.xcu |    2 
 filter/source/config/fragments/types/generic_HTML.xcu         |   12 
 filter/source/config/fragments/types/writer_web_HTML.xcu      |   12 
 sfx2/source/dialog/filtergrouping.cxx                         |    2 
 sfx2/source/view/viewsh.cxx                                   |    2 
 wizards/com/sun/star/wizards/web/data/CGDocument.java         |   13 
 wizards/com/sun/star/wizards/web/data/CGDocument.py           |   11 
 16 files changed, 446 insertions(+), 449 deletions(-)

New commits:
commit 3f76713dbfc4adef9966ba5afd3eaf6480854064
Author: Kohei Yoshida <[email protected]>
Date:   Tue May 22 14:31:39 2012 -0400

    Renamed writer_web_HTML to generic_HTML.
    
    This should reflect the fact that this type was already used as a
    generic HTML type.
    
    Change-Id: I0a209d51ed229f07aff001075c39bfc82d4c3088

diff --git a/filter/Configuration_filter.mk b/filter/Configuration_filter.mk
index 9c49027..01548f3 100644
--- a/filter/Configuration_filter.mk
+++ b/filter/Configuration_filter.mk
@@ -310,7 +310,7 @@ $(call 
filter_Configuration_add_ui_filters,fcfg_langpack,filter/source/config/fr
 
 # fcfg_writer
 $(call 
filter_Configuration_add_types,fcfg_langpack,fcfg_writer_types.xcu,filter/source/config/fragments/types,\
-       writer_web_HTML \
+       generic_HTML \
        writer_Lotus_1_2_3_10_DOS_StarWriter \
        writer_Lotus_1_2_3_10_WIN_StarWriter \
        calc_MS_Excel_40 \
@@ -396,7 +396,7 @@ $(call 
filter_Configuration_add_ui_filters,fcfg_langpack,filter/source/config/fr
 
 # fcfg_web
 $(call 
filter_Configuration_add_types,fcfg_langpack,fcfg_web_types.xcu,filter/source/config/fragments/types,\
-       writer_web_HTML \
+       generic_HTML \
        writer_Text \
        writer_web_HTML_help \
        writer_StarOffice_XML_Writer \
@@ -457,7 +457,7 @@ $(call 
filter_Configuration_add_ui_filters,fcfg_langpack,filter/source/config/fr
 # fcfg_calc
 $(call 
filter_Configuration_add_types,fcfg_langpack,fcfg_calc_types.xcu,filter/source/config/fragments/types,\
        calc_DIF \
-       writer_web_HTML \
+       generic_HTML \
        calc_Lotus \
        calc_QPro \
        calc_MS_Excel_40 \
diff --git a/filter/qa/complex/filter/detection/typeDetection/files.csv 
b/filter/qa/complex/filter/detection/typeDetection/files.csv
index 84b593f..eaad74e 100644
--- a/filter/qa/complex/filter/detection/typeDetection/files.csv
+++ b/filter/qa/complex/filter/detection/typeDetection/files.csv
@@ -28,7 +28,7 @@ 
Writer5_document;Writer/Writer5.sdw;writer_StarWriter_50;writer_StarWriter_50_Vo
 
Writer5_template;Writer/Writer5_template.vor;writer_StarWriter_50_VorlageTemplate;writer_StarWriter_50_VorlageTemplate
 
Writer6_document;Writer/Writer6.sxw;writer_StarOffice_XML_Writer;writer_StarOffice_XML_Writer
 
Writer6_template;Writer/Writer6_template.stw;writer_StarOffice_XML_Writer_Template;writer_StarOffice_XML_Writer
-Writer6_html;Writer/WriterWeb.html;writer_web_HTML;writer_web_HTML
+Writer6_html;Writer/WriterWeb.html;generic_HTML;generic_HTML
 
ApiPro3;Writer/AmiPro_3x.sam;writer_Text_encoded:writer_Text;writer_Text_encoded:writer_Text
 
Applix;Writer/Applix.aw;writer_Text_encoded:writer_Text;writer_Text_encoded:writer_Text
 Text2;Writer/Counterstrike 
I.txt;writer_Text_encoded:writer_Text;writer_Text_encoded:writer_Text
@@ -66,11 +66,11 @@ 
Exel95_template;Calc/Excel5_template.XLT;calc_MS_Excel_5095;calc_MS_Excel_5095
 Excel97_document;Calc/Excel97_2000_XP.xls;calc_MS_Excel_97;calc_MS_Excel_97
 #Excel97_1dummy;Calc/Excel97_2000_XP.dummy;calc_MS_Excel_97;calc_MS_Excel_97
 Excel97_template;Calc/Excel97_2000_XP.xlt;calc_MS_Excel_97;calc_MS_Excel_97
-Calc_html;Calc/HTML_Calc.html;writer_web_HTML;writer_web_HTML
+Calc_html;Calc/HTML_Calc.html;generic_HTML;generic_HTML
 
Lotus;Calc/Lotus.WK1;writer_Lotus_1_2_3_10_DOS_StarWriter;writer_Lotus_1_2_3_10_DOS_StarWriter
 
Calc_rtf;Calc/RTF_StarOffice_Calc.rtf;writer_Rich_Text_Format;writer_Rich_Text_Format
 slk;Calc/SYLK.SLK;calc_SYLK;writer_Text_encoded:writer_Text_encoded
-Webpagequery;Calc/Webpagequery.html;writer_web_HTML;writer_web_HTML
+Webpagequery;Calc/Webpagequery.html;generic_HTML;generic_HTML
 dbase;Calc/dbase.DBF;calc_dBase;writer_Text_encoded
 ######################################################
 # D R A W
diff --git a/filter/source/config/fragments/filters/HTML.xcu 
b/filter/source/config/fragments/filters/HTML.xcu
index 853b32d..19c3412 100644
--- a/filter/source/config/fragments/filters/HTML.xcu
+++ b/filter/source/config/fragments/filters/HTML.xcu
@@ -4,7 +4,7 @@
         <prop oor:name="FilterService"/>
         <prop oor:name="UserData"><value>HTML</value></prop>
         <prop oor:name="FileFormatVersion"><value>0</value></prop>
-        <prop oor:name="Type"><value>writer_web_HTML</value></prop>
+        <prop oor:name="Type"><value>generic_HTML</value></prop>
         <prop oor:name="TemplateName"/>
         <prop 
oor:name="DocumentService"><value>com.sun.star.text.WebDocument</value></prop>
     </node>
diff --git a/filter/source/config/fragments/filters/HTML_MasterDoc.xcu 
b/filter/source/config/fragments/filters/HTML_MasterDoc.xcu
index edcec04..b17b501 100644
--- a/filter/source/config/fragments/filters/HTML_MasterDoc.xcu
+++ b/filter/source/config/fragments/filters/HTML_MasterDoc.xcu
@@ -1,6 +1,6 @@
     <node oor:name="HTML_MasterDoc" oor:op="replace">
         <prop oor:name="FileFormatVersion"><value>0</value></prop>
-        <prop oor:name="Type"><value>writer_web_HTML</value></prop>
+        <prop oor:name="Type"><value>generic_HTML</value></prop>
         <prop 
oor:name="DocumentService"><value>com.sun.star.text.GlobalDocument</value></prop>
         <prop oor:name="UIComponent"/>
         <prop oor:name="UserData"><value>HTML</value></prop>
diff --git a/filter/source/config/fragments/filters/HTML__StarCalc_.xcu 
b/filter/source/config/fragments/filters/HTML__StarCalc_.xcu
index 01d88c8..e4d3c6b 100644
--- a/filter/source/config/fragments/filters/HTML__StarCalc_.xcu
+++ b/filter/source/config/fragments/filters/HTML__StarCalc_.xcu
@@ -4,7 +4,7 @@
         <prop oor:name="FilterService"/>
         <prop oor:name="UserData"><value></value></prop>
         <prop oor:name="FileFormatVersion"><value>0</value></prop>
-        <prop oor:name="Type"><value>writer_web_HTML</value></prop>
+        <prop oor:name="Type"><value>generic_HTML</value></prop>
         <prop oor:name="TemplateName"/>
         <prop 
oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop>
     </node>
diff --git a/filter/source/config/fragments/filters/HTML__StarWriter_.xcu 
b/filter/source/config/fragments/filters/HTML__StarWriter_.xcu
index 285fb7d..412031d 100644
--- a/filter/source/config/fragments/filters/HTML__StarWriter_.xcu
+++ b/filter/source/config/fragments/filters/HTML__StarWriter_.xcu
@@ -4,7 +4,7 @@
         <prop oor:name="FilterService"/>
         <prop oor:name="UserData"><value>HTML</value></prop>
         <prop oor:name="FileFormatVersion"><value>0</value></prop>
-        <prop oor:name="Type"><value>writer_web_HTML</value></prop>
+        <prop oor:name="Type"><value>generic_HTML</value></prop>
         <prop oor:name="TemplateName"/>
         <prop 
oor:name="DocumentService"><value>com.sun.star.text.TextDocument</value></prop>
     </node>
diff --git a/filter/source/config/fragments/filters/calc_HTML_WebQuery.xcu 
b/filter/source/config/fragments/filters/calc_HTML_WebQuery.xcu
index cd9e434..e81ced8 100644
--- a/filter/source/config/fragments/filters/calc_HTML_WebQuery.xcu
+++ b/filter/source/config/fragments/filters/calc_HTML_WebQuery.xcu
@@ -4,7 +4,7 @@
         <prop oor:name="FilterService"/>
         <prop oor:name="UserData"><value></value></prop>
         <prop oor:name="FileFormatVersion"><value>0</value></prop>
-        <prop oor:name="Type"><value>writer_web_HTML</value></prop>
+        <prop oor:name="Type"><value>generic_HTML</value></prop>
         <prop oor:name="TemplateName"/>
         <prop 
oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop>
     </node>
diff --git a/filter/source/config/fragments/filters/writerglobal8_HTML.xcu 
b/filter/source/config/fragments/filters/writerglobal8_HTML.xcu
index 65bfdb5..b381b76 100644
--- a/filter/source/config/fragments/filters/writerglobal8_HTML.xcu
+++ b/filter/source/config/fragments/filters/writerglobal8_HTML.xcu
@@ -4,7 +4,7 @@
         <prop oor:name="FilterService"/>
         <prop oor:name="UserData"><value>HTML</value></prop>
         <prop oor:name="FileFormatVersion"><value>0</value></prop>
-        <prop oor:name="Type"><value>writer_web_HTML</value></prop>
+        <prop oor:name="Type"><value>generic_HTML</value></prop>
         <prop oor:name="TemplateName"/>
         <prop 
oor:name="DocumentService"><value>com.sun.star.text.GlobalDocument</value></prop>
         <prop oor:name="UIName">
diff --git a/filter/source/config/fragments/types/generic_HTML.xcu 
b/filter/source/config/fragments/types/generic_HTML.xcu
new file mode 100644
index 0000000..c0885f7
--- /dev/null
+++ b/filter/source/config/fragments/types/generic_HTML.xcu
@@ -0,0 +1,12 @@
+    <node oor:name="generic_HTML" oor:op="replace" >
+        <prop 
oor:name="DetectService"><value>com.sun.star.text.FormatDetector</value></prop>
+        <prop 
oor:name="URLPattern"><value>private:factory/swriter/web*</value></prop>
+        <prop oor:name="Extensions"><value>html htm</value></prop>
+        <prop oor:name="MediaType"><value>text/html</value></prop>
+        <prop oor:name="Preferred"><value>false</value></prop>
+        <prop oor:name="PreferredFilter"><value>HTML</value></prop>
+        <prop oor:name="UIName">
+            <value>HTML Document</value>
+        </prop>
+        <prop oor:name="ClipboardFormat"/>
+    </node>
diff --git a/filter/source/config/fragments/types/writer_web_HTML.xcu 
b/filter/source/config/fragments/types/writer_web_HTML.xcu
deleted file mode 100644
index a1d9a09..0000000
--- a/filter/source/config/fragments/types/writer_web_HTML.xcu
+++ /dev/null
@@ -1,12 +0,0 @@
-    <node oor:name="writer_web_HTML" oor:op="replace" >
-        <prop 
oor:name="DetectService"><value>com.sun.star.text.FormatDetector</value></prop>
-        <prop 
oor:name="URLPattern"><value>private:factory/swriter/web*</value></prop>
-        <prop oor:name="Extensions"><value>html htm</value></prop>
-        <prop oor:name="MediaType"><value>text/html</value></prop>
-        <prop oor:name="Preferred"><value>false</value></prop>
-        <prop oor:name="PreferredFilter"><value>HTML</value></prop>
-        <prop oor:name="UIName">
-            <value>HTML Document</value>
-        </prop>
-        <prop oor:name="ClipboardFormat"/>
-    </node>
diff --git a/sfx2/source/dialog/filtergrouping.cxx 
b/sfx2/source/dialog/filtergrouping.cxx
index 25f7a39..e91c512 100644
--- a/sfx2/source/dialog/filtergrouping.cxx
+++ b/sfx2/source/dialog/filtergrouping.cxx
@@ -999,7 +999,7 @@ namespace sfx2
         std::vector< ExportFilter >         aFilterGroup;
         Reference< XFilterGroupManager >    xFilterGroupManager( 
_rxFilterManager, UNO_QUERY );
         ::rtl::OUString                     sTypeName;
-        const ::rtl::OUString               sWriterHTMLType( 
DEFINE_CONST_OUSTRING("writer_web_HTML") );
+        const ::rtl::OUString               sWriterHTMLType( 
DEFINE_CONST_OUSTRING("generic_HTML") );
         const ::rtl::OUString               sGraphicHTMLType( 
DEFINE_CONST_OUSTRING("graphic_HTML") );
         const ::rtl::OUString               sXHTMLType( 
DEFINE_CONST_OUSTRING("XHTML_File") );
         const ::rtl::OUString               sPDFType( 
DEFINE_CONST_OUSTRING("pdf_Portable_Document_Format") );
diff --git a/sfx2/source/view/viewsh.cxx b/sfx2/source/view/viewsh.cxx
index d4cb20b..6b6b067 100644
--- a/sfx2/source/view/viewsh.cxx
+++ b/sfx2/source/view/viewsh.cxx
@@ -607,7 +607,7 @@ void SfxViewShell::ExecMisc_Impl( SfxRequest &rReq )
         // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
         case SID_WEBHTML:
         {
-            static const char HTML_DOCUMENT_TYPE[] = "writer_web_HTML";
+            static const char HTML_DOCUMENT_TYPE[] = "generic_HTML";
             static const char HTML_GRAPHIC_TYPE[]  = "graphic_HTML";
             const sal_Int32   FILTERFLAG_EXPORT    = 0x00000002;
 
diff --git a/wizards/com/sun/star/wizards/web/data/CGDocument.java 
b/wizards/com/sun/star/wizards/web/data/CGDocument.java
index 1eed684..7f30bac 100644
--- a/wizards/com/sun/star/wizards/web/data/CGDocument.java
+++ b/wizards/com/sun/star/wizards/web/data/CGDocument.java
@@ -264,16 +264,13 @@ public class CGDocument extends ConfigSetItem implements 
XMLProvider
         {
             return TypeDetection.NO_TYPE;
         }
+        if (media.startsWith("generic_HTML"))
+        {
+            return TypeDetection.HTML_DOC;
+        }
         if (media.startsWith("writer"))
         {
-            if (media.startsWith("writer_web_HTML"))
-            {
-                return TypeDetection.HTML_DOC;
-            }
-            else
-            {
-                return TypeDetection.WRITER_DOC;
-            }
+            return TypeDetection.WRITER_DOC;
         }
         else if (media.startsWith("calc"))
         {
diff --git a/wizards/com/sun/star/wizards/web/data/CGDocument.py 
b/wizards/com/sun/star/wizards/web/data/CGDocument.py
index 11f6dae..a5a4163 100644
--- a/wizards/com/sun/star/wizards/web/data/CGDocument.py
+++ b/wizards/com/sun/star/wizards/web/data/CGDocument.py
@@ -153,13 +153,10 @@ class CGDocument(ConfigGroup):
     def getDocType(self, media):
         if media == "":
             return NO_TYPE
-
-        if media.startswith("writer"):
-            if media.startswith("writer_web_HTML"):
-                return HTML_DOC
-            else:
-                return WRITER_DOC
-
+        elif media.startswith("generic_HTML"):
+            return HTML_DOC
+        elif media.startswith("writer"):
+            return WRITER_DOC
         elif media.startswith("calc"):
             return CALC_DOC
         elif media.startswith("draw"):
commit 552bebe6fa27fa58d07d87283a4b24e6052ab3d4
Author: Kohei Yoshida <[email protected]>
Date:   Tue May 22 12:55:22 2012 -0400

    When the caller specifies filter type, stick to it and don't overwrite it.
    
    Change-Id: I35a3efc506bbcc33ea4c3d2466929f8227dae102

diff --git a/filter/source/config/cache/typedetection.cxx 
b/filter/source/config/cache/typedetection.cxx
index 5b57dc9..47a06e1 100644
--- a/filter/source/config/cache/typedetection.cxx
+++ b/filter/source/config/cache/typedetection.cxx
@@ -143,9 +143,18 @@ TypeDetection::~TypeDetection()
     css::uno::Reference< css::util::XURLTransformer > 
xParser(m_xSMGR->createInstance(SERVICE_URLTRANSFORMER), css::uno::UNO_QUERY);
     xParser->parseStrict(aURL);
 
-    //*******************************************
-    // preselected filter, type or document service?
-    // use it as first "flat" detected type later!
+    rtl::OUString aSelectedFilter = stlDescriptor.getUnpackedValueOrDefault(
+        comphelper::MediaDescriptor::PROP_FILTERNAME(), rtl::OUString());
+    if (!aSelectedFilter.isEmpty())
+    {
+        // Caller specified the filter type.  Honor it.  Just get the default
+        // type for that filter, and bail out.
+        if (impl_validateAndSetFilterOnDescriptor(stlDescriptor, 
aSelectedFilter))
+            return 
stlDescriptor[comphelper::MediaDescriptor::PROP_TYPENAME()].get<rtl::OUString>();
+    }
+
+    // preselected type or document service? use it as first "flat" detected
+    // type later!
     FlatDetection lFlatTypes;
     impl_getPreselection(aURL, stlDescriptor, lFlatTypes);
 
@@ -682,10 +691,6 @@ void TypeDetection::impl_getPreselection(const 
css::util::URL&                aP
     if (!sSelectedType.isEmpty())
         impl_getPreselectionForType(sSelectedType, aParsedURL, rFlatTypes);
 
-    ::rtl::OUString sSelectedFilter = 
rDescriptor.getUnpackedValueOrDefault(::comphelper::MediaDescriptor::PROP_FILTERNAME(),
 ::rtl::OUString());
-    if (!sSelectedFilter.isEmpty())
-        impl_getPreselectionForFilter(sSelectedFilter, aParsedURL, rFlatTypes);
-
     ::rtl::OUString sSelectedDoc = 
rDescriptor.getUnpackedValueOrDefault(::comphelper::MediaDescriptor::PROP_DOCUMENTSERVICE(),
 ::rtl::OUString());
     if (!sSelectedDoc.isEmpty())
         impl_getPreselectionForDocumentService(sSelectedDoc, aParsedURL, 
rFlatTypes);
commit e5ace9ef5a0035e0fa1970903c056015aea81025
Author: Kohei Yoshida <[email protected]>
Date:   Tue May 22 12:05:44 2012 -0400

    Reduce indentation.
    
    Change-Id: Ie335ee44a347ab588dbf6cdeb38ef19246c1ad47

diff --git a/filter/source/config/cache/typedetection.hxx 
b/filter/source/config/cache/typedetection.hxx
index c7a18ef..c55d0c4 100644
--- a/filter/source/config/cache/typedetection.hxx
+++ b/filter/source/config/cache/typedetection.hxx
@@ -40,8 +40,7 @@
 //_______________________________________________
 // namespace
 
-namespace filter{
-    namespace config{
+namespace filter{ namespace config {
 
 namespace css = ::com::sun::star;
 
@@ -55,407 +54,406 @@ namespace css = ::com::sun::star;
 class TypeDetection : public ::cppu::ImplInheritanceHelper1< BaseContainer     
            ,
                                                              
css::document::XTypeDetection >
 {
-    //-------------------------------------------
-    // native interface
-
-    public:
-
-        //---------------------------------------
-        // ctor/dtor
-
-        /** @short  standard ctor to connect this interface wrapper to
-                    the global filter cache instance ...
-
-            @param  xSMGR
-                    reference to the uno service manager, which created this 
service instance.
-         */
-        TypeDetection(const css::uno::Reference< 
css::lang::XMultiServiceFactory >& xSMGR);
-
-        //---------------------------------------
-
-        /** @short  standard dtor.
-         */
-        virtual ~TypeDetection();
-
-    //-------------------------------------------
-    // private helper
-
-    private:
-
-        //---------------------------------------
-        /** TODO document me */
-        sal_Bool impl_getPreselectionForType(const ::rtl::OUString& 
sPreSelType,
-                                             const css::util::URL&  aParsedURL 
,
-                                                   FlatDetection&   rFlatTypes 
);
-
-        //---------------------------------------
-        /** TODO document me */
-        sal_Bool impl_getPreselectionForFilter(const ::rtl::OUString& 
sPreSelFilter,
-                                               const css::util::URL&  
aParsedURL   ,
-                                                     FlatDetection&   
rFlatTypes   );
-
-        //---------------------------------------
-        /** TODO document me */
-        sal_Bool impl_getPreselectionForDocumentService(const ::rtl::OUString& 
sPreSelDocumentService,
-                                                         const css::util::URL& 
aParsedURL            ,
-                                                               FlatDetection&  
rFlatTypes            );
-
-        //---------------------------------------
-
-        /** @short      check if a filter or a type was preselected inside the 
given
-                        MediaDescriptor and validate this information.
-
-            @descr      Only in case the preselected filter exists and its 
type registration
-                        seems to be usefully, it would be used realy as valid 
type detection
-                        result. This method doesnt make any deep detection 
here. It checks only
-                        if the preselection match to the URL by an URLPattern.
-                        This information has to be added to the given 
rFlatTypes list too.
-                        The outside code can use it to supress a deep 
detection then in general.
-                        Because pattern are defined as non detectable at all!
-
-            @param      pDescriptor
-                        provides any easy-to-use stl interface to the 
MediaDescriptor.
-                        Note : Its content will be adapted to returned result 
of this method.
-                        Means: The type/filter entries of it will be 
actualized or removed.
-
-            @param      rFlatTypes
-                        the preselected type (or the registered type of a 
preselected filter)
-                        will be added here as first(!) element. Further we 
have to provide the
-                        information, if this type match to the given URL by 
its URLPattern
-                        registration.
-         */
-        void impl_getPreselection(const css::util::URL&                
aParsedURL ,
-                                        ::comphelper::MediaDescriptor& 
rDescriptor,
-                                        FlatDetection&                 
rFlatTypes );
-
-        //---------------------------------------
-
-        /** @short      make a combined flat/deep type detection
-
-            @descr      It steps over all flat detected types (given by the 
parameter lFlatTypes),
-                        try it and search for most suitable one.
-                        The specified MediaDescriptor will be patched, so it 
contain
-                        the right values everytime. Using of any deep 
detection service
-                        can be enabled/disabled. And last but not least: If 
the results
-                        wont be realy clear (because a flat detected type has 
no deep
-                        detection service), a "sugested" type name will be 
returned as "rLastChance".
-                        It can be used after e.g. all well known deep 
detection services
-                        was used without getting any result. Then this 
"last-chance-type"
-                        should be returned. Of course using of it can fail too 
... but its a try :-)
-
-                        As an optimization - this method collects the names of 
all used deep
-                        detection services. This information can be usefull 
inside the may be
-                        afterwards called method "impl_detectTypeDeepOnly()"!
-
-            @param      rDescriptor
-                        provides any easy-to-use stl interface to the 
MediaDescriptor.
-                        Note : Its content will be adapted to returned result 
of this method.
-                        Means: The type/filter entries of it will be 
actualized or removed from it.
-
-            @param      lFlatTypes
-                        a list of all flat detected types, which should be 
checked here.
-                        No other types are allowed here!
-
-            @param      rLastChance
-                        the internal name of a "suggested type" ... (see 
before)
-                        Note: it will be reseted to an empty string 
everytimes. So
-                        a set value of "rLastChance" can be detected outside 
very easy.
-
-            @param      rUsedDetectors
-                        used as [out] parameter. It contains a list of names 
of all deep
-                        detection services, which was used inside this method.
-                        Such detectors can be ignored later if 
"impl_detectTypeDeepOnly()"
-                        is called.
-
-            @param      bAllowDeep
-                        enable/disable using of a might existing deep 
detection service.
-
-            @return     The internal name of a detected type.
-                        An empty value if detection failed. .... but see 
rLastChance
-                        for additional returns!
-         */
-        ::rtl::OUString impl_detectTypeFlatAndDeep(      
::comphelper::MediaDescriptor& rDescriptor   ,
-                                                   const FlatDetection&        
         lFlatTypes    ,
-                                                         sal_Bool              
         bAllowDeep    ,
-                                                         OUStringList&         
         rUsedDetectors,
-                                                         ::rtl::OUString&      
         rLastChance   );
-
-        //---------------------------------------
-
-        /** @short      make a deep type detection only
-
-            @descr      It steps over all well known deep detection services
-                        and check her results. The first positive result will 
be
-                        used for return. Its more a "try and error" algorithm 
then
-                        a real type detection and will be used if a flat 
detection
-                        cant work realy ... e.g. if the extension of an URL is
-                        missing or wrong.
-
-            @param      rDescriptor
-                        provides any easy-to-use stl interface to the 
MediaDescriptor.
-                        Note : Its content will be adapted to returned result 
of this method.
-                        Means: The type/filter entries of it will be 
actualized or removed from it.
-
-            @param      rUsedDetectors
-                        It contains a list of names of all deep detection 
services,
-                        which was already used inside the method 
"impl_detectTypeFlatAndDeep()"!
-                        Such detectors must be ignored here!
-
-            @return     The internal name of a detected type.
-                        An empty value if detection failed.
-         */
-        ::rtl::OUString impl_detectTypeDeepOnly(      
::comphelper::MediaDescriptor& rDescriptor   ,
-                                                const OUStringList&            
      rUsedDetectors);
-
-        //---------------------------------------
-
-        /** @short      seek a might existing stream to position 0.
-
-            @descr      This is an optinal action to be more robust
-                        in case any detect service doesnt make this seek ...
-                        Normaly it's part of any called detect service or 
filter ...
-                        but sometimes it's not done there.
-
-            @param      rDescriptor
-                        a stl representation of the MediaDescriptor as in/out 
parameter.
-         */
-        void impl_seekStreamToZero(comphelper::MediaDescriptor& rDescriptor);
-
-        //---------------------------------------
-
-        /** @short      make deep type detection for a specified
-                        detect service (threadsafe!).
-
-            @descr      It creates the right uno service, prepare the
-                        needed MediaDescriptor, call ths right interfaces,
-                        and return the results.
-
-            @attention  The results (means type and corresponding filter)
-                        are already part of the in/out parameter pDescriptor.
-                        (in case they was valid).
-
-            @param      sDetectService
-                        uno service name of the detect service.
-
-            @param      rDescriptor
-                        a stl representation of the MediaDescriptor as in/out 
parameter.
-         */
-        ::rtl::OUString impl_askDetectService(const ::rtl::OUString&           
    sDetectService,
-                                                    
::comphelper::MediaDescriptor& rDescriptor   );
-
-        //---------------------------------------
-
-        /** @short      try to find an interaction handler and
-                        ask him to select a possible filter for
-                        this unknown format.
-
-            @descr      If the user select a filter, it will be used as return 
value
-                        without further checking against the given file 
content!
-
-            @param      rDescriptor
-                        a stl representation of the MediaDescriptor as in/out 
parameter.
-
-            @return     [string]
-                        a valid type name or an empty string if user canceled 
interaction.
-         */
-        ::rtl::OUString 
impl_askUserForTypeAndFilterIfAllowed(::comphelper::MediaDescriptor& 
rDescriptor);
-
-        //---------------------------------------
-
-        /** @short      check if an input stream is already part of the
-                        given MediaDesciptor and creates a new one if 
neccessary.
-
-            @attention  This method does further something special!
-                        <ul>
-                            <li>
-                                If the given URL seem to be a streamable 
content, but creation of the stream
-                                failed (might by an IOException), this method 
throws an exception.
-                                (May be an existing interaction handler must 
be called here too ...)
-                                The whole detection must be interrupted then 
and the interface method queryTypeByDescriptor()
-                                must return an empty type name value.
-
-                                That prevent us against multiple handling of 
the same error more then ones
-                                (e.g. if we ask all detect services as 
fallback ...).
-                            </li>
-                            <li>
-                                In case the stream already exists inside the 
descriptor this method does nothing.
-                            </li>
-                            <li>
-                                In case the stream does not exists but can be 
created successfully, the stream will
-                                be added to the descriptor.
-                            </li>
-                        </ul>
-
-            @param      rDescriptor
-                        provides any easy-to-use stl interface to the 
MediaDescriptor.
-                        Note : Its content will be adapted to returned result 
of this method.
-                        Means: The stream will be added to it.
-
-            @throw      Any suitable exception if stream should be opened but 
operation was not sucessfull.
-                        Note: If an interactionHandler is part of the given 
descriptor too, it was already used.
-                        Means: let the exception pass trough the top most 
interface method!
-         */
-        void impl_openStream(::comphelper::MediaDescriptor& rDescriptor)
-            throw (css::uno::Exception);
-
-        //---------------------------------------
-
-        /** @short      validate the specified type and its relation ships
-                        and set all needed informations related to this type
-                        in the specified descriptor.
-
-            @descr      Related informations are: - corresponding filter
-                                                  - media type
-                                                  - ...
-
-            @param      rDescriptor
-                        provides access to the outside MediaDescriptor.
-
-            @param      sType
-                        the name of the type, which should be set on the 
descriptor.
-                        Can be empty to remove any related value from the 
descriptor!
-
-            @return     TRUE the specified type and its registrations was 
valid(!) and
-                        could be set on the descriptor.
-         */
-        sal_Bool impl_validateAndSetTypeOnDescriptor(      
::comphelper::MediaDescriptor& rDescriptor,
-                                                     const ::rtl::OUString&    
           sType      );
-
-        //---------------------------------------
-
-        /** @short      validate the specified filter and its relation ships
-                        and set all needed informations related to this filter
-                        in the specified descriptor.
-
-            @descr      Related informations are: - corresponding type
-                                                  - ...
-
-            @param      rDescriptor
-                        provides access to the outside MediaDescriptor.
-
-            @param      sFilter
-                        the name of the filter, which should be set on the 
descriptor.
-                        Can be empty to remove any related value from the 
descriptor!
-
-            @return     TRUE the specified type and its registrations was 
valid(!) and
-                        could be set on the descriptor.
-         */
-        sal_Bool impl_validateAndSetFilterOnDescriptor(      
::comphelper::MediaDescriptor& rDescriptor,
-                                                       const ::rtl::OUString&  
             sFilter    );
-
-        //---------------------------------------
-
-        /** @short      remove anythimng related to a TYPE/FILTER entry from 
the
-                        specified MediaDescriptor.
-
-            @descr      This method works together with 
impl_validateAndSetTypeOnDescriptor()/
-                        impl_validateAndSetFilterOnDescriptor(). All 
informations, which can be
-                        set by these two operations must be "removable" by 
this method.
-
-            @param      rDescriptor
-                        reference to the MediaDescriptor (represented by an 
easy-to-use
-                        stl interface!), which should be patched.
-         */
-        void 
impl_removeTypeFilterFromDescriptor(::comphelper::MediaDescriptor& rDescriptor);
-
-        //---------------------------------------
-
-        /** @short      search the best suitable filter for the given type
-                        and add it into the media descriptor.
-
-            @descr      Normaly this is a type detection only ...
-                        but for some special features we must overwrite our 
detection
-                        because a file must be loaded into a special (means 
preselected)
-                        application.
-
-                        E.g. CSV/TXT format are sometimes ugly to handle .-)
-
-                        Note: If the descriptor already include a filter
-                        (may be selected by a FilterSelect interaction or 
preselected
-                        by the user itself) ... we dont change that here !
-
-            @param      rDescriptor
-                        reference to the MediaDescriptor (represented by an 
easy-to-use
-                        stl interface!), which should be patched.
-
-            @param      sType
-                        the internal type name, where we search a filter for.
-                        Used as IN/OUT parameter so we can overrule the 
detection result for
-                        types too !
-
-            @note       #i60158#
-                        sometimes our text ascii and our csv filter cant work 
together.
-                        Then we overwrite our detection hardly.
-                        sType param is used as out parameter then too ... and
-                        rDescriptor will be changed by selecting another 
filter.
-                        (see code)
-         */
-        void impl_checkResultsAndAddBestFilter(::comphelper::MediaDescriptor& 
rDescriptor,
-                                               ::rtl::OUString&               
sType      );
-
-    //-------------------------------------------
-    // uno interface
-
-    public:
-
-        //---------------------------------------
-        // XTypeDetection
-
-        virtual ::rtl::OUString SAL_CALL queryTypeByURL(const ::rtl::OUString& 
sURL)
-            throw (css::uno::RuntimeException);
-
-        virtual ::rtl::OUString SAL_CALL 
queryTypeByDescriptor(css::uno::Sequence< css::beans::PropertyValue >& 
lDescriptor,
-                                                               sal_Bool        
                                 bAllowDeep )
-            throw (css::uno::RuntimeException);
-
-    //-------------------------------------------
-    // static uno helper!
-
-    public:
-
-        //---------------------------------------
-
-        /** @short  return the uno implementation name of this class.
-
-            @descr  Because this information is used at several places
-                    (and mostly an object instance of this class is not 
possible)
-                    its implemented as a static function!
-
-            @return The fix uno implementation name of this class.
-         */
-        static ::rtl::OUString impl_getImplementationName();
-
-        //---------------------------------------
-
-        /** @short  return the list of supported uno services of this class.
-
-            @descr  Because this information is used at several places
-                    (and mostly an object instance of this class is not 
possible)
-                    its implemented as a static function!
-
-            @return The fix list of uno services supported by this class.
-         */
-        static css::uno::Sequence< ::rtl::OUString > 
impl_getSupportedServiceNames();
-
-        //---------------------------------------
-
-        /** @short  return a new intsnace of this class.
-
-            @descr  This method is used by the uno service manager, to create
-                    a new instance of this service if needed.
-
-            @param  xSMGR
-                    reference to the uno service manager, which require
-                    this new instance. It should be passed to the new object
-                    so it can be used internaly to create own needed uno 
resources.
-
-            @return The new instance of this service as an uno reference.
-         */
-        static css::uno::Reference< css::uno::XInterface > 
impl_createInstance(const css::uno::Reference< css::lang::XMultiServiceFactory 
>& xSMGR);
+//-------------------------------------------
+// native interface
+
+public:
+
+    //---------------------------------------
+    // ctor/dtor
+
+    /** @short  standard ctor to connect this interface wrapper to
+                the global filter cache instance ...
+
+        @param  xSMGR
+                reference to the uno service manager, which created this 
service instance.
+     */
+    TypeDetection(const css::uno::Reference< css::lang::XMultiServiceFactory 
>& xSMGR);
+
+    //---------------------------------------
+
+    /** @short  standard dtor.
+     */
+    virtual ~TypeDetection();
+
+//-------------------------------------------
+// private helper
+
+private:
+
+    //---------------------------------------
+    /** TODO document me */
+    sal_Bool impl_getPreselectionForType(const ::rtl::OUString& sPreSelType,
+                                         const css::util::URL&  aParsedURL ,
+                                               FlatDetection&   rFlatTypes );
+
+    //---------------------------------------
+    /** TODO document me */
+    sal_Bool impl_getPreselectionForFilter(const ::rtl::OUString& 
sPreSelFilter,
+                                           const css::util::URL&  aParsedURL   
,
+                                                 FlatDetection&   rFlatTypes   
);
+
+    //---------------------------------------
+    /** TODO document me */
+    sal_Bool impl_getPreselectionForDocumentService(const ::rtl::OUString& 
sPreSelDocumentService,
+                                                     const css::util::URL& 
aParsedURL            ,
+                                                           FlatDetection&  
rFlatTypes            );
+
+    //---------------------------------------
+
+    /** @short      check if a filter or a type was preselected inside the 
given
+                    MediaDescriptor and validate this information.
+
+        @descr      Only in case the preselected filter exists and its type 
registration
+                    seems to be usefully, it would be used realy as valid type 
detection
+                    result. This method doesnt make any deep detection here. 
It checks only
+                    if the preselection match to the URL by an URLPattern.
+                    This information has to be added to the given rFlatTypes 
list too.
+                    The outside code can use it to supress a deep detection 
then in general.
+                    Because pattern are defined as non detectable at all!
+
+        @param      pDescriptor
+                    provides any easy-to-use stl interface to the 
MediaDescriptor.
+                    Note : Its content will be adapted to returned result of 
this method.
+                    Means: The type/filter entries of it will be actualized or 
removed.
+
+        @param      rFlatTypes
+                    the preselected type (or the registered type of a 
preselected filter)
+                    will be added here as first(!) element. Further we have to 
provide the
+                    information, if this type match to the given URL by its 
URLPattern
+                    registration.
+     */
+    void impl_getPreselection(const css::util::URL&                aParsedURL ,
+                                    ::comphelper::MediaDescriptor& rDescriptor,
+                                    FlatDetection&                 rFlatTypes 
);
+
+    //---------------------------------------
+
+    /** @short      make a combined flat/deep type detection
+
+        @descr      It steps over all flat detected types (given by the 
parameter lFlatTypes),
+                    try it and search for most suitable one.
+                    The specified MediaDescriptor will be patched, so it 
contain
+                    the right values everytime. Using of any deep detection 
service
+                    can be enabled/disabled. And last but not least: If the 
results
+                    wont be realy clear (because a flat detected type has no 
deep
+                    detection service), a "sugested" type name will be 
returned as "rLastChance".
+                    It can be used after e.g. all well known deep detection 
services
+                    was used without getting any result. Then this 
"last-chance-type"
+                    should be returned. Of course using of it can fail too ... 
but its a try :-)
+
+                    As an optimization - this method collects the names of all 
used deep
+                    detection services. This information can be usefull inside 
the may be
+                    afterwards called method "impl_detectTypeDeepOnly()"!
+
+        @param      rDescriptor
+                    provides any easy-to-use stl interface to the 
MediaDescriptor.
+                    Note : Its content will be adapted to returned result of 
this method.
+                    Means: The type/filter entries of it will be actualized or 
removed from it.
+
+        @param      lFlatTypes
+                    a list of all flat detected types, which should be checked 
here.
+                    No other types are allowed here!
+
+        @param      rLastChance
+                    the internal name of a "suggested type" ... (see before)
+                    Note: it will be reseted to an empty string everytimes. So
+                    a set value of "rLastChance" can be detected outside very 
easy.
+
+        @param      rUsedDetectors
+                    used as [out] parameter. It contains a list of names of 
all deep
+                    detection services, which was used inside this method.
+                    Such detectors can be ignored later if 
"impl_detectTypeDeepOnly()"
+                    is called.
+
+        @param      bAllowDeep
+                    enable/disable using of a might existing deep detection 
service.
+
+        @return     The internal name of a detected type.
+                    An empty value if detection failed. .... but see 
rLastChance
+                    for additional returns!
+     */
+    ::rtl::OUString impl_detectTypeFlatAndDeep(      
::comphelper::MediaDescriptor& rDescriptor   ,
+                                               const FlatDetection&            
     lFlatTypes    ,
+                                                     sal_Bool                  
     bAllowDeep    ,
+                                                     OUStringList&             
     rUsedDetectors,
+                                                     ::rtl::OUString&          
     rLastChance   );
+
+    //---------------------------------------
+
+    /** @short      make a deep type detection only
+
+        @descr      It steps over all well known deep detection services
+                    and check her results. The first positive result will be
+                    used for return. Its more a "try and error" algorithm then
+                    a real type detection and will be used if a flat detection
+                    cant work realy ... e.g. if the extension of an URL is
+                    missing or wrong.
+
+        @param      rDescriptor
+                    provides any easy-to-use stl interface to the 
MediaDescriptor.
+                    Note : Its content will be adapted to returned result of 
this method.
+                    Means: The type/filter entries of it will be actualized or 
removed from it.
+
+        @param      rUsedDetectors
+                    It contains a list of names of all deep detection services,
+                    which was already used inside the method 
"impl_detectTypeFlatAndDeep()"!
+                    Such detectors must be ignored here!
+
+        @return     The internal name of a detected type.
+                    An empty value if detection failed.
+     */
+    ::rtl::OUString impl_detectTypeDeepOnly(      
::comphelper::MediaDescriptor& rDescriptor   ,
+                                            const OUStringList&                
  rUsedDetectors);
+
+    //---------------------------------------
+
+    /** @short      seek a might existing stream to position 0.
+
+        @descr      This is an optinal action to be more robust
+                    in case any detect service doesnt make this seek ...
+                    Normaly it's part of any called detect service or filter 
...
+                    but sometimes it's not done there.
+
+        @param      rDescriptor
+                    a stl representation of the MediaDescriptor as in/out 
parameter.
+     */
+    void impl_seekStreamToZero(comphelper::MediaDescriptor& rDescriptor);
+
+    //---------------------------------------
+
+    /** @short      make deep type detection for a specified
+                    detect service (threadsafe!).
+
+        @descr      It creates the right uno service, prepare the
+                    needed MediaDescriptor, call ths right interfaces,
+                    and return the results.
+
+        @attention  The results (means type and corresponding filter)
+                    are already part of the in/out parameter pDescriptor.
+                    (in case they was valid).
+
+        @param      sDetectService
+                    uno service name of the detect service.
+
+        @param      rDescriptor
+                    a stl representation of the MediaDescriptor as in/out 
parameter.
+     */
+    ::rtl::OUString impl_askDetectService(const ::rtl::OUString&               
sDetectService,
+                                                ::comphelper::MediaDescriptor& 
rDescriptor   );
+
+    //---------------------------------------
+
+    /** @short      try to find an interaction handler and
+                    ask him to select a possible filter for
+                    this unknown format.
+
+        @descr      If the user select a filter, it will be used as return 
value
+                    without further checking against the given file content!
+
+        @param      rDescriptor
+                    a stl representation of the MediaDescriptor as in/out 
parameter.
+
+        @return     [string]
+                    a valid type name or an empty string if user canceled 
interaction.
+     */
+    ::rtl::OUString 
impl_askUserForTypeAndFilterIfAllowed(::comphelper::MediaDescriptor& 
rDescriptor);
+
+    //---------------------------------------
+
+    /** @short      check if an input stream is already part of the
+                    given MediaDesciptor and creates a new one if neccessary.
+
+        @attention  This method does further something special!
+                    <ul>
+                        <li>
+                            If the given URL seem to be a streamable content, 
but creation of the stream
+                            failed (might by an IOException), this method 
throws an exception.
+                            (May be an existing interaction handler must be 
called here too ...)
+                            The whole detection must be interrupted then and 
the interface method queryTypeByDescriptor()
+                            must return an empty type name value.
+
+                            That prevent us against multiple handling of the 
same error more then ones
+                            (e.g. if we ask all detect services as fallback 
...).
+                        </li>
+                        <li>
+                            In case the stream already exists inside the 
descriptor this method does nothing.
+                        </li>
+                        <li>
+                            In case the stream does not exists but can be 
created successfully, the stream will
+                            be added to the descriptor.
+                        </li>
+                    </ul>
+
+        @param      rDescriptor
+                    provides any easy-to-use stl interface to the 
MediaDescriptor.
+                    Note : Its content will be adapted to returned result of 
this method.
+                    Means: The stream will be added to it.
+
+        @throw      Any suitable exception if stream should be opened but 
operation was not sucessfull.
+                    Note: If an interactionHandler is part of the given 
descriptor too, it was already used.
+                    Means: let the exception pass trough the top most 
interface method!
+     */
+    void impl_openStream(::comphelper::MediaDescriptor& rDescriptor)
+        throw (css::uno::Exception);
+
+    //---------------------------------------
+
+    /** @short      validate the specified type and its relation ships
+                    and set all needed informations related to this type
+                    in the specified descriptor.
+
+        @descr      Related informations are: - corresponding filter
+                                              - media type
+                                              - ...
+
+        @param      rDescriptor
+                    provides access to the outside MediaDescriptor.
+
+        @param      sType
+                    the name of the type, which should be set on the 
descriptor.
+                    Can be empty to remove any related value from the 
descriptor!
+
+        @return     TRUE the specified type and its registrations was valid(!) 
and
+                    could be set on the descriptor.
+     */
+    sal_Bool impl_validateAndSetTypeOnDescriptor(      
::comphelper::MediaDescriptor& rDescriptor,
+                                                 const ::rtl::OUString&        
       sType      );
+
+    //---------------------------------------
+
+    /** @short      validate the specified filter and its relation ships
+                    and set all needed informations related to this filter
+                    in the specified descriptor.
+
+        @descr      Related informations are: - corresponding type
+                                              - ...
+
+        @param      rDescriptor
+                    provides access to the outside MediaDescriptor.
+
+        @param      sFilter
+                    the name of the filter, which should be set on the 
descriptor.
+                    Can be empty to remove any related value from the 
descriptor!
+
+        @return     TRUE the specified type and its registrations was valid(!) 
and
+                    could be set on the descriptor.
+     */
+    sal_Bool impl_validateAndSetFilterOnDescriptor(      
::comphelper::MediaDescriptor& rDescriptor,
+                                                   const ::rtl::OUString&      
         sFilter    );
+
+    //---------------------------------------
+
+    /** @short      remove anythimng related to a TYPE/FILTER entry from the
+                    specified MediaDescriptor.
+
+        @descr      This method works together with 
impl_validateAndSetTypeOnDescriptor()/
+                    impl_validateAndSetFilterOnDescriptor(). All informations, 
which can be
+                    set by these two operations must be "removable" by this 
method.
+
+        @param      rDescriptor
+                    reference to the MediaDescriptor (represented by an 
easy-to-use
+                    stl interface!), which should be patched.
+     */
+    void impl_removeTypeFilterFromDescriptor(::comphelper::MediaDescriptor& 
rDescriptor);
+
+    //---------------------------------------
+
+    /** @short      search the best suitable filter for the given type
+                    and add it into the media descriptor.
+
+        @descr      Normaly this is a type detection only ...
+                    but for some special features we must overwrite our 
detection
+                    because a file must be loaded into a special (means 
preselected)
+                    application.
+
+                    E.g. CSV/TXT format are sometimes ugly to handle .-)
+
+                    Note: If the descriptor already include a filter
+                    (may be selected by a FilterSelect interaction or 
preselected
+                    by the user itself) ... we dont change that here !
+
+        @param      rDescriptor
+                    reference to the MediaDescriptor (represented by an 
easy-to-use
+                    stl interface!), which should be patched.
+
+        @param      sType
+                    the internal type name, where we search a filter for.
+                    Used as IN/OUT parameter so we can overrule the detection 
result for
+                    types too !
+
+        @note       #i60158#
+                    sometimes our text ascii and our csv filter cant work 
together.
+                    Then we overwrite our detection hardly.
+                    sType param is used as out parameter then too ... and
+                    rDescriptor will be changed by selecting another filter.
+                    (see code)
+     */
+    void impl_checkResultsAndAddBestFilter(::comphelper::MediaDescriptor& 
rDescriptor,
+                                           ::rtl::OUString&               
sType      );
+
+//-------------------------------------------
+// uno interface
+
+public:
+
+    //---------------------------------------
+    // XTypeDetection
+
+    virtual ::rtl::OUString SAL_CALL queryTypeByURL(const ::rtl::OUString& 
sURL)
+        throw (css::uno::RuntimeException);
+
+    virtual ::rtl::OUString SAL_CALL queryTypeByDescriptor(css::uno::Sequence< 
css::beans::PropertyValue >& lDescriptor,
+                                                           sal_Bool            
                             bAllowDeep )
+        throw (css::uno::RuntimeException);
+
+//-------------------------------------------
+// static uno helper!
+
+public:
+
+    //---------------------------------------
+
+    /** @short  return the uno implementation name of this class.
+
+        @descr  Because this information is used at several places
+                (and mostly an object instance of this class is not possible)
+                its implemented as a static function!
+
+        @return The fix uno implementation name of this class.
+     */
+    static ::rtl::OUString impl_getImplementationName();
+
+    //---------------------------------------
+
+    /** @short  return the list of supported uno services of this class.
+
+        @descr  Because this information is used at several places
+                (and mostly an object instance of this class is not possible)
+                its implemented as a static function!
+
+        @return The fix list of uno services supported by this class.
+     */
+    static css::uno::Sequence< ::rtl::OUString > 
impl_getSupportedServiceNames();
+
+    //---------------------------------------
+
+    /** @short  return a new intsnace of this class.
+
+        @descr  This method is used by the uno service manager, to create
+                a new instance of this service if needed.
+
+        @param  xSMGR
+                reference to the uno service manager, which require
+                this new instance. It should be passed to the new object
+                so it can be used internaly to create own needed uno resources.
+
+        @return The new instance of this service as an uno reference.
+     */
+    static css::uno::Reference< css::uno::XInterface > 
impl_createInstance(const css::uno::Reference< css::lang::XMultiServiceFactory 
>& xSMGR);
 };
 
-    } // namespace config
-} // namespace filter
+}}
 
 #endif // __FILTER_CONFIG_TYPEDETECTION_HXX_
 
_______________________________________________
Libreoffice-commits mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to