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
- Parser.cs
- FileCodeGroup.cs
- PropertyGridView.cs
- FormatPage.cs
- Splitter.cs
- DSASignatureDeformatter.cs
- SimpleBitVector32.cs
- HttpSysSettings.cs
- ElementNotEnabledException.cs
- ContentDisposition.cs
- List.cs
- ToolStripActionList.cs
- DragStartedEventArgs.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- RTLAwareMessageBox.cs
- XDeferredAxisSource.cs
- DocumentViewerHelper.cs
- InvalidPrinterException.cs
- AsyncPostBackTrigger.cs
- RuntimeConfigurationRecord.cs
- DataServiceQueryContinuation.cs
- BaseCodeDomTreeGenerator.cs
- SharedHttpsTransportManager.cs
- Content.cs
- FtpCachePolicyElement.cs
- PropertyGroupDescription.cs
- XomlCompilerResults.cs
- Cursor.cs
- AsyncOperation.cs
- QilChoice.cs
- BinarySerializer.cs
- CultureSpecificStringDictionary.cs
- WebServiceMethodData.cs
- PropertyConverter.cs
- NominalTypeEliminator.cs
- SelectionEditor.cs
- ResourceReferenceExpressionConverter.cs
- SamlAuthorityBinding.cs
- XmlDataSourceDesigner.cs
- BufferAllocator.cs
- TimelineCollection.cs
- OdbcError.cs
- PrintDialog.cs
- ExpressionParser.cs
- NumericPagerField.cs
- NullableDecimalMinMaxAggregationOperator.cs
- PropertyTabAttribute.cs
- LazyTextWriterCreator.cs
- XmlIterators.cs
- HtmlImage.cs
- ListControlBuilder.cs
- QilLiteral.cs
- TaskFormBase.cs
- EasingKeyFrames.cs
- MethodCallTranslator.cs
- HashSetDebugView.cs
- safesecurityhelperavalon.cs
- MultiSelectRootGridEntry.cs
- RoutedEventArgs.cs
- FieldToken.cs
- ConnectionPoolRegistry.cs
- ContentPlaceHolder.cs
- SqlConnectionString.cs
- SecurityManager.cs
- BitmapEffectGeneralTransform.cs
- PerformanceCounterPermissionAttribute.cs
- CultureMapper.cs
- ImageInfo.cs
- SafeHandles.cs
- FixedDocument.cs
- HttpContext.cs
- AudioSignalProblemOccurredEventArgs.cs
- ReflectionServiceProvider.cs
- FormatterConverter.cs
- VectorAnimation.cs
- HtmlInputPassword.cs
- StaticTextPointer.cs
- SelectedDatesCollection.cs
- TraceSection.cs
- ResourcePool.cs
- TreeView.cs
- Int32Converter.cs
- ProcessHostServerConfig.cs
- DataRowComparer.cs
- QilBinary.cs
- objectquery_tresulttype.cs
- MethodBuilderInstantiation.cs
- DataServiceClientException.cs
- ScriptingSectionGroup.cs
- DataGridHeaderBorder.cs
- EntityDataSourceQueryBuilder.cs
- ValidatorUtils.cs
- BamlCollectionHolder.cs
- Attributes.cs
- UrlMappingsSection.cs
- PersonalizationProviderHelper.cs
- XmlException.cs
- WebPartHelpVerb.cs
- PointLight.cs
- FaultContext.cs