示例#1
0
        private void CheckCorrectTypeForField()
        {
            ClassMetadata currentFieldType = DetectFieldType();

            if (currentFieldType == null)
            {
                _reflectField = null;
                _state        = FieldMetadataState.Unavailable;
                return;
            }
            if (currentFieldType == _fieldType && Handlers4.BaseType(_reflectField.GetFieldType
                                                                         ()).IsPrimitive() == _isPrimitive)
            {
                return;
            }
            // special case when migrating from type handler ids
            // to class metadata ids which caused
            // any interface metadata id to be mapped to UNTYPED_ID
            if (Handlers4.IsUntyped(currentFieldType.TypeHandler()) && Handlers4.IsUntyped(_fieldType
                                                                                           .TypeHandler()))
            {
                return;
            }
            // FIXME: COR-547 Diagnostics here please.
            _state = FieldMetadataState.Updating;
        }
示例#2
0
 private bool Load()
 {
     if (_fieldType == null)
     {
         // this may happen if the local ClassMetadataRepository
         // has not been updated from the server and presumably
         // in some refactoring cases.
         // We try to heal the problem by re-reading the class.
         // This could be dangerous, if the class type of a field
         // has been modified.
         // TODO: add class refactoring features
         _fieldType = DetectFieldType();
         CheckFieldTypeID();
     }
     CheckCorrectTypeForField();
     if (_fieldType == null || _reflectField == null)
     {
         _state        = FieldMetadataState.Unavailable;
         _reflectField = null;
         return(false);
     }
     if (Updating())
     {
         return(false);
     }
     SetAvailable();
     CheckDb4oType();
     return(true);
 }
示例#3
0
        internal virtual void Refresh()
        {
            ClassMetadata newFieldType = DetectFieldType();

            if (newFieldType != null && newFieldType.Equals(_fieldType))
            {
                return;
            }
            _reflectField = null;
            _state        = FieldMetadataState.Unavailable;
        }
示例#4
0
 protected virtual void SetAvailable()
 {
     _state = FieldMetadataState.Available;
 }
		private void CheckCorrectTypeForField()
		{
			ClassMetadata currentFieldType = DetectFieldType();
			if (currentFieldType == null)
			{
				_reflectField = null;
				_state = FieldMetadataState.Unavailable;
				return;
			}
			if (currentFieldType == _fieldType && Handlers4.BaseType(_reflectField.GetFieldType
				()).IsPrimitive() == _isPrimitive)
			{
				return;
			}
			// special case when migrating from type handler ids
			// to class metadata ids which caused
			// any interface metadata id to be mapped to UNTYPED_ID
			if (Handlers4.IsUntyped(currentFieldType.TypeHandler()) && Handlers4.IsUntyped(_fieldType
				.TypeHandler()))
			{
				return;
			}
			// FIXME: COR-547 Diagnostics here please.
			_state = FieldMetadataState.Updating;
		}
		private bool Load()
		{
			if (_fieldType == null)
			{
				// this may happen if the local ClassMetadataRepository
				// has not been updated from the server and presumably 
				// in some refactoring cases. 
				// We try to heal the problem by re-reading the class.
				// This could be dangerous, if the class type of a field
				// has been modified.
				// TODO: add class refactoring features
				_fieldType = DetectFieldType();
				CheckFieldTypeID();
			}
			CheckCorrectTypeForField();
			if (_fieldType == null || _reflectField == null)
			{
				_state = FieldMetadataState.Unavailable;
				_reflectField = null;
				return false;
			}
			if (Updating())
			{
				return false;
			}
			SetAvailable();
			CheckDb4oType();
			return true;
		}
		protected virtual void SetAvailable()
		{
			_state = FieldMetadataState.Available;
		}
		internal virtual void Refresh()
		{
			ClassMetadata newFieldType = DetectFieldType();
			if (newFieldType != null && newFieldType.Equals(_fieldType))
			{
				return;
			}
			_reflectField = null;
			_state = FieldMetadataState.Unavailable;
		}