package com.freetmp.mbg.merge.statement;
import com.freetmp.mbg.merge.AbstractMerger;
import com.github.javaparser.ast.stmt.ExplicitConstructorInvocationStmt;
/**
* Created by LiuPin on 2015/5/13.
*/
public class ExplicitConstructorInvocationStmtMerger extends AbstractMerger<ExplicitConstructorInvocationStmt> {
@Override public ExplicitConstructorInvocationStmt doMerge(ExplicitConstructorInvocationStmt first, ExplicitConstructorInvocationStmt second) {
ExplicitConstructorInvocationStmt ecis = new ExplicitConstructorInvocationStmt();
ecis.setArgs(mergeCollectionsInOrder(first.getArgs(),second.getArgs()));
ecis.setTypeArgs(mergeCollectionsInOrder(first.getTypeArgs(),second.getTypeArgs()));
ecis.setExpr(mergeSingle(first.getExpr(),second.getExpr()));
ecis.setThis(first.isThis());
return ecis;
}
@Override public boolean doIsEquals(ExplicitConstructorInvocationStmt first, ExplicitConstructorInvocationStmt second) {
if(!isEqualsUseMerger(first.getExpr(),second.getExpr())) return false;
if(!isEqualsUseMerger(first.getTypeArgs(),second.getTypeArgs())) return false;
if(!isEqualsUseMerger(first.getArgs(),second.getArgs())) return false;
if(first.isThis() != second.isThis()) return false;
return true;
}
}