All Downloads are FREE. Search and download functionalities are using the official Maven repository.

name.remal.gradle_plugins.dsl.extensions.org.gradle.api.file.RelativePath.kt Maven / Gradle / Ivy

There is a newer version: 1.9.2
Show newest version
package name.remal.gradle_plugins.dsl.extensions

import org.gradle.api.file.RelativePath

fun RelativePath.startsWith(other: RelativePath): Boolean {
    val segments = this.segments
    val otherSegments = other.segments
    if (segments.size < otherSegments.size) return false

    if (isFile) {
        if (other.isFile) {
            return this == other
        } else if (segments.size == otherSegments.size) {
            return false
        }
    } else {
        if (other.isFile) {
            return false
        } else if (segments.size == otherSegments.size) {
            return this == other
        }
    }

    var i = 0
    while (i < otherSegments.size) {
        if (segments[i] != otherSegments[i]) return false
        ++i
    }
    return true
}

fun RelativePath.endsWith(other: RelativePath): Boolean {
    if (isFile != other.isFile) {
        return false
    }

    val segments = this.segments
    val otherSegments = other.segments
    if (segments.size < otherSegments.size) return false
    val delta = segments.size - otherSegments.size
    var i = otherSegments.size - 1
    while (i >= 0) {
        if (segments[i + delta] != otherSegments[i]) return false
        --i
    }
    return true
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy