1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 * Copyright 2008 by Sun Microsystems, Inc.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * $RCSfile: document_statistic.hxx,v $
12 * This file is part of OpenOffice.org.
14 * OpenOffice.org is free software: you can redistribute it and/or modify
15 * it under the terms of the GNU Lesser General Public License version 3
16 * only, as published by the Free Software Foundation.
18 * OpenOffice.org is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU Lesser General Public License version 3 for more details
22 * (a copy is included in the LICENSE file that accompanied this code).
24 * You should have received a copy of the GNU Lesser General Public License
25 * version 3 along with OpenOffice.org. If not, see
26 * <http://www.openoffice.org/license.html>
27 * for a copy of the LGPLv3 License.
29 ************************************************************************/
31 #ifndef DOCUMENT_STATISTIC_HXX_INCLUDED
32 #define DOCUMENT_STATISTIC_HXX_INCLUDED
37 #include "internal/metainforeader.hxx"
40 //------------------------------------
42 //------------------------------------
49 const std::wstring
& title
,
50 const std::wstring
& value
,
62 //------------------------------------
64 //------------------------------------
66 typedef std::vector
<statistic_item
> statistic_item_list_t
;
67 typedef std::pair
<std::wstring
, statistic_item_list_t
> statistic_group_t
;
68 typedef std::vector
<statistic_group_t
> statistic_group_list_t
;
70 //------------------------------------
72 //------------------------------------
74 class document_statistic_reader
;
75 typedef std::auto_ptr
<document_statistic_reader
> document_statistic_reader_ptr
;
77 document_statistic_reader_ptr
create_document_statistic_reader(const std::string
& document_name
, CMetaInfoReader
* meta_info_accessor
);
79 //------------------------------------
81 //------------------------------------
83 class document_statistic_reader
86 virtual ~document_statistic_reader();
88 void read(statistic_group_list_t
* group_list
);
90 std::string
get_document_name() const;
93 document_statistic_reader(const std::string
& document_name
, CMetaInfoReader
* meta_info_accessor
);
95 virtual void fill_description_section(CMetaInfoReader
*meta_info_accessor
,statistic_group_list_t
* group_list
) = 0;
97 virtual void fill_origin_section( CMetaInfoReader
*meta_info_accessor
,statistic_group_list_t
* group_list
);
100 std::string document_name_
;
101 CMetaInfoReader
* meta_info_accessor_
;
103 friend document_statistic_reader_ptr
create_document_statistic_reader(
104 const std::string
& document_name
, CMetaInfoReader
* meta_info_accessor
);
107 //------------------------------------
109 //------------------------------------
111 class writer_document_statistic_reader
: public document_statistic_reader
114 writer_document_statistic_reader(const std::string
& document_name
, CMetaInfoReader
* meta_info_accessor
);
116 virtual void fill_description_section(CMetaInfoReader
*meta_info_accessor
, statistic_group_list_t
* group_list
);
118 friend document_statistic_reader_ptr
create_document_statistic_reader(
119 const std::string
& document_name
, CMetaInfoReader
* meta_info_accessor
);
122 //------------------------------------
124 //------------------------------------
126 class calc_document_statistic_reader
: public document_statistic_reader
129 calc_document_statistic_reader(const std::string
& document_name
, CMetaInfoReader
* meta_info_accessor
);
131 virtual void fill_description_section( CMetaInfoReader
*meta_info_accessor
,statistic_group_list_t
* group_list
);
133 friend document_statistic_reader_ptr
create_document_statistic_reader(
134 const std::string
& document_name
, CMetaInfoReader
* meta_info_accessor
);
137 //------------------------------------
139 //------------------------------------
141 class draw_impress_math_document_statistic_reader
: public document_statistic_reader
144 draw_impress_math_document_statistic_reader(const std::string
& document_name
, CMetaInfoReader
* meta_info_accessor
);
146 virtual void fill_description_section(CMetaInfoReader
*meta_info_accessor
, statistic_group_list_t
* group_list
);
148 friend document_statistic_reader_ptr
create_document_statistic_reader(
149 const std::string
& document_name
, CMetaInfoReader
* meta_info_accessor
);