Skip to content

Commit 0f1ebce

Browse files
committed
Use structured addresses in examples
1 parent 293f2f4 commit 0f1ebce

File tree

8 files changed

+111
-75
lines changed

8 files changed

+111
-75
lines changed

README.md

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -77,8 +77,10 @@ To generate a QR bill, you first fill in the `Bill` data structure and then call
7777
// Set creditor
7878
Address creditor = new Address();
7979
creditor.setName("Robert Schneider AG");
80-
creditor.setAddressLine1("Rue du Lac 1268/2/22");
81-
creditor.setAddressLine2("2501 Biel");
80+
creditor.setStreet("Rue du Lac");
81+
creditor.setHouseNo("1268/2/22");
82+
creditor.setPostalCode("2501");
83+
creditor.setTown("Biel");
8284
creditor.setCountryCode("CH");
8385
bill.setCreditor(creditor);
8486

@@ -89,16 +91,19 @@ To generate a QR bill, you first fill in the `Bill` data structure and then call
8991
// Set debtor
9092
Address debtor = new Address();
9193
debtor.setName("Pia-Maria Rutschmann-Schnyder");
92-
debtor.setAddressLine1("Grosse Marktgasse 28");
93-
debtor.setAddressLine2("9400 Rorschach");
94+
debtor.setStreet("Grosse Marktgasse");
95+
debtor.setHouseNo("28");
96+
debtor.setPostalCode("9400");
97+
debtor.setTown("Rorschach");
9498
debtor.setCountryCode("CH");
9599
bill.setDebtor(debtor);
96100

97101
// Set output format
98-
BillFormat format = bill.getFormat();
102+
BillFormat format = new BillFormat();
99103
format.setGraphicsFormat(GraphicsFormat.SVG);
100104
format.setOutputSize(OutputSize.QR_BILL_ONLY);
101105
format.setLanguage(Language.DE);
106+
bill.setFormat(format);
102107

103108
// Generate QR bill
104109
byte[] svg = QRBill.generate(bill);

examples/append_to_pdf/src/main/java/net/codecrete/qrbill/examples/AppendToPDF.java

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public static void main(String[] args) throws URISyntaxException, IOException {
3333
// Setup bill format
3434
Bill bill = new Bill();
3535
bill.getFormat().setLanguage(Language.DE);
36-
bill.getFormat().setOutputSize(OutputSize.QR_CODE_ONLY);
36+
bill.getFormat().setOutputSize(OutputSize.QR_BILL_ONLY);
3737

3838
// Set account and amount
3939
bill.setAccount("CH48 0900 0000 8575 7337 2");
@@ -43,8 +43,10 @@ public static void main(String[] args) throws URISyntaxException, IOException {
4343
// Set creditor
4444
Address creditor = new Address();
4545
creditor.setName("Omnia Trading AG");
46-
creditor.setAddressLine1("Allmendweg 30");
47-
creditor.setAddressLine2("4528 Zuchwil");
46+
creditor.setStreet("Allmendweg");
47+
creditor.setHouseNo("30");
48+
creditor.setPostalCode("4528");
49+
creditor.setTown("Zuchwil");
4850
creditor.setCountryCode("CH");
4951
bill.setCreditor(creditor);
5052

@@ -55,8 +57,10 @@ public static void main(String[] args) throws URISyntaxException, IOException {
5557
// Set debtor
5658
Address debtor = new Address();
5759
debtor.setName("Machina Futura AG");
58-
debtor.setAddressLine1("Alte Fabrik 3A");
59-
debtor.setAddressLine2("8400 Winterthur");
60+
debtor.setStreet("Alte Fabrik");
61+
debtor.setHouseNo("3A");
62+
debtor.setPostalCode("8400");
63+
debtor.setTown("Winterthur");
6064
debtor.setCountryCode("CH");
6165
bill.setDebtor(debtor);
6266

examples/gradle_example/src/main/java/net/codecrete/qrbill/examples/QRBillExample.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,10 @@ public static void main(String[] args) {
3333
// Set creditor
3434
Address creditor = new Address();
3535
creditor.setName("Robert Schneider AG");
36-
creditor.setAddressLine1("Rue du Lac 1268/2/22");
37-
creditor.setAddressLine2("2501 Biel");
36+
creditor.setStreet("Rue du Lac");
37+
creditor.setHouseNo("1268/2/22");
38+
creditor.setPostalCode("2501");
39+
creditor.setTown("Biel");
3840
creditor.setCountryCode("CH");
3941
bill.setCreditor(creditor);
4042

@@ -45,8 +47,10 @@ public static void main(String[] args) {
4547
// Set debtor
4648
Address debtor = new Address();
4749
debtor.setName("Pia-Maria Rutschmann-Schnyder");
48-
debtor.setAddressLine1("Grosse Marktgasse 28");
49-
debtor.setAddressLine2("9400 Rorschach");
50+
debtor.setStreet("Grosse Marktgasse");
51+
debtor.setHouseNo("28");
52+
debtor.setPostalCode("9400");
53+
debtor.setTown("Rorschach");
5054
debtor.setCountryCode("CH");
5155
bill.setDebtor(debtor);
5256

examples/jasper_reports_rendering/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
<dependency>
3333
<groupId>net.codecrete.qrbill</groupId>
3434
<artifactId>qrbill-generator</artifactId>
35-
<version>[3.0.0,3.999999]</version>
35+
<version>[3.3.0,3.999999]</version>
3636
</dependency>
3737
</dependencies>
3838

examples/jasper_reports_rendering/src/main/java/net/codecrete/qrbill/examples/QrBillImageDataSource.java

Lines changed: 32 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -26,15 +26,17 @@
2626
* </p>
2727
* <ul>
2828
* <li>CreditorName</li>
29-
* <li>CreditorAddressLine1</li>
30-
* <li>CreditorAddressLine2</li>
29+
* <li>CreditorStreet – optional</li>
30+
* <li>CreditorHouseNo – optional</li>
31+
* <li>CreditorPostalCode – optional</li>
32+
* <li>CreditorTown – optional</li>
3133
* <li>CreditorCountryCode</li>
3234
* <li>Account</li>
3335
* <li>DebtorName – optional</li>
34-
* <li>DebtorAddressLine1 – optional</li>
35-
* <li>DebtorAddressLine2 – optional</li>
36-
* <li>CreditorAddressLine1 – optional</li>
37-
* <li>CreditorAddressLine2 – optional</li>
36+
* <li>DebtorStreet – optional</li>
37+
* <li>DebtorHouseNo – optional</li>
38+
* <li>DebtorPostalCode – optional</li>
39+
* <li>DebtorTown – optional</li>
3840
* <li>DebtorCountryCode – optional</li>
3941
* <li>Reference – optional</li>
4042
* <li>UnstructuredMessage – optional</li>
@@ -54,13 +56,17 @@ public class QrBillImageDataSource implements JRDataSource {
5456
public static final String FIELD_QR_BILL_IMAGE = "QrBillImage";
5557

5658
public static final String INPUT_FIELD_CREDITOR_NAME = "CreditorName";
57-
public static final String INPUT_FIELD_CREDITOR_ADDRESS_LINE_1 = "CreditorAddressLine1";
58-
public static final String INPUT_FIELD_CREDITOR_ADDRESS_LINE_2 = "CreditorAddressLine2";
59+
public static final String INPUT_FIELD_CREDITOR_STREET = "CreditorStreet";
60+
public static final String INPUT_FIELD_CREDITOR_HOUSE_NO = "CreditorHouseNo";
61+
public static final String INPUT_FIELD_CREDITOR_POSTAL_CODE = "CreditorPostalCode";
62+
public static final String INPUT_FIELD_CREDITOR_TOWN = "CreditorTown";
5963
public static final String INPUT_FIELD_CREDITOR_COUNTRY_CODE = "CreditorCountryCode";
6064
public static final String INPUT_FIELD_ACCOUNT = "Account";
6165
public static final String INPUT_FIELD_DEBTOR_NAME = "DebtorName";
62-
public static final String INPUT_FIELD_DEBTOR_ADDRESS_LINE_1 = "DebtorAddressLine1";
63-
public static final String INPUT_FIELD_DEBTOR_ADDRESS_LINE_2 = "DebtorAddressLine2";
66+
public static final String INPUT_FIELD_DEBTOR_STREET = "DebtorStreet";
67+
public static final String INPUT_FIELD_DEBTOR_HOUSE_NO = "DebtorHouseNo";
68+
public static final String INPUT_FIELD_DEBTOR_POSTAL_CODE = "DebtorPostalCode";
69+
public static final String INPUT_FIELD_DEBTOR_TOWN = "DebtorTown";
6470
public static final String INPUT_FIELD_DEBTOR_COUNTRY_CODE = "DebtorCountryCode";
6571
public static final String INPUT_FIELD_REFERENCE = "Reference";
6672
public static final String INPUT_FIELD_UNSTRUCTURED_MESSAGE = "UnstructuredMessage";
@@ -76,13 +82,17 @@ public class QrBillImageDataSource implements JRDataSource {
7682

7783
private void initFieldNameMap() {
7884
addFieldNameMapping(INPUT_FIELD_CREDITOR_NAME);
79-
addFieldNameMapping(INPUT_FIELD_CREDITOR_ADDRESS_LINE_1);
80-
addFieldNameMapping(INPUT_FIELD_CREDITOR_ADDRESS_LINE_2);
85+
addFieldNameMapping(INPUT_FIELD_CREDITOR_STREET);
86+
addFieldNameMapping(INPUT_FIELD_CREDITOR_HOUSE_NO);
87+
addFieldNameMapping(INPUT_FIELD_CREDITOR_POSTAL_CODE);
88+
addFieldNameMapping(INPUT_FIELD_CREDITOR_TOWN);
8189
addFieldNameMapping(INPUT_FIELD_CREDITOR_COUNTRY_CODE);
8290
addFieldNameMapping(INPUT_FIELD_ACCOUNT);
8391
addFieldNameMapping(INPUT_FIELD_DEBTOR_NAME);
84-
addFieldNameMapping(INPUT_FIELD_DEBTOR_ADDRESS_LINE_1);
85-
addFieldNameMapping(INPUT_FIELD_DEBTOR_ADDRESS_LINE_2);
92+
addFieldNameMapping(INPUT_FIELD_DEBTOR_STREET);
93+
addFieldNameMapping(INPUT_FIELD_DEBTOR_HOUSE_NO);
94+
addFieldNameMapping(INPUT_FIELD_DEBTOR_POSTAL_CODE);
95+
addFieldNameMapping(INPUT_FIELD_DEBTOR_TOWN);
8696
addFieldNameMapping(INPUT_FIELD_DEBTOR_COUNTRY_CODE);
8797
addFieldNameMapping(INPUT_FIELD_REFERENCE);
8898
addFieldNameMapping(INPUT_FIELD_UNSTRUCTURED_MESSAGE);
@@ -177,16 +187,20 @@ protected void createBill() throws JRException {
177187

178188
var creditor = new Address();
179189
creditor.setName(getStringValue(INPUT_FIELD_CREDITOR_NAME));
180-
creditor.setAddressLine1(getStringValue(INPUT_FIELD_CREDITOR_ADDRESS_LINE_1));
181-
creditor.setAddressLine2(getStringValue(INPUT_FIELD_CREDITOR_ADDRESS_LINE_2));
190+
creditor.setStreet(getStringValue(INPUT_FIELD_CREDITOR_STREET));
191+
creditor.setHouseNo(getStringValue(INPUT_FIELD_CREDITOR_HOUSE_NO));
192+
creditor.setPostalCode(getStringValue(INPUT_FIELD_CREDITOR_POSTAL_CODE));
193+
creditor.setTown(getStringValue(INPUT_FIELD_CREDITOR_TOWN));
182194
creditor.setCountryCode(getStringValue(INPUT_FIELD_CREDITOR_COUNTRY_CODE));
183195
bill.setCreditor(creditor);
184196
bill.setAccount(getStringValue(INPUT_FIELD_ACCOUNT));
185197

186198
var debtor = new Address();
187199
debtor.setName(getStringValue(INPUT_FIELD_DEBTOR_NAME));
188-
debtor.setAddressLine1(getStringValue(INPUT_FIELD_DEBTOR_ADDRESS_LINE_1));
189-
debtor.setAddressLine2(getStringValue(INPUT_FIELD_DEBTOR_ADDRESS_LINE_2));
200+
debtor.setStreet(getStringValue(INPUT_FIELD_DEBTOR_STREET));
201+
debtor.setHouseNo(getStringValue(INPUT_FIELD_DEBTOR_HOUSE_NO));
202+
debtor.setPostalCode(getStringValue(INPUT_FIELD_DEBTOR_POSTAL_CODE));
203+
debtor.setTown(getStringValue(INPUT_FIELD_DEBTOR_TOWN));
190204
debtor.setCountryCode(getStringValue(INPUT_FIELD_DEBTOR_COUNTRY_CODE));
191205
bill.setDebtor(debtor);
192206

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
InvoiceNumber,CreditorName,CreditorAddressLine1,CreditorAddressLine2,CreditorCountryCode,Account,Reference,UnstructuredMessage,BillInformation,DebtorName,DebtorAddressLine1,DebtorAddressLine2,DebtorCountryCode,Currency,Amount,Language
2-
1,Mordasini Architekten,Ackerstrasse 28,4057 Basel,CH,CH93666701BCX8EPX5F02,RF1910037484,Ref 10037484,,Alexandra Fankhauser,Hulmenweg 25,8352 Frauenfeld,CH,CHF,40.50,IT
3-
2,Frey Camponovo SA,Aeneas Silvius-Strasse 28,9500 St. Gallen,CH,CH0828791JBHR7DKK50N9,,Bestellungsreferenz 3829203,,Jorim Peter,Camoletti 28,4051 Locarno,CH,CHF,300.00,DE
4-
3,Chiesa Pellegrini SA,Naphtastrasse 15,8005 Richterswil,CH,CH3337859H8W8Z84402FI,RF4923409BCYZ230,,//S1/10/802277/11/2007012107/20/55878/30/109532551/32/7.7/40/0:30,Alexander Leuthold,Chemin Wiliam-Barbey 7,1292 Genève,CH,CHF,2832.25,DE
5-
4,Swisstech AG,Rue Jean-Jaquet 10,1202 Versoix,CH,CH39 3016 2R48 39C9 8000 1,8 76300 65822 54397,,,Eduard Thomann,Industriestrasse 12,8604 Uster,CH,CHF,928.20,FR
6-
5,Markt Monitoring AG,Rue du Lac 16,1207 Meyrin,CH,CH04 3005 8823 7392 0BC0 1,9 00027 23849 31830,,,Sanna Thönen,Spitzwiesenstrasse 3,8957 Baden,CH,CHF,770.45,DE
7-
6,Klink Klingenstein,Sonnenhofweg 16,3006 Uznach,CH,CH38445968XH2M35XYKH6,,,//S1/10/10201409/11/190512/20/1400.000-53/30/106017086/31/180508/32/7.7/40/2:10;0:30,Frida Gassmann,Chemin des Vallières 17,1295 Nyon,CH,CHF,2012.50,DE
8-
7,Carrosserie Meyer AG,Technikumstrasse 30,8400 Zürich,CH,CH8233989K7S515W72SGU,,,,Leonie Zürcher,Weinbergstrasse 31,5502 Hunzenschwil,CH,EUR,2348.10,DE
9-
8,Schreinerei Habegger & Söhne,Uetlibergstrasse 138,8045 Zürich,CH,CH45 0023 0230 9999 9999 A,RF19 2320 QF02 T323 4UI2 34,Rechnungsnr. 10978 / Auftragsrnr. 3987,,Simon Glarner,Bächliwis 55,8184 Bachenbülach,CH,CHF,287.30,DE
10-
9,Gromion SA,Avenue Fornachon 34,2034 Peseux,CH,CH95 0020 6206 1057 2901 J,RF23 T208 3QFT 2800 291F,,,Céline Pythoud,Chemin du Grand Record 42,1040 Échallens,CH,CHF,371.20,FR
11-
10,Robert Schneider AG,Rue du Lac 1268/2/22,2501 Biel,CH,CH44 3199 9123 0008 8901 2,21 00000 00003 13947 14300 09017,Instruction of 15.09.2019,//S1/01/20170309/11/10201409/20/14000000/22/36958/30/CH106017086/40/1020/41/3010,Pia-Maria Rutschmann-Schnyder,Grosse Marktgasse 28,9400 Rorschach,CH,CHF,123949.75,DE
1+
InvoiceNumber,CreditorName,CreditorStreet,CreditorHouseNo,CreditorPostalCode,CreditorTown,CreditorCountryCode,Account,Reference,UnstructuredMessage,BillInformation,DebtorName,DebtorStreet,DebtorHouseNo,DebtorPostalCode,DebtorTown,DebtorCountryCode,Currency,Amount,Language
2+
1,Mordasini Architekten,Ackerstrasse,28,4057,Basel,CH,CH93666701BCX8EPX5F02,RF1910037484,Ref 10037484,,Alexandra Fankhauser,Hulmenweg,25,8352,Frauenfeld,CH,CHF,40.50,IT
3+
2,Frey Camponovo SA,Aeneas Silvius-Strasse,28,9500,St. Gallen,CH,CH0828791JBHR7DKK50N9,,Bestellungsreferenz 3829203,,Jorim Peter,Camoletti,28,4051,Locarno,CH,CHF,300.00,DE
4+
3,Chiesa Pellegrini SA,Naphtastrasse,15,8005,Richterswil,CH,CH3337859H8W8Z84402FI,RF4923409BCYZ230,,//S1/10/802277/11/2007012107/20/55878/30/109532551/32/7.7/40/0:30,Alexander Leuthold,Chemin Wiliam-Barbey,7,1292,Genève,CH,CHF,2832.25,DE
5+
4,Swisstech AG,Rue Jean-Jaquet,10,1202,Versoix,CH,CH39 3016 2R48 39C9 8000 1,8 76300 65822 54397,,,Eduard Thomann,Industriestrasse,12,8604,Uster,CH,CHF,928.20,FR
6+
5,Markt Monitoring AG,Rue du Lac,16,1207,Meyrin,CH,CH04 3005 8823 7392 0BC0 1,9 00027 23849 31830,,,Sanna Thönen,Spitzwiesenstrasse,3,8957,Baden,CH,CHF,770.45,DE
7+
6,Klink Klingenstein,Sonnenhofweg,16,3006,Uznach,CH,CH38445968XH2M35XYKH6,,,//S1/10/10201409/11/190512/20/1400.000-53/30/106017086/31/180508/32/7.7/40/2:10;0:30,Frida Gassmann,Chemin des Vallières,17,1295,Nyon,CH,CHF,2012.50,DE
8+
7,Carrosserie Meyer AG,Technikumstrasse,30,8400,Zürich,CH,CH8233989K7S515W72SGU,,,,Leonie Zürcher,Weinbergstrasse,31,5502,Hunzenschwil,CH,EUR,2348.10,DE
9+
8,Schreinerei Habegger & Söhne,Uetlibergstrasse,138,8045,Zürich,CH,CH45 0023 0230 9999 9999 A,RF19 2320 QF02 T323 4UI2 34,Rechnungsnr. 10978 / Auftragsrnr. 3987,,Simon Glarner,Bächliwis,55,8184,Bachenbülach,CH,CHF,287.30,DE
10+
9,Gromion SA,Avenue Fornachon,34,2034,Peseux,CH,CH95 0020 6206 1057 2901 J,RF23 T208 3QFT 2800 291F,,,Céline Pythoud,Chemin du Grand Record,42,1040,Échallens,CH,CHF,371.20,FR
11+
10,Robert Schneider AG,Rue du Lac,1268/2/22,2501,Biel,CH,CH44 3199 9123 0008 8901 2,21 00000 00003 13947 14300 09017,Instruction of 15.09.2019,//S1/01/20170309/11/10201409/20/14000000/22/36958/30/CH106017086/40/1020/41/3010,Pia-Maria Rutschmann-Schnyder,Grosse Marktgasse,28,9400,Rorschach,CH,CHF,123949.75,DE

examples/kotlin_example/src/main/kotlin/main.kt

Lines changed: 32 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -22,37 +22,42 @@ import java.nio.file.Paths
2222
fun main() {
2323

2424
// Setup bill
25-
val bill = Bill()
26-
bill.account = "CH4431999123000889012"
27-
bill.setAmountFromDouble(199.95)
28-
bill.currency = "CHF"
25+
val bill = Bill().apply {
26+
account = "CH4431999123000889012"
27+
setAmountFromDouble(199.95)
28+
currency = "CHF"
2929

30-
// Set creditor
31-
val creditor = Address()
32-
creditor.name = "Robert Schneider AG"
33-
creditor.addressLine1 = "Rue du Lac 1268/2/22"
34-
creditor.addressLine2 = "2501 Biel"
35-
creditor.countryCode = "CH"
36-
bill.creditor = creditor
30+
// creditor
31+
creditor = Address().apply {
32+
name = "Robert Schneider AG"
33+
street = "Rue du Lac"
34+
houseNo = "1268/2/22"
35+
postalCode = "2501"
36+
town = "Biel"
37+
countryCode = "CH"
38+
}
3739

38-
// more bill data
39-
bill.reference = "210000000003139471430009017"
40-
bill.unstructuredMessage = "Abonnement für 2020"
40+
// more bill data
41+
reference = "210000000003139471430009017"
42+
unstructuredMessage = "Abonnement für 2020"
4143

42-
// Set debtor
43-
val debtor = Address()
44-
debtor.name = "Pia-Maria Rutschmann-Schnyder"
45-
debtor.addressLine1 = "Grosse Marktgasse 28"
46-
debtor.addressLine2 = "9400 Rorschach"
47-
debtor.countryCode = "CH"
48-
bill.debtor = debtor
44+
// debtor
45+
debtor = Address().apply {
46+
name = "Pia-Maria Rutschmann-Schnyder"
47+
street = "Grosse Marktgasse"
48+
houseNo = "28"
49+
postalCode = "9400"
50+
town = "Rorschach"
51+
countryCode = "CH"
52+
}
4953

50-
// Set output format
51-
val format = BillFormat()
52-
format.graphicsFormat = GraphicsFormat.SVG
53-
format.outputSize = OutputSize.QR_BILL_ONLY
54-
format.language = Language.DE
55-
bill.format = format
54+
// output format
55+
format = BillFormat().apply {
56+
graphicsFormat = GraphicsFormat.SVG
57+
outputSize = OutputSize.QR_BILL_ONLY
58+
language = Language.DE
59+
}
60+
}
5661

5762
// Generate QR bill
5863
val svg = QRBill.generate(bill)

examples/maven_example/src/main/java/net/codecrete/qrbill/examples/QRBillExample.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,10 @@ public static void main(String[] args) {
3333
// Set creditor
3434
Address creditor = new Address();
3535
creditor.setName("Robert Schneider AG");
36-
creditor.setAddressLine1("Rue du Lac 1268/2/22");
37-
creditor.setAddressLine2("2501 Biel");
36+
creditor.setStreet("Rue du Lac");
37+
creditor.setHouseNo("1268/2/22");
38+
creditor.setPostalCode("2501");
39+
creditor.setTown("Biel");
3840
creditor.setCountryCode("CH");
3941
bill.setCreditor(creditor);
4042

@@ -45,8 +47,10 @@ public static void main(String[] args) {
4547
// Set debtor
4648
Address debtor = new Address();
4749
debtor.setName("Pia-Maria Rutschmann-Schnyder");
48-
debtor.setAddressLine1("Grosse Marktgasse 28");
49-
debtor.setAddressLine2("9400 Rorschach");
50+
debtor.setStreet("Grosse Marktgasse");
51+
debtor.setHouseNo("28");
52+
debtor.setPostalCode("9400");
53+
debtor.setTown("Rorschach");
5054
debtor.setCountryCode("CH");
5155
bill.setDebtor(debtor);
5256

0 commit comments

Comments
 (0)