001
014
015 package com.liferay.portal.tools;
016
017 import com.liferay.portal.kernel.util.StringUtil;
018 import com.liferay.portal.kernel.util.Validator;
019
020 import java.io.IOException;
021
022 import java.util.regex.Matcher;
023 import java.util.regex.Pattern;
024
025
031 public class JavaImportsFormatter extends BaseImportsFormatter {
032
033 public static String getImports(String content) {
034 Matcher matcher = _importsPattern.matcher(content);
035
036 if (matcher.find()) {
037 return matcher.group();
038 }
039
040 return null;
041 }
042
043 @Override
044 protected ImportPackage createImportPackage(String line) {
045 return createJavaImportPackage(line);
046 }
047
048 @Override
049 protected String doFormat(
050 String content, Pattern importPattern, String packagePath,
051 String className)
052 throws IOException {
053
054 String imports = getImports(content);
055
056 if (Validator.isNull(imports)) {
057 return content;
058 }
059
060 String newImports = stripUnusedImports(
061 imports, content, packagePath, className, "\\*");
062
063 newImports = sortAndGroupImports(newImports);
064
065 if (!imports.equals(newImports)) {
066 content = StringUtil.replaceFirst(content, imports, newImports);
067 }
068
069 content = content.replaceFirst(
070 "(?m)^[ \t]*(package .*;)\\s*^[ \t]*import", "$1\n\nimport");
071
072 content = content.replaceFirst(
073 "(?m)^[ \t]*((?:package|import) .*;)\\s*^[ \t]*/\\*\\*",
074 "$1\n\n