Skip to content

Instantly share code, notes, and snippets.

@deenar
Last active October 31, 2020 23:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save deenar/642e29a3380565799634d9382dd10771 to your computer and use it in GitHub Desktop.
Save deenar/642e29a3380565799634d9382dd10771 to your computer and use it in GitHub Desktop.
import monocle.std.option.some
import monocle.function.Index._
import monocle.function.At._
// you should be able to zoom into any field, a Lens is returned if there are no Option or List elements in the chain
// currently you need to either get or getOption, based on where you get a Lens or an Optional
//These would make thing even nicer https://github.com/optics-dev/Monocle/pull/886, https://github.com/optics-dev/Monocle/pull/908, https://github.com/optics-dev/Monocle/pull/902 and https://github.com/optics-dev/Monocle/pull/912
val altContMethodLens = Contact4.AltContactMethod.anotherchoiceoption
// an Optional is returned if one exists
val chargeValueOpt = Contact4.Charge.value
// Index function is generated for List elements
val listOpt Contact4.Othr(0).PrefrdMtd.value
// at function for Map elements (attributes)
val mapAttrOpt = Contact4.Charge.attributes("@Ccy")
case class Contact4(Nm: String,
EmailAdr: Option[String] = None,
Charge: Option[generated.ActiveCurrencyAndAmount] = None,
ContactMethod: List[generated.ContactMethodChoice] = Nil,
AltContactMethod: generated.AnotherChoice,
Othr: List[generated.OtherContact1] = Nil,
PrefrdMtd: Option[generated.PreferredContactMethod1Code] = None)
object Contact4 {
def Nm: monocle.Lens[Contact4, String] = monocle.Lens[Contact4, String](_.Nm)((_Nm: String) => (contact4: Contact4) => contact4.copy(Nm = _Nm))
def EmailAdr: monocle.Optional[Contact4, String] = monocle.Lens[Contact4, Option[String]](_.EmailAdr)((_EmailAdr: Option[String]) => (contact4: Contact4) => contact4.copy(EmailAdr = _EmailAdr)).composePrism(some)
def Charge: monocle.Optional[Contact4, generated.ActiveCurrencyAndAmount] = monocle.Lens[Contact4, Option[generated.ActiveCurrencyAndAmount]](_.Charge)((_Charge: Option[generated.ActiveCurrencyAndAmount]) => (contact4: Contact4) => contact4.copy(Charge = _Charge)).composePrism(some)
def ContactMethod: monocle.Lens[Contact4, List[generated.ContactMethodChoice]] = monocle.Lens[Contact4, List[generated.ContactMethodChoice]](_.ContactMethod)((_ContactMethod: List[generated.ContactMethodChoice]) => (contact4: Contact4) => contact4.copy(ContactMethod = _ContactMethod))
def ContactMethod(idx: Int): monocle.Optional[Contact4, generated.ContactMethodChoice] = Contact4.ContactMethod.composeOptional(index(idx))
def AltContactMethod: monocle.Lens[Contact4, generated.AnotherChoice] = monocle.Lens[Contact4, generated.AnotherChoice](_.AltContactMethod)((_AltContactMethod: generated.AnotherChoice) => (contact4: Contact4) => contact4.copy(AltContactMethod = _AltContactMethod))
def Othr: monocle.Lens[Contact4, List[generated.OtherContact1]] = monocle.Lens[Contact4, List[generated.OtherContact1]](_.Othr)((_Othr: List[generated.OtherContact1]) => (contact4: Contact4) => contact4.copy(Othr = _Othr))
def Othr(idx: Int): monocle.Optional[Contact4, generated.OtherContact1] = Contact4.Othr.composeOptional(index(idx))
def PrefrdMtd: monocle.Optional[Contact4, generated.PreferredContactMethod1Code] = monocle.Lens[Contact4, Option[generated.PreferredContactMethod1Code]](_.PrefrdMtd)((_PrefrdMtd: Option[generated.PreferredContactMethod1Code]) => (contact4: Contact4) => contact4.copy(PrefrdMtd = _PrefrdMtd)).composePrism(some)
implicit class Contact4W[A](l: monocle.Lens[A, Contact4]) {
def Nm: monocle.Lens[A, String] = l.composeLens(Contact4.Nm)
def EmailAdr: monocle.Optional[A, String] = l.composeOptional(Contact4.EmailAdr)
def Charge: monocle.Optional[A, generated.ActiveCurrencyAndAmount] = l.composeOptional(Contact4.Charge)
def ContactMethod: monocle.Lens[A, List[generated.ContactMethodChoice]] = l.composeLens(Contact4.ContactMethod)
def ContactMethod(idx: Int): monocle.Optional[A, generated.ContactMethodChoice] = l composeOptional(Contact4.ContactMethod(idx))
def AltContactMethod: monocle.Lens[A, generated.AnotherChoice] = l.composeLens(Contact4.AltContactMethod)
def Othr: monocle.Lens[A, List[generated.OtherContact1]] = l.composeLens(Contact4.Othr)
def Othr(idx: Int): monocle.Optional[A, generated.OtherContact1] = l composeOptional(Contact4.Othr(idx))
def PrefrdMtd: monocle.Optional[A, generated.PreferredContactMethod1Code] = l.composeOptional(Contact4.PrefrdMtd)
}
implicit class Contact4O[A](l: monocle.Optional[A, Contact4]) {
def Nm: monocle.Optional[A, String] = l.composeLens(Contact4.Nm)
def EmailAdr: monocle.Optional[A, String] = l.composeOptional(Contact4.EmailAdr)
def Charge: monocle.Optional[A, generated.ActiveCurrencyAndAmount] = l.composeOptional(Contact4.Charge)
def ContactMethod: monocle.Optional[A, List[generated.ContactMethodChoice]] = l.composeLens(Contact4.ContactMethod)
def ContactMethod(idx: Int): monocle.Optional[A, generated.ContactMethodChoice] = l.composeOptional(Contact4.ContactMethod(idx))
def AltContactMethod: monocle.Optional[A, generated.AnotherChoice] = l.composeLens(Contact4.AltContactMethod)
def Othr: monocle.Optional[A, List[generated.OtherContact1]] = l.composeLens(Contact4.Othr)
def Othr(idx: Int): monocle.Optional[A, generated.OtherContact1] = l.composeOptional(Contact4.Othr(idx))
def PrefrdMtd: monocle.Optional[A, generated.PreferredContactMethod1Code] = l.composeOptional(Contact4.PrefrdMtd)
}
}
case class OtherContact1(ChanlTp: String,
Id: Option[String] = None,
PrefrdMtd: generated.PreferredContactMethod1Code) extends AnotherChoiceOption
object OtherContact1 {
def ChanlTp: monocle.Lens[OtherContact1, String] = monocle.Lens[OtherContact1, String](_.ChanlTp)((_ChanlTp: String) => (othercontact1: OtherContact1) => othercontact1.copy(ChanlTp = _ChanlTp))
def Id: monocle.Optional[OtherContact1, String] = monocle.Lens[OtherContact1, Option[String]](_.Id)((_Id: Option[String]) => (othercontact1: OtherContact1) => othercontact1.copy(Id = _Id)).composePrism(some)
def PrefrdMtd: monocle.Lens[OtherContact1, generated.PreferredContactMethod1Code] = monocle.Lens[OtherContact1, generated.PreferredContactMethod1Code](_.PrefrdMtd)((_PrefrdMtd: generated.PreferredContactMethod1Code) => (othercontact1: OtherContact1) => othercontact1.copy(PrefrdMtd = _PrefrdMtd))
implicit class OtherContact1W[A](l: monocle.Lens[A, OtherContact1]) {
def ChanlTp: monocle.Lens[A, String] = l.composeLens(OtherContact1.ChanlTp)
def Id: monocle.Optional[A, String] = l.composeOptional(OtherContact1.Id)
def PrefrdMtd: monocle.Lens[A, generated.PreferredContactMethod1Code] = l.composeLens(OtherContact1.PrefrdMtd)
}
implicit class OtherContact1O[A](l: monocle.Optional[A, OtherContact1]) {
def ChanlTp: monocle.Optional[A, String] = l.composeLens(OtherContact1.ChanlTp)
def Id: monocle.Optional[A, String] = l.composeOptional(OtherContact1.Id)
def PrefrdMtd: monocle.Optional[A, generated.PreferredContactMethod1Code] = l.composeLens(OtherContact1.PrefrdMtd)
}
}
case class ActiveCurrencyAndAmount(value: BigDecimal,
attributes: Map[String, scalaxb.DataRecord[Any]] = Map.empty) extends AnotherChoiceOption {
lazy val Ccy = attributes("@Ccy").as[String]
}
object ActiveCurrencyAndAmount {
def value: monocle.Lens[ActiveCurrencyAndAmount, BigDecimal] = monocle.Lens[ActiveCurrencyAndAmount, BigDecimal](_.value)((_value: BigDecimal) => (activecurrencyandamount: ActiveCurrencyAndAmount) => activecurrencyandamount.copy(value = _value))
def attributes: monocle.Lens[ActiveCurrencyAndAmount, Map[String, scalaxb.DataRecord[Any]]] = monocle.Lens[ActiveCurrencyAndAmount, Map[String, scalaxb.DataRecord[Any]]](_.attributes)((_attributes: Map[String, scalaxb.DataRecord[Any]]) => (activecurrencyandamount: ActiveCurrencyAndAmount) => activecurrencyandamount.copy(attributes = _attributes))
def attributes(key: String): monocle.Lens[ActiveCurrencyAndAmount, Option[scalaxb.DataRecord[Any]]] = ActiveCurrencyAndAmount.attributes.composeLens(at(key))
implicit class ActiveCurrencyAndAmountW[A](l: monocle.Lens[A, ActiveCurrencyAndAmount]) {
def value: monocle.Lens[A, BigDecimal] = l.composeLens(ActiveCurrencyAndAmount.value)
def attributes: monocle.Lens[A, Map[String, scalaxb.DataRecord[Any]]] = l.composeLens(ActiveCurrencyAndAmount.attributes)
}
implicit class ActiveCurrencyAndAmountO[A](l: monocle.Optional[A, ActiveCurrencyAndAmount]) {
def value: monocle.Optional[A, BigDecimal] = l.composeLens(ActiveCurrencyAndAmount.value)
def attributes: monocle.Optional[A, Map[String, scalaxb.DataRecord[Any]]] = l.composeLens(ActiveCurrencyAndAmount.attributes)
}
}
case class AnotherChoice(anotherchoiceoption: scalaxb.DataRecord[generated.AnotherChoiceOption])
object AnotherChoice {
def anotherchoiceoption: monocle.Lens[AnotherChoice, scalaxb.DataRecord[generated.AnotherChoiceOption]] = monocle.Lens[AnotherChoice, scalaxb.DataRecord[generated.AnotherChoiceOption]](_.anotherchoiceoption)((_anotherchoiceoption: scalaxb.DataRecord[generated.AnotherChoiceOption]) => (anotherchoice: AnotherChoice) => anotherchoice.copy(anotherchoiceoption = _anotherchoiceoption))
implicit class AnotherChoiceW[A](l: monocle.Lens[A, AnotherChoice]) {
def anotherchoiceoption: monocle.Lens[A, scalaxb.DataRecord[generated.AnotherChoiceOption]] = l.composeLens(AnotherChoice.anotherchoiceoption)
}
implicit class AnotherChoiceO[A](l: monocle.Optional[A, AnotherChoice]) {
def anotherchoiceoption: monocle.Optional[A, scalaxb.DataRecord[generated.AnotherChoiceOption]] = l.composeLens(AnotherChoice.anotherchoiceoption)
}
}
trait AnotherChoiceOption
case class ContactMethodChoice(contactmethodchoiceoption: scalaxb.DataRecord[Any])
object ContactMethodChoice {
def contactmethodchoiceoption: monocle.Lens[ContactMethodChoice, scalaxb.DataRecord[Any]] = monocle.Lens[ContactMethodChoice, scalaxb.DataRecord[Any]](_.contactmethodchoiceoption)((_contactmethodchoiceoption: scalaxb.DataRecord[Any]) => (contactmethodchoice: ContactMethodChoice) => contactmethodchoice.copy(contactmethodchoiceoption = _contactmethodchoiceoption))
implicit class ContactMethodChoiceW[A](l: monocle.Lens[A, ContactMethodChoice]) {
def contactmethodchoiceoption: monocle.Lens[A, scalaxb.DataRecord[Any]] = l.composeLens(ContactMethodChoice.contactmethodchoiceoption)
}
implicit class ContactMethodChoiceO[A](l: monocle.Optional[A, ContactMethodChoice]) {
def contactmethodchoiceoption: monocle.Optional[A, scalaxb.DataRecord[Any]] = l.composeLens(ContactMethodChoice.contactmethodchoiceoption)
}
}
trait ContactMethodChoiceOption
sealed trait PreferredContactMethod1Code
object PreferredContactMethod1Code {
def fromString(value: String, scope: scala.xml.NamespaceBinding)(implicit fmt: scalaxb.XMLFormat[generated.PreferredContactMethod1Code]): PreferredContactMethod1Code = fmt.reads(scala.xml.Text(value), Nil) match {
case Right(x: PreferredContactMethod1Code) => x
case x => throw new RuntimeException(s"fromString returned unexpected value $x for input $value")
}
lazy val values: Seq[PreferredContactMethod1Code] = Seq(LETT, MAIL, PHON, FAXX, CELL)
}
case object LETT extends PreferredContactMethod1Code { override def toString = "LETT" }
case object MAIL extends PreferredContactMethod1Code { override def toString = "MAIL" }
case object PHON extends PreferredContactMethod1Code { override def toString = "PHON" }
case object FAXX extends PreferredContactMethod1Code { override def toString = "FAXX" }
case object CELL extends PreferredContactMethod1Code { override def toString = "CELL" }
import monocle.std.option.some
import monocle.function.all._
import monocle.Traversal
// I could take it a bit further by generating companion object methods to compose Traversal's too
case class Contact4(Nm: String,
EmailAdr: Option[String] = None,
Charge: Option[ActiveCurrencyAndAmount] = None,
ContactMethod: List[ContactMethodChoice] = Nil,
AltContactMethod: AnotherChoice,
Othr: List[OtherContact1] = Nil,
PrefrdMtd: Option[PreferredContactMethod1Code] = None)
object Contact4 {
def Nm: monocle.Lens[Contact4, String] = monocle.Lens[Contact4, String](_.Nm)((_Nm: String) => (contact4: Contact4) => contact4.copy(Nm = _Nm))
def EmailAdr: monocle.Lens[Contact4, Option[String]] = monocle.Lens[Contact4, Option[String]](_.EmailAdr)((_EmailAdr: Option[String]) => (contact4: Contact4) => contact4.copy(EmailAdr = _EmailAdr))
def Charge: monocle.Lens[Contact4, Option[ActiveCurrencyAndAmount]] = monocle.Lens[Contact4, Option[ActiveCurrencyAndAmount]](_.Charge)((_Charge: Option[ActiveCurrencyAndAmount]) => (contact4: Contact4) => contact4.copy(Charge = _Charge))
def ContactMethod: monocle.Lens[Contact4, List[ContactMethodChoice]] = monocle.Lens[Contact4, List[ContactMethodChoice]](_.ContactMethod)((_ContactMethod: List[ContactMethodChoice]) => (contact4: Contact4) => contact4.copy(ContactMethod = _ContactMethod))
def ContactMethod(idx: Int): monocle.Optional[Contact4, ContactMethodChoice] = Contact4.ContactMethod.composeOptional(index(idx))
def eachContactMethod: monocle.Traversal[Contact4, ContactMethodChoice] = Contact4.ContactMethod.composeTraversal(each)
def AltContactMethod: monocle.Lens[Contact4, AnotherChoice] = monocle.Lens[Contact4, AnotherChoice](_.AltContactMethod)((_AltContactMethod: AnotherChoice) => (contact4: Contact4) => contact4.copy(AltContactMethod = _AltContactMethod))
def Othr: monocle.Lens[Contact4, List[OtherContact1]] = monocle.Lens[Contact4, List[OtherContact1]](_.Othr)((_Othr: List[OtherContact1]) => (contact4: Contact4) => contact4.copy(Othr = _Othr))
def Othr(idx: Int): monocle.Optional[Contact4, OtherContact1] = Contact4.Othr.composeOptional(index(idx))
def eachOthr: monocle.Traversal[Contact4, OtherContact1] = Contact4.Othr.composeTraversal(each)
def PrefrdMtd: monocle.Lens[Contact4, Option[PreferredContactMethod1Code]] = monocle.Lens[Contact4, Option[PreferredContactMethod1Code]](_.PrefrdMtd)((_PrefrdMtd: Option[PreferredContactMethod1Code]) => (contact4: Contact4) => contact4.copy(PrefrdMtd = _PrefrdMtd))
implicit class Contact4W[A](l: monocle.Lens[A, Contact4]) {
def Nm: monocle.Lens[A, String] = l composeLens Contact4.Nm
def EmailAdr: monocle.Lens[A, Option[String]] = l composeLens Contact4.EmailAdr
def Charge: monocle.Lens[A, Option[ActiveCurrencyAndAmount]] = l composeLens Contact4.Charge
def ContactMethod: monocle.Lens[A, List[ContactMethodChoice]] = l composeLens Contact4.ContactMethod
def AltContactMethod: monocle.Lens[A, AnotherChoice] = l composeLens Contact4.AltContactMethod
def Othr: monocle.Lens[A, List[OtherContact1]] = l composeLens Contact4.Othr
def PrefrdMtd: monocle.Lens[A, Option[PreferredContactMethod1Code]] = l composeLens Contact4.PrefrdMtd
}
implicit class Contact4O[A](l: monocle.Optional[A, Contact4]) {
def Nm: monocle.Optional[A, String] = l.composeLens(Contact4.Nm)
def EmailAdr: monocle.Optional[A, Option[String]] = l.composeLens(Contact4.EmailAdr)
def Charge: monocle.Optional[A, Option[ActiveCurrencyAndAmount]] = l.composeLens(Contact4.Charge)
def ContactMethod: monocle.Optional[A, List[ContactMethodChoice]] = l.composeLens(Contact4.ContactMethod)
def AltContactMethod: monocle.Optional[A, AnotherChoice] = l.composeLens(Contact4.AltContactMethod)
def Othr: monocle.Optional[A, List[OtherContact1]] = l.composeLens(Contact4.Othr)
def PrefrdMtd: monocle.Optional[A, Option[PreferredContactMethod1Code]] = l.composeLens(Contact4.PrefrdMtd)
}
implicit class Contact4X[A](l: monocle.Lens[A, Option[Contact4]]) {
def Nm: monocle.Optional[A, String] = l.composePrism(some).composeLens(Contact4.Nm)
def EmailAdr: monocle.Optional[A, String] = l.composePrism(some).composeOptional(Contact4.EmailAdr.composePrism(some))
def Charge: monocle.Optional[A, ActiveCurrencyAndAmount] = l.composePrism(some).composeOptional(Contact4.Charge.composePrism(some))
def ContactMethod: monocle.Optional[A, List[ContactMethodChoice]] =l.composePrism(some).composeLens(Contact4.ContactMethod)
def ContactMethod(idx: Int): monocle.Optional[A, ContactMethodChoice] = l.composePrism(some).composeOptional(Contact4.ContactMethod(idx))
def AltContactMethod: monocle.Optional[A, AnotherChoice] = l.composePrism(some).composeLens(Contact4.AltContactMethod)
def Othr: monocle.Optional[A, List[OtherContact1]] =l.composePrism(some).composeLens(Contact4.Othr)
def Othr(idx: Int): monocle.Optional[A, OtherContact1] = l.composePrism(some).composeOptional(Contact4.Othr(idx))
def PrefrdMtd: monocle.Optional[A, PreferredContactMethod1Code] = l.composePrism(some).composeOptional(Contact4.PrefrdMtd.composePrism(some))
}
}
case class OtherContact1(ChanlTp: String,
Id: Option[String] = None,
PrefrdMtd: PreferredContactMethod1Code,
ContactMethod: Option[ContactMethodChoice]) extends AnotherChoiceOption
object OtherContact1 {
def ChanlTp: monocle.Lens[OtherContact1, String] = monocle.Lens[OtherContact1, String](_.ChanlTp)((_ChanlTp: String) => (othercontact1: OtherContact1) => othercontact1.copy(ChanlTp = _ChanlTp))
def Id: monocle.Lens[OtherContact1, Option[String]] = monocle.Lens[OtherContact1, Option[String]](_.Id)((_Id: Option[String]) => (othercontact1: OtherContact1) => othercontact1.copy(Id = _Id))
def PrefrdMtd: monocle.Lens[OtherContact1, PreferredContactMethod1Code] = monocle.Lens[OtherContact1, PreferredContactMethod1Code](_.PrefrdMtd)((_PrefrdMtd: PreferredContactMethod1Code) => (othercontact1: OtherContact1) => othercontact1.copy(PrefrdMtd = _PrefrdMtd))
def ContactMethod: monocle.Lens[OtherContact1, Option[ContactMethodChoice]] = monocle.Lens[OtherContact1, Option[ContactMethodChoice]](_.ContactMethod)((_ContactMethod: Option[ContactMethodChoice]) => (othercontact1: OtherContact1) => othercontact1.copy(ContactMethod = _ContactMethod)))
implicit class OtherContact1W[A](l: monocle.Lens[A, OtherContact1]) {
def ChanlTp: monocle.Lens[A, String] = l composeLens OtherContact1.ChanlTp
def Id: monocle.Lens[A, Option[String]] = l composeLens OtherContact1.Id
def PrefrdMtd: monocle.Lens[A, PreferredContactMethod1Code] = l composeLens OtherContact1.PrefrdMtd
def ContactMethod: monocle.Lens[A, Option[ContactMethodChoice]] = l composeLens OtherContact1.ContactMethod
}
implicit class OtherContact1O[A](l: monocle.Optional[A, OtherContact1]) {
def ChanlTp: monocle.Optional[A, String] = l.composeLens(OtherContact1.ChanlTp)
def Id: monocle.Optional[A, Option[String]] = l.composeLens(OtherContact1.Id)
def PrefrdMtd: monocle.Optional[A, PreferredContactMethod1Code] = l.composeLens(OtherContact1.PrefrdMtd)
def ContactMethod: monocle.Optional[A, Option[ContactMethodChoice]] = l.composeLens(OtherContact1.ContactMethod)
}
implicit class OtherContact1X[A](l: monocle.Lens[A, Option[OtherContact1]]) {
def ChanlTp: monocle.Optional[A, String] = l.composePrism(some).composeLens(OtherContact1.ChanlTp)
def Id: monocle.Optional[A, String] = l.composePrism(some).composeOptional(OtherContact1.Id.composePrism(some))
def PrefrdMtd: monocle.Optional[A, PreferredContactMethod1Code] = l.composePrism(some).composeLens(OtherContact1.PrefrdMtd)
def ContactMethod: monocle.Optional[A, ContactMethodChoice] = l.composePrism(some).composeOptional(OtherContact1.ContactMethod.composePrism(some))
}
}
case class ActiveCurrencyAndAmount(value: BigDecimal,
attributes: Map[String, scalaxb.DataRecord[Any]] = Map.empty) extends AnotherChoiceOption {
lazy val Ccy = attributes("@Ccy").as[String]
}
object ActiveCurrencyAndAmount {
def value: monocle.Lens[ActiveCurrencyAndAmount, BigDecimal] = monocle.Lens[ActiveCurrencyAndAmount, BigDecimal](_.value)((_value: BigDecimal) => (activecurrencyandamount: ActiveCurrencyAndAmount) => activecurrencyandamount.copy(value = _value))
def attributes: monocle.Lens[ActiveCurrencyAndAmount, Map[String, scalaxb.DataRecord[Any]]] = monocle.Lens[ActiveCurrencyAndAmount, Map[String, scalaxb.DataRecord[Any]]](_.attributes)((_attributes: Map[String, scalaxb.DataRecord[Any]]) => (activecurrencyandamount: ActiveCurrencyAndAmount) => activecurrencyandamount.copy(attributes = _attributes))
implicit class ActiveCurrencyAndAmountW[A](l: monocle.Lens[A, ActiveCurrencyAndAmount]) {
def value: monocle.Lens[A, BigDecimal] = l composeLens ActiveCurrencyAndAmount.value
def attributes: monocle.Lens[A, Map[String, scalaxb.DataRecord[Any]]] = l composeLens ActiveCurrencyAndAmount.attributes
}
implicit class ActiveCurrencyAndAmountO[A](l: monocle.Optional[A, ActiveCurrencyAndAmount]) {
def value: monocle.Optional[A, BigDecimal] = l.composeLens(ActiveCurrencyAndAmount.value)
def attributes: monocle.Optional[A, Map[String, scalaxb.DataRecord[Any]]] = l.composeLens(ActiveCurrencyAndAmount.attributes)
}
implicit class ActiveCurrencyAndAmountX[A](l: monocle.Lens[A, Option[ActiveCurrencyAndAmount]]) {
def value: monocle.Optional[A, BigDecimal] = l.composePrism(some).composeLens(ActiveCurrencyAndAmount.value)
def attributes: monocle.Optional[A, Map[String, scalaxb.DataRecord[Any]]] = l.composePrism(some).composeLens(ActiveCurrencyAndAmount.attributes)
}
}
case class AnotherChoice(anotherchoiceoption: scalaxb.DataRecord[AnotherChoiceOption])
object AnotherChoice {
def anotherchoiceoption: monocle.Lens[AnotherChoice, scalaxb.DataRecord[AnotherChoiceOption]] = monocle.Lens[AnotherChoice, scalaxb.DataRecord[AnotherChoiceOption]](_.anotherchoiceoption)((_anotherchoiceoption: scalaxb.DataRecord[AnotherChoiceOption]) => (anotherchoice: AnotherChoice) => anotherchoice.copy(anotherchoiceoption = _anotherchoiceoption))
implicit class AnotherChoiceW[A](l: monocle.Lens[A, AnotherChoice]) {
def anotherchoiceoption: monocle.Lens[A, scalaxb.DataRecord[AnotherChoiceOption]] = l composeLens AnotherChoice.anotherchoiceoption
}
implicit class AnotherChoiceO[A](l: monocle.Optional[A, AnotherChoice]) {
def anotherchoiceoption: monocle.Optional[A, scalaxb.DataRecord[AnotherChoiceOption]] = l.composeLens(AnotherChoice.anotherchoiceoption)
}
implicit class AnotherChoiceX[A](l: monocle.Lens[A, Option[AnotherChoice]]) {
def anotherchoiceoption: monocle.Optional[A, scalaxb.DataRecord[AnotherChoiceOption]] = l.composePrism(some).composeLens(AnotherChoice.anotherchoiceoption)
}
}
trait AnotherChoiceOption
case class ContactMethodChoice(contactmethodchoiceoption: scalaxb.DataRecord[Any])
object ContactMethodChoice {
def contactmethodchoiceoption: monocle.Lens[ContactMethodChoice, scalaxb.DataRecord[Any]] = monocle.Lens[ContactMethodChoice, scalaxb.DataRecord[Any]](_.contactmethodchoiceoption)((_contactmethodchoiceoption: scalaxb.DataRecord[Any]) => (contactmethodchoice: ContactMethodChoice) => contactmethodchoice.copy(contactmethodchoiceoption = _contactmethodchoiceoption))
implicit class ContactMethodChoiceW[A](l: monocle.Lens[A, ContactMethodChoice]) {
def contactmethodchoiceoption: monocle.Lens[A, scalaxb.DataRecord[Any]] = l composeLens ContactMethodChoice.contactmethodchoiceoption
}
implicit class ContactMethodChoiceO[A](l: monocle.Optional[A, ContactMethodChoice]) {
def contactmethodchoiceoption: monocle.Optional[A, scalaxb.DataRecord[Any]] = l.composeLens(ContactMethodChoice.contactmethodchoiceoption)
}
implicit class ContactMethodChoiceX[A](l: monocle.Lens[A, Option[ContactMethodChoice]]) {
def contactmethodchoiceoption: monocle.Optional[A, scalaxb.DataRecord[Any]] = l.composePrism(some).composeLens(ContactMethodChoice.contactmethodchoiceoption)
}
}
trait ContactMethodChoiceOption
sealed trait PreferredContactMethod1Code
object PreferredContactMethod1Code {
def fromString(value: String, scope: scala.xml.NamespaceBinding)(implicit fmt: scalaxb.XMLFormat[PreferredContactMethod1Code]): PreferredContactMethod1Code = fmt.reads(scala.xml.Text(value), Nil) match {
case Right(x: PreferredContactMethod1Code) => x
case x => throw new RuntimeException(s"fromString returned unexpected value $x for input $value")
}
lazy val values: Seq[PreferredContactMethod1Code] = Seq(LETT, MAIL, PHON, FAXX, CELL)
}
case object LETT extends PreferredContactMethod1Code { override def toString = "LETT" }
case object MAIL extends PreferredContactMethod1Code { override def toString = "MAIL" }
case object PHON extends PreferredContactMethod1Code { override def toString = "PHON" }
case object FAXX extends PreferredContactMethod1Code { override def toString = "FAXX" }
case object CELL extends PreferredContactMethod1Code { override def toString = "CELL" }
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment