-
Notifications
You must be signed in to change notification settings - Fork 19
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
W-12689952: add ibmmq server binding in async21+
- add server binding model, parser and emitter - add unit validation and cycle tests - add model to APIEntities and model.md
- Loading branch information
1 parent
ef7c133
commit 8c5df8d
Showing
14 changed files
with
320 additions
and
21 deletions.
There are no files selected for viewing
57 changes: 57 additions & 0 deletions
57
...cala/amf/apicontract/client/platform/model/domain/bindings/ibmmq/IBMMQServerBinding.scala
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
package amf.apicontract.client.platform.model.domain.bindings.ibmmq | ||
|
||
import amf.apicontract.client.platform.model.domain.bindings.{BindingVersion, ServerBinding} | ||
import amf.apicontract.client.scala.model.domain.bindings.ibmmq.{IBMMQServerBinding => InternalIBMMQServerBinding} | ||
import amf.apicontract.internal.convert.ApiClientConverters._ | ||
import amf.core.client.platform.model | ||
import amf.core.client.platform.model.{BoolField, IntField, StrField} | ||
|
||
import scala.scalajs.js.annotation.{JSExportAll, JSExportTopLevel} | ||
|
||
@JSExportAll | ||
case class IBMMQServerBinding(override private[amf] val _internal: InternalIBMMQServerBinding) | ||
extends ServerBinding | ||
with BindingVersion { | ||
@JSExportTopLevel("IBMMQServerBinding") | ||
def this() = this(InternalIBMMQServerBinding()) | ||
|
||
def groupId: StrField = _internal.groupId | ||
def ccdtQueueManagerName: StrField = _internal.ccdtQueueManagerName | ||
def cipherSpec: StrField = _internal.cipherSpec | ||
def multiEndpointServer: BoolField = _internal.multiEndpointServer | ||
def heartBeatInterval: IntField = _internal.heartBeatInterval | ||
|
||
def withGroupId(groupId: String): this.type = { | ||
_internal.withGroupId(groupId) | ||
this | ||
} | ||
|
||
def withCcdtQueueManagerName(ccdtQueueManagerName: String): this.type = { | ||
_internal.withCcdtQueueManagerName(ccdtQueueManagerName) | ||
this | ||
} | ||
|
||
def withCipherSpec(cipherSpec: String): this.type = { | ||
_internal.withCipherSpec(cipherSpec) | ||
this | ||
} | ||
|
||
def withMultiEndpointServer(multiEndpointServer: Boolean): this.type = { | ||
_internal.withMultiEndpointServer(multiEndpointServer) | ||
this | ||
} | ||
|
||
def withHeartBeatInterval(heartBeatInterval: Int): this.type = { | ||
_internal.withHeartBeatInterval(heartBeatInterval) | ||
this | ||
} | ||
|
||
override protected def bindingVersion: model.StrField = _internal.bindingVersion | ||
|
||
override def withBindingVersion(bindingVersion: String): this.type = { | ||
_internal.withBindingVersion(bindingVersion) | ||
this | ||
} | ||
|
||
override def linkCopy(): IBMMQServerBinding = _internal.linkCopy() | ||
} |
52 changes: 52 additions & 0 deletions
52
...n/scala/amf/apicontract/client/scala/model/domain/bindings/ibmmq/IBMMQServerBinding.scala
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
package amf.apicontract.client.scala.model.domain.bindings.ibmmq | ||
|
||
import amf.apicontract.client.scala.model.domain.bindings.{BindingVersion, ServerBinding} | ||
import amf.apicontract.internal.metamodel.domain.bindings.IBMMQServerBindingModel | ||
import amf.apicontract.internal.metamodel.domain.bindings.IBMMQServerBindingModel._ | ||
import amf.apicontract.internal.spec.async.parser.bindings.Bindings.IBMMQ | ||
import amf.core.client.scala.model.domain.{DomainElement, Linkable} | ||
import amf.core.client.scala.model.{BoolField, IntField, StrField} | ||
import amf.core.internal.metamodel.Field | ||
import amf.core.internal.parser.domain.{Annotations, Fields} | ||
import amf.shapes.client.scala.model.domain.Key | ||
|
||
class IBMMQServerBinding(override val fields: Fields, override val annotations: Annotations) | ||
extends ServerBinding | ||
with BindingVersion | ||
with Key { | ||
|
||
override protected def bindingVersionField: Field = BindingVersion | ||
override def meta: IBMMQServerBindingModel.type = IBMMQServerBindingModel | ||
|
||
def groupId: StrField = fields.field(GroupId) | ||
def ccdtQueueManagerName: StrField = fields.field(CcdtQueueManagerName) | ||
def cipherSpec: StrField = fields.field(CipherSpec) | ||
def multiEndpointServer: BoolField = fields.field(MultiEndpointServer) | ||
def heartBeatInterval: IntField = fields.field(HeartBeatInterval) | ||
|
||
def withGroupId(groupId: String): this.type = set(GroupId, groupId) | ||
def withCcdtQueueManagerName(ccdtQueueManagerName: String): this.type = | ||
set(CcdtQueueManagerName, ccdtQueueManagerName) | ||
def withCipherSpec(cipherSpec: String): this.type = set(CipherSpec, cipherSpec) | ||
def withMultiEndpointServer(multiEndpointServer: Boolean): this.type = set(MultiEndpointServer, multiEndpointServer) | ||
def withHeartBeatInterval(heartBeatInterval: Int): this.type = set(HeartBeatInterval, heartBeatInterval) | ||
|
||
override def key: StrField = fields.field(IBMMQServerBindingModel.key) | ||
|
||
override def componentId: String = s"/$IBMMQ-server" | ||
|
||
override def linkCopy(): IBMMQServerBinding = IBMMQServerBinding() | ||
|
||
override protected def classConstructor: (Fields, Annotations) => Linkable with DomainElement = | ||
IBMMQServerBinding.apply | ||
} | ||
|
||
object IBMMQServerBinding { | ||
|
||
def apply(): IBMMQServerBinding = apply(Annotations()) | ||
|
||
def apply(annotations: Annotations): IBMMQServerBinding = apply(Fields(), annotations) | ||
|
||
def apply(fields: Fields, annotations: Annotations): IBMMQServerBinding = | ||
new IBMMQServerBinding(fields, annotations) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
28 changes: 28 additions & 0 deletions
28
...amf/apicontract/internal/spec/async/parser/bindings/server/IBMMQServerBindingParser.scala
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
package amf.apicontract.internal.spec.async.parser.bindings.server | ||
|
||
import amf.apicontract.client.scala.model.domain.bindings.ibmmq.IBMMQServerBinding | ||
import amf.apicontract.internal.metamodel.domain.bindings.IBMMQServerBindingModel | ||
import amf.apicontract.internal.spec.async.parser.bindings.BindingParser | ||
import amf.apicontract.internal.spec.async.parser.context.AsyncWebApiContext | ||
import amf.core.internal.parser.YMapOps | ||
import amf.core.internal.parser.domain.Annotations | ||
import org.yaml.model.{YMap, YMapEntry} | ||
|
||
object IBMMQServerBindingParser extends BindingParser[IBMMQServerBinding] { | ||
override def parse(entry: YMapEntry, parent: String)(implicit ctx: AsyncWebApiContext): IBMMQServerBinding = { | ||
val binding = IBMMQServerBinding(Annotations(entry)) | ||
val map = entry.value.as[YMap] | ||
|
||
map.key("groupId", IBMMQServerBindingModel.GroupId in binding) | ||
map.key("ccdtQueueManagerName", IBMMQServerBindingModel.CcdtQueueManagerName in binding) | ||
map.key("cipherSpec", IBMMQServerBindingModel.CipherSpec in binding) | ||
map.key("multiEndpointServer", IBMMQServerBindingModel.MultiEndpointServer in binding) | ||
map.key("heartBeatInterval", IBMMQServerBindingModel.HeartBeatInterval in binding) | ||
|
||
parseBindingVersion(binding, IBMMQServerBindingModel.BindingVersion, map) | ||
|
||
ctx.closedShape(binding, map, "IBMMQServerBinding") | ||
|
||
binding | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.