class IteratorAspect {
    @Pointcut("@annotation(org.cloud.sonic.agent.aspect.IteratorCheck)")
    public void serviceAspect() {
    }

    @Around(value = "serviceAspect()")
    public Object around(ProceedingJoinPoint proceedingJoinPoint) throws Throwable {
        Object[] objects = processInputArg(proceedingJoinPoint.getArgs());
        return proceedingJoinPoint.proceed(objects);
    }

    private Object[] processInputArg(Object[] args) {<FILL_FUNCTION_BODY>}
}

        HandleContext handleContext = null;
        for (Object arg : args) {
            if (arg instanceof HandleContext) {
                handleContext = (HandleContext) arg;
                break;
            }
        }
        JSONObject paramStep = null;
        for (Object arg : args) {
            if (arg instanceof JSONObject) {
                paramStep = (JSONObject) arg;
                break;
            }
        }

        try {
            if (paramStep != null && handleContext != null && handleContext.currentIteratorElement != null) {

                String uniquelyIdentifies = handleContext.currentIteratorElement.getUniquelyIdentifies();

                JSONObject step = paramStep.getJSONObject("step");
                JSONArray eleList = step.getJSONArray("elements");

                for (int i = 0; i < eleList.size(); i++) {
                    JSONObject ele = eleList.getJSONObject(i);
                    if ("pocoIterator".equals(ele.get("eleType").toString())
                            || "androidIterator".equals(ele.get("eleType").toString())
                            || "iOSIterator".equals(ele.get("eleType").toString())) {
                        ele.put("eleValue", uniquelyIdentifies);
                    }
                    eleList.set(i, new JSONObject(ele));
                }
            }
        } catch (Throwable e) {
            log.info(e.getMessage());
        }
        return args;
    
<no_super_class>