/* Ċ Ġ* ĠCopyright Ġ 2 0 1 8 ĠHP ĠDevelopment ĠCompany , ĠL . P . Ċ Ġ* ĠSPDX - License - Identifier : ĠMIT Ċ Ġ*/ Ċ Ċ package Ġcom . hp . k ale xa . model . connections Ċ Ċ import Ġcom . fasterxml . jackson . annotation . JsonProperty Ċ import Ġcom . fasterxml . jackson . annotation . Json Sub Types Ċ import Ġcom . fasterxml . jackson . annotation . Json TypeInfo Ċ import Ġcom . hp . k ale xa . model . connections . print . Print Image Request Ċ import Ġcom . hp . k ale xa . model . connections . print . Print PDF Request Ċ import Ġcom . hp . k ale xa . model . connections . print . Print Web Page Request Ċ Ċ @ Json TypeInfo ( ĊĠĠĠ Ġuse Ġ= ĠJson TypeInfo . Id . NAME , ĊĠĠĠ Ġinclude Ġ= ĠJson TypeInfo . As . PROPERTY , ĊĠĠĠ Ġproperty Ġ= Ġ"@ type " Ċ ) Ċ @ Json Sub Types ( ĊĠĠĠ ĠJson Sub Types . Type ( value Ġ= ĠPrint Web Page Request :: class , Ġname Ġ= Ġ" Print Web Page Request "), ĊĠĠĠ ĠJson Sub Types . Type ( value Ġ= ĠPrint PDF Request :: class , Ġname Ġ= Ġ" Print PDF Request "), ĊĠĠĠ ĠJson Sub Types . Type ( value Ġ= ĠPrint Image Request :: class , Ġname Ġ= Ġ" Print Image Request ") Ċ ) Ċ abstract Ġclass ĠInput ( ĊĠĠĠ Ġ@ field : JsonProperty ("@ version ") ĊĠĠĠ Ġval Ġversion : ĠString , ĊĠĠĠ Ġ@ field : JsonProperty (" context ") ĊĠĠĠ Ġval Ġcontext : ĠContext ? Ġ= Ġnull Ċ ) Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġinline Ġfun Ġ< re ified ĠT Ġ: ĠInput > Ġnew Request ( block : ĠT . () Ġ-> ĠUnit ): ĠInput Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠT :: class . java . newInstance (). apply ( block ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