You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@reef.apache.org by af...@apache.org on 2015/11/20 01:47:49 UTC
incubator-reef git commit: [REEF-962] Use enum for language
Repository: incubator-reef
Updated Branches:
refs/heads/master f4e486918 -> 2e3e40f5c
[REEF-962] Use enum for language
Added enum definition for Languages
Set proper default where the language is used
Updated test cases
JIRA: [REEF-962](https://issues.apache.org/jira/browse/REEF-962)
This closes #658
Project: http://git-wip-us.apache.org/repos/asf/incubator-reef/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-reef/commit/2e3e40f5
Tree: http://git-wip-us.apache.org/repos/asf/incubator-reef/tree/2e3e40f5
Diff: http://git-wip-us.apache.org/repos/asf/incubator-reef/diff/2e3e40f5
Branch: refs/heads/master
Commit: 2e3e40f5c3f7a0cacd846e7316435da8f34f8012
Parents: f4e4869
Author: Julia Wang <ju...@microsoft.com>
Authored: Wed Nov 18 22:02:04 2015 -0800
Committer: Andrew Chung <af...@gmail.com>
Committed: Thu Nov 19 16:46:51 2015 -0800
----------------------------------------------------------------------
.../Evaluator/Utils/NamedparameterAlias.cs | 18 ++++++-----
.../EvaluatorConfigurationsTests.cs | 6 ++--
.../ClassHierarchy/TestNamedParameter.cs | 10 +++---
.../Configuration/TestAvroConfiguration.cs | 3 +-
.../Annotations/NamedParameter.cs | 6 ++--
.../Formats/AvroConfigurationSerializer.cs | 6 ++--
.../ClassHierarchy/AvroClassHierarchy.cs | 4 +--
.../ClassHierarchy/ClassHierarchyImpl.cs | 4 +--
.../ClassHierarchy/NamedParameterNodeImpl.cs | 14 +++------
.../Org.Apache.REEF.Tang.csproj | 1 +
.../Protobuf/ProtocolBufferClassHierarchy.cs | 29 ++++++++++++------
.../Types/INamedParameterNode.cs | 4 +--
lang/cs/Org.Apache.REEF.Tang/Util/Language.cs | 32 ++++++++++++++++++++
.../Remote/Impl/RemoteEvent.cs | 2 +-
14 files changed, 90 insertions(+), 49 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/2e3e40f5/lang/cs/Org.Apache.REEF.Common/Runtime/Evaluator/Utils/NamedparameterAlias.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Common/Runtime/Evaluator/Utils/NamedparameterAlias.cs b/lang/cs/Org.Apache.REEF.Common/Runtime/Evaluator/Utils/NamedparameterAlias.cs
index 4fe524f..25c010b 100644
--- a/lang/cs/Org.Apache.REEF.Common/Runtime/Evaluator/Utils/NamedparameterAlias.cs
+++ b/lang/cs/Org.Apache.REEF.Common/Runtime/Evaluator/Utils/NamedparameterAlias.cs
@@ -19,45 +19,47 @@
using Org.Apache.REEF.Tang.Annotations;
using Org.Apache.REEF.Tang.Formats;
+using Org.Apache.REEF.Tang.Types;
+using Org.Apache.REEF.Tang.Util;
namespace Org.Apache.REEF.Common.Runtime.Evaluator.Utils
{
- [NamedParameter(alias: "org.apache.reef.runtime.common.evaluator.parameters.ApplicationIdentifier", aliasLanguage: AvroConfigurationSerializer.Java)]
+ [NamedParameter(alias: "org.apache.reef.runtime.common.evaluator.parameters.ApplicationIdentifier", aliasLanguage: Language.Java)]
public sealed class ApplicationIdentifier : Name<string>
{
}
- [NamedParameter(alias: "org.apache.reef.runtime.common.evaluator.parameters.DriverRemoteIdentifier", aliasLanguage: AvroConfigurationSerializer.Java)]
+ [NamedParameter(alias: "org.apache.reef.runtime.common.evaluator.parameters.DriverRemoteIdentifier", aliasLanguage: Language.Java)]
public sealed class DriverRemoteIdentifier : Name<string>
{
}
- [NamedParameter(alias: "org.apache.reef.runtime.common.evaluator.parameters.EvaluatorIdentifier", aliasLanguage: AvroConfigurationSerializer.Java)]
+ [NamedParameter(alias: "org.apache.reef.runtime.common.evaluator.parameters.EvaluatorIdentifier", aliasLanguage: Language.Java)]
public sealed class EvaluatorIdentifier : Name<string>
{
}
- [NamedParameter(alias: "org.apache.reef.runtime.common.evaluator.parameters.InitialTaskConfiguration", aliasLanguage: AvroConfigurationSerializer.Java)]
+ [NamedParameter(alias: "org.apache.reef.runtime.common.evaluator.parameters.InitialTaskConfiguration", aliasLanguage: Language.Java)]
public sealed class InitialTaskConfiguration : Name<string>
{
}
- [NamedParameter(alias: "org.apache.reef.runtime.common.evaluator.parameters.RootContextConfiguration", aliasLanguage: AvroConfigurationSerializer.Java)]
+ [NamedParameter(alias: "org.apache.reef.runtime.common.evaluator.parameters.RootContextConfiguration", aliasLanguage: Language.Java)]
public sealed class RootContextConfiguration : Name<string>
{
}
- [NamedParameter(alias: "org.apache.reef.runtime.common.evaluator.parameters.RootServiceConfiguration", aliasLanguage: AvroConfigurationSerializer.Java)]
+ [NamedParameter(alias: "org.apache.reef.runtime.common.evaluator.parameters.RootServiceConfiguration", aliasLanguage: Language.Java)]
public sealed class RootServiceConfiguration : Name<string>
{
}
- [NamedParameter(alias: "org.apache.reef.runtime.common.launch.parameters.ErrorHandlerRID", aliasLanguage: AvroConfigurationSerializer.Java)]
+ [NamedParameter(alias: "org.apache.reef.runtime.common.launch.parameters.ErrorHandlerRID", aliasLanguage: Language.Java)]
public sealed class ErrorHandlerRid : Name<string>
{
}
- [NamedParameter(alias: "org.apache.reef.runtime.common.launch.parameters.LaunchID", aliasLanguage: AvroConfigurationSerializer.Java)]
+ [NamedParameter(alias: "org.apache.reef.runtime.common.launch.parameters.LaunchID", aliasLanguage: Language.Java)]
public sealed class LaunchId : Name<string>
{
}
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/2e3e40f5/lang/cs/Org.Apache.REEF.Evaluator.Tests/EvaluatorConfigurationsTests.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Evaluator.Tests/EvaluatorConfigurationsTests.cs b/lang/cs/Org.Apache.REEF.Evaluator.Tests/EvaluatorConfigurationsTests.cs
index d90eacd..e3a530f 100644
--- a/lang/cs/Org.Apache.REEF.Evaluator.Tests/EvaluatorConfigurationsTests.cs
+++ b/lang/cs/Org.Apache.REEF.Evaluator.Tests/EvaluatorConfigurationsTests.cs
@@ -26,6 +26,8 @@ using Org.Apache.REEF.Examples.HelloREEF;
using Org.Apache.REEF.Tang.Formats;
using Org.Apache.REEF.Tang.Implementations.Tang;
using Org.Apache.REEF.Tang.Interface;
+using Org.Apache.REEF.Tang.Types;
+using Org.Apache.REEF.Tang.Util;
using Org.Apache.REEF.Utilities.Logging;
using Org.Apache.REEF.Wake.Remote.Parameters;
using Org.Apache.REEF.Wake.StreamingCodec;
@@ -74,7 +76,7 @@ namespace Org.Apache.REEF.Evaluator.Tests
var avroConfiguration = serializer.AvroDeserializeFromFile("evaluator.conf");
Assert.IsNotNull(avroConfiguration);
- Assert.AreEqual(avroConfiguration.language, AvroConfigurationSerializer.Java);
+ Assert.AreEqual(avroConfiguration.language, Language.Java.ToString());
foreach (var b in avroConfiguration.Bindings)
{
@@ -88,7 +90,7 @@ namespace Org.Apache.REEF.Evaluator.Tests
AvroConfigurationSerializer serializer = new AvroConfigurationSerializer();
var avroConfiguration = serializer.AvroDeserializeFromFile("evaluator.conf");
var language = avroConfiguration.language;
- Assert.IsTrue(language.Equals(AvroConfigurationSerializer.Java));
+ Assert.IsTrue(language.ToString().Equals(Language.Java.ToString()));
var classHierarchy = TangFactory.GetTang()
.GetClassHierarchy(new string[] { typeof(ApplicationIdentifier).Assembly.GetName().Name });
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/2e3e40f5/lang/cs/Org.Apache.REEF.Tang.Tests/ClassHierarchy/TestNamedParameter.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Tang.Tests/ClassHierarchy/TestNamedParameter.cs b/lang/cs/Org.Apache.REEF.Tang.Tests/ClassHierarchy/TestNamedParameter.cs
index d555278..33f0a67 100644
--- a/lang/cs/Org.Apache.REEF.Tang.Tests/ClassHierarchy/TestNamedParameter.cs
+++ b/lang/cs/Org.Apache.REEF.Tang.Tests/ClassHierarchy/TestNamedParameter.cs
@@ -38,7 +38,7 @@ namespace Org.Apache.REEF.Tang.Tests.ClassHierarchy
Assert.IsTrue(cls.GetDocumentation().Equals("NamedParameterWithDefaultValues"));
Assert.IsTrue(cls.GetShortName().Equals("NamedParameterWithDefaultValues"));
Assert.IsTrue(cls.GetAlias().Equals("org.apache.REEF.tang.tests.classHierarchy.NamedParameterWithDefaultValues"));
- Assert.IsTrue(cls.GetAliasLanguage().Equals(AvroConfigurationSerializer.Java));
+ Assert.IsTrue(cls.GetAliasLanguage().ToString().Equals(Language.Java.ToString()));
}
[TestMethod]
@@ -47,7 +47,7 @@ namespace Org.Apache.REEF.Tang.Tests.ClassHierarchy
var ns = TangFactory.GetTang().GetDefaultClassHierarchy();
INamedParameterNode cls = (INamedParameterNode)ns.GetNode(typeof(NamedParameterWithAlias).AssemblyQualifiedName);
Assert.IsTrue(cls.GetAlias().Equals("org.apache.REEF.tang.tests.classHierarchy.NamedParameterWithAlias"));
- Assert.IsTrue(cls.GetAliasLanguage().Equals(AvroConfigurationSerializer.Java));
+ Assert.IsTrue(cls.GetAliasLanguage().ToString().Equals(Language.Java.ToString()));
}
[TestMethod]
@@ -60,7 +60,7 @@ namespace Org.Apache.REEF.Tang.Tests.ClassHierarchy
var node2 = ns1.GetNode(typeof(NamedParameterWithAlias).AssemblyQualifiedName);
Assert.IsTrue(node2 is INamedParameterNode);
- Assert.IsTrue(((INamedParameterNode)node2).GetAliasLanguage().Equals(AvroConfigurationSerializer.Java));
+ Assert.IsTrue(((INamedParameterNode)node2).GetAliasLanguage().ToString().Equals(Language.Java.ToString()));
Assert.IsTrue(((INamedParameterNode)node2).GetFullName().Equals(typeof(NamedParameterWithAlias).AssemblyQualifiedName));
Assert.IsTrue(((INamedParameterNode)node2).GetAlias().Equals("org.apache.REEF.tang.tests.classHierarchy.NamedParameterWithAlias"));
}
@@ -87,14 +87,14 @@ namespace Org.Apache.REEF.Tang.Tests.ClassHierarchy
DefaultValues = null,
DefaultClasses = null,
Alias = "org.apache.REEF.tang.tests.classHierarchy.NamedParameterWithDefaultValues",
- AliasLanguage = AvroConfigurationSerializer.Java
+ AliasLanguage = Language.Java
)]
public class NamedParameterWithDefaultValues : Name<string>
{
}
- [NamedParameter(alias: "org.apache.REEF.tang.tests.classHierarchy.NamedParameterWithAlias", aliasLanguage: AvroConfigurationSerializer.Java)]
+ [NamedParameter(alias: "org.apache.REEF.tang.tests.classHierarchy.NamedParameterWithAlias", aliasLanguage: Language.Java)]
public class NamedParameterWithAlias : Name<string>
{
}
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/2e3e40f5/lang/cs/Org.Apache.REEF.Tang.Tests/Configuration/TestAvroConfiguration.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Tang.Tests/Configuration/TestAvroConfiguration.cs b/lang/cs/Org.Apache.REEF.Tang.Tests/Configuration/TestAvroConfiguration.cs
index e682342..3dda5d0 100644
--- a/lang/cs/Org.Apache.REEF.Tang.Tests/Configuration/TestAvroConfiguration.cs
+++ b/lang/cs/Org.Apache.REEF.Tang.Tests/Configuration/TestAvroConfiguration.cs
@@ -25,6 +25,7 @@ using Org.Apache.REEF.Tang.Formats;
using Org.Apache.REEF.Tang.Formats.AvroConfigurationDataContract;
using Org.Apache.REEF.Tang.Implementations.Tang;
using Org.Apache.REEF.Tang.Interface;
+using Org.Apache.REEF.Tang.Types;
using Org.Apache.REEF.Tang.Util;
namespace Org.Apache.REEF.Tang.Tests.Configuration
@@ -62,7 +63,7 @@ namespace Org.Apache.REEF.Tang.Tests.Configuration
e2.value = "b1=b2";
b.Add(e1);
b.Add(e2);
- var a = new AvroConfiguration(AvroConfigurationSerializer.Cs, b);
+ var a = new AvroConfiguration(Language.Cs.ToString(), b);
return a;
}
}
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/2e3e40f5/lang/cs/Org.Apache.REEF.Tang/Annotations/NamedParameter.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Tang/Annotations/NamedParameter.cs b/lang/cs/Org.Apache.REEF.Tang/Annotations/NamedParameter.cs
index 203bf24..86ccef8 100644
--- a/lang/cs/Org.Apache.REEF.Tang/Annotations/NamedParameter.cs
+++ b/lang/cs/Org.Apache.REEF.Tang/Annotations/NamedParameter.cs
@@ -19,6 +19,8 @@
using System;
using Org.Apache.REEF.Tang.Formats;
+using Org.Apache.REEF.Tang.Types;
+using Org.Apache.REEF.Tang.Util;
namespace Org.Apache.REEF.Tang.Annotations
{
@@ -34,10 +36,10 @@ namespace Org.Apache.REEF.Tang.Annotations
public string[] DefaultValues { get; set; }
public Type[] DefaultClasses { get; set; }
public string Alias { get; set; }
- public string AliasLanguage { get; set; }
+ public Language AliasLanguage { get; set; }
public NamedParameterAttribute(string documentation = "", string shortName = "",
- string defaultValue = ReefUninitializedValue, Type defaultClass = null, string[] defaultValues = null, Type[] defaultClasses = null, string alias = null, string aliasLanguage = AvroConfigurationSerializer.Java)
+ string defaultValue = ReefUninitializedValue, Type defaultClass = null, string[] defaultValues = null, Type[] defaultClasses = null, string alias = null, Language aliasLanguage = Language.Cs)
{
this.Documentation = documentation;
this.ShortName = shortName;
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/2e3e40f5/lang/cs/Org.Apache.REEF.Tang/Formats/AvroConfigurationSerializer.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Tang/Formats/AvroConfigurationSerializer.cs b/lang/cs/Org.Apache.REEF.Tang/Formats/AvroConfigurationSerializer.cs
index 985570f..fe1d7e6 100644
--- a/lang/cs/Org.Apache.REEF.Tang/Formats/AvroConfigurationSerializer.cs
+++ b/lang/cs/Org.Apache.REEF.Tang/Formats/AvroConfigurationSerializer.cs
@@ -34,6 +34,7 @@ using Org.Apache.REEF.Tang.Implementations.Configuration;
using Org.Apache.REEF.Tang.Implementations.Tang;
using Org.Apache.REEF.Tang.Interface;
using Org.Apache.REEF.Tang.Types;
+using Org.Apache.REEF.Tang.Util;
using Org.Apache.REEF.Utilities.Logging;
namespace Org.Apache.REEF.Tang.Formats
@@ -53,9 +54,6 @@ namespace Org.Apache.REEF.Tang.Formats
public class AvroConfigurationSerializer : IConfigurationSerializer
{
- public const string Java = "Java";
- public const string Cs = "Cs";
-
private static readonly Logger LOGGER = Logger.GetLogger(typeof(AvroConfigurationResolver));
[Inject]
@@ -267,7 +265,7 @@ namespace Org.Apache.REEF.Tang.Formats
l.Add(new ConfigurationEntry(e.Key.GetFullName(), val));
}
- return new AvroConfiguration(Cs, l);
+ return new AvroConfiguration(Language.Cs.ToString(), l);
}
private byte[] AvroSerialize(AvroConfiguration obj)
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/2e3e40f5/lang/cs/Org.Apache.REEF.Tang/Implementations/ClassHierarchy/AvroClassHierarchy.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Tang/Implementations/ClassHierarchy/AvroClassHierarchy.cs b/lang/cs/Org.Apache.REEF.Tang/Implementations/ClassHierarchy/AvroClassHierarchy.cs
index 0364115..134bdbe 100644
--- a/lang/cs/Org.Apache.REEF.Tang/Implementations/ClassHierarchy/AvroClassHierarchy.cs
+++ b/lang/cs/Org.Apache.REEF.Tang/Implementations/ClassHierarchy/AvroClassHierarchy.cs
@@ -201,11 +201,11 @@ namespace Org.Apache.REEF.Tang.Implementations.ClassHierarchy
if (np.GetAlias() != null && !np.GetAlias().Equals(""))
{
IDictionary<string, string> mapping = null;
- _aliasLookupTable.TryGetValue(np.GetAliasLanguage(), out mapping);
+ _aliasLookupTable.TryGetValue(np.GetAliasLanguage().ToString(), out mapping);
if (mapping == null)
{
mapping = new Dictionary<string, string>();
- _aliasLookupTable.Add(np.GetAliasLanguage(), mapping);
+ _aliasLookupTable.Add(np.GetAliasLanguage().ToString(), mapping);
}
try
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/2e3e40f5/lang/cs/Org.Apache.REEF.Tang/Implementations/ClassHierarchy/ClassHierarchyImpl.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Tang/Implementations/ClassHierarchy/ClassHierarchyImpl.cs b/lang/cs/Org.Apache.REEF.Tang/Implementations/ClassHierarchy/ClassHierarchyImpl.cs
index afc25b2..ae2ac31 100644
--- a/lang/cs/Org.Apache.REEF.Tang/Implementations/ClassHierarchy/ClassHierarchyImpl.cs
+++ b/lang/cs/Org.Apache.REEF.Tang/Implementations/ClassHierarchy/ClassHierarchyImpl.cs
@@ -276,11 +276,11 @@ namespace Org.Apache.REEF.Tang.Implementations.ClassHierarchy
if (!string.IsNullOrEmpty(np.GetAlias()))
{
IDictionary<string, string> mapping = null;
- _aliasLookupTable.TryGetValue(np.GetAliasLanguage(), out mapping);
+ _aliasLookupTable.TryGetValue(np.GetAliasLanguage().ToString(), out mapping);
if (null == mapping)
{
mapping= new Dictionary<string, string>();
- _aliasLookupTable.Add(np.GetAliasLanguage(), mapping);
+ _aliasLookupTable.Add(np.GetAliasLanguage().ToString(), mapping);
}
try
{
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/2e3e40f5/lang/cs/Org.Apache.REEF.Tang/Implementations/ClassHierarchy/NamedParameterNodeImpl.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Tang/Implementations/ClassHierarchy/NamedParameterNodeImpl.cs b/lang/cs/Org.Apache.REEF.Tang/Implementations/ClassHierarchy/NamedParameterNodeImpl.cs
index 76b10d2..fe42a44 100644
--- a/lang/cs/Org.Apache.REEF.Tang/Implementations/ClassHierarchy/NamedParameterNodeImpl.cs
+++ b/lang/cs/Org.Apache.REEF.Tang/Implementations/ClassHierarchy/NamedParameterNodeImpl.cs
@@ -20,6 +20,7 @@
using System;
using Org.Apache.REEF.Tang.Annotations;
using Org.Apache.REEF.Tang.Types;
+using Org.Apache.REEF.Tang.Util;
namespace Org.Apache.REEF.Tang.Implementations.ClassHierarchy
{
@@ -33,11 +34,11 @@ namespace Org.Apache.REEF.Tang.Implementations.ClassHierarchy
private readonly bool isSet;
private readonly bool isList;
private readonly string alias;
- private readonly string aliasLanguage;
+ private readonly Language aliasLanguage;
public NamedParameterNodeImpl(INode parent, String simpleName,
String fullName, String fullArgName, String simpleArgName, bool isSet, bool isList,
- String documentation, String shortName, String[] defaultInstanceAsStrings, string alias, string aliasLanguage)
+ String documentation, String shortName, String[] defaultInstanceAsStrings, string alias = null, Language aliasLanguage = Language.Cs)
: base(parent, simpleName, fullName)
{
this.fullArgName = fullArgName;
@@ -51,13 +52,6 @@ namespace Org.Apache.REEF.Tang.Implementations.ClassHierarchy
this.aliasLanguage = aliasLanguage;
}
- public NamedParameterNodeImpl(INode parent, String simpleName,
- String fullName, String fullArgName, String simpleArgName, bool isSet, bool isList,
- String documentation, String shortName, String[] defaultInstanceAsStrings)
- : this(parent, simpleName, fullName, simpleArgName, simpleArgName, isSet, isList, documentation, shortName, defaultInstanceAsStrings, null, null)
- {
- }
-
public override String ToString()
{
return GetSimpleArgName() + " " + GetName();
@@ -103,7 +97,7 @@ namespace Org.Apache.REEF.Tang.Implementations.ClassHierarchy
return alias;
}
- public string GetAliasLanguage()
+ public Language GetAliasLanguage()
{
return aliasLanguage;
}
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/2e3e40f5/lang/cs/Org.Apache.REEF.Tang/Org.Apache.REEF.Tang.csproj
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Tang/Org.Apache.REEF.Tang.csproj b/lang/cs/Org.Apache.REEF.Tang/Org.Apache.REEF.Tang.csproj
index ff3efa7..51cf18f 100644
--- a/lang/cs/Org.Apache.REEF.Tang/Org.Apache.REEF.Tang.csproj
+++ b/lang/cs/Org.Apache.REEF.Tang/Org.Apache.REEF.Tang.csproj
@@ -131,6 +131,7 @@ under the License.
<Compile Include="Util\AbstractMonotonicMultiMap.cs" />
<Compile Include="Util\AssemblyLoader.cs" />
<Compile Include="Util\GenericType.cs" />
+ <Compile Include="Util\Language.cs" />
<Compile Include="Util\MonotonicHashMap.cs" />
<Compile Include="Util\MonotonicHashSet.cs" />
<Compile Include="Util\MonotonicMultiHashMap.cs" />
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/2e3e40f5/lang/cs/Org.Apache.REEF.Tang/Protobuf/ProtocolBufferClassHierarchy.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Tang/Protobuf/ProtocolBufferClassHierarchy.cs b/lang/cs/Org.Apache.REEF.Tang/Protobuf/ProtocolBufferClassHierarchy.cs
index 2c688f5..7bd5fc1 100644
--- a/lang/cs/Org.Apache.REEF.Tang/Protobuf/ProtocolBufferClassHierarchy.cs
+++ b/lang/cs/Org.Apache.REEF.Tang/Protobuf/ProtocolBufferClassHierarchy.cs
@@ -26,6 +26,7 @@ using Org.Apache.REEF.Tang.Exceptions;
using Org.Apache.REEF.Tang.Implementations.ClassHierarchy;
using Org.Apache.REEF.Tang.Interface;
using Org.Apache.REEF.Tang.Types;
+using Org.Apache.REEF.Tang.Util;
using Org.Apache.REEF.Utilities.Logging;
using ProtoBuf;
@@ -188,7 +189,7 @@ namespace Org.Apache.REEF.Tang.Protobuf
string shortName, // can be null
string[] instanceDefault, // can be null
IList<Org.Apache.REEF.Tang.Protobuf.Node> children,
- string alias, string aliasLanguage)
+ string alias, Language aliasLanguage)
{
Org.Apache.REEF.Tang.Protobuf.NamedParameterNode namedParameterNode = new Org.Apache.REEF.Tang.Protobuf.NamedParameterNode();
namedParameterNode.simple_arg_class_name = simpleArgClassName;
@@ -211,10 +212,7 @@ namespace Org.Apache.REEF.Tang.Protobuf
namedParameterNode.alias_name = alias;
}
- if (aliasLanguage != null)
- {
- namedParameterNode.alias_language = aliasLanguage;
- }
+ namedParameterNode.alias_language = aliasLanguage.ToString();
foreach (var id in instanceDefault)
{
@@ -304,14 +302,14 @@ namespace Org.Apache.REEF.Tang.Protobuf
private void AddAlias(INamedParameterNode np)
{
- if (np.GetAlias() != null && !np.GetAlias().Equals(""))
+ if (!string.IsNullOrEmpty(np.GetAlias()))
{
IDictionary<string, string> mapping = null;
- _aliasLookupTable.TryGetValue(np.GetAliasLanguage(), out mapping);
+ _aliasLookupTable.TryGetValue(np.GetAliasLanguage().ToString(), out mapping);
if (mapping == null)
{
mapping = new Dictionary<string, string>();
- _aliasLookupTable.Add(np.GetAliasLanguage(), mapping);
+ _aliasLookupTable.Add(np.GetAliasLanguage().ToString(), mapping);
}
try
{
@@ -336,12 +334,23 @@ namespace Org.Apache.REEF.Tang.Protobuf
{
Org.Apache.REEF.Tang.Protobuf.NamedParameterNode np = n.named_parameter_node;
- if (np.alias_name != null && np.alias_language != null)
+ if (!string.IsNullOrWhiteSpace(np.alias_name) && !string.IsNullOrWhiteSpace(np.alias_language))
{
+ Language language;
+ try
+ {
+ Enum.TryParse(np.alias_language, true, out language);
+ }
+ catch (Exception)
+ {
+ string msg = string.Format(CultureInfo.CurrentCulture, "Language {0} passed in is not supported", np.alias_language);
+ throw new ArgumentException(msg);
+ }
+
parsed = new NamedParameterNodeImpl(parent, n.name,
n.full_name, np.full_arg_class_name, np.simple_arg_class_name,
np.is_set, np.is_list, np.documentation, np.short_name,
- np.instance_default.ToArray(), np.alias_name, np.alias_language);
+ np.instance_default.ToArray(), np.alias_name, language);
}
else
{
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/2e3e40f5/lang/cs/Org.Apache.REEF.Tang/Types/INamedParameterNode.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Tang/Types/INamedParameterNode.cs b/lang/cs/Org.Apache.REEF.Tang/Types/INamedParameterNode.cs
index 442fd6c..5e603f9 100644
--- a/lang/cs/Org.Apache.REEF.Tang/Types/INamedParameterNode.cs
+++ b/lang/cs/Org.Apache.REEF.Tang/Types/INamedParameterNode.cs
@@ -18,6 +18,7 @@
*/
using Org.Apache.REEF.Tang.Annotations;
+using Org.Apache.REEF.Tang.Util;
namespace Org.Apache.REEF.Tang.Types
{
@@ -46,9 +47,8 @@ namespace Org.Apache.REEF.Tang.Types
/// <summary>
/// It returns the programming language for the alias
- /// Examples are "Java", "Cs"
/// </summary>
/// <returns></returns>
- string GetAliasLanguage();
+ Language GetAliasLanguage();
}
}
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/2e3e40f5/lang/cs/Org.Apache.REEF.Tang/Util/Language.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Tang/Util/Language.cs b/lang/cs/Org.Apache.REEF.Tang/Util/Language.cs
new file mode 100644
index 0000000..7fa64a5
--- /dev/null
+++ b/lang/cs/Org.Apache.REEF.Tang/Util/Language.cs
@@ -0,0 +1,32 @@
+/**
+ * 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.
+ */
+
+namespace Org.Apache.REEF.Tang.Util
+{
+ /// <summary>
+ /// This is to define the programming language used in AvroConfiguration.
+ /// In Deserialization of a configuration, if a class name in the configuration cannot be found
+ /// in class hiearchy, the language in the configuration is used to find the alias of that class name
+ /// </summary>
+ public enum Language
+ {
+ Java,
+ Cs
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/2e3e40f5/lang/cs/Org.Apache.REEF.Wake/Remote/Impl/RemoteEvent.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Org.Apache.REEF.Wake/Remote/Impl/RemoteEvent.cs b/lang/cs/Org.Apache.REEF.Wake/Remote/Impl/RemoteEvent.cs
index f5a66cf..5fa76ca 100644
--- a/lang/cs/Org.Apache.REEF.Wake/Remote/Impl/RemoteEvent.cs
+++ b/lang/cs/Org.Apache.REEF.Wake/Remote/Impl/RemoteEvent.cs
@@ -51,7 +51,7 @@ namespace Org.Apache.REEF.Wake.Remote.Impl
public T Value { get; set; }
- [Obsolete("This field is used in Java code only; keeping it for consistency across languages. See [REEF-445]", false)]
+ [Obsolete("This field is used in Java code only; keeping it for consistency across Language. See [REEF-445]", false)]
public long Sequence { get; set; }
}
}