@DomainNode
@Authorization(name = "READ", allowFromRelated = ["partOf"])
@Authorization(name = "ADMIN", allowFromRelated = ["partOf"])
@Authorization(name = "AFFECT_ENTITIES_WITH_ISSUES", allowFromRelated = ["partOf"])
@Authorization(name = "RELATED_ISSUE_AFFECTED_ENTITY", allowFromRelated = ["partOf"])
class InterfacePart(name: String, description: String, val templatedFields: MutableMap<String, String>) : NamedAffectedByIssue, MutableTemplatedNode

Part of an Interface(Specification). Its semantics depend on the InterfaceSpecification, e.g. for a REST API interface, this could represent a single endpoint of the API. Relations can specify for both start and end included InterfaceParts. Can be affected by Issues, and be used as start / end of ServiceEffectSpecifications. READ is granted if READ is granted on `definedOn`.

Constructors

Link copied to clipboard
constructor(name: String, description: String, templatedFields: MutableMap<String, String>)

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
@FilterProperty
@SearchProperty
open override var description: String

The description of 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 = "END_PART", direction = Direction.INCOMING)
@FilterProperty
val includingIncomingRelations: LazyLoadingDelegate<Relation, NodeSetPropertyDelegate.NodeSetProperty>

Relations which include this InterfacePart at the end of the Relation

@NodeRelationship(type = "INTERFACE", direction = Direction.INCOMING)
@FilterProperty
val includingIntraComponentDependencyParticipants: LazyLoadingDelegate<IntraComponentDependencyParticipant, NodeSetPropertyDelegate.NodeSetProperty>

Participants of IntraComponentDependencySpecifications where this is used as included part.

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

Relations which include this InterfacePart at the start of the Relation

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
@FilterProperty
@OrderProperty
@SearchProperty
open override var name: String

The name of this entity.

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.INCOMING)
@FilterProperty
val partOf: LazyLoadingDelegate<InterfaceSpecificationVersion, NodePropertyDelegate.NodeProperty>

InterfaceSpecificationVersions where this InterfacePart is active.

Link copied to clipboard
internal val propertyLookup: MutableMap<String, PropertyDelegate<*>>
Link copied to clipboard
Link copied to clipboard
@NodeRelationship(type = "USED_IN", direction = Direction.INCOMING)
@FilterProperty
@OrderProperty
open override val template: LazyLoadingDelegate<InterfacePartTemplate, 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

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