#region License
/*
* Copyright 2002-2005 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#endregion
#region Imports
#endregion
namespace Spring.Core.IO{
/// <summary>
/// Describes an object that can load
/// <see cref="Spring.Core.IO.IResource"/>s.
/// </summary>
/// <remarks>
/// <p>
/// An <see cref="Spring.Context.IApplicationContext"/> implementation is
/// generally required to support the functionality described by this
/// interface.
/// </p>
/// <p>
/// The <see cref="Spring.Core.IO.ConfigurableResourceLoader"/> class is a
/// standalone implementation that is usable outside an
/// <see cref="Spring.Context.IApplicationContext"/>; the aforementioned
/// class is also used by the
/// <see cref="Spring.Core.IO.ResourceConverter"/> class.
/// </p>
/// </remarks>
/// <author>Juergen Hoeller</author>
/// <author>Mark Pollack (.NET)</author>
/// <seealso cref="Spring.Core.IO.IResource"/>
/// <seealso cref="Spring.Core.IO.ResourceConverter"/>
/// <seealso cref="Spring.Core.IO.ConfigurableResourceLoader"/>
public interface IResourceLoader
{
/// <summary>
/// Return an <see cref="Spring.Core.IO.IResource"/> handle for the
/// specified resource.
/// </summary>
/// <remarks>
/// <p>
/// The handle should always be a reusable resource descriptor; this
/// allows one to make repeated calls to the underlying
/// <see cref="Spring.Core.IO.IInputStreamSource.InputStream"/>.
/// </p>
/// <p>
/// <ul>
/// <li>
/// <b>Must</b> support fully qualified URLs, e.g. "file:C:/test.dat".
/// </li>
/// <li>
/// Should support relative file paths, e.g. "test.dat" (this will be
/// implementation-specific, typically provided by an
/// <see cref="Spring.Context.IApplicationContext"/> implementation).
/// </li>
/// </ul>
/// </p>
/// <note>
/// An <see cref="Spring.Core.IO.IResource"/> handle does not imply an
/// existing resource; you need to check the value of an
/// <see cref="Spring.Core.IO.IResource"/>'s
/// <see cref="Spring.Core.IO.IResource.Exists"/> property to determine
/// conclusively whether or not the resource actually exists.
/// </note>
/// </remarks>
/// <param name="location">The resource location.</param>
/// <returns>
/// An appropriate <see cref="Spring.Core.IO.IResource"/> handle.
/// </returns>
/// <seealso cref="Spring.Core.IO.IResource"/>
/// <seealso cref="Spring.Core.IO.IResource.Exists"/>
/// <seealso cref="Spring.Context.IApplicationContext"/>
IResource GetResource(string location);
}
}
|