Commit for development environment setup
This commit is contained in:
@@ -0,0 +1,181 @@
|
||||
using System;
|
||||
using System.Data;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.Design;
|
||||
using System.ComponentModel;
|
||||
using System.Reflection;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Csla.Web.Design
|
||||
{
|
||||
/// <summary>
|
||||
/// Contains schema information for a single
|
||||
/// object property.
|
||||
/// </summary>
|
||||
[Serializable]
|
||||
public class ObjectFieldInfo : IDataSourceFieldSchema
|
||||
{
|
||||
private Type _dataType;
|
||||
private bool _primaryKey;
|
||||
private bool _isIdentity;
|
||||
private bool _isNullable;
|
||||
private int _length;
|
||||
private bool _isReadOnly;
|
||||
private string _name;
|
||||
private bool _nullable;
|
||||
|
||||
/// <summary>
|
||||
/// Creates an instance of the object.
|
||||
/// </summary>
|
||||
/// <param name="field">The PropertyInfo object
|
||||
/// describing the property.</param>
|
||||
public ObjectFieldInfo(PropertyDescriptor field)
|
||||
{
|
||||
DataObjectFieldAttribute attribute =
|
||||
(DataObjectFieldAttribute)
|
||||
field.Attributes[typeof(DataObjectFieldAttribute)];
|
||||
if (attribute != null)
|
||||
{
|
||||
_primaryKey = attribute.PrimaryKey;
|
||||
_isIdentity = attribute.IsIdentity;
|
||||
_isNullable = attribute.IsNullable;
|
||||
_length = attribute.Length;
|
||||
}
|
||||
_dataType = Utilities.GetPropertyType(
|
||||
field.PropertyType);
|
||||
_isReadOnly = field.IsReadOnly;
|
||||
_name = field.Name;
|
||||
|
||||
// nullable
|
||||
Type t = field.PropertyType;
|
||||
if (!t.IsValueType || _isNullable)
|
||||
_nullable = true;
|
||||
else
|
||||
{
|
||||
if (t.IsGenericType)
|
||||
_nullable = (t.GetGenericTypeDefinition() == typeof(Nullable<>));
|
||||
else
|
||||
_nullable = false;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the data type of the property.
|
||||
/// </summary>
|
||||
public Type DataType
|
||||
{
|
||||
get
|
||||
{
|
||||
return _dataType;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets a value indicating whether this property
|
||||
/// is an identity key for the object.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Returns the optional value provided through
|
||||
/// the <see cref="DataObjectFieldAttribute">DataObjectField</see>
|
||||
/// attribute on the property.
|
||||
/// </remarks>
|
||||
public bool Identity
|
||||
{
|
||||
get { return _isIdentity; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets a value indicating whether this property
|
||||
/// is readonly.
|
||||
/// </summary>
|
||||
public bool IsReadOnly
|
||||
{
|
||||
get { return _isReadOnly; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets a value indicating whether this property
|
||||
/// must contain a unique value.
|
||||
/// </summary>
|
||||
/// <returns>
|
||||
/// Always returns True if the property
|
||||
/// is marked as a primary key, otherwise
|
||||
/// returns False.
|
||||
/// </returns>
|
||||
public bool IsUnique
|
||||
{
|
||||
get { return _primaryKey; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the length of the property value.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Returns the optional value provided through
|
||||
/// the <see cref="DataObjectFieldAttribute">DataObjectField</see>
|
||||
/// attribute on the property.
|
||||
/// </remarks>
|
||||
public int Length
|
||||
{
|
||||
get { return _length; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the property name.
|
||||
/// </summary>
|
||||
public string Name
|
||||
{
|
||||
get { return _name; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets a value indicating whether the property
|
||||
/// is nullable
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Returns True for reference types, and for
|
||||
/// value types wrapped in the Nullable generic.
|
||||
/// The result can also be set to True through
|
||||
/// the <see cref="DataObjectFieldAttribute">DataObjectField</see>
|
||||
/// attribute on the property.
|
||||
/// </remarks>
|
||||
public bool Nullable
|
||||
{
|
||||
get
|
||||
{ return _nullable; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the property's numeric precision.
|
||||
/// </summary>
|
||||
/// <returns>Always returns -1.</returns>
|
||||
public int Precision
|
||||
{
|
||||
get { return -1; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets a value indicating whether the property
|
||||
/// is a primary key value.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Returns the optional value provided through
|
||||
/// the <see cref="DataObjectFieldAttribute">DataObjectField</see>
|
||||
/// attribute on the property.
|
||||
/// </remarks>
|
||||
public bool PrimaryKey
|
||||
{
|
||||
get { return _primaryKey; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the property's scale.
|
||||
/// </summary>
|
||||
/// <returns>Always returns -1.</returns>
|
||||
public int Scale
|
||||
{
|
||||
get { return -1; }
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user