void FreezeScript::TransformVisitor::visitInteger(const IntegerDataPtr& dest) { Slice::TypePtr type = dest->getType(); if(_info->doDefaultTransform(type)) { IntegerDataPtr i = IntegerDataPtr::dynamicCast(_src); if(i) { dest->setValue(i->getValue(), false); } else { StringDataPtr s = StringDataPtr::dynamicCast(_src); if(s) { string str = s->getValue(); Ice::Long value; if(IceUtil::stringToInt64(str, value)) { dest->setValue(value, false); } else { conversionError(type, _src->getType(), str); } } else { typeMismatchError(type, _src->getType()); } } } _info->executeCustomTransform(dest, _src); }
void FreezeScript::AssignVisitor::visitInteger(const IntegerDataPtr& dest) { dest->setValue(_src->integerValue(_convert), true); }