in intellij-plugin-structure/structure-toolbox/src/main/kotlin/com/jetbrains/plugin/structure/toolbox/ToolboxPluginDescriptor.kt [32:103]
fun validate(): List<PluginProblem> {
val problems = mutableListOf<PluginProblem>()
when {
id.isNullOrBlank() -> {
problems.add(PropertyNotSpecified("id"))
}
!ID_REGEX.matches(id) -> {
problems.add(InvalidPluginIDProblem(id))
}
}
if (version.isNullOrBlank()) {
problems.add(PropertyNotSpecified("version"))
}
if (meta?.description.isNullOrBlank()) {
problems.add(PropertyNotSpecified("meta.description"))
}
if (meta?.vendor.isNullOrBlank()) {
problems.add(PropertyNotSpecified("meta.vendor"))
}
if (apiVersion.isNullOrBlank()) {
problems.add(PropertyNotSpecified("apiVersion"))
} else {
val apiVersionParsed = parseVersionOrNull(apiVersion)
if (apiVersionParsed == null) {
problems.add(
InvalidSemverFormat(
descriptorPath = ToolboxPluginManager.DESCRIPTOR_NAME,
versionName = "apiVersion",
version = apiVersion
)
)
} else {
problems.addAll(validateVersion("apiVersion", apiVersionParsed))
}
}
val readableName = meta?.name
when {
readableName.isNullOrBlank() -> {
problems.add(PropertyNotSpecified("meta.name"))
}
else -> {
validatePropertyLength(
descriptor = ToolboxPluginManager.DESCRIPTOR_NAME,
propertyName = "meta.name",
propertyValue = readableName,
maxLength = MAX_NAME_LENGTH,
problems = problems
)
validatePluginNameIsCorrect(
descriptor = ToolboxPluginManager.DESCRIPTOR_NAME,
name = readableName,
problems = problems
)
}
}
val metaUrl = meta?.url
if (metaUrl != null) {
try {
URL(metaUrl)
} catch (_: MalformedURLException) {
problems.add(InvalidUrl(metaUrl, "meta.url"))
}
}
return problems
}