chart2/inc/ChartView.hxx                                            |    2 
 chart2/source/controller/chartapiwrapper/Chart2ModelContact.cxx     |    2 
 chart2/source/controller/chartapiwrapper/Chart2ModelContact.hxx     |    2 
 chart2/source/controller/chartapiwrapper/GridWrapper.cxx            |    3 
 chart2/source/controller/chartapiwrapper/WrappedScaleProperty.cxx   |    3 
 chart2/source/controller/dialogs/ObjectNameProvider.cxx             |    4 
 chart2/source/controller/itemsetwrapper/MultipleChartConverters.cxx |    5 
 chart2/source/controller/main/ChartController_Insert.cxx            |   13 -
 chart2/source/controller/main/ChartController_Properties.cxx        |    2 
 chart2/source/controller/main/ObjectHierarchy.cxx                   |   11 -
 chart2/source/inc/Axis.hxx                                          |    8 
 chart2/source/inc/AxisHelper.hxx                                    |   28 ---
 chart2/source/inc/GridProperties.hxx                                |   12 -
 chart2/source/inc/chartview/ExplicitValueProvider.hxx               |    2 
 chart2/source/model/main/Axis.cxx                                   |   68 
+++-----
 chart2/source/model/main/GridProperties.cxx                         |    2 
 chart2/source/model/template/ChartTypeTemplate.cxx                  |    3 
 chart2/source/tools/AxisHelper.cxx                                  |   82 
++--------
 chart2/source/tools/ObjectIdentifier.cxx                            |    5 
 chart2/source/view/axes/VCartesianCoordinateSystem.cxx              |    1 
 chart2/source/view/axes/VCartesianGrid.cxx                          |    5 
 chart2/source/view/axes/VCartesianGrid.hxx                          |   10 -
 chart2/source/view/axes/VCoordinateSystem.cxx                       |    9 -
 chart2/source/view/axes/VPolarCoordinateSystem.cxx                  |    1 
 chart2/source/view/axes/VPolarGrid.cxx                              |    3 
 chart2/source/view/axes/VPolarGrid.hxx                              |    6 
 chart2/source/view/inc/VCoordinateSystem.hxx                        |    3 
 chart2/source/view/main/ChartView.cxx                               |    2 
 solenv/clang-format/excludelist                                     |    2 
 29 files changed, 131 insertions(+), 168 deletions(-)

New commits:
commit 92c504b5bd9ec81474704f563b23a2fcd422d1d1
Author:     Noel Grandin <[email protected]>
AuthorDate: Tue Mar 28 15:25:23 2023 +0200
Commit:     Noel Grandin <[email protected]>
CommitDate: Wed Mar 29 08:44:51 2023 +0000

    use more concrete types in chart2
    
    Change-Id: I818253350bd954d3a2a0f302493c896eb2e26994
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/149675
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <[email protected]>

diff --git a/chart2/inc/ChartView.hxx b/chart2/inc/ChartView.hxx
index ea41dc7d667d..9c80ba2ffb55 100644
--- a/chart2/inc/ChartView.hxx
+++ b/chart2/inc/ChartView.hxx
@@ -115,7 +115,7 @@ public:
 
     // ___ExplicitValueProvider___
     virtual bool getExplicitValuesForAxis(
-        css::uno::Reference< css::chart2::XAxis > xAxis
+        rtl::Reference< ::chart::Axis > xAxis
         , ExplicitScaleData&  rExplicitScale
         , ExplicitIncrementData& rExplicitIncrement ) override;
     virtual rtl::Reference< SvxShape >
