HamBook – Rev 54
?pathlinks?
using System;
namespace HamBook.Radios.Generic
{
public class ClarifierDirection
{
public ClarifierDirection(char symbol) : this()
{
Direction = Parse(symbol);
}
public ClarifierDirection(string symbol) : this()
{
Direction = Parse(symbol);
}
public ClarifierDirection()
{
}
public ClarifierDirection(ShiftDirection shiftDirection)
{
Direction = shiftDirection;
}
public ShiftDirection Direction { get; set; }
private static ShiftDirection Parse(char symbol)
{
switch (symbol)
{
case '+':
return ShiftDirection.PLUS_SHIFT;
case '-':
return ShiftDirection.MINUS_SHIFT;
default:
throw new ArgumentException();
}
}
private static ShiftDirection Parse(string symbol)
{
switch (symbol)
{
case "+":
return ShiftDirection.PLUS_SHIFT;
case "-":
return ShiftDirection.MINUS_SHIFT;
default:
throw new ArgumentException();
}
}
private char ToChar()
{
switch (Direction)
{
case ShiftDirection.PLUS_SHIFT:
return '+';
case ShiftDirection.MINUS_SHIFT:
return '-';
default:
throw new ArgumentException();
}
}
public static implicit operator ClarifierDirection(char symbol)
{
return new ClarifierDirection(symbol);
}
public static implicit operator char(ClarifierDirection clarifierDirection)
{
return clarifierDirection.ToChar();
}
public static implicit operator ClarifierDirection(string symbol)
{
return new ClarifierDirection(symbol);
}
public static implicit operator string(ClarifierDirection clarifierDirection)
{
switch (clarifierDirection.Direction)
{
case ShiftDirection.PLUS_SHIFT:
return "+";
case ShiftDirection.MINUS_SHIFT:
return "-";
default:
throw new ArgumentException();
}
}
}
}
Generated by GNU Enscript 1.6.5.90.