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
- ExeContext.cs
- GestureRecognizer.cs
- NullableDoubleSumAggregationOperator.cs
- DoubleLinkListEnumerator.cs
- StateManagedCollection.cs
- DebugHandleTracker.cs
- StrokeSerializer.cs
- DetailsViewUpdateEventArgs.cs
- SatelliteContractVersionAttribute.cs
- FontFamilyValueSerializer.cs
- PropertyPathWorker.cs
- LinearKeyFrames.cs
- TreeViewImageKeyConverter.cs
- HtmlGenericControl.cs
- ToolStripSeparatorRenderEventArgs.cs
- SudsCommon.cs
- GroupItem.cs
- PropertyMetadata.cs
- DelegatingTypeDescriptionProvider.cs
- DataIdProcessor.cs
- ProfileSettingsCollection.cs
- TabRenderer.cs
- NetworkInterface.cs
- MaterialGroup.cs
- SafeLocalMemHandle.cs
- ParallelTimeline.cs
- NamedPipeDuplicateContext.cs
- Encoder.cs
- wgx_exports.cs
- NumberFormatter.cs
- OutputCacheSection.cs
- StringConverter.cs
- NumericUpDownAcceleration.cs
- AnimationTimeline.cs
- CroppedBitmap.cs
- DataControlFieldCollection.cs
- InsufficientMemoryException.cs
- PrintDialog.cs
- DbParameterCollectionHelper.cs
- SessionParameter.cs
- RowToParametersTransformer.cs
- ColumnHeader.cs
- DrawingGroup.cs
- EditingCoordinator.cs
- ProcessManager.cs
- StringValueSerializer.cs
- FormViewModeEventArgs.cs
- ToolStripLocationCancelEventArgs.cs
- SecurityCriticalDataForSet.cs
- XmlSchemaObjectTable.cs
- SchemaComplexType.cs
- CompositeCollectionView.cs
- OdbcPermission.cs
- CodeArrayCreateExpression.cs
- SslStreamSecurityBindingElement.cs
- XmlSchemaExternal.cs
- SuppressMergeCheckAttribute.cs
- InternalDispatchObject.cs
- SRGSCompiler.cs
- UpWmlPageAdapter.cs
- ByteViewer.cs
- XmlSchemaInfo.cs
- OdbcCommand.cs
- ColumnResizeUndoUnit.cs
- ConvertBinder.cs
- X509CertificateCollection.cs
- HttpCookiesSection.cs
- XmlHierarchicalEnumerable.cs
- AmbiguousMatchException.cs
- TextTreeInsertUndoUnit.cs
- XmlEntityReference.cs
- HMACRIPEMD160.cs
- DynamicActivityProperty.cs
- DesignBindingValueUIHandler.cs
- PersistenceException.cs
- CommandValueSerializer.cs
- itemelement.cs
- TimeManager.cs
- ViewStateException.cs
- XmlSchemaSimpleTypeUnion.cs
- Point3DValueSerializer.cs
- CodeCompiler.cs
- datacache.cs
- Inflater.cs
- Environment.cs
- ZipIOCentralDirectoryFileHeader.cs
- BindableTemplateBuilder.cs
- TypefaceMap.cs
- MailMessageEventArgs.cs
- BrushMappingModeValidation.cs
- SegmentInfo.cs
- UnknownWrapper.cs
- IntegerCollectionEditor.cs
- SponsorHelper.cs
- CommandEventArgs.cs
- NetNamedPipeBinding.cs
- WebUtil.cs
- StaticExtensionConverter.cs
- HtmlTextBoxAdapter.cs
- ToolStripContentPanel.cs