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
- HideDisabledControlAdapter.cs
- CompositionTarget.cs
- AppDomainProtocolHandler.cs
- DataTableTypeConverter.cs
- PrintPreviewControl.cs
- BaseDataBoundControl.cs
- TrackingServices.cs
- regiisutil.cs
- FocusChangedEventArgs.cs
- ImageField.cs
- TreeNodeCollectionEditor.cs
- RouteUrlExpressionBuilder.cs
- PathBox.cs
- WorkflowTransactionService.cs
- PolyBezierSegmentFigureLogic.cs
- AppDomain.cs
- AddInDeploymentState.cs
- Script.cs
- SafeSerializationManager.cs
- StubHelpers.cs
- DocumentXPathNavigator.cs
- QueryOptionExpression.cs
- XmlValueConverter.cs
- TypeElementCollection.cs
- WaitHandle.cs
- PrintPreviewDialog.cs
- remotingproxy.cs
- NotifyIcon.cs
- ConfigurationException.cs
- PostBackOptions.cs
- DynamicValidatorEventArgs.cs
- DefaultMemberAttribute.cs
- PathSegmentCollection.cs
- CachingHintValidation.cs
- WebConfigurationHost.cs
- SystemWebSectionGroup.cs
- ServiceDescription.cs
- DataColumnCollection.cs
- ILGenerator.cs
- FileRecordSequenceCompletedAsyncResult.cs
- SimpleMailWebEventProvider.cs
- SmiRequestExecutor.cs
- LineServicesRun.cs
- XmlSchemas.cs
- EmptyCollection.cs
- securitycriticaldataformultiplegetandset.cs
- ConfigurationSection.cs
- RelatedPropertyManager.cs
- XmlAttributeProperties.cs
- MobileCapabilities.cs
- DataViewManager.cs
- UrlPropertyAttribute.cs
- XmlLinkedNode.cs
- Triangle.cs
- SQLInt16.cs
- TextDecorationCollectionConverter.cs
- ByteStream.cs
- NGCSerializerAsync.cs
- UpdateCommandGenerator.cs
- Model3DGroup.cs
- DesignerVerbCollection.cs
- ConstNode.cs
- DictionaryItemsCollection.cs
- InvalidWMPVersionException.cs
- XmlRawWriter.cs
- XD.cs
- SerialErrors.cs
- PropertiesTab.cs
- KeyTime.cs
- PrintDialogException.cs
- BuildManager.cs
- PathSegmentCollection.cs
- XsltContext.cs
- NonDualMessageSecurityOverHttpElement.cs
- WebServiceEnumData.cs
- ServiceModelPerformanceCounters.cs
- AssemblyInfo.cs
- NavigationProperty.cs
- OleDbDataAdapter.cs
- TextServicesDisplayAttributePropertyRanges.cs
- Brush.cs
- SafeCertificateContext.cs
- PrintingPermission.cs
- ResourceManager.cs
- FakeModelPropertyImpl.cs
- SvcMapFile.cs
- ImageIndexConverter.cs
- EntitySqlException.cs
- OpenTypeCommon.cs
- RemotingServices.cs
- WebPartCollection.cs
- DataGridItem.cs
- _LazyAsyncResult.cs
- GridErrorDlg.cs
- DetailsViewUpdatedEventArgs.cs
- MatrixTransform.cs
- ColorConvertedBitmapExtension.cs
- ApplicationFileParser.cs
- __Error.cs
- HasCopySemanticsAttribute.cs