Files
runner/src/Sdk/DTObjectTemplating/ObjectTemplating/Tokens/BooleanToken.cs
2019-10-10 00:52:42 -04:00

45 lines
1.2 KiB
C#

using System;
using System.ComponentModel;
using System.Runtime.Serialization;
using GitHub.DistributedTask.Expressions2.Sdk;
using GitHub.Services.WebApi.Internal;
namespace GitHub.DistributedTask.ObjectTemplating.Tokens
{
[DataContract]
[ClientIgnore]
[EditorBrowsable(EditorBrowsableState.Never)]
public sealed class BooleanToken : LiteralToken, IBoolean
{
public BooleanToken(
Int32? fileId,
Int32? line,
Int32? column,
Boolean value)
: base(TokenType.Boolean, fileId, line, column)
{
m_value = value;
}
public Boolean Value => m_value;
public override TemplateToken Clone(Boolean omitSource)
{
return omitSource ? new BooleanToken(null, null, null, m_value) : new BooleanToken(FileId, Line, Column, m_value);
}
public override String ToString()
{
return m_value ? "true" : "false";
}
Boolean IBoolean.GetBoolean()
{
return Value;
}
[DataMember(Name = "bool", EmitDefaultValue = false)]
private Boolean m_value;
}
}