package org.jboss.windup.rules.apps.java.scan.ast.ignore; import org.jboss.windup.rules.apps.java.scan.ast.trie.TriePrefixStructure; import org.jboss.windup.rules.apps.java.scan.ast.trie.TrieStructureTypeRelation; /** * An instance of a trie structure {@link TriePrefixStructure} that saves <javaclass-ignore>s * * @author <a href="mailto:mbriskar@gmail.com">Matej Briskar</a> */ public class JavaClassIgnoreResolver extends TriePrefixStructure<String,String> { private static JavaClassIgnoreResolver defaultInstance; /** * Gets the default instance of the {@link JavaClassIgnoreResolver}. This is not thread safe. */ public static JavaClassIgnoreResolver singletonInstance() { if (defaultInstance == null) { TrieStructureTypeRelation<String,String> relation = new TrieStructureTypeRelation<String,String>() { @Override public String getStringToSearchFromSearchType(String search) { return search; } @Override public String getStringPrefixToSaveSaveType(String save) { /** * At least for now javaclass-ignore does not contain anything except the prefix */ return save; } @Override public boolean checkIfMatchFound(String saved, String searched) { return searched.startsWith(saved); } }; defaultInstance = new JavaClassIgnoreResolver(relation); } return defaultInstance; } public JavaClassIgnoreResolver(TrieStructureTypeRelation relation) { super(relation); } }