public GraphTextWriter getModifiers(ABC abc, boolean isStatic, GraphTextWriter writer) { if ((kindFlags & ATTR_Override) > 0) { writer.appendNoHilight("override "); } Multiname m = getName(abc); if (m != null) { String nsname = ""; for (ABCContainerTag abcTag : abc.getAbcTags()) { if (m.namespace_index == -1) { break; } DottedChain dc = abcTag .getABC() .nsValueToName( abc.constants.getNamespace(m.namespace_index).getName(abc.constants)); nsname = dc.getLast(); if (nsname == null) { break; } if (!nsname.isEmpty()) { break; } } Namespace ns = m.getNamespace(abc.constants); if (nsname != null) { String identifier = IdentifiersDeobfuscation.printIdentifier(true, nsname); if (identifier != null && !identifier.isEmpty()) { writer.appendNoHilight(identifier).appendNoHilight(" "); } } if (ns != null) { String nsPrefix = ns.getPrefix(abc); if (nsPrefix != null && !nsPrefix.isEmpty()) { writer.appendNoHilight(nsPrefix).appendNoHilight(" "); } } } if (isStatic) { if ((this instanceof TraitSlotConst) && ((TraitSlotConst) this).isNamespace()) { // static is automatic } else { writer.appendNoHilight("static "); } } if ((kindFlags & ATTR_Final) > 0) { if (!isStatic) { writer.appendNoHilight("final "); } } return writer; }
private AS3Package ensurePackage(DottedChain packageStr) { AS3Package parent = root; for (int i = 0; i < packageStr.size(); i++) { String pathElement = packageStr.get(i); AS3Package pkg = parent.getSubPackage(pathElement); if (pkg == null) { pkg = new AS3Package(pathElement, swf); parent.addSubPackage(pkg); } parent = pkg; } return parent; }
public int getStringId(DottedChain val, boolean add) { if (val == null) { return 0; } return getStringId(val.toRawString(), add); }
public DottedChain getDottedChain(int index) { String str = getString(index); DottedChain chain = dottedChainCache.get(str); if (chain == null) { chain = DottedChain.parse(str); dottedChainCache.put(str, chain); } return chain; }
/** * Returns the value for the cell at <code>columnIndex</code> and <code>rowIndex</code>. * * @param rowIndex the row whose value is to be queried * @param columnIndex the column whose value is to be queried * @return the value Object at the specified cell */ @Override public Object getValueAt(int rowIndex, int columnIndex) { switch (columnIndex) { case 0: return rowIndex; case 1: if (rowIndex == 0) { return "-"; } return abc.constants.getNamespace(rowIndex).getKindStr(); case 2: if (rowIndex == 0) { return "-"; } DottedChain chain = abc.constants.getNamespace(rowIndex).getName(abc.constants); if (chain == null) { return "-"; } return chain.toRawString(); default: return null; } }