Commit 11cee083 authored by Ahmed Ashour's avatar Ahmed Ashour Committed by skylot

style: use character instead of string, for better performance (PR #503)

parent 6e66dc25
......@@ -90,7 +90,7 @@ public class JCommanderWrapper<T> {
if (fieldType == int.class) {
try {
int val = f.getInt(args);
opt.append(" (default: ").append(val).append(")");
opt.append(" (default: ").append(val).append(')');
} catch (Exception e) {
// ignore
}
......
......@@ -57,6 +57,6 @@ public final class CodePosition {
@Override
public String toString() {
return line + ":" + offset + (node != null ? " " + node : "");
return line + ':' + offset + (node != null ? " " + node : "");
}
}
......@@ -77,7 +77,7 @@ public class JadxArgsValidator {
if (pos != -1) {
outDirName = name.substring(0, pos);
} else {
outDirName = name + "-" + JadxArgs.DEFAULT_OUT_DIR;
outDirName = name + '-' + JadxArgs.DEFAULT_OUT_DIR;
}
LOG.info("output directory: {}", outDirName);
outDir = new File(outDirName);
......
......@@ -21,7 +21,7 @@ public final class JavaField implements JavaNode {
@Override
public String getFullName() {
return parent.getFullName() + "." + getName();
return parent.getFullName() + '.' + getName();
}
@Override
......
......@@ -70,6 +70,6 @@ public class ResourceFile {
@Override
public String toString() {
return "ResourceFile{name='" + name + '\'' + ", type=" + type + "}";
return "ResourceFile{name='" + name + '\'' + ", type=" + type + '}';
}
}
......@@ -113,7 +113,7 @@ public class ClsSet {
} else if (outputName.endsWith(".jar")) {
ZipOutputStream out = new ZipOutputStream(outputStream);
try {
out.putNextEntry(new ZipEntry(CLST_PKG_PATH + "/" + CLST_FILENAME));
out.putNextEntry(new ZipEntry(CLST_PKG_PATH + '/' + CLST_FILENAME));
save(out);
} finally {
close(out);
......
......@@ -164,7 +164,7 @@ public class AnnotationGen {
formatAnnotation(code, (Annotation) val);
} else {
// TODO: also can be method values
throw new JadxRuntimeException("Can't decode value: " + val + " (" + val.getClass() + ")");
throw new JadxRuntimeException("Can't decode value: " + val + " (" + val.getClass() + ')');
}
}
......
......@@ -535,7 +535,7 @@ public class ClassGen {
&& importCls.getShortName().equals(shortName)) {
if (extClsInfo.isInner()) {
String parent = useClassInternal(useCls, extClsInfo.getParentClass().getAlias());
return parent + "." + shortName;
return parent + '.' + shortName;
} else {
return fullName;
}
......
......@@ -509,12 +509,12 @@ public class InsnGen {
case PHI:
case MERGE:
fallbackOnlyInsn(insn);
code.add(insn.getType().toString()).add("(");
code.add(insn.getType().toString()).add('(');
for (InsnArg insnArg : insn.getArguments()) {
addArg(code, insnArg);
code.add(' ');
}
code.add(")");
code.add(')');
break;
default:
......
......@@ -175,9 +175,9 @@ public class MethodGen {
code.startLine("throw new UnsupportedOperationException(\"Method not decompiled: ")
.add(clsAlias.makeFullClsName(clsAlias.getShortName(), true))
.add(".")
.add('.')
.add(mth.getAlias())
.add("(")
.add('(')
.add(Utils.listToString(mth.getMethodInfo().getArgumentsTypes()))
.add("):")
.add(mth.getMethodInfo().getReturnType().toString())
......@@ -219,7 +219,7 @@ public class MethodGen {
}
if (addLabels && (insn.contains(AType.JUMP) || insn.contains(AType.EXC_HANDLER))) {
code.decIndent();
code.startLine(getLabelName(insn.getOffset()) + ":");
code.startLine(getLabelName(insn.getOffset()) + ':');
code.incIndent();
}
try {
......
......@@ -109,7 +109,7 @@ public class NameGen {
String name = arg.getName();
String varName = name != null ? name : guessName(arg);
if (NameMapper.isReserved(varName)) {
return varName + "R";
return varName + 'R';
}
return varName;
}
......
......@@ -128,7 +128,7 @@ public class TypeGen {
}
String str = Long.toString(l);
if (Math.abs(l) >= Integer.MAX_VALUE) {
str += "L";
str += 'L';
}
return str;
}
......@@ -152,7 +152,7 @@ public class TypeGen {
if (d == Double.MIN_NORMAL) {
return "Double.MIN_NORMAL";
}
return Double.toString(d) + "d";
return Double.toString(d) + 'd';
}
public static String formatFloat(float f) {
......@@ -174,6 +174,6 @@ public class TypeGen {
if (f == Float.MIN_NORMAL) {
return "Float.MIN_NORMAL";
}
return Float.toString(f) + "f";
return Float.toString(f) + 'f';
}
}
......@@ -394,7 +394,7 @@ public class Deobfuscator {
return null;
}
}
ClassNode otherCls = cls.dex().root().searchClassByName(cls.getPackage() + "." + name);
ClassNode otherCls = cls.dex().root().searchClassByName(cls.getPackage() + '.' + name);
if (otherCls != null) {
return null;
}
......@@ -484,7 +484,7 @@ public class Deobfuscator {
private String prepareNamePart(String name) {
if (name.length() > maxLength) {
return "x" + Integer.toHexString(name.hashCode());
return 'x' + Integer.toHexString(name.hashCode());
}
return NameMapper.removeInvalidCharsMiddle(name);
}
......
......@@ -121,6 +121,6 @@ public class AttributeStorage {
if (list.isEmpty()) {
return "";
}
return "A:{" + Utils.listToString(list) + "}";
return "A:{" + Utils.listToString(list) + '}';
}
}
......@@ -42,6 +42,6 @@ public class Annotation {
@Override
public String toString() {
return "Annotation[" + visibility + ", " + atype + ", " + values + "]";
return "Annotation[" + visibility + ", " + atype + ", " + values + ']';
}
}
......@@ -43,6 +43,6 @@ public class EdgeInsnAttr implements IAttribute {
@Override
public String toString() {
return "EDGE_INSN: " + start + "->" + end + " " + insn;
return "EDGE_INSN: " + start + "->" + end + ' ' + insn;
}
}
......@@ -44,6 +44,6 @@ public class FieldReplaceAttr implements IAttribute {
@Override
public String toString() {
return "REPLACE: " + replaceType + " " + replaceObj;
return "REPLACE: " + replaceType + ' ' + replaceObj;
}
}
......@@ -34,7 +34,7 @@ public class JadxError {
}
if (cause != null) {
str.append(cause.getClass());
str.append(":");
str.append(':');
str.append(cause.getMessage());
str.append("\n");
str.append(Utils.getStackTrace(cause));
......
......@@ -25,7 +25,7 @@ public class PhiListAttr implements IAttribute {
StringBuilder sb = new StringBuilder();
sb.append("PHI: ");
for (PhiInsn phiInsn : list) {
sb.append('r').append(phiInsn.getResult().getRegNum()).append(" ");
sb.append('r').append(phiInsn.getResult().getRegNum()).append(' ');
}
return sb.toString();
}
......
......@@ -203,6 +203,6 @@ public class AccessInfo {
@Override
public String toString() {
return "AccessInfo: " + type + " 0x" + Integer.toHexString(accFlags) + " (" + rawString() + ")";
return "AccessInfo: " + type + " 0x" + Integer.toHexString(accFlags) + " (" + rawString() + ')';
}
}
......@@ -91,7 +91,7 @@ public final class ClassInfo implements Comparable<ClassInfo> {
int sep = clsName.lastIndexOf('$');
if (canBeInner && sep > 0 && sep != clsName.length() - 1) {
String parClsName = pkg + "." + clsName.substring(0, sep);
String parClsName = pkg + '.' + clsName.substring(0, sep);
if (pkg.isEmpty()) {
parClsName = clsName.substring(0, sep);
}
......@@ -110,7 +110,7 @@ public final class ClassInfo implements Comparable<ClassInfo> {
String innerSep = raw ? "$" : ".";
return parentClass.makeFullClsName(parentClass.getShortName(), raw) + innerSep + shortName;
}
return pkg.isEmpty() ? shortName : pkg + "." + shortName;
return pkg.isEmpty() ? shortName : pkg + '.' + shortName;
}
public String makeRawFullName() {
......@@ -148,7 +148,7 @@ public final class ClassInfo implements Comparable<ClassInfo> {
if (parentClass == null) {
return name;
}
return parentClass.getNameWithoutPackage() + "." + name;
return parentClass.getNameWithoutPackage() + '.' + name;
}
public ClassInfo getParentClass() {
......
......@@ -54,11 +54,11 @@ public final class FieldInfo {
}
public String getFullId() {
return declClass.getFullName() + "." + name + ":" + TypeGen.signature(type);
return declClass.getFullName() + '.' + name + ':' + TypeGen.signature(type);
}
public String getRawFullId() {
return declClass.makeRawFullName() + "." + name + ":" + TypeGen.signature(type);
return declClass.makeRawFullName() + '.' + name + ':' + TypeGen.signature(type);
}
public boolean isRenamed() {
......@@ -93,6 +93,6 @@ public final class FieldInfo {
@Override
public String toString() {
return declClass + "." + name + " " + type;
return declClass + "." + name + ' ' + type;
}
}
......@@ -65,15 +65,15 @@ public final class MethodInfo {
}
public String getFullName() {
return declClass.getFullName() + "." + name;
return declClass.getFullName() + '.' + name;
}
public String getFullId() {
return declClass.getFullName() + "." + shortId;
return declClass.getFullName() + '.' + shortId;
}
public String getRawFullId() {
return declClass.makeRawFullName() + "." + shortId;
return declClass.makeRawFullName() + '.' + shortId;
}
/**
......@@ -151,7 +151,7 @@ public final class MethodInfo {
@Override
public String toString() {
return declClass.getFullName() + "." + name
+ "(" + Utils.listToString(args) + "):" + retType;
return declClass.getFullName() + '.' + name
+ '(' + Utils.listToString(args) + "):" + retType;
}
}
......@@ -76,8 +76,8 @@ public class ArithNode extends InsnNode {
return InsnUtils.formatOffset(offset) + ": "
+ InsnUtils.insnTypeToString(insnType)
+ getResult() + " = "
+ getArg(0) + " "
+ op.getSymbol() + " "
+ getArg(0) + ' '
+ op.getSymbol() + ' '
+ getArg(1);
}
}
......@@ -35,6 +35,6 @@ public final class ConstClassNode extends InsnNode {
@Override
public String toString() {
return super.toString() + " " + clsType;
return super.toString() + ' ' + clsType;
}
}
......@@ -34,6 +34,6 @@ public final class ConstStringNode extends InsnNode {
@Override
public String toString() {
return super.toString() + " \"" + str + "\"";
return super.toString() + " \"" + str + '"';
}
}
......@@ -111,7 +111,7 @@ public class IfNode extends GotoNode {
public String toString() {
return InsnUtils.formatOffset(offset) + ": "
+ InsnUtils.insnTypeToString(insnType)
+ getArg(0) + " " + op.getSymbol() + " " + getArg(1)
+ getArg(0) + ' ' + op.getSymbol() + ' ' + getArg(1)
+ " -> " + (thenBlock != null ? thenBlock : InsnUtils.formatOffset(target));
}
}
......@@ -35,6 +35,6 @@ public class IndexInsnNode extends InsnNode {
@Override
public String toString() {
return super.toString() + " " + InsnUtils.indexToString(index);
return super.toString() + ' ' + InsnUtils.indexToString(index);
}
}
......@@ -578,7 +578,7 @@ public class InsnDecoder {
InsnArg.reg(insn, 0, ArgType.UNKNOWN_OBJECT));
default:
throw new DecodeException("Unknown instruction: '" + OpcodeInfo.getName(insn.getOpcode()) + "'");
throw new DecodeException("Unknown instruction: '" + OpcodeInfo.getName(insn.getOpcode()) + '\'');
}
}
......
......@@ -73,7 +73,7 @@ public class InvokeNode extends InsnNode implements CallMthInterface {
+ InsnUtils.insnTypeToString(insnType)
+ (getResult() == null ? "" : getResult() + " = ")
+ Utils.listToString(getArguments())
+ " " + mth
+ ' ' + mth
+ " type: " + type;
}
}
......@@ -229,7 +229,7 @@ public abstract class ArgType {
if (bounds == 0) {
return "?";
}
return "? " + (bounds == -1 ? "super" : "extends") + " " + type;
return "? " + (bounds == -1 ? "super" : "extends") + ' ' + type;
}
}
......@@ -245,7 +245,7 @@ public abstract class ArgType {
}
public GenericObject(GenericObject outerType, String innerName, ArgType[] generics) {
super(outerType.getObject() + "$" + innerName);
super(outerType.getObject() + '$' + innerName);
this.outerType = outerType;
this.generics = generics;
this.hash = outerType.hashCode() + 31 * innerName.hashCode()
......@@ -275,7 +275,7 @@ public abstract class ArgType {
@Override
public String toString() {
return super.toString() + "<" + Utils.arrayToString(generics) + ">";
return super.toString() + '<' + Utils.arrayToString(generics) + '>';
}
}
......@@ -389,7 +389,7 @@ public abstract class ArgType {
if (possibleTypes.length == PrimitiveType.values().length) {
return "?";
} else {
return "?" + Arrays.toString(possibleTypes);
return '?' + Arrays.toString(possibleTypes);
}
}
}
......
......@@ -70,6 +70,6 @@ public final class FieldArg extends RegisterArg {
@Override
public String toString() {
return "(" + field + ")";
return "(" + field + ')';
}
}
......@@ -62,6 +62,6 @@ public final class InsnWrapArg extends InsnArg {
@Override
public String toString() {
return "(wrap: " + type + "\n " + wrappedInsn + ")";
return "(wrap: " + type + "\n " + wrappedInsn + ')';
}
}
......@@ -69,10 +69,10 @@ public final class LiteralArg extends InsnArg {
if (getType().equals(ArgType.BOOLEAN) && (value.equals("true") || value.equals("false"))) {
return value;
}
return "(" + value + " " + type + ")";
return '(' + value + ' ' + type + ')';
} catch (JadxRuntimeException ex) {
// can't convert literal to string
return "(" + literal + " " + type + ")";
return "(" + literal + ' ' + type + ')';
}
}
}
......@@ -44,6 +44,6 @@ public final class NamedArg extends InsnArg implements Named {
@Override
public String toString() {
return "(" + name + " " + type + ")";
return '(' + name + ' ' + type + ')';
}
}
......@@ -169,17 +169,17 @@ public class RegisterArg extends InsnArg implements Named {
sb.append("(r");
sb.append(regNum);
if (sVar != null) {
sb.append("_").append(sVar.getVersion());
sb.append('_').append(sVar.getVersion());
}
if (getName() != null) {
sb.append(" '").append(getName()).append("'");
sb.append(" '").append(getName()).append('\'');
}
sb.append(" ");
sb.append(' ');
sb.append(type);
if (!isAttrStorageEmpty()) {
sb.append(' ').append(getAttributesString());
}
sb.append(")");
sb.append(')');
return sb.toString();
}
}
......@@ -206,6 +206,6 @@ public class SSAVar extends AttrNode {
@Override
public String toString() {
return "r" + regNum + "_" + version;
return "r" + regNum + '_' + version;
}
}
......@@ -107,6 +107,6 @@ public class ConstructorInsn extends InsnNode implements CallMthInterface {
@Override
public String toString() {
return super.toString() + " " + callMth + " " + callType;
return super.toString() + ' ' + callMth + ' ' + callType;
}
}
......@@ -192,6 +192,6 @@ public class BlockNode extends AttrNode implements IBlock {
@Override
public String toString() {
return "B:" + id + ":" + InsnUtils.formatOffset(startOffset);
return "B:" + id + ':' + InsnUtils.formatOffset(startOffset);
}
}
......@@ -668,7 +668,7 @@ public class MethodNode extends LineAttrNode implements ILoadable, ICodeNode {
@Override
public String toString() {
return parentClass + "." + mthInfo.getName()
+ "(" + Utils.listToString(mthInfo.getArgumentsTypes()) + "):"
+ '(' + Utils.listToString(mthInfo.getArgumentsTypes()) + "):"
+ retType;
}
}
......@@ -119,8 +119,8 @@ final class LocalVar {
@Override
public String toString() {
return super.toString() + " " + (isEnd
? "end: " + InsnUtils.formatOffset(startAddr) + "-" + InsnUtils.formatOffset(endAddr)
return super.toString() + ' ' + (isEnd
? "end: " + InsnUtils.formatOffset(startAddr) + '-' + InsnUtils.formatOffset(endAddr)
: "active: " + InsnUtils.formatOffset(startAddr));
}
}
......@@ -169,7 +169,7 @@ public class SignatureParser {
// generic type start ('<')
String obj = slice();
if (!incompleteType) {
obj += ";";
obj += ';';
}
ArgType[] genArr = consumeGenericArgs();
consume('>');
......
......@@ -53,6 +53,6 @@ public final class Region extends AbstractRegion {
@Override
public String toString() {
return "R" + baseString();
return 'R' + baseString();
}
}
......@@ -44,6 +44,6 @@ public final class Compare {
@Override
public String toString() {
return getA() + " " + getOp().getSymbol() + " " + getB();
return getA() + " " + getOp().getSymbol() + ' ' + getB();
}
}
......@@ -224,7 +224,7 @@ public final class IfCondition {
case TERNARY:
return first() + " ? " + second() + " : " + third();
case NOT:
return "!(" + first() + ")";
return "!(" + first() + ')';
case AND:
case OR:
String op = mode == Mode.OR ? " || " : " && ";
......
......@@ -130,6 +130,6 @@ public final class IfRegion extends AbstractRegion implements IBranchRegion {
@Override
public String toString() {
return "IF " + header + " then (" + thenRegion + ") else (" + elseRegion + ")";
return "IF " + header + " then (" + thenRegion + ") else (" + elseRegion + ')';
}
}
......@@ -30,6 +30,6 @@ public class ExcHandlerAttr implements IAttribute {
public String toString() {
return "ExcHandler: " + (handler.isFinally()
? " FINALLY"
: handler.catchTypeStr() + " " + handler.getArg());
: handler.catchTypeStr() + ' ' + handler.getArg());
}
}
......@@ -162,8 +162,8 @@ public class CodeShrinker extends AbstractVisitor {
@Override
public String toString() {
return "ArgsInfo: |" + inlineBorder
+ " ->" + (inlinedInsn == null ? "-" : inlinedInsn.pos)
+ " " + args + " : " + insn;
+ " ->" + (inlinedInsn == null ? '-' : inlinedInsn.pos)
+ ' ' + args + " : " + insn;
}
}
......
......@@ -241,9 +241,9 @@ public class DotGraphVisitor extends AbstractVisitor {
if (c instanceof BlockNode) {
name = "Node_" + ((BlockNode) c).getId();
} else if (c instanceof IBlock) {
name = "Node_" + c.getClass().getSimpleName() + "_" + c.hashCode();
name = "Node_" + c.getClass().getSimpleName() + '_' + c.hashCode();
} else {
name = "cluster_" + c.getClass().getSimpleName() + "_" + c.hashCode();
name = "cluster_" + c.getClass().getSimpleName() + '_' + c.hashCode();
}
return name;
}
......
......@@ -473,7 +473,7 @@ public class ModVisitor extends AbstractVisitor {
for (RegisterArg arg : mth.getArguments(false)) {
String name = arg.getName();
if (name != null && NameMapper.isReserved(name)) {
name = name + "_";
name = name + '_';
arg.getSVar().setName(name);
}
}
......
......@@ -79,7 +79,7 @@ public class RenameVisitor extends AbstractVisitor {
}
if (alias.getPackage().isEmpty()) {
String fullName = alias.makeFullClsName(alias.getShortName(), true);
String newFullName = Consts.DEFAULT_PACKAGE_NAME + "." + fullName;
String newFullName = Consts.DEFAULT_PACKAGE_NAME + '.' + fullName;
classInfo.rename(cls.root(), newFullName);
}
}
......
......@@ -38,6 +38,6 @@ public final class BlocksPair {
@Override
public String toString() {
return "(" + first + ", " + second + ")";
return "(" + first + ", " + second + ')';
}
}
......@@ -116,7 +116,7 @@ public final class BlocksRemoveInfo {
+ ", processed: " + processed
+ ", outs: " + outs
+ ", regMap: " + regMap
+ ", split: " + startSplitIndex + "-" + endSplitIndex
+ "}";
+ ", split: " + startSplitIndex + '-' + endSplitIndex
+ '}';
}
}
......@@ -58,7 +58,7 @@ public class ProcessVariables extends AbstractVisitor {
@Override
public String toString() {
return "r" + regNum + ":" + type;
return "r" + regNum + ':' + type;
}
}
......
......@@ -76,7 +76,7 @@ public class RegionMaker {
int startBlockId = startBlock.getId();
if (processedBlocks.get(startBlockId)) {
mth.addWarn("Removed duplicated region for block: " + startBlock + " " + startBlock.getAttributesString());
mth.addWarn("Removed duplicated region for block: " + startBlock + ' ' + startBlock.getAttributesString());
return r;
}
processedBlocks.set(startBlockId);
......
......@@ -57,7 +57,7 @@ public class InsnUtils {
return "";
}
if (index instanceof String) {
return "\"" + index + "\"";
return "\"" + index + '"';
}
return index.toString();
}
......
......@@ -133,7 +133,7 @@ public class AndroidResourcesUtils {
@NotNull
private static ClassNode addClassForResType(ClassNode resCls, boolean rClsExists, String typeName) {
ClassNode newTypeCls = new ClassNode(resCls.dex(), resCls.getFullName() + "$" + typeName,
ClassNode newTypeCls = new ClassNode(resCls.dex(), resCls.getFullName() + '$' + typeName,
AccessFlags.ACC_PUBLIC | AccessFlags.ACC_STATIC | AccessFlags.ACC_FINAL);
resCls.addInnerClass(newTypeCls);
if (rClsExists) {
......
......@@ -27,6 +27,6 @@ public class DexFile {
@Override
public String toString() {
return inputFile + (name.isEmpty() ? "" : ":" + name);
return inputFile + (name.isEmpty() ? "" : ':' + name);
}
}
......@@ -67,7 +67,7 @@ public class FileUtils {
public static File createTempFile(String suffix) {
File temp;
try {
temp = File.createTempFile("jadx-tmp-", System.nanoTime() + "-" + suffix);
temp = File.createTempFile("jadx-tmp-", System.nanoTime() + '-' + suffix);
temp.deleteOnExit();
} catch (IOException e) {
throw new JadxRuntimeException("Failed to create temp file with suffix: " + suffix);
......@@ -77,7 +77,7 @@ public class FileUtils {
public static File createTempDir(String suffix) {
try {
Path path = Files.createTempDirectory("jadx-tmp-" + System.nanoTime() + "-" + suffix);
Path path = Files.createTempDirectory("jadx-tmp-" + System.nanoTime() + '-' + suffix);
path.toFile().deleteOnExit();
return path.toFile();
} catch (IOException e) {
......
......@@ -209,7 +209,7 @@ public class BinaryXMLParser extends CommonBinaryParser {
String str = getString(strIndex);
if (!isLastEnd) {
isLastEnd = true;
writer.add(">");
writer.add('>');
}
writer.attachSourceLine(lineNumber);
String escapedStr = StringUtils.escapeXML(str);
......@@ -235,13 +235,13 @@ public class BinaryXMLParser extends CommonBinaryParser {
int startNS = is.readInt32();
int startNSName = is.readInt32(); // actually is elementName...
if (!isLastEnd && !"ERROR".equals(currentTag)) {
writer.add(">");
writer.add('>');
}
isOneLine = true;
isLastEnd = false;
currentTag = deobfClassName(getString(startNSName));
currentTag = getValidTagAttributeName(currentTag);
writer.startLine("<").add(currentTag);
writer.startLine('<').add(currentTag);
writer.attachSourceLine(elementBegLineNumber);
int attributeStart = is.readInt16();
if (attributeStart != 0x14) {
......@@ -263,7 +263,7 @@ public class BinaryXMLParser extends CommonBinaryParser {
writer.add(':');
writer.add(nsValue);
}
writer.add("=\"").add(StringUtils.escapeXML(entry.getKey())).add("\"");
writer.add("=\"").add(StringUtils.escapeXML(entry.getKey())).add('"');
}
}
boolean attrNewLine = attributeCount != 1 && ATTR_NEW_LINE;
......@@ -373,13 +373,13 @@ public class BinaryXMLParser extends CommonBinaryParser {
// reference custom processing
String name = styleMap.get(attrValData);
if (name != null) {
writer.add("@style/").add(name.replaceAll("_", "."));
writer.add("@style/").add(name.replace('_', '.'));
} else {
String resName = resNames.get(attrValData);
if (resName != null) {
writer.add("@");
writer.add('@');
if (resName.startsWith("id/")) {
writer.add("+");
writer.add('+');
}
writer.add(resName);
} else {
......@@ -424,7 +424,7 @@ public class BinaryXMLParser extends CommonBinaryParser {
// if (elementNS != -1) {
// writer.add(getString(elementNS)).add(':');
// }
writer.add(elemName).add(">");
writer.add(elemName).add('>');
}
isLastEnd = true;
if (writer.getIndent() != 0) {
......@@ -470,7 +470,7 @@ public class BinaryXMLParser extends CommonBinaryParser {
private boolean isDeobfCandidateAttr(String shortNsName, String attrName) {
String fullName;
if (shortNsName != null) {
fullName = shortNsName + ":" + attrName;
fullName = shortNsName + ':' + attrName;
} else {
return false;
}
......
......@@ -43,7 +43,7 @@ public class ManifestAttributes {
@Override
public String toString() {
return "[" + type + ", " + values + "]";
return "[" + type + ", " + values + ']';
}
}
......@@ -173,7 +173,7 @@ public class ManifestAttributes {
StringBuilder sb = new StringBuilder();
for (Map.Entry<Long, String> entry : attr.getValues().entrySet()) {
if (value == entry.getKey()) {
sb = new StringBuilder(entry.getValue() + "|");
sb = new StringBuilder(entry.getValue() + '|');
break;
} else if ((value & entry.getKey()) == entry.getKey()) {
sb.append(entry.getValue()).append('|');
......
......@@ -49,7 +49,7 @@ public class ResContainer implements Comparable<ResContainer> {
}
public String getFileName() {
return name.replace("/", File.separator);
return name.replace('/', File.separatorChar);
}
public List<ResContainer> getSubFiles() {
......@@ -96,6 +96,6 @@ public class ResContainer implements Comparable<ResContainer> {
@Override
public String toString() {
return "Res{" + name + ", type=" + dataType + ", subFiles=" + subFiles + "}";
return "Res{" + name + ", type=" + dataType + ", subFiles=" + subFiles + '}';
}
}
......@@ -81,7 +81,7 @@ public class ResTableParser extends CommonBinaryParser {
Set<String> addedValues = new HashSet<>();
for (ResourceEntry ri : resStorage.getResources()) {
if (addedValues.add(ri.getTypeName() + "." + ri.getKeyName())) {
if (addedValues.add(ri.getTypeName() + '.' + ri.getKeyName())) {
String format = String.format("<public type=\"%s\" name=\"%s\" id=\"%s\" />",
ri.getTypeName(), ri.getKeyName(), ri.getId());
writer.startLine(format);
......
......@@ -180,9 +180,9 @@ public class ResXmlGen {
cw.add('<').add(itemTag);
if (attrName != null && attrValue != null) {
if (typeName.equals("attr")) {
cw.add(' ').add("name=\"").add(attrName.replace("id.", "")).add("\" value=\"").add(attrValue).add("\"");
cw.add(' ').add("name=\"").add(attrName.replace("id.", "")).add("\" value=\"").add(attrValue).add('"');
} else if (typeName.equals("style")) {
cw.add(' ').add("name=\"").add(attrName.replace("attr.", "")).add("\"");
cw.add(' ').add("name=\"").add(attrName.replace("attr.", "")).add('"');
} else {
cw.add(' ').add(attrName).add("=\"").add(attrValue).add('"');
}
......
......@@ -47,7 +47,7 @@ public class ResourceStorage {
public Map<Integer, String> getResourcesNames() {
Map<Integer, String> map = new HashMap<>();
for (ResourceEntry entry : list) {
map.put(entry.getId(), entry.getTypeName() + "/" + entry.getKeyName());
map.put(entry.getId(), entry.getTypeName() + '/' + entry.getKeyName());
}
return map;
}
......
......@@ -450,7 +450,7 @@ public class EntryConfig {
// denies values-xxx, anything else
if (localeVariant == null && localeScript == null && (region[0] != '\00' || language[0] != '\00') &&
region.length != 3) {
sb.append("-").append(language);
sb.append('-').append(language);
if (region[0] != '\00') {
sb.append("-r").append(region);
}
......@@ -463,13 +463,13 @@ public class EntryConfig {
sb.append(language);
}
if (localeScript != null && localeScript.length == 4) {
sb.append("+").append(localeScript);
sb.append('+').append(localeScript);
}
if ((region.length == 2 || region.length == 3) && region[0] != '\00') {
sb.append("+").append(region);
sb.append('+').append(region);
}
if (localeVariant != null && localeVariant.length >= 5) {
sb.append("+").append(toUpper(localeVariant));
sb.append('+').append(toUpper(localeVariant));
}
}
return sb.toString();
......
......@@ -75,6 +75,6 @@ public final class ResourceEntry {
@Override
public String toString() {
return " 0x" + Integer.toHexString(id) + " (" + id + ")" + config + " = " + typeName + "." + keyName;
return " 0x" + Integer.toHexString(id) + " (" + id + ')' + config + " = " + typeName + '.' + keyName;
}
}
......@@ -60,7 +60,7 @@ public class ValuesParser extends ParserConstants {
if (nameStr == null) {
strList.add(valueStr);
} else {
strList.add(nameStr + "=" + valueStr);
strList.add(nameStr + '=' + valueStr);
}
}
return strList.toString();
......@@ -110,7 +110,7 @@ public class ValuesParser extends ParserConstants {
}
return "?unknown_ref: " + Integer.toHexString(data);
}
return "@" + ri;
return '@' + ri;
}
case TYPE_ATTRIBUTE: {
......@@ -122,7 +122,7 @@ public class ValuesParser extends ParserConstants {
}
return "?unknown_attr_ref: " + Integer.toHexString(data);
}
return "?" + ri;
return '?' + ri;
}
case TYPE_DIMENSION:
......@@ -132,7 +132,7 @@ public class ValuesParser extends ParserConstants {
default:
LOG.warn("Unknown data type: 0x{} {}", Integer.toHexString(dataType), data);
return " ?0x" + Integer.toHexString(dataType) + " " + data;
return " ?0x" + Integer.toHexString(dataType) + ' ' + data;
}
}
......
......@@ -211,7 +211,7 @@ public class JadxSettingsWindow extends JDialog {
private String getFontLabelStr() {
Font font = settings.getFont();
String fontStyleName = Utils.getFontStyleName(font.getStyle());
return NLS.str("preferences.font") + ": " + font.getFontName() + " " + fontStyleName + " " + font.getSize();
return NLS.str("preferences.font") + ": " + font.getFontName() + ' ' + fontStyleName + ' ' + font.getSize();
}
private SettingsGroup makeDecompilationGroup() {
......
......@@ -94,7 +94,7 @@ public class JMethod extends JNode {
@Override
public String makeLongString() {
String name = mth.getDeclaringClass().getFullName() + "." + makeBaseString();
String name = mth.getDeclaringClass().getFullName() + '.' + makeBaseString();
return Utils.typeFormat(name, getReturnType());
}
......
......@@ -66,7 +66,7 @@ public class JSources extends JNode {
pkg.getInnerPackages().clear();
pkg.getInnerPackages().addAll(innerPkg.getInnerPackages());
pkg.getClasses().addAll(innerPkg.getClasses());
pkg.setName(pkg.getName() + "." + innerPkg.getName());
pkg.setName(pkg.getName() + '.' + innerPkg.getName());
innerPkg.getInnerPackages().clear();
innerPkg.getClasses().clear();
......
......@@ -44,7 +44,7 @@ class SearchBar extends JToolBar {
public SearchBar(RSyntaxTextArea textArea) {
rTextArea = textArea;
JLabel findLabel = new JLabel(NLS.str("search.find") + ":");
JLabel findLabel = new JLabel(NLS.str("search.find") + ':');
add(findLabel);
searchField = new JTextField(30);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment