Skip to content

Commit

Permalink
W-15425021: add amqp operation binding version 1, 2, and 3
Browse files Browse the repository at this point in the history
  • Loading branch information
arielmirra committed Apr 17, 2024
1 parent 1c880b0 commit 62e6915
Show file tree
Hide file tree
Showing 26 changed files with 512 additions and 206 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -115,12 +115,6 @@ case class Amqp091ChannelBinding010(override private[amf] val _internal: Interna
@JSExportTopLevel("Amqp091ChannelBinding010")
def this() = this(InternalAmqp091ChannelBinding010())

override protected def bindingVersion: StrField = _internal.bindingVersion
override def withBindingVersion(bindingVersion: String): this.type = {
_internal.withBindingVersion(bindingVersion)
this
}

override def exchange: Amqp091ChannelExchange010 = _internal.exchange
override def queue: Amqp091Queue010 = _internal.queue

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,20 @@ package amf.apicontract.client.platform.model.domain.bindings.amqp

import amf.apicontract.client.platform.model.domain.bindings.{BindingVersion, OperationBinding}
import amf.apicontract.client.scala.model.domain.bindings.amqp.{
Amqp091OperationBinding => InternalAmqp091OperationBinding
Amqp091OperationBinding => InternalAmqp091OperationBinding,
Amqp091OperationBinding010 => InternalAmqp091OperationBinding010,
Amqp091OperationBinding030 => InternalAmqp091OperationBinding030
}
import amf.apicontract.internal.convert.ApiClientConverters._
import amf.core.client.platform.model.{BoolField, IntField, StrField}

import scala.scalajs.js.annotation.{JSExportAll, JSExportTopLevel}

@JSExportAll
case class Amqp091OperationBinding(override private[amf] val _internal: InternalAmqp091OperationBinding)
abstract class Amqp091OperationBinding(override private[amf] val _internal: InternalAmqp091OperationBinding)
extends OperationBinding
with BindingVersion {

@JSExportTopLevel("Amqp091OperationBinding")
def this() = this(InternalAmqp091OperationBinding())
override protected def bindingVersion: StrField = _internal.bindingVersion
override def withBindingVersion(bindingVersion: String): this.type = {
_internal.withBindingVersion(bindingVersion)
Expand All @@ -29,9 +29,9 @@ case class Amqp091OperationBinding(override private[amf] val _internal: Internal
def deliveryMode: IntField = _internal.deliveryMode
def mandatory: BoolField = _internal.mandatory
def bcc: ClientList[StrField] = _internal.bcc.asClient
def replyTo: StrField = _internal.replyTo
def timestamp: BoolField = _internal.timestamp
def ack: BoolField = _internal.ack

def timestamp: BoolField = _internal.timestamp
def ack: BoolField = _internal.ack

def withExpiration(expiration: Int): this.type = {
_internal.withExpiration(expiration)
Expand Down Expand Up @@ -68,11 +68,6 @@ case class Amqp091OperationBinding(override private[amf] val _internal: Internal
this
}

def withReplyTo(replyTo: String): this.type = {
_internal.withReplyTo(replyTo)
this
}

def withTimestamp(timestamp: Boolean): this.type = {
_internal.withTimestamp(timestamp)
this
Expand All @@ -82,6 +77,30 @@ case class Amqp091OperationBinding(override private[amf] val _internal: Internal
_internal.withAck(ack)
this
}
}

@JSExportAll
case class Amqp091OperationBinding010(override private[amf] val _internal: InternalAmqp091OperationBinding010)
extends Amqp091OperationBinding(_internal) {

@JSExportTopLevel("Amqp091OperationBinding010")
def this() = this(InternalAmqp091OperationBinding010())

def replyTo: StrField = _internal.replyTo
def withReplyTo(replyTo: String): this.type = {
_internal.withReplyTo(replyTo)
this
}

override def linkCopy(): Amqp091OperationBinding010 = _internal.linkCopy()
}

@JSExportAll
case class Amqp091OperationBinding030(override private[amf] val _internal: InternalAmqp091OperationBinding030)
extends Amqp091OperationBinding(_internal) {

@JSExportTopLevel("Amqp091OperationBinding030")
def this() = this(InternalAmqp091OperationBinding030())

override def linkCopy(): Amqp091OperationBinding = _internal.linkCopy()
override def linkCopy(): Amqp091OperationBinding030 = _internal.linkCopy()
}
Original file line number Diff line number Diff line change
Expand Up @@ -72,8 +72,6 @@ class Amqp091ChannelBinding010(override val fields: Fields, override val annotat

override def key: StrField = fields.field(Amqp010Model.key)

override protected def bindingVersionField: Field = BindingVersion

override def exchange: Amqp091ChannelExchange010 = fields.field(Amqp010Model.Exchange)
override def queue: Amqp091Queue010 = fields.field(Amqp010Model.Queue)
def withExchange(exchange: Amqp091ChannelExchange010): this.type = set(Amqp010Model.Exchange, exchange)
Expand Down Expand Up @@ -134,8 +132,6 @@ class Amqp091ChannelBinding020(override val fields: Fields, override val annotat

override def key: StrField = fields.field(Amqp020Model.key)

override protected def bindingVersionField: Field = BindingVersion

override def exchange: Amqp091ChannelExchange020 = fields.field(Amqp020Model.Exchange)
override def queue: Amqp091Queue020 = fields.field(Amqp020Model.Queue)
def withExchange(exchange: Amqp091ChannelExchange020): this.type = set(Amqp020Model.Exchange, exchange)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,57 +1,92 @@
package amf.apicontract.client.scala.model.domain.bindings.amqp

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.apicontract.internal.metamodel.domain.bindings.Amqp091OperationBindingModel
import amf.apicontract.internal.metamodel.domain.bindings.Amqp091OperationBindingModel._
import amf.apicontract.internal.metamodel.domain.bindings.{
Amqp091OperationBinding010Model => Amqp010Model,
Amqp091OperationBinding030Model => Amqp030Model,
Amqp091OperationBindingModel => BaseModel
}
import amf.apicontract.internal.metamodel.domain.bindings.BindingVersion.BindingVersion
import amf.apicontract.client.scala.model.domain.bindings.{BindingVersion, OperationBinding}
import amf.shapes.client.scala.model.domain.Key

class Amqp091OperationBinding(override val fields: Fields, override val annotations: Annotations)
abstract class Amqp091OperationBinding(override val fields: Fields, override val annotations: Annotations)
extends OperationBinding
with BindingVersion
with Key {
override protected def bindingVersionField: Field = BindingVersion
override def meta: Amqp091OperationBindingModel.type = Amqp091OperationBindingModel

override def componentId: String = "/amqp091-operation"
def expiration: IntField = fields.field(Expiration)
def userId: StrField = fields.field(UserId)
def cc: Seq[StrField] = fields.field(CC)
def priority: IntField = fields.field(Priority)
def deliveryMode: IntField = fields.field(DeliveryMode)
def mandatory: BoolField = fields.field(Mandatory)
def bcc: Seq[StrField] = fields.field(BCC)
def replyTo: StrField = fields.field(ReplyTo)
def timestamp: BoolField = fields.field(Timestamp)
def ack: BoolField = fields.field(Ack)

def withExpiration(expiration: Int): this.type = set(Expiration, expiration)
def withUserId(userId: String): this.type = set(UserId, userId)
def withCc(cC: Seq[String]): this.type = set(CC, cC)
def withPriority(priority: Int): this.type = set(Priority, priority)
def withDeliveryMode(deliveryMode: Int): this.type = set(DeliveryMode, deliveryMode)
def withMandatory(mandatory: Boolean): this.type = set(Mandatory, mandatory)
def withBcc(bCC: Seq[String]): this.type = set(BCC, bCC)
def withReplyTo(replyTo: String): this.type = set(ReplyTo, replyTo)
def withTimestamp(timestamp: Boolean): this.type = set(Timestamp, timestamp)
def withAck(ack: Boolean): this.type = set(Ack, ack)

override def linkCopy(): Amqp091OperationBinding = Amqp091OperationBinding().withId(id)
override def key: StrField = fields.field(BaseModel.key)
override protected def bindingVersionField: Field = BindingVersion

def expiration: IntField = fields.field(BaseModel.Expiration)
def userId: StrField = fields.field(BaseModel.UserId)
def cc: Seq[StrField] = fields.field(BaseModel.CC)
def priority: IntField = fields.field(BaseModel.Priority)
def deliveryMode: IntField = fields.field(BaseModel.DeliveryMode)
def mandatory: BoolField = fields.field(BaseModel.Mandatory)
def bcc: Seq[StrField] = fields.field(BaseModel.BCC)
def timestamp: BoolField = fields.field(BaseModel.Timestamp)
def ack: BoolField = fields.field(BaseModel.Ack)

def withExpiration(expiration: Int): this.type = set(BaseModel.Expiration, expiration)
def withUserId(userId: String): this.type = set(BaseModel.UserId, userId)
def withCc(cC: Seq[String]): this.type = set(BaseModel.CC, cC)
def withPriority(priority: Int): this.type = set(BaseModel.Priority, priority)
def withDeliveryMode(deliveryMode: Int): this.type = set(BaseModel.DeliveryMode, deliveryMode)
def withMandatory(mandatory: Boolean): this.type = set(BaseModel.Mandatory, mandatory)
def withBcc(bCC: Seq[String]): this.type = set(BaseModel.BCC, bCC)
def withTimestamp(timestamp: Boolean): this.type = set(BaseModel.Timestamp, timestamp)
def withAck(ack: Boolean): this.type = set(BaseModel.Ack, ack)
}

class Amqp091OperationBinding010(override val fields: Fields, override val annotations: Annotations)
extends Amqp091OperationBinding(fields, annotations) {

def replyTo: StrField = fields.field(Amqp010Model.ReplyTo)
def withReplyTo(replyTo: String): this.type = set(Amqp010Model.ReplyTo, replyTo)

override def meta: Amqp010Model.type = Amqp010Model

override def componentId: String = "/amqp091-operation-010"

override def linkCopy(): Amqp091OperationBinding010 = Amqp091OperationBinding010().withId(id)

override protected def classConstructor: (Fields, Annotations) => Linkable with DomainElement =
Amqp091OperationBinding.apply
Amqp091OperationBinding010.apply
}

override def key: StrField = fields.field(Amqp091OperationBindingModel.key)
object Amqp091OperationBinding010 {

def apply(): Amqp091OperationBinding010 = apply(Annotations())

def apply(annotations: Annotations): Amqp091OperationBinding010 = apply(Fields(), annotations)

def apply(fields: Fields, annotations: Annotations): Amqp091OperationBinding010 =
new Amqp091OperationBinding010(fields, annotations)
}

class Amqp091OperationBinding030(override val fields: Fields, override val annotations: Annotations)
extends Amqp091OperationBinding(fields, annotations) {
override def key: StrField = fields.field(BaseModel.key)

override def meta: Amqp030Model.type = Amqp030Model

override def componentId: String = "/amqp091-operation-030"

override def linkCopy(): Amqp091OperationBinding030 = Amqp091OperationBinding030().withId(id)

override protected def classConstructor: (Fields, Annotations) => Linkable with DomainElement =
Amqp091OperationBinding030.apply
}

object Amqp091OperationBinding {
object Amqp091OperationBinding030 {

def apply(): Amqp091OperationBinding = apply(Annotations())
def apply(): Amqp091OperationBinding030 = apply(Annotations())

def apply(annotations: Annotations): Amqp091OperationBinding = apply(Fields(), annotations)
def apply(annotations: Annotations): Amqp091OperationBinding030 = apply(Fields(), annotations)

def apply(fields: Fields, annotations: Annotations): Amqp091OperationBinding =
new Amqp091OperationBinding(fields, annotations)
def apply(fields: Fields, annotations: Annotations): Amqp091OperationBinding030 =
new Amqp091OperationBinding030(fields, annotations)
}
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,8 @@ trait ApiBaseConverter
with Amqp091ChannelBinding020Converter
with Amqp091MessageBindingConverter
with Amqp091OperationBindingConverter
with Amqp091OperationBinding010Converter
with Amqp091OperationBinding030Converter
with EmptyBindingConverter
with HttpMessageBindingConverter
with HttpOperationBindingConverter
Expand Down Expand Up @@ -216,6 +218,24 @@ trait Amqp091OperationBindingConverter extends PlatformSecrets {
from._internal
}
}
trait Amqp091OperationBinding010Converter extends PlatformSecrets {
implicit object Amqp091OperationBinding010Matcher
extends BidirectionalMatcher[Amqp091OperationBinding010, domain.bindings.amqp.Amqp091OperationBinding010] {
override def asClient(from: Amqp091OperationBinding010): domain.bindings.amqp.Amqp091OperationBinding010 =
platform.wrap[domain.bindings.amqp.Amqp091OperationBinding010](from)
override def asInternal(from: domain.bindings.amqp.Amqp091OperationBinding010): Amqp091OperationBinding010 =
from._internal
}
}
trait Amqp091OperationBinding030Converter extends PlatformSecrets {
implicit object Amqp091OperationBinding030Matcher
extends BidirectionalMatcher[Amqp091OperationBinding030, domain.bindings.amqp.Amqp091OperationBinding030] {
override def asClient(from: Amqp091OperationBinding030): domain.bindings.amqp.Amqp091OperationBinding030 =
platform.wrap[domain.bindings.amqp.Amqp091OperationBinding030](from)
override def asInternal(from: domain.bindings.amqp.Amqp091OperationBinding030): Amqp091OperationBinding030 =
from._internal
}
}
trait EmptyBindingConverter extends PlatformSecrets {
implicit object EmptyBindingMatcher extends BidirectionalMatcher[EmptyBinding, domain.bindings.EmptyBinding] {
override def asClient(from: EmptyBinding): domain.bindings.EmptyBinding =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,7 @@ import amf.apicontract.client.platform.model.domain.api.{AsyncApi, WebApi}
import amf.apicontract.client.platform.model.domain.bindings._
import amf.apicontract.client.platform.model.domain.bindings.amqp._
import amf.apicontract.client.platform.model.domain.bindings.anypointmq._
import amf.apicontract.client.platform.model.domain.bindings.googlepubsub.{
GooglePubSubChannelBinding,
GooglePubSubMessageBinding,
GooglePubSubMessageStoragePolicy,
GooglePubSubSchemaDefinition,
GooglePubSubSchemaSettings
}
import amf.apicontract.client.platform.model.domain.bindings.googlepubsub._
import amf.apicontract.client.platform.model.domain.bindings.http._
import amf.apicontract.client.platform.model.domain.bindings.ibmmq._
import amf.apicontract.client.platform.model.domain.bindings.kafka._
Expand Down Expand Up @@ -256,9 +250,13 @@ private[amf] object ApiRegister extends UniqueInitializer with PlatformSecrets {
platform.registerWrapper(Amqp091MessageBindingModel) {
case s: amf.apicontract.client.scala.model.domain.bindings.amqp.Amqp091MessageBinding => Amqp091MessageBinding(s)
}
platform.registerWrapper(Amqp091OperationBindingModel) {
case s: amf.apicontract.client.scala.model.domain.bindings.amqp.Amqp091OperationBinding =>
Amqp091OperationBinding(s)
platform.registerWrapper(Amqp091OperationBinding010Model) {
case s: amf.apicontract.client.scala.model.domain.bindings.amqp.Amqp091OperationBinding010 =>
Amqp091OperationBinding010(s)
}
platform.registerWrapper(Amqp091OperationBinding030Model) {
case s: amf.apicontract.client.scala.model.domain.bindings.amqp.Amqp091OperationBinding030 =>
Amqp091OperationBinding030(s)
}
platform.registerWrapper(HttpMessageBindingModel) {
case s: amf.apicontract.client.scala.model.domain.bindings.http.HttpMessageBinding => HttpMessageBinding(s)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,8 @@ private[amf] object APIEntities extends Entities {
Amqp091ChannelExchange020Model,
Amqp091MessageBindingModel,
Amqp091OperationBindingModel,
Amqp091OperationBinding010Model,
Amqp091OperationBinding030Model,
OperationBindingModel,
ChannelBindingModel,
EmptyBindingModel,
Expand Down
Loading

0 comments on commit 62e6915

Please sign in to comment.