blob: 5468d1fbd0b3cdcb6be534cf8d19bca0b4324f0d [file] [log] [blame]
package com.intellij.dupLocator;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.util.InvalidDataException;
import com.intellij.openapi.util.WriteExternalException;
import com.intellij.util.xmlb.XmlSerializer;
import org.jdom.Element;
import org.jetbrains.annotations.NotNull;
/**
* @author Eugene.Kudelevsky
*/
public class DefaultDuplocatorState implements ExternalizableDuplocatorState {
private static final Logger LOG = Logger.getInstance("#com.intellij.dupLocator.DefaultDuplocatorState");
public boolean DISTINGUISH_VARIABLES = false;
public boolean DISTINGUISH_FUNCTIONS = true;
public boolean DISTINGUISH_LITERALS = true;
public int LOWER_BOUND = 10;
public int DISCARD_COST = 0;
@Override
public void readExternal(Element element) throws InvalidDataException {
XmlSerializer.deserializeInto(this, element);
}
@Override
public void writeExternal(Element element) throws WriteExternalException {
XmlSerializer.serializeInto(this, element);
}
@Override
public boolean distinguishRole(@NotNull PsiElementRole role) {
switch (role) {
case VARIABLE_NAME:
return DISTINGUISH_VARIABLES;
case FIELD_NAME:
return DISTINGUISH_VARIABLES;
case FUNCTION_NAME:
return DISTINGUISH_FUNCTIONS;
default:
LOG.error("Unknown role " + role);
return true;
}
}
@Override
public boolean distinguishLiterals() {
return DISTINGUISH_LITERALS;
}
@Override
public int getLowerBound() {
return LOWER_BOUND;
}
@Override
public int getDiscardCost() {
return DISCARD_COST;
}
}