package com.freetmp.mbg.merge.parameter; import com.freetmp.mbg.merge.AbstractMerger; import com.github.javaparser.ast.body.Parameter; import com.github.javaparser.ast.body.VariableDeclaratorId; /** * Created by pin on 2015/4/19. */ public class ParameterMerger extends AbstractMerger<Parameter> { @Override public Parameter doMerge(Parameter first, Parameter second) { Parameter parameter = new Parameter(); parameter.setType(first.getType()); parameter.setId(first.getId()); parameter.setVarArgs(first.isVarArgs()); parameter.setModifiers(mergeModifiers(first.getModifiers(), second.getModifiers())); parameter.setAnnotations(mergeCollections(first.getAnnotations(), second.getAnnotations())); return parameter; } @SuppressWarnings("unchecked") @Override public boolean doIsEquals(Parameter first, Parameter second) { if(first.isVarArgs() != second.isVarArgs()) return false; if(!getMerger(VariableDeclaratorId.class).isEquals(first.getId(),second.getId())) return false; if(!first.getType().getClass().equals(second.getType().getClass())) return false; AbstractMerger merger = getMerger(first.getType().getClass()); if(!merger.isEquals(first.getType(),second.getType())) return false; return true; } }