﻿/*This file is part of Grindstone-Unit.
  Copyright 2014 Stephane Aubry. Email address: saubry@japotrad.com

  Grindstone-Unit is free software: you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation, either version 3 of the License, or
  (at your option) any later version.

  Grindstone-Unit is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.

  You should have received a copy of the GNU General Public License
  along with Grindstone-Unit.  If not, see <http://www.gnu.org/licenses/>. */

using Plossum.CommandLine;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace GSUnit
{
#if FULLEDITION
    [CommandLineManager(ApplicationName = "GSUnit Full Edition",
    Copyright = "Copyright (c) Stephane Aubry", EnabledOptionStyles = OptionStyles.Windows)]
#else
   [CommandLineManager(ApplicationName = "GSUnit Evaluation Edition" ,
    Copyright = "Copyright (c) Stephane Aubry", EnabledOptionStyles=OptionStyles.Windows)]
#endif
    // From Plossum Library
    public class Options
    {
        [CommandLineOption(Description = "The path of the database.")]
        public string D
        {
            get { return db; }
            set { db = value; }
        }
        [CommandLineOption(Description = "Displays this help text")]
        public bool H = false;

        [CommandLineOption(Description = "The password of the database.")]
        public string P
        {
            get { return pwd; }
            set
            {
                if (String.IsNullOrEmpty(value))
                    throw new InvalidOptionValueException("The password must not be empty", false);
                pwd = value;
            }
        }
        private string db;
        private string pwd;

        [CommandLineOption(Description = "Print details during execution.")]
        public bool V { get; set; }

    }
    
}
