-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #1987 from aml-org/W-15425051
W-15425041: support HTTP binding versions 0.1.0, 0.2.0, and 0.3.0
- Loading branch information
Showing
52 changed files
with
1,293 additions
and
455 deletions.
There are no files selected for viewing
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
60 changes: 47 additions & 13 deletions
60
...in/scala/amf/apicontract/client/scala/model/domain/bindings/http/HttpMessageBinding.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 |
---|---|---|
@@ -1,38 +1,72 @@ | ||
package amf.apicontract.client.scala.model.domain.bindings.http | ||
import amf.core.client.scala.model.StrField | ||
import amf.core.client.scala.model.{IntField, StrField} | ||
import amf.core.client.scala.model.domain.{DomainElement, Linkable} | ||
import amf.core.internal.metamodel.Field | ||
import amf.core.internal.parser.domain.{Annotations, Fields} | ||
import amf.apicontract.internal.metamodel.domain.bindings.HttpMessageBindingModel | ||
import amf.apicontract.internal.metamodel.domain.bindings.{ | ||
HttpMessageBinding020Model, | ||
HttpMessageBinding030Model, | ||
HttpMessageBindingModel | ||
} | ||
import amf.apicontract.internal.metamodel.domain.bindings.HttpMessageBindingModel._ | ||
import amf.apicontract.client.scala.model.domain.bindings.{BindingHeaders, BindingVersion, MessageBinding} | ||
import amf.shapes.client.scala.model.domain.Key | ||
|
||
class HttpMessageBinding(override val fields: Fields, override val annotations: Annotations) | ||
abstract class HttpMessageBinding(override val fields: Fields, override val annotations: Annotations) | ||
extends MessageBinding | ||
with BindingVersion | ||
with BindingHeaders | ||
with Key { | ||
override def meta: HttpMessageBindingModel.type = HttpMessageBindingModel | ||
|
||
override def key: StrField = fields.field(HttpMessageBindingModel.key) | ||
|
||
override def key: StrField = fields.field(HttpMessageBindingModel.key) | ||
override def componentId: String = "/http-message" | ||
|
||
override protected def bindingVersionField: Field = BindingVersion | ||
override protected def headersField: Field = Headers | ||
} | ||
|
||
override def linkCopy(): HttpMessageBinding = HttpMessageBinding().withId(id) | ||
class HttpMessageBinding020(override val fields: Fields, override val annotations: Annotations) | ||
extends HttpMessageBinding(fields, annotations) { | ||
override def meta: HttpMessageBinding020Model.type = HttpMessageBinding020Model | ||
|
||
override def componentId: String = "/http-message-020" | ||
|
||
override def linkCopy(): HttpMessageBinding020 = HttpMessageBinding020().withId(id) | ||
|
||
override protected def classConstructor: (Fields, Annotations) => Linkable with DomainElement = | ||
HttpMessageBinding.apply | ||
HttpMessageBinding020.apply | ||
} | ||
|
||
object HttpMessageBinding020 { | ||
def apply(): HttpMessageBinding020 = apply(Annotations()) | ||
|
||
def apply(annotations: Annotations): HttpMessageBinding020 = apply(Fields(), annotations) | ||
|
||
def apply(fields: Fields, annotations: Annotations): HttpMessageBinding020 = | ||
new HttpMessageBinding020(fields, annotations) | ||
} | ||
|
||
object HttpMessageBinding { | ||
class HttpMessageBinding030(override val fields: Fields, override val annotations: Annotations) | ||
extends HttpMessageBinding(fields, annotations) { | ||
override def meta: HttpMessageBinding030Model.type = HttpMessageBinding030Model | ||
|
||
override def componentId: String = "/http-message-030" | ||
|
||
override def linkCopy(): HttpMessageBinding030 = HttpMessageBinding030().withId(id) | ||
|
||
def statusCode: IntField = fields.field(HttpMessageBinding030Model.StatusCode) | ||
def withStatusCode(statusCode: Int): this.type = { | ||
set(HttpMessageBinding030Model.StatusCode, statusCode) | ||
} | ||
|
||
override protected def classConstructor: (Fields, Annotations) => Linkable with DomainElement = | ||
HttpMessageBinding030.apply | ||
} | ||
|
||
def apply(): HttpMessageBinding = apply(Annotations()) | ||
object HttpMessageBinding030 { | ||
def apply(): HttpMessageBinding030 = apply(Annotations()) | ||
|
||
def apply(annotations: Annotations): HttpMessageBinding = apply(Fields(), annotations) | ||
def apply(annotations: Annotations): HttpMessageBinding030 = apply(Fields(), annotations) | ||
|
||
def apply(fields: Fields, annotations: Annotations): HttpMessageBinding = new HttpMessageBinding(fields, annotations) | ||
def apply(fields: Fields, annotations: Annotations): HttpMessageBinding030 = | ||
new HttpMessageBinding030(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
Oops, something went wrong.