diff --git a/chart2/source/controller/chartapiwrapper/Chart2ModelContact.cxx 
b/chart2/source/controller/chartapiwrapper/Chart2ModelContact.cxx
index f3ea07e23a3a..5bcd8857e625 100644
--- a/chart2/source/controller/chartapiwrapper/Chart2ModelContact.cxx
+++ b/chart2/source/controller/chartapiwrapper/Chart2ModelContact.cxx
@@ -139,7 +139,7 @@ rtl::Reference<SvxDrawPage> 
Chart2ModelContact::getDrawPage() const
 }
 
 void Chart2ModelContact::getExplicitValuesForAxis(
-    const Reference< XAxis > & xAxis,
+    const rtl::Reference< Axis > & xAxis,
     ExplicitScaleData &  rOutExplicitScale,
     ExplicitIncrementData & rOutExplicitIncrement )
 {
diff --git a/chart2/source/controller/chartapiwrapper/Chart2ModelContact.hxx 
b/chart2/source/controller/chartapiwrapper/Chart2ModelContact.hxx
index 505bc1e144e6..261f2686240a 100644
--- a/chart2/source/controller/chartapiwrapper/Chart2ModelContact.hxx
+++ b/chart2/source/controller/chartapiwrapper/Chart2ModelContact.hxx
@@ -70,7 +70,7 @@ public:
         case properties are 'auto'.
      */
     void getExplicitValuesForAxis(
-        const css::uno::Reference< css::chart2::XAxis > & xAxis,
+        const rtl::Reference< ::chart::Axis > & xAxis,
         ExplicitScaleData &  rOutExplicitScale,
         ExplicitIncrementData & rOutExplicitIncrement );
 
diff --git a/chart2/source/controller/chartapiwrapper/WrappedScaleProperty.cxx 
b/chart2/source/controller/chartapiwrapper/WrappedScaleProperty.cxx
index 0d91f70b7c2c..0edbf16bc9fb 100644
--- a/chart2/source/controller/chartapiwrapper/WrappedScaleProperty.cxx
+++ b/chart2/source/controller/chartapiwrapper/WrappedScaleProperty.cxx
@@ -20,6 +20,7 @@
 #include "WrappedScaleProperty.hxx"
 #include "Chart2ModelContact.hxx"
 #include <CommonConverters.hxx>
+#include <Axis.hxx>
 #include <AxisHelper.hxx>
 #include <com/sun/star/chart2/AxisType.hpp>
 #include <com/sun/star/chart2/XAxis.hpp>
@@ -349,7 +350,7 @@ Any WrappedScaleProperty::getPropertyValue( tScaleProperty 
eScaleProperty, const
 {
     Any aRet( m_aOuterValue );
 
-    Reference< chart2::XAxis > xAxis( xInnerPropertySet, uno::UNO_QUERY );
+    rtl::Reference< Axis > xAxis = 
dynamic_cast<Axis*>(xInnerPropertySet.get());
     OSL_ENSURE(xAxis.is(),"need an XAxis");
     if(!xAxis.is())
         return aRet;
diff --git a/chart2/source/controller/dialogs/ObjectNameProvider.cxx 
b/chart2/source/controller/dialogs/ObjectNameProvider.cxx
index f3356724db53..64e440a9e3c7 100644
--- a/chart2/source/controller/dialogs/ObjectNameProvider.cxx
+++ b/chart2/source/controller/dialogs/ObjectNameProvider.cxx
@@ -334,8 +334,8 @@ OUString ObjectNameProvider::getAxisName( 
std::u16string_view rObjectCID
 {
     OUString aRet;
 
-    Reference< XAxis > xAxis(
-        ObjectIdentifier::getObjectPropertySet( rObjectCID , xChartModel ), 
uno::UNO_QUERY );
+    rtl::Reference< ::chart::Axis > xAxis =
+        dynamic_cast<::chart::Axis*>(ObjectIdentifier::getObjectPropertySet( 
rObjectCID , xChartModel ).get());
 
     sal_Int32 nCooSysIndex = 0;
     sal_Int32 nDimensionIndex = 0;
diff --git a/chart2/source/controller/main/ChartController_Properties.cxx 
b/chart2/source/controller/main/ChartController_Properties.cxx
index dad8b3f9f72d..49dd90f793d5 100644
--- a/chart2/source/controller/main/ChartController_Properties.cxx
+++ b/chart2/source/controller/main/ChartController_Properties.cxx
@@ -157,7 +157,7 @@ wrapper::ItemConverter* createItemConverter(
                 ExplicitIncrementData aExplicitIncrement;
                 if( pExplicitValueProvider )
                     pExplicitValueProvider->getExplicitValuesForAxis(
-                        uno::Reference< XAxis >( xObjectProperties, 
uno::UNO_QUERY ),
+                        dynamic_cast< Axis* >( xObjectProperties.get() ),
                         aExplicitScale, aExplicitIncrement );
 
                 pItemConverter =  new wrapper::AxisItemConverter(
diff --git a/chart2/source/inc/AxisHelper.hxx b/chart2/source/inc/AxisHelper.hxx
index 442ab586af1a..5b9de9d9a1b0 100644
--- a/chart2/source/inc/AxisHelper.hxx
+++ b/chart2/source/inc/AxisHelper.hxx
@@ -115,10 +115,6 @@ public:
             const rtl::Reference< ::chart::Diagram >& xDiagram
             , sal_Int32 nIndex );
 
-    static rtl::Reference< ::chart::BaseCoordinateSystem >
-        getCoordinateSystemOfAxis(
-              const css::uno::Reference< css::chart2::XAxis >& xAxis
-            , const rtl::Reference< ::chart::Diagram >& xDiagram );
     static rtl::Reference< ::chart::BaseCoordinateSystem >
         getCoordinateSystemOfAxis(
               const rtl::Reference< ::chart::Axis >& xAxis
@@ -131,15 +127,12 @@ public:
         getAxis( sal_Int32 nDimensionIndex, sal_Int32 nAxisIndex
             , const rtl::Reference< ::chart::BaseCoordinateSystem >& xCooSys );
 
-    static rtl::Reference< ::chart::Axis >
-        getCrossingMainAxis( const css::uno::Reference< css::chart2::XAxis >& 
xAxis
-            , const rtl::Reference< ::chart::BaseCoordinateSystem >& xCooSys );
     static rtl::Reference< ::chart::Axis >
         getCrossingMainAxis( const rtl::Reference< ::chart::Axis >& xAxis
             , const rtl::Reference< ::chart::BaseCoordinateSystem >& xCooSys );
 
     static rtl::Reference< ::chart::Axis >
-        getParallelAxis( const css::uno::Reference< css::chart2::XAxis >& xAxis
+        getParallelAxis( const rtl::Reference< ::chart::Axis >& xAxis
             , const rtl::Reference< ::chart::Diagram >& xDiagram );
 
     static rtl::Reference< ::chart::GridProperties >
@@ -153,19 +146,11 @@ public:
               const rtl::Reference< ::chart::Axis >& xAxis
             , const rtl::Reference< ::chart::Diagram >& xDiagram );
 
-    static bool getIndicesForAxis(
-              const css::uno::Reference< css::chart2::XAxis >& xAxis
-            , const rtl::Reference< ::chart::BaseCoordinateSystem >& xCooSys
-            , sal_Int32& rOutDimensionIndex, sal_Int32& rOutAxisIndex );
     static bool getIndicesForAxis(
               const rtl::Reference< ::chart::Axis >& xAxis
             , const rtl::Reference< ::chart::BaseCoordinateSystem >& xCooSys
             , sal_Int32& rOutDimensionIndex, sal_Int32& rOutAxisIndex );
 
-    static bool getIndicesForAxis(
-              const css::uno::Reference< css::chart2::XAxis >& xAxis
-            , const rtl::Reference< ::chart::Diagram >& xDiagram
-            , sal_Int32& rOutCooSysIndex, sal_Int32& rOutDimensionIndex, 
sal_Int32& rOutAxisIndex );
     static bool getIndicesForAxis(
               const rtl::Reference< ::chart::Axis >& xAxis
             , const rtl::Reference< ::chart::Diagram >& xDiagram
diff --git a/chart2/source/inc/chartview/ExplicitValueProvider.hxx 
b/chart2/source/inc/chartview/ExplicitValueProvider.hxx
index d298c5e49e8a..4370e38cf1b8 100644
--- a/chart2/source/inc/chartview/ExplicitValueProvider.hxx
+++ b/chart2/source/inc/chartview/ExplicitValueProvider.hxx
@@ -56,7 +56,7 @@ public:
         If the given Axis could not be found or for another reason no correct 
output can be given false is returned.
      */
     virtual bool getExplicitValuesForAxis(
-        css::uno::Reference< css::chart2::XAxis > xAxis
+        rtl::Reference< ::chart::Axis > xAxis
         , ExplicitScaleData&  rExplicitScale
         , ExplicitIncrementData& rExplicitIncrement )=0;
 
diff --git a/chart2/source/tools/AxisHelper.cxx 
b/chart2/source/tools/AxisHelper.cxx
index b25b76e8e25c..3fe146d259bc 100644
--- a/chart2/source/tools/AxisHelper.cxx
+++ b/chart2/source/tools/AxisHelper.cxx
@@ -592,14 +592,6 @@ rtl::Reference< Axis > AxisHelper::getAxis( sal_Int32 
nDimensionIndex, sal_Int32
     return xRet;
 }
 
-rtl::Reference< Axis > AxisHelper::getCrossingMainAxis( const Reference< 
chart2::XAxis >& xAxis
-            , const rtl::Reference< BaseCoordinateSystem >& xCooSys )
-{
-    rtl::Reference< Axis > pAxis = dynamic_cast<Axis*>(xAxis.get());
-    assert(pAxis || !xAxis);
-    return getCrossingMainAxis(pAxis, xCooSys);
-}
-
 rtl::Reference< Axis > AxisHelper::getCrossingMainAxis( const rtl::Reference< 
Axis >& xAxis
             , const rtl::Reference< BaseCoordinateSystem >& xCooSys )
 {
@@ -620,7 +612,7 @@ rtl::Reference< Axis > AxisHelper::getCrossingMainAxis( 
const rtl::Reference< Ax
     return AxisHelper::getAxis( nDimensionIndex, 0, xCooSys );
 }
 
-rtl::Reference< Axis > AxisHelper::getParallelAxis( const Reference< XAxis >& 
xAxis
+rtl::Reference< Axis > AxisHelper::getParallelAxis( const rtl::Reference< Axis 
>& xAxis
             , const rtl::Reference< Diagram >& xDiagram )
 {
     try
@@ -716,16 +708,6 @@ sal_Int32 AxisHelper::getDimensionIndexOfAxis(
     return nDimensionIndex;
 }
 
-bool AxisHelper::getIndicesForAxis(
-              const Reference< chart2::XAxis >& xAxis
-            , const rtl::Reference< BaseCoordinateSystem >& xCooSys
-            , sal_Int32& rOutDimensionIndex, sal_Int32& rOutAxisIndex )
-{
-    rtl::Reference< Axis > pAxis = dynamic_cast<Axis*>(xAxis.get());
-    assert(pAxis || !xAxis);
-    return getIndicesForAxis(pAxis, xCooSys, rOutDimensionIndex, 
rOutAxisIndex);
-}
-
 bool AxisHelper::getIndicesForAxis(
               const rtl::Reference< Axis >& xAxis
             , const rtl::Reference< BaseCoordinateSystem >& xCooSys
@@ -758,14 +740,6 @@ bool AxisHelper::getIndicesForAxis(
     return false;
 }
 
-bool AxisHelper::getIndicesForAxis( const Reference< chart2::XAxis >& xAxis, 
const rtl::Reference< Diagram >& xDiagram
-            , sal_Int32& rOutCooSysIndex, sal_Int32& rOutDimensionIndex, 
sal_Int32& rOutAxisIndex )
-{
-    rtl::Reference< Axis > pAxis = dynamic_cast<Axis*>(xAxis.get());
-    assert(pAxis || !xAxis);
-    return getIndicesForAxis(pAxis, xDiagram, rOutCooSysIndex, 
rOutDimensionIndex, rOutAxisIndex);
-}
-
 bool AxisHelper::getIndicesForAxis( const rtl::Reference< Axis >& xAxis, const 
rtl::Reference< Diagram >& xDiagram
             , sal_Int32& rOutCooSysIndex, sal_Int32& rOutDimensionIndex, 
sal_Int32& rOutAxisIndex )
 {
@@ -1001,15 +975,6 @@ bool AxisHelper::changeVisibilityOfGrids( const 
rtl::Reference< Diagram >& xDiag
     return bChanged;
 }
 
-rtl::Reference< BaseCoordinateSystem > AxisHelper::getCoordinateSystemOfAxis(
-              const Reference< XAxis >& xAxis
-            , const rtl::Reference< Diagram >& xDiagram )
-{
-    rtl::Reference< Axis > pAxis = dynamic_cast<Axis*>(xAxis.get());
-    assert(pAxis || !xAxis);
-    return getCoordinateSystemOfAxis(pAxis, xDiagram);
-}
-
 rtl::Reference< BaseCoordinateSystem > AxisHelper::getCoordinateSystemOfAxis(
               const rtl::Reference< Axis >& xAxis
             , const rtl::Reference< Diagram >& xDiagram )
diff --git a/chart2/source/tools/ObjectIdentifier.cxx 
b/chart2/source/tools/ObjectIdentifier.cxx
index 5caccd7a8f8e..008e46ff845b 100644
--- a/chart2/source/tools/ObjectIdentifier.cxx
+++ b/chart2/source/tools/ObjectIdentifier.cxx
@@ -330,7 +330,7 @@ OUString 
ObjectIdentifier::createClassifiedIdentifierForObject(
         }
 
         //axis
-        Reference< XAxis > xAxis( xObject, uno::UNO_QUERY );
+        rtl::Reference< Axis > xAxis = dynamic_cast<Axis*>( xObject.get() );
         if( xAxis.is() )
         {
             rtl::Reference< BaseCoordinateSystem > xCooSys( 
AxisHelper::getCoordinateSystemOfAxis( xAxis, ChartModelHelper::findDiagram( 
xChartModel ) ) );
diff --git a/chart2/source/view/main/ChartView.cxx 
b/chart2/source/view/main/ChartView.cxx
index fdc75aa155e0..449c3920379f 100644
--- a/chart2/source/view/main/ChartView.cxx
+++ b/chart2/source/view/main/ChartView.cxx
@@ -780,7 +780,7 @@ awt::Rectangle ChartView::impl_createDiagramAndContent( 
const CreateShapeParam2D
 }
 
 bool ChartView::getExplicitValuesForAxis(
-                     uno::Reference< XAxis > xAxis
+                     rtl::Reference< Axis > xAxis
                      , ExplicitScaleData&  rExplicitScale
                      , ExplicitIncrementData& rExplicitIncrement )
 {
commit 5e482317a0b140b11220554753e30ccfd53385ee
Author:     Noel Grandin <[email protected]>
AuthorDate: Tue Mar 28 15:00:11 2023 +0200
Commit:     Noel Grandin <[email protected]>
CommitDate: Wed Mar 29 08:44:44 2023 +0000

    use more concrete types in chart2
    
    Change-Id: Ifd3bce5fc22371559203da673ca98913bc742c21
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/149674
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <[email protected]>

diff --git a/chart2/source/controller/chartapiwrapper/GridWrapper.cxx 
b/chart2/source/controller/chartapiwrapper/GridWrapper.cxx
index cae43580d4b9..c6f7317cf415 100644
--- a/chart2/source/controller/chartapiwrapper/GridWrapper.cxx
+++ b/chart2/source/controller/chartapiwrapper/GridWrapper.cxx
@@ -22,6 +22,7 @@
 #include "Chart2ModelContact.hxx"
 #include <AxisIndexDefines.hxx>
 #include <BaseCoordinateSystem.hxx>
+#include <GridProperties.hxx>
 
 #include <LinePropertiesHelper.hxx>
 #include <UserDefinedProperties.hxx>
@@ -113,7 +114,7 @@ Reference< beans::XPropertySet > 
GridWrapper::getInnerPropertySet()
         getDimensionAndSubGridBool( m_eType, nDimensionIndex, bSubGrid );
 
         sal_Int32 nSubGridIndex = bSubGrid ? 0 : -1;
-        xRet.set( AxisHelper::getGridProperties( xCooSys , nDimensionIndex, 
MAIN_AXIS_INDEX, nSubGridIndex ) );
+        xRet = AxisHelper::getGridProperties( xCooSys , nDimensionIndex, 
MAIN_AXIS_INDEX, nSubGridIndex );
     }
     catch( const uno::Exception & )
     {
diff --git 
a/chart2/source/controller/itemsetwrapper/MultipleChartConverters.cxx 
b/chart2/source/controller/itemsetwrapper/MultipleChartConverters.cxx
index 558b028271bc..bfd5b3ccc827 100644
--- a/chart2/source/controller/itemsetwrapper/MultipleChartConverters.cxx
+++ b/chart2/source/controller/itemsetwrapper/MultipleChartConverters.cxx
@@ -28,6 +28,7 @@
 #include <ChartModel.hxx>
 #include <Diagram.hxx>
 #include <DataSeries.hxx>
+#include <GridProperties.hxx>
 #include <TitleHelper.hxx>
 #include <TitleItemConverter.hxx>
 #include <Axis.hxx>
@@ -79,8 +80,8 @@ AllGridItemConverter::AllGridItemConverter(
         : MultipleItemConverter( rItemPool )
 {
     rtl::Reference< Diagram > xDiagram( ChartModelHelper::findDiagram( 
xChartModel ) );
-    const Sequence< Reference< beans::XPropertySet > > aElementList( 
AxisHelper::getAllGrids( xDiagram ) );
-    for( Reference< beans::XPropertySet > const & xObjectProperties : 
aElementList )
+    std::vector< rtl::Reference< GridProperties > > aElementList( 
AxisHelper::getAllGrids( xDiagram ) );
+    for( rtl::Reference< GridProperties > const & xObjectProperties : 
aElementList )
     {
         m_aConverters.emplace_back( new 
::chart::wrapper::GraphicPropertyItemConverter(
                                         xObjectProperties, rItemPool, 
rDrawModel, xNamedPropertyContainerFactory,
diff --git a/chart2/source/controller/main/ChartController_Insert.cxx 
b/chart2/source/controller/main/ChartController_Insert.cxx
index 9ffae0d2bebc..60b059ceffa1 100644
--- a/chart2/source/controller/main/ChartController_Insert.cxx
+++ b/chart2/source/controller/main/ChartController_Insert.cxx
@@ -35,6 +35,7 @@
 #include <DataSeries.hxx>
 #include <DiagramHelper.hxx>
 #include <Diagram.hxx>
+#include <GridProperties.hxx>
 #include <chartview/DrawModelWrapper.hxx>
 #include <chartview/ChartSfxItemIds.hxx>
 #include <NumberFormatterWrapper.hxx>
@@ -901,7 +902,7 @@ void ChartController::executeDispatch_InsertMajorGrid()
         rtl::Reference< Axis > xAxis = ObjectIdentifier::getAxisForCID( 
m_aSelection.getSelectedCID(), getChartModel() );
         if( xAxis.is() )
         {
-            AxisHelper::makeGridVisible( xAxis->getGridProperties() );
+            AxisHelper::makeGridVisible( xAxis->getGridProperties2() );
             aUndoGuard.commit();
         }
     }
@@ -923,7 +924,7 @@ void ChartController::executeDispatch_DeleteMajorGrid()
         rtl::Reference< Axis > xAxis = ObjectIdentifier::getAxisForCID( 
m_aSelection.getSelectedCID(), getChartModel() );
         if( xAxis.is() )
         {
-            AxisHelper::makeGridInvisible( xAxis->getGridProperties() );
+            AxisHelper::makeGridInvisible( xAxis->getGridProperties2() );
             aUndoGuard.commit();
         }
     }
@@ -945,8 +946,8 @@ void ChartController::executeDispatch_InsertMinorGrid()
         rtl::Reference< Axis > xAxis = ObjectIdentifier::getAxisForCID( 
m_aSelection.getSelectedCID(), getChartModel() );
         if( xAxis.is() )
         {
-            const Sequence< Reference< beans::XPropertySet > > aSubGrids( 
xAxis->getSubGridProperties() );
-            for( Reference< beans::XPropertySet > const & props : aSubGrids)
+            std::vector< rtl::Reference< ::chart::GridProperties > > 
aSubGrids( xAxis->getSubGridProperties2() );
+            for( rtl::Reference< GridProperties > const & props : aSubGrids)
                 AxisHelper::makeGridVisible( props );
             aUndoGuard.commit();
         }
@@ -969,8 +970,8 @@ void ChartController::executeDispatch_DeleteMinorGrid()
         rtl::Reference< Axis > xAxis = ObjectIdentifier::getAxisForCID( 
m_aSelection.getSelectedCID(), getChartModel() );
         if( xAxis.is() )
         {
-            const Sequence< Reference< beans::XPropertySet > > aSubGrids( 
xAxis->getSubGridProperties() );
-            for( Reference< beans::XPropertySet > const & props : aSubGrids)
+            std::vector< rtl::Reference< ::chart::GridProperties > > 
aSubGrids( xAxis->getSubGridProperties2() );
+            for( rtl::Reference< ::chart::GridProperties > const & props : 
aSubGrids)
                 AxisHelper::makeGridInvisible( props );
             aUndoGuard.commit();
         }
diff --git a/chart2/source/controller/main/ObjectHierarchy.cxx 
b/chart2/source/controller/main/ObjectHierarchy.cxx
index 9e7c5577107c..6ca73a9e43ac 100644
--- a/chart2/source/controller/main/ObjectHierarchy.cxx
+++ b/chart2/source/controller/main/ObjectHierarchy.cxx
@@ -32,6 +32,7 @@
 #include <ChartModel.hxx>
 #include <DataSeries.hxx>
 #include <DataSeriesHelper.hxx>
+#include <GridProperties.hxx>
 #include <LegendHelper.hxx>
 #include <chartview/DrawModelWrapper.hxx>
 #include <unonames.hxx>
@@ -258,19 +259,17 @@ void ObjectHierarchy::createAxesTree(
             lcl_addAxisTitle( xAxis, rContainer, xChartDoc );
         }
 
-        Reference< beans::XPropertySet > xGridProperties( 
xAxis->getGridProperties() );
+        rtl::Reference< ::chart::GridProperties > xGridProperties( 
xAxis->getGridProperties2() );
         if( AxisHelper::isGridVisible( xGridProperties ) )
         {
             //main grid
             rContainer.emplace_back( 
ObjectIdentifier::createClassifiedIdentifierForGrid( xAxis, xChartDoc ) );
         }
 
-        Sequence< Reference< beans::XPropertySet > > aSubGrids( 
xAxis->getSubGridProperties() );
-        sal_Int32 nSubGrid = 0;
-        for( nSubGrid = 0; nSubGrid < aSubGrids.getLength(); ++nSubGrid )
+        std::vector< rtl::Reference< ::chart::GridProperties > > aSubGrids( 
xAxis->getSubGridProperties2() );
+        for( size_t nSubGrid = 0; nSubGrid < aSubGrids.size(); ++nSubGrid )
         {
-            Reference< beans::XPropertySet > xSubGridProperties( 
aSubGrids[nSubGrid] );
-            if( AxisHelper::isGridVisible( xSubGridProperties ) )
+            if( AxisHelper::isGridVisible( aSubGrids[nSubGrid] ) )
             {
                 //sub grid
                 rContainer.emplace_back( 
ObjectIdentifier::createClassifiedIdentifierForGrid( xAxis, xChartDoc, nSubGrid 
) );
diff --git a/chart2/source/inc/Axis.hxx b/chart2/source/inc/Axis.hxx
index db064e2d682b..8329ac7365f9 100644
--- a/chart2/source/inc/Axis.hxx
+++ b/chart2/source/inc/Axis.hxx
@@ -31,6 +31,7 @@
 
 namespace chart
 {
+class GridProperties;
 class Title;
 
 namespace impl
@@ -105,6 +106,9 @@ public:
     rtl::Reference< ::chart::Title > getTitleObject2() const;
     void setTitleObject( const rtl::Reference< ::chart::Title >& xNewTitle );
 
+    rtl::Reference< ::chart::GridProperties > getGridProperties2();
+    std::vector< rtl::Reference< ::chart::GridProperties > > 
getSubGridProperties2();
+
 private:
     // ____ XModifyListener ____
     virtual void SAL_CALL modified(
@@ -126,9 +130,9 @@ private:
 
     css::chart2::ScaleData             m_aScaleData;
 
-    css::uno::Reference< css::beans::XPropertySet >     m_xGrid;
+    rtl::Reference< ::chart::GridProperties >     m_xGrid;
 
-    css::uno::Sequence< css::uno::Reference< css::beans::XPropertySet > >     
m_aSubGridProperties;
+    std::vector< rtl::Reference< ::chart::GridProperties > >     
m_aSubGridProperties;
 
     rtl::Reference< ::chart::Title >          m_xTitle;
 };
diff --git a/chart2/source/inc/AxisHelper.hxx b/chart2/source/inc/AxisHelper.hxx
index 65afc65faaa4..442ab586af1a 100644
--- a/chart2/source/inc/AxisHelper.hxx
+++ b/chart2/source/inc/AxisHelper.hxx
@@ -42,6 +42,7 @@ class Axis;
 class BaseCoordinateSystem;
 class ChartType;
 class Diagram;
+class GridProperties;
 
 class OOO_DLLPUBLIC_CHARTTOOLS AxisHelper
 {
@@ -97,17 +98,17 @@ public:
                 , const rtl::Reference< ::chart::Diagram >& xDiagram );
 
     static void makeAxisVisible( const rtl::Reference< ::chart::Axis >& xAxis 
);
-    static void makeGridVisible( const css::uno::Reference< 
css::beans::XPropertySet >& xGridProperties );
+    static void makeGridVisible( const rtl::Reference< ::chart::GridProperties 
>& xGridProperties );
 
     static void makeAxisInvisible( const rtl::Reference< ::chart::Axis >& 
xAxis );
-    static void makeGridInvisible( const css::uno::Reference< 
css::beans::XPropertySet >& xGridProperties );
+    static void makeGridInvisible( const rtl::Reference< 
::chart::GridProperties >& xGridProperties );
 
     static void hideAxisIfNoDataIsAttached( const rtl::Reference< 
::chart::Axis >& xAxis
                                           , const rtl::Reference< 
::chart::Diagram >& xDiagram);
 
     SAL_DLLPRIVATE static bool areAxisLabelsVisible( const rtl::Reference< 
::chart::Axis >& xAxisProperties );
     static bool isAxisVisible( const rtl::Reference< ::chart::Axis >& xAxis );
-    static bool isGridVisible( const css::uno::Reference< 
css::beans::XPropertySet >& xGridProperties );
+    static bool isGridVisible( const rtl::Reference< ::chart::GridProperties 
>& xGridProperties );
 
     static rtl::Reference< ::chart::BaseCoordinateSystem >
         getCoordinateSystemByIndex(
@@ -141,7 +142,7 @@ public:
         getParallelAxis( const css::uno::Reference< css::chart2::XAxis >& xAxis
             , const rtl::Reference< ::chart::Diagram >& xDiagram );
 
-    static css::uno::Reference< css::beans::XPropertySet >
+    static rtl::Reference< ::chart::GridProperties >
         getGridProperties( const rtl::Reference< ::chart::BaseCoordinateSystem 
>& xCooSys
                 , sal_Int32 nDimensionIndex
                 , sal_Int32 nAxisIndex //0: Primary axis, 1: secondary axis
@@ -184,7 +185,7 @@ public:
             getAllAxesOfCoordinateSystem( const rtl::Reference< 
::chart::BaseCoordinateSystem >& xCooSys
             , bool bOnlyVisible = false );
 
-    static css::uno::Sequence< css::uno::Reference< css::beans::XPropertySet > 
>
+    static std::vector< rtl::Reference< ::chart::GridProperties > >
             getAllGrids( const rtl::Reference< ::chart::Diagram >& xDiagram );
 
     static void getAxisOrGridPossibilities( css::uno::Sequence< sal_Bool >& 
rPossibilityList
diff --git a/chart2/source/model/main/GridProperties.hxx 
b/chart2/source/inc/GridProperties.hxx
similarity index 96%
rename from chart2/source/model/main/GridProperties.hxx
rename to chart2/source/inc/GridProperties.hxx
index 930ea9c90674..e5264a1b2fe0 100644
--- a/chart2/source/model/main/GridProperties.hxx
+++ b/chart2/source/inc/GridProperties.hxx
@@ -22,9 +22,9 @@
 #include <comphelper/uno3.hxx>
 #include <com/sun/star/lang/XServiceInfo.hpp>
 #include <com/sun/star/util/XCloneable.hpp>
-#include <ModifyListenerHelper.hxx>
+#include "ModifyListenerHelper.hxx"
 
-#include <OPropertySet.hxx>
+#include "OPropertySet.hxx"
 
 namespace chart
 {
@@ -39,12 +39,13 @@ typedef ::cppu::WeakImplHelper<
     GridProperties_Base;
 }
 
-class GridProperties final :
+class OOO_DLLPUBLIC_CHARTTOOLS GridProperties final :
         public impl::GridProperties_Base,
         public ::property::OPropertySet
 {
 public:
     explicit GridProperties();
+    explicit GridProperties( const GridProperties & rOther );
     virtual ~GridProperties() override;
 
     /// XServiceInfo declarations
@@ -57,9 +58,6 @@ public:
     /// merge XTypeProvider implementations
      DECLARE_XTYPEPROVIDER()
 
-private:
-    explicit GridProperties( const GridProperties & rOther );
-
     // ____ OPropertySet ____
     virtual void GetDefaultValue( sal_Int32 nHandle, css::uno::Any& rAny ) 
const override;
 
@@ -78,6 +76,8 @@ private:
     virtual void SAL_CALL removeModifyListener(
         const css::uno::Reference< css::util::XModifyListener >& aListener ) 
override;
 
+private:
+
     // ____ XModifyListener ____
     virtual void SAL_CALL modified(
         const css::lang::EventObject& aEvent ) override;
diff --git a/chart2/source/model/main/Axis.cxx 
b/chart2/source/model/main/Axis.cxx
index 923eaf0416d0..6ee948968369 100644
--- a/chart2/source/model/main/Axis.cxx
+++ b/chart2/source/model/main/Axis.cxx
@@ -18,7 +18,7 @@
  */
 
 #include <Axis.hxx>
-#include "GridProperties.hxx"
+#include <GridProperties.hxx>
 #include <CharacterProperties.hxx>
 #include <LinePropertiesHelper.hxx>
 #include <UserDefinedProperties.hxx>
@@ -258,31 +258,16 @@ const ::chart::tPropertyValueMap &  StaticAxisDefaults()
     return aPropHelper;
 };
 
-typedef uno::Reference< beans::XPropertySet > lcl_tSubGridType;
-
-void lcl_CloneSubGrids(
-    const uno::Sequence< lcl_tSubGridType > & rSource, uno::Sequence< 
lcl_tSubGridType > & rDestination )
+std::vector< rtl::Reference< ::chart::GridProperties > > lcl_CloneSubGrids(
+    const std::vector< rtl::Reference< ::chart::GridProperties > > & rSource )
 {
-    rDestination.realloc( rSource.getLength());
-    lcl_tSubGridType * pDestBegin = rDestination.getArray();
-    lcl_tSubGridType * pDestEnd   = pDestBegin + rDestination.getLength();
-    lcl_tSubGridType * pDestIt    = pDestBegin;
-
-    for( Reference< beans::XPropertySet > const & i : rSource )
+    std::vector< rtl::Reference< ::chart::GridProperties > > aDestination;
+    aDestination.reserve( rSource.size());
+    for( rtl::Reference< ::chart::GridProperties > const & i : rSource )
     {
-        Reference< beans::XPropertySet > xSubGrid( i );
-        if( xSubGrid.is())
-        {
-            Reference< util::XCloneable > xCloneable( xSubGrid, uno::UNO_QUERY 
);
-            if( xCloneable.is())
-                xSubGrid.set( xCloneable->createClone(), uno::UNO_QUERY );
-        }
-
-        (*pDestIt) = xSubGrid;
-        OSL_ASSERT( pDestIt != pDestEnd );
-        ++pDestIt;
+        aDestination.push_back(new ::chart::GridProperties(*i));
     }
-    OSL_ASSERT( pDestIt == pDestEnd );
+    return aDestination;
 }
 
 } // anonymous namespace
@@ -314,16 +299,17 @@ Axis::Axis( const Axis & rOther ) :
     m_xModifyEventForwarder( new ModifyEventForwarder() ),
     m_aScaleData( rOther.m_aScaleData )
 {
-    m_xGrid.set( CloneHelper::CreateRefClone< beans::XPropertySet >()( 
rOther.m_xGrid ));
+    if (rOther.m_xGrid)
+        m_xGrid = new ::chart::GridProperties(*rOther.m_xGrid);
     if( m_xGrid.is())
         ModifyListenerHelper::addListener( m_xGrid, m_xModifyEventForwarder );
 
     if( m_aScaleData.Categories.is())
         ModifyListenerHelper::addListener( m_aScaleData.Categories, 
m_xModifyEventForwarder );
 
-    if( rOther.m_aSubGridProperties.hasElements() )
-        lcl_CloneSubGrids( rOther.m_aSubGridProperties, m_aSubGridProperties );
-    ModifyListenerHelper::addListenerToAllSequenceElements( 
m_aSubGridProperties, m_xModifyEventForwarder );
+    if( !rOther.m_aSubGridProperties.empty() )
+        m_aSubGridProperties = lcl_CloneSubGrids( rOther.m_aSubGridProperties 
);
+    ModifyListenerHelper::addListenerToAllElements( m_aSubGridProperties, 
m_xModifyEventForwarder );
 
     if ( rOther.m_xTitle )
         m_xTitle = new Title( *rOther.m_xTitle );
@@ -343,7 +329,7 @@ Axis::~Axis()
     try
     {
         ModifyListenerHelper::removeListener( m_xGrid, m_xModifyEventForwarder 
);
-        ModifyListenerHelper::removeListenerFromAllSequenceElements( 
m_aSubGridProperties, m_xModifyEventForwarder );
+        ModifyListenerHelper::removeListenerFromAllElements( 
m_aSubGridProperties, m_xModifyEventForwarder );
         ModifyListenerHelper::removeListener( m_xTitle, 
m_xModifyEventForwarder );
         if( m_aScaleData.Categories.is())
         {
@@ -356,7 +342,7 @@ Axis::~Axis()
         DBG_UNHANDLED_EXCEPTION("chart2");
     }
 
-    m_aSubGridProperties.realloc(0);
+    m_aSubGridProperties.clear();
     m_xGrid = nullptr;
     m_xTitle = nullptr;
 }
@@ -365,32 +351,31 @@ void Axis::AllocateSubGrids()
 {
     Reference< util::XModifyListener > xModifyEventForwarder;
     Reference< lang::XEventListener > xEventListener;
-    std::vector< Reference< beans::XPropertySet > > aOldBroadcasters;
-    std::vector< Reference< beans::XPropertySet > > aNewBroadcasters;
+    std::vector< rtl::Reference< GridProperties > > aOldBroadcasters;
+    std::vector< rtl::Reference< GridProperties > > aNewBroadcasters;
     {
         MutexGuard aGuard( m_aMutex );
         xModifyEventForwarder = m_xModifyEventForwarder;
         xEventListener = this;
 
         sal_Int32 nNewSubIncCount = 
m_aScaleData.IncrementData.SubIncrements.getLength();
-        sal_Int32 nOldSubIncCount = m_aSubGridProperties.getLength();
+        sal_Int32 nOldSubIncCount = m_aSubGridProperties.size();
 
         if( nOldSubIncCount > nNewSubIncCount )
         {
             // remove superfluous entries
             for( sal_Int32 i = nNewSubIncCount; i < nOldSubIncCount; ++i )
                 aOldBroadcasters.push_back( m_aSubGridProperties[ i ] );
-            m_aSubGridProperties.realloc( nNewSubIncCount );
+            m_aSubGridProperties.resize( nNewSubIncCount );
         }
         else if( nOldSubIncCount < nNewSubIncCount )
         {
-            m_aSubGridProperties.realloc( nNewSubIncCount );
-            auto pSubGridProperties = m_aSubGridProperties.getArray();
+            m_aSubGridProperties.resize( nNewSubIncCount );
 
             // allocate new entries
             for( sal_Int32 i = nOldSubIncCount; i < nNewSubIncCount; ++i )
             {
-                pSubGridProperties[ i ] = new GridProperties();
+                m_aSubGridProperties[ i ] = new GridProperties();
                 LinePropertiesHelper::SetLineInvisible( m_aSubGridProperties[ 
i ] );
                 LinePropertiesHelper::SetLineColor( m_aSubGridProperties[ i ], 
static_cast<sal_Int32>(0xdddddd) ); //gray2
                 aNewBroadcasters.push_back( m_aSubGridProperties[ i ] );
@@ -445,7 +430,18 @@ Reference< beans::XPropertySet > SAL_CALL 
Axis::getGridProperties()
     MutexGuard aGuard( m_aMutex );
     return m_xGrid;
 }
+rtl::Reference< ::chart::GridProperties > Axis::getGridProperties2()
+{
+    MutexGuard aGuard( m_aMutex );
+    return m_xGrid;
+}
 Sequence< Reference< beans::XPropertySet > > SAL_CALL 
Axis::getSubGridProperties()
+{
+    MutexGuard aGuard( m_aMutex );
+    return comphelper::containerToSequence<Reference< beans::XPropertySet 
>>(m_aSubGridProperties);
+}
+
+std::vector< rtl::Reference< GridProperties > > Axis::getSubGridProperties2()
 {
     MutexGuard aGuard( m_aMutex );
     return m_aSubGridProperties;
diff --git a/chart2/source/model/main/GridProperties.cxx 
b/chart2/source/model/main/GridProperties.cxx
index f2ebcb725edb..a495f631f7e2 100644
--- a/chart2/source/model/main/GridProperties.cxx
+++ b/chart2/source/model/main/GridProperties.cxx
@@ -17,7 +17,7 @@
  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
  */
 
-#include "GridProperties.hxx"
+#include <GridProperties.hxx>
 #include <LinePropertiesHelper.hxx>
 #include <UserDefinedProperties.hxx>
 #include <PropertyHelper.hxx>
diff --git a/chart2/source/model/template/ChartTypeTemplate.cxx 
b/chart2/source/model/template/ChartTypeTemplate.cxx
index 5bfbc897e10b..c99171e5432a 100644
--- a/chart2/source/model/template/ChartTypeTemplate.cxx
+++ b/chart2/source/model/template/ChartTypeTemplate.cxx
@@ -24,6 +24,7 @@
 #include <ChartType.hxx>
 #include <DataSeries.hxx>
 #include <DataSource.hxx>
+#include <GridProperties.hxx>
 
 #include <Axis.hxx>
 #include <AxisHelper.hxx>
@@ -494,7 +495,7 @@ void ChartTypeTemplate::createCoordinateSystems(
     {
         rtl::Reference< Axis > xAxis = xCooSys->getAxisByDimension2( 1, 0 );
         if( xAxis.is())
-            AxisHelper::makeGridVisible( xAxis->getGridProperties() );
+            AxisHelper::makeGridVisible( xAxis->getGridProperties2() );
     }
 
     std::vector< rtl::Reference< BaseCoordinateSystem > > aCoordinateSystems(
diff --git a/chart2/source/tools/AxisHelper.cxx 
b/chart2/source/tools/AxisHelper.cxx
index 98d269388972..b25b76e8e25c 100644
--- a/chart2/source/tools/AxisHelper.cxx
+++ b/chart2/source/tools/AxisHelper.cxx
@@ -37,6 +37,7 @@
 #include <ExplicitCategoriesProvider.hxx>
 #include <unonames.hxx>
 #include <BaseCoordinateSystem.hxx>
+#include <GridProperties.hxx>
 
 #include <o3tl/safeint.hxx>
 #include <unotools/saveopt.hxx>
@@ -429,10 +430,10 @@ void AxisHelper::showGrid( sal_Int32 nDimensionIndex, 
sal_Int32 nCooSysIndex, bo
         return;
 
     if( bMainGrid )
-        AxisHelper::makeGridVisible( xAxis->getGridProperties() );
+        AxisHelper::makeGridVisible( xAxis->getGridProperties2() );
     else
     {
-        const Sequence< Reference< beans::XPropertySet > > aSubGrids( 
xAxis->getSubGridProperties() );
+        std::vector< rtl::Reference< GridProperties > > aSubGrids( 
xAxis->getSubGridProperties2() );
         for( auto const & i : aSubGrids )
             AxisHelper::makeGridVisible( i );
     }
@@ -448,7 +449,7 @@ void AxisHelper::makeAxisVisible( const rtl::Reference< 
Axis >& xAxis )
     }
 }
 
-void AxisHelper::makeGridVisible( const Reference< beans::XPropertySet >& 
xGridProperties )
+void AxisHelper::makeGridVisible( const rtl::Reference< GridProperties >& 
xGridProperties )
 {
     if( xGridProperties.is() )
     {
@@ -504,16 +505,16 @@ void AxisHelper::hideGrid( sal_Int32 nDimensionIndex, 
sal_Int32 nCooSysIndex, bo
         return;
 
     if( bMainGrid )
-        AxisHelper::makeGridInvisible( xAxis->getGridProperties() );
+        AxisHelper::makeGridInvisible( xAxis->getGridProperties2() );
     else
     {
-        const Sequence< Reference< beans::XPropertySet > > aSubGrids( 
xAxis->getSubGridProperties() );
+        std::vector< rtl::Reference< ::chart::GridProperties > > aSubGrids( 
xAxis->getSubGridProperties2() );
         for( auto const & i : aSubGrids)
             AxisHelper::makeGridInvisible( i );
     }
 }
 
-void AxisHelper::makeGridInvisible( const Reference< beans::XPropertySet >& 
xGridProperties )
+void AxisHelper::makeGridInvisible( const rtl::Reference< 
::chart::GridProperties >& xGridProperties )
 {
     if( xGridProperties.is() )
     {
@@ -535,11 +536,11 @@ bool AxisHelper::isGridShown( sal_Int32 nDimensionIndex, 
sal_Int32 nCooSysIndex,
         return bRet;
 
     if( bMainGrid )
-        bRet = AxisHelper::isGridVisible( xAxis->getGridProperties() );
+        bRet = AxisHelper::isGridVisible( xAxis->getGridProperties2() );
     else
     {
-        Sequence< Reference< beans::XPropertySet > > aSubGrids( 
xAxis->getSubGridProperties() );
-        if( aSubGrids.hasElements() )
+        std::vector< rtl::Reference< ::chart::GridProperties > > aSubGrids( 
xAxis->getSubGridProperties2() );
+        if( !aSubGrids.empty() )
             bRet = AxisHelper::isGridVisible( aSubGrids[0] );
     }
 
@@ -669,7 +670,7 @@ bool AxisHelper::areAxisLabelsVisible( const 
rtl::Reference< Axis >& xAxis )
     return bRet;
 }
 
-bool AxisHelper::isGridVisible( const Reference< beans::XPropertySet >& 
xGridproperties )
+bool AxisHelper::isGridVisible( const rtl::Reference< ::chart::GridProperties 
>& xGridproperties )
 {
     bool bRet = false;
 
@@ -682,22 +683,22 @@ bool AxisHelper::isGridVisible( const Reference< 
beans::XPropertySet >& xGridpro
     return bRet;
 }
 
-Reference< beans::XPropertySet > AxisHelper::getGridProperties(
+rtl::Reference< GridProperties > AxisHelper::getGridProperties(
             const rtl::Reference< BaseCoordinateSystem >& xCooSys
         , sal_Int32 nDimensionIndex, sal_Int32 nAxisIndex, sal_Int32 
nSubGridIndex )
 {
-    Reference< beans::XPropertySet > xRet;
+    rtl::Reference< GridProperties > xRet;
 
     rtl::Reference< Axis > xAxis( AxisHelper::getAxis( nDimensionIndex, 
nAxisIndex, xCooSys ) );
     if( xAxis.is() )
     {
         if( nSubGridIndex<0 )
-            xRet.set( xAxis->getGridProperties() );
+            xRet = xAxis->getGridProperties2();
         else
         {
-            Sequence< Reference< beans::XPropertySet > > aSubGrids( 
xAxis->getSubGridProperties() );
-            if (nSubGridIndex < aSubGrids.getLength())
-                xRet.set( aSubGrids[nSubGridIndex] );
+            std::vector< rtl::Reference< GridProperties > > aSubGrids( 
xAxis->getSubGridProperties2() );
+            if (nSubGridIndex < static_cast<sal_Int32>(aSubGrids.size()))
+                xRet = aSubGrids[nSubGridIndex];
         }
     }
 
@@ -846,26 +847,26 @@ std::vector< rtl::Reference< Axis > > 
AxisHelper::getAllAxesOfDiagram(
     return aAxisVector;
 }
 
-Sequence< Reference< beans::XPropertySet > > AxisHelper::getAllGrids( const 
rtl::Reference< Diagram >& xDiagram )
+std::vector< rtl::Reference< GridProperties > > AxisHelper::getAllGrids( const 
rtl::Reference< Diagram >& xDiagram )
 {
     const std::vector< rtl::Reference< Axis > > aAllAxes = 
AxisHelper::getAllAxesOfDiagram( xDiagram );
-    std::vector< Reference< beans::XPropertySet > > aGridVector;
+    std::vector< rtl::Reference< GridProperties > > aGridVector;
 
     for( rtl::Reference< Axis > const & xAxis : aAllAxes )
     {
-        Reference< beans::XPropertySet > xGridProperties( 
xAxis->getGridProperties() );
+        rtl::Reference< GridProperties > xGridProperties( 
xAxis->getGridProperties2() );
         if( xGridProperties.is() )
             aGridVector.push_back( xGridProperties );
 
-        const Sequence< Reference< beans::XPropertySet > > aSubGrids( 
xAxis->getSubGridProperties() );
-        for( Reference< beans::XPropertySet > const & xSubGrid : aSubGrids )
+        std::vector< rtl::Reference< GridProperties > > aSubGrids( 
xAxis->getSubGridProperties2() );
+        for( rtl::Reference< GridProperties > const & xSubGrid : aSubGrids )
         {
             if( xSubGrid.is() )
                 aGridVector.push_back( xSubGrid );
         }
     }
 
-    return comphelper::containerToSequence( aGridVector );
+    return aGridVector;
 }
 
 void AxisHelper::getAxisOrGridPossibilities( Sequence< sal_Bool >& 
rPossibilityList
diff --git a/chart2/source/tools/ObjectIdentifier.cxx 
b/chart2/source/tools/ObjectIdentifier.cxx
index 883c115126cb..5caccd7a8f8e 100644
--- a/chart2/source/tools/ObjectIdentifier.cxx
+++ b/chart2/source/tools/ObjectIdentifier.cxx
@@ -27,6 +27,7 @@
 #include <ChartModel.hxx>
 #include <ChartModelHelper.hxx>
 #include <ChartType.hxx>
+#include <GridProperties.hxx>
 #include <Axis.hxx>
 #include <AxisHelper.hxx>
 #include <servicenames_charttypes.hxx>
@@ -1168,7 +1169,7 @@ Reference< beans::XPropertySet > 
ObjectIdentifier::getObjectPropertySet(
                     sal_Int32 nSubGridIndex = -1;
                     lcl_parseGridIndices( nSubGridIndex, rObjectCID );
 
-                    xObjectProperties.set( AxisHelper::getGridProperties( 
xCooSys , nDimensionIndex, nAxisIndex, nSubGridIndex ) );
+                    xObjectProperties = AxisHelper::getGridProperties( xCooSys 
, nDimensionIndex, nAxisIndex, nSubGridIndex );
                 }
                 break;
             case OBJECTTYPE_DATA_LABELS:
diff --git a/chart2/source/view/axes/VCartesianCoordinateSystem.cxx 
b/chart2/source/view/axes/VCartesianCoordinateSystem.cxx
index dbcf89775ab5..81fa369c2f60 100644
--- a/chart2/source/view/axes/VCartesianCoordinateSystem.cxx
+++ b/chart2/source/view/axes/VCartesianCoordinateSystem.cxx
@@ -28,6 +28,7 @@
 #include <AxisHelper.hxx>
 #include <cppuhelper/implbase.hxx>
 #include <ChartModel.hxx>
+#include <GridProperties.hxx>
 #include <com/sun/star/chart2/data/XTextualDataSequence.hpp>
 #include <com/sun/star/chart2/AxisType.hpp>
 
diff --git a/chart2/source/view/axes/VCartesianGrid.cxx 
b/chart2/source/view/axes/VCartesianGrid.cxx
index 6cf68d0700eb..9916ebac0be4 100644
--- a/chart2/source/view/axes/VCartesianGrid.cxx
+++ b/chart2/source/view/axes/VCartesianGrid.cxx
@@ -25,6 +25,7 @@
 #include <CommonConverters.hxx>
 #include <AxisHelper.hxx>
 #include <VLineProperties.hxx>
+#include <GridProperties.hxx>
 #include <com/sun/star/drawing/PointSequenceSequence.hpp>
 #include <com/sun/star/drawing/LineStyle.hpp>
 
@@ -149,7 +150,7 @@ static void addLine3D( 
std::vector<std::vector<css::drawing::Position3D>>& rPoin
 }
 
 VCartesianGrid::VCartesianGrid( sal_Int32 nDimensionIndex, sal_Int32 
nDimensionCount
-                               , std::vector< Reference< beans::XPropertySet > 
>  aGridPropertiesList )
+                               , std::vector< rtl::Reference< 
::chart::GridProperties > > aGridPropertiesList )
             : VAxisOrGridBase( nDimensionIndex, nDimensionCount )
             , m_aGridPropertiesList( std::move(aGridPropertiesList) )
 {
@@ -163,7 +164,7 @@ VCartesianGrid::~VCartesianGrid()
 }
 
 void VCartesianGrid::fillLinePropertiesFromGridModel( 
std::vector<VLineProperties>& rLinePropertiesList
-                                     , const std::vector< Reference< 
beans::XPropertySet > > & rGridPropertiesList )
+                                     , const std::vector< rtl::Reference< 
::chart::GridProperties > > & rGridPropertiesList )
 {
     rLinePropertiesList.clear();
     if( rGridPropertiesList.empty() )
diff --git a/chart2/source/view/axes/VCartesianGrid.hxx 
b/chart2/source/view/axes/VCartesianGrid.hxx
index 81ba1e16f1db..d41bcc4d466f 100644
--- a/chart2/source/view/axes/VCartesianGrid.hxx
+++ b/chart2/source/view/axes/VCartesianGrid.hxx
@@ -21,10 +21,10 @@
 #include "VAxisOrGridBase.hxx"
 #include <com/sun/star/beans/XPropertySet.hpp>
 
-namespace chart { struct VLineProperties; }
-
 namespace chart
 {
+class GridProperties;
+struct VLineProperties;
 
 class VCartesianGrid : public VAxisOrGridBase
 {
@@ -32,7 +32,7 @@ class VCartesianGrid : public VAxisOrGridBase
 public:
     VCartesianGrid( sal_Int32 nDimensionIndex, sal_Int32 nDimensionCount
         , std::vector<
-            css::uno::Reference< css::beans::XPropertySet > > 
aGridPropertiesList //main grid, subgrid, subsubgrid etc
+            rtl::Reference< ::chart::GridProperties > > aGridPropertiesList 
//main grid, subgrid, subsubgrid etc
         );
     virtual ~VCartesianGrid() override;
 
@@ -40,11 +40,11 @@ public:
 
     static void fillLinePropertiesFromGridModel( std::vector<VLineProperties>& 
rLinePropertiesList
                     , const std::vector<
-                        css::uno::Reference< css::beans::XPropertySet > >& 
rGridPropertiesList );
+                        rtl::Reference< ::chart::GridProperties > >& 
rGridPropertiesList );
 
 private:
     std::vector<
-        css::uno::Reference< css::beans::XPropertySet > > 
m_aGridPropertiesList; //main grid, subgrid, subsubgrid etc
+        rtl::Reference< ::chart::GridProperties > > m_aGridPropertiesList; 
//main grid, subgrid, subsubgrid etc
 };
 
 } //namespace chart
diff --git a/chart2/source/view/axes/VCoordinateSystem.cxx 
b/chart2/source/view/axes/VCoordinateSystem.cxx
index aa09aed4ddb5..6266f989aecd 100644
--- a/chart2/source/view/axes/VCoordinateSystem.cxx
+++ b/chart2/source/view/axes/VCoordinateSystem.cxx
@@ -23,6 +23,7 @@
 #include "VCartesianCoordinateSystem.hxx"
 #include "VPolarCoordinateSystem.hxx"
 #include <BaseCoordinateSystem.hxx>
+#include <GridProperties.hxx>
 #include <ChartModel.hxx>
 #include <ScaleAutomatism.hxx>
 #include <ShapeFactory.hxx>
@@ -193,14 +194,14 @@ rtl::Reference< Axis > 
VCoordinateSystem::getAxisByDimension( sal_Int32 nDimensi
     return nullptr;
 }
 
-std::vector< Reference< beans::XPropertySet > > 
VCoordinateSystem::getGridListFromAxis( const rtl::Reference< Axis >& xAxis )
+std::vector< rtl::Reference< ::chart::GridProperties > > 
VCoordinateSystem::getGridListFromAxis( const rtl::Reference< Axis >& xAxis )
 {
-    std::vector< Reference< beans::XPropertySet > > aRet;
+    std::vector< rtl::Reference< ::chart::GridProperties > > aRet;
 
     if( xAxis.is() )
     {
-        aRet.push_back( xAxis->getGridProperties() );
-        auto aSubGrids( comphelper::sequenceToContainer<std::vector< 
Reference< beans::XPropertySet > > >( xAxis->getSubGridProperties() ) );
+        aRet.push_back( xAxis->getGridProperties2() );
+        std::vector<rtl::Reference<::chart::GridProperties>> aSubGrids = 
xAxis->getSubGridProperties2();
         aRet.insert( aRet.end(), aSubGrids.begin(), aSubGrids.end() );
     }
 
diff --git a/chart2/source/view/axes/VPolarCoordinateSystem.cxx 
b/chart2/source/view/axes/VPolarCoordinateSystem.cxx
index 235237e266f9..b7d5b07c742d 100644
--- a/chart2/source/view/axes/VPolarCoordinateSystem.cxx
+++ b/chart2/source/view/axes/VPolarCoordinateSystem.cxx
@@ -27,6 +27,7 @@
 #include <Diagram.hxx>
 #include <DataTable.hxx>
 #include <ChartModel.hxx>
+#include <GridProperties.hxx>
 
 namespace chart
 {
diff --git a/chart2/source/view/axes/VPolarGrid.cxx 
b/chart2/source/view/axes/VPolarGrid.cxx
index e876c83b2de7..9a2929eac354 100644
--- a/chart2/source/view/axes/VPolarGrid.cxx
+++ b/chart2/source/view/axes/VPolarGrid.cxx
@@ -20,6 +20,7 @@
 #include "VPolarGrid.hxx"
 #include "VCartesianGrid.hxx"
 #include "Tickmarks.hxx"
+#include <GridProperties.hxx>
 #include <PlottingPositionHelper.hxx>
 #include <ShapeFactory.hxx>
 #include <ObjectIdentifier.hxx>
@@ -38,7 +39,7 @@ using namespace ::com::sun::star::chart2;
 using ::com::sun::star::uno::Reference;
 
 VPolarGrid::VPolarGrid( sal_Int32 nDimensionIndex, sal_Int32 nDimensionCount
-                       , std::vector< Reference< beans::XPropertySet > > 
aGridPropertiesList )
+                       , std::vector< rtl::Reference< ::chart::GridProperties 
> > aGridPropertiesList )
             : VAxisOrGridBase( nDimensionIndex, nDimensionCount )
             , m_aGridPropertiesList( std::move(aGridPropertiesList) )
             , m_pPosHelper( new PolarPlottingPositionHelper() )
diff --git a/chart2/source/view/axes/VPolarGrid.hxx 
b/chart2/source/view/axes/VPolarGrid.hxx
index 9b15d0e5bcbc..c451ae5d56f5 100644
--- a/chart2/source/view/axes/VPolarGrid.hxx
+++ b/chart2/source/view/axes/VPolarGrid.hxx
@@ -27,7 +27,7 @@ namespace chart { struct VLineProperties; }
 
 namespace chart
 {
-
+class GridProperties;
 class PolarPlottingPositionHelper;
 
 class VPolarGrid : public VAxisOrGridBase
@@ -36,7 +36,7 @@ class VPolarGrid : public VAxisOrGridBase
 public:
     VPolarGrid( sal_Int32 nDimensionIndex, sal_Int32 nDimensionCount
         , std::vector<
-            css::uno::Reference< css::beans::XPropertySet > > 
aGridPropertiesList //main grid, subgrid, subsubgrid etc
+            rtl::Reference< ::chart::GridProperties > > aGridPropertiesList 
//main grid, subgrid, subsubgrid etc
         );
     virtual ~VPolarGrid() override;
 
@@ -54,7 +54,7 @@ public:
 
 private: //member
     std::vector<
-        css::uno::Reference< css::beans::XPropertySet > > 
m_aGridPropertiesList;//main grid, subgrid, subsubgrid etc
+        rtl::Reference< ::chart::GridProperties > > 
m_aGridPropertiesList;//main grid, subgrid, subsubgrid etc
     std::unique_ptr<PolarPlottingPositionHelper> m_pPosHelper;
     std::vector< ExplicitIncrementData >   m_aIncrements;
 
diff --git a/chart2/source/view/inc/VCoordinateSystem.hxx 
b/chart2/source/view/inc/VCoordinateSystem.hxx
index a9643bf967ad..61dda842d02b 100644
--- a/chart2/source/view/inc/VCoordinateSystem.hxx
+++ b/chart2/source/view/inc/VCoordinateSystem.hxx
@@ -48,6 +48,7 @@ class ScaleAutomatism;
 class ChartModel;
 class Axis;
 class BaseCoordinateSystem;
+class GridProperties;
 class VAxisBase;
 
 class VCoordinateSystem
@@ -146,7 +147,7 @@ protected: //methods
 
     rtl::Reference< ::chart::Axis >
         getAxisByDimension( sal_Int32 nDimensionIndex, sal_Int32 nAxisIndex  ) 
const;
-    static std::vector< css::uno::Reference< css::beans::XPropertySet > >
+    static std::vector< rtl::Reference< ::chart::GridProperties > >
         getGridListFromAxis( const rtl::Reference< ::chart::Axis >& xAxis );
 
     VAxisBase* getVAxis( sal_Int32 nDimensionIndex, sal_Int32 nAxisIndex );
diff --git a/solenv/clang-format/excludelist b/solenv/clang-format/excludelist
index d58bad5e5c77..94845e7ecedd 100644
--- a/solenv/clang-format/excludelist
+++ b/solenv/clang-format/excludelist
@@ -1018,6 +1018,7 @@ chart2/source/inc/ExponentialRegressionCurveCalculator.hxx
 chart2/source/inc/FillProperties.hxx
 chart2/source/inc/FormattedString.hxx
 chart2/source/inc/FormattedStringHelper.hxx
+chart2/source/inc/GridProperties.hxx
 chart2/source/inc/InternalData.hxx
 chart2/source/inc/InternalDataProvider.hxx
 chart2/source/inc/LabeledDataSequence.hxx
@@ -1083,7 +1084,6 @@ chart2/source/model/main/DataSeriesProperties.hxx
 chart2/source/model/main/Diagram.cxx
 chart2/source/model/main/FormattedString.cxx
 chart2/source/model/main/GridProperties.cxx
-chart2/source/model/main/GridProperties.hxx
 chart2/source/model/main/Legend.cxx
 chart2/source/model/main/PageBackground.cxx
 chart2/source/model/main/PageBackground.hxx

Reply via email to