Skip to content

Commit

Permalink
Added street address.
Browse files Browse the repository at this point in the history
Added street, street no. and apartement no. in EN and PL versions to be generated in the addresssss.

Localised address string.

Added interface and implementation to provide localised address strings.
  • Loading branch information
OlgaMaciaszek committed Feb 15, 2015
1 parent 1d687c8 commit 6fa5c2d
Show file tree
Hide file tree
Showing 24 changed files with 240 additions and 202 deletions.
2 changes: 1 addition & 1 deletion src/main/java/eu/codearte/jfairy/Fairy.java
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ public final class Fairy {

@Inject
Fairy(TextProducer textProducer, PersonFactory personFactory, NetworkProducer networkProducer,
BaseProducer baseProducer, DateProducer dateProducer, Provider<CreditCard> creditCardProvider, CompanyFactory companyFactory) {
BaseProducer baseProducer, DateProducer dateProducer, Provider<CreditCard> creditCardProvider, CompanyFactory companyFactory) {
this.textProducer = textProducer;
this.personFactory = personFactory;
this.networkProducer = networkProducer;
Expand Down
1 change: 1 addition & 0 deletions src/main/java/eu/codearte/jfairy/FairyFactory.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,6 @@
* @author Jakub Kubrynski
*/
interface FairyFactory {

Fairy createFairy(Locale locale, String filePrefix);
}
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package eu.codearte.jfairy.producer.company;

import com.google.inject.Provider;
import org.apache.commons.lang3.StringUtils;
import eu.codearte.jfairy.data.DataMaster;
import eu.codearte.jfairy.producer.BaseProducer;
import eu.codearte.jfairy.producer.VATIdentificationNumber;
import org.apache.commons.lang3.StringUtils;

import javax.inject.Inject;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@

import com.google.inject.Provider;
import com.google.inject.assistedinject.Assisted;
import eu.codearte.jfairy.producer.BaseProducer;
import org.apache.commons.lang3.StringUtils;
import org.iban4j.CountryCode;
import org.iban4j.Iban;
import org.iban4j.bban.BbanStructure;
import org.iban4j.bban.BbanStructureEntry;
import eu.codearte.jfairy.producer.BaseProducer;

import javax.inject.Inject;
import java.math.BigInteger;
Expand All @@ -28,8 +28,8 @@ public class IBANProvider implements Provider<IBAN> {
@Inject
public IBANProvider(BaseProducer baseProducer,

@Assisted
IBANProperties.Property... properties) {
@Assisted
IBANProperties.Property... properties) {

this.baseProducer = baseProducer;

Expand Down
26 changes: 24 additions & 2 deletions src/main/java/eu/codearte/jfairy/producer/person/Address.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,21 @@
public class Address {

private final String postalCode;

private final String city;

public Address(String postalCode, String city) {
private final String street;

private final String streetNumber;

private final String apartmentNumber;

public Address(String postalCode, String city, String street, String streetNumber, String apartmentNumber) {
this.postalCode = postalCode;
this.city = city;
this.street = street;
this.streetNumber = streetNumber;
this.apartmentNumber = apartmentNumber;
}

public String getPostalCode() {
Expand All @@ -18,8 +28,20 @@ public String getCity() {
return city;
}

public String street() {
return street;
}

public String streetNumber() {
return streetNumber;
}

public String apartmentNumber() {
return apartmentNumber;
}

@Override
public String toString() {
public String toString() { //TODO OMS: make address strings with street address in localised versions
return postalCode + " " + city;
}
}
Original file line number Diff line number Diff line change
@@ -1,16 +1,21 @@
package eu.codearte.jfairy.producer.person;

import com.google.inject.Inject;
import com.google.inject.Provider;
import eu.codearte.jfairy.data.DataMaster;
import eu.codearte.jfairy.producer.BaseProducer;

import javax.inject.Inject;

class AddressProvider implements Provider<Address> {

private static final String POSTAL_CODE_FORMAT = "postal_code";

private static final String CITY = "city";

private static final String STREET = "street";

private final BaseProducer baseProducer;

private final DataMaster dataMaster;

@Inject
Expand All @@ -24,9 +29,12 @@ public Address get() {
String postalCodeFormat = dataMaster.getRandomValue(POSTAL_CODE_FORMAT);

String city = dataMaster.getRandomValue(CITY);
String street = dataMaster.getRandomValue(STREET);
String postalCode = baseProducer.numerify(postalCodeFormat);
String streetNumber = String.valueOf(baseProducer.randomInt(25));
String apartmentNumber = baseProducer.trueOrFalse() ? String.valueOf(baseProducer.randomInt(350)) : "";

return new Address(postalCode, city);
return new Address(postalCode, city, street, streetNumber, apartmentNumber);
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package eu.codearte.jfairy.producer.person;

import javax.inject.Singleton;

/**
* @author omaciaszek
* @since 15.02.15
*/
@Singleton
public interface AddressStringProvider {

String addressString(Address address);

}
10 changes: 5 additions & 5 deletions src/main/java/eu/codearte/jfairy/producer/person/Person.java
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,8 @@ public static enum Sex {
private final String nationalIdentificationNumber;

public Person(String firstName, String middleName, String lastName, Address address, String email, String username,
String password, Sex sex, String telephoneNumber, DateTime dateOfBirth, Integer age,
String nationalIdentityCardNumber, String nationalIdentificationNumber, Company company, String companyEmail) {
String password, Sex sex, String telephoneNumber, DateTime dateOfBirth, Integer age,
String nationalIdentityCardNumber, String nationalIdentificationNumber, Company company, String companyEmail) {
this.nationalIdentityCardNumber = nationalIdentityCardNumber;
this.address = address;
this.firstName = firstName;
Expand Down Expand Up @@ -88,9 +88,9 @@ public boolean isFemale() {
return sex == FEMALE;
}

public Sex sex() {
return sex;
}
public Sex sex() {
return sex;
}

public String telephoneNumber() {
return telephoneNumber;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,22 @@
import com.google.common.annotations.VisibleForTesting;
import com.google.inject.Provider;
import com.google.inject.assistedinject.Assisted;
import org.apache.commons.lang3.RandomStringUtils;
import eu.codearte.jfairy.data.DataMaster;
import eu.codearte.jfairy.producer.BaseProducer;
import eu.codearte.jfairy.producer.DateProducer;
import eu.codearte.jfairy.producer.company.Company;
import eu.codearte.jfairy.producer.company.CompanyProvider;
import eu.codearte.jfairy.producer.person.locale.pl.PeselFactory;
import eu.codearte.jfairy.producer.person.locale.pl.PeselProperties;
import org.apache.commons.lang3.RandomStringUtils;
import org.joda.time.DateTime;

import javax.inject.Inject;

import static org.apache.commons.lang3.StringUtils.lowerCase;
import static org.apache.commons.lang3.StringUtils.stripAccents;
import static eu.codearte.jfairy.producer.person.Person.Sex.FEMALE;
import static eu.codearte.jfairy.producer.person.Person.Sex.MALE;
import static org.apache.commons.lang3.StringUtils.lowerCase;
import static org.apache.commons.lang3.StringUtils.stripAccents;

public class PersonProvider implements Provider<Person> {

Expand Down Expand Up @@ -49,14 +49,14 @@ public class PersonProvider implements Provider<Person> {

@Inject
public PersonProvider(DataMaster dataMaster,
DateProducer dateProducer,
BaseProducer baseProducer,
PeselFactory peselFactory,
NationalIdentityCardNumber nationalIdentityCardNumber,
AddressProvider addressProvider,
CompanyProvider companyProvider,
DateProducer dateProducer,
BaseProducer baseProducer,
PeselFactory peselFactory,
NationalIdentityCardNumber nationalIdentityCardNumber,
AddressProvider addressProvider,
CompanyProvider companyProvider,

@Assisted PersonProperties.PersonProperty... personProperties) {
@Assisted PersonProperties.PersonProperty... personProperties) {

this.dataMaster = dataMaster;
this.dateProducer = dateProducer;
Expand All @@ -79,7 +79,7 @@ public Person get() {
}

//fixme - should be created only if needed
if (company == null){
if (company == null) {
company = companyProvider.get();
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package eu.codearte.jfairy.producer.person.locale.en;

import eu.codearte.jfairy.producer.person.Address;
import eu.codearte.jfairy.producer.person.AddressStringProvider;

/**
* @author omaciaszek
* @since 15.02.15
*/
public class EnAddressStringProvider implements AddressStringProvider {

@Override
public String addressString(Address address) {
return address.streetNumber() + " " + address.street() + " Str." + apartmentString(address)
+ ", " + address.getPostalCode() + " " + address.getCity();
}

private String apartmentString(Address address) {
String apartmentString;
if (address.apartmentNumber().equals("")) {
apartmentString = "";
} else {
apartmentString = " No. " + address.apartmentNumber();
}
return apartmentString;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,8 @@ public class PeselProvider implements Provider<NationalIdentificationNumber> {

@Inject
public PeselProvider(DateProducer dateProducer, BaseProducer baseProducer,
@Assisted
PeselProperties.Property... properties) {
@Assisted
PeselProperties.Property... properties) {
this.dateProducer = dateProducer;
this.baseProducer = baseProducer;

Expand Down Expand Up @@ -121,13 +121,13 @@ private static int calculateChecksum(String pesel) {
int digit = Character.digit(pesel.charAt(i++), 10);
sum += digit * weight;
}

int checksum = (sum % TEN);

if (0 == checksum) {
return 0;
}

return TEN - checksum;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package eu.codearte.jfairy.producer.person.locale.pl;

import eu.codearte.jfairy.producer.person.Address;
import eu.codearte.jfairy.producer.person.AddressStringProvider;

/**
* @author omaciaszek
* @since 15.02.15
*/
public class PlAddressStringProvider implements AddressStringProvider {

@Override
public String addressString(Address address) {
return
"ul. " + address.street() + " " + address.streetNumber() + apartmentString(
address) + ", " + address.getPostalCode()
+ " " + address.getCity();
}

private String apartmentString(Address address) {
String apartmentString;
if (address.apartmentNumber().equals("")) {
apartmentString = "";
} else {
apartmentString = " lok. " + address.apartmentNumber();
}
return apartmentString;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import eu.codearte.jfairy.producer.BaseProducer;
import eu.codearte.jfairy.producer.DateProducer;
import eu.codearte.jfairy.producer.person.NationalIdentityCardNumber;
import eu.codearte.jfairy.producer.util.AlphaNumberSystem;
import org.joda.time.DateTime;

import javax.inject.Inject;
Expand All @@ -14,8 +15,6 @@
import static java.lang.System.arraycopy;
import static org.apache.commons.lang3.StringUtils.leftPad;

import eu.codearte.jfairy.producer.util.AlphaNumberSystem;

/**
* Polish Identity Card Number
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,11 @@
import java.util.List;

import static com.google.common.collect.Lists.newArrayList;
import static eu.codearte.jfairy.producer.text.TextUtils.joinWithSpace;
import static org.apache.commons.lang3.StringUtils.capitalize;
import static org.apache.commons.lang3.StringUtils.endsWith;
import static org.apache.commons.lang3.StringUtils.left;
import static org.apache.commons.lang3.StringUtils.removeEnd;
import static eu.codearte.jfairy.producer.text.TextUtils.joinWithSpace;

public class TextProducer {

Expand Down
4 changes: 3 additions & 1 deletion src/main/resources/jfairy_en.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ data:

postal_code: ['#####']

city: [New York, Washington]
city: [New York, Washington, San Francisco, Miami]

street: [Atkins Avenue, Aster Court, Cove Lane, Ford Street, Highland Place, Herzi Street, Tabor Court, Stillwell Avenue, Summer Place, Washington Walk]

country: ['Canada', 'USA', 'Poland']
2 changes: 2 additions & 0 deletions src/main/resources/jfairy_pl.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,6 @@ data:

city: [Białystok, Bielsko-Biała, Bydgoszcz, Bytom, Chorzów, Częstochowa, Dąbrowa Górnicza, Elbląg, Gdańsk, Gdynia, Gliwice, Gorzów Wielkopolski, Grudziądz, Jastrzębie Zdrój, Jaworzno, Kalisz, Katowice, Kielce, Koszalin, Kraków, Legnica, Lublin, Łódź, Olsztyn, Opole, Poznań, Płock, Radom, Ruda Śląska, Rybnik, Rzeszów, Sosnowiec, Szczecin, Słupsk, Tarnów, Toruń, Tychy, Warszawa, Wałbrzych, Wrocław, Włocławek, Zabrze, Zielona Góra]

street: [Ogrodowa, A. Mickiewicza, Chłodna, Targowa, Prosta, Biała, Żelazna, Miedziana, Złota, Kacza, Browarna]

country: ['Polska']
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package eu.codearte.jfairy.producer

import eu.codearte.jfairy.Bootstrap
import eu.codearte.jfairy.producer.locale.pl.NIP
import org.apache.commons.validator.routines.DomainValidator
import org.apache.commons.validator.routines.EmailValidator
import org.apache.commons.validator.routines.UrlValidator
import eu.codearte.jfairy.Bootstrap
import eu.codearte.jfairy.producer.locale.pl.NIP
import spock.lang.Specification

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package eu.codearte.jfairy.producer.net

import org.apache.commons.validator.routines.InetAddressValidator
import eu.codearte.jfairy.producer.BaseProducer
import org.apache.commons.validator.routines.InetAddressValidator
import spock.lang.Specification

class NetworkSpec extends Specification {
Expand Down

0 comments on commit 6fa5c2d

Please sign in to comment.