@DomainNode(searchQueryName = "searchInterfaceSpecificationVersions")
@Authorization(name = "READ", allowFromRelated = ["interfaceSpecification", "interfaceDefinitions"])
@Authorization(name = "ADMIN", allowFromRelated = ["interfaceSpecification"])
@Authorization(name = "AFFECT_ENTITIES_WITH_ISSUES", allowFromRelated = ["interfaceSpecification"])
@Authorization(name = "RELATED_ISSUE_AFFECTED_ENTITY", allowFromRelated = ["interfaceDefinitions", "interfaceSpecification"])
class InterfaceSpecificationVersion(var version: String, var tags: List<String>, val templatedFields: MutableMap<String, String>) : AffectedByIssue, Versioned, MutableTemplatedNode

A specific version of an InterfaceSpecification. Defines which InterfaceParts are active. Can be both visible (generates an Interface) and invisible (does not generate an Interface) on different Components. Can be derived by Relations, and affected by Issues. READ is granted if READ is granted on `interfaceSpecification`, or any InterfaceDefinition in `definitions`

Constructors

Link copied to clipboard
constructor(version: String, tags: List<String>, templatedFields: MutableMap<String, String>)

Types

Link copied to clipboard
object Companion

Properties

Link copied to clipboard
@NodeRelationship(type = "AFFECTS", direction = Direction.INCOMING)
@FilterProperty
val affectingIssues: LazyLoadingDelegate<Issue, NodeSetPropertyDelegate.NodeSetProperty>

The issues which affect this entity

Link copied to clipboard
internal var fieldCache: MutableMap<String, Any?>
Link copied to clipboard
val graphQLId: ID

The unique id of this node

Link copied to clipboard
@Id
@GeneratedValue(generatorRef = "nodeIdGenerator")
internal var id: String?
Link copied to clipboard
@NodeRelationship(type = "INTERFACE_SPECIFICATION_VERSION", direction = Direction.INCOMING)
@FilterProperty
val interfaceDefinitions: LazyLoadingDelegate<InterfaceDefinition, NodeSetPropertyDelegate.NodeSetProperty>

Defines on which ComponentVersions this InterfaceSpecificationVersion is used

Link copied to clipboard
@NodeRelationship(type = "VERSION", direction = Direction.INCOMING)
@FilterProperty
val interfaceSpecification: LazyLoadingDelegate<InterfaceSpecification, NodePropertyDelegate.NodeProperty>

The InterfaceSpecification this is part of.

Link copied to clipboard
Link copied to clipboard
internal var isSaved: Boolean
Link copied to clipboard
@ConvertWith(converter = LazyLoadingContextConverter::class)
internal var lazyLoadingContext: LazyLoadingContext?
Link copied to clipboard
@Version
private var nodeVersion: Long

Version used for optimistic locking

Link copied to clipboard
internal var orderFields: MutableMap<String, Any?>?
Link copied to clipboard
@NodeRelationship(type = "PART", direction = Direction.OUTGOING)
@FilterProperty
val parts: LazyLoadingDelegate<InterfacePart, NodeSetPropertyDelegate.NodeSetProperty>

InterfaceParts which are part of this InterfaceSpecificationVersion

Link copied to clipboard
internal val propertyLookup: MutableMap<String, PropertyDelegate<*>>
Link copied to clipboard
Link copied to clipboard
@SearchProperty
open override var tags: List<String>

The tags of this InterfaceSpecificationVersion

Link copied to clipboard
@NodeRelationship(type = "USED_IN", direction = Direction.INCOMING)
@FilterProperty
@OrderProperty
open override val template: LazyLoadingDelegate<InterfaceSpecificationVersionTemplate, NodePropertyDelegate.NodeProperty>

Template associated with the TemplatedNode

Link copied to clipboard

The values for all templated fields. The schema is defined by the Template of this node

Link copied to clipboard
@FilterProperty
@SearchProperty
@OrderProperty
open override var version: String

The version of this InterfaceSpecificationVersion.

Functions

Link copied to clipboard
operator override fun equals(other: Any?): Boolean
Link copied to clipboard
internal suspend fun getFromGraphQL(@Autowired nodeQueryParser: NodeQueryParser, dataFetchingEnvironment: DataFetchingEnvironment): Any?
Link copied to clipboard
internal fun <T : PropertyDelegate<*>> getProperty(property: KProperty1<*, *>): T
Link copied to clipboard

Dummy function to avoid GraphQL kotlin optimization weirdness

Link copied to clipboard
override fun hashCode(): Int
Link copied to clipboard
internal suspend fun <T : Node?> loadNodesOfRelationship(property: KProperty1<*, *>, loader: LazyLoadingSubqueryGenerator<T>.() -> Unit?)
Link copied to clipboard
protected fun <T : Node?> NodeProperty(): PropertyDelegateProvider<Node, NodePropertyDelegate<T>>
Link copied to clipboard
protected fun <T : Node> NodeSetProperty(): PropertyDelegateProvider<Node, NodeSetPropertyDelegate<T>>
Link copied to clipboard
internal fun registerQueryResult(entry: NodeQueryEntry<*>, queryResult: Any?)
Link copied to clipboard
open fun templatedField(name: String, @Autowired objectMapper: ObjectMapper): JsonNode?

Value of a field defined by the template. Error if such a field is not defined.

Link copied to clipboard
open fun templatedFields(names: List<String>?, prefixMatching: Boolean?, @Autowired objectMapper: ObjectMapper): List<JSONField>

All templatedFields If `names` is provided, only those matching the name. If `prefixMatching` is true, matching is done by prefix, otherwise by full name.

Link copied to clipboard
open override fun toString(): String