AS3: Clickable usage detection for multinames

This commit is contained in:
Jindra Petk
2011-07-31 19:30:03 +02:00
parent e3905865cf
commit d67e7660ef
13 changed files with 269 additions and 115 deletions

View File

@@ -21,29 +21,31 @@ package com.jpexs.asdec.abc.usages;
import com.jpexs.asdec.abc.ABC;
import com.jpexs.asdec.abc.types.traits.TraitMethodGetterSetter;
import com.jpexs.asdec.abc.types.traits.TraitSlotConst;
import com.jpexs.asdec.abc.types.traits.Traits;
/**
*
* @author JPEXS
*/
public abstract class ConstVarMultinameUsage extends InsideClassMultinameUsage {
public abstract class ConstVarMultinameUsage extends TraitMultinameUsage {
public int traitIndex ;
public boolean isStatic;
public ConstVarMultinameUsage(int multinameIndex,int classIndex,int traitIndex,boolean isStatic)
public ConstVarMultinameUsage(int multinameIndex,int classIndex,int traitIndex,boolean isStatic,Traits traits,int parentTraitIndex)
{
super(multinameIndex,classIndex);
this.traitIndex=traitIndex;
this.isStatic=isStatic;
super(multinameIndex,classIndex,traitIndex,isStatic,traits,parentTraitIndex);
}
@Override
public String toString(ABC abc) {
return super.toString(abc)+" "+(isStatic?
((TraitSlotConst)abc.class_info[classIndex].static_traits.traits[traitIndex]).convert(abc.constants, abc.method_info, abc,true)
:
((TraitSlotConst)abc.instance_info[classIndex].instance_traits.traits[traitIndex]).convert(abc.constants, abc.method_info, abc,false)
);
return super.toString(abc)+" "+
(parentTraitIndex>-1?
(isStatic?
(((TraitMethodGetterSetter)abc.class_info[classIndex].static_traits.traits[parentTraitIndex]).convert(abc.constants, abc.method_info, abc,isStatic)):
(((TraitMethodGetterSetter)abc.instance_info[classIndex].instance_traits.traits[parentTraitIndex]).convert(abc.constants, abc.method_info, abc,isStatic))
)
:
"")+
((TraitSlotConst)traits.traits[traitIndex]).convert(abc.constants, abc.method_info, abc,isStatic)
;
}
public int getTraitIndex() {