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

package com.google.protobuf;

import java.io.InputStream;
import java.io.IOException;

@CheckReturnValue
public interface Message extends MessageLite, MessageOrBuilder
{
    Parser<? extends Message> getParserForType();
    
    boolean equals(final Object other);
    
    int hashCode();
    
    String toString();
    
    Builder newBuilderForType();
    
    Builder toBuilder();
    
    public interface Builder extends MessageLite.Builder, MessageOrBuilder
    {
        @CanIgnoreReturnValue
        Builder clear();
        
        @CanIgnoreReturnValue
        Builder mergeFrom(final Message other);
        
        @CanIgnoreReturnValue
        Builder mergeFrom(final CodedInputStream input) throws IOException;
        
        @CanIgnoreReturnValue
        Builder mergeFrom(final CodedInputStream input, final ExtensionRegistryLite extensionRegistry) throws IOException;
        
        @CanIgnoreReturnValue
        Builder mergeFrom(final ByteString data) throws InvalidProtocolBufferException;
        
        @CanIgnoreReturnValue
        Builder mergeFrom(final ByteString data, final ExtensionRegistryLite extensionRegistry) throws InvalidProtocolBufferException;
        
        @CanIgnoreReturnValue
        Builder mergeFrom(final byte[] data) throws InvalidProtocolBufferException;
        
        @CanIgnoreReturnValue
        Builder mergeFrom(final byte[] data, final int off, final int len) throws InvalidProtocolBufferException;
        
        @CanIgnoreReturnValue
        Builder mergeFrom(final byte[] data, final ExtensionRegistryLite extensionRegistry) throws InvalidProtocolBufferException;
        
        @CanIgnoreReturnValue
        Builder mergeFrom(final byte[] data, final int off, final int len, final ExtensionRegistryLite extensionRegistry) throws InvalidProtocolBufferException;
        
        @CanIgnoreReturnValue
        Builder mergeFrom(final InputStream input) throws IOException;
        
        @CanIgnoreReturnValue
        Builder mergeFrom(final InputStream input, final ExtensionRegistryLite extensionRegistry) throws IOException;
        
        Message build();
        
        Message buildPartial();
        
        Builder clone();
        
        Descriptors.Descriptor getDescriptorForType();
        
        Builder newBuilderForField(final Descriptors.FieldDescriptor field);
        
        Builder getFieldBuilder(final Descriptors.FieldDescriptor field);
        
        Builder getRepeatedFieldBuilder(final Descriptors.FieldDescriptor field, final int index);
        
        @CanIgnoreReturnValue
        Builder setField(final Descriptors.FieldDescriptor field, final Object value);
        
        @CanIgnoreReturnValue
        Builder clearField(final Descriptors.FieldDescriptor field);
        
        @CanIgnoreReturnValue
        Builder clearOneof(final Descriptors.OneofDescriptor oneof);
        
        @CanIgnoreReturnValue
        Builder setRepeatedField(final Descriptors.FieldDescriptor field, final int index, final Object value);
        
        @CanIgnoreReturnValue
        Builder addRepeatedField(final Descriptors.FieldDescriptor field, final Object value);
        
        @CanIgnoreReturnValue
        Builder setUnknownFields(final UnknownFieldSet unknownFields);
        
        @CanIgnoreReturnValue
        Builder mergeUnknownFields(final UnknownFieldSet unknownFields);
        
        boolean mergeDelimitedFrom(final InputStream input) throws IOException;
        
        boolean mergeDelimitedFrom(final InputStream input, final ExtensionRegistryLite extensionRegistry) throws IOException;
    }
}
