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
