- Added realracing3-community.apk (71.57 MB) - Removed 32-bit support (armeabi-v7a) - Only includes arm64-v8a libraries - Decompiled source code included - Added README-community.md with analysis
96 lines
4.5 KiB
Java
96 lines
4.5 KiB
Java
package com.google.protobuf;
|
|
|
|
/* loaded from: classes3.dex */
|
|
public final class ManifestSchemaFactory implements SchemaFactory {
|
|
private static final MessageInfoFactory EMPTY_FACTORY = new MessageInfoFactory() { // from class: com.google.protobuf.ManifestSchemaFactory.1
|
|
@Override // com.google.protobuf.MessageInfoFactory
|
|
public boolean isSupported(Class<?> cls) {
|
|
return false;
|
|
}
|
|
|
|
@Override // com.google.protobuf.MessageInfoFactory
|
|
public MessageInfo messageInfoFor(Class<?> cls) {
|
|
throw new IllegalStateException("This should never be called.");
|
|
}
|
|
};
|
|
private final MessageInfoFactory messageInfoFactory;
|
|
|
|
public ManifestSchemaFactory() {
|
|
this(getDefaultMessageInfoFactory());
|
|
}
|
|
|
|
private ManifestSchemaFactory(MessageInfoFactory messageInfoFactory) {
|
|
this.messageInfoFactory = (MessageInfoFactory) Internal.checkNotNull(messageInfoFactory, "messageInfoFactory");
|
|
}
|
|
|
|
@Override // com.google.protobuf.SchemaFactory
|
|
public <T> Schema createSchema(Class<T> cls) {
|
|
SchemaUtil.requireGeneratedMessage(cls);
|
|
MessageInfo messageInfoFor = this.messageInfoFactory.messageInfoFor(cls);
|
|
if (messageInfoFor.isMessageSetWireFormat()) {
|
|
if (GeneratedMessageLite.class.isAssignableFrom(cls)) {
|
|
return MessageSetSchema.newSchema(SchemaUtil.unknownFieldSetLiteSchema(), ExtensionSchemas.lite(), messageInfoFor.getDefaultInstance());
|
|
}
|
|
return MessageSetSchema.newSchema(SchemaUtil.proto2UnknownFieldSetSchema(), ExtensionSchemas.full(), messageInfoFor.getDefaultInstance());
|
|
}
|
|
return newSchema(cls, messageInfoFor);
|
|
}
|
|
|
|
private static <T> Schema newSchema(Class<T> cls, MessageInfo messageInfo) {
|
|
if (GeneratedMessageLite.class.isAssignableFrom(cls)) {
|
|
if (isProto2(messageInfo)) {
|
|
return MessageSchema.newSchema(cls, messageInfo, NewInstanceSchemas.lite(), ListFieldSchema.lite(), SchemaUtil.unknownFieldSetLiteSchema(), ExtensionSchemas.lite(), MapFieldSchemas.lite());
|
|
}
|
|
return MessageSchema.newSchema(cls, messageInfo, NewInstanceSchemas.lite(), ListFieldSchema.lite(), SchemaUtil.unknownFieldSetLiteSchema(), null, MapFieldSchemas.lite());
|
|
}
|
|
if (isProto2(messageInfo)) {
|
|
return MessageSchema.newSchema(cls, messageInfo, NewInstanceSchemas.full(), ListFieldSchema.full(), SchemaUtil.proto2UnknownFieldSetSchema(), ExtensionSchemas.full(), MapFieldSchemas.full());
|
|
}
|
|
return MessageSchema.newSchema(cls, messageInfo, NewInstanceSchemas.full(), ListFieldSchema.full(), SchemaUtil.proto3UnknownFieldSetSchema(), null, MapFieldSchemas.full());
|
|
}
|
|
|
|
private static boolean isProto2(MessageInfo messageInfo) {
|
|
return messageInfo.getSyntax() == ProtoSyntax.PROTO2;
|
|
}
|
|
|
|
private static MessageInfoFactory getDefaultMessageInfoFactory() {
|
|
return new CompositeMessageInfoFactory(GeneratedMessageInfoFactory.getInstance(), getDescriptorMessageInfoFactory());
|
|
}
|
|
|
|
public static class CompositeMessageInfoFactory implements MessageInfoFactory {
|
|
private MessageInfoFactory[] factories;
|
|
|
|
public CompositeMessageInfoFactory(MessageInfoFactory... messageInfoFactoryArr) {
|
|
this.factories = messageInfoFactoryArr;
|
|
}
|
|
|
|
@Override // com.google.protobuf.MessageInfoFactory
|
|
public boolean isSupported(Class<?> cls) {
|
|
for (MessageInfoFactory messageInfoFactory : this.factories) {
|
|
if (messageInfoFactory.isSupported(cls)) {
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
|
|
@Override // com.google.protobuf.MessageInfoFactory
|
|
public MessageInfo messageInfoFor(Class<?> cls) {
|
|
for (MessageInfoFactory messageInfoFactory : this.factories) {
|
|
if (messageInfoFactory.isSupported(cls)) {
|
|
return messageInfoFactory.messageInfoFor(cls);
|
|
}
|
|
}
|
|
throw new UnsupportedOperationException("No factory is available for message type: " + cls.getName());
|
|
}
|
|
}
|
|
|
|
private static MessageInfoFactory getDescriptorMessageInfoFactory() {
|
|
try {
|
|
return (MessageInfoFactory) Class.forName("com.google.protobuf.DescriptorMessageInfoFactory").getDeclaredMethod("getInstance", new Class[0]).invoke(null, new Object[0]);
|
|
} catch (Exception unused) {
|
|
return EMPTY_FACTORY;
|
|
}
|
|
}
|
|
}
|