public ProtoAdapter<Object> protoAdapter(String typeName, boolean includeUnknown) {
    Type type = getType(typeName);
    if (type == null) throw new IllegalArgumentException("unexpected type " + typeName);
    return new SchemaProtoAdapterFactory(this, includeUnknown).get(type.type());
  }
public ProtoAdapter < Object > protoAdapter ( String typeName , boolean includeUnknown ) { Type type = getType ( typeName ) ; if ( type == null ) throw new IllegalArgumentException ( "unexpected type " + typeName ) ; return new SchemaProtoAdapterFactory ( this , includeUnknown ) . get ( type . type ( ) ) ; }
Returns a wire adapter for the message or enum type named {@code typeName}. The returned type
adapter doesn't have model classes to encode and decode from, so instead it uses scalar types
({@linkplain String}, {@linkplain okio.ByteString ByteString}, {@linkplain Integer}, etc.),
{@linkplain Map maps}, and {@linkplain java.util.List lists}. It can both encode and decode
these objects. Map keys are field names.

@param includeUnknown true to include values for unknown tags in the returned model. Map keys
for such values is the unknown value's tag name as a string. Unknown values are decoded to
{@linkplain Long}, {@linkplain Long}, {@linkplain Integer}, or {@linkplain okio.ByteString
ByteString} for {@linkplain com.squareup.wire.FieldEncoding#VARINT VARINT}, {@linkplain
com.squareup.wire.FieldEncoding#FIXED64 FIXED64}, {@linkplain
com.squareup.wire.FieldEncoding#FIXED32 FIXED32}, or {@linkplain
com.squareup.wire.FieldEncoding#LENGTH_DELIMITED LENGTH_DELIMITED} respectively.