com.skillw.asahi.api.member.namespace.NamespaceHolder.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of Pouvoir Show documentation
Show all versions of Pouvoir Show documentation
Bukkit Script Engine Plugin.
package com.skillw.asahi.api.member.namespace
import com.skillw.asahi.api.member.parser.prefix.namespacing.BasePrefix
/**
* @className NamespaceHolder
*
* @author Glom
* @date 2023/1/19 16:48 Copyright 2024 Glom.
*/
interface NamespaceHolder> {
/** 持有的命名空间 */
val namespaces: NamespaceContainer
/**
* 获取命名空间的名称数组
*
* @return
*/
fun namespaceNames(): Array = namespaces.namespaceNames()
/**
* 添加命名空间
*
* @param names 命名空间id
* @return 自身
*/
fun addNamespaces(vararg names: String): T {
namespaces.addNamespaces(*names)
return this as T
}
/**
* 删除命名空间
*
* @param names 命名空间id
* @return 自身
*/
fun removeSpaces(vararg names: String): T {
namespaces.removeSpaces(*names)
return this as T
}
/**
* 是否有前缀解释器
*
* @param token token
* @return 是否有前缀解释器
*/
fun hasPrefix(token: String): Boolean {
return namespaces.any { it.hasPrefix(token) }
}
/**
* 获取前缀解释器
*
* @param token token
* @return 前缀解释器
*/
fun getPrefix(token: String): BasePrefix<*>? {
return namespaces.firstOrNull { it.hasPrefix(token) }?.getPrefix(token)
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy