Java源码示例:spoon.reflect.code.CtDo
示例1
public CtElement retrieveElementToStudy(CtElement element) {
if (element instanceof CtIf) {
return (((CtIf) element).getCondition());
} else if (element instanceof CtWhile) {
return (((CtWhile) element).getLoopingExpression());
} else if (element instanceof CtFor) {
return (((CtFor) element).getExpression());
} else if (element instanceof CtDo) {
return (((CtDo) element).getLoopingExpression());
} else if (element instanceof CtForEach) {
return (((CtForEach) element).getExpression());
} else if (element instanceof CtSwitch) {
return (((CtSwitch) element).getSelector());
} else
return (element);
}
示例2
private CtElement retrieveElementToStudy(CtElement element) {
if (element instanceof CtIf) {
return (((CtIf) element).getCondition());
} else if (element instanceof CtWhile) {
return (((CtWhile) element).getLoopingExpression());
} else if (element instanceof CtFor) {
return (((CtFor) element).getExpression());
} else if (element instanceof CtDo) {
return (((CtDo) element).getLoopingExpression());
} else if (element instanceof CtForEach) {
return (((CtForEach) element).getExpression());
} else if (element instanceof CtSwitch) {
return (((CtSwitch) element).getSelector());
} else
return (element);
}
示例3
@Override
public void process(CtStatement element) {
if (element instanceof CtIf) {
add(((CtIf) element).getCondition());
} else if (element instanceof CtFor) {
add(((CtFor) element).getExpression());
} else if (element instanceof CtWhile) {
add(((CtWhile) element).getLoopingExpression());
} else if (element instanceof CtDo) {
add(((CtDo) element).getLoopingExpression());
} else if (element instanceof CtThrow) {
add(((CtThrow) element).getThrownExpression());
} else if (element instanceof CtInvocation && (element.getParent() instanceof CtBlock)) {
add(element);
} else if (element instanceof CtAssignment || element instanceof CtConstructorCall
|| element instanceof CtCFlowBreak || element instanceof CtLocalVariable) {
add(element);
}
}
示例4
@Override
public void process(CtLoop element) {
if(element instanceof CtFor){
addExpressionAndSubexpressions(((CtFor)element).getExpression());
}
if(element instanceof CtWhile){
addExpressionAndSubexpressions(((CtWhile)element).getLoopingExpression());
}
if(element instanceof CtDo){
addExpressionAndSubexpressions(((CtDo)element).getLoopingExpression());
}
}
示例5
@Override
public void visitCtDo(CtDo doLoop) {
toScan = doLoop.getLoopingExpression();
}
示例6
private void analyzeBinaryOperatorCompareInCondition (CtElement wholeoriginal, CtBinaryOperator operatorunderstudy, int operatorindex, Cntx<Object> context) {
boolean whethercompareincondition = false;
if(wholeoriginal instanceof CtIf || wholeoriginal instanceof CtWhile || wholeoriginal instanceof CtFor
|| wholeoriginal instanceof CtDo || wholeoriginal instanceof CtForEach || wholeoriginal instanceof CtSwitch) {
BinaryOperatorKind operatorkind = operatorunderstudy.getKind();
if (compareOperator.contains(operatorkind))
whethercompareincondition = true;
}
writeGroupedInfo(context, Integer.toString(operatorindex)+"_"+operatorunderstudy, CodeFeatures.O4_COMPARE_IN_CONDITION,
whethercompareincondition, "FEATURES_BINARYOPERATOR");
}