Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataWeb / Server / System / Data / Services / Providers / ResourceAssociationType.cs / 1305376 / ResourceAssociationType.cs
//----------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//
// Simple couple of classes to keep association descriptions
//
//
// @owner [....]
//---------------------------------------------------------------------
namespace System.Data.Services.Providers
{
using System.Diagnostics;
using System.Collections.Generic;
///
/// Stores information about a association and its ends
///
internal class ResourceAssociationType
{
/// FullName of the association.
private readonly string fullName;
/// Name of the association
private readonly string name;
/// end1 for this association.
private readonly ResourceAssociationTypeEnd end1;
/// end2 for this association.
private readonly ResourceAssociationTypeEnd end2;
///
/// Creates a new instance of AssociationInfo to store information about an association.
///
/// name of the association.
/// namespaceName of the association.
/// first end of the association.
/// second end of the association.
internal ResourceAssociationType(string name, string namespaceName, ResourceAssociationTypeEnd end1, ResourceAssociationTypeEnd end2)
{
Debug.Assert(!String.IsNullOrEmpty(name), "!String.IsNullOrEmpty(name)");
Debug.Assert(end1 != null && end2 != null, "end1 != null && end2 != null");
this.name = name;
this.fullName = namespaceName + "." + name;
this.end1 = end1;
this.end2 = end2;
}
/// FullName of the association.
internal string FullName
{
get { return this.fullName; }
}
/// Name of the association.
internal string Name
{
get { return this.name; }
}
/// end1 for this association.
internal ResourceAssociationTypeEnd End1
{
get { return this.end1; }
}
/// end2 for this association.
internal ResourceAssociationTypeEnd End2
{
get { return this.end2; }
}
///
/// Retrieve the end for the given resource set, type and property.
///
/// resource type for the end
/// resource property for the end
/// Association type end for the given parameters
internal ResourceAssociationTypeEnd GetResourceAssociationTypeEnd(ResourceType resourceType, ResourceProperty resourceProperty)
{
Debug.Assert(resourceType != null, "resourceType != null");
foreach (ResourceAssociationTypeEnd end in new[] { this.end1, this.end2 })
{
if (end.ResourceType == resourceType && end.ResourceProperty == resourceProperty)
{
return end;
}
}
return null;
}
///
/// Retrieve the related end for the given resource set, type and property.
///
/// resource type for the source end
/// resource property for the source end
/// Related association type end for the given parameters
internal ResourceAssociationTypeEnd GetRelatedResourceAssociationSetEnd(ResourceType resourceType, ResourceProperty resourceProperty)
{
Debug.Assert(resourceType != null, "resourceType != null");
ResourceAssociationTypeEnd thisEnd = this.GetResourceAssociationTypeEnd(resourceType, resourceProperty);
if (thisEnd != null)
{
foreach (ResourceAssociationTypeEnd end in new[] { this.end1, this.end2 })
{
if (end != thisEnd)
{
return end;
}
}
}
return null;
}
}
}
// 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
- IpcChannel.cs
- ToolStripSettings.cs
- IDQuery.cs
- CodeBlockBuilder.cs
- PlacementWorkspace.cs
- BaseCodePageEncoding.cs
- ProfileProvider.cs
- StreamReader.cs
- TextModifier.cs
- BoolLiteral.cs
- HyperLinkField.cs
- RenderData.cs
- TextRunCacheImp.cs
- SurrogateSelector.cs
- ThemeDirectoryCompiler.cs
- NullableDecimalSumAggregationOperator.cs
- UIElementCollection.cs
- CodeIdentifiers.cs
- ImageCodecInfoPrivate.cs
- WindowCollection.cs
- InputScopeManager.cs
- DialogResultConverter.cs
- CommandBindingCollection.cs
- UnsafeMethods.cs
- ClientSettings.cs
- SystemInfo.cs
- DataSourceCacheDurationConverter.cs
- FamilyCollection.cs
- ColorPalette.cs
- RepeaterCommandEventArgs.cs
- LoginUtil.cs
- BaseValidator.cs
- GeometryValueSerializer.cs
- Misc.cs
- NativeMethodsOther.cs
- SegmentInfo.cs
- DeviceContext.cs
- StringValidator.cs
- AtomMaterializerLog.cs
- OdbcPermission.cs
- XmlWriter.cs
- LinkClickEvent.cs
- GenerateHelper.cs
- DependencyPropertyAttribute.cs
- OrderedDictionaryStateHelper.cs
- ToolboxComponentsCreatedEventArgs.cs
- GacUtil.cs
- Base64Encoder.cs
- SymbolType.cs
- OracleConnectionStringBuilder.cs
- ILGenerator.cs
- CellParaClient.cs
- UpDownBase.cs
- _StreamFramer.cs
- ConfigurationSection.cs
- WsdlInspector.cs
- SchemaNames.cs
- _TimerThread.cs
- SoapSchemaExporter.cs
- IPEndPoint.cs
- InternalResources.cs
- ModelServiceImpl.cs
- LambdaCompiler.Generated.cs
- TemplatedAdorner.cs
- AsymmetricKeyExchangeDeformatter.cs
- DataSourceXmlTextReader.cs
- MarginsConverter.cs
- Brush.cs
- PackagePart.cs
- Panel.cs
- WebPartTracker.cs
- iisPickupDirectory.cs
- EntityCommandExecutionException.cs
- Operand.cs
- ConfigurationElement.cs
- Timer.cs
- RC2CryptoServiceProvider.cs
- PropertyGrid.cs
- TheQuery.cs
- FigureParaClient.cs
- XmlQualifiedName.cs
- SecurityCriticalDataForSet.cs
- ElementMarkupObject.cs
- XmlDomTextWriter.cs
- KeysConverter.cs
- SelectionItemPattern.cs
- XamlSerializerUtil.cs
- CryptographicAttribute.cs
- _LazyAsyncResult.cs
- QilPatternFactory.cs
- HtmlControl.cs
- CorrelationManager.cs
- HttpDictionary.cs
- HttpBrowserCapabilitiesWrapper.cs
- CursorConverter.cs
- EntityClassGenerator.cs
- ListViewInsertEventArgs.cs
- DataGridViewElement.cs
- RectangleF.cs
- RemoteWebConfigurationHost.cs