├── .gitignore
├── LICENSE
├── README.md
├── arandomizer
├── .gitignore
├── build.gradle
└── src
│ ├── androidTest
│ └── java
│ │ └── com
│ │ └── infoedge
│ │ └── android
│ │ └── arandomizer
│ │ └── ExampleInstrumentedTest.java
│ ├── main
│ ├── AndroidManifest.xml
│ ├── java
│ │ └── com
│ │ │ └── infoedge
│ │ │ └── android
│ │ │ └── arandomizer
│ │ │ └── DroidGenerator.java
│ └── res
│ │ └── values
│ │ └── strings.xml
│ └── test
│ └── java
│ └── com
│ └── infoedge
│ └── android
│ └── arandomizer
│ └── ExampleUnitTest.java
├── build.gradle
├── example
├── .gitignore
├── build.gradle
├── proguard-rules.pro
└── src
│ ├── androidTest
│ └── java
│ │ └── com
│ │ └── infoedge
│ │ └── randomizer
│ │ └── example
│ │ └── ExampleInstrumentedTest.java
│ ├── main
│ ├── AndroidManifest.xml
│ ├── java
│ │ └── com
│ │ │ └── infoedge
│ │ │ └── randomizer
│ │ │ └── example
│ │ │ ├── CustomCreditCardNumberGenerator.java
│ │ │ ├── CustomEmailGenerator.java
│ │ │ ├── Test.java
│ │ │ ├── model
│ │ │ └── Person.java
│ │ │ └── ui
│ │ │ └── DummyActivity.java
│ └── res
│ │ ├── mipmap-hdpi
│ │ └── ic_launcher.png
│ │ ├── mipmap-mdpi
│ │ └── ic_launcher.png
│ │ ├── mipmap-xhdpi
│ │ └── ic_launcher.png
│ │ ├── mipmap-xxhdpi
│ │ └── ic_launcher.png
│ │ ├── mipmap-xxxhdpi
│ │ └── ic_launcher.png
│ │ └── values
│ │ ├── colors.xml
│ │ ├── strings.xml
│ │ └── styles.xml
│ └── test
│ └── java
│ └── com
│ └── infoedge
│ └── randomizer
│ └── example
│ └── ExampleUnitTest.java
├── gradle.properties
├── gradle
└── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── jrandomizer
├── .gitignore
├── build.gradle
└── src
│ ├── main
│ └── java
│ │ └── com
│ │ └── infoedge
│ │ └── jrandomizer
│ │ ├── Generator.java
│ │ ├── Pair.java
│ │ ├── Reflector.java
│ │ ├── StandAlone.java
│ │ ├── Utils.java
│ │ ├── adapters
│ │ ├── BooleanToBooleanAdapter.java
│ │ ├── ConversionAdapter.java
│ │ ├── DoubleToDoubleAdapter.java
│ │ ├── DoubleToFloatAdapter.java
│ │ ├── DoubleToIntAdapter.java
│ │ ├── DoubleToLongAdapter.java
│ │ ├── DoubleToStringAdapter.java
│ │ ├── IntToIntAdapter.java
│ │ ├── IntToLongAdapter.java
│ │ ├── IntToStringAdapter.java
│ │ ├── LongToIntAdapter.java
│ │ ├── LongToLongAdapter.java
│ │ ├── LongToStringAdapter.java
│ │ ├── ObjectToObjectAdapter.java
│ │ └── StringToStringAdapter.java
│ │ ├── annotations
│ │ ├── AppBundleID.java
│ │ ├── AppName.java
│ │ ├── AppVersion.java
│ │ ├── Avatar.java
│ │ ├── BooleanValue.java
│ │ ├── City.java
│ │ ├── CollectionDescriptor.java
│ │ ├── ColorName.java
│ │ ├── CompanyName.java
│ │ ├── Country.java
│ │ ├── CountryCode.java
│ │ ├── CreditCardNumber.java
│ │ ├── CreditCardType.java
│ │ ├── Currency.java
│ │ ├── CurrencyCode.java
│ │ ├── CustomGenerator.java
│ │ ├── CustomList.java
│ │ ├── DateValue.java
│ │ ├── DomainName.java
│ │ ├── DummyImageUrl.java
│ │ ├── Email.java
│ │ ├── Encrypt.java
│ │ ├── FileName.java
│ │ ├── FirstName.java
│ │ ├── Frequency.java
│ │ ├── FullName.java
│ │ ├── Gender.java
│ │ ├── GenerateUsing.java
│ │ ├── Guid.java
│ │ ├── HexColor.java
│ │ ├── IpAddressV4.java
│ │ ├── IpAddressV6.java
│ │ ├── Isbn.java
│ │ ├── JobTitle.java
│ │ ├── Language.java
│ │ ├── LastName.java
│ │ ├── Latitude.java
│ │ ├── LinkedInSkill.java
│ │ ├── Longitude.java
│ │ ├── MD5.java
│ │ ├── MacAddress.java
│ │ ├── Mapping.java
│ │ ├── MimeType.java
│ │ ├── Money.java
│ │ ├── Number.java
│ │ ├── Paragraphs.java
│ │ ├── Phone.java
│ │ ├── Race.java
│ │ ├── ReferenceRecord.java
│ │ ├── ReferencedRecord.java
│ │ ├── RowNumber.java
│ │ ├── SHA1.java
│ │ ├── SHA256.java
│ │ ├── SSN.java
│ │ ├── Sentences.java
│ │ ├── Sequence.java
│ │ ├── ShirtSize.java
│ │ ├── State.java
│ │ ├── StreetAddress.java
│ │ ├── Suffix.java
│ │ ├── Time.java
│ │ ├── TimeZone.java
│ │ ├── Title.java
│ │ ├── TopLevelDomain.java
│ │ ├── URL.java
│ │ ├── Username.java
│ │ └── Words.java
│ │ ├── exceptions
│ │ └── RandomDataGeneratorException.java
│ │ ├── generators
│ │ ├── AppBundleIdGenerator.java
│ │ ├── AppNameGenerator.java
│ │ ├── AppVersionGenerator.java
│ │ ├── AvatarGenerator.java
│ │ ├── BooleanGenerator.java
│ │ ├── CityGenerator.java
│ │ ├── ColorNameGenerator.java
│ │ ├── CompanyNameGenerator.java
│ │ ├── CountryCodeGenerator.java
│ │ ├── CountryGenerator.java
│ │ ├── CreditCardNumberGenerator.java
│ │ ├── CreditCardTypeGenerator.java
│ │ ├── CurrencyCodeGenerator.java
│ │ ├── CurrencyGenerator.java
│ │ ├── CustomListGenerator.java
│ │ ├── DateValueGenerator.java
│ │ ├── DelegateGenerationRule.java
│ │ ├── DomainNameGenerator.java
│ │ ├── DummyImageUrlGenerator.java
│ │ ├── EmailGenerator.java
│ │ ├── EncryptGenerator.java
│ │ ├── FileNameGenerator.java
│ │ ├── FirstNameGenerator.java
│ │ ├── FrequencyGenerator.java
│ │ ├── FullNameGenerator.java
│ │ ├── GenderGenerator.java
│ │ ├── GenerationRule.java
│ │ ├── GuidGenerator.java
│ │ ├── HexColorGenerator.java
│ │ ├── InvalidGenerator.java
│ │ ├── IpAddressV4Generator.java
│ │ ├── IpAddressV6Generator.java
│ │ ├── IsbnGenerator.java
│ │ ├── JobTitleGenerator.java
│ │ ├── LanguageGenerator.java
│ │ ├── LastNameGenerator.java
│ │ ├── LatitudeGenerator.java
│ │ ├── LinkedInSkillGenerator.java
│ │ ├── LongitudeGenerator.java
│ │ ├── MD5Generator.java
│ │ ├── MacAddressGenerator.java
│ │ ├── MimeTypeGenerator.java
│ │ ├── MoneyGenerator.java
│ │ ├── NumberGenerator.java
│ │ ├── ParagraphsGenerator.java
│ │ ├── PhoneGenerator.java
│ │ ├── RaceGenerator.java
│ │ ├── RandomArrayGenerator.java
│ │ ├── RandomListGenerator.java
│ │ ├── ReferenceRecordGenerator.java
│ │ ├── RowNumberGenerator.java
│ │ ├── SHA1Generator.java
│ │ ├── SHA256Generator.java
│ │ ├── SSNGenerator.java
│ │ ├── SentencesGenerator.java
│ │ ├── SequenceGenerator.java
│ │ ├── ShirtSizeGenerator.java
│ │ ├── StateGenerator.java
│ │ ├── StreetAddressGenerator.java
│ │ ├── SuffixGenerator.java
│ │ ├── TimeGenerator.java
│ │ ├── TimeZoneGenerator.java
│ │ ├── TitleGenerator.java
│ │ ├── TopLevelDomainGenerator.java
│ │ ├── URLGenerator.java
│ │ ├── UsernameGenerator.java
│ │ └── WordsGenerator.java
│ │ └── providers
│ │ ├── AppBundleIdProvider.java
│ │ ├── AppNameProvider.java
│ │ ├── AvatarProvider.java
│ │ ├── CityProvider.java
│ │ ├── ColorNameProvider.java
│ │ ├── CompanyNameProvider.java
│ │ ├── CountryCodeProvider.java
│ │ ├── CountryProvider.java
│ │ ├── CreditCardTypeProvider.java
│ │ ├── CurrencyCodeProvider.java
│ │ ├── CurrencyProvider.java
│ │ ├── DomainNameProvider.java
│ │ ├── EmailProvider.java
│ │ ├── EncryptProvider.java
│ │ ├── FileNameProvider.java
│ │ ├── FirstNameFemaleProvider.java
│ │ ├── FirstNameMaleProvider.java
│ │ ├── FirstNameMixProvider.java
│ │ ├── FrequencyProvider.java
│ │ ├── FromJsonProvider.java
│ │ ├── FullNameProvider.java
│ │ ├── GuidProvider.java
│ │ ├── JobTitleProvider.java
│ │ ├── LanguageProvider.java
│ │ ├── LinkedInSkillProvider.java
│ │ ├── MimeTypeProvider.java
│ │ ├── ParagraphsProvider.java
│ │ ├── Provider.java
│ │ ├── ProviderFactory.java
│ │ ├── RaceProvider.java
│ │ ├── SentencesProvider.java
│ │ ├── ShirtSizeProvider.java
│ │ ├── StateProvider.java
│ │ ├── StreetAddressProvider.java
│ │ ├── SuffixProvider.java
│ │ ├── TimeZoneProvider.java
│ │ ├── TitleProvider.java
│ │ ├── TopLevelDomainProvider.java
│ │ ├── URLProvider.java
│ │ ├── UsernameProvider.java
│ │ └── WordsProvider.java
│ └── test
│ └── java
│ └── com
│ └── infoedge
│ └── jrandomizer
│ └── test
│ ├── AppBundleGeneratorTest.java
│ ├── AppNameGeneratorTest.java
│ ├── AppVersionGeneratorTest.java
│ ├── AvatarGeneratorTest.java
│ ├── CityGeneratorTest.java
│ └── CreditCardNumberTest.java
└── settings.gradle
/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | /.idea/workspace.xml
5 | /.idea/libraries
6 | .DS_Store
7 | /build
8 | /captures
9 | .externalNativeBuild
10 | .idea
11 |
--------------------------------------------------------------------------------
/arandomizer/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/arandomizer/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.library'
2 |
3 | Properties properties = new Properties()
4 | properties.load(project.rootProject.file('local.properties').newDataInputStream())
5 |
6 | ext {
7 | bintrayRepo = 'maven'
8 | bintrayName = 'arandomizer'
9 |
10 | publishedGroupId = 'com.infoedge'
11 | libraryName = 'arandomizer'
12 | artifact = 'arandomizer'
13 |
14 | libraryDescription = 'Library generates random data'
15 |
16 | siteUrl = 'https://github.com/android-Infoedge/randomizer'
17 | gitUrl = 'https://github.com/android-Infoedge/randomizer.git'
18 |
19 | libraryVersion = '0.1-beta1'
20 |
21 | developerId = 'android-infoedge'
22 | developerName = properties.getProperty('developer.name')
23 | developerEmail = properties.getProperty('developer.email')
24 |
25 | licenseName = 'The Apache Software License, Version 2.0'
26 | licenseUrl = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
27 | allLicenses = ["Apache-2.0"]
28 | }
29 |
30 |
31 | android {
32 | compileSdkVersion 24
33 | buildToolsVersion "24.0.0"
34 |
35 | defaultConfig {
36 | minSdkVersion 15
37 | targetSdkVersion 24
38 | versionCode 1
39 | versionName "1.0"
40 |
41 | testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
42 |
43 | }
44 | buildTypes {
45 | release {
46 | minifyEnabled false
47 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
48 | }
49 | }
50 | }
51 |
52 | dependencies {
53 | compile fileTree(dir: 'libs', include: ['*.jar'])
54 | androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
55 | exclude group: 'com.android.support', module: 'support-annotations'
56 | })
57 | compile 'com.android.support:appcompat-v7:24.1.1'
58 | testCompile 'junit:junit:4.12'
59 | // compile project(':jrandomizer')
60 | compile 'com.infoedge:jrandomizer:0.1-beta1'
61 | }
62 |
63 | apply from: 'https://raw.githubusercontent.com/nuuneoi/JCenter/master/installv1.gradle'
64 | apply from: 'https://raw.githubusercontent.com/nuuneoi/JCenter/master/bintrayv1.gradle'
65 |
66 |
--------------------------------------------------------------------------------
/arandomizer/src/androidTest/java/com/infoedge/android/arandomizer/ExampleInstrumentedTest.java:
--------------------------------------------------------------------------------
1 | package com.infoedge.android.arandomizer;
2 |
3 | import android.content.Context;
4 | import android.support.test.InstrumentationRegistry;
5 | import android.support.test.runner.AndroidJUnit4;
6 |
7 | import org.junit.Test;
8 | import org.junit.runner.RunWith;
9 |
10 | import static org.junit.Assert.*;
11 |
12 | /**
13 | * Instrumentation test, which will execute on an Android device.
14 | *
15 | * @see Testing documentation
16 | */
17 | @RunWith(AndroidJUnit4.class)
18 | public class ExampleInstrumentedTest {
19 | @Test
20 | public void useAppContext() throws Exception {
21 | // Context of the app under test.
22 | Context appContext = InstrumentationRegistry.getTargetContext();
23 |
24 | assertEquals("com.infoedge.android.arandomizer.test", appContext.getPackageName());
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/arandomizer/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/arandomizer/src/main/java/com/infoedge/android/arandomizer/DroidGenerator.java:
--------------------------------------------------------------------------------
1 | package com.infoedge.android.arandomizer;
2 |
3 | import android.os.AsyncTask;
4 |
5 | import com.infoedge.jrandomizer.Generator;
6 | import com.infoedge.jrandomizer.Generator.OnDataGenerationListener;
7 |
8 | import java.util.List;
9 |
10 | /**
11 | * Created by gagandeep on 2/8/16.
12 | */
13 |
14 | public final class DroidGenerator {
15 |
16 | private Generator mGenerator;
17 |
18 | public DroidGenerator(Class target) {
19 | mGenerator = new Generator<>(target);
20 | }
21 |
22 | public TARGET generate() {
23 | return generate(1).get(0);
24 | }
25 |
26 | public List generate(int records) {
27 | return mGenerator.generate(records);
28 | }
29 |
30 | public void generateAsync(OnDataGenerationListener listener) {
31 | generateAsync(1, listener);
32 | }
33 |
34 | public void generateAsync(int numberOfRecords,OnDataGenerationListener listener) {
35 | new DataGenerationTask(listener, numberOfRecords).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
36 | }
37 |
38 | private class DataGenerationTask extends AsyncTask> {
39 |
40 | private OnDataGenerationListener mListener;
41 | private int records;
42 |
43 | public DataGenerationTask(OnDataGenerationListener mListener, int records) {
44 | this.mListener = mListener;
45 | this.records = records;
46 | }
47 |
48 |
49 | @Override
50 | protected List doInBackground(Void... voids) {
51 | return generate(records);
52 | }
53 |
54 | @Override
55 | protected void onPostExecute(List targets) {
56 | if (mListener != null) {
57 | mListener.onDataGenerated(targets);
58 | }
59 | }
60 | }
61 |
62 | }
63 |
--------------------------------------------------------------------------------
/arandomizer/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | ARandomizer
3 |
4 |
--------------------------------------------------------------------------------
/arandomizer/src/test/java/com/infoedge/android/arandomizer/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.infoedge.android.arandomizer;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * @see Testing documentation
11 | */
12 | public class ExampleUnitTest {
13 | @Test
14 | public void addition_isCorrect() throws Exception {
15 | assertEquals(4, 2 + 2);
16 | }
17 | }
--------------------------------------------------------------------------------
/build.gradle:
--------------------------------------------------------------------------------
1 | // Top-level build file where you can add configuration options common to all sub-projects/modules.
2 |
3 | buildscript {
4 | repositories {
5 | jcenter()
6 | }
7 | dependencies {
8 | classpath 'com.android.tools.build:gradle:2.2.1'
9 | classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.4'
10 | classpath 'com.github.dcendents:android-maven-gradle-plugin:1.4.1'
11 | // NOTE: Do not place your application dependencies here; they belong
12 | // in the individual module build.gradle files
13 | }
14 | }
15 |
16 | allprojects {
17 | repositories {
18 | jcenter()
19 | maven {
20 | url 'https://dl.bintray.com/android-infoedge/maven/'
21 | }
22 | }
23 | }
24 |
25 | task clean(type: Delete) {
26 | delete rootProject.buildDir
27 | }
28 |
--------------------------------------------------------------------------------
/example/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/example/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.application'
2 |
3 | android {
4 | compileSdkVersion 24
5 | buildToolsVersion "24.0.0"
6 |
7 | defaultConfig {
8 | applicationId "com.infoedge.randomizer.example"
9 | minSdkVersion 15
10 | targetSdkVersion 24
11 | versionCode 1
12 | versionName "1.0"
13 |
14 | testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
15 |
16 | }
17 | buildTypes {
18 | release {
19 | minifyEnabled false
20 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
21 | }
22 | }
23 | }
24 |
25 | dependencies {
26 | compile fileTree(dir: 'libs', include: ['*.jar'])
27 | androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
28 | exclude group: 'com.android.support', module: 'support-annotations'
29 | })
30 | compile 'com.android.support:appcompat-v7:24.1.1'
31 | testCompile 'junit:junit:4.12'
32 | compile 'com.jakewharton.timber:timber:4.1.2'
33 | compile "com.android.support:cardview-v7:24.1.1"
34 | compile "com.android.support:recyclerview-v7:24.1.1"
35 | compile 'com.github.bumptech.glide:glide:3.5.2'
36 | compile 'com.jakewharton:butterknife:7.0.1'
37 | compile project(':arandomizer')
38 | }
39 |
--------------------------------------------------------------------------------
/example/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # By default, the flags in this file are appended to flags specified
3 | # in /home/gagandeep/Setups/android-sdk-linux/tools/proguard/proguard-android.txt
4 | # You can edit the include path and order by changing the proguardFiles
5 | # directive in build.gradle.
6 | #
7 | # For more details, see
8 | # http://developer.android.com/guide/developing/tools/proguard.html
9 |
10 | # Add any project specific keep options here:
11 |
12 | # If your project uses WebView with JS, uncomment the following
13 | # and specify the fully qualified class name to the JavaScript interface
14 | # class:
15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
16 | # public *;
17 | #}
18 |
--------------------------------------------------------------------------------
/example/src/androidTest/java/com/infoedge/randomizer/example/ExampleInstrumentedTest.java:
--------------------------------------------------------------------------------
1 | package com.infoedge.randomizer.example;
2 |
3 | import android.content.Context;
4 | import android.support.test.InstrumentationRegistry;
5 | import android.support.test.runner.AndroidJUnit4;
6 |
7 | import org.junit.Test;
8 | import org.junit.runner.RunWith;
9 |
10 | import static org.junit.Assert.*;
11 |
12 | /**
13 | * Instrumentation test, which will execute on an Android device.
14 | *
15 | * @see Testing documentation
16 | */
17 | @RunWith(AndroidJUnit4.class)
18 | public class ExampleInstrumentedTest {
19 | @Test
20 | public void useAppContext() throws Exception {
21 | // Context of the app under test.
22 | Context appContext = InstrumentationRegistry.getTargetContext();
23 |
24 | assertEquals("com.infoedge.randomizer.example", appContext.getPackageName());
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/example/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/example/src/main/java/com/infoedge/randomizer/example/CustomCreditCardNumberGenerator.java:
--------------------------------------------------------------------------------
1 | package com.infoedge.randomizer.example;
2 |
3 | import com.infoedge.jrandomizer.annotations.CreditCardNumber;
4 | import com.infoedge.jrandomizer.generators.GenerationRule;
5 | import com.infoedge.jrandomizer.providers.ProviderFactory;
6 |
7 | /**
8 | * Created by gagandeep on 12/8/16.
9 | */
10 | public class CustomCreditCardNumberGenerator extends GenerationRule {
11 |
12 | public CustomCreditCardNumberGenerator(CreditCardNumber annotation, ProviderFactory providerFactory) {
13 | super(annotation, providerFactory);
14 | }
15 |
16 | //Will be called automatically to generate random data from source
17 | @Override
18 | public String generate() {
19 | return CARD_NUMBERS[getRandom().nextInt(CARD_NUMBERS.length)];
20 | }
21 |
22 | //Provide your own data
23 | private final String[] CARD_NUMBERS = {"0111-0666-9888-7666","0777-9453-5672-7765"};
24 | }
25 |
--------------------------------------------------------------------------------
/example/src/main/java/com/infoedge/randomizer/example/CustomEmailGenerator.java:
--------------------------------------------------------------------------------
1 | package com.infoedge.randomizer.example;
2 |
3 | import com.infoedge.jrandomizer.annotations.Email;
4 | import com.infoedge.jrandomizer.generators.DelegateGenerationRule;
5 | import com.infoedge.jrandomizer.generators.GenerationRule;
6 | import com.infoedge.jrandomizer.providers.ProviderFactory;
7 |
8 | /**
9 | * Created by gagandeep on 12/8/16.
10 | */
11 |
12 | public class CustomEmailGenerator extends DelegateGenerationRule {
13 |
14 | public CustomEmailGenerator(Email annotation, ProviderFactory providerFactory, GenerationRule mCoreGenerator) {
15 | super(annotation, providerFactory, mCoreGenerator);
16 | }
17 |
18 | @Override
19 | public String generate() {
20 | return getCoreRandomData().toUpperCase();
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/example/src/main/java/com/infoedge/randomizer/example/Test.java:
--------------------------------------------------------------------------------
1 | package com.infoedge.randomizer.example;
2 |
3 | /**
4 | * Created by gagandeep on 12/8/16.
5 | */
6 |
7 | public class Test {
8 | }
9 |
--------------------------------------------------------------------------------
/example/src/main/java/com/infoedge/randomizer/example/model/Person.java:
--------------------------------------------------------------------------------
1 | package com.infoedge.randomizer.example.model;
2 |
3 | import com.infoedge.jrandomizer.annotations.Avatar;
4 | import com.infoedge.jrandomizer.annotations.CollectionDescriptor;
5 | import com.infoedge.jrandomizer.annotations.CreditCardNumber;
6 | import com.infoedge.jrandomizer.annotations.CustomGenerator;
7 | import com.infoedge.jrandomizer.annotations.DateValue;
8 | import com.infoedge.jrandomizer.annotations.Email;
9 | import com.infoedge.jrandomizer.annotations.FullName;
10 | import com.infoedge.jrandomizer.annotations.Number;
11 | import com.infoedge.jrandomizer.annotations.Phone;
12 | import com.infoedge.jrandomizer.generators.EmailGenerator;
13 | import com.infoedge.randomizer.example.CustomCreditCardNumberGenerator;
14 | import com.infoedge.randomizer.example.CustomEmailGenerator;
15 |
16 | import java.util.List;
17 |
18 | /**
19 | * Created by gagandeep on 12/8/16.
20 | */
21 |
22 | public class Person {
23 |
24 | @Email
25 | @CustomGenerator(generator = CustomEmailGenerator.class,delegate = EmailGenerator.class)
26 | @CollectionDescriptor(min = 2,max = 5)
27 | public List emails;
28 | }
29 |
--------------------------------------------------------------------------------
/example/src/main/java/com/infoedge/randomizer/example/ui/DummyActivity.java:
--------------------------------------------------------------------------------
1 | package com.infoedge.randomizer.example.ui;
2 |
3 | import android.os.Bundle;
4 | import android.support.annotation.Nullable;
5 | import android.support.v7.app.AppCompatActivity;
6 | import android.util.Log;
7 |
8 | import com.infoedge.android.arandomizer.DroidGenerator;
9 | import com.infoedge.jrandomizer.Generator;
10 | import com.infoedge.randomizer.example.model.Person;
11 |
12 | import java.util.List;
13 |
14 | /**
15 | * Created by gagandeep on 12/8/16.
16 | */
17 |
18 | public class DummyActivity extends AppCompatActivity {
19 |
20 | @Override
21 | protected void onCreate(@Nullable Bundle savedInstanceState) {
22 | super.onCreate(savedInstanceState);
23 | DroidGenerator generator = new DroidGenerator<>(Person.class);
24 | List persons = generator.generate(5);
25 |
26 | for (Person person : persons) {
27 | Log.e("DUMMY", person.toString());
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/example/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/android-Infoedge/randomizer/27bbe6879d4a4fa555c0c3962498e82b2d536d40/example/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/example/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/android-Infoedge/randomizer/27bbe6879d4a4fa555c0c3962498e82b2d536d40/example/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/example/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/android-Infoedge/randomizer/27bbe6879d4a4fa555c0c3962498e82b2d536d40/example/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/example/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/android-Infoedge/randomizer/27bbe6879d4a4fa555c0c3962498e82b2d536d40/example/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/example/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/android-Infoedge/randomizer/27bbe6879d4a4fa555c0c3962498e82b2d536d40/example/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/example/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #3F51B5
4 | #303F9F
5 | #FF4081
6 |
7 |
--------------------------------------------------------------------------------
/example/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Example
3 |
4 |
--------------------------------------------------------------------------------
/example/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/example/src/test/java/com/infoedge/randomizer/example/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.infoedge.randomizer.example;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * @see Testing documentation
11 | */
12 | public class ExampleUnitTest {
13 | @Test
14 | public void addition_isCorrect() throws Exception {
15 | assertEquals(4, 2 + 2);
16 | }
17 | }
--------------------------------------------------------------------------------
/gradle.properties:
--------------------------------------------------------------------------------
1 | # Project-wide Gradle settings.
2 |
3 | # IDE (e.g. Android Studio) users:
4 | # Gradle settings configured through the IDE *will override*
5 | # any settings specified in this file.
6 |
7 | # For more details on how to configure your build environment visit
8 | # http://www.gradle.org/docs/current/userguide/build_environment.html
9 |
10 | # Specifies the JVM arguments used for the daemon process.
11 | # The setting is particularly useful for tweaking memory settings.
12 | org.gradle.jvmargs=-Xmx1536m
13 |
14 | # When configured, Gradle will run in incubating parallel mode.
15 | # This option should only be used with decoupled projects. More details, visit
16 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
17 | # org.gradle.parallel=true
18 |
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/android-Infoedge/randomizer/27bbe6879d4a4fa555c0c3962498e82b2d536d40/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Fri Aug 12 09:34:25 IST 2016
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 | distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip
7 |
--------------------------------------------------------------------------------
/gradlew.bat:
--------------------------------------------------------------------------------
1 | @if "%DEBUG%" == "" @echo off
2 | @rem ##########################################################################
3 | @rem
4 | @rem Gradle startup script for Windows
5 | @rem
6 | @rem ##########################################################################
7 |
8 | @rem Set local scope for the variables with windows NT shell
9 | if "%OS%"=="Windows_NT" setlocal
10 |
11 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
12 | set DEFAULT_JVM_OPTS=
13 |
14 | set DIRNAME=%~dp0
15 | if "%DIRNAME%" == "" set DIRNAME=.
16 | set APP_BASE_NAME=%~n0
17 | set APP_HOME=%DIRNAME%
18 |
19 | @rem Find java.exe
20 | if defined JAVA_HOME goto findJavaFromJavaHome
21 |
22 | set JAVA_EXE=java.exe
23 | %JAVA_EXE% -version >NUL 2>&1
24 | if "%ERRORLEVEL%" == "0" goto init
25 |
26 | echo.
27 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
28 | echo.
29 | echo Please set the JAVA_HOME variable in your environment to match the
30 | echo location of your Java installation.
31 |
32 | goto fail
33 |
34 | :findJavaFromJavaHome
35 | set JAVA_HOME=%JAVA_HOME:"=%
36 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe
37 |
38 | if exist "%JAVA_EXE%" goto init
39 |
40 | echo.
41 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
42 | echo.
43 | echo Please set the JAVA_HOME variable in your environment to match the
44 | echo location of your Java installation.
45 |
46 | goto fail
47 |
48 | :init
49 | @rem Get command-line arguments, handling Windowz variants
50 |
51 | if not "%OS%" == "Windows_NT" goto win9xME_args
52 | if "%@eval[2+2]" == "4" goto 4NT_args
53 |
54 | :win9xME_args
55 | @rem Slurp the command line arguments.
56 | set CMD_LINE_ARGS=
57 | set _SKIP=2
58 |
59 | :win9xME_args_slurp
60 | if "x%~1" == "x" goto execute
61 |
62 | set CMD_LINE_ARGS=%*
63 | goto execute
64 |
65 | :4NT_args
66 | @rem Get arguments from the 4NT Shell from JP Software
67 | set CMD_LINE_ARGS=%$
68 |
69 | :execute
70 | @rem Setup the command line
71 |
72 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
73 |
74 | @rem Execute Gradle
75 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
76 |
77 | :end
78 | @rem End local scope for the variables with windows NT shell
79 | if "%ERRORLEVEL%"=="0" goto mainEnd
80 |
81 | :fail
82 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
83 | rem the _cmd.exe /c_ return code!
84 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
85 | exit /b 1
86 |
87 | :mainEnd
88 | if "%OS%"=="Windows_NT" endlocal
89 |
90 | :omega
91 |
--------------------------------------------------------------------------------
/jrandomizer/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/jrandomizer/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'java'
2 |
3 | Properties properties = new Properties()
4 | properties.load(project.rootProject.file('local.properties').newDataInputStream())
5 |
6 | ext {
7 | bintrayRepo = 'maven'
8 | bintrayName = 'jrandomizer'
9 |
10 | publishedGroupId = 'com.infoedge'
11 | libraryName = 'jrandomizer'
12 | artifact = 'jrandomizer'
13 |
14 | libraryDescription = 'Library generates random data'
15 |
16 | siteUrl = 'https://github.com/android-Infoedge/randomizer'
17 | gitUrl = 'https://github.com/android-Infoedge/randomizer.git'
18 |
19 | libraryVersion = '0.1-beta1'
20 |
21 | developerId = 'android-infoedge'
22 | developerName = properties.getProperty('developer.name')
23 | developerEmail = properties.getProperty('developer.email')
24 |
25 | licenseName = 'The Apache Software License, Version 2.0'
26 | licenseUrl = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
27 | allLicenses = ["Apache-2.0"]
28 | }
29 |
30 | dependencies {
31 | compile fileTree(include: ['*.jar'], dir: 'libs')
32 | compile 'com.google.code.gson:gson:2.7'
33 |
34 | testCompile 'junit:junit:4.12'
35 | testCompile "org.mockito:mockito-all:1.10.19"
36 | testCompile "org.hamcrest:hamcrest-all:1.3"
37 | testCompile "org.powermock:powermock-module-junit4:1.6.2"
38 | testCompile "org.powermock:powermock-api-mockito:1.6.2"
39 | }
40 |
41 | sourceCompatibility = "1.7"
42 | targetCompatibility = "1.7"
43 |
44 | apply from: 'https://raw.githubusercontent.com/nuuneoi/JCenter/master/installv1.gradle'
45 | apply from: 'https://raw.githubusercontent.com/nuuneoi/JCenter/master/bintrayv1.gradle'
46 |
--------------------------------------------------------------------------------
/jrandomizer/src/main/java/com/infoedge/jrandomizer/Pair.java:
--------------------------------------------------------------------------------
1 | package com.infoedge.jrandomizer;
2 |
3 | /**
4 | * Created by gagandeep on 28/7/16.
5 | */
6 |
7 | public class Pair {
8 | public F first;
9 | public S second;
10 |
11 | public Pair(F first, S second) {
12 | this.first = first;
13 | this.second = second;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/jrandomizer/src/main/java/com/infoedge/jrandomizer/StandAlone.java:
--------------------------------------------------------------------------------
1 | package com.infoedge.jrandomizer;
2 |
3 | import java.util.List;
4 |
5 | /**
6 | * Created by gagandeep on 5/8/16.
7 | */
8 |
9 | public class StandAlone {
10 | List dataList;
11 | }
12 |
--------------------------------------------------------------------------------
/jrandomizer/src/main/java/com/infoedge/jrandomizer/Utils.java:
--------------------------------------------------------------------------------
1 | package com.infoedge.jrandomizer;
2 |
3 | /**
4 | * Created by gagandeep on 31/7/16.
5 | */
6 |
7 | public final class Utils {
8 |
9 | private Utils() {
10 | }
11 |
12 | public static int randomIntWithDigits(int digits) {
13 | int max = (int) Math.pow(10, digits) + 1;
14 | return randomIntWithMinMax(0, max);
15 | }
16 |
17 | public static int randomIntWithMax(int max) {
18 | return randomIntWithMinMax(0, max);
19 | }
20 |
21 | public static int randomIntWithMinMax(int min, int max) {
22 | return (int) (min + (Math.random() * (max - min + 1)));
23 | }
24 |
25 | public static long randomLongWithMinMax(long min, long max) {
26 | return (long) (min + (Math.random() * (max - min + 1)));
27 | }
28 |
29 | public static String randomHexOfInt(int min, int max) {
30 | int randomInt = randomIntWithMinMax(min, max);
31 | return Integer.toHexString(randomInt);
32 | }
33 |
34 | public static String randomHexOfInt(int max) {
35 | int randomInt = randomIntWithMinMax(0, max);
36 | return Integer.toHexString(randomInt);
37 | }
38 |
39 | public static String randomHexOfLong(long max) {
40 | long randomInt = randomLongWithMinMax(0, max);
41 | return Long.toHexString(randomInt);
42 | }
43 |
44 | public static String frontZeroPaddedRandomInt(int digits) {
45 | String randomInt = String.valueOf(randomIntWithDigits(digits));
46 | return frontPad(randomInt, "0", digits);
47 | }
48 |
49 | public static String frontPad(String target,String padChar, int length) {
50 | if (length == 0 || target.length() >= length) {
51 | return target;
52 | }
53 | return frontPad(padChar + target, padChar, length - 1);
54 | }
55 |
56 | public static String tailPad(String target,String padChar, int length) {
57 | if (length == 0 || target.length() >= length) {
58 | return target;
59 | }
60 | return tailPad(target + padChar, padChar, length);
61 | }
62 | }
63 |
--------------------------------------------------------------------------------
/jrandomizer/src/main/java/com/infoedge/jrandomizer/adapters/BooleanToBooleanAdapter.java:
--------------------------------------------------------------------------------
1 | package com.infoedge.jrandomizer.adapters;
2 |
3 | /**
4 | * Created by gagandeep on 29/7/16.
5 | */
6 |
7 | public class BooleanToBooleanAdapter implements ConversionAdapter {
8 | @Override
9 | public Boolean value(Boolean randomData) {
10 | return randomData;
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/jrandomizer/src/main/java/com/infoedge/jrandomizer/adapters/ConversionAdapter.java:
--------------------------------------------------------------------------------
1 | package com.infoedge.jrandomizer.adapters;
2 |
3 | /**
4 | * Created by gagandeep on 28/7/16.
5 | */
6 |
7 | public interface ConversionAdapter {
8 |
9 | TO_DATA_TYPE value(FROM_DATA_TYPE randomData);
10 | }
11 |
--------------------------------------------------------------------------------
/jrandomizer/src/main/java/com/infoedge/jrandomizer/adapters/DoubleToDoubleAdapter.java:
--------------------------------------------------------------------------------
1 | package com.infoedge.jrandomizer.adapters;
2 |
3 | /**
4 | * Created by gagandeep on 28/7/16.
5 | */
6 |
7 | public class DoubleToDoubleAdapter implements ConversionAdapter {
8 | @Override
9 | public Double value(Double randomData) {
10 | return randomData;
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/jrandomizer/src/main/java/com/infoedge/jrandomizer/adapters/DoubleToFloatAdapter.java:
--------------------------------------------------------------------------------
1 | package com.infoedge.jrandomizer.adapters;
2 |
3 | /**
4 | * Created by gagandeep on 28/7/16.
5 | */
6 |
7 | public class DoubleToFloatAdapter implements ConversionAdapter {
8 | @Override
9 | public Float value(Double randomData) {
10 | return randomData.floatValue();
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/jrandomizer/src/main/java/com/infoedge/jrandomizer/adapters/DoubleToIntAdapter.java:
--------------------------------------------------------------------------------
1 | package com.infoedge.jrandomizer.adapters;
2 |
3 | /**
4 | * Created by gagandeep on 28/7/16.
5 | */
6 |
7 | public class DoubleToIntAdapter implements ConversionAdapter {
8 | @Override
9 | public Integer value(Double randomData) {
10 | return randomData.intValue();
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/jrandomizer/src/main/java/com/infoedge/jrandomizer/adapters/DoubleToLongAdapter.java:
--------------------------------------------------------------------------------
1 | package com.infoedge.jrandomizer.adapters;
2 |
3 | /**
4 | * Created by gagandeep on 28/7/16.
5 | */
6 |
7 | public class DoubleToLongAdapter implements ConversionAdapter {
8 | @Override
9 | public Long value(Double randomData) {
10 | return randomData.longValue();
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/jrandomizer/src/main/java/com/infoedge/jrandomizer/adapters/DoubleToStringAdapter.java:
--------------------------------------------------------------------------------
1 | package com.infoedge.jrandomizer.adapters;
2 |
3 | /**
4 | * Created by gagandeep on 28/7/16.
5 | */
6 |
7 | public class DoubleToStringAdapter implements ConversionAdapter {
8 | @Override
9 | public String value(Double randomData) {
10 | return randomData.toString();
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/jrandomizer/src/main/java/com/infoedge/jrandomizer/adapters/IntToIntAdapter.java:
--------------------------------------------------------------------------------
1 | package com.infoedge.jrandomizer.adapters;
2 |
3 | /**
4 | * Created by gagandeep on 28/7/16.
5 | */
6 |
7 | public class IntToIntAdapter implements ConversionAdapter {
8 |
9 | @Override
10 | public Integer value(Integer randomData) {
11 | return randomData;
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/jrandomizer/src/main/java/com/infoedge/jrandomizer/adapters/IntToLongAdapter.java:
--------------------------------------------------------------------------------
1 | package com.infoedge.jrandomizer.adapters;
2 |
3 | /**
4 | * Created by gagandeep on 28/7/16.
5 | */
6 |
7 | public class IntToLongAdapter implements ConversionAdapter {
8 |
9 | @Override
10 | public Long value(Integer randomData) {
11 | return Long.valueOf(randomData);
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/jrandomizer/src/main/java/com/infoedge/jrandomizer/adapters/IntToStringAdapter.java:
--------------------------------------------------------------------------------
1 | package com.infoedge.jrandomizer.adapters;
2 |
3 | /**
4 | * Created by gagandeep on 28/7/16.
5 | */
6 |
7 | public class IntToStringAdapter implements ConversionAdapter {
8 |
9 | @Override
10 | public String value(Integer randomData) {
11 | return String.valueOf(randomData);
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/jrandomizer/src/main/java/com/infoedge/jrandomizer/adapters/LongToIntAdapter.java:
--------------------------------------------------------------------------------
1 | package com.infoedge.jrandomizer.adapters;
2 |
3 | /**
4 | * Created by gagandeep on 28/7/16.
5 | */
6 |
7 | public class LongToIntAdapter implements ConversionAdapter {
8 | @Override
9 | public Integer value(Long randomData) {
10 | return randomData.intValue();
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/jrandomizer/src/main/java/com/infoedge/jrandomizer/adapters/LongToLongAdapter.java:
--------------------------------------------------------------------------------
1 | package com.infoedge.jrandomizer.adapters;
2 |
3 | /**
4 | * Created by gagandeep on 28/7/16.
5 | */
6 |
7 | public class LongToLongAdapter implements ConversionAdapter {
8 | @Override
9 | public Long value(Long randomData) {
10 | return randomData;
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/jrandomizer/src/main/java/com/infoedge/jrandomizer/adapters/LongToStringAdapter.java:
--------------------------------------------------------------------------------
1 | package com.infoedge.jrandomizer.adapters;
2 |
3 | /**
4 | * Created by gagandeep on 28/7/16.
5 | */
6 |
7 | public class LongToStringAdapter implements ConversionAdapter{
8 | @Override
9 | public String value(Long randomData) {
10 | return randomData.toString();
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/jrandomizer/src/main/java/com/infoedge/jrandomizer/adapters/ObjectToObjectAdapter.java:
--------------------------------------------------------------------------------
1 | package com.infoedge.jrandomizer.adapters;
2 |
3 | /**
4 | * Created by gagandeep on 30/7/16.
5 | */
6 |
7 | public class ObjectToObjectAdapter implements ConversionAdapter