Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / ndp / fx / src / DataEntityDesign / Design / System / Data / EntityModel / Emitters / SchemaTypeEmitter.cs / 1 / SchemaTypeEmitter.cs
//----------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//
// @owner [....]
// @backupOwner [....]
//---------------------------------------------------------------------
using System;
using System.CodeDom;
using System.Data.EntityModel.SchemaObjectModel;
using Som = System.Data.EntityModel.SchemaObjectModel;
using System.Data.Metadata.Edm;
using System.Reflection;
using System.Diagnostics;
using System.Collections.Generic;
using System.Data.Entity.Design;
using System.Data.Entity.Design.SsdlGenerator;
namespace System.Data.EntityModel.Emitters
{
///
///
///
internal abstract class SchemaTypeEmitter : MetadataItemEmitter
{
#region Public Methods
public abstract CodeTypeDeclarationCollection EmitApiClass();
#endregion
#region Protected Methods
///
///
///
///
///
protected SchemaTypeEmitter(ClientApiGenerator generator, MetadataItem item)
: base(generator, item)
{
}
///
///
///
///
protected virtual void EmitTypeAttributes( CodeTypeDeclaration typeDecl )
{
Generator.AttributeEmitter.EmitTypeAttributes( this, typeDecl );
}
///
/// Emitter-specific validation: for SchemaTypeEmitter-derived classes, we
/// check the EdmItemCollection for other entities that have the same name
/// but differ in case
///
protected override void Validate()
{
Generator.VerifyLanguageCaseSensitiveCompatibilityForType(Item);
}
///
/// Add attributes to a type's CustomAttributes collection
///
/// The name of the type
/// The type to annotate
/// The additional attributes
protected void EmitTypeAttributes(string itemName, CodeTypeDeclaration typeDecl,
List additionalAttributes)
{
if (additionalAttributes != null && additionalAttributes.Count > 0)
{
try
{
typeDecl.CustomAttributes.AddRange(additionalAttributes.ToArray());
}
catch (ArgumentNullException e)
{
Generator.AddError(Strings.InvalidAttributeSuppliedForType(itemName),
ModelBuilderErrorCode.InvalidAttributeSuppliedForType,
EdmSchemaErrorSeverity.Error,
e);
}
}
EmitTypeAttributes(typeDecl);
}
///
/// Add interfaces to the type's list of BaseTypes
///
/// The name of the type
/// The type whose list of base types needs to be extended
/// The interfaces to add to the list of base types
protected void AddInterfaces(string itemName,
CodeTypeDeclaration typeDecl,
List additionalInterfaces)
{
if (additionalInterfaces != null)
{
try
{
foreach (Type interfaceType in additionalInterfaces)
{
typeDecl.BaseTypes.Add(new CodeTypeReference(interfaceType));
}
}
catch (ArgumentNullException e)
{
Generator.AddError(Strings.InvalidInterfaceSuppliedForType(itemName),
ModelBuilderErrorCode.InvalidInterfaceSuppliedForType,
EdmSchemaErrorSeverity.Error,
e);
}
}
}
///
/// Add interfaces to the type's list of BaseTypes
///
/// The name of the type
/// The type to which members need to be added
/// The members to add
protected void AddMembers(string itemName, CodeTypeDeclaration typeDecl,
List additionalMembers)
{
if (additionalMembers != null && additionalMembers.Count > 0)
{
try
{
typeDecl.Members.AddRange(additionalMembers.ToArray());
}
catch (ArgumentNullException e)
{
Generator.AddError(Strings.InvalidMemberSuppliedForType(itemName),
ModelBuilderErrorCode.InvalidMemberSuppliedForType,
EdmSchemaErrorSeverity.Error,
e);
}
}
}
#endregion
#region Protected Properties
///
/// Gets the element that code is being emitted for.
///
internal new GlobalItem Item
{
get
{
return base.Item as GlobalItem;
}
}
internal void SetTypeVisibility(CodeTypeDeclaration typeDecl)
{
typeDecl.TypeAttributes &= ~System.Reflection.TypeAttributes.VisibilityMask;
typeDecl.TypeAttributes |= GetTypeAccessibilityValue(Item);
}
#endregion
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//----------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//
// @owner [....]
// @backupOwner [....]
//---------------------------------------------------------------------
using System;
using System.CodeDom;
using System.Data.EntityModel.SchemaObjectModel;
using Som = System.Data.EntityModel.SchemaObjectModel;
using System.Data.Metadata.Edm;
using System.Reflection;
using System.Diagnostics;
using System.Collections.Generic;
using System.Data.Entity.Design;
using System.Data.Entity.Design.SsdlGenerator;
namespace System.Data.EntityModel.Emitters
{
///
///
///
internal abstract class SchemaTypeEmitter : MetadataItemEmitter
{
#region Public Methods
public abstract CodeTypeDeclarationCollection EmitApiClass();
#endregion
#region Protected Methods
///
///
///
///
///
protected SchemaTypeEmitter(ClientApiGenerator generator, MetadataItem item)
: base(generator, item)
{
}
///
///
///
///
protected virtual void EmitTypeAttributes( CodeTypeDeclaration typeDecl )
{
Generator.AttributeEmitter.EmitTypeAttributes( this, typeDecl );
}
///
/// Emitter-specific validation: for SchemaTypeEmitter-derived classes, we
/// check the EdmItemCollection for other entities that have the same name
/// but differ in case
///
protected override void Validate()
{
Generator.VerifyLanguageCaseSensitiveCompatibilityForType(Item);
}
///
/// Add attributes to a type's CustomAttributes collection
///
/// The name of the type
/// The type to annotate
/// The additional attributes
protected void EmitTypeAttributes(string itemName, CodeTypeDeclaration typeDecl,
List additionalAttributes)
{
if (additionalAttributes != null && additionalAttributes.Count > 0)
{
try
{
typeDecl.CustomAttributes.AddRange(additionalAttributes.ToArray());
}
catch (ArgumentNullException e)
{
Generator.AddError(Strings.InvalidAttributeSuppliedForType(itemName),
ModelBuilderErrorCode.InvalidAttributeSuppliedForType,
EdmSchemaErrorSeverity.Error,
e);
}
}
EmitTypeAttributes(typeDecl);
}
///
/// Add interfaces to the type's list of BaseTypes
///
/// The name of the type
/// The type whose list of base types needs to be extended
/// The interfaces to add to the list of base types
protected void AddInterfaces(string itemName,
CodeTypeDeclaration typeDecl,
List additionalInterfaces)
{
if (additionalInterfaces != null)
{
try
{
foreach (Type interfaceType in additionalInterfaces)
{
typeDecl.BaseTypes.Add(new CodeTypeReference(interfaceType));
}
}
catch (ArgumentNullException e)
{
Generator.AddError(Strings.InvalidInterfaceSuppliedForType(itemName),
ModelBuilderErrorCode.InvalidInterfaceSuppliedForType,
EdmSchemaErrorSeverity.Error,
e);
}
}
}
///
/// Add interfaces to the type's list of BaseTypes
///
/// The name of the type
/// The type to which members need to be added
/// The members to add
protected void AddMembers(string itemName, CodeTypeDeclaration typeDecl,
List additionalMembers)
{
if (additionalMembers != null && additionalMembers.Count > 0)
{
try
{
typeDecl.Members.AddRange(additionalMembers.ToArray());
}
catch (ArgumentNullException e)
{
Generator.AddError(Strings.InvalidMemberSuppliedForType(itemName),
ModelBuilderErrorCode.InvalidMemberSuppliedForType,
EdmSchemaErrorSeverity.Error,
e);
}
}
}
#endregion
#region Protected Properties
///
/// Gets the element that code is being emitted for.
///
internal new GlobalItem Item
{
get
{
return base.Item as GlobalItem;
}
}
internal void SetTypeVisibility(CodeTypeDeclaration typeDecl)
{
typeDecl.TypeAttributes &= ~System.Reflection.TypeAttributes.VisibilityMask;
typeDecl.TypeAttributes |= GetTypeAccessibilityValue(Item);
}
#endregion
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- UrlAuthorizationModule.cs
- BasicViewGenerator.cs
- XmlSchemaDatatype.cs
- Point3DConverter.cs
- VBIdentifierNameEditor.cs
- XmlReflectionMember.cs
- PrimitiveCodeDomSerializer.cs
- OleDbPropertySetGuid.cs
- DataGridViewColumn.cs
- SqlClientFactory.cs
- ZipIOModeEnforcingStream.cs
- _OSSOCK.cs
- ElementHostPropertyMap.cs
- MessageQueueConverter.cs
- HttpDebugHandler.cs
- RawStylusInputCustomData.cs
- SafeNativeMethods.cs
- SQLDouble.cs
- CellLabel.cs
- ScrollChrome.cs
- RegexMatch.cs
- OleDbConnectionInternal.cs
- HwndHost.cs
- AutomationPropertyInfo.cs
- QilCloneVisitor.cs
- RegexNode.cs
- InfoCardTrace.cs
- CollectionChangeEventArgs.cs
- SQLStringStorage.cs
- CultureMapper.cs
- DataError.cs
- QueryCursorEventArgs.cs
- AccessDataSourceDesigner.cs
- DtdParser.cs
- SelectionProviderWrapper.cs
- UnmanagedMarshal.cs
- Variant.cs
- DataGridViewRow.cs
- xsdvalidator.cs
- SmiTypedGetterSetter.cs
- AudioBase.cs
- TextCompositionEventArgs.cs
- CalendarDateRange.cs
- SQLByte.cs
- MiniConstructorInfo.cs
- CompiledQueryCacheKey.cs
- AsyncOperation.cs
- PersonalizationEntry.cs
- Itemizer.cs
- HtmlEmptyTagControlBuilder.cs
- ResolveNameEventArgs.cs
- DataColumn.cs
- StringWriter.cs
- ApplicationDirectory.cs
- GraphicsState.cs
- ExpressionPrefixAttribute.cs
- MenuTracker.cs
- CellTreeNode.cs
- RangeValuePattern.cs
- PassportAuthentication.cs
- HasCopySemanticsAttribute.cs
- WebEvents.cs
- HostedElements.cs
- SizeAnimationUsingKeyFrames.cs
- ArrayList.cs
- BuildResult.cs
- FacetDescription.cs
- ParameterCollection.cs
- XmlLoader.cs
- CodeValidator.cs
- UniqueConstraint.cs
- ObjectItemCollectionAssemblyCacheEntry.cs
- ByteFacetDescriptionElement.cs
- Int32.cs
- InsufficientExecutionStackException.cs
- CompilerLocalReference.cs
- AuthenticationModuleElement.cs
- ObjectDataSourceWizardForm.cs
- ObjectSet.cs
- PropertyChangedEventManager.cs
- PagedDataSource.cs
- XslTransformFileEditor.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- ToolboxBitmapAttribute.cs
- DataGridViewColumnHeaderCell.cs
- RowToParametersTransformer.cs
- CalendarAutoFormat.cs
- CheckBoxPopupAdapter.cs
- BitArray.cs
- DateRangeEvent.cs
- InternalConfigHost.cs
- SharedUtils.cs
- AnnotationComponentManager.cs
- FormViewModeEventArgs.cs
- DNS.cs
- MarginCollapsingState.cs
- FileVersionInfo.cs
- CookieHandler.cs
- ViewUtilities.cs
- NameTable.cs