package com.wj.dexknife.shell.apkparser.struct; import com.wj.dexknife.shell.apkparser.struct.resource.ResourceTable; import com.wj.dexknife.shell.apkparser.utils.ParseUtils; import java.util.Locale; /** * one entity, may be one entry in resource table, or string value * one apk only has one resource table * * @author dongliu */ public class ResourceEntity { /** * the resource id */ private long resourceId; /** * the resource's value */ private String value; public ResourceEntity(int i) { this.value = String.valueOf(i); } public ResourceEntity(String s) { this.value = s; } public ResourceEntity(boolean b) { this.value = String.valueOf(b); } public ResourceEntity(long resourceId) { this.resourceId = resourceId; } public long getResourceId() { return resourceId; } public void setResourceId(long resourceId) { this.resourceId = resourceId; } public String getValue() { return value; } public void setValue(String value) { this.value = value; } /** * get value as string */ public String toStringValue(ResourceTable resourceTable, Locale locale) { if (this.value != null) { return this.value; } String value = ParseUtils.getResourceById(this.resourceId, resourceTable, locale); this.value = value; return value; } @Override public String toString() { return "ResourceEntity{" + "resourceId=" + resourceId + ", value='" + value + '\'' + '}'; } }