componentClass = forName(componentClassName, ctx.annotationType);
componentClass = forName(componentClassName, m_annotatedClassClassLoader);
    protected Object handleClassIdentifier(final String identifier, final ParseContext ctx) {        AnnotationValidator.validateClass(ctx);        int index = identifier.lastIndexOf('.');        String componentClassName = identifier.substring(0, index);        int dimension = 0;        while (componentClassName.endsWith("[]")) {            dimension++;            componentClassName = componentClassName.substring(0, componentClassName.length() - 2);        }        Class componentClass;        boolean isComponentPrimitive = true;        if (componentClassName.equals("long")) {            componentClass = long.class;        } else if (componentClassName.equals("int")) {            componentClass = int.class;        } else if (componentClassName.equals("short")) {            componentClass = short.class;        } else if (componentClassName.equals("double")) {            componentClass = double.class;        } else if (componentClassName.equals("float")) {            componentClass = float.class;        } else if (componentClassName.equals("byte")) {            componentClass = byte.class;        } else if (componentClassName.equals("char")) {            componentClass = char.class;        } else if (componentClassName.equals("boolean")) {            componentClass = boolean.class;        } else if (componentClassName.equals("java.lang.String")) {            componentClass = String.class;        } else {            isComponentPrimitive = false;            try {                componentClass = forName(componentClassName, ctx.annotationType);            } catch (ClassNotFoundException e) {                throw new ParseException(                        "could not load class [" + componentClassName + "] due to: " + e.toString(), e                );            }        }        if (isComponentPrimitive) {            if (dimension <= 0) {                Type componentType = Type.getType(componentClass);                ctx.munger.visit(ctx.elementName, componentType);            } else {                Class arrayClass = Array.newInstance(componentClass, new int[dimension]).getClass();                Type componentType = Type.getType(arrayClass);                ctx.munger.visit(ctx.elementName, componentType);            }        } else {            String componentType = Type.getType(componentClass).getDescriptor();            for (int i = 0; i < dimension; i++) {                componentType = "[" + componentType;            }            Type type = Type.getType(componentType);            ctx.munger.visit(ctx.elementName, type);        }        return null;    }