Skip to content

Commit d0c83de

Browse files
add wrapper doc (#1)
* add wrapper doc * add license
1 parent ce2b56c commit d0c83de

File tree

11 files changed

+346
-211
lines changed

11 files changed

+346
-211
lines changed

src/main/java/io/github/project/openubl/xmlbuilderlib/facade/DocumentFacade.java

Lines changed: 42 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -70,86 +70,100 @@ private static void validateInput(Object input) {
7070
}
7171
}
7272

73-
public static String createXML(InvoiceInputModel input, XMLBuilderConfig config) {
73+
public static DocumentWrapper<InvoiceOutputModel> createXML(InvoiceInputModel input, XMLBuilderConfig config) {
7474
validateInput(input);
7575
InvoiceOutputModel output = InputToOutput.toOutput(input, config, getDefaultSystemClock());
76-
return FreemarkerExecutor.createXML(output);
76+
String xml = FreemarkerExecutor.createXML(output);
77+
return new DocumentWrapper<>(xml, output);
7778
}
7879

79-
public static String createXML(InvoiceInputModel input, XMLBuilderConfig config, SystemClock systemClock) {
80+
public static DocumentWrapper<InvoiceOutputModel> createXML(InvoiceInputModel input, XMLBuilderConfig config, SystemClock systemClock) {
8081
validateInput(input);
8182
InvoiceOutputModel output = InputToOutput.toOutput(input, config, systemClock);
82-
return FreemarkerExecutor.createXML(output);
83+
String xml = FreemarkerExecutor.createXML(output);
84+
return new DocumentWrapper<>(xml, output);
8385
}
8486

85-
public static String createXML(CreditNoteInputModel input, XMLBuilderConfig config) {
87+
public static DocumentWrapper<CreditNoteOutputModel> createXML(CreditNoteInputModel input, XMLBuilderConfig config) {
8688
validateInput(input);
8789
CreditNoteOutputModel output = InputToOutput.toOutput(input, config, getDefaultSystemClock());
88-
return FreemarkerExecutor.createXML(output);
90+
String xml = FreemarkerExecutor.createXML(output);
91+
return new DocumentWrapper<>(xml, output);
8992
}
9093

91-
public static String createXML(CreditNoteInputModel input, XMLBuilderConfig config, SystemClock systemClock) {
94+
public static DocumentWrapper<CreditNoteOutputModel> createXML(CreditNoteInputModel input, XMLBuilderConfig config, SystemClock systemClock) {
9295
validateInput(input);
9396
CreditNoteOutputModel output = InputToOutput.toOutput(input, config, systemClock);
94-
return FreemarkerExecutor.createXML(output);
97+
String xml = FreemarkerExecutor.createXML(output);
98+
return new DocumentWrapper<>(xml, output);
9599
}
96100

97-
public static String createXML(DebitNoteInputModel input, XMLBuilderConfig config) {
101+
public static DocumentWrapper<DebitNoteOutputModel> createXML(DebitNoteInputModel input, XMLBuilderConfig config) {
98102
validateInput(input);
99103
DebitNoteOutputModel output = InputToOutput.toOutput(input, config, getDefaultSystemClock());
100-
return FreemarkerExecutor.createXML(output);
104+
String xml = FreemarkerExecutor.createXML(output);
105+
return new DocumentWrapper<>(xml, output);
101106
}
102107

103-
public static String createXML(DebitNoteInputModel input, XMLBuilderConfig config, SystemClock systemClock) {
108+
public static DocumentWrapper<DebitNoteOutputModel> createXML(DebitNoteInputModel input, XMLBuilderConfig config, SystemClock systemClock) {
104109
DebitNoteOutputModel output = InputToOutput.toOutput(input, config, systemClock);
105-
return FreemarkerExecutor.createXML(output);
110+
String xml = FreemarkerExecutor.createXML(output);
111+
return new DocumentWrapper<>(xml, output);
106112
}
107113

108-
public static String createXML(VoidedDocumentInputModel input, XMLBuilderConfig config) {
114+
public static DocumentWrapper<VoidedDocumentOutputModel> createXML(VoidedDocumentInputModel input, XMLBuilderConfig config) {
109115
validateInput(input);
110116
VoidedDocumentOutputModel output = InputToOutput.toOutput(input, config, getDefaultSystemClock());
111-
return FreemarkerExecutor.createXML(output);
117+
String xml = FreemarkerExecutor.createXML(output);
118+
return new DocumentWrapper<>(xml, output);
112119
}
113120

114-
public static String createXML(VoidedDocumentInputModel input, XMLBuilderConfig config, SystemClock systemClock) {
121+
public static DocumentWrapper<VoidedDocumentOutputModel> createXML(VoidedDocumentInputModel input, XMLBuilderConfig config, SystemClock systemClock) {
115122
validateInput(input);
116123
VoidedDocumentOutputModel output = InputToOutput.toOutput(input, config, systemClock);
117-
return FreemarkerExecutor.createXML(output);
124+
String xml = FreemarkerExecutor.createXML(output);
125+
return new DocumentWrapper<>(xml, output);
118126
}
119127

120-
public static String createXML(SummaryDocumentInputModel input, XMLBuilderConfig config) {
128+
public static DocumentWrapper<SummaryDocumentOutputModel> createXML(SummaryDocumentInputModel input, XMLBuilderConfig config) {
121129
validateInput(input);
122130
SummaryDocumentOutputModel output = InputToOutput.toOutput(input, config, getDefaultSystemClock());
123-
return FreemarkerExecutor.createXML(output);
131+
String xml = FreemarkerExecutor.createXML(output);
132+
return new DocumentWrapper<>(xml, output);
124133
}
125134

126-
public static String createXML(SummaryDocumentInputModel input, XMLBuilderConfig config, SystemClock systemClock) {
135+
public static DocumentWrapper<SummaryDocumentOutputModel> createXML(SummaryDocumentInputModel input, XMLBuilderConfig config, SystemClock systemClock) {
127136
validateInput(input);
128137
SummaryDocumentOutputModel output = InputToOutput.toOutput(input, config, systemClock);
129-
return FreemarkerExecutor.createXML(output);
138+
String xml = FreemarkerExecutor.createXML(output);
139+
return new DocumentWrapper<>(xml, output);
130140
}
131141

132-
public static String createXML(PerceptionInputModel input, XMLBuilderConfig config) {
142+
public static DocumentWrapper<PerceptionOutputModel> createXML(PerceptionInputModel input, XMLBuilderConfig config) {
133143
validateInput(input);
134144
PerceptionOutputModel output = InputToOutput.toOutput(input, config, getDefaultSystemClock());
135-
return FreemarkerExecutor.createXML(output);
145+
String xml = FreemarkerExecutor.createXML(output);
146+
return new DocumentWrapper<>(xml, output);
136147
}
137148

138-
public static String createXML(PerceptionInputModel input, XMLBuilderConfig config, SystemClock systemClock) {
149+
public static DocumentWrapper<PerceptionOutputModel> createXML(PerceptionInputModel input, XMLBuilderConfig config, SystemClock systemClock) {
139150
validateInput(input);
140151
PerceptionOutputModel output = InputToOutput.toOutput(input, config, systemClock);
141-
return FreemarkerExecutor.createXML(output);
152+
String xml = FreemarkerExecutor.createXML(output);
153+
return new DocumentWrapper<>(xml, output);
142154
}
143155

144-
public static String createXML(RetentionInputModel input, XMLBuilderConfig config) {
156+
public static DocumentWrapper<RetentionOutputModel> createXML(RetentionInputModel input, XMLBuilderConfig config) {
145157
validateInput(input);
146158
RetentionOutputModel output = InputToOutput.toOutput(input, config, getDefaultSystemClock());
147-
return FreemarkerExecutor.createXML(output);
159+
String xml = FreemarkerExecutor.createXML(output);
160+
return new DocumentWrapper<>(xml, output);
148161
}
149162

150-
public static String createXML(RetentionInputModel input, XMLBuilderConfig config, SystemClock systemClock) {
163+
public static DocumentWrapper<RetentionOutputModel> createXML(RetentionInputModel input, XMLBuilderConfig config, SystemClock systemClock) {
151164
validateInput(input);
152165
RetentionOutputModel output = InputToOutput.toOutput(input, config, systemClock);
153-
return FreemarkerExecutor.createXML(output);
166+
String xml = FreemarkerExecutor.createXML(output);
167+
return new DocumentWrapper<>(xml, output);
154168
}
155169
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
/**
2+
* Copyright 2019 Project OpenUBL, Inc. and/or its affiliates
3+
* and other contributors as indicated by the @author tags.
4+
*
5+
* Licensed under the Eclipse Public License - v 2.0 (the "License");
6+
* you may not use this file except in compliance with the License.
7+
* You may obtain a copy of the License at
8+
*
9+
* https://www.eclipse.org/legal/epl-2.0/
10+
*
11+
* Unless required by applicable law or agreed to in writing, software
12+
* distributed under the License is distributed on an "AS IS" BASIS,
13+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
* See the License for the specific language governing permissions and
15+
* limitations under the License.
16+
*/
17+
package io.github.project.openubl.xmlbuilderlib.facade;
18+
19+
public class DocumentWrapper<T> {
20+
21+
private final String xml;
22+
private final T output;
23+
24+
public DocumentWrapper(String xml, T output) {
25+
this.xml = xml;
26+
this.output = output;
27+
}
28+
29+
public String getXml() {
30+
return xml;
31+
}
32+
33+
public T getOutput() {
34+
return output;
35+
}
36+
37+
}

src/test/java/io/github/project/openubl/xmlbuilderlib/integrationtest/ubl/creditnote/mindata/CreditNoteMinDataTest.java

Lines changed: 31 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,14 @@
1717
package io.github.project.openubl.xmlbuilderlib.integrationtest.ubl.creditnote.mindata;
1818

1919
import io.github.project.openubl.xmlbuilderlib.facade.DocumentFacade;
20+
import io.github.project.openubl.xmlbuilderlib.facade.DocumentWrapper;
2021
import io.github.project.openubl.xmlbuilderlib.integrationtest.AbstractUBLTest;
2122
import io.github.project.openubl.xmlbuilderlib.models.catalogs.Catalog6;
2223
import io.github.project.openubl.xmlbuilderlib.models.input.common.ClienteInputModel;
2324
import io.github.project.openubl.xmlbuilderlib.models.input.common.ProveedorInputModel;
2425
import io.github.project.openubl.xmlbuilderlib.models.input.standard.DocumentLineInputModel;
2526
import io.github.project.openubl.xmlbuilderlib.models.input.standard.note.creditNote.CreditNoteInputModel;
2627
import io.github.project.openubl.xmlbuilderlib.models.output.standard.note.creditNote.CreditNoteOutputModel;
27-
import io.github.project.openubl.xmlbuilderlib.utils.InputToOutput;
2828
import org.junit.jupiter.api.Test;
2929

3030
import java.math.BigDecimal;
@@ -69,8 +69,9 @@ public void testCreditNoteWithMinDataSent_customerWithRuc() throws Exception {
6969
.build();
7070

7171
// When
72-
CreditNoteOutputModel output = InputToOutput.toOutput(input, config, systemClock);
73-
String xml = DocumentFacade.createXML(input, config, systemClock);
72+
DocumentWrapper<CreditNoteOutputModel> result = DocumentFacade.createXML(input, config, systemClock);
73+
CreditNoteOutputModel output = result.getOutput();
74+
String xml = result.getXml();
7475

7576
// Then
7677
assertOutputHasNoConstraintViolations(validator, output);
@@ -112,8 +113,9 @@ void testCreditNoteWithMinDataSent_customerWithDni() throws Exception {
112113
.build();
113114

114115
// When
115-
CreditNoteOutputModel output = InputToOutput.toOutput(input, config, systemClock);
116-
String xml = DocumentFacade.createXML(input, config, systemClock);
116+
DocumentWrapper<CreditNoteOutputModel> result = DocumentFacade.createXML(input, config, systemClock);
117+
CreditNoteOutputModel output = result.getOutput();
118+
String xml = result.getXml();
117119

118120
// Then
119121
assertOutputHasNoConstraintViolations(validator, output);
@@ -155,8 +157,9 @@ void testCreditNoteWithMinDataSent_customerWithDocTribNoDomSinRuc() throws Excep
155157
.build();
156158

157159
// When
158-
CreditNoteOutputModel output = InputToOutput.toOutput(input, config, systemClock);
159-
String xml = DocumentFacade.createXML(input, config, systemClock);
160+
DocumentWrapper<CreditNoteOutputModel> result = DocumentFacade.createXML(input, config, systemClock);
161+
CreditNoteOutputModel output = result.getOutput();
162+
String xml = result.getXml();
160163

161164
// Then
162165
assertOutputHasNoConstraintViolations(validator, output);
@@ -198,8 +201,9 @@ void testCreditNoteWithMinDataSent_customerWithExtranjeria() throws Exception {
198201
.build();
199202

200203
// When
201-
CreditNoteOutputModel output = InputToOutput.toOutput(input, config, systemClock);
202-
String xml = DocumentFacade.createXML(input, config, systemClock);
204+
DocumentWrapper<CreditNoteOutputModel> result = DocumentFacade.createXML(input, config, systemClock);
205+
CreditNoteOutputModel output = result.getOutput();
206+
String xml = result.getXml();
203207

204208
// Then
205209
assertOutputHasNoConstraintViolations(validator, output);
@@ -241,8 +245,9 @@ void testCreditNoteWithMinDataSent_customerWithPasaporte() throws Exception {
241245
.build();
242246

243247
// When
244-
CreditNoteOutputModel output = InputToOutput.toOutput(input, config, systemClock);
245-
String xml = DocumentFacade.createXML(input, config, systemClock);
248+
DocumentWrapper<CreditNoteOutputModel> result = DocumentFacade.createXML(input, config, systemClock);
249+
CreditNoteOutputModel output = result.getOutput();
250+
String xml = result.getXml();
246251

247252
// Then
248253
assertOutputHasNoConstraintViolations(validator, output);
@@ -284,8 +289,9 @@ void testCreditNoteWithMinDataSent_customerWithDecDiplomatica() throws Exception
284289
.build();
285290

286291
// When
287-
CreditNoteOutputModel output = InputToOutput.toOutput(input, config, systemClock);
288-
String xml = DocumentFacade.createXML(input, config, systemClock);
292+
DocumentWrapper<CreditNoteOutputModel> result = DocumentFacade.createXML(input, config, systemClock);
293+
CreditNoteOutputModel output = result.getOutput();
294+
String xml = result.getXml();
289295

290296
// Then
291297
assertOutputHasNoConstraintViolations(validator, output);
@@ -327,8 +333,9 @@ void testCreditNoteWithMinDataSent_usePrecioUnitario() throws Exception {
327333
.build();
328334

329335
// When
330-
CreditNoteOutputModel output = InputToOutput.toOutput(input, config, systemClock);
331-
String xml = DocumentFacade.createXML(input, config, systemClock);
336+
DocumentWrapper<CreditNoteOutputModel> result = DocumentFacade.createXML(input, config, systemClock);
337+
CreditNoteOutputModel output = result.getOutput();
338+
String xml = result.getXml();
332339

333340
// Then
334341
assertOutputHasNoConstraintViolations(validator, output);
@@ -370,8 +377,9 @@ void testCreditNoteWithMinDataSent_usePrecioConIgv() throws Exception {
370377
.build();
371378

372379
// When
373-
CreditNoteOutputModel output = InputToOutput.toOutput(input, config, systemClock);
374-
String xml = DocumentFacade.createXML(input, config, systemClock);
380+
DocumentWrapper<CreditNoteOutputModel> result = DocumentFacade.createXML(input, config, systemClock);
381+
CreditNoteOutputModel output = result.getOutput();
382+
String xml = result.getXml();
375383

376384
// Then
377385
assertOutputHasNoConstraintViolations(validator, output);
@@ -413,8 +421,9 @@ void testCreditNoteWithMinDataSent_usePrecioUnitarioAndCantidadThreeDecimals() t
413421
.build();
414422

415423
// When
416-
CreditNoteOutputModel output = InputToOutput.toOutput(input, config, systemClock);
417-
String xml = DocumentFacade.createXML(input, config, systemClock);
424+
DocumentWrapper<CreditNoteOutputModel> result = DocumentFacade.createXML(input, config, systemClock);
425+
CreditNoteOutputModel output = result.getOutput();
426+
String xml = result.getXml();
418427

419428
// Then
420429
assertOutputHasNoConstraintViolations(validator, output);
@@ -456,8 +465,9 @@ void testCreditNoteWithMinDataSent_usePrecioConIgvAndCantidadThreeDecimals() thr
456465
.build();
457466

458467
// When
459-
CreditNoteOutputModel output = InputToOutput.toOutput(input, config, systemClock);
460-
String xml = DocumentFacade.createXML(input, config, systemClock);
468+
DocumentWrapper<CreditNoteOutputModel> result = DocumentFacade.createXML(input, config, systemClock);
469+
CreditNoteOutputModel output = result.getOutput();
470+
String xml = result.getXml();
461471

462472
// Then
463473
assertOutputHasNoConstraintViolations(validator, output);

src/test/java/io/github/project/openubl/xmlbuilderlib/integrationtest/ubl/creditnote/tiponota/CreditNoteTipoNotaTest.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package io.github.project.openubl.xmlbuilderlib.integrationtest.ubl.creditnote.tiponota;
1818

1919
import io.github.project.openubl.xmlbuilderlib.facade.DocumentFacade;
20+
import io.github.project.openubl.xmlbuilderlib.facade.DocumentWrapper;
2021
import io.github.project.openubl.xmlbuilderlib.integrationtest.AbstractUBLTest;
2122
import io.github.project.openubl.xmlbuilderlib.models.catalogs.Catalog6;
2223
import io.github.project.openubl.xmlbuilderlib.models.catalogs.Catalog9;
@@ -25,7 +26,6 @@
2526
import io.github.project.openubl.xmlbuilderlib.models.input.standard.DocumentLineInputModel;
2627
import io.github.project.openubl.xmlbuilderlib.models.input.standard.note.creditNote.CreditNoteInputModel;
2728
import io.github.project.openubl.xmlbuilderlib.models.output.standard.note.creditNote.CreditNoteOutputModel;
28-
import io.github.project.openubl.xmlbuilderlib.utils.InputToOutput;
2929
import org.junit.jupiter.api.Test;
3030

3131
import java.math.BigDecimal;
@@ -73,8 +73,9 @@ void testCreditNoteTipoNota_GravadoOnerosa_precioUnitario() throws Exception {
7373

7474

7575
// When
76-
CreditNoteOutputModel output = InputToOutput.toOutput(input, config, systemClock);
77-
String xml = DocumentFacade.createXML(input, config, systemClock);
76+
DocumentWrapper<CreditNoteOutputModel> result = DocumentFacade.createXML(input, config, systemClock);
77+
CreditNoteOutputModel output = result.getOutput();
78+
String xml = result.getXml();
7879

7980
// Then
8081
assertOutputHasNoConstraintViolations(validator, output);

0 commit comments

Comments
 (0)