package fr.inria.diversify.codeFragmentProcessor;
import spoon.processing.AbstractProcessor;
import spoon.reflect.code.CtLiteral;
import spoon.reflect.code.CtLocalVariable;
import java.util.ArrayList;
import java.util.List;
/**
* User: Simon
* Date: 18/02/14
* Time: 15:10
*/
public class InlineConstantProcessor extends AbstractProcessor<CtLocalVariable> {
protected List<CtLocalVariable> inlineConstant;
public InlineConstantProcessor() {
inlineConstant = new ArrayList<CtLocalVariable>();
}
@Override
public void process(CtLocalVariable element) {
inlineConstant.add(element);
}
public boolean isToBeProcessed(CtLocalVariable candidate) {
try {
CtLiteral literal = (CtLiteral)candidate.getDefaultExpression();
String type = literal.getType().getSimpleName();
return type.equals("boolean") || type.equals("short") ||
type.equals("int") || type.equals("long") ||
type.equals("byte") || type.equals("float") ||
type.equals("double");
} catch (Exception e) {
return false;
}
}
public List<CtLocalVariable> getInlineConstant() {
return inlineConstant;
}
}