All Downloads are FREE. Search and download functionalities are using the official Maven repository.
Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
tbrugz.sqldiff.datadiff.HTMLDiff Maven / Gradle / Ivy
package tbrugz.sqldiff.datadiff;
import java.io.IOException;
import java.io.Writer;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import tbrugz.sqldump.datadump.DataDumpUtils;
import tbrugz.sqldump.datadump.HTMLDataDump;
import tbrugz.sqldump.util.SQLUtils;
public class HTMLDiff extends HTMLDataDump implements DiffSyntax {
static final Log log = LogFactory.getLog(HTMLDiff.class);
boolean shouldFlush = false;
public HTMLDiff() {
this.nullValueStr = "␀"; // NULL unicode char in HTML - unicode U+2400
}
@Override
public boolean dumpUpdateRowIfNotEquals(ResultSet rsSource,
ResultSet rsTarget, long count, boolean alsoDumpIfEquals, Writer w) throws IOException,
SQLException {
List valsS = SQLUtils.getRowObjectListFromRS(rsSource, lsColTypes, numCol, true);
List valsT = SQLUtils.getRowObjectListFromRS(rsTarget, lsColTypes, numCol, true);
List fvalS = getFormattedVals(valsS);
List fvalT = getFormattedVals(valsT);
if(!equals(fvalS, fvalT)) {
dumpRowValues(fvalS, fvalT, count, "change", w);
if(shouldFlush) { flush(w); }
return true;
}
else {
if(alsoDumpIfEquals) {
//XXXxxx: really dump? add prop?
dumpRow(rsTarget, count, "equal", w);
}
if(shouldFlush) { flush(w); }
return false;
}
}
@Override
public void dumpUpdateRow(ResultSet rsSource, ResultSet rsTarget,
long count, Writer w) throws IOException, SQLException {
log.warn("dumpUpdateRow: not implemented");
}
@Override
public void dumpRow(ResultSet rs, long count, Writer w) throws IOException, SQLException {
dumpRow(rs, count, "add", w);
if(shouldFlush) { flush(w); }
}
@Override
public void dumpDeleteRow(ResultSet rs, long count, Writer w) throws IOException, SQLException {
dumpRow(rs, count, "remove", w);
//log.info("dumpDelete: count="+count);
if(shouldFlush) { flush(w); }
}
@Override
public void dumpStats(long insertCount, long updateCount, long deleteCount, long identicalRowsCount,
long sourceRowCount, long targetRowCount, Writer w) throws IOException, SQLException {
}
public void dumpRowValues(List valsS, List valsT, long count, String clazz, Writer fos) throws IOException, SQLException {
StringBuilder sb = new StringBuilder();
sb.append("\t"+"");
for(int i=0;i"+ valueS +"" );
}
else {
sb.append( ""+ valueT +" "+ valueS +" " );
}
}
sb.append(" ");
out(sb.toString()+"\n", fos);
}
List getFormattedVals(List vals) {
List objs = new ArrayList();
for(int i=0;i valS, List valT) {
for(int i=0;i