package Ġfi . e vid ent . ap ina . java . model Ċ Ċ import Ġfi . e vid ent . ap ina . java . model . type . Java Type Ċ import Ġfi . e vid ent . ap ina . java . model . type . Type Environment Ċ import Ġfi . e vid ent . ap ina . java . model . type . Type Schema Ċ import Ġfi . e vid ent . ap ina . utils . propertyName For Getter Ċ import Ġjava . lang . reflect . Modifier Ċ import Ġjava . util .* Ċ Ċ class ĠJava Method ( val Ġow ning Class : ĠJava Class , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġname : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġvisibility : ĠJava Visibility , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠreturnType : ĠJava Type , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparameters : ĠList < Java Parameter >, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġmodifiers : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġschema : ĠType Schema ) Ġ: ĠJava Annotated Element Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġ_ annotations Ġ= ĠArrayList < Java Annotation >() ĊĊĠĠĠ Ġval ĠpropertyName : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠpropertyName For Getter ( name ) ĊĊĠĠĠ Ġval Ġcorresponding Field : ĠJava Field ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġow ning Class . find Field ( propertyName ) ĊĊĠĠĠ Ġoverride Ġval Ġannotations : ĠList < Java Annotation > ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ annotations ĊĊĠĠĠ Ġval Ġis Public : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġvisibility Ġ== ĠJava Visibility . PUBLIC ĊĊĠĠĠ Ġval Ġis Getter : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Static Ġ|| Ġ! parameters . isEmpty ()) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġname . startsWith (" get ") Ġ|| Ġ( name . startsWith (" is ") Ġ&& ĠreturnType Ġ== ĠJava Type . Basic . BOOLEAN ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġenvironment : ĠType Environment ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠType Environment ( own ing Class . schema , Ġschema ) ĊĊĠĠĠ Ġval Ġis Static : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠModifier . is Static ( modifiers ) ĊĊĠĠĠ Ġfun Ġadd Annotation ( annotation : ĠJava Annotation ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ annotations Ġ+= Ġannotation ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠtoString () Ġ= Ġ"$ visibility Ġ$ returnType Ġ$ name Ġ${ parameters . join ToString (",", Ġ" (", Ġ") ") }" Ċ } Ċ