/*
 * RegsubClientData.cs --
 *
 * Copyright (c) 2007-2012 by Joe Mistachkin.  All rights reserved.
 *
 * See the file "license.terms" for information on usage and redistribution of
 * this file, and for a DISCLAIMER OF ALL WARRANTIES.
 *
 * RCS: @(#) $Id: $
 */

using Eagle._Attributes;
using Eagle._Components.Public;
using Eagle._Interfaces.Public;

namespace Eagle._Components.Private
{
    [ObjectId("9ed12565-e6f5-467e-aa35-43aa7ae02288")]
    internal sealed class RegsubClientData : ClientData
    {
        public RegsubClientData(
            object data
            )
            : base(data)
        {
            // do nothing.
        }

        ///////////////////////////////////////////////////////////////////////

        public RegsubClientData(
            object data,
            string pattern,
            string input,
            string replacement,
            string text,
            IScriptLocation textLocation,
            int count,
            bool quote,
            bool args,
            bool strict
            )
            : this(data)
        {
            this.pattern = pattern;
            this.input = input;
            this.replacement = replacement;
            this.text = text;
            this.textLocation = textLocation;
            this.count = count;
            this.quote = quote;
            this.args = args;
            this.strict = strict;
        }

        ///////////////////////////////////////////////////////////////////////

        private string pattern;
        public string Pattern
        {
            get { return pattern; }
            set { pattern = value; }
        }

        ///////////////////////////////////////////////////////////////////////

        private string input;
        public string Input
        {
            get { return input; }
            set { input = value; }
        }

        ///////////////////////////////////////////////////////////////////////

        private string replacement;
        public string Replacement
        {
            get { return replacement; }
            set { replacement = value; }
        }

        ///////////////////////////////////////////////////////////////////////

        private string text;
        public string Text
        {
            get { return text; }
            set { text = value; }
        }

        ///////////////////////////////////////////////////////////////////////

        private IScriptLocation textLocation;
        public IScriptLocation TextLocation
        {
            get { return textLocation; }
            set { textLocation = value; }
        }

        ///////////////////////////////////////////////////////////////////////

        private int count;
        public int Count
        {
            get { return count; }
            set { count = value; }
        }

        ///////////////////////////////////////////////////////////////////////

        private bool quote;
        public bool Quote
        {
            get { return quote; }
            set { quote = value; }
        }

        ///////////////////////////////////////////////////////////////////////

        private bool args;
        public bool Args
        {
            get { return args; }
            set { args = value; }
        }

        ///////////////////////////////////////////////////////////////////////

        private bool strict;
        public bool Strict
        {
            get { return strict; }
            set { strict = value; }
        }
    }
}
