Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / ndp / fx / src / DataEntity / System / Data / Metadata / MetadataArtifactLoaderXmlReaderWrapper.cs / 1 / 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
- ThrowOnMultipleAssignment.cs
- SBCSCodePageEncoding.cs
- AdapterUtil.cs
- HtmlLabelAdapter.cs
- MatrixCamera.cs
- SecurityException.cs
- CodeCommentStatement.cs
- ExpandableObjectConverter.cs
- XmlElementAttributes.cs
- SelectingProviderEventArgs.cs
- Container.cs
- CachedPathData.cs
- RSACryptoServiceProvider.cs
- PageClientProxyGenerator.cs
- BindingSourceDesigner.cs
- ProcessRequestAsyncResult.cs
- PackWebRequestFactory.cs
- CodeGeneratorOptions.cs
- BackgroundFormatInfo.cs
- LinqDataSource.cs
- BaseParaClient.cs
- SqlPersonalizationProvider.cs
- TypeForwardedFromAttribute.cs
- Task.cs
- TileBrush.cs
- TableItemPattern.cs
- ReadOnlyCollection.cs
- AnnouncementSendsAsyncResult.cs
- XPathExpr.cs
- SourceElementsCollection.cs
- BasicViewGenerator.cs
- ReliableMessagingHelpers.cs
- OdbcConnectionOpen.cs
- _Win32.cs
- DocumentGrid.cs
- DataGridViewMethods.cs
- Keywords.cs
- XmlDataDocument.cs
- FileSystemInfo.cs
- ConfigurationStrings.cs
- DataGridPagerStyle.cs
- TraceXPathNavigator.cs
- BitmapEffectInput.cs
- AnimationStorage.cs
- WebMessageEncodingBindingElement.cs
- DurableEnlistmentState.cs
- MenuItem.cs
- XmlUtil.cs
- HtmlControlPersistable.cs
- StructuralObject.cs
- XsltOutput.cs
- ConfigXmlWhitespace.cs
- OdbcTransaction.cs
- WebPartEditVerb.cs
- ValidationErrorCollection.cs
- Brush.cs
- EntityDesignerBuildProvider.cs
- ImplicitInputBrush.cs
- StyleCollection.cs
- DummyDataSource.cs
- ComponentResourceManager.cs
- FunctionQuery.cs
- ConstantCheck.cs
- HealthMonitoringSection.cs
- SystemException.cs
- ExecutionEngineException.cs
- MappingException.cs
- WebBrowserNavigatingEventHandler.cs
- BufferBuilder.cs
- Repeater.cs
- CompositeDesignerAccessibleObject.cs
- BStrWrapper.cs
- UpdatePanelTriggerCollection.cs
- SqlConnectionHelper.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- AuthenticationService.cs
- QilInvoke.cs
- SqlGatherProducedAliases.cs
- FieldBuilder.cs
- ExecutionEngineException.cs
- BufferModeSettings.cs
- ErrorRuntimeConfig.cs
- AssociationType.cs
- ToolStripPanelCell.cs
- MultiPageTextView.cs
- PersonalizationState.cs
- DataGridViewRowCollection.cs
- StaticFileHandler.cs
- ToolStripItemImageRenderEventArgs.cs
- ConstraintConverter.cs
- xmlsaver.cs
- UpdateDelegates.Generated.cs
- UnknownBitmapEncoder.cs
- ConnectionManagementSection.cs
- ContentPosition.cs
- HostingEnvironmentWrapper.cs
- MenuBindingsEditor.cs
- PartialTrustVisibleAssembliesSection.cs
- SQLCharsStorage.cs
- RbTree.cs