public static Cascades.VersionValue GetUnsavedVersionValue( String versionUnsavedValue, IGetter versionGetter, IVersionType versionType, ConstructorInfo constructor) { if (versionUnsavedValue == null) { if (constructor != null) { Object defaultValue = versionGetter.Get(Instantiate(constructor)); // if the version of a newly instantiated object is not the same // as the version seed value, use that as the unsaved-value return(versionType.Equals(versionType.Seed, defaultValue) ? Cascades.VersionValue.VersionUndefined : new Cascades.VersionValue(defaultValue)); } else { return(Cascades.VersionValue.VersionUndefined); } } else if ("undefined" == versionUnsavedValue) { return(Cascades.VersionValue.VersionUndefined); } else if ("null" == versionUnsavedValue) { return(Cascades.VersionValue.VersionSaveNull); } else if ("negative" == versionUnsavedValue) { return(Cascades.VersionValue.VersionNegative); } else { // NHibernate-specific try { return(new Cascades.VersionValue(versionType.StringToObject(versionUnsavedValue))); } catch (InvalidCastException ice) { throw new MappingException("Bad version type: " + versionType.Name, ice); } catch (Exception e) { throw new MappingException("Could not parse version unsaved-value: " + versionUnsavedValue, e); } } }
public static Cascades.VersionValue GetUnsavedVersionValue( String versionUnsavedValue, IGetter versionGetter, IVersionType versionType, ConstructorInfo constructor) { if ( versionUnsavedValue == null ) { if ( constructor!=null ) { Object defaultValue = versionGetter.Get( Instantiate(constructor) ); // if the version of a newly instantiated object is not the same // as the version seed value, use that as the unsaved-value return versionType.Equals( versionType.Seed, defaultValue ) ? Cascades.VersionValue.VersionUndefined : new Cascades.VersionValue( defaultValue ); } else { return Cascades.VersionValue.VersionUndefined; } } else if ( "undefined" == versionUnsavedValue ) { return Cascades.VersionValue.VersionUndefined; } else if ( "null" == versionUnsavedValue ) { return Cascades.VersionValue.VersionSaveNull; } else if ( "negative" == versionUnsavedValue ) { return Cascades.VersionValue.VersionNegative; } else { // NHibernate-specific try { return new Cascades.VersionValue( versionType.StringToObject( versionUnsavedValue ) ); } catch( InvalidCastException ice ) { throw new MappingException( "Bad version type: " + versionType.Name, ice ); } catch( Exception e ) { throw new MappingException( "Could not parse version unsaved-value: " + versionUnsavedValue, e ); } } }