value = ((Date)value).clone();
}
}
else { // it goes CopyFrom
if (value instanceof CopyFrom) {
CopyFrom source = (CopyFrom) value;
CopyFrom target = createInstance(source.getInterface());
target = target == null ? (CopyFrom) value.getClass().newInstance() : target;
target.copyFrom(source);
value = target;
}
else {
throw new Exception("unsupported class for 'copyFrom' "+value.getClass());
}