public MethodCollector visitMethod(int access, String name, String desc) {
            // already found the method, skip any processing
            if (collector != null)
                return null;

            // not the same name
            if (!name.equals(methodName))
                return null;

            Type[] argumentTypes = Type.getArgumentTypes(desc);
            int longOrDoubleQuantity = 0;

            for (Type t : argumentTypes)
                if (t.getClassName().equals("long")
                        || t.getClassName().equals("double"))
                    longOrDoubleQuantity++;

            int paramCount = argumentTypes.length;

            // not the same quantity of parameters
            if (paramCount != this.parameterTypes.length)
                return null;

            for (int i = 0; i < argumentTypes.length; i++)
                if (!correctTypeName(argumentTypes, i).equals(
                        this.parameterTypes[i].getName()))
                    return null;

            this.collector = new MethodCollector((Modifier.isStatic(access) ? 0 : 1),
                    argumentTypes.length + longOrDoubleQuantity);

            return collector;
        }