You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@reef.apache.org by we...@apache.org on 2015/02/05 22:05:31 UTC

[10/51] [partial] incubator-reef git commit: [REEF-131] Towards the new .Net project structure This is to change .Net project structure for Tang, Wake, REEF utilities, Common and Driver:

http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/c1b5200f/lang/cs/Source/TANG/Tang/Implementations/Tang/TangImpl.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Source/TANG/Tang/Implementations/Tang/TangImpl.cs b/lang/cs/Source/TANG/Tang/Implementations/Tang/TangImpl.cs
deleted file mode 100644
index 5e0181b..0000000
--- a/lang/cs/Source/TANG/Tang/Implementations/Tang/TangImpl.cs
+++ /dev/null
@@ -1,201 +0,0 @@
-/**
- * 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.
- */
-using System;
-using System.Collections.Generic;
-using Org.Apache.Reef.Utilities.Logging;
-using Org.Apache.Reef.Tang.Exceptions;
-using Org.Apache.Reef.Tang.Formats;
-using Org.Apache.Reef.Tang.Interface;
-using Org.Apache.Reef.Tang.Util;
-
-namespace Org.Apache.Reef.Tang.Implementations
-{
-    public class TangImpl : ITang
-    {
-        private static readonly Logger LOGGER = Logger.GetLogger(typeof(TangImpl));
-
-        private static IDictionary<SetValuedKey, ICsClassHierarchy> defaultClassHierarchy = new Dictionary<SetValuedKey, ICsClassHierarchy>();
-
-        public IInjector NewInjector()
-        {
-            try
-            {
-                return NewInjector(new ConfigurationImpl[] {});
-            }
-            catch (BindException e)
-            {
-                Org.Apache.Reef.Utilities.Diagnostics.Exceptions.Caught(e, Level.Error, LOGGER);
-                Org.Apache.Reef.Utilities.Diagnostics.Exceptions.Throw(new IllegalStateException("Unexpected error from empty configuration", e), LOGGER);
-                return null;
-            }
-        }
-
-        public IInjector NewInjector(string[] assemblies, string configurationFileName)
-        {
-            ITang tang = TangFactory.GetTang();
-            ICsConfigurationBuilder cb1 = tang.NewConfigurationBuilder(assemblies);
-            ConfigurationFile.AddConfigurationFromFile(cb1, configurationFileName);
-            IConfiguration conf = cb1.Build();
-
-            IInjector injector = tang.NewInjector(conf);
-            return injector;
-        }
-
-        public ICsConfigurationBuilder NewConfigurationBuilder(IConfiguration conf)
-        {
-            return NewConfigurationBuilder(new IConfiguration[] { conf });
-        }
-
-        //public IInjector NewInjector(string[] assemblies, IDictionary<string, string> configurations)
-        //{
-        //    ITang tang = TangFactory.GetTang();
-        //    ICsConfigurationBuilder cb1 = tang.NewConfigurationBuilder(assemblies);
-        //    ConfigurationFile.ProcessConfigData(cb1, configurations);
-        //    IConfiguration conf = cb1.Build();
-
-        //    IInjector injector = tang.NewInjector(conf);
-        //    return injector;
-        //}
-
-        public IInjector NewInjector(string[] assemblies, IDictionary<string, string> configurations)
-        {
-            IList<KeyValuePair<string, string>> conf = new List<KeyValuePair<string, string>>();
-            foreach (KeyValuePair<string, string> kp in configurations)
-            {
-                conf.Add(kp);
-            }
-            return NewInjector(assemblies, conf);
-        }
-
-        public IInjector NewInjector(string[] assemblies, IList<KeyValuePair<string, string>> configurations)
-        {
-            ITang tang = TangFactory.GetTang();
-            ICsConfigurationBuilder cb1 = tang.NewConfigurationBuilder(assemblies);
-            ConfigurationFile.ProcessConfigData(cb1, configurations);
-            IConfiguration conf = cb1.Build();
-
-            IInjector injector = tang.NewInjector(conf);
-            return injector;
-        }
-
-        public IInjector NewInjector(IConfiguration[] confs)
-        {
-            return new InjectorImpl(new CsConfigurationBuilderImpl(confs).Build());
-        }
-
-        public IInjector NewInjector(IConfiguration conf)
-        {
-            //return new InjectorImpl(conf);
-            try
-            {
-                return NewInjector(new ConfigurationImpl[] { (ConfigurationImpl)conf });
-            }
-            catch (BindException e)
-            {
-                Org.Apache.Reef.Utilities.Diagnostics.Exceptions.Caught(e, Level.Error, LOGGER);
-                Org.Apache.Reef.Utilities.Diagnostics.Exceptions.Throw(new IllegalStateException("Unexpected error cloning configuration", e), LOGGER);
-                return null; 
-            }
-        }
-
-        public IClassHierarchy GetClassHierarchy(string[] assemblies)
-        {
-            return GetDefaultClassHierarchy(assemblies, new Type[] { });
-        }
-
-        public ICsClassHierarchy GetDefaultClassHierarchy()
-        {
-            return GetDefaultClassHierarchy(new string[0], new Type[0]);
-        }
-
-        public ICsClassHierarchy GetDefaultClassHierarchy(string[] assemblies, Type[] parameterParsers)
-        {
-            SetValuedKey key = new SetValuedKey(assemblies, parameterParsers);
-
-            ICsClassHierarchy ret = null;
-            defaultClassHierarchy.TryGetValue(key, out ret);
-            if (ret == null)
-            {
-                ret = new ClassHierarchyImpl(assemblies, parameterParsers);
-                defaultClassHierarchy.Add(key, ret);
-            }
-            return ret;
-        }
-
-        public ICsConfigurationBuilder NewConfigurationBuilder()
-        {
-            try 
-            {
-                return NewConfigurationBuilder(new string[0], new IConfiguration[0], new Type[0]);
-            } 
-            catch (BindException e) 
-            {
-                Org.Apache.Reef.Utilities.Diagnostics.Exceptions.Caught(e, Level.Error, LOGGER);
-                Org.Apache.Reef.Utilities.Diagnostics.Exceptions.Throw(new IllegalStateException(
-                    "Caught unexpeceted bind exception!  Implementation bug.", e), LOGGER);
-                return null;
-            }
-        }
-
-        public ICsConfigurationBuilder NewConfigurationBuilder(string[] assemblies)
-        {
-            try
-            {
-                return NewConfigurationBuilder(assemblies, new IConfiguration[0], new Type[0]);
-            }
-            catch (BindException e)
-            {
-                Org.Apache.Reef.Utilities.Diagnostics.Exceptions.Caught(e, Level.Error, LOGGER);
-                Org.Apache.Reef.Utilities.Diagnostics.Exceptions.Throw(new IllegalStateException(
-                    "Caught unexpeceted bind exception!  Implementation bug.", e), LOGGER);
-                return null;
-            }
-        }
-
-        public IConfigurationBuilder NewConfigurationBuilder(IClassHierarchy classHierarchy)
-        {
-            return new ConfigurationBuilderImpl(classHierarchy);
-        }
-
-        public ICsConfigurationBuilder NewConfigurationBuilder(ICsClassHierarchy classHierarchy)
-        {
-            return new CsConfigurationBuilderImpl(classHierarchy);
-        }
-
-        public ICsConfigurationBuilder NewConfigurationBuilder(IConfiguration[] confs)
-        {
-            return NewConfigurationBuilder(new string[0], confs, new Type[0]);
-        }
-
-        public ICsConfigurationBuilder NewConfigurationBuilder(string[] assemblies, IConfiguration[] confs, Type[] parameterParsers)
-        {
-            return new CsConfigurationBuilderImpl(assemblies, confs, parameterParsers);
-        }
-
-        public ICsConfigurationBuilder NewConfigurationBuilder(Type[] parameterParsers) 
-        {
-            return NewConfigurationBuilder(new string[0], new IConfiguration[0], parameterParsers);
-        }
-
-        public static void Reset() 
-        {
-            defaultClassHierarchy = new Dictionary<SetValuedKey, ICsClassHierarchy>(); 
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/c1b5200f/lang/cs/Source/TANG/Tang/Interface/IAspect.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Source/TANG/Tang/Interface/IAspect.cs b/lang/cs/Source/TANG/Tang/Interface/IAspect.cs
deleted file mode 100644
index 2c19897..0000000
--- a/lang/cs/Source/TANG/Tang/Interface/IAspect.cs
+++ /dev/null
@@ -1,31 +0,0 @@
-/**
- * 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.
- */
-using System.Reflection;
-using Org.Apache.Reef.Tang.Implementations;
-using Org.Apache.Reef.Tang.Types;
-
-namespace Org.Apache.Reef.Tang.Interface
-{
-    public interface Aspect
-    {
-        object Inject(IConstructorDef def, ConstructorInfo constructor, object[] args);
-        void InjectionFutureInstantiated<T>(IInjectionFuture<T> f, object t);
-        Aspect CreateChildAspect();
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/c1b5200f/lang/cs/Source/TANG/Tang/Interface/IClassHierarchy.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Source/TANG/Tang/Interface/IClassHierarchy.cs b/lang/cs/Source/TANG/Tang/Interface/IClassHierarchy.cs
deleted file mode 100644
index 7428942..0000000
--- a/lang/cs/Source/TANG/Tang/Interface/IClassHierarchy.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-/**
- * 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.
- */
-using Org.Apache.Reef.Tang.Types;
-
-namespace Org.Apache.Reef.Tang.Interface
-{
-    public interface IClassHierarchy
-    {
-        INode GetNode(string fullName);
-        INode GetNamespace();
-        bool IsImplementation(IClassNode inter, IClassNode impl);
-        IClassHierarchy Merge(IClassHierarchy ch);
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/c1b5200f/lang/cs/Source/TANG/Tang/Interface/IConfiguration.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Source/TANG/Tang/Interface/IConfiguration.cs b/lang/cs/Source/TANG/Tang/Interface/IConfiguration.cs
deleted file mode 100644
index 6903d19..0000000
--- a/lang/cs/Source/TANG/Tang/Interface/IConfiguration.cs
+++ /dev/null
@@ -1,49 +0,0 @@
-/**
- * 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.
- */
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Org.Apache.Reef.Tang.Types;
-
-namespace Org.Apache.Reef.Tang.Interface
-{
-    public interface IConfiguration
-    {
-        IConfigurationBuilder newBuilder();
-        string GetNamedParameter(INamedParameterNode np);
-        IClassHierarchy GetClassHierarchy();
-
-        ISet<Object> GetBoundSet(INamedParameterNode np); //named parameter for a set
-        IList<Object> GetBoundList(INamedParameterNode np); //named parameter for a list
-
-        IClassNode GetBoundConstructor(IClassNode cn);
-        IClassNode GetBoundImplementation(IClassNode cn);
-        IConstructorDef GetLegacyConstructor(IClassNode cn);
-
-        ICollection<IClassNode> GetBoundImplementations();
-        ICollection<IClassNode> GetBoundConstructors();
-        ICollection<INamedParameterNode> GetNamedParameters();
-        ICollection<IClassNode> GetLegacyConstructors();
-
-        IEnumerator<KeyValuePair<INamedParameterNode, object>> GetBoundSets();
-        IDictionary<INamedParameterNode, IList<object>> GetBoundList();
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/c1b5200f/lang/cs/Source/TANG/Tang/Interface/IConfigurationBuilder.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Source/TANG/Tang/Interface/IConfigurationBuilder.cs b/lang/cs/Source/TANG/Tang/Interface/IConfigurationBuilder.cs
deleted file mode 100644
index 640b11d..0000000
--- a/lang/cs/Source/TANG/Tang/Interface/IConfigurationBuilder.cs
+++ /dev/null
@@ -1,54 +0,0 @@
-/**
- * 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.
- */
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Org.Apache.Reef.Tang.Types;
-
-namespace Org.Apache.Reef.Tang.Interface
-{
-    public interface IConfigurationBuilder
-    {
-        void AddConfiguration(IConfiguration c); 
-        IClassHierarchy GetClassHierarchy();
-        IConfiguration Build();
-        void Bind(string iface, string impl);
-        void Bind(INode key, INode value);
-
-        void BindConstructor(IClassNode k, IClassNode v); //v extended from ExternalConstructor
-        string ClassPrettyDefaultString(string longName);
-        string ClassPrettyDescriptionString(string longName);
-
-        void RegisterLegacyConstructor(IClassNode cn, IList<IClassNode> args);
-        void RegisterLegacyConstructor(string cn, IList<string> args);
-        void RegisterLegacyConstructor(IClassNode c, IList<IConstructorArg> args);
-
-        void BindSetEntry(string iface, string impl);
-        void BindSetEntry(string iface, INode impl);
-        void BindSetEntry(INamedParameterNode iface, string impl);
-        void BindSetEntry(INamedParameterNode iface, INode impl);
-
-        void BindList(string iface, IList<string> impl);
-        void BindList(string iface, IList<INode> impl);
-        void BindList(INamedParameterNode iface, IList<INode> impl);
-        void BindList(INamedParameterNode iface, IList<string> impl);
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/c1b5200f/lang/cs/Source/TANG/Tang/Interface/ICsClassHierarchy.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Source/TANG/Tang/Interface/ICsClassHierarchy.cs b/lang/cs/Source/TANG/Tang/Interface/ICsClassHierarchy.cs
deleted file mode 100644
index 07c94dc..0000000
--- a/lang/cs/Source/TANG/Tang/Interface/ICsClassHierarchy.cs
+++ /dev/null
@@ -1,33 +0,0 @@
-/**
- * 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.
- */
-using System;
-using Org.Apache.Reef.Tang.Types;
-
-namespace Org.Apache.Reef.Tang.Interface
-{
-    public interface ICsClassHierarchy : IClassHierarchy
-    {
-        INode GetNode(Type c);
-        Type ClassForName(string name);
-        object Parse(INamedParameterNode name, string value);
-        object ParseDefaultValue(INamedParameterNode name);
-
-
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/c1b5200f/lang/cs/Source/TANG/Tang/Interface/ICsConfigurationBuilder.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Source/TANG/Tang/Interface/ICsConfigurationBuilder.cs b/lang/cs/Source/TANG/Tang/Interface/ICsConfigurationBuilder.cs
deleted file mode 100644
index c6e6864..0000000
--- a/lang/cs/Source/TANG/Tang/Interface/ICsConfigurationBuilder.cs
+++ /dev/null
@@ -1,121 +0,0 @@
-/**
- * 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.
- */
-using System;
-using System.Collections.Generic;
-using Org.Apache.Reef.Tang.Annotations;
-using Org.Apache.Reef.Tang.Util;
-
-namespace Org.Apache.Reef.Tang.Interface
-{
-    public interface ICsConfigurationBuilder : IConfigurationBuilder
-    {
-        /// <summary>
-        /// Binds the named parameter.
-        /// </summary>
-        /// <param name="name">The name.</param>
-        /// <param name="value">The value.</param>
-        ICsConfigurationBuilder BindNamedParameter(Type name, string value);  //name must extend from Name<T>
-
-        /// <summary>
-        /// Binds the class impl as the implementation of the interface iface
-        /// </summary>
-        /// <param name="iface">The iface.</param>
-        /// <param name="impl">The impl.</param>
-        ICsConfigurationBuilder BindImplementation(Type iface, Type impl);
-
-        /// <summary>
-        /// Binds the List entry.
-        /// </summary>
-        /// <param name="iface">The iface. It is a Name of IList</param>
-        /// <param name="impl">The impl.</param>
-        ICsConfigurationBuilder BindList(Type iface, IList<Type> impl);
-
-        /// <summary>
-        /// Binds the named parameter.
-        /// </summary>
-        /// <typeparam name="U"></typeparam>
-        /// <typeparam name="T"></typeparam>
-        /// <param name="name">The name.</param>
-        /// <param name="value">The value.</param>
-        ICsConfigurationBuilder BindNamedParameter<U, T>(GenericType<U> name, string value)
-            where U : Name<T>;
-
-        /// <summary>
-        /// Binds the named parameter.
-        /// </summary>
-        /// <typeparam name="U"></typeparam>
-        /// <typeparam name="V"></typeparam>
-        /// <typeparam name="T"></typeparam>
-        /// <param name="iface">The iface.</param>
-        /// <param name="impl">The impl.</param>
-        ICsConfigurationBuilder BindNamedParameter<U, V, T>(GenericType<U> iface, GenericType<V> impl)
-            where U : Name<T>
-            where V : T;
-
-        /// <summary>
-        /// Binds the implementation.
-        /// </summary>
-        /// <typeparam name="U"></typeparam>
-        /// <typeparam name="T"></typeparam>
-        /// <param name="iface">The iface.</param>
-        /// <param name="impl">The impl.</param>
-        ICsConfigurationBuilder BindImplementation<U, T>(GenericType<U> iface, GenericType<T> impl)
-            where T : U;
-
-        //public <T> void bindConstructor(Class<T> c, Class<? extends ExternalConstructor<? extends T>> v) throws BindException;
-        ICsConfigurationBuilder BindConstructor<T, U>(GenericType<T> c, GenericType<U> v)
-            where U : IExternalConstructor<T>;
-  
-        //public <T> void bindSetEntry(Class<? extends Name<Set<T>>> iface, String value) throws BindException;
-        ICsConfigurationBuilder BindSetEntry<U, T>(GenericType<U> iface, string value)
-            where U : Name<ISet<T>>;
-
-         //public <T> void bindSetEntry(Class<? extends Name<Set<T>>> iface, Class<? extends T> impl) throws BindException;
-        ICsConfigurationBuilder BindSetEntry<U, V, T>(GenericType<U> iface, GenericType<V> impl)
-            where U : Name<ISet<T>>
-            where V : T;
-
-        ICsConfigurationBuilder BindList<U, V, T>(GenericType<U> iface, IList<GenericType<V>> impl)
-            where U : Name<IList<T>>
-            where V : T;
-
-        ICsConfigurationBuilder BindList<U, T>(GenericType<U> iface, IList<string> impl)
-            where U : Name<IList<T>>;
-
-        ICsConfigurationBuilder BindNamedParameter<U, V, T>()
-            where U : Name<T>
-            where V : T;
-
-        ICsConfigurationBuilder BindNamedParam<TName, TType>(string str) where TName : Name<TType>;
-
-        ICsConfigurationBuilder BindStringNamedParam<T>(string str) where T : Name<string>;
-
-        ICsConfigurationBuilder BindIntNamedParam<T>(string str) where T : Name<int>;
-
-        ICsConfigurationBuilder BindImplementation<T1, T2>() where T2 : T1;
-
-        ICsConfigurationBuilder BindSetEntry<T1, T2, T3>() where T1 : Name<ISet<T3>> where T2 : T3;
-
-        ICsConfigurationBuilder BindSetEntry<U, T>(string value) where U : Name<ISet<T>>;
-
-        ICsConfigurationBuilder BindList<U, T>(IList<string> impl) where U : Name<IList<T>>;
-
-        ICsConfigurationBuilder BindConstructor<T, U>() where U : IExternalConstructor<T>;
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/c1b5200f/lang/cs/Source/TANG/Tang/Interface/ICsInternalConfigurationBuilder.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Source/TANG/Tang/Interface/ICsInternalConfigurationBuilder.cs b/lang/cs/Source/TANG/Tang/Interface/ICsInternalConfigurationBuilder.cs
deleted file mode 100644
index 5386edf..0000000
--- a/lang/cs/Source/TANG/Tang/Interface/ICsInternalConfigurationBuilder.cs
+++ /dev/null
@@ -1,70 +0,0 @@
-/**
- * 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.
- */
-
-using System;
-using System.Collections.Generic;
-
-namespace Org.Apache.Reef.Tang.Interface
-{
-    internal interface ICsInternalConfigurationBuilder : ICsConfigurationBuilder
-    {
-        /// <summary>
-        /// Bind named parameters, implementations or external constructors, depending
-        /// on the types of the classes passed in.
-        /// </summary>
-        /// <param name="iface">The iface.</param>
-        /// <param name="impl">The impl.</param>
-        ICsInternalConfigurationBuilder Bind(Type iface, Type impl);
-
-        /// <summary>
-        /// Binds the named parameter.
-        /// </summary>
-        /// <param name="iface">The iface.</param>
-        /// <param name="impl">The impl.</param>
-        ICsInternalConfigurationBuilder BindNamedParameter(Type iface, Type impl);
-
-        /// <summary>
-        /// Binds an external constructor.
-        /// </summary>
-        /// <param name="c">The c.</param>
-        /// <param name="v">The v.</param>
-        ICsInternalConfigurationBuilder BindConstructor(Type c, Type v);
-
-        /// <summary>
-        /// Binds the set entry.
-        /// </summary>
-        /// <param name="iface">The iface.</param>
-        /// <param name="value">The value.</param>
-        ICsInternalConfigurationBuilder BindSetEntry(Type iface, string value);
-
-        /// <summary>
-        /// Binds the set entry.
-        /// </summary>
-        /// <param name="iface">The iface.</param>
-        /// <param name="impl">The impl.</param>
-        ICsInternalConfigurationBuilder BindSetEntry(Type iface, Type impl);
-
-        /// <summary>
-        /// Binds the List entry.
-        /// </summary>
-        /// <param name="iface">The iface.</param>
-        /// <param name="impl">The impl.</param>
-        ICsInternalConfigurationBuilder BindList(Type iface, IList<string> impl);
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/c1b5200f/lang/cs/Source/TANG/Tang/Interface/IExternalConstructor.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Source/TANG/Tang/Interface/IExternalConstructor.cs b/lang/cs/Source/TANG/Tang/Interface/IExternalConstructor.cs
deleted file mode 100644
index eb7bc84..0000000
--- a/lang/cs/Source/TANG/Tang/Interface/IExternalConstructor.cs
+++ /dev/null
@@ -1,26 +0,0 @@
-/**
- * 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.Interface
-{
-    public interface IExternalConstructor<out T>
-    {
-        T NewInstance();
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/c1b5200f/lang/cs/Source/TANG/Tang/Interface/IInjector.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Source/TANG/Tang/Interface/IInjector.cs b/lang/cs/Source/TANG/Tang/Interface/IInjector.cs
deleted file mode 100644
index 282a9d1..0000000
--- a/lang/cs/Source/TANG/Tang/Interface/IInjector.cs
+++ /dev/null
@@ -1,180 +0,0 @@
-/**
- * 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.
- */
-using System;
-using Org.Apache.Reef.Tang.Annotations;
-using Org.Apache.Reef.Tang.Implementations;
-using Org.Apache.Reef.Tang.Util;
-
-namespace Org.Apache.Reef.Tang.Interface
-{
-    public interface IInjector
-    {
-        /// <summary>
-        /// Gets an instance of iface, or the implementation that has been bound to it.
-        /// </summary>
-        /// <param name="iface">The iface.</param>
-        /// <returns></returns>
-        object GetInstance(Type iface);
-
-        /// <summary>
-        /// Gets the instance for a given class
-        /// </summary>
-        /// <typeparam name="T"></typeparam>
-        /// <returns></returns>
-        T GetInstance<T>() where T : class;
-
-        /// <summary>
-        /// Gets the instance for a given class name
-        /// </summary>
-        /// <param name="iface">The iface.</param>
-        /// <returns></returns>
-        object GetInstance(string iface);
-
-        /// <summary>
-        /// Get an instance of the named parameter. 
-        /// </summary>
-        /// <typeparam name="T"></typeparam>
-        /// <typeparam name="U"></typeparam>
-        /// <param name="clazz">The clazz.</param>
-        /// <returns></returns>
-        U GetNamedInstance<T, U>(GenericType<T> clazz) where T : Name<U>;
-
-        /// <summary>
-        /// Get an instance of the named parameter. 
-        /// </summary>
-        /// <param name="t">t, it must inherit from Name</param>
-        /// <returns></returns>
-        object GetNamedInstance(Type t);
-
-        /// <summary>
-        /// Gets the injection plan.
-        /// </summary>
-        /// <param name="name">The name.</param>
-        /// <returns></returns>
-        InjectionPlan GetInjectionPlan(Type name);
-
-        /// <summary>
-        /// Gets the injection plan for a given class name
-        /// </summary>
-        /// <param name="name">The name.</param>
-        /// <returns></returns>
-        InjectionPlan GetInjectionPlan(String name);
-
-        /// <summary>
-        /// Binds the aspect.
-        /// </summary>
-        /// <param name="a">A.</param>
-        void BindAspect(Aspect a);
-
-        /// <summary>
-        /// Gets the aspect.
-        /// </summary>
-        /// <returns></returns>
-        Aspect GetAspect();
-
-        /// <summary>
-        /// Determines whether the specified name is injectable.
-        /// </summary>
-        /// <param name="name">The name.</param>
-        /// <returns>
-        ///   <c>true</c> if the specified name is injectable; otherwise, <c>false</c>.
-        /// </returns>
-        bool IsInjectable(string name);
-
-        /// <summary>
-        /// Determines whether [is parameter set] [the specified name].
-        /// </summary>
-        /// <param name="name">The name.</param>
-        /// <returns>
-        ///   <c>true</c> if [is parameter set] [the specified name]; otherwise, <c>false</c>.
-        /// </returns>
-        bool IsParameterSet(String name);
-
-        /// <summary>
-        /// Determines whether the specified clazz is injectable.
-        /// </summary>
-        /// <param name="clazz">The clazz.</param>
-        /// <returns>
-        ///   <c>true</c> if the specified clazz is injectable; otherwise, <c>false</c>.
-        /// </returns>
-        bool IsInjectable(Type clazz);
-
-        /// <summary>
-        /// Determines whether [is parameter set] [the specified name].
-        /// </summary>
-        /// <param name="name">The name.</param>
-        /// <returns>
-        ///   <c>true</c> if [is parameter set] [the specified name]; otherwise, <c>false</c>.
-        /// </returns>
-        bool IsParameterSet(Type name);
-
-        /// <summary>
-        /// Forks the injector.
-        /// </summary>
-        /// <returns></returns>
-        IInjector ForkInjector();
-
-        /// <summary>
-        /// Forks the injector.
-        /// </summary>
-        /// <param name="configurations">The configurations.</param>
-        /// <returns></returns>
-        IInjector ForkInjector(IConfiguration[] configurations);
-
-        /// <summary>
-        /// Binds the volatile instance.
-        /// </summary>
-        /// <typeparam name="T"></typeparam>
-        /// <param name="iface">The iface.</param>
-        /// <param name="inst">The inst.</param>
-        void BindVolatileInstance<T>(GenericType<T> iface, T inst);
-
-        /// <summary>
-        /// Binds the volatile parameter.
-        /// </summary>
-        /// <typeparam name="U"></typeparam>
-        /// <typeparam name="T"></typeparam>
-        /// <param name="iface">The iface.</param>
-        /// <param name="inst">The inst.</param>
-        void BindVolatileParameter<U, T>(GenericType<U> iface, T inst) where U : Name<T>;
-
-        /// <summary>
-        /// Gets the named instance.
-        /// </summary>
-        /// <typeparam name="T"></typeparam>
-        /// <typeparam name="U"></typeparam>
-        /// <returns></returns>
-        U GetNamedInstance<T, U>() where T : Name<U>;
-
-        /// <summary>
-        /// Binds the volatile instance.
-        /// </summary>
-        /// <typeparam name="T"></typeparam>
-        /// <param name="inst">The inst.</param>
-        void BindVolatileInstance<T>(T inst);
-
-        /// <summary>
-        /// Binds the volatile parameter.
-        /// </summary>
-        /// <typeparam name="U"></typeparam>
-        /// <typeparam name="T"></typeparam>
-        /// <param name="inst">The inst.</param>
-        void BindVolatileParameter<U, T>(T inst) where U : Name<T>;
-      }
-}

http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/c1b5200f/lang/cs/Source/TANG/Tang/Interface/ITang.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Source/TANG/Tang/Interface/ITang.cs b/lang/cs/Source/TANG/Tang/Interface/ITang.cs
deleted file mode 100644
index 673662f..0000000
--- a/lang/cs/Source/TANG/Tang/Interface/ITang.cs
+++ /dev/null
@@ -1,46 +0,0 @@
-/**
- * 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.
- */
-using System;
-using System.Collections.Generic;
-
-namespace Org.Apache.Reef.Tang.Interface
-{
-    public interface ITang
-    {
-        IInjector NewInjector();
-        IInjector NewInjector(IConfiguration[] confs);
-        IInjector NewInjector(IConfiguration confs);
-        IInjector NewInjector(string[] assemblies, string configurationFileName);
-        IInjector NewInjector(string[] assemblies, IDictionary<string, string> configurations);
-        IInjector NewInjector(string[] assemblies, IList<KeyValuePair<string, string>> configurations);
-        IClassHierarchy GetClassHierarchy(string[] assemblies);
-        ICsClassHierarchy GetDefaultClassHierarchy();
-        ICsClassHierarchy GetDefaultClassHierarchy(string[] assemblies, Type[] parameterParsers);
-
-        ICsConfigurationBuilder NewConfigurationBuilder();
-        ICsConfigurationBuilder NewConfigurationBuilder(string[] assemblies);
-        ICsConfigurationBuilder NewConfigurationBuilder(IConfiguration[] confs);
-        ICsConfigurationBuilder NewConfigurationBuilder(IConfiguration conf);
-        ICsConfigurationBuilder NewConfigurationBuilder(string[] assemblies, IConfiguration[] confs, Type[] parameterParsers);
-        IConfigurationBuilder NewConfigurationBuilder(IClassHierarchy classHierarchy);
-        ICsConfigurationBuilder NewConfigurationBuilder(ICsClassHierarchy classHierarchy);
-
-        ICsConfigurationBuilder NewConfigurationBuilder(Type[] parameterParsers);
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/c1b5200f/lang/cs/Source/TANG/Tang/Properties/AssemblyInfo.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Source/TANG/Tang/Properties/AssemblyInfo.cs b/lang/cs/Source/TANG/Tang/Properties/AssemblyInfo.cs
deleted file mode 100644
index eb9116c..0000000
--- a/lang/cs/Source/TANG/Tang/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,55 +0,0 @@
-/**
- * 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.
- */
-
-using System.Reflection;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following 
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("Tang")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("Tang")]
-[assembly: AssemblyCopyright("Copyright ©  2015")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible 
-// to COM components.  If you need to access a type in this assembly from 
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("9be5f89c-7b7e-4236-ac54-10fda8eef58e")]
-
-// Version information for an assembly consists of the following four values:
-//
-//      Major Version
-//      Minor Version 
-//      Build Number
-//      Revision
-//
-// You can specify all the values or you can default the Build and Revision Numbers 
-// by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]

http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/c1b5200f/lang/cs/Source/TANG/Tang/Protobuf/ProtocolBufferClassHierarchy.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Source/TANG/Tang/Protobuf/ProtocolBufferClassHierarchy.cs b/lang/cs/Source/TANG/Tang/Protobuf/ProtocolBufferClassHierarchy.cs
deleted file mode 100644
index 15ae379..0000000
--- a/lang/cs/Source/TANG/Tang/Protobuf/ProtocolBufferClassHierarchy.cs
+++ /dev/null
@@ -1,473 +0,0 @@
-/**
- * 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.
- */
-
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-using Org.Apache.Reef.Utilities.Logging;
-using Org.Apache.Reef.Tang.Exceptions;
-using Org.Apache.Reef.Tang.Implementations;
-using Org.Apache.Reef.Tang.Interface;
-using Org.Apache.Reef.Tang.Types;
-using ProtoBuf;
-
-namespace Org.Apache.Reef.Tang.Protobuf
-{
-    public class ProtocolBufferClassHierarchy : IClassHierarchy
-    {
-        private static readonly Logger LOGGER = Logger.GetLogger(typeof(ProtocolBufferClassHierarchy));
-
-        private IPackageNode rootNode;
-        private IDictionary<string, INode> lookupTable = new Dictionary<string, INode>();
-
-        public static void Serialize(string fileName, IClassHierarchy classHierarchy)
-        {
-            ClassHierarchyProto.Node node = Serialize(classHierarchy);
-
-            using (var file = File.Create(fileName))
-            {
-                Serializer.Serialize<ClassHierarchyProto.Node>(file, node);
-            }
-        }
-
-        public static ClassHierarchyProto.Node Serialize(IClassHierarchy classHierarchy)
-        {
-            return SerializeNode(classHierarchy.GetNamespace());
-        }
-
-        private static ClassHierarchyProto.Node SerializeNode(INode n)
-        {
-            IList<ClassHierarchyProto.Node> children = new List<ClassHierarchyProto.Node>();
-
-            foreach (INode child in n.GetChildren())
-            {
-                children.Add(SerializeNode(child));
-            }
-
-            if (n is IClassNode)
-            {
-                IClassNode cn = (IClassNode)n;
-                IList<IConstructorDef> injectable = cn.GetInjectableConstructors();
-                IList<IConstructorDef> all = cn.GetAllConstructors();
-                IList<IConstructorDef> others = new List<IConstructorDef>(all);
-
-                foreach (var c in injectable)
-                {
-                    others.Remove(c);
-                }
-
-                IList<ClassHierarchyProto.ConstructorDef> injectableConstructors = new List<ClassHierarchyProto.ConstructorDef>();
-                foreach (IConstructorDef inj in injectable)
-                {
-                    injectableConstructors.Add(SerializeConstructorDef(inj));
-                }
-
-                IList<ClassHierarchyProto.ConstructorDef> otherConstructors = new List<ClassHierarchyProto.ConstructorDef>();
-                foreach (IConstructorDef other in others)
-                {
-                    otherConstructors.Add(SerializeConstructorDef(other));
-                }
-
-                List<string> implFullNames = new List<string>();
-                foreach (IClassNode impl in cn.GetKnownImplementations())
-                {
-                    implFullNames.Add(impl.GetFullName());  //we use class fully qualifed name 
-                }
-
-                return NewClassNode(cn.GetName(), cn.GetFullName(),
-                    cn.IsInjectionCandidate(), cn.IsExternalConstructor(), cn.IsUnit(),
-                    injectableConstructors, otherConstructors, implFullNames, children);
-            }
-            if (n is INamedParameterNode)
-            {
-                INamedParameterNode np = (INamedParameterNode)n;
-                return NewNamedParameterNode(np.GetName(), np.GetFullName(),
-                    np.GetSimpleArgName(), np.GetFullArgName(), np.IsSet(), np.IsList(), np.GetDocumentation(),
-                    np.GetShortName(), np.GetDefaultInstanceAsStrings(), children);
-            }
-            if (n is IPackageNode)
-            {
-                return NewPackageNode(n.GetName(), n.GetFullName(), children);
-            }
-            Org.Apache.Reef.Utilities.Diagnostics.Exceptions.Throw(new IllegalStateException("Encountered unknown type of Node: " + n), LOGGER);
-            return null;
-        }
-
-        private static ClassHierarchyProto.ConstructorDef SerializeConstructorDef(IConstructorDef def)
-        {
-            IList<ClassHierarchyProto.ConstructorArg> args = new List<ClassHierarchyProto.ConstructorArg>();
-            foreach (IConstructorArg arg in def.GetArgs())
-            {
-                args.Add(NewConstructorArg(arg.Gettype(), arg.GetNamedParameterName(), arg.IsInjectionFuture()));
-            }
-            return newConstructorDef(def.GetClassName(), args);
-        }
-
-        private static ClassHierarchyProto.ConstructorArg NewConstructorArg(
-            string fullArgClassName, string namedParameterName, bool isFuture)
-        {
-            ClassHierarchyProto.ConstructorArg constArg = new ClassHierarchyProto.ConstructorArg();
-            constArg.full_arg_class_name = fullArgClassName;
-            constArg.named_parameter_name = namedParameterName;
-            constArg.is_injection_future = isFuture;
-            return constArg;
-        }
-
-        private static ClassHierarchyProto.ConstructorDef newConstructorDef(
-             String fullClassName, IList<ClassHierarchyProto.ConstructorArg> args)
-        {
-            ClassHierarchyProto.ConstructorDef constDef = new ClassHierarchyProto.ConstructorDef();
-            constDef.full_class_name = fullClassName;
-            foreach (ClassHierarchyProto.ConstructorArg arg in args)
-            {
-                constDef.args.Add(arg);
-            }
-
-            return constDef;
-        }
-
-        private static ClassHierarchyProto.Node NewClassNode(String name,
-            String fullName, bool isInjectionCandidate,
-            bool isExternalConstructor, bool isUnit,
-            IList<ClassHierarchyProto.ConstructorDef> injectableConstructors,
-            IList<ClassHierarchyProto.ConstructorDef> otherConstructors,
-            IList<String> implFullNames, IList<ClassHierarchyProto.Node> children)
-        {
-            ClassHierarchyProto.ClassNode classNode = new ClassHierarchyProto.ClassNode();
-            classNode.is_injection_candidate = isInjectionCandidate;
-            foreach (var ic in injectableConstructors)
-            {
-                classNode.InjectableConstructors.Add(ic);
-            }
-
-            foreach (var oc in otherConstructors)
-            {
-                classNode.OtherConstructors.Add(oc);
-            }
-            foreach (var implFullName in implFullNames)
-            {
-                classNode.impl_full_names.Add(implFullName);
-            }
-
-            ClassHierarchyProto.Node n = new ClassHierarchyProto.Node();
-            n.name = name;
-            n.full_name = fullName;
-            n.class_node = classNode;
-
-            foreach (var c in children)
-            {
-                n.children.Add(c);
-            }
-
-            return n;
-        }
-
-        private static ClassHierarchyProto.Node NewNamedParameterNode(string name,
-            string fullName, string simpleArgClassName, string fullArgClassName,
-            bool isSet, bool isList, string documentation, // can be null
-            string shortName, // can be null
-            string[] instanceDefault, // can be null
-            IList<ClassHierarchyProto.Node> children)
-        {
-            ClassHierarchyProto.NamedParameterNode namedParameterNode = new ClassHierarchyProto.NamedParameterNode();
-            namedParameterNode.simple_arg_class_name = simpleArgClassName;
-            namedParameterNode.full_arg_class_name = fullArgClassName;
-            namedParameterNode.is_set = isSet;
-            namedParameterNode.is_list = isList;
-
-            if (documentation != null)
-            {
-                namedParameterNode.documentation = documentation;
-            }
-
-            if (shortName != null)
-            {
-                namedParameterNode.short_name = shortName;
-            }
-
-            foreach (var id in instanceDefault)
-            {
-                namedParameterNode.instance_default.Add(id);
-            }
-
-            ClassHierarchyProto.Node n = new ClassHierarchyProto.Node();
-            n.name = name;
-            n.full_name = fullName;
-            n.named_parameter_node = namedParameterNode;
-
-            foreach (var c in children)
-            {
-                n.children.Add(c);
-            }
-
-            return n;
-        }
-
-        private static ClassHierarchyProto.Node NewPackageNode(string name,
-            string fullName, IList<ClassHierarchyProto.Node> children)
-        {
-            ClassHierarchyProto.PackageNode packageNode = new ClassHierarchyProto.PackageNode();
-            ClassHierarchyProto.Node n = new ClassHierarchyProto.Node();
-            n.name = name;
-            n.full_name = fullName;
-            n.package_node = packageNode;
-
-            foreach (var c in children)
-            {
-                n.children.Add(c);
-            }
-
-            return n;
-        }
-
-        public static IClassHierarchy DeSerialize(string fileName)
-        {
-            ClassHierarchyProto.Node root;
-
-            using (var file = File.OpenRead(fileName))
-            {
-                root = Serializer.Deserialize<ClassHierarchyProto.Node>(file);
-            }
-
-            return new ProtocolBufferClassHierarchy(root);
-        }
-
-        public ProtocolBufferClassHierarchy()  //create a ProtocolBufferClassHierarchy with empty nodes and lookup table. It can be used to merge other class hierarchy to it
-        {
-            this.rootNode = new PackageNodeImpl();
-        }
-
-        public ProtocolBufferClassHierarchy(ClassHierarchyProto.Node root)
-        {
-            this.rootNode = new PackageNodeImpl();
-            if (root.package_node == null)
-            {
-                Org.Apache.Reef.Utilities.Diagnostics.Exceptions.Throw(new ArgumentException("Expected a package node.  Got: " + root), LOGGER); 
-            }
-            // Register all the classes.
-            foreach (ClassHierarchyProto.Node child in root.children)
-            {
-                ParseSubHierarchy(rootNode, child);
-            }
-            
-            BuildHashTable(rootNode);
-
-            foreach (ClassHierarchyProto.Node child in root.children)
-            {
-                WireUpInheritanceRelationships(child);
-            }
-        }
-
-        public void BuildHashTable(INode n)
-        {
-            foreach (INode child in n.GetChildren())
-            {
-                lookupTable.Add(child.GetFullName(), child);
-                BuildHashTable(child);
-            }
-        }
-
-        private static void ParseSubHierarchy(INode parent, ClassHierarchyProto.Node n)
-        {
-            INode parsed = null;
-            if (n.package_node != null)
-            {
-                parsed = new PackageNodeImpl(parent, n.name, n.full_name);
-            }
-            else if (n.named_parameter_node != null)
-            {
-                ClassHierarchyProto.NamedParameterNode np = n.named_parameter_node;
-                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());
-            }
-            else if (n.class_node != null)
-            {
-                ClassHierarchyProto.ClassNode cn = n.class_node;
-                IList<IConstructorDef> injectableConstructors = new List<IConstructorDef>();
-                IList<IConstructorDef> allConstructors = new List<IConstructorDef>();
-
-                foreach (ClassHierarchyProto.ConstructorDef injectable in cn.InjectableConstructors)
-                {
-                    IConstructorDef def = ParseConstructorDef(injectable, true);
-                    injectableConstructors.Add(def);
-                    allConstructors.Add(def);
-                }
-                foreach (ClassHierarchyProto.ConstructorDef other in cn.OtherConstructors)
-                {
-                    IConstructorDef def = ParseConstructorDef(other, false);
-                    allConstructors.Add(def);
-
-                }
-
-                IConstructorDef[] dummy = new ConstructorDefImpl[0];
-                parsed = new ClassNodeImpl(parent, n.name, n.full_name,
-                cn.is_unit, cn.is_injection_candidate,
-                cn.is_external_constructor, injectableConstructors,
-                allConstructors, cn.default_implementation);
-            }
-            else
-            {
-                Org.Apache.Reef.Utilities.Diagnostics.Exceptions.Throw(new IllegalStateException("Bad protocol buffer: got abstract node" + n), LOGGER); 
-            }
-
-            foreach (ClassHierarchyProto.Node child in n.children)
-            {
-                ParseSubHierarchy(parsed, child);
-            }
-        }
-
-        private static IConstructorDef ParseConstructorDef(ClassHierarchyProto.ConstructorDef def, bool isInjectable)
-        {
-            IList<IConstructorArg> args = new List<IConstructorArg>();
-            foreach (ClassHierarchyProto.ConstructorArg arg in def.args)
-            {
-                args.Add(new ConstructorArgImpl(arg.full_arg_class_name, arg.named_parameter_name, arg.is_injection_future));
-            }
-            return new ConstructorDefImpl(def.full_class_name, args.ToArray(), isInjectable);
-        }
-
-        private void WireUpInheritanceRelationships(ClassHierarchyProto.Node n)
-        {
-            if (n.class_node != null)
-            {
-                ClassHierarchyProto.ClassNode cn = n.class_node;
-                IClassNode iface = null;
-                try
-                {
-                    iface = (IClassNode)GetNode(n.full_name);
-                }
-                catch (NameResolutionException e)
-                {
-                    Org.Apache.Reef.Utilities.Diagnostics.Exceptions.Caught(e, Level.Error, LOGGER);
-                    var ex = new IllegalStateException("When reading protocol buffer node "
-                        + n.full_name + " does not exist.  Full record is " + n, e);
-                    Org.Apache.Reef.Utilities.Diagnostics.Exceptions.Throw(ex, LOGGER); 
-                }
-                foreach (String impl in cn.impl_full_names)
-                {
-                    try
-                    {
-                        iface.PutImpl((IClassNode)GetNode(impl));
-                    }
-                    catch (NameResolutionException e)
-                    {
-                        Org.Apache.Reef.Utilities.Diagnostics.Exceptions.Caught(e, Level.Error, LOGGER);
-                        var ex = new IllegalStateException("When reading protocol buffer node "
-                            + n + " refers to non-existent implementation:" + impl);
-                        Org.Apache.Reef.Utilities.Diagnostics.Exceptions.Throw(ex, LOGGER); 
-
-                    }
-                    catch (InvalidCastException e)
-                    {
-                        Org.Apache.Reef.Utilities.Diagnostics.Exceptions.Caught(e, Level.Error, LOGGER);
-                        try
-                        {
-                            var ex = new IllegalStateException(
-                                "When reading protocol buffer node " + n
-                                + " found implementation" + GetNode(impl)
-                                + " which is not a ClassNode!");
-                            Org.Apache.Reef.Utilities.Diagnostics.Exceptions.Throw(ex, LOGGER);
-                        }
-                        catch (NameResolutionException ne)
-                        {
-                            Org.Apache.Reef.Utilities.Diagnostics.Exceptions.Caught(ne, Level.Error, LOGGER);
-                            var ex = new IllegalStateException(
-                                "Got 'cant happen' exception when producing error message for " + e);
-                            Org.Apache.Reef.Utilities.Diagnostics.Exceptions.Throw(ex, LOGGER);
-                        }
-                    }
-                }
-            }
-        }
-
-        public INode GetNode(String fullName)
-        {
-            INode ret;
-            lookupTable.TryGetValue(fullName, out ret);
-            if (ret == null)
-            {
-                var ex = new NameResolutionException(fullName, "Cannot resolve the name from the class hierarchy during deserialization: " + fullName);
-                Org.Apache.Reef.Utilities.Diagnostics.Exceptions.Throw(ex, LOGGER);
-            }
-            return ret;
-        }
-
-        public INode GetNamespace()
-        {
-            return rootNode;
-        }
-
-        public bool IsImplementation(IClassNode inter, IClassNode impl)
-        {
-            return impl.IsImplementationOf(inter);
-        }
-
-        public IClassHierarchy Merge(IClassHierarchy ch)
-        {
-            if (this == ch)
-            {
-                return this;
-            }
-
-            if (!(ch is ProtocolBufferClassHierarchy))
-            {         
-                Org.Apache.Reef.Utilities.Diagnostics.Exceptions.Throw(new NotSupportedException(
-                                                            "Cannot merge ExternalClassHierarchies yet!"), LOGGER);
-            }
-
-            ProtocolBufferClassHierarchy pch = (ProtocolBufferClassHierarchy)ch;
-            foreach (var pair in pch.lookupTable)
-            {
-                if (!this.lookupTable.ContainsKey(pair.Key))
-                {
-                    this.lookupTable.Add(pair);
-                }
-            }
-
-            foreach (INode n in ch.GetNamespace().GetChildren())
-            {
-                if (!rootNode.Contains(n.GetFullName()))
-                {
-                    if (n is INamedParameterNode)
-                    {
-                        INamedParameterNode np = (INamedParameterNode) n;
-                        new NamedParameterNodeImpl(this.rootNode, np.GetName(),
-                                                   np.GetFullName(), np.GetFullArgName(), np.GetSimpleArgName(),
-                                                   np.IsSet(), np.IsList(), np.GetDocumentation(), np.GetShortName(),
-                                                   np.GetDefaultInstanceAsStrings().ToArray());
-                    }
-                    else if (n is IClassNode)
-                    {
-                        IClassNode cn = (IClassNode) n;
-                        new ClassNodeImpl(rootNode, cn.GetName(), cn.GetFullName(),
-                                          cn.IsUnit(), cn.IsInjectionCandidate(),
-                                          cn.IsExternalConstructor(), cn.GetInjectableConstructors(),
-                                          cn.GetAllConstructors(), cn.GetDefaultImplementation());
-                    }
-                }
-            }
-
-            return this;
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/c1b5200f/lang/cs/Source/TANG/Tang/Protobuf/ProtocolBufferInjectionPlan.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Source/TANG/Tang/Protobuf/ProtocolBufferInjectionPlan.cs b/lang/cs/Source/TANG/Tang/Protobuf/ProtocolBufferInjectionPlan.cs
deleted file mode 100644
index 8d503ae..0000000
--- a/lang/cs/Source/TANG/Tang/Protobuf/ProtocolBufferInjectionPlan.cs
+++ /dev/null
@@ -1,204 +0,0 @@
-/**
- * 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.
- */
-
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-using Org.Apache.Reef.Utilities.Logging;
-using Org.Apache.Reef.Tang.Exceptions;
-using Org.Apache.Reef.Tang.Implementations;
-using Org.Apache.Reef.Tang.Interface;
-using Org.Apache.Reef.Tang.Types;
-using ProtoBuf;
-
-namespace Org.Apache.Reef.Tang.Protobuf
-{
-    public class ProtocolBufferInjectionPlan
-    {
-        private static readonly Logger LOGGER = Logger.GetLogger(typeof(ProtocolBufferInjectionPlan));
-
-        private static InjectionPlanProto.InjectionPlan NewConstructor(string fullName, List<InjectionPlanProto.InjectionPlan> plans) 
-        {
-            InjectionPlanProto.Constructor cconstr = new InjectionPlanProto.Constructor();
-            foreach (InjectionPlanProto.InjectionPlan p in plans)
-            {
-                cconstr.args.Add(p);
-            }
-
-            InjectionPlanProto.InjectionPlan plan = new InjectionPlanProto.InjectionPlan();
-            plan.name = fullName;
-            plan.constructor = cconstr;
-            return plan;
-        }
-
-        private static InjectionPlanProto.InjectionPlan NewSubplan(string fullName, int selectedPlan, List<InjectionPlanProto.InjectionPlan> plans) 
-        {
-            InjectionPlanProto.Subplan subPlan = new InjectionPlanProto.Subplan();
-
-            subPlan.selected_plan = selectedPlan;
-            foreach (InjectionPlanProto.InjectionPlan p in plans)
-            {
-                subPlan.plans.Add(p);
-            }
-
-            InjectionPlanProto.InjectionPlan plan = new InjectionPlanProto.InjectionPlan();
-            plan.name = fullName;
-            plan.subplan = subPlan;
-            return plan;
-        }
-
-        private static InjectionPlanProto.InjectionPlan NewInstance(string fullName, string value)
-        {
-            InjectionPlanProto.Instance instance = new InjectionPlanProto.Instance();
-            instance.value = value;
-
-            InjectionPlanProto.InjectionPlan plan = new InjectionPlanProto.InjectionPlan();
-            plan.name = fullName;
-            plan.instance = instance;
-            return plan;
-
-        }
-
-        public static void Serialize(string fileName, InjectionPlan ip)
-        {
-            InjectionPlanProto.InjectionPlan plan = Serialize(ip);
-
-            using (var file = File.Create(fileName))
-            {
-                Serializer.Serialize<InjectionPlanProto.InjectionPlan>(file, plan);
-            }
-        }
-
-        public static InjectionPlanProto.InjectionPlan Serialize(InjectionPlan ip) 
-        {
-            if (ip is Constructor) 
-            {
-                Constructor cons = (Constructor) ip;
-                InjectionPlan[] args = cons.GetArgs();
-                InjectionPlanProto.InjectionPlan[] protoArgs = new InjectionPlanProto.InjectionPlan[args.Length];
-                for (int i = 0; i < args.Length; i++) 
-                {
-                    protoArgs[i] = Serialize(args[i]);
-                }
-                return NewConstructor(ip.GetNode().GetFullName(), protoArgs.ToList<InjectionPlanProto.InjectionPlan>());
-            } 
-            if (ip is Subplan) 
-            {
-                Subplan sp = (Subplan) ip;
-                InjectionPlan[] args = sp.GetPlans();
-                InjectionPlanProto.InjectionPlan[] subPlans = new InjectionPlanProto.InjectionPlan[args.Length];
-                for (int i = 0; i < args.Length; i++) 
-                {
-                    subPlans[i] = Serialize(args[i]);
-                }
-                return NewSubplan(ip.GetNode().GetFullName(), sp.GetSelectedIndex(), subPlans.ToList<InjectionPlanProto.InjectionPlan>());
-
-            } 
-            if (ip is CsInstance) 
-            {
-                CsInstance ji = (CsInstance) ip;
-                return NewInstance(ip.GetNode().GetFullName(), ji.GetInstanceAsString());
-            } 
-            Org.Apache.Reef.Utilities.Diagnostics.Exceptions.Throw(new IllegalStateException(
-                    "Encountered unknown type of InjectionPlan: " + ip), LOGGER);
-            return null;
-        }
-
-        public static InjectionPlan DeSerialize(string fileName, IClassHierarchy ch)
-        {
-            InjectionPlanProto.InjectionPlan protoPlan;
-
-            using (var file = File.OpenRead(fileName))
-            {
-                protoPlan = Serializer.Deserialize<InjectionPlanProto.InjectionPlan>(file);
-            }
-
-            return Deserialize(ch, protoPlan);
-        }
-
-        public static InjectionPlan Deserialize(IClassHierarchy ch, InjectionPlanProto.InjectionPlan ip) 
-        {
-            string fullName = ip.name;
-            if (ip.constructor != null) 
-            {
-                InjectionPlanProto.Constructor cons = ip.constructor;
-                IClassNode cn = (IClassNode) ch.GetNode(fullName);
-
-                InjectionPlanProto.InjectionPlan[] protoBufArgs = cons.args.ToArray();
-
-                IClassNode[] cnArgs = new IClassNode[protoBufArgs.Length];
-
-                for (int i = 0; i < protoBufArgs.Length; i++) 
-                {
-                    INode no = ch.GetNode(protoBufArgs[i].name);
-                    if (no is IClassNode)
-                    {
-                        cnArgs[i] = (IClassNode)no;
-                    }
-                    else if (no is INamedParameterNode)
-                    {
-                        INamedParameterNode np = (INamedParameterNode)no;
-                        cnArgs[i] = (IClassNode)ch.GetNode(np.GetFullArgName());
-                    }
-                }
-
-                InjectionPlan[] ipArgs = new InjectionPlan[protoBufArgs.Length];
-
-                for (int i = 0; i < protoBufArgs.Length; i++) 
-                {
-                    ipArgs[i] = (InjectionPlan) Deserialize(ch, protoBufArgs[i]);
-                }
-
-                IConstructorDef constructor = cn.GetConstructorDef(cnArgs);
-                return new Constructor(cn, constructor, ipArgs);
-            }
-            if (ip.instance != null) 
-            {
-                InjectionPlanProto.Instance ins = ip.instance;
-                object instance = Parse(ip.name, ins.value);
-                return new CsInstance(ch.GetNode(ip.name), instance);
-            } 
-            if (ip.subplan != null) 
-            {
-                InjectionPlanProto.Subplan subplan = ip.subplan;
-                InjectionPlanProto.InjectionPlan[] protoBufPlans = subplan.plans.ToArray();
-          
-                InjectionPlan[] subPlans = new InjectionPlan[protoBufPlans.Length];
-                for (int i = 0; i < protoBufPlans.Length; i++) 
-                {
-                    subPlans[i] = (InjectionPlan) Deserialize(ch, protoBufPlans[i]);
-                }
-                INode n = ch.GetNode(fullName);
-                return new Subplan(n, subPlans);
-            } 
-            Org.Apache.Reef.Utilities.Diagnostics.Exceptions.Throw(new IllegalStateException("Encountered unknown type of InjectionPlan: " + ip), LOGGER);
-            return null;
-        }
-
-        private static object Parse(String type, String value)
-        {
-            // XXX this is a placeholder for now.  We need a parser API that will
-            // either produce a live java object or (partially) validate stuff to
-            // see if it looks like the target language will be able to handle this
-            // type + value.
-            return value;
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-reef/blob/c1b5200f/lang/cs/Source/TANG/Tang/Protobuf/class_hierarchy.cs
----------------------------------------------------------------------
diff --git a/lang/cs/Source/TANG/Tang/Protobuf/class_hierarchy.cs b/lang/cs/Source/TANG/Tang/Protobuf/class_hierarchy.cs
deleted file mode 100644
index 62ffa08..0000000
--- a/lang/cs/Source/TANG/Tang/Protobuf/class_hierarchy.cs
+++ /dev/null
@@ -1,274 +0,0 @@
-/**
- * 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.
- */
-
-//------------------------------------------------------------------------------
-// <auto-generated>
-//     This code was generated by a tool.
-//
-//     Changes to this file may cause incorrect behavior and will be lost if
-//     the code is regenerated.
-// </auto-generated>
-//------------------------------------------------------------------------------
-
-// Generated from: class_hierarchy.proto
-namespace ClassHierarchyProto
-{
-  [global::System.Serializable, global::ProtoBuf.ProtoContract(Name=@"Node")]
-  public partial class Node : global::ProtoBuf.IExtensible
-  {
-    public Node() {}
-    
-    private string _name;
-    [global::ProtoBuf.ProtoMember(1, IsRequired = true, Name=@"name", DataFormat = global::ProtoBuf.DataFormat.Default)]
-    public string name
-    {
-      get { return _name; }
-      set { _name = value; }
-    }
-    private string _full_name;
-    [global::ProtoBuf.ProtoMember(2, IsRequired = true, Name=@"full_name", DataFormat = global::ProtoBuf.DataFormat.Default)]
-    public string full_name
-    {
-      get { return _full_name; }
-      set { _full_name = value; }
-    }
-    private ClassNode _class_node = null;
-    [global::ProtoBuf.ProtoMember(3, IsRequired = false, Name=@"class_node", DataFormat = global::ProtoBuf.DataFormat.Default)]
-    [global::System.ComponentModel.DefaultValue(null)]
-    public ClassNode class_node
-    {
-      get { return _class_node; }
-      set { _class_node = value; }
-    }
-    private NamedParameterNode _named_parameter_node = null;
-    [global::ProtoBuf.ProtoMember(4, IsRequired = false, Name=@"named_parameter_node", DataFormat = global::ProtoBuf.DataFormat.Default)]
-    [global::System.ComponentModel.DefaultValue(null)]
-    public NamedParameterNode named_parameter_node
-    {
-      get { return _named_parameter_node; }
-      set { _named_parameter_node = value; }
-    }
-    private PackageNode _package_node = null;
-    [global::ProtoBuf.ProtoMember(5, IsRequired = false, Name=@"package_node", DataFormat = global::ProtoBuf.DataFormat.Default)]
-    [global::System.ComponentModel.DefaultValue(null)]
-    public PackageNode package_node
-    {
-      get { return _package_node; }
-      set { _package_node = value; }
-    }
-    private readonly global::System.Collections.Generic.List<Node> _children = new global::System.Collections.Generic.List<Node>();
-    [global::ProtoBuf.ProtoMember(6, Name=@"children", DataFormat = global::ProtoBuf.DataFormat.Default)]
-    public global::System.Collections.Generic.List<Node> children
-    {
-      get { return _children; }
-    }
-  
-    private global::ProtoBuf.IExtension extensionObject;
-    global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
-      { return global::ProtoBuf.Extensible.GetExtensionObject(ref extensionObject, createIfMissing); }
-  }
-  
-  [global::System.Serializable, global::ProtoBuf.ProtoContract(Name=@"ClassNode")]
-  public partial class ClassNode : global::ProtoBuf.IExtensible
-  {
-    public ClassNode() {}
-    
-    private bool _is_injection_candidate;
-    [global::ProtoBuf.ProtoMember(1, IsRequired = true, Name=@"is_injection_candidate", DataFormat = global::ProtoBuf.DataFormat.Default)]
-    public bool is_injection_candidate
-    {
-      get { return _is_injection_candidate; }
-      set { _is_injection_candidate = value; }
-    }
-    private bool _is_external_constructor;
-    [global::ProtoBuf.ProtoMember(2, IsRequired = true, Name=@"is_external_constructor", DataFormat = global::ProtoBuf.DataFormat.Default)]
-    public bool is_external_constructor
-    {
-      get { return _is_external_constructor; }
-      set { _is_external_constructor = value; }
-    }
-    private bool _is_unit;
-    [global::ProtoBuf.ProtoMember(3, IsRequired = true, Name=@"is_unit", DataFormat = global::ProtoBuf.DataFormat.Default)]
-    public bool is_unit
-    {
-      get { return _is_unit; }
-      set { _is_unit = value; }
-    }
-    private readonly global::System.Collections.Generic.List<ConstructorDef> _InjectableConstructors = new global::System.Collections.Generic.List<ConstructorDef>();
-    [global::ProtoBuf.ProtoMember(4, Name=@"InjectableConstructors", DataFormat = global::ProtoBuf.DataFormat.Default)]
-    public global::System.Collections.Generic.List<ConstructorDef> InjectableConstructors
-    {
-      get { return _InjectableConstructors; }
-    }
-  
-    private readonly global::System.Collections.Generic.List<ConstructorDef> _OtherConstructors = new global::System.Collections.Generic.List<ConstructorDef>();
-    [global::ProtoBuf.ProtoMember(5, Name=@"OtherConstructors", DataFormat = global::ProtoBuf.DataFormat.Default)]
-    public global::System.Collections.Generic.List<ConstructorDef> OtherConstructors
-    {
-      get { return _OtherConstructors; }
-    }
-  
-    private readonly global::System.Collections.Generic.List<string> _impl_full_names = new global::System.Collections.Generic.List<string>();
-    [global::ProtoBuf.ProtoMember(6, Name=@"impl_full_names", DataFormat = global::ProtoBuf.DataFormat.Default)]
-    public global::System.Collections.Generic.List<string> impl_full_names
-    {
-      get { return _impl_full_names; }
-    }
-  
-    private string _default_implementation = "";
-    [global::ProtoBuf.ProtoMember(7, IsRequired = false, Name=@"default_implementation", DataFormat = global::ProtoBuf.DataFormat.Default)]
-    [global::System.ComponentModel.DefaultValue("")]
-    public string default_implementation
-    {
-      get { return _default_implementation; }
-      set { _default_implementation = value; }
-    }
-    private global::ProtoBuf.IExtension extensionObject;
-    global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
-      { return global::ProtoBuf.Extensible.GetExtensionObject(ref extensionObject, createIfMissing); }
-  }
-  
-  [global::System.Serializable, global::ProtoBuf.ProtoContract(Name=@"NamedParameterNode")]
-  public partial class NamedParameterNode : global::ProtoBuf.IExtensible
-  {
-    public NamedParameterNode() {}
-    
-    private string _simple_arg_class_name;
-    [global::ProtoBuf.ProtoMember(1, IsRequired = true, Name=@"simple_arg_class_name", DataFormat = global::ProtoBuf.DataFormat.Default)]
-    public string simple_arg_class_name
-    {
-      get { return _simple_arg_class_name; }
-      set { _simple_arg_class_name = value; }
-    }
-    private string _full_arg_class_name;
-    [global::ProtoBuf.ProtoMember(2, IsRequired = true, Name=@"full_arg_class_name", DataFormat = global::ProtoBuf.DataFormat.Default)]
-    public string full_arg_class_name
-    {
-      get { return _full_arg_class_name; }
-      set { _full_arg_class_name = value; }
-    }
-    private bool _is_set;
-    [global::ProtoBuf.ProtoMember(3, IsRequired = true, Name=@"is_set", DataFormat = global::ProtoBuf.DataFormat.Default)]
-    public bool is_set
-    {
-      get { return _is_set; }
-      set { _is_set = value; }
-    }
-    private bool _is_list;
-    [global::ProtoBuf.ProtoMember(4, IsRequired = true, Name=@"is_list", DataFormat = global::ProtoBuf.DataFormat.Default)]
-    public bool is_list
-    {
-      get { return _is_list; }
-      set { _is_list = value; }
-    }
-    private string _documentation = "";
-    [global::ProtoBuf.ProtoMember(5, IsRequired = false, Name=@"documentation", DataFormat = global::ProtoBuf.DataFormat.Default)]
-    [global::System.ComponentModel.DefaultValue("")]
-    public string documentation
-    {
-      get { return _documentation; }
-      set { _documentation = value; }
-    }
-    private string _short_name = "";
-    [global::ProtoBuf.ProtoMember(6, IsRequired = false, Name=@"short_name", DataFormat = global::ProtoBuf.DataFormat.Default)]
-    [global::System.ComponentModel.DefaultValue("")]
-    public string short_name
-    {
-      get { return _short_name; }
-      set { _short_name = value; }
-    }
-    private readonly global::System.Collections.Generic.List<string> _instance_default = new global::System.Collections.Generic.List<string>();
-    [global::ProtoBuf.ProtoMember(7, Name=@"instance_default", DataFormat = global::ProtoBuf.DataFormat.Default)]
-    public global::System.Collections.Generic.List<string> instance_default
-    {
-      get { return _instance_default; }
-    }
-  
-    private global::ProtoBuf.IExtension extensionObject;
-    global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
-      { return global::ProtoBuf.Extensible.GetExtensionObject(ref extensionObject, createIfMissing); }
-  }
-  
-  [global::System.Serializable, global::ProtoBuf.ProtoContract(Name=@"PackageNode")]
-  public partial class PackageNode : global::ProtoBuf.IExtensible
-  {
-    public PackageNode() {}
-    
-    private global::ProtoBuf.IExtension extensionObject;
-    global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
-      { return global::ProtoBuf.Extensible.GetExtensionObject(ref extensionObject, createIfMissing); }
-  }
-  
-  [global::System.Serializable, global::ProtoBuf.ProtoContract(Name=@"ConstructorDef")]
-  public partial class ConstructorDef : global::ProtoBuf.IExtensible
-  {
-    public ConstructorDef() {}
-    
-    private string _full_class_name;
-    [global::ProtoBuf.ProtoMember(1, IsRequired = true, Name=@"full_class_name", DataFormat = global::ProtoBuf.DataFormat.Default)]
-    public string full_class_name
-    {
-      get { return _full_class_name; }
-      set { _full_class_name = value; }
-    }
-    private readonly global::System.Collections.Generic.List<ConstructorArg> _args = new global::System.Collections.Generic.List<ConstructorArg>();
-    [global::ProtoBuf.ProtoMember(2, Name=@"args", DataFormat = global::ProtoBuf.DataFormat.Default)]
-    public global::System.Collections.Generic.List<ConstructorArg> args
-    {
-      get { return _args; }
-    }
-  
-    private global::ProtoBuf.IExtension extensionObject;
-    global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
-      { return global::ProtoBuf.Extensible.GetExtensionObject(ref extensionObject, createIfMissing); }
-  }
-  
-  [global::System.Serializable, global::ProtoBuf.ProtoContract(Name=@"ConstructorArg")]
-  public partial class ConstructorArg : global::ProtoBuf.IExtensible
-  {
-    public ConstructorArg() {}
-    
-    private string _full_arg_class_name;
-    [global::ProtoBuf.ProtoMember(1, IsRequired = true, Name=@"full_arg_class_name", DataFormat = global::ProtoBuf.DataFormat.Default)]
-    public string full_arg_class_name
-    {
-      get { return _full_arg_class_name; }
-      set { _full_arg_class_name = value; }
-    }
-    private string _named_parameter_name = "";
-    [global::ProtoBuf.ProtoMember(2, IsRequired = false, Name=@"named_parameter_name", DataFormat = global::ProtoBuf.DataFormat.Default)]
-    [global::System.ComponentModel.DefaultValue("")]
-    public string named_parameter_name
-    {
-      get { return _named_parameter_name; }
-      set { _named_parameter_name = value; }
-    }
-    private bool _is_injection_future;
-    [global::ProtoBuf.ProtoMember(3, IsRequired = true, Name=@"is_injection_future", DataFormat = global::ProtoBuf.DataFormat.Default)]
-    public bool is_injection_future
-    {
-      get { return _is_injection_future; }
-      set { _is_injection_future = value; }
-    }
-    private global::ProtoBuf.IExtension extensionObject;
-    global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
-      { return global::ProtoBuf.Extensible.GetExtensionObject(ref extensionObject, createIfMissing); }
-  }
-  
-}
\ No newline at end of file