From 43f0c650c1388d7c2d91ea8faf3d6a0236887efd Mon Sep 17 00:00:00 2001 From: alcexhim Date: Wed, 14 May 2014 16:01:39 -0400 Subject: [PATCH] Internalized Accessor Open/Close methods --- .../UniversalEditor.Core/Accessor.cs | 19 +++++++++++++++++-- .../Accessors/FileAccessor.cs | 6 +++--- .../Accessors/MemoryAccessor.cs | 7 ++----- .../Accessors/StreamAccessor.cs | 7 ++----- .../Accessors/StringAccessor.cs | 7 ++----- 5 files changed, 26 insertions(+), 20 deletions(-) diff --git a/CSharp/Libraries/UniversalEditor.Core/Accessor.cs b/CSharp/Libraries/UniversalEditor.Core/Accessor.cs index a7342b0d..9cb3a1bc 100644 --- a/CSharp/Libraries/UniversalEditor.Core/Accessor.cs +++ b/CSharp/Libraries/UniversalEditor.Core/Accessor.cs @@ -47,8 +47,23 @@ namespace UniversalEditor private bool mvarIsOpen = false; public bool IsOpen { get { return mvarIsOpen; } protected set { mvarIsOpen = value; } } - public abstract void Open(); - public abstract void Close(); + public void Open() + { + if (mvarIsOpen) return; + + OpenInternal(); + mvarIsOpen = true; + } + public void Close() + { + if (!mvarIsOpen) return; + + CloseInternal(); + mvarIsOpen = false; + } + + protected abstract void OpenInternal(); + protected abstract void CloseInternal(); private Encoding mvarDefaultEncoding = Encoding.Default; /// diff --git a/CSharp/Libraries/UniversalEditor.Core/Accessors/FileAccessor.cs b/CSharp/Libraries/UniversalEditor.Core/Accessors/FileAccessor.cs index 515019e3..9e9442ab 100644 --- a/CSharp/Libraries/UniversalEditor.Core/Accessors/FileAccessor.cs +++ b/CSharp/Libraries/UniversalEditor.Core/Accessors/FileAccessor.cs @@ -88,9 +88,9 @@ namespace UniversalEditor.Accessors public void Open(string FileName) { mvarFileName = FileName; - Open(); + OpenInternal(); } - public override void Open() + protected override void OpenInternal() { System.IO.FileShare share = System.IO.FileShare.Read; System.IO.FileMode mode = System.IO.FileMode.OpenOrCreate; @@ -106,7 +106,7 @@ namespace UniversalEditor.Accessors mvarFileStream = System.IO.File.Open(mvarFileName, mode, access, share); } - public override void Close() + protected override void CloseInternal() { mvarFileStream.Close(); } diff --git a/CSharp/Libraries/UniversalEditor.Core/Accessors/MemoryAccessor.cs b/CSharp/Libraries/UniversalEditor.Core/Accessors/MemoryAccessor.cs index 52206bc7..6f2b4346 100644 --- a/CSharp/Libraries/UniversalEditor.Core/Accessors/MemoryAccessor.cs +++ b/CSharp/Libraries/UniversalEditor.Core/Accessors/MemoryAccessor.cs @@ -88,14 +88,11 @@ namespace UniversalEditor.Accessors return count; } - public override void Open() + protected override void OpenInternal() { - IsOpen = true; } - - public override void Close() + protected override void CloseInternal() { - IsOpen = false; } } } diff --git a/CSharp/Libraries/UniversalEditor.Core/Accessors/StreamAccessor.cs b/CSharp/Libraries/UniversalEditor.Core/Accessors/StreamAccessor.cs index 7d6f7438..990c958d 100644 --- a/CSharp/Libraries/UniversalEditor.Core/Accessors/StreamAccessor.cs +++ b/CSharp/Libraries/UniversalEditor.Core/Accessors/StreamAccessor.cs @@ -65,14 +65,11 @@ namespace UniversalEditor.Accessors return count; } - public override void Open() + protected override void OpenInternal() { - throw new NotImplementedException(); } - - public override void Close() + protected override void CloseInternal() { - mvarBaseStream.Close(); } } } diff --git a/CSharp/Libraries/UniversalEditor.Core/Accessors/StringAccessor.cs b/CSharp/Libraries/UniversalEditor.Core/Accessors/StringAccessor.cs index 5f79e71e..74b7ff30 100644 --- a/CSharp/Libraries/UniversalEditor.Core/Accessors/StringAccessor.cs +++ b/CSharp/Libraries/UniversalEditor.Core/Accessors/StringAccessor.cs @@ -98,14 +98,11 @@ namespace UniversalEditor.Accessors return count; } - public override void Open() + protected override void OpenInternal() { - IsOpen = true; } - - public override void Close() + protected override void CloseInternal() { - IsOpen = false; } } }