package io.codearte.jfairy.producer.person; import com.google.common.annotations.VisibleForTesting; import com.google.inject.Provider; import com.google.inject.assistedinject.Assisted; import io.codearte.jfairy.data.DataMaster; import io.codearte.jfairy.producer.BaseProducer; import io.codearte.jfairy.producer.DateProducer; import io.codearte.jfairy.producer.TimeProvider; import io.codearte.jfairy.producer.company.Company; import io.codearte.jfairy.producer.company.CompanyFactory; import org.apache.commons.lang3.RandomStringUtils; import org.joda.time.DateTime; import org.joda.time.Years; import javax.inject.Inject; import static org.apache.commons.lang3.StringUtils.lowerCase; import static org.apache.commons.lang3.StringUtils.stripAccents; public interface PersonProvider extends Provider<Person> { int MIN_AGE = 1; int MAX_AGE = 100; @VisibleForTesting String FIRST_NAME = "firstNames"; @VisibleForTesting String LAST_NAME = "lastNames"; @VisibleForTesting String PERSONAL_EMAIL = "personalEmails"; @VisibleForTesting String TELEPHONE_NUMBER_FORMATS = "telephone_number_formats"; @Override Person get(); void generateSex(); void generateCompany(); void generateFirstName(); void generateMiddleName(); void generateLastName(); void generateEmail(); void generateUsername(); void generateTelephoneNumber(); void generateAge(); void generateDateOfBirth(); void generateCompanyEmail(); void generatePassword(); void generateNationalIdentityCardNumber(); void generateNationalIdentificationNumber(); void generateAddress(); void generatePassportNumber(); void setTelephoneNumberFormat(String telephoneFormat); void setSex(Person.Sex sex); void setAge(int age); void setCompany(Company company); void setFirstName(String firstName); void setMiddleName(String middleName); void setLastName(String lastName); void setEmail(String email); void setUsername(String username); void setTelephoneNumber(String telephoneNumber); void setDateOfBirth(DateTime dateOfBirth); void setPassword(String password); void setAddress(Address address); void setCompanyEmail(String companyEmail); void setNationalIdentityCardNumber(String nationalIdentityCardNumber); void setNationalIdentificationNumber(String nationalIdentificationNumber); void setPassportNumber(String passportNumber); }