Skip to content

Commit da5e676

Browse files
Add CharSequence.notContain: Boolean functions
1 parent 8254cfd commit da5e676

File tree

5 files changed

+38
-12
lines changed

5 files changed

+38
-12
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44

55
### Added
66

7+
- `CharSequence.notContain: Boolean` functions
8+
79
### Changed
810

911
### Deprecated

README.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,11 @@
88
[![Tech debt](https://img.shields.io/sonar/tech_debt/com.javiersc.kotlin:kotlin-stdlib-javiersc?label=Tech%20debt&logo=SonarCloud&logoColor=white&server=https%3A%2F%2Fsonarcloud.io)](https://sonarcloud.io/dashboard?id=com.javiersc.kotlin:kotlin-stdlib-javiersc)
99

1010
# JavierSC Kotlin stdlib
11+
12+
## Download from MavenCentral
13+
14+
```kotlin
15+
dependencies {
16+
implementation("com.javiersc.kotlin:kotlin-stdlib:$version")
17+
}
18+
```

kotlin-stdlib/MODULE.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,9 @@
11
# Module kotlin-stdlib
2+
3+
## Download from MavenCentral
4+
5+
```kotlin
6+
dependencies {
7+
implementation("com.javiersc.kotlin:kotlin-stdlib:$version")
8+
}
9+
```

kotlin-stdlib/api/kotlin-stdlib.api

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,9 @@ public final class com/javiersc/kotlin/stdlib/StringsKt {
164164
public static final fun isNotNullNorBlank (Ljava/lang/String;)Z
165165
public static final fun isNotNullNorEmpty (Ljava/lang/CharSequence;)Z
166166
public static final fun isNotNullNorEmpty (Ljava/lang/String;)Z
167+
public static final fun notContain (Ljava/lang/CharSequence;Ljava/lang/CharSequence;Z)Z
168+
public static final fun notContain (Ljava/lang/CharSequence;Lkotlin/text/Regex;)Z
169+
public static synthetic fun notContain$default (Ljava/lang/CharSequence;Ljava/lang/CharSequence;ZILjava/lang/Object;)Z
167170
public static final fun remove (Ljava/lang/String;Ljava/lang/String;Z)Ljava/lang/String;
168171
public static synthetic fun remove$default (Ljava/lang/String;Ljava/lang/String;ZILjava/lang/Object;)Ljava/lang/String;
169172
public static final fun removeDuplicateEmptyLines (Ljava/lang/String;)Ljava/lang/String;

kotlin-stdlib/commonMain/kotlin/com/javiersc/kotlin/stdlib/Strings.kt

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
@file:OptIn(ExperimentalContracts::class)
2+
13
package com.javiersc.kotlin.stdlib
24

35
import kotlin.contracts.ExperimentalContracts
@@ -9,32 +11,35 @@ import kotlin.contracts.contract
911
public inline fun String.remove(value: String, ignoreCase: Boolean = false): String =
1012
replace(oldValue = value, newValue = "", ignoreCase = ignoreCase)
1113

12-
@OptIn(ExperimentalContracts::class)
1314
public inline fun CharSequence?.isNotNullNorBlank(): Boolean {
14-
contract { returns(false) implies (this@isNotNullNorBlank == null) }
15+
contract { returns(true) implies (this@isNotNullNorBlank != null) }
1516

16-
return (this != null) && isNotBlank()
17+
return !isNullOrBlank()
1718
}
1819

19-
@OptIn(ExperimentalContracts::class)
2020
public inline fun CharSequence?.isNotNullNorEmpty(): Boolean {
21-
contract { returns(false) implies (this@isNotNullNorEmpty == null) }
21+
contract { returns(true) implies (this@isNotNullNorEmpty != null) }
2222

23-
return (this != null) && isNotEmpty()
23+
return !isNullOrEmpty()
2424
}
2525

26-
@OptIn(ExperimentalContracts::class)
26+
public inline fun CharSequence.notContain(
27+
other: CharSequence,
28+
ignoreCase: Boolean = false,
29+
): Boolean = !contains(other, ignoreCase)
30+
31+
public inline fun CharSequence.notContain(regex: Regex): Boolean = !contains(regex)
32+
2733
public inline fun String?.isNotNullNorBlank(): Boolean {
28-
contract { returns(false) implies (this@isNotNullNorBlank == null) }
34+
contract { returns(true) implies (this@isNotNullNorBlank != null) }
2935

30-
return (this != null) && isNotBlank()
36+
return !isNullOrBlank()
3137
}
3238

33-
@OptIn(ExperimentalContracts::class)
3439
public inline fun String?.isNotNullNorEmpty(): Boolean {
35-
contract { returns(false) implies (this@isNotNullNorEmpty == null) }
40+
contract { returns(true) implies (this@isNotNullNorEmpty != null) }
3641

37-
return (this != null) && isNotEmpty()
42+
return !isNullOrEmpty()
3843
}
3944

4045
public inline val String.Companion.Empty: String

0 commit comments

Comments
 (0)