List of usage examples for org.aspectj.lang ProceedingJoinPoint getArgs
Object[] getArgs();
From source file:com.rover12421.shaka.apktool.lib.ResConfigAj.java
License:Apache License
@Around("execution(void brut.androlib.res.data.ResConfig.addResource(..))" + "&& args(res, overwrite)") public void addResource(ProceedingJoinPoint joinPoint, ResResource res, boolean overwrite) throws Throwable { ResResSpec spec = res.getResSpec();//from w w w. ja v a 2 s.c o m ResResSpec resSpec = ResTypeAj.MultipleSpecs.get(spec.getId().id); if (resSpec != null) { //??ResResSpec ResValue resValue = res.getValue(); String rename; if (resValue instanceof ResFileValue) { ResFileValue fileValue = (ResFileValue) resValue; rename = fileValue.getPath().replaceAll("/|\\\\|\\.", "_"); MultopleResFileValue.put(spec.getId().id, res); } else { rename = MultipleSpec_Perfix + spec.getId(); } if (rename != null) { // LogHelper.warning("Rename ResResSpec " + spec.getName() + " to " + rename); ResResSpecAj.setName(spec, rename); ResTypeAj.addSpecToResType(spec); } } try { joinPoint.proceed(joinPoint.getArgs()); } catch (AndrolibException e) { LogHelper.warning(e.getMessage()); } }
From source file:com.rover12421.shaka.apktool.lib.ResFileValueAj.java
License:Apache License
@Around("execution(* brut.androlib.res.data.value.ResFileValue.getStrippedPath())") public String getStrippedPath(ProceedingJoinPoint joinPoint) { try {// w ww .j a v a 2s. c o m return (String) joinPoint.proceed(joinPoint.getArgs()); } catch (Throwable throwable) { //?res, //"/"?,???,? return "/" + ((ResFileValue) joinPoint.getThis()).getPath(); } }
From source file:com.rover12421.shaka.apktool.lib.ResPackageAj.java
License:Apache License
@Around("execution(* brut.androlib.res.data.ResPackage.getResSpec(..))" + "&& args(resID)") public ResResSpec getResSpec(ProceedingJoinPoint joinPoint, ResID resID) throws Throwable { try {/*from ww w . j a va 2 s . c o m*/ return (ResResSpec) joinPoint.proceed(joinPoint.getArgs()); } catch (UndefinedResObject e) { if (ShakaDecodeOption.getInstance().isFuckUnkownId()) { ResPackage thiz = (ResPackage) joinPoint.getThis(); return new ResResSpec(resID, String.format("[%08x]", resID.id), thiz, new ResTypeSpec("FuckUnkownId", thiz.getResTable(), thiz, (byte) (resID.id & 0xFF), 0)); } else { throw e; } } }
From source file:com.rover12421.shaka.apktool.lib.ResPackageAj.java
License:Apache License
@Around("execution(* brut.androlib.res.data.ResPackage.addResSpec(..))") public void addResSpec(ProceedingJoinPoint joinPoint) { try {/*from ww w . ja v a2 s .c o m*/ joinPoint.proceed(joinPoint.getArgs()); } catch (Throwable throwable) { LogHelper.warning(throwable.getMessage()); } }
From source file:com.rover12421.shaka.apktool.lib.ResResourceAj.java
License:Apache License
@Around("execution(* brut.androlib.res.data.ResResource.replace(..))" + "&& args(value)") public void replace(ProceedingJoinPoint joinPoint, ResValue value) throws Throwable { if (!ShakaDecodeOption.getInstance().isIgnoreResDecodeError()) { joinPoint.proceed(joinPoint.getArgs()); }/*from www . ja v a 2s .c o m*/ }
From source file:com.rover12421.shaka.apktool.lib.ResResSpecAj.java
License:Apache License
@Around("execution(void brut.androlib.res.data.ResResSpec.addResource(..))" + "&& args(res, overwrite)") public void addResource(ProceedingJoinPoint joinPoint, ResResource res, boolean overwrite) throws Throwable { try {/*from w w w.ja v a2 s .c o m*/ joinPoint.proceed(joinPoint.getArgs()); } catch (AndrolibException e) { LogHelper.warning(e.getMessage()); } }
From source file:com.rover12421.shaka.apktool.lib.ResTypeAj.java
License:Apache License
@Around("execution(void brut.androlib.res.data.ResType.addResource(..))" + "&& args(res, overwrite)") public void addResource(ProceedingJoinPoint joinPoint, ResResource res, boolean overwrite) throws Throwable { ResResSpec spec = res.getResSpec();/* w w w . j a v a2s . com*/ ResResSpec resSpec = ResTypeSpecAj.MultipleSpecs.get(spec.getId().id); if (resSpec != null) { //??ResResSpec ResValue resValue = res.getValue(); String rename; if (resValue instanceof ResFileValue) { ResFileValue fileValue = (ResFileValue) resValue; rename = fileValue.getPath().replaceAll("/|\\\\|\\.", "_"); MultopleResFileValue.put(spec.getId().id, res); } else { rename = MultipleSpec_Perfix + spec.getId(); } if (rename != null) { // LogHelper.warning("Rename ResResSpec " + spec.getName() + " to " + rename); ResResSpecAj.setName(spec, rename); ResTypeSpecAj.addSpecToResType(spec); } } try { joinPoint.proceed(joinPoint.getArgs()); } catch (AndrolibException e) { LogHelper.warning(e.getMessage()); } }
From source file:com.rover12421.shaka.apktool.lib.ResTypeSpecAj.java
License:Apache License
@Around("execution(* brut.androlib.res.data.ResTypeSpec.addResSpec(..))" + "&& args(spec)") public void addResSpec(ProceedingJoinPoint joinPoint, ResResSpec spec) throws Throwable { ResTypeSpec thiz = (ResTypeSpec) joinPoint.getThis(); addAllResResSpec(spec);/*from w w w.j a v a2 s .c om*/ ResResSpec exitsSpec = null; try { exitsSpec = thiz.getResSpec(spec.getName()); } catch (Exception e) { } if (exitsSpec == null) { joinPoint.proceed(joinPoint.getArgs()); } else { LogHelper.warning(String.format("Multiple res specs: %s/%s", thiz.getName(), spec.getName())); if (exitsSpec.getId() != spec.getId()) { addMultipleResResSpec(spec); addMultipleResResSpec(exitsSpec); } } }
From source file:com.rover12421.shaka.apktool.lib.StringBlockAj.java
License:Apache License
@Around("execution(* brut.androlib.res.decoder.StringBlock.getStyle(..))" + "&& args(index)") public int[] getStyle(ProceedingJoinPoint joinPoint, int index) throws Throwable { StringBlock thiz = (StringBlock) joinPoint.getThis(); int[] m_styleOffsets = thiz.getStyleOffsets(); int[] m_styles = thiz.getStyles(); if (m_styleOffsets == null || m_styles == null || index >= m_styleOffsets.length) { return null; }/*from w ww. j a v a 2 s . c om*/ int offset = m_styleOffsets[index] / 4; if (offset < 0 || offset > m_styles.length) { return null; } return (int[]) joinPoint.proceed(joinPoint.getArgs()); }
From source file:com.rover12421.shaka.lib.multiLanguage.MultiLanguageAj.java
License:Apache License
@Around("call(* java.lang.String.format(..))" + "&& args(format, args)" + "&& !within(com.rover12421.shaka.lib.multiLanguage.* +)" + "&& !within(org.jf.dexlib2.util.* +)") public String around_String_format(ProceedingJoinPoint joinPoint, String format, Object... args) throws Throwable { return MultiLanguageSupport.covertLocaleInfo((String) joinPoint.proceed(joinPoint.getArgs())); }