Author: husted Date: Mon Apr 11 17:32:38 2005 New Revision: 160993 URL: http://svn.apache.org/viewcvs?view=rev&rev=160993 Log: Code reformatting (courtesy of JetBrains Resharper).
Modified: struts/sandbox/trunk/overdrive/Nexus/Core/AssemblyInfo.cs struts/sandbox/trunk/overdrive/Nexus/Core/IController.cs struts/sandbox/trunk/overdrive/Nexus/Core/IRequestCommand.cs struts/sandbox/trunk/overdrive/Nexus/Core/IRequestContext.cs struts/sandbox/trunk/overdrive/Nexus/Core/RequestCommand.cs struts/sandbox/trunk/overdrive/Nexus/Core/RequestContext.cs struts/sandbox/trunk/overdrive/Nexus/Core/Tokens.cs struts/sandbox/trunk/overdrive/Nexus/Extras/AssemblyInfo.cs struts/sandbox/trunk/overdrive/Nexus/Extras/Spring/Controller.cs struts/sandbox/trunk/overdrive/Nexus/Extras/Spring/Objects.cs struts/sandbox/trunk/overdrive/Nexus/Test/App.cs struts/sandbox/trunk/overdrive/Nexus/Test/AssemblyInfo.cs struts/sandbox/trunk/overdrive/Nexus/Test/BaseNexusTest.cs struts/sandbox/trunk/overdrive/Nexus/Test/Commands/ListAll.cs struts/sandbox/trunk/overdrive/Nexus/Test/ControllerTest.cs struts/sandbox/trunk/overdrive/Nexus/Test/RequestContextTest.cs struts/sandbox/trunk/overdrive/Nexus/Test/Test.csproj Modified: struts/sandbox/trunk/overdrive/Nexus/Core/AssemblyInfo.cs URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Core/AssemblyInfo.cs?view=diff&r1=160992&r2=160993 ============================================================================== --- struts/sandbox/trunk/overdrive/Nexus/Core/AssemblyInfo.cs (original) +++ struts/sandbox/trunk/overdrive/Nexus/Core/AssemblyInfo.cs Mon Apr 11 17:32:38 2005 @@ -1,19 +1,17 @@ using System.Reflection; -using System.Runtime.CompilerServices; - // // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information // associated with an assembly. // -[assembly: AssemblyTitle("")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("")] -[assembly: AssemblyCopyright("")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] +[assembly : AssemblyTitle ("")] +[assembly : AssemblyDescription ("")] +[assembly : AssemblyConfiguration ("")] +[assembly : AssemblyCompany ("")] +[assembly : AssemblyProduct ("")] +[assembly : AssemblyCopyright ("")] +[assembly : AssemblyTrademark ("")] +[assembly : AssemblyCulture ("")] // // Version information for an assembly consists of the following four values: @@ -26,7 +24,7 @@ // You can specify all the values or you can default the Revision and Build Numbers // by using the '*' as shown below: -[assembly: AssemblyVersion("1.0.*")] +[assembly : AssemblyVersion ("1.0.*")] // // In order to sign your assembly you must specify a key to use. Refer to the @@ -53,6 +51,6 @@ // (*) Delay Signing is an advanced option - see the Microsoft .NET Framework // documentation for more information on this. // -[assembly: AssemblyDelaySign(false)] -[assembly: AssemblyKeyFile("")] -[assembly: AssemblyKeyName("")] +[assembly : AssemblyDelaySign (false)] +[assembly : AssemblyKeyFile ("")] +[assembly : AssemblyKeyName ("")] \ No newline at end of file Modified: struts/sandbox/trunk/overdrive/Nexus/Core/IController.cs URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Core/IController.cs?view=diff&r1=160992&r2=160993 ============================================================================== --- struts/sandbox/trunk/overdrive/Nexus/Core/IController.cs (original) +++ struts/sandbox/trunk/overdrive/Nexus/Core/IController.cs Mon Apr 11 17:32:38 2005 @@ -1,4 +1,4 @@ -/* + /* * Copyright 2005 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + namespace Nexus.Core { /// <summary> @@ -25,7 +26,6 @@ /// </p></remarks> public interface IController { - /// <summary> /// Obtain object instance for name. /// </summary> @@ -42,4 +42,4 @@ /// IRequestContext ExecuteContext (string command); } -} +} \ No newline at end of file Modified: struts/sandbox/trunk/overdrive/Nexus/Core/IRequestCommand.cs URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Core/IRequestCommand.cs?view=diff&r1=160992&r2=160993 ============================================================================== --- struts/sandbox/trunk/overdrive/Nexus/Core/IRequestCommand.cs (original) +++ struts/sandbox/trunk/overdrive/Nexus/Core/IRequestCommand.cs Mon Apr 11 17:32:38 2005 @@ -28,7 +28,6 @@ /// </remarks> public interface IRequestCommand : ICommand { - /// <summary> /// An identifier for this Command. /// </summary> @@ -36,7 +35,7 @@ /// Corresponds to the Command property of IHelperContext. /// </remarks> /// <returns>An identifier for this Command.</returns> - string ID {get; set;} + string ID { get; set; } /// <summary> /// Factory method to provide an empty context that can be used with the Command instance. @@ -52,6 +51,6 @@ /// </p></remarks> /// <param name="context">Context to process.</param> bool RequestExecute (IRequestContext context); - + } -} +} \ No newline at end of file Modified: struts/sandbox/trunk/overdrive/Nexus/Core/IRequestContext.cs URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Core/IRequestContext.cs?view=diff&r1=160992&r2=160993 ============================================================================== --- struts/sandbox/trunk/overdrive/Nexus/Core/IRequestContext.cs (original) +++ struts/sandbox/trunk/overdrive/Nexus/Core/IRequestContext.cs Mon Apr 11 17:32:38 2005 @@ -30,7 +30,6 @@ /// </remarks> public interface IRequestContext : IContext { - /// <summary> /// Identifier for the top-level Command (or Chain) processing this Context. /// </summary> @@ -103,7 +102,7 @@ /// TODO: Refactor as NameValueCollection ? /// </remark> IContext Errors { get; set; } - + /// <summary> /// Add an error message under the "global" key. /// </summary> @@ -137,4 +136,4 @@ /// <returns>True if there are no faults or errors.</returns> bool IsNominal { get; } } -} +} \ No newline at end of file Modified: struts/sandbox/trunk/overdrive/Nexus/Core/RequestCommand.cs URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Core/RequestCommand.cs?view=diff&r1=160992&r2=160993 ============================================================================== --- struts/sandbox/trunk/overdrive/Nexus/Core/RequestCommand.cs (original) +++ struts/sandbox/trunk/overdrive/Nexus/Core/RequestCommand.cs Mon Apr 11 17:32:38 2005 @@ -22,7 +22,6 @@ /// </summary> public abstract class RequestCommand : IRequestCommand { - /// <summary> /// Return STOP if a Command is part of a Chain. /// </summary> @@ -46,7 +45,7 @@ return new RequestContext (ID); } - public abstract bool RequestExecute(IRequestContext context); + public abstract bool RequestExecute (IRequestContext context); public virtual bool Execute (IContext _context) { @@ -54,4 +53,4 @@ return RequestExecute (context); } } -} +} \ No newline at end of file Modified: struts/sandbox/trunk/overdrive/Nexus/Core/RequestContext.cs URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Core/RequestContext.cs?view=diff&r1=160992&r2=160993 ============================================================================== --- struts/sandbox/trunk/overdrive/Nexus/Core/RequestContext.cs (original) +++ struts/sandbox/trunk/overdrive/Nexus/Core/RequestContext.cs Mon Apr 11 17:32:38 2005 @@ -24,7 +24,6 @@ /// </summary> public class RequestContext : Context, IRequestContext { - /// <summary> /// Convenience constructor to set Command on instantiation. /// </summary> @@ -56,10 +55,7 @@ public bool HasOutcome { - get - { - return Contains (Command); - } + get { return Contains (Command); } } public object Outcome @@ -68,7 +64,7 @@ set { this [Command] = value; } } - public Agility.Core.IContext Errors + public IContext Errors { get { return this [Tokens.ERRORS] as IContext; } set { this [Tokens.ERRORS] = value; } @@ -107,7 +103,7 @@ public bool HasErrors { - get{return this.ContainsKey (Tokens.ERRORS);} + get { return this.ContainsKey (Tokens.ERRORS); } } public Exception Fault @@ -123,16 +119,13 @@ public bool HasFault { - get{return this.ContainsKey (Tokens.FAULT);} + get { return this.ContainsKey (Tokens.FAULT); } } public bool IsNominal { - get - { - return (!HasErrors && !HasFault); - } + get { return (!HasErrors && !HasFault); } } } -} +} \ No newline at end of file Modified: struts/sandbox/trunk/overdrive/Nexus/Core/Tokens.cs URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Core/Tokens.cs?view=diff&r1=160992&r2=160993 ============================================================================== --- struts/sandbox/trunk/overdrive/Nexus/Core/Tokens.cs (original) +++ struts/sandbox/trunk/overdrive/Nexus/Core/Tokens.cs Mon Apr 11 17:32:38 2005 @@ -1,4 +1,4 @@ -/* + /* * Copyright 2005 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + namespace Nexus.Core { /// <summary> @@ -20,7 +21,7 @@ /// </summary> public class Tokens { - private Tokens() + private Tokens () { // No need to construct static helper class } @@ -52,4 +53,4 @@ } -} +} \ No newline at end of file Modified: struts/sandbox/trunk/overdrive/Nexus/Extras/AssemblyInfo.cs URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Extras/AssemblyInfo.cs?view=diff&r1=160992&r2=160993 ============================================================================== --- struts/sandbox/trunk/overdrive/Nexus/Extras/AssemblyInfo.cs (original) +++ struts/sandbox/trunk/overdrive/Nexus/Extras/AssemblyInfo.cs Mon Apr 11 17:32:38 2005 @@ -1,19 +1,17 @@ using System.Reflection; -using System.Runtime.CompilerServices; - // // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information // associated with an assembly. // -[assembly: AssemblyTitle("")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("")] -[assembly: AssemblyCopyright("")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] +[assembly : AssemblyTitle ("")] +[assembly : AssemblyDescription ("")] +[assembly : AssemblyConfiguration ("")] +[assembly : AssemblyCompany ("")] +[assembly : AssemblyProduct ("")] +[assembly : AssemblyCopyright ("")] +[assembly : AssemblyTrademark ("")] +[assembly : AssemblyCulture ("")] // // Version information for an assembly consists of the following four values: @@ -26,7 +24,7 @@ // You can specify all the values or you can default the Revision and Build Numbers // by using the '*' as shown below: -[assembly: AssemblyVersion("1.0.*")] +[assembly : AssemblyVersion ("1.0.*")] // // In order to sign your assembly you must specify a key to use. Refer to the @@ -53,6 +51,6 @@ // (*) Delay Signing is an advanced option - see the Microsoft .NET Framework // documentation for more information on this. // -[assembly: AssemblyDelaySign(false)] -[assembly: AssemblyKeyFile("")] -[assembly: AssemblyKeyName("")] +[assembly : AssemblyDelaySign (false)] +[assembly : AssemblyKeyFile ("")] +[assembly : AssemblyKeyName ("")] \ No newline at end of file Modified: struts/sandbox/trunk/overdrive/Nexus/Extras/Spring/Controller.cs URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Extras/Spring/Controller.cs?view=diff&r1=160992&r2=160993 ============================================================================== --- struts/sandbox/trunk/overdrive/Nexus/Extras/Spring/Controller.cs (original) +++ struts/sandbox/trunk/overdrive/Nexus/Extras/Spring/Controller.cs Mon Apr 11 17:32:38 2005 @@ -17,7 +17,7 @@ using Nexus.Core; using Spring.Context; -namespace Agility.Extras.Spring +namespace Nexus.Extras.Spring { /// <summary> /// Concrete IController implementation using Spring as an IOC container. Modified: struts/sandbox/trunk/overdrive/Nexus/Extras/Spring/Objects.cs URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Extras/Spring/Objects.cs?view=diff&r1=160992&r2=160993 ============================================================================== --- struts/sandbox/trunk/overdrive/Nexus/Extras/Spring/Objects.cs (original) +++ struts/sandbox/trunk/overdrive/Nexus/Extras/Spring/Objects.cs Mon Apr 11 17:32:38 2005 @@ -18,19 +18,19 @@ using Spring.Context.Support; using Spring.Objects.Factory.Xml; -namespace Agility.Extras.Spring +namespace Nexus.Extras.Spring { /// <summary> /// A singleton configuration loader for Spring. /// </summary> public class Objects { - // Controller: Obviously, this should be configurable, like iBATIS. private static string[] files = { + "/Resources/Command/AppConfig.xml", "/Resources/Command/Catalog.xml" - }; + }; private Objects () { Modified: struts/sandbox/trunk/overdrive/Nexus/Test/App.cs URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Test/App.cs?view=diff&r1=160992&r2=160993 ============================================================================== --- struts/sandbox/trunk/overdrive/Nexus/Test/App.cs (original) +++ struts/sandbox/trunk/overdrive/Nexus/Test/App.cs Mon Apr 11 17:32:38 2005 @@ -1,4 +1,4 @@ -/* + /* * Copyright 2005 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + namespace Nexus.Core { /// <summary> @@ -20,7 +21,7 @@ /// </summary> public class App { - private App() + private App () { // No need to construct static helper class } @@ -31,4 +32,4 @@ public const string LIST_ALL = "ListAll"; } -} +} \ No newline at end of file Modified: struts/sandbox/trunk/overdrive/Nexus/Test/AssemblyInfo.cs URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Test/AssemblyInfo.cs?view=diff&r1=160992&r2=160993 ============================================================================== --- struts/sandbox/trunk/overdrive/Nexus/Test/AssemblyInfo.cs (original) +++ struts/sandbox/trunk/overdrive/Nexus/Test/AssemblyInfo.cs Mon Apr 11 17:32:38 2005 @@ -1,19 +1,17 @@ using System.Reflection; -using System.Runtime.CompilerServices; - // // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information // associated with an assembly. // -[assembly: AssemblyTitle("")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("")] -[assembly: AssemblyCopyright("")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] +[assembly : AssemblyTitle ("")] +[assembly : AssemblyDescription ("")] +[assembly : AssemblyConfiguration ("")] +[assembly : AssemblyCompany ("")] +[assembly : AssemblyProduct ("")] +[assembly : AssemblyCopyright ("")] +[assembly : AssemblyTrademark ("")] +[assembly : AssemblyCulture ("")] // // Version information for an assembly consists of the following four values: @@ -26,7 +24,7 @@ // You can specify all the values or you can default the Revision and Build Numbers // by using the '*' as shown below: -[assembly: AssemblyVersion("1.0.*")] +[assembly : AssemblyVersion ("1.0.*")] // // In order to sign your assembly you must specify a key to use. Refer to the @@ -53,6 +51,6 @@ // (*) Delay Signing is an advanced option - see the Microsoft .NET Framework // documentation for more information on this. // -[assembly: AssemblyDelaySign(false)] -[assembly: AssemblyKeyFile("")] -[assembly: AssemblyKeyName("")] +[assembly : AssemblyDelaySign (false)] +[assembly : AssemblyKeyFile ("")] +[assembly : AssemblyKeyName ("")] \ No newline at end of file Modified: struts/sandbox/trunk/overdrive/Nexus/Test/BaseNexusTest.cs URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Test/BaseNexusTest.cs?view=diff&r1=160992&r2=160993 ============================================================================== --- struts/sandbox/trunk/overdrive/Nexus/Test/BaseNexusTest.cs (original) +++ struts/sandbox/trunk/overdrive/Nexus/Test/BaseNexusTest.cs Mon Apr 11 17:32:38 2005 @@ -16,7 +16,7 @@ using System.Collections; using System.Text; using Agility.Core; -using Agility.Extras.Spring; +using Nexus.Extras.Spring; using NUnit.Framework; using Spring.Context; @@ -72,4 +72,4 @@ } } } -} +} \ No newline at end of file Modified: struts/sandbox/trunk/overdrive/Nexus/Test/Commands/ListAll.cs URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Test/Commands/ListAll.cs?view=diff&r1=160992&r2=160993 ============================================================================== --- struts/sandbox/trunk/overdrive/Nexus/Test/Commands/ListAll.cs (original) +++ struts/sandbox/trunk/overdrive/Nexus/Test/Commands/ListAll.cs Mon Apr 11 17:32:38 2005 @@ -22,13 +22,12 @@ /// </summary> public class ListAll : RequestCommand { - public override bool RequestExecute (IRequestContext context) { // IList list = Mapper.Get ().QueryForList (ID, context); // Fake it: - IList list = new ArrayList(); - list.Add("data"); + IList list = new ArrayList (); + list.Add ("data"); context.Outcome = list; return CONTINUE; } Modified: struts/sandbox/trunk/overdrive/Nexus/Test/ControllerTest.cs URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Test/ControllerTest.cs?view=diff&r1=160992&r2=160993 ============================================================================== --- struts/sandbox/trunk/overdrive/Nexus/Test/ControllerTest.cs (original) +++ struts/sandbox/trunk/overdrive/Nexus/Test/ControllerTest.cs Mon Apr 11 17:32:38 2005 @@ -23,17 +23,16 @@ [TestFixture] public class ControllerTest : BaseNexusTest { - /// <summary> /// A simple "list all" command should return nominal with an outcome. /// </summary> [Test] - public void ExecuteContext() + public void ExecuteContext () { - IRequestContext context = controller.ExecuteContext(App.LIST_ALL); - AssertNominal(context); - Assert.IsTrue (context.IsNominal,"Expected nominal result."); - Assert.IsTrue(context.HasOutcome,"Expected outcome from command."); + IRequestContext context = controller.ExecuteContext (App.LIST_ALL); + AssertNominal (context); + Assert.IsTrue (context.IsNominal, "Expected nominal result."); + Assert.IsTrue (context.HasOutcome, "Expected outcome from command."); } } -} +} \ No newline at end of file Modified: struts/sandbox/trunk/overdrive/Nexus/Test/RequestContextTest.cs URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Test/RequestContextTest.cs?view=diff&r1=160992&r2=160993 ============================================================================== --- struts/sandbox/trunk/overdrive/Nexus/Test/RequestContextTest.cs (original) +++ struts/sandbox/trunk/overdrive/Nexus/Test/RequestContextTest.cs Mon Apr 11 17:32:38 2005 @@ -26,69 +26,68 @@ [TestFixture] public class RequestContextTest { - - IRequestContext context; - Exception fault; - IList list; + private IRequestContext context; + private Exception fault; + private IList list; /// <summary> /// Initialize private fields. /// </summary> [SetUp] - public void SetUp() + public void SetUp () { - context = new RequestContext(); + context = new RequestContext (); context.Command = "list_all"; - context.CommandBin = new ListAll(); - Assert.IsTrue (context.IsNominal,"Expected nominal state for a new IRequestContext."); - Assert.IsFalse(context.HasOutcome,"Expected no Outcome for a new IRequestContext."); - - fault = new ApplicationException("RequestContextTest"); - list = new ArrayList(); - list.Add("data"); + context.CommandBin = new ListAll (); + Assert.IsTrue (context.IsNominal, "Expected nominal state for a new IRequestContext."); + Assert.IsFalse (context.HasOutcome, "Expected no Outcome for a new IRequestContext."); + + fault = new ApplicationException ("RequestContextTest"); + list = new ArrayList (); + list.Add ("data"); } /// <summary> /// A IRequestContext is not nominal if an error is added. /// </summary> [Test] - public void IsNominal_Error() + public void IsNominal_Error () { - context.AddError("Business logic error"); - Assert.IsFalse(context.IsNominal,"Expected non-nominal state after adding error message."); + context.AddError ("Business logic error"); + Assert.IsFalse (context.IsNominal, "Expected non-nominal state after adding error message."); } /// <summary> /// A IRequestContext is not nominal is an Exception is set. /// </summary> [Test] - public void IsNominal_Fault() + public void IsNominal_Fault () { context.Fault = fault; - Assert.IsFalse(context.IsNominal,"Expected non-nominal state after setting Exception."); + Assert.IsFalse (context.IsNominal, "Expected non-nominal state after setting Exception."); } /// <summary> /// A IRequestContext is not nominal if multiple errors are added and an Exception is set. /// </summary> [Test] - public void IsNominal_Errors_and_Fault() + public void IsNominal_Errors_and_Fault () { - context.AddError("Business logic error"); - context.AddError("Business logic error 2"); + context.AddError ("Business logic error"); + context.AddError ("Business logic error 2"); context.Fault = fault; - Assert.IsFalse(context.IsNominal,"Expected non-nominal state after adding errors and Exception."); + Assert.IsFalse (context.IsNominal, "Expected non-nominal state after adding errors and Exception."); } /// <summary> /// If data is set to the Outcome property, HasOutcome is true. /// </summary> [Test] - public void HasOutcome() + public void HasOutcome () { context.Outcome = list; Assert.IsTrue (context.HasOutcome); - } + } } -} +} \ No newline at end of file Modified: struts/sandbox/trunk/overdrive/Nexus/Test/Test.csproj URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Test/Test.csproj?view=diff&r1=160992&r2=160993 ============================================================================== --- struts/sandbox/trunk/overdrive/Nexus/Test/Test.csproj (original) +++ struts/sandbox/trunk/overdrive/Nexus/Test/Test.csproj Mon Apr 11 17:32:38 2005 @@ -140,6 +140,10 @@ BuildAction = "Compile" /> <File + RelPath = "Resources\Command\AppConfig.xml" + BuildAction = "Content" + /> + <File RelPath = "Resources\Command\Catalog.xml" BuildAction = "Content" /> --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]