package blade.migrate.core; import blade.migrate.api.FileMigrator; import blade.migrate.api.Problem; import java.io.File; import java.util.ArrayList; import java.util.Dictionary; import java.util.List; import org.osgi.service.component.ComponentContext; import org.osgi.service.component.annotations.Activate; public abstract class JSPTagsFileMigrator implements FileMigrator { @Activate public void activate(ComponentContext ctx) { final Dictionary<String, Object> properties = ctx.getProperties(); _problemTitle = (String)properties.get("problem.title"); _problemSummary = (String)properties.get("problem.summary"); _problemType = (String)properties.get("file.extensions"); _problemTickets = (String)properties.get("problem.tickets"); _sectionKey = (String)properties.get("problem.section"); } @Override public List<Problem> analyze(File file) { final List<Problem> problems = new ArrayList<>(); final List<SearchResult> searchResults = searchJSPFile(file, new JSPFileChecker(file)); if (searchResults != null) { String sectionHtml = MarkdownParser.getSection("BREAKING_CHANGES.markdown", _sectionKey); for (SearchResult searchResult : searchResults) { Problem problem = new Problem(_problemTitle, _problemSummary, _problemType, _problemTickets, file, searchResult.startLine, searchResult.startOffset, searchResult.endOffset, sectionHtml, searchResult.autoCorrectContext); problems.add(problem); } } return problems; } protected abstract List<SearchResult> searchJSPFile(File file , JSPFileChecker jspFileChecker); private String _problemSummary; private String _problemTickets; private String _problemTitle; private String _problemType; private String _sectionKey; }