Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / ndp / fx / src / DataEntity / System / Data / Metadata / MetadataArtifactLoaderXmlReaderWrapper.cs / 2 / MetadataArtifactLoaderXmlReaderWrapper.cs
//----------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//
// @owner [....]
//---------------------------------------------------------------------
using System.Collections.Generic;
using System.Collections;
using System.Diagnostics;
using System.Text;
using System.Xml;
using System.Security.Permissions;
namespace System.Data.Metadata.Edm
{
///
/// This class represents a wrapper around an XmlReader to be used to load metadata.
/// Note that the XmlReader object isn't created here -- the wrapper simply stores
/// a reference to it -- therefore we do not Close() the reader when we Dispose()
/// the wrapper, i.e., Dispose() is a no-op.
///
internal class MetadataArtifactLoaderXmlReaderWrapper : MetadataArtifactLoader, IComparable
{
private readonly XmlReader _reader = null;
private readonly string _resourceUri = null;
///
/// Constructor - saves off the XmlReader in a private data field
///
/// The path to the resource to load
public MetadataArtifactLoaderXmlReaderWrapper(XmlReader xmlReader)
{
_reader = xmlReader;
_resourceUri = xmlReader.BaseURI;
}
public override string Path
{
get
{
if (string.IsNullOrEmpty(this._resourceUri))
{
return string.Empty;
}
else
{
return this._resourceUri;
}
}
}
///
/// Implementation of IComparable.CompareTo()
///
/// The object to compare to
/// 0 if the loaders are "equal" (i.e., have the same _path value)
public int CompareTo(object obj)
{
MetadataArtifactLoaderXmlReaderWrapper loader = obj as MetadataArtifactLoaderXmlReaderWrapper;
if (loader != null)
{
if (Object.ReferenceEquals(this._reader, loader._reader))
{
return 0;
}
else
{
return -1;
}
}
Debug.Assert(false, "object is not a MetadataArtifactLoaderXmlReaderWrapper");
return -1;
}
///
/// Equals() returns true if the objects have the same _path value
///
/// The object to compare to
/// true if the objects have the same _path value
public override bool Equals(object obj)
{
return this.CompareTo(obj) == 0;
}
///
/// GetHashCode override that defers the result to the _path member variable.
///
///
public override int GetHashCode()
{
return _reader.GetHashCode();
}
public override void CollectFilePermissionPaths(List paths, DataSpace spaceToGet)
{
// no op
}
///
/// 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();
if (MetadataArtifactLoader.IsArtifactOfDataSpace(Path, spaceToGet))
{
list.Add(Path);
}
return list;
}
///
/// Get paths to all artifacts
///
/// A List of strings identifying paths to all resources
public override List GetPaths()
{
return new List(new string[] { Path });
}
///
/// Get XmlReaders for all resources
///
/// A List of XmlReaders for all resources
public override List GetReaders(Dictionary sourceDictionary)
{
List list = new List();
list.Add(this._reader);
if (sourceDictionary != null)
{
sourceDictionary.Add(this, _reader);
}
return list;
}
///
/// Create and return an XmlReader around the resource represented by this instance
/// if it is of the requested DataSpace type.
///
/// The DataSpace corresponding to the requested artifacts
/// A List of XmlReader objects
public override List CreateReaders(DataSpace spaceToGet)
{
List list = new List();
if (MetadataArtifactLoader.IsArtifactOfDataSpace(Path, spaceToGet))
{
list.Add(_reader);
}
return list;
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//----------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//
// @owner [....]
//---------------------------------------------------------------------
using System.Collections.Generic;
using System.Collections;
using System.Diagnostics;
using System.Text;
using System.Xml;
using System.Security.Permissions;
namespace System.Data.Metadata.Edm
{
///
/// This class represents a wrapper around an XmlReader to be used to load metadata.
/// Note that the XmlReader object isn't created here -- the wrapper simply stores
/// a reference to it -- therefore we do not Close() the reader when we Dispose()
/// the wrapper, i.e., Dispose() is a no-op.
///
internal class MetadataArtifactLoaderXmlReaderWrapper : MetadataArtifactLoader, IComparable
{
private readonly XmlReader _reader = null;
private readonly string _resourceUri = null;
///
/// Constructor - saves off the XmlReader in a private data field
///
/// The path to the resource to load
public MetadataArtifactLoaderXmlReaderWrapper(XmlReader xmlReader)
{
_reader = xmlReader;
_resourceUri = xmlReader.BaseURI;
}
public override string Path
{
get
{
if (string.IsNullOrEmpty(this._resourceUri))
{
return string.Empty;
}
else
{
return this._resourceUri;
}
}
}
///
/// Implementation of IComparable.CompareTo()
///
/// The object to compare to
/// 0 if the loaders are "equal" (i.e., have the same _path value)
public int CompareTo(object obj)
{
MetadataArtifactLoaderXmlReaderWrapper loader = obj as MetadataArtifactLoaderXmlReaderWrapper;
if (loader != null)
{
if (Object.ReferenceEquals(this._reader, loader._reader))
{
return 0;
}
else
{
return -1;
}
}
Debug.Assert(false, "object is not a MetadataArtifactLoaderXmlReaderWrapper");
return -1;
}
///
/// Equals() returns true if the objects have the same _path value
///
/// The object to compare to
/// true if the objects have the same _path value
public override bool Equals(object obj)
{
return this.CompareTo(obj) == 0;
}
///
/// GetHashCode override that defers the result to the _path member variable.
///
///
public override int GetHashCode()
{
return _reader.GetHashCode();
}
public override void CollectFilePermissionPaths(List paths, DataSpace spaceToGet)
{
// no op
}
///
/// 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();
if (MetadataArtifactLoader.IsArtifactOfDataSpace(Path, spaceToGet))
{
list.Add(Path);
}
return list;
}
///
/// Get paths to all artifacts
///
/// A List of strings identifying paths to all resources
public override List GetPaths()
{
return new List(new string[] { Path });
}
///
/// Get XmlReaders for all resources
///
/// A List of XmlReaders for all resources
public override List GetReaders(Dictionary sourceDictionary)
{
List list = new List();
list.Add(this._reader);
if (sourceDictionary != null)
{
sourceDictionary.Add(this, _reader);
}
return list;
}
///
/// Create and return an XmlReader around the resource represented by this instance
/// if it is of the requested DataSpace type.
///
/// The DataSpace corresponding to the requested artifacts
/// A List of XmlReader objects
public override List CreateReaders(DataSpace spaceToGet)
{
List list = new List();
if (MetadataArtifactLoader.IsArtifactOfDataSpace(Path, spaceToGet))
{
list.Add(_reader);
}
return list;
}
}
}
// 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
- DbConvert.cs
- PathFigureCollection.cs
- Bezier.cs
- ComponentDispatcherThread.cs
- DataGridViewCellParsingEventArgs.cs
- TransformGroup.cs
- CustomPopupPlacement.cs
- MetadataCache.cs
- TrackBarDesigner.cs
- ThumbButtonInfoCollection.cs
- GridViewColumn.cs
- CodeAccessPermission.cs
- StreamReader.cs
- EntitySetBase.cs
- FillErrorEventArgs.cs
- XamlPointCollectionSerializer.cs
- XmlSchemaAppInfo.cs
- CapabilitiesSection.cs
- ControlAdapter.cs
- Scene3D.cs
- LicenseProviderAttribute.cs
- NavigationService.cs
- WebPageTraceListener.cs
- EntityDataSourceSelectingEventArgs.cs
- ValidationErrorCollection.cs
- TraceListeners.cs
- Parser.cs
- selecteditemcollection.cs
- DateTimeValueSerializerContext.cs
- ConfigXmlWhitespace.cs
- HostDesigntimeLicenseContext.cs
- LinearGradientBrush.cs
- ExtentJoinTreeNode.cs
- MethodSignatureGenerator.cs
- ConditionalDesigner.cs
- ListControl.cs
- SwitchLevelAttribute.cs
- MultiBinding.cs
- SqlParameterCollection.cs
- ReflectTypeDescriptionProvider.cs
- Size3D.cs
- FocusChangedEventArgs.cs
- ToolStripSystemRenderer.cs
- UIInitializationException.cs
- QueryReaderSettings.cs
- SourceFileBuildProvider.cs
- MetadataFile.cs
- CannotUnloadAppDomainException.cs
- EventLogTraceListener.cs
- LabelDesigner.cs
- CodeSubDirectoriesCollection.cs
- HttpChannelListener.cs
- BitmapCodecInfoInternal.cs
- ButtonColumn.cs
- DynamicValidatorEventArgs.cs
- TransformedBitmap.cs
- _ListenerAsyncResult.cs
- _UriTypeConverter.cs
- AnchorEditor.cs
- DesignerTransaction.cs
- BooleanToVisibilityConverter.cs
- PathSegment.cs
- Membership.cs
- OletxResourceManager.cs
- TreeNodeStyleCollectionEditor.cs
- PropertyPathConverter.cs
- BinaryObjectInfo.cs
- StorageAssociationSetMapping.cs
- LexicalChunk.cs
- XamlPathDataSerializer.cs
- GenericPrincipal.cs
- MenuCommand.cs
- PartManifestEntry.cs
- SplayTreeNode.cs
- ParagraphVisual.cs
- TransactionState.cs
- CompilationUtil.cs
- RawStylusInputReport.cs
- ConfigXmlAttribute.cs
- DataGridViewCellStyleBuilderDialog.cs
- RijndaelManaged.cs
- WorkflowServiceBuildProvider.cs
- WpfWebRequestHelper.cs
- RenderData.cs
- XmlAnyElementAttribute.cs
- PropertyItemInternal.cs
- CheckBox.cs
- StringExpressionSet.cs
- ECDiffieHellmanPublicKey.cs
- Fault.cs
- xdrvalidator.cs
- TypeGeneratedEventArgs.cs
- CodeDomConfigurationHandler.cs
- EdgeModeValidation.cs
- XPathNode.cs
- DataGrid.cs
- PointLightBase.cs
- TranslateTransform3D.cs
- XmlTextReaderImpl.cs
- SqlRewriteScalarSubqueries.cs