diff --git a/app/build.gradle b/app/build.gradle index af96224..90016b3 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -38,7 +38,7 @@ dependencies { implementation 'androidx.appcompat:appcompat:1.3.0' implementation 'com.google.android.material:material:1.3.0' implementation 'androidx.constraintlayout:constraintlayout:2.0.4' - implementation project(path: ':EnumLookups') + implementation project(path: ':enumlookups') testImplementation 'junit:junit:4.+' androidTestImplementation 'androidx.test.ext:junit:1.1.2' androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' diff --git a/EnumLookups/.gitignore b/enumlookups/.gitignore similarity index 100% rename from EnumLookups/.gitignore rename to enumlookups/.gitignore diff --git a/EnumLookups/build.gradle b/enumlookups/build.gradle similarity index 100% rename from EnumLookups/build.gradle rename to enumlookups/build.gradle diff --git a/EnumLookups/consumer-rules.pro b/enumlookups/consumer-rules.pro similarity index 100% rename from EnumLookups/consumer-rules.pro rename to enumlookups/consumer-rules.pro diff --git a/EnumLookups/proguard-rules.pro b/enumlookups/proguard-rules.pro similarity index 100% rename from EnumLookups/proguard-rules.pro rename to enumlookups/proguard-rules.pro diff --git a/EnumLookups/src/androidTest/java/com/zc/enumlookups/ExampleInstrumentedTest.kt b/enumlookups/src/androidTest/java/com/zc/enumlookups/ExampleInstrumentedTest.kt similarity index 100% rename from EnumLookups/src/androidTest/java/com/zc/enumlookups/ExampleInstrumentedTest.kt rename to enumlookups/src/androidTest/java/com/zc/enumlookups/ExampleInstrumentedTest.kt diff --git a/EnumLookups/src/main/AndroidManifest.xml b/enumlookups/src/main/AndroidManifest.xml similarity index 100% rename from EnumLookups/src/main/AndroidManifest.xml rename to enumlookups/src/main/AndroidManifest.xml diff --git a/EnumLookups/src/main/java/com/zc/enumlookups/Lookups.kt b/enumlookups/src/main/java/com/zc/enumlookups/Lookups.kt similarity index 67% rename from EnumLookups/src/main/java/com/zc/enumlookups/Lookups.kt rename to enumlookups/src/main/java/com/zc/enumlookups/Lookups.kt index 2828165..6550df7 100644 --- a/EnumLookups/src/main/java/com/zc/enumlookups/Lookups.kt +++ b/enumlookups/src/main/java/com/zc/enumlookups/Lookups.kt @@ -6,6 +6,8 @@ package com.zc.enumlookups /** * Reverse lookup of an enum using ordinal. + * @param value: Ordinal value. + * @param default: Default enum if not found. If not specified, the first enum is returned. */ inline fun > lookup(value: Int, default: T = enumValues().first()): T { return enumValues().find { it.ordinal == value } ?: default @@ -13,6 +15,9 @@ inline fun > lookup(value: Int, default: T = enumValues() /** * Reverse lookup of an enum using name. + * @param name: Name of enum + * @param default: Default enum if not found. If not specified, the first enum is returned. + * @param ignoreCase: `true` to ignore character case when comparing enum names. */ inline fun > lookupByName(name: String, default: T = enumValues().first(), ignoreCase: Boolean = true): T { return enumValues().find { it.name.contentEquals(name, ignoreCase) } ?: default @@ -20,20 +25,22 @@ inline fun > lookupByName(name: String, default: T = enumVal /** * Reverse lookup of an enum using a field as key. + * @param value: Value of enum. */ inline fun , V> ((T) -> V).lookupByValue(value: V, default: T = enumValues().first()): T { return enumValues().find { this(it) == value } ?: default } /** - * Reverse lookup of enums using a predicate. + * Returns a list of enums matching the predicate. */ inline fun > lookupFilter(predicate: (T) -> Boolean): List { return enumValues().filter(predicate) } /** - * Reverse lookup of an enum using a field as key. + * Reverse lookup operator. Calls [lookupByValue] with default params. + * @param value: Value of enum. */ inline infix fun , V> ((T) -> V).from(value: V): T { return lookupByValue(value) diff --git a/EnumLookups/src/test/java/com/zc/enumlookups/ExampleUnitTest.kt b/enumlookups/src/test/java/com/zc/enumlookups/ExampleUnitTest.kt similarity index 100% rename from EnumLookups/src/test/java/com/zc/enumlookups/ExampleUnitTest.kt rename to enumlookups/src/test/java/com/zc/enumlookups/ExampleUnitTest.kt diff --git a/settings.gradle b/settings.gradle index cac0879..d14c195 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,3 +1,3 @@ rootProject.name = "EnumlookupsExample" include ':app' -include ':EnumLookups' +include ':enumlookups'