@Override public List<Element> getElement(final LoadRunnerVUVisitor visitor, final MethodCall method, final MethodcallContext ctx) { final ImmutableMappingMethod methodMapping = visitor.getCustomActionMappingMethod(method.getName()); if (methodMapping == null) { visitor.readSupportedFunctionWithWarn(method.getName(), ctx, "Cannot find mapping for method " + method.getName()); return Collections.emptyList(); } final Set<Integer> readIndex = new HashSet<>(); final Builder builder = ImmutableCustomAction.builder(); builder.type(methodMapping.getType()); builder.isHit(methodMapping.isHit()); builder.name(MappingValueUtil.parseMappingValue(visitor, method.getParameters(), methodMapping.getName(), method.getName(), counter, readIndex)); methodMapping.getParameters().forEach(p -> { final ImmutableCustomActionParameter.Builder paramBuilder = ImmutableCustomActionParameter.builder(); paramBuilder.name(p.getName()); paramBuilder.value(MappingValueUtil.parseMappingValue(visitor, method.getParameters(), p.getValue(), method.getName(), counter, readIndex)); paramBuilder.type(p.getType()); builder.addParameters(paramBuilder.build()); }); final CustomAction customAction = builder.build(); readIndex.addAll(methodMapping.getIgnoreArgs()); final Set<String> unreadParameters = getUnreadParameters(method.getParameters(), readIndex); if(unreadParameters.isEmpty()){ visitor.readSupportedFunction(method.getName(), ctx); } else { visitor.readSupportedFunctionWithWarn(method.getName(), ctx, "Unread parameter: " + unreadParameters.toString()); } return ImmutableList.of(customAction); }