package fr.inria.diversify.codeFragmentProcessor;
import spoon.processing.AbstractProcessor;
import spoon.reflect.code.CtLiteral;
import spoon.reflect.code.CtReturn;
import java.util.ArrayList;
import java.util.List;
/**
* User: Simon
* Date: 18/02/14
* Time: 11:14
*/
public class ReturnProcessor extends AbstractProcessor<CtReturn> {
protected List<CtReturn> returns;
public ReturnProcessor() {
returns = new ArrayList<CtReturn>();
}
@Override
public void process(CtReturn candidate) {
returns.add(candidate);
}
public boolean isToBeProcessed(CtReturn candidate) {
try {
CtLiteral literal = (CtLiteral)candidate.getReturnedExpression();
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<CtReturn> getReturns() {
return returns;
}
}