Skip to content

Commit f63d2d1

Browse files
committed
Fixed #533 Creating a bullet list from a template throws a XmlValueDisconnectedException.
1 parent e67c2ef commit f63d2d1

15 files changed

+379
-3
lines changed

plugins/org.obeonetwork.m2doc/src/org/obeonetwork/m2doc/generator/RawCopier.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*******************************************************************************
2-
* Copyright (c) 2016, 2024 Obeo.
2+
* Copyright (c) 2016, 2025 Obeo.
33
* All rights reserved. This program and the accompanying materials
44
* are made available under the terms of the Eclipse Public License v2.0
55
* which accompanies this distribution, and is available at
@@ -369,8 +369,8 @@ private BigInteger copyNumID(IBody inputBody, IBody outputBody, BigInteger input
369369
final XWPFDocument inputDocument = inputBody.getXWPFDocument();
370370
final XWPFDocument ouptutDocument = outputBody.getXWPFDocument();
371371

372-
final XWPFAbstractNum inputNum = inputDocument.getNumbering()
373-
.getAbstractNum(inputNumID.subtract(BigInteger.ONE));
372+
final BigInteger numId = inputDocument.getNumbering().getAbstractNumID(inputNumID);
373+
final XWPFAbstractNum inputNum = inputDocument.getNumbering().getAbstractNum(numId);
374374

375375
final XWPFAbstractNum outputNum = new XWPFAbstractNum((CTAbstractNum) inputNum.getCTAbstractNum().copy());
376376
final BigInteger newID = BigInteger.valueOf(ouptutDocument.getNumbering().getAbstractNums().size());
Lines changed: 167 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,167 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3+
xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="anydsl" nsURI="http://www.eclipse.org/acceleo/anydsl" nsPrefix="anydsl">
4+
<eClassifiers xsi:type="ecore:EClass" name="World">
5+
<eAnnotations source="http://www.obeo.fr/dsl/dnc/archetype">
6+
<details key="archetype" value="MomentInterval"/>
7+
</eAnnotations>
8+
<eStructuralFeatures xsi:type="ecore:EReference" name="companies" upperBound="-1"
9+
eType="#//Company" containment="true"/>
10+
<eStructuralFeatures xsi:type="ecore:EReference" name="foods" upperBound="-1"
11+
eType="#//Food" containment="true"/>
12+
<eStructuralFeatures xsi:type="ecore:EReference" name="sources" upperBound="-1"
13+
eType="#//Source" containment="true"/>
14+
</eClassifiers>
15+
<eClassifiers xsi:type="ecore:EClass" name="MultiNamedElement" abstract="true" interface="true">
16+
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name" upperBound="-1" eType="#//SingleString"/>
17+
</eClassifiers>
18+
<eClassifiers xsi:type="ecore:EClass" name="NamedElement" abstract="true" interface="true">
19+
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="#//SingleString"/>
20+
</eClassifiers>
21+
<eClassifiers xsi:type="ecore:EClass" name="Producer" eSuperTypes="#//NamedElement">
22+
<eStructuralFeatures xsi:type="ecore:EReference" name="adress" eType="#//Adress"
23+
containment="true"/>
24+
<eStructuralFeatures xsi:type="ecore:EReference" name="company" eType="#//Company"/>
25+
<eStructuralFeatures xsi:type="ecore:EReference" name="foods" upperBound="-1"
26+
eType="#//Food" eOpposite="#//Food/producers"/>
27+
</eClassifiers>
28+
<eClassifiers xsi:type="ecore:EClass" name="Adress">
29+
<eStructuralFeatures xsi:type="ecore:EAttribute" name="zipCode" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
30+
<eStructuralFeatures xsi:type="ecore:EAttribute" name="city" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
31+
<eStructuralFeatures xsi:type="ecore:EAttribute" name="country" eType="#//CountryData"/>
32+
</eClassifiers>
33+
<eClassifiers xsi:type="ecore:EClass" name="Company" abstract="true" interface="true"
34+
eSuperTypes="#//NamedElement">
35+
<eStructuralFeatures xsi:type="ecore:EReference" name="adress" eType="#//Adress"
36+
containment="true"/>
37+
<eStructuralFeatures xsi:type="ecore:EReference" name="world" eType="#//World"/>
38+
</eClassifiers>
39+
<eClassifiers xsi:type="ecore:EClass" name="ProductionCompany" eSuperTypes="#//Company">
40+
<eStructuralFeatures xsi:type="ecore:EReference" name="producers" upperBound="-1"
41+
eType="#//Producer" containment="true"/>
42+
</eClassifiers>
43+
<eClassifiers xsi:type="ecore:EClass" name="Restaurant" eSuperTypes="#//Company">
44+
<eStructuralFeatures xsi:type="ecore:EReference" name="chefs" upperBound="-1"
45+
eType="#//Chef" containment="true"/>
46+
<eStructuralFeatures xsi:type="ecore:EReference" name="menu" upperBound="-1" eType="#//EStringToRecipeMap"
47+
containment="true"/>
48+
</eClassifiers>
49+
<eClassifiers xsi:type="ecore:EClass" name="Chef" eSuperTypes="#//NamedElement">
50+
<eStructuralFeatures xsi:type="ecore:EReference" name="adress" eType="#//Adress"
51+
containment="true"/>
52+
<eStructuralFeatures xsi:type="ecore:EReference" name="recipes" upperBound="-1"
53+
eType="#//Recipe" containment="true"/>
54+
</eClassifiers>
55+
<eClassifiers xsi:type="ecore:EClass" name="Recipe" eSuperTypes="#//NamedElement">
56+
<eStructuralFeatures xsi:type="ecore:EReference" name="ingredients" upperBound="-1"
57+
eType="#//Food"/>
58+
</eClassifiers>
59+
<eClassifiers xsi:type="ecore:EClass" name="Food" eSuperTypes="#//NamedElement">
60+
<eOperations name="ripen" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
61+
<eParameters name="color" eType="#//Color"/>
62+
</eOperations>
63+
<eOperations name="preferredColor" eType="#//Color"/>
64+
<eOperations name="newFood" eType="#//Food"/>
65+
<eOperations name="setColor">
66+
<eParameters name="food" eType="#//Food"/>
67+
<eParameters name="newColor" eType="#//Color"/>
68+
</eOperations>
69+
<eOperations name="setCaliber">
70+
<eParameters name="food" eType="#//Food"/>
71+
<eParameters name="newCaliber" upperBound="-1" eType="#//Caliber"/>
72+
</eOperations>
73+
<eOperations name="acceptedCaliber" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
74+
<eParameters name="caliber" eType="#//Caliber"/>
75+
</eOperations>
76+
<eOperations name="label">
77+
<eParameters name="text" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
78+
</eOperations>
79+
<eOperations name="preferredLabel" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
80+
<eParameters name="text" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
81+
</eOperations>
82+
<eStructuralFeatures xsi:type="ecore:EAttribute" name="color" upperBound="-1"
83+
eType="#//Color"/>
84+
<eStructuralFeatures xsi:type="ecore:EAttribute" name="caliber" eType="#//Caliber"/>
85+
<eStructuralFeatures xsi:type="ecore:EReference" name="relatedFoods" upperBound="-1"
86+
eType="#//Food"/>
87+
<eStructuralFeatures xsi:type="ecore:EAttribute" name="group" eType="#//Group"/>
88+
<eStructuralFeatures xsi:type="ecore:EAttribute" name="label" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
89+
<eStructuralFeatures xsi:type="ecore:EReference" name="source" eType="#//Source"
90+
eOpposite="#//Source/foods"/>
91+
<eStructuralFeatures xsi:type="ecore:EReference" name="producers" upperBound="-1"
92+
eType="#//Producer" eOpposite="#//Producer/foods"/>
93+
</eClassifiers>
94+
<eClassifiers xsi:type="ecore:EClass" name="Source" abstract="true" interface="true"
95+
eSuperTypes="#//MultiNamedElement">
96+
<eStructuralFeatures xsi:type="ecore:EReference" name="foods" upperBound="-1"
97+
eType="#//Food" eOpposite="#//Food/source"/>
98+
<eStructuralFeatures xsi:type="ecore:EAttribute" name="origin" upperBound="-1"
99+
eType="#//CountryData"/>
100+
</eClassifiers>
101+
<eClassifiers xsi:type="ecore:EClass" name="Plant" eSuperTypes="#//Source">
102+
<eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" eType="#//Kind"/>
103+
</eClassifiers>
104+
<eClassifiers xsi:type="ecore:EClass" name="Animal" eSuperTypes="#//Source">
105+
<eStructuralFeatures xsi:type="ecore:EAttribute" name="part" upperBound="-1" eType="#//Part"/>
106+
</eClassifiers>
107+
<eClassifiers xsi:type="ecore:EEnum" name="Color">
108+
<eLiterals name="black"/>
109+
<eLiterals name="red" value="1"/>
110+
<eLiterals name="green" value="2"/>
111+
<eLiterals name="yellow" value="3"/>
112+
<eLiterals name="orange" value="4"/>
113+
<eLiterals name="brown" value="5"/>
114+
<eLiterals name="pink" value="6"/>
115+
<eLiterals name="palPink" value="7" literal="palPink"/>
116+
<eLiterals name="veryYellow" value="8"/>
117+
<eLiterals name="white" value="9"/>
118+
</eClassifiers>
119+
<eClassifiers xsi:type="ecore:EEnum" name="Caliber">
120+
<eLiterals name="S"/>
121+
<eLiterals name="M" value="1"/>
122+
<eLiterals name="L" value="2"/>
123+
<eLiterals name="XL" value="3"/>
124+
</eClassifiers>
125+
<eClassifiers xsi:type="ecore:EEnum" name="Group">
126+
<eLiterals name="Water"/>
127+
<eLiterals name="Dairy" value="1"/>
128+
<eLiterals name="Fruit" value="2"/>
129+
<eLiterals name="Grain" value="3"/>
130+
<eLiterals name="Protein" value="4"/>
131+
<eLiterals name="Sweet" value="5"/>
132+
<eLiterals name="Vegetable" value="6"/>
133+
<eLiterals name="Alcohol" value="7"/>
134+
</eClassifiers>
135+
<eClassifiers xsi:type="ecore:EEnum" name="Continent">
136+
<eLiterals name="Europe"/>
137+
<eLiterals name="Asia" value="1"/>
138+
<eLiterals name="Africa" value="2"/>
139+
<eLiterals name="America" value="3"/>
140+
<eLiterals name="Australia" value="4"/>
141+
<eLiterals name="Antarctica" value="5"/>
142+
</eClassifiers>
143+
<eClassifiers xsi:type="ecore:EEnum" name="Kind">
144+
<eLiterals name="Other"/>
145+
<eLiterals name="Seed" value="1"/>
146+
<eLiterals name="Oilseed" value="2"/>
147+
<eLiterals name="Tree" value="3"/>
148+
<eLiterals name="Root" value="4"/>
149+
<eLiterals name="Bulb" value="5"/>
150+
<eLiterals name="Leaf" value="6"/>
151+
<eLiterals name="Stem" value="7"/>
152+
<eLiterals name="Flower" value="8"/>
153+
<eLiterals name="Inflorescence" value="9"/>
154+
<eLiterals name="Spice" value="10"/>
155+
</eClassifiers>
156+
<eClassifiers xsi:type="ecore:EEnum" name="Part">
157+
<eLiterals name="Other"/>
158+
<eLiterals name="Muscle" value="1"/>
159+
<eLiterals name="Organ" value="2"/>
160+
</eClassifiers>
161+
<eClassifiers xsi:type="ecore:EDataType" name="CountryData" instanceClassName="anydsl.Country"/>
162+
<eClassifiers xsi:type="ecore:EDataType" name="SingleString" instanceClassName="java.lang.String"/>
163+
<eClassifiers xsi:type="ecore:EClass" name="EStringToRecipeMap" instanceClassName="java.util.Map$Entry">
164+
<eStructuralFeatures xsi:type="ecore:EAttribute" name="key" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
165+
<eStructuralFeatures xsi:type="ecore:EReference" name="value" eType="#//Recipe"/>
166+
</eClassifiers>
167+
</ecore:EPackage>
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
2+
=== HEADER ===
3+
4+
=== BODY ===
5+
6+
Bullet list in template for construct
7+
[query: .toBulletList('hello,bullets,world')]
8+
=== FOOTER ===
9+
10+
=== TEMPLATES ===
11+
12+
template toBulletList (s : java.lang.String)
13+
14+
for word | .tokenize(s, ',') do
15+
[query: word]
16+
endfor
17+

tests/org.obeonetwork.m2doc.tests/resources/template/bug533/bug533-expected-generation-messages.txt

Whitespace-only changes.
Binary file not shown.

tests/org.obeonetwork.m2doc.tests/resources/template/bug533/bug533-expected-validation.docx

Whitespace-only changes.
Binary file not shown.
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<genconf:Generation xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:genconf="http://www.obeonetwork.org/m2doc/genconf/1.0" name="bug399" templateFileName="bug399-template.docx" resultFileName="bug399-actual-generation.docx" validationFileName="bug399-actual-validation.docx">
3+
</genconf:Generation>

0 commit comments

Comments
 (0)