// 
// Decompiled by Procyon v0.6.0
// 

package com.google.protobuf;

import java.util.List;

@Deprecated
public abstract class GeneratedMessageV3 extends GeneratedMessage.ExtendableMessage<GeneratedMessageV3>
{
    private static final long serialVersionUID = 1L;
    
    @Deprecated
    protected GeneratedMessageV3() {
    }
    
    @Deprecated
    protected GeneratedMessageV3(final Builder<?> builder) {
        super(builder);
    }
    
    protected static Internal.IntList newIntList() {
        return new IntArrayList();
    }
    
    protected static Internal.LongList newLongList() {
        return new LongArrayList();
    }
    
    protected static Internal.FloatList newFloatList() {
        return new FloatArrayList();
    }
    
    protected static Internal.DoubleList newDoubleList() {
        return new DoubleArrayList();
    }
    
    protected static Internal.BooleanList newBooleanList() {
        return new BooleanArrayList();
    }
    
    @Deprecated
    protected static Internal.IntList mutableCopy(final Internal.IntList list) {
        return GeneratedMessage.makeMutableCopy(list);
    }
    
    @Deprecated
    protected static Internal.LongList mutableCopy(final Internal.LongList list) {
        return GeneratedMessage.makeMutableCopy(list);
    }
    
    @Deprecated
    protected static Internal.FloatList mutableCopy(final Internal.FloatList list) {
        return GeneratedMessage.makeMutableCopy(list);
    }
    
    @Deprecated
    protected static Internal.DoubleList mutableCopy(final Internal.DoubleList list) {
        return GeneratedMessage.makeMutableCopy(list);
    }
    
    @Deprecated
    protected static Internal.BooleanList mutableCopy(final Internal.BooleanList list) {
        return GeneratedMessage.makeMutableCopy(list);
    }
    
    @Deprecated
    @Override
    protected FieldAccessorTable internalGetFieldAccessorTable() {
        throw new UnsupportedOperationException("Should be overridden in gencode.");
    }
    
    @Deprecated
    protected Object newInstance(final UnusedPrivateParameter unused) {
        throw new UnsupportedOperationException("This method must be overridden by the subclass.");
    }
    
    @Deprecated
    protected abstract Message.Builder newBuilderForType(final BuilderParent parent);
    
    @Deprecated
    @Override
    protected Message.Builder newBuilderForType(final AbstractMessage.BuilderParent parent) {
        return this.newBuilderForType(new BuilderParent() {
            @Override
            public void markDirty() {
                parent.markDirty();
            }
        });
    }
    
    @Deprecated
    protected static final class UnusedPrivateParameter
    {
        static final UnusedPrivateParameter INSTANCE;
        
        private UnusedPrivateParameter() {
        }
        
        static {
            INSTANCE = new UnusedPrivateParameter();
        }
    }
    
    @Deprecated
    public abstract static class Builder<BuilderT extends Builder<BuilderT>> extends GeneratedMessage.ExtendableBuilder<GeneratedMessageV3, BuilderT>
    {
        private BuilderParentImpl meAsParent;
        
        @Deprecated
        protected Builder() {
            super(null);
        }
        
        @Deprecated
        protected Builder(final GeneratedMessageV3.BuilderParent builderParent) {
            super(builderParent);
        }
        
        @Deprecated
        @Override
        public BuilderT clone() {
            return (BuilderT)super.clone();
        }
        
        @Deprecated
        @Override
        public BuilderT clear() {
            return super.clear();
        }
        
        @Deprecated
        @Override
        protected GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
            throw new UnsupportedOperationException("Should be overridden in gencode.");
        }
        
        @Deprecated
        @Override
        public BuilderT setField(final Descriptors.FieldDescriptor field, final Object value) {
            return super.setField(field, value);
        }
        
        @Deprecated
        @Override
        public BuilderT clearField(final Descriptors.FieldDescriptor field) {
            return super.clearField(field);
        }
        
        @Deprecated
        @Override
        public BuilderT clearOneof(final Descriptors.OneofDescriptor oneof) {
            return (BuilderT)super.clearOneof(oneof);
        }
        
        @Deprecated
        @Override
        public BuilderT setRepeatedField(final Descriptors.FieldDescriptor field, final int index, final Object value) {
            return super.setRepeatedField(field, index, value);
        }
        
        @Deprecated
        @Override
        public BuilderT addRepeatedField(final Descriptors.FieldDescriptor field, final Object value) {
            return super.addRepeatedField(field, value);
        }
        
        @Deprecated
        @Override
        public BuilderT setUnknownFields(final UnknownFieldSet unknownFields) {
            return (BuilderT)super.setUnknownFields(unknownFields);
        }
        
        @Deprecated
        @Override
        public BuilderT mergeUnknownFields(final UnknownFieldSet unknownFields) {
            return (BuilderT)super.mergeUnknownFields(unknownFields);
        }
        
        @Deprecated
        @Override
        protected GeneratedMessageV3.BuilderParent getParentForChildren() {
            if (this.meAsParent == null) {
                this.meAsParent = new BuilderParentImpl();
            }
            return this.meAsParent;
        }
        
        @Deprecated
        private class BuilderParentImpl implements GeneratedMessageV3.BuilderParent
        {
            @Override
            public void markDirty() {
                GeneratedMessageV3.Builder.this.onChanged();
            }
        }
    }
    
    @Deprecated
    public abstract static class ExtendableMessage<MessageT extends ExtendableMessage<MessageT>> extends GeneratedMessageV3 implements ExtendableMessageOrBuilder<MessageT>
    {
        @Deprecated
        protected ExtendableMessage() {
        }
        
        @Deprecated
        protected ExtendableMessage(final GeneratedMessageV3.ExtendableBuilder<MessageT, ?> builder) {
            super(builder);
        }
        
        @Deprecated
        @Override
        protected GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() {
            throw new UnsupportedOperationException("Should be overridden in gencode.");
        }
        
        @Deprecated
        @Override
        protected ExtensionWriter newExtensionWriter() {
            return new ExtensionWriter(false);
        }
        
        @Deprecated
        @Override
        protected ExtensionWriter newMessageSetExtensionWriter() {
            return new ExtensionWriter(true);
        }
        
        @Deprecated
        protected class ExtensionWriter extends GeneratedMessage.ExtendableMessage.ExtensionWriter
        {
            private ExtensionWriter(final boolean messageSetWireFormat) {
                super(messageSetWireFormat);
            }
        }
    }
    
    @Deprecated
    public abstract static class ExtendableBuilder<MessageT extends GeneratedMessageV3.ExtendableMessage<MessageT>, BuilderT extends ExtendableBuilder<MessageT, BuilderT>> extends GeneratedMessageV3.Builder<BuilderT> implements GeneratedMessageV3.ExtendableMessageOrBuilder<MessageT>
    {
        @Deprecated
        protected ExtendableBuilder() {
        }
        
        @Deprecated
        protected ExtendableBuilder(final GeneratedMessageV3.BuilderParent parent) {
            super(parent);
        }
        
        @Deprecated
        public <T> BuilderT setExtension(final GeneratedExtension<MessageT, T> extension, final T value) {
            return (BuilderT)this.setExtension((ExtensionLite<? extends GeneratedMessage.ExtendableMessage, T>)extension, value);
        }
        
        @Deprecated
        public <T> BuilderT setExtension(final GeneratedExtension<MessageT, List<T>> extension, final int index, final T value) {
            return (BuilderT)this.setExtension((ExtensionLite<? extends GeneratedMessage.ExtendableMessage, List<T>>)extension, index, value);
        }
        
        @Deprecated
        public <T> BuilderT addExtension(final GeneratedExtension<MessageT, List<T>> extension, final T value) {
            return (BuilderT)this.addExtension((ExtensionLite<? extends GeneratedMessage.ExtendableMessage, List<T>>)extension, value);
        }
        
        @Deprecated
        public <T> BuilderT clearExtension(final GeneratedExtension<MessageT, T> extension) {
            return (BuilderT)this.clearExtension((ExtensionLite<? extends GeneratedMessage.ExtendableMessage, T>)extension);
        }
        
        @Deprecated
        @Override
        public BuilderT setField(final Descriptors.FieldDescriptor field, final Object value) {
            return super.setField(field, value);
        }
        
        @Deprecated
        @Override
        public BuilderT clearField(final Descriptors.FieldDescriptor field) {
            return super.clearField(field);
        }
        
        @Deprecated
        @Override
        public BuilderT clearOneof(final Descriptors.OneofDescriptor oneof) {
            return super.clearOneof(oneof);
        }
        
        @Deprecated
        @Override
        public BuilderT setRepeatedField(final Descriptors.FieldDescriptor field, final int index, final Object value) {
            return super.setRepeatedField(field, index, value);
        }
        
        @Deprecated
        @Override
        public BuilderT addRepeatedField(final Descriptors.FieldDescriptor field, final Object value) {
            return super.addRepeatedField(field, value);
        }
        
        @Deprecated
        protected final void mergeExtensionFields(final GeneratedMessageV3.ExtendableMessage<?> other) {
            super.mergeExtensionFields(other);
        }
    }
    
    @Deprecated
    public static final class FieldAccessorTable extends GeneratedMessage.FieldAccessorTable
    {
        @Deprecated
        public FieldAccessorTable(final Descriptors.Descriptor descriptor, final String[] camelCaseNames, final Class<? extends GeneratedMessageV3> messageClass, final Class<? extends GeneratedMessageV3.Builder<?>> builderClass) {
            super(descriptor, camelCaseNames, messageClass, builderClass);
        }
        
        @Deprecated
        public FieldAccessorTable(final Descriptors.Descriptor descriptor, final String[] camelCaseNames) {
            super(descriptor, camelCaseNames);
        }
        
        @Deprecated
        @Override
        public FieldAccessorTable ensureFieldAccessorsInitialized(final Class<? extends GeneratedMessage> messageClass, final Class<? extends GeneratedMessage.Builder<?>> builderClass) {
            return (FieldAccessorTable)super.ensureFieldAccessorsInitialized(messageClass, builderClass);
        }
    }
    
    @Deprecated
    protected interface BuilderParent extends AbstractMessage.BuilderParent
    {
    }
    
    @Deprecated
    public interface ExtendableMessageOrBuilder<MessageT extends GeneratedMessageV3.ExtendableMessage<MessageT>> extends GeneratedMessage.ExtendableMessageOrBuilder<GeneratedMessageV3>
    {
    }
}
