using System; using System.Collections.Generic; using System.Text; using Google.ProtocolBuffers.Descriptors; namespace Google.ProtocolBuffers.FieldAccess { internal class SingularFieldAccessor : IFieldAccessor where TMessage : IMessage where TBuilder : IBuilder { readonly HasFunction hasProxy; readonly Action clearProxy; internal SingularFieldAccessor(FieldDescriptor descriptor, String pascalCaseName) { /* Class messageClass, Class builderClass) { getMethod = getMethodOrDie(messageClass, "get" + camelCaseName); type = getMethod.getReturnType(); setMethod = getMethodOrDie(builderClass, "set" + camelCaseName, type); hasMethod = getMethodOrDie(messageClass, "has" + camelCaseName); clearMethod = getMethodOrDie(builderClass, "clear" + camelCaseName); */ } public bool Has(IMessage message) { return false;// hasProxy(message); } public void Clear(TBuilder builder) { // clearProxy(builder); } public TBuilder CreateBuilder() { // return createBuilderProxy(builder); return default(TBuilder); } public object this[IMessage message] { get { return null;/* getProxy(message);*/ } } public object this[IBuilder builder] { set { /*setProxy(builder, value);*/ } } #region Repeated operations (which just throw an exception) public object this[IMessage message, int index] { get { throw new InvalidOperationException("Repeated operation called on singular field"); } } public object this[IBuilder builder, int index] { set { throw new InvalidOperationException("Repeated operation called on singular field"); } } public int GetRepeatedCount(IMessage message) { throw new InvalidOperationException("Repeated operation called on singular field"); } public void AddRepeated(IBuilder builder, object value) { throw new InvalidOperationException("Repeated operation called on singular field"); } #endregion } }