Name Date Size #Lines LOC

..19-Sep-2020-

Handler.cxxH A D18-Oct-20197.4 KiB345253

Handler.hxxH A D18-Oct-20193.9 KiB14299

OOXMLBinaryObjectReference.cxxH A D18-Oct-20192.2 KiB8346

OOXMLBinaryObjectReference.hxxH A D18-Oct-20191.6 KiB5222

OOXMLDocumentImpl.cxxH A D18-Oct-201912.1 KiB425329

OOXMLDocumentImpl.hxxH A D18-Oct-20194.2 KiB12979

OOXMLFactory.cxxH A D18-Oct-201910.9 KiB363274

OOXMLFactory.hxxH A D18-Oct-20195.4 KiB176118

OOXMLFastContextHandler.cxxH A D18-Oct-201960.4 KiB2,3031,868

OOXMLFastContextHandler.hxxH A D18-Oct-201919.9 KiB632437

OOXMLFastDocumentHandler.cxxH A D18-Oct-20195 KiB164117

OOXMLFastDocumentHandler.hxxH A D18-Oct-20194.2 KiB11274

OOXMLFastHelper.hxxH A D18-Oct-20197.6 KiB251177

OOXMLFastTokenHandler.cxxH A D18-Oct-20193.9 KiB13486

OOXMLFastTokenHandler.hxxH A D18-Oct-20192.3 KiB6228

OOXMLParserState.cxxH A D18-Oct-20196.8 KiB316237

OOXMLParserState.hxxH A D18-Oct-20193.3 KiB11671

OOXMLPropertySet.hxxH A D18-Oct-20192.4 KiB7943

OOXMLPropertySetImpl.cxxH A D18-Oct-201915.4 KiB794570

OOXMLPropertySetImpl.hxxH A D18-Oct-20197.7 KiB286218

OOXMLStreamImpl.cxxH A D18-Oct-201911.1 KiB350274

OOXMLStreamImpl.hxxH A D18-Oct-20193.1 KiB8852

README.effortsH A D18-Oct-20195.3 KiB152107

RefAndPointer.hxxH A D18-Oct-20192.3 KiB9355

analyzemodel.xslH A D18-Oct-20194.5 KiB12598

analyzestage2.xslH A D18-Oct-20191.9 KiB5229

analyzestage3.xslH A D18-Oct-20192.2 KiB6035

attrsprm.xslH A D18-Oct-20195.5 KiB162135

checkmodel.xslH A D18-Oct-20196.2 KiB160130

dummyannotate.xslH A D18-Oct-201944 KiB839805

effort.xslH A D18-Oct-20192.4 KiB6641

efforts.shH A D18-Oct-20191 KiB241

factory.xslH A D18-Oct-20193.2 KiB7752

factory_ns.xslH A D18-Oct-20195.7 KiB152117

factory_values.xslH A D18-Oct-20193.7 KiB8860

factoryimpl.xslH A D18-Oct-201912.2 KiB380313

factoryimpl_ns.xslH A D18-Oct-201931.2 KiB933845

factoryimpl_values.xslH A D18-Oct-20193.7 KiB8659

factoryinc.xslH A D18-Oct-20193.8 KiB10071

factorytools.xslH A D18-Oct-20199.8 KiB333206

fasttokens.xslH A D18-Oct-20193.9 KiB10472

gperffasttokenhandler.xslH A D18-Oct-20193.7 KiB8959

model.xmlH A D18-Oct-2019908.7 KiB23,54621,744

modelcleanupH A D18-Oct-20191 KiB252

modelcleanup.xslH A D18-Oct-201912.4 KiB317279

modelpreprocess.xslH A D18-Oct-20198.2 KiB219185

namespaceids.xslH A D18-Oct-20193.7 KiB9766

nostatus.xslH A D18-Oct-20191.4 KiB4017

ooxmlLoggers.hxxH A D18-Oct-20191.2 KiB3811

qnametostr.xslH A D18-Oct-20194.7 KiB12595

resourceids.xslH A D18-Oct-20193.8 KiB9867

rngtocxxH A D18-Oct-20194 KiB5431

stage1.shH A D18-Oct-20191.5 KiB4214

todo.xslH A D18-Oct-20191.9 KiB5026

tokenxmlfooterH A D18-Oct-20199 21

tokenxmlheaderH A D18-Oct-20198 21

README.efforts

1# *************************************************************
2#
3#  Licensed to the Apache Software Foundation (ASF) under one
4#  or more contributor license agreements.  See the NOTICE file
5#  distributed with this work for additional information
6#  regarding copyright ownership.  The ASF licenses this file
7#  to you under the Apache License, Version 2.0 (the
8#  "License"); you may not use this file except in compliance
9#  with the License.  You may obtain a copy of the License at
10#
11#    http://www.apache.org/licenses/LICENSE-2.0
12#
13#  Unless required by applicable law or agreed to in writing,
14#  software distributed under the License is distributed on an
15#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16#  KIND, either express or implied.  See the License for the
17#  specific language governing permissions and limitations
18#  under the License.
19#
20# *************************************************************
21This file describes how the remaining efforts for writerfilter can be
22extracted from the source code.
23
241. Marking up the efforts in the code.
25
26Efforts are marked up in the code with comments like this:
27
28/* WRITERFILTERSTATUS: done: <percent done>, planned: <effort planned>, spent: <effort spent, yet> */
29
30The comments have to follow a case-label immediately. Consecutive
31case-labels can be marked up, too. In the latter case the efforts are
32counted for the preceding case-labels as a whole.
33
342. Extraction process
35
362.1. Stage 1:
37
38This stage is handled in status.sh. An XML-file is generated that
39contains a top level element <stage1>. <stage1> contains an element
40<analyze> and several <qname> and <status> elements.
41
422.1.1.  Use analyzemodel.xsl to extract necessary data from model.xml.
43
44- Namespaces can be flagged with attribute @todo="ignore" to prevent
45  the namespace being considered.
46
47- For every <element>/<attribute> an entry in an according element in <analyze> is genereated. These elements look like this:
48
49<attribute id="..." resource="..." tokenid="..." qname="..." namespace="..." define="..." name="..."/>
50
51Important for the extraction of efforts: @qname is the identifier used
52in case-labels in .cxx files and thus links the status mark up
53comments with elements/attributes in the model.xml.
54
552.1.2. Extract status information
56
57The variable SEARCHIN in status.sh determines in what directory the script will search for case labels and status comments. Only .cxx files are searched. Lines like this
58
59case NS_rtf::LN_UNUSED4:
60
61result in elements like this
62
63<qname file="/DomainMapper.cxx" line="216" qname="NS_rtf::LN_UNUSED4"/>.
64
65Lines like this
66
67/* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
68
69result in elements like this
70
71<status done="0" planned="0" spent="0"/>
72
73The <qname> and <status> elements are children of the <stage1>
74element. The are inserted in the same order as found in the
75code. Therefore a <status> element corresponds to the group of
76consecutive preceding <qname> elements.
77
782.2. Stage 2
79
80In this stage analyzestage2.xsl is used on the result of stage 1 to
81group the <qname> and <status> elements from stage 1. For each
82<status> element a <qnames> element is generated that contains the
83<qname> elements that the <status> element refers to, plus the
84<status> element.
85
862.3. Stage 3
87
88This stage associates the <attribute> and <element> elements in
89model.xml with the extracted data. It uses analyzestage3.xsl on the
90result of stage 2 to do this.
91
92E.g. for given elements from stage 2:
93
94<attribute
95	   id="dml-wordprocessingDrawing:CT_Inline:distR"
96	   resource="Properties"
97	   tokenid="ooxml:CT_Inline_distR"
98	   qname="NS_ooxml::LN_CT_Inline_distR"
99	   namespace="dml-wordprocessingDrawing"
100	   define="CT_Inline"
101	   name="distR"/>
102
103and
104
105   <qnames>
106    <qname file="/GraphicImport.cxx" line="1078" qname="NS_ooxml::LN_CT_Inline_distT"/>
107    <qname file="/GraphicImport.cxx" line="1079" qname="NS_ooxml::LN_CT_Inline_distB"/>
108    <qname file="/GraphicImport.cxx" line="1080" qname="NS_ooxml::LN_CT_Inline_distL"/>
109    <qname file="/GraphicImport.cxx" line="1081" qname="NS_ooxml::LN_CT_Inline_distR"/>
110    <status done="0" planned="0.5" spent="0"/>
111  </qnames>
112
113the result of stage 3 will be
114
115  <attribute
116  	     id="dml-wordprocessingDrawing:CT_Inline:distR"
117	     resource="Properties"
118	     tokenid="ooxml:CT_Inline_distR"
119	     qname="NS_ooxml::LN_CT_Inline_distR"
120	     namespace="dml-wordprocessingDrawing"
121	     define="CT_Inline" name="distR">
122
123	     <file name="/GraphicImport.cxx" line="1081">
124      	     	   <status done="0" planned="0.5" spent="0" qname-count="4"/>
125    	     </file>
126
127  </attribute>
128
129@qname-count is the number of case-labels that the according mark-up comment refers to.
130
1313. Collect efforts
132
133This is done by the script efforts.sh. It uses status.sh to extract the status and determines the efforts in two steps.
134
1353.1. Choose which <attribute>/<element> elements need effort
136
137This stage uses todo.xsl on the result of 2.3.
138
139There are two criteria that imply effort:
140
141- The <attribute>/<element> is not handled in any file.
142
143- The status for the <attribute>/<element> declares that work is
144  planned for it and less than 100 percent of this work is done.
145
1463.2. Generate table of efforts in CSV format
147
148This stage uses effort.xsl on the results of 3.1. and produces the
149table of efforts. If there is no status defined for an
150<attribute>/<element> it is assumed that the planned effort is 0.5
151hours and no work has been done.
152