package com.aggrepoint.utils.linkedtable;
import com.aggrepoint.utils.TypeCast;
public class DefaultAddMerger implements INodeMerger {
private static final DefaultAddMerger INSTANCE = new DefaultAddMerger();
private DefaultAddMerger() {
}
public static DefaultAddMerger getInstance() {
return INSTANCE;
}
public <T> T merge(T a, T b) {
if (a == null)
return b;
if (b == null)
return a;
if (a instanceof Double) {
double va = 0.0d;
if (a != null)
va = TypeCast.cast(a);
double vb = 0.0d;
if (b != null)
vb = TypeCast.cast(b);
return TypeCast.cast(new Double(va + vb));
} else if (a instanceof Integer) {
int va = 0;
if (a != null)
va = TypeCast.cast(a);
int vb = 0;
if (b != null)
vb = TypeCast.cast(b);
return TypeCast.cast(new Double(va + vb));
}
return null;
}
}