PsiType (final String s, final ConvertContext context) { if (s == null) return null; if (s.startsWith("[")) { int arrayDimensions = getArrayDimensions(s); if (arrayDimensions >= s.length()) { return null; } final char c = s.charAt(arrayDimensions); if (c == 'L') { if (!s.endsWith(";")) return null; final PsiClass aClass = DomJavaUtil.findClass(s.substring(arrayDimensions + 1, s.length() - 1), context.getFile(), context.getModule(), null); return aClass == null ? null : makeArray(arrayDimensions, createType(aClass)); } if (s.length() == arrayDimensions + 1) { final List<PsiType> list = ourPrimitiveTypes.getKeysByValue(c); return list == null || list.isEmpty() ? null : makeArray(arrayDimensions, list.get(0)); } return null; } if (Arrays.binarySearch(CanonicalPsiTypeConverterImpl.PRIMITIVES, s) >= 0) { return JavaPsiFacade.getElementFactory(context.getProject()).createPrimitiveType(s); } final PsiClass aClass1 = DomJavaUtil.findClass(s, context.getFile(), context.getModule(), context.getSearchScope()); return aClass1 == null ? null : createType(aClass1); }