Name
Date
Size
#Lines
LOC

..22-May-2021-

Handler.cxxH A D22-May-20217.4 KiB345253

Handler.hxxH A D22-May-20213.9 KiB14299

OOXMLBinaryObjectReference.cxxH A D22-May-20212.2 KiB8346

OOXMLBinaryObjectReference.hxxH A D22-May-20211.6 KiB5222

OOXMLDocumentImpl.cxxH A D22-May-202112.1 KiB425329

OOXMLDocumentImpl.hxxH A D22-May-20214.2 KiB12979

OOXMLFactory.cxxH A D22-May-202110.9 KiB363274

OOXMLFactory.hxxH A D22-May-20215.4 KiB176118

OOXMLFastContextHandler.cxxH A D22-May-202160.5 KiB2,3131,877

OOXMLFastContextHandler.hxxH A D22-May-202120.1 KiB638442

OOXMLFastDocumentHandler.cxxH A D22-May-20216.3 KiB230182

OOXMLFastDocumentHandler.hxxH A D22-May-20214.2 KiB11274

OOXMLFastHelper.hxxH A D22-May-20217.6 KiB251177

OOXMLFastTokenHandler.cxxH A D22-May-20213.7 KiB12881

OOXMLFastTokenHandler.hxxH A D22-May-20212.3 KiB6228

OOXMLParserState.cxxH A D22-May-20216.8 KiB316237

OOXMLParserState.hxxH A D22-May-20213.3 KiB11671

OOXMLPropertySet.hxxH A D22-May-20212.4 KiB7943

OOXMLPropertySetImpl.cxxH A D22-May-202115.4 KiB794570

OOXMLPropertySetImpl.hxxH A D22-May-20217.7 KiB286218

OOXMLStreamImpl.cxxH A D22-May-202110.3 KiB314243

OOXMLStreamImpl.hxxH A D22-May-20213.1 KiB8852

README.effortsH A D22-May-20215.3 KiB152107

RefAndPointer.hxxH A D22-May-20213.1 KiB11677

analyzemodel.xslH A D22-May-20214.5 KiB12497

analyzestage2.xslH A D22-May-20211.9 KiB5229

analyzestage3.xslH A D22-May-20212.2 KiB6035

attrsprm.xslH A D22-May-20215.5 KiB162135

checkmodel.xslH A D22-May-20216.2 KiB160130

dummyannotate.xslH A D22-May-202144 KiB839805

effort.xslH A D22-May-20212.4 KiB6641

efforts.shH A D22-May-20211 KiB241

factory.xslH A D22-May-20213.2 KiB7752

factory_ns.xslH A D22-May-20215.7 KiB152117

factory_values.xslH A D22-May-20213.7 KiB8860

factoryimpl.xslH A D22-May-202112.2 KiB380313

factoryimpl_ns.xslH A D22-May-202131.2 KiB933845

factoryimpl_values.xslH A D22-May-20213.7 KiB8659

factoryinc.xslH A D22-May-20213.8 KiB10071

factorytools.xslH A D22-May-20219.8 KiB333206

fasttokens.xslH A D22-May-20214 KiB10775

gperffasttokenhandler.xslH A D22-May-20213.7 KiB8959

makefile.mkH A D22-May-20217.5 KiB248169

model.xmlH A D22-May-2021908.6 KiB23,54621,744

modelcleanupH A D22-May-20211 KiB252

modelcleanup.xslH A D22-May-202112.4 KiB317279

modelpreprocess.xslH A D22-May-20218.2 KiB219185

namespaceids.xslH A D22-May-20213.7 KiB9766

nostatus.xslH A D22-May-20211.4 KiB4017

ooxmlLoggers.hxxH A D22-May-20211.2 KiB3811

qnametostr.xslH A D22-May-20214.7 KiB12595

resourceids.xslH A D22-May-20213.8 KiB9867

rngtocxxH A D22-May-20214 KiB5431

status.shH A D22-May-20211.6 KiB4518

todo.xslH A D22-May-20211.9 KiB4925

tokenxmlfooterH A D22-May-20219 21

tokenxmlheaderH A D22-May-20218 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 # *************************************************************
21 This file describes how the remaining efforts for writerfilter can be
22 extracted from the source code.
23 
24 1. Marking up the efforts in the code.
25 
26 Efforts are marked up in the code with comments like this:
27 
28 /* WRITERFILTERSTATUS: done: <percent done>, planned: <effort planned>, spent: <effort spent, yet> */
29 
30 The comments have to follow a case-label immediately. Consecutive
31 case-labels can be marked up, too. In the latter case the efforts are
32 counted for the preceeding case-labels as a whole.
33 
34 2. Extraction process
35 
36 2.1. Stage 1:
37 
38 This stage is handled in status.sh. An XML-file is generated that
39 contains a top level element <stage1>. <stage1> contains an element
40 <analyze> and several <qname> and <status> elements.
41 
42 2.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 
51 Important for the extraction of efforts: @qname is the identifier used
52 in case-labels in .cxx files and thus links the status mark up
53 comments with elements/attributes in the model.xml.
54 
55 2.1.2. Extract status information
56 
57 The 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 
59 case NS_rtf::LN_UNUSED4:
60 
61 result in elements like this
62 
63 <qname file="/DomainMapper.cxx" line="216" qname="NS_rtf::LN_UNUSED4"/>.
64 
65 Lines like this
66 
67 /* WRITERFILTERSTATUS: done: 0, planned: 0, spent: 0 */
68 
69 result in elements like this
70 
71 <status done="0" planned="0" spent="0"/>
72 
73 The <qname> and <status> elements are children of the <stage1>
74 element. The are inserted in the same order as found in the
75 code. Therefore a <status> element corresponds to the group of
76 consecutive preceding <qname> elements.
77 
78 2.2. Stage 2
79 
80 In this stage analyzestage2.xsl is used on the result of stage 1 to
81 group 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 
86 2.3. Stage 3
87 
88 This stage associates the <attribute> and <element> elements in
89 model.xml with the extracted data. It uses analyzestage3.xsl on the
90 result of stage 2 to do this.
91 
92 E.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 
103 and
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 
113 the 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 
131 3. Collect efforts
132 
133 This is done by the script efforts.sh. It uses status.sh to extract the status and determines the efforts in two steps.
134 
135 3.1. Choose which <attribute>/<element> elements need effort
136 
137 This stage uses todo.xsl on the result of 2.3.
138 
139 There 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 
146 3.2. Generate table of efforts in CSV format
147 
148 This stage uses effort.xsl on the results of 3.1. and produces the
149 table of efforts. If there is no status defined for an
150 <attribute>/<element> it is assumed that the planned effort is 0.5
151 hours and no work has been done.
152