blob: e785cd052298327c11313d2ca6fb20ba01d52671 [file] [log] [blame]
#region License
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
#endregion
// THIS IS A GENERATED FILE - DO NOT MODIFY THIS FILE DIRECTLY - see pom.xml
using System;
using System.Collections.Generic;
namespace Gremlin.Net.Process.Traversal
{
#pragma warning disable 1591
public class <%= enumClass.simpleName %> : <%= implementedTypes %>
{
private <%= enumClass.simpleName %>(string enumValue)
: base("<%= enumClass.simpleName %>", enumValue)
{
}
<%
def toCSharpName = { enumClass, itemName ->
if (enumClass.equals(directionClass)) {
itemName = itemName.toLowerCase()
}
return itemName.substring(0, 1).toUpperCase() + itemName.substring(1)
}
constants.each { value -> %>
public static ${enumClass.simpleName} ${toCSharpName(enumClass, value.name())} => new ${enumClass.simpleName}("${value.name()}");
<% }%>
private static readonly IDictionary<string, <%= enumClass.simpleName %>> Properties = new Dictionary<string, <%= enumClass.simpleName %>>
{<% constants.each { value -> %>
{ "${value.name()}", ${toCSharpName(enumClass, value.name())} },<% }%>
};
/// <summary>
/// Gets the <%= enumClass.simpleName %> enumeration by value.
/// </summary>
public static <%= enumClass.simpleName %> GetByValue(string value)
{
if (!Properties.TryGetValue(value, out var property))
{
throw new ArgumentException(\$"No matching <%= enumClass.simpleName%> for value '{value}'");
}
return property;
}
}
#pragma warning restore 1591
}