package com.freetmp.mbg.shellcallback;
import com.freetmp.mbg.merge.CompilationUnitMerger;
import org.apache.commons.io.FileUtils;
import org.mybatis.generator.exception.ShellException;
import org.mybatis.generator.internal.DefaultShellCallback;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import static org.apache.commons.io.FileUtils.*;
/*
* Created by pin on 2015/2/7.
*/
public class MergeSupportedShellCallback extends DefaultShellCallback {
static final Logger LOGGER = LoggerFactory.getLogger(MergeSupportedShellCallback.class);
/*
* @param overwrite if true overwrite the existed file
*/
public MergeSupportedShellCallback(boolean overwrite) {
super(overwrite);
}
@Override
public boolean isMergeSupported() {
return true;
}
@Override
public String mergeJavaFile(String newFileSource, String existingFileFullPath, String[] javadocTags, String fileEncoding) throws ShellException {
String mergedFileSource = newFileSource;
LOGGER.info("merge java source file for {}", existingFileFullPath);
try {
mergedFileSource = CompilationUnitMerger.merge(newFileSource, readFileToString(getFile(existingFileFullPath)));
} catch (Exception e) {
LOGGER.info("java source merge failed: {}", e);
throw new ShellException(e);
}
return mergedFileSource;
}
}