package Ġio . dis assemble . jav analysis . insn Ċ Ċ import Ġio . dis assemble . jav analysis . code Ċ import Ġio . dis assemble . jav analysis . info Ċ import Ġio . dis assemble . jav analysis . pool Ċ import Ġjav assist . Ct Method Ċ import Ġjav assist . byte code . Opcode Ċ Ċ /** Ċ Ġ* Ġ@ author ĠTy ler ĠSed lar Ċ Ġ* Ġ@ since Ġ 5 / 2 0 / 2 0 1 7 Ċ Ġ*/ Ċ Ċ /** Ċ Ġ* ĠA Ġclass Ġrepresenting Ġa Ġconstant Ġinstruction . Ċ Ġ* Ċ Ġ* Ġ@ param Ġowner ĠThe Ġ[ Ct Method ] Ġthat Ġthis Ġinstruction Ġis Ġa Ġpart Ġof . Ċ Ġ* Ġ@ param Ġindex ĠThe Ġindex Ġof Ġthis Ġinstruction Ġin Ġ[ Ct Method ]. Ċ Ġ*/ Ċ class ĠL dc Insn ( ĊĠĠĠĠĠĠĠ Ġowner : ĠC t Method , ĊĠĠĠĠĠĠĠ Ġindex : ĠInt Ċ ) Ġ: ĠC t Insn ( owner , Ġindex ) Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġpool Index : ĠInt ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( opcode Ġ== ĠOpcode . L DC ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġowner . code . iterator (). byte At ( index Ġ+ Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġowner . code . iterator (). u 1 6 bit At ( index Ġ+ Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( opcode Ġ== ĠOpcode . L DC ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġowner . code . iterator (). write Byte ( value , Ġindex Ġ+ Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġowner . code . iterator (). write 1 6 bit ( value , Ġindex Ġ+ Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġtype Ġof Ġconstant Ġthat Ġthis Ġinstruction Ġis ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġtag : ĠInt ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġowner . info . const Pool . getTag ( pool Index ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġconstant Ġvalue ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġc st : ĠAny ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġowner . pool . get L dc Value ( pool Index ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSets Ġthis Ġconstant Ġto Ġa Ġnew Ġ[ String ] Ġvalue . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġvalue ĠThe Ġ[ String ] Ġvalue Ġto Ġbe Ġset Ġto . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġset String ( value : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġpool Index Ġ= Ġowner . pool . add String Info ( value ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSets Ġthis Ġconstant Ġto Ġa Ġnew Ġ[ String ] Ġvalue . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġvalue ĠThe Ġ[ String ] Ġvalue Ġto Ġbe Ġset Ġto . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġset Utf 8 ( value : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġpool Index Ġ= Ġowner . pool . add Utf 8 Info ( value ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSets Ġthis Ġconstant Ġto Ġa Ġnew Ġ[ Int ] Ġvalue . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġvalue ĠThe Ġ[ Int ] Ġvalue Ġto Ġbe Ġset Ġto . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġset Int ( value : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġpool Index Ġ= Ġowner . pool . add Integer Info ( value ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSets Ġthis Ġconstant Ġto Ġa Ġnew Ġ[ Long ] Ġvalue . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġvalue ĠThe Ġ[ Long ] Ġvalue Ġto Ġbe Ġset Ġto . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġset Long ( value : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠ Ġpool Index Ġ= Ġowner . pool . add Long Info ( value ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSets Ġthis Ġconstant Ġto Ġa Ġnew Ġ[ Double ] Ġvalue . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġvalue ĠThe Ġ[ Double ] Ġvalue Ġto Ġbe Ġset Ġto . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġset Double ( value : ĠDouble ) Ġ{ ĊĠĠĠĠĠĠĠ Ġpool Index Ġ= Ġowner . pool . add Double Info ( value ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSets Ġthis Ġconstant Ġto Ġa Ġnew Ġ[ Float ] Ġvalue . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġvalue ĠThe Ġ[ Float ] Ġvalue Ġto Ġbe Ġset Ġto . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġset Float ( value : ĠFloat ) Ġ{ ĊĠĠĠĠĠĠĠ Ġpool Index Ġ= Ġowner . pool . add Float Info ( value ) ĊĠĠĠ Ġ} Ċ } Ċ