Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataEntity / System / Data / Metadata / MetadataArtifactLoaderComposite.cs / 1305376 / MetadataArtifactLoaderComposite.cs
//----------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//
// @owner [....]
// @backupOwner [....]
//---------------------------------------------------------------------
using System.Collections.Generic;
using System.Collections;
using System.Diagnostics;
using System.Globalization;
using System.Reflection;
using System.Text;
using System.Xml;
using System.Data.Mapping;
using System.IO;
using System.Security;
using System.Security.Permissions;
using System.Collections.ObjectModel;
namespace System.Data.Metadata.Edm
{
///
/// This class represents a super-collection (a collection of collections)
/// of artifact resources. Typically, this "meta-collection" would contain
/// artifacts represented as individual files, directories (which are in
/// turn collections of files), and embedded resources.
///
/// This is the root class for access to all loader objects.
internal class MetadataArtifactLoaderComposite : MetadataArtifactLoader, IEnumerable
{
///
/// The list of loaders aggregated by the composite.
///
private readonly ReadOnlyCollection _children;
///
/// Constructor - loads all resources into the _children collection
///
/// A list of collections to aggregate
public MetadataArtifactLoaderComposite(List children)
{
Debug.Assert(children != null);
_children = new List(children).AsReadOnly();
}
public override string Path
{
get { return string.Empty; }
}
public override void CollectFilePermissionPaths(List paths, DataSpace spaceToGet)
{
foreach (MetadataArtifactLoader loader in _children)
{
loader.CollectFilePermissionPaths(paths, spaceToGet);
}
}
public override bool IsComposite
{
get
{
return true;
}
}
///
/// Get the list of paths to all artifacts in the original, unexpanded form
///
/// A List of strings identifying paths to all resources
public override List GetOriginalPaths()
{
List list = new List();
foreach (MetadataArtifactLoader loader in _children)
{
list.AddRange(loader.GetOriginalPaths());
}
return list;
}
///
/// Get paths to artifacts for a specific DataSpace, in the original, unexpanded
/// form
///
/// The DataSpace for the artifacts of interest
/// A List of strings identifying paths to all artifacts for a specific DataSpace
public override List GetOriginalPaths(DataSpace spaceToGet)
{
List list = new List();
foreach (MetadataArtifactLoader loader in _children)
{
list.AddRange(loader.GetOriginalPaths(spaceToGet));
}
return list;
}
///
/// Get paths to artifacts for a specific DataSpace.
///
/// The DataSpace for the artifacts of interest
/// A List of strings identifying paths to all artifacts for a specific DataSpace
public override List GetPaths(DataSpace spaceToGet)
{
List list = new List();
foreach (MetadataArtifactLoader loader in _children)
{
list.AddRange(loader.GetPaths(spaceToGet));
}
return list;
}
///
/// Get paths to all artifacts
///
/// A List of strings identifying paths to all resources
public override List GetPaths()
{
List list = new List();
foreach (MetadataArtifactLoader resource in _children)
{
list.AddRange(resource.GetPaths());
}
return list;
}
///
/// Aggregates all resource streams from the _children collection
///
/// A List of XmlReader objects; cannot be null
public override List GetReaders(Dictionary sourceDictionary)
{
List list = new List();
foreach (MetadataArtifactLoader resource in _children)
{
list.AddRange(resource.GetReaders(sourceDictionary));
}
return list;
}
///
/// Get XmlReaders for a specific DataSpace.
///
/// The DataSpace corresponding to the requested artifacts
/// A List of XmlReader objects
public override List CreateReaders(DataSpace spaceToGet)
{
List list = new List();
foreach (MetadataArtifactLoader resource in _children)
{
list.AddRange(resource.CreateReaders(spaceToGet));
}
return list;
}
#region IEnumerable Members
public IEnumerator GetEnumerator()
{
return this._children.GetEnumerator();
}
#endregion
#region IEnumerable Members
IEnumerator IEnumerable.GetEnumerator()
{
return this._children.GetEnumerator();
}
#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
- DbException.cs
- ParseHttpDate.cs
- SelectingProviderEventArgs.cs
- DataGridViewImageCell.cs
- AsymmetricSignatureFormatter.cs
- Exceptions.cs
- ThreadStateException.cs
- BooleanProjectedSlot.cs
- MergeExecutor.cs
- OperatingSystem.cs
- DecimalConstantAttribute.cs
- Unit.cs
- VBCodeProvider.cs
- WindowsFormsHostPropertyMap.cs
- TextDecoration.cs
- OuterGlowBitmapEffect.cs
- IconHelper.cs
- HtmlInputText.cs
- HighContrastHelper.cs
- CachedFontFace.cs
- ServiceProviders.cs
- DragCompletedEventArgs.cs
- VideoDrawing.cs
- StatusBarItem.cs
- KoreanLunisolarCalendar.cs
- WebConfigurationHostFileChange.cs
- XmlDictionary.cs
- datacache.cs
- DataControlFieldsEditor.cs
- PageThemeBuildProvider.cs
- X509SecurityTokenProvider.cs
- ReferentialConstraint.cs
- XsdDataContractImporter.cs
- JsonGlobals.cs
- XmlEnumAttribute.cs
- RegexCapture.cs
- _KerberosClient.cs
- RegistryPermission.cs
- SystemUnicastIPAddressInformation.cs
- ProcessThreadCollection.cs
- MultiAsyncResult.cs
- XmlNotation.cs
- X509Utils.cs
- returneventsaver.cs
- WorkflowMarkupSerializationProvider.cs
- EventWaitHandle.cs
- Processor.cs
- NetworkAddressChange.cs
- TimeSpanSecondsConverter.cs
- TableLayoutSettings.cs
- EventLogReader.cs
- WebResourceUtil.cs
- XmlNamespaceDeclarationsAttribute.cs
- SqlNode.cs
- versioninfo.cs
- CompModSwitches.cs
- RootBrowserWindowAutomationPeer.cs
- RowType.cs
- EditingScopeUndoUnit.cs
- KnownIds.cs
- SamlAuthorityBinding.cs
- PageAsyncTask.cs
- DataGridViewCellFormattingEventArgs.cs
- UpdateEventArgs.cs
- DispatcherTimer.cs
- SocketException.cs
- WeakReference.cs
- DynamicDocumentPaginator.cs
- HtmlFormWrapper.cs
- ComponentChangingEvent.cs
- MobileResource.cs
- SchemaDeclBase.cs
- WebPartMovingEventArgs.cs
- webclient.cs
- HttpWrapper.cs
- MultiByteCodec.cs
- FutureFactory.cs
- DataGridPageChangedEventArgs.cs
- PrimitiveXmlSerializers.cs
- ManipulationPivot.cs
- Base64Decoder.cs
- WindowsToolbarItemAsMenuItem.cs
- PaperSource.cs
- ContentPosition.cs
- ParallelRangeManager.cs
- MimeMultiPart.cs
- DesignBindingConverter.cs
- EventWaitHandleSecurity.cs
- StringFormat.cs
- FrameworkReadOnlyPropertyMetadata.cs
- TextChangedEventArgs.cs
- httpserverutility.cs
- SecurityContextTokenCache.cs
- PerformanceCounter.cs
- SmtpDigestAuthenticationModule.cs
- DateRangeEvent.cs
- SetUserPreferenceRequest.cs
- Frame.cs
- CallbackDebugElement.cs
- SqlEnums.cs