blob: aabe532fd55b2c649c6d5db660e8e5e99a6222a0 [file] [log] [blame]
package com.intellij.codeInsight.completion;
import com.intellij.codeInsight.lookup.LookupElement;
import org.jetbrains.annotations.NotNull;
/**
* @author peter
*/
public abstract class PrefixMatcher {
public static final PrefixMatcher ALWAYS_TRUE = new PlainPrefixMatcher("");
protected final String myPrefix;
protected PrefixMatcher(String prefix) {
myPrefix = prefix;
}
public boolean prefixMatches(@NotNull LookupElement element) {
for (String s : element.getAllLookupStrings()) {
if (prefixMatches(s)) {
return true;
}
}
return false;
}
public boolean isStartMatch(LookupElement element) {
for (String s : element.getAllLookupStrings()) {
if (isStartMatch(s)) {
return true;
}
}
return false;
}
public boolean isStartMatch(String name) {
return prefixMatches(name);
}
public abstract boolean prefixMatches(@NotNull String name);
@NotNull
public final String getPrefix() {
return myPrefix;
}
@NotNull public abstract PrefixMatcher cloneWithPrefix(@NotNull String prefix);
public int matchingDegree(String string) {
return 0;
}
}