/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 2 0 ĠThe ĠAndroid ĠOpen ĠSource ĠProject Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġcom . android . build . gradle . internal . tasks . ml kit . codegen . code injector . methods Ċ Ċ import Ġcom . android . build . gradle . internal . tasks . ml kit . codegen . ClassNames Ċ import Ġcom . android . build . gradle . internal . tasks . ml kit . codegen . getOutput ParameterType Ċ import Ġcom . android . build . gradle . internal . tasks . ml kit . codegen . get Processor Name Ċ import Ġcom . android . tools . ml kit . Ml Names Ċ import Ġcom . android . tools . ml kit . Tensor Info Ċ import Ġcom . squareup . jav ap o et . Method Spec Ċ import Ġcom . squareup . jav ap o et . Type Spec Ċ import Ġjavax . lang . model . element . Modifier Ċ Ċ /** Ċ Ġ* ĠInject or Ġto Ġinject Ġdefault Ġimplementation Ġfor Ġgetter Ġmethod , Ġwhich Ġreturns Ġ[ java . nio . ByteBuffer ] Ċ Ġ* Ġand Ġassume Ġdata Ġtype Ġhas Ġmethod Ġ` get Buffer `. Ċ Ġ*/ Ċ class ĠDefault GetMethod Injector Ġ: ĠMethod Injector () Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġinject ( class Builder : ĠType Spec . Builder , Ġtensor Info : ĠTensor Info ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdefault Type Ġ= ĠClass Names . T ENSOR _ BUFFER ĊĠĠĠĠĠĠĠ Ġval Ġadvanced Type Ġ= Ġget Output ParameterType ( tensor Info ) ĊĠĠĠĠĠĠĠ Ġval Ġmethod Spec Builder Ġ= ĠMethod Spec . method Builder ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠM l Names . format Getter Name ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtensor Info . identifier Name , Ġdefault Type . simple Name () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Modifiers ( Modifier . PUBLIC ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. returns ( default Type ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Annotation ( ClassNames . NON _ NULL ) ĊĠĠĠĠĠĠĠ Ġif Ġ( advanced Type Ġ== ĠClass Names . T ENSOR _ IMAGE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmethod Spec Builder . add Statement ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" return Ġ\$ L . process (\ $ L ). get Tensor Buffer ()", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Processor Name ( tensor Info ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtensor Info . identifier Name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmethod Spec Builder . add Statement ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" return Ġ\$ L . process (\ $ L )", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Processor Name ( tensor Info ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtensor Info . identifier Name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġclass Builder . add Method ( method Spec Builder . build ()) ĊĠĠĠ Ġ} Ċ }