Schema class

Пакет: com.hypixel.hytale.codec.schema.config

Файл: com/hypixel/hytale/codec/schema/config/Schema.java

Поля (95)

МодификаторыТипИмя
final ObjectCodecMapCodec<String, Schema> CODEC
public static final BuilderCodec<Schema.HytaleMetadata> CODEC
public static final BuilderCodec<Schema.InheritSettings> CODEC
public static final BuilderCodec<Schema.SchemaTypeField> CODEC
private Boolean allowEmptyObject
private String defaultValue
private String extension
private String idProvider
private Boolean inheritsProperty
private String[] internalKeys
private String mapKey
private String mapKeyValue
private Boolean mergesProperties
private String parentPropertyKey
private String path
private String property
private String type
private String type
private Boolean uiCollapsedByDefault
private UIButton[] uiCreateButtons
private UIDisplayMode.DisplayMode uiDisplayMode
private UIEditor.EditorComponent uiEditorComponent
private UIEditorFeatures.EditorFeature[] uiEditorFeatures
private Boolean uiEditorIgnore
private UIEditorPreview.PreviewType uiEditorPreview
private String uiPropertyTitle
private UIRebuildCaches.ClientCache[] uiRebuildCaches
private Boolean uiRebuildCachesForChildProperties
private String uiSectionStart
private UIButton[] uiSidebarButtons
private String uiTypeIcon
private String[] values
String[] var1
String var1
Schema var1
Schema var1
Schema var1
Schema var1
int var1
var1
var1
var1
var1
var1
var1
var1
var1
var1
var1
var1
var1
var1
var1
var1
var1
var1
var1
var1
var1
var1
var1
var1
int var1
var1
var1
var1
var1
var1
var1
var1
var1
var1
var1
var1
var1
var1
var1
var1
var1
var1
var1
var1
var1
int var1
var1
int var1
var1
var1
Schema var2
Schema.HytaleMetadata var2
Schema.InheritSettings var2
Schema.SchemaTypeField var2
BsonArray var3
BsonValue var5
private String virtualPath

Методы (137)

МодификаторыВозвратСигнатура
private ArrayOrNullprivate ArrayOrNull()
protected BooleanOrSchemaprotected BooleanOrSchema()
public HytaleMetadatapublic HytaleMetadata(String var1)
public HytaleMetadatapublic HytaleMetadata()
public InheritSettingspublic InheritSettings(String var1)
protected InheritSettingsprotected InheritSettings()
public SchemaTypeFieldpublic SchemaTypeField(String var1, String var2, String... var3)
protected SchemaTypeFieldprotected SchemaTypeField()
private StringOrBlankprivate StringOrBlank()
public String[] decodepublic String[] decode(@Nonnull BsonValue var1, @Nonnull ExtraInfo var2)
public Object decodepublic Object decode(@Nonnull BsonValue var1, ExtraInfo var2)
public String decodepublic String decode(@Nonnull BsonValue var1, ExtraInfo var2)
public BsonValue encodepublic BsonValue encode(@Nullable String[] var1, ExtraInfo var2)
public BsonValue encodepublic BsonValue encode(Object var1, ExtraInfo var2)
public BsonValue encodepublic BsonValue encode(@Nonnull String var1, ExtraInfo var2)
public boolean equalspublic boolean equals(@Nullable Object var1)
public boolean equalspublic boolean equals(@Nullable Object var1)
public boolean equalspublic boolean equals(Object var1)
for for(int var2 = 0; var2 < var1.length; var2++)
abstract for for(int var4 = 0; var4 < var3.size()
public Schema[] getAllOfSchema[] getAllOf()
public Boolean getAllowEmptyObjectpublic Boolean getAllowEmptyObject()
public Schema[] getAnyOfSchema[] getAnyOf()
public String getDataString getData()
public BsonDocument getDefaultRawBsonDocument getDefaultRaw()
public String getDefaultValuepublic String getDefaultValue()
public Map<String, Schema> getDefinitionsMap<String, Schema> getDefinitions()
public String getDescriptionString getDescription()
public Schema getElseSchema getElse()
public String[] getEnumDescriptionsString[] getEnumDescriptions()
public String getExtensionpublic String getExtension()
public String getHytaleAssetRefString getHytaleAssetRef()
public String getHytaleCustomAssetRefString getHytaleCustomAssetRef()
public Schema.InheritSettings getHytaleParentSchema.InheritSettings getHytaleParent()
public Schema.SchemaTypeField getHytaleSchemaTypeFieldSchema.SchemaTypeField getHytaleSchemaTypeField()
public String getIdString getId()
public String getIdProviderpublic String getIdProvider()
public Schema getIfSchema getIf()
public String[] getInternalKeyspublic String[] getInternalKeys()
public String getMapKeypublic String getMapKey()
public String getMapKeyValuepublic String getMapKeyValue()
public String getMarkdownDescriptionString getMarkdownDescription()
public String[] getMarkdownEnumDescriptionsString[] getMarkdownEnumDescriptions()
public boolean getMergesPropertiespublic boolean getMergesProperties()
public Schema[] getOneOfSchema[] getOneOf()
public String getParentPropertyKeypublic String getParentPropertyKey()
public String getPathpublic String getPath()
public String getPropertypublic String getProperty()
public String getRefString getRef()
public String[] getRequiredString[] getRequired()
public Schema getThenSchema getThen()
public String getTitleString getTitle()
public String getTypepublic String getType()
public String getTypepublic String getType()
public String[] getTypesString[] getTypes()
public Boolean getUiCollapsedByDefaultpublic Boolean getUiCollapsedByDefault()
public UIButton[] getUiCreateButtonspublic UIButton[] getUiCreateButtons()
public UIDisplayMode.DisplayMode getUiDisplayModepublic UIDisplayMode.DisplayMode getUiDisplayMode()
public UIEditor.EditorComponent getUiEditorComponentpublic UIEditor.EditorComponent getUiEditorComponent()
public UIEditorFeatures.EditorFeature[] getUiEditorFeaturespublic UIEditorFeatures.EditorFeature[] getUiEditorFeatures()
public Boolean getUiEditorIgnorepublic Boolean getUiEditorIgnore()
public UIEditorPreview.PreviewType getUiEditorPreviewpublic UIEditorPreview.PreviewType getUiEditorPreview()
public String getUiPropertyTitlepublic String getUiPropertyTitle()
public UIRebuildCaches.ClientCache[] getUiRebuildCachespublic UIRebuildCaches.ClientCache[] getUiRebuildCaches()
public Boolean getUiRebuildCachesForChildPropertiespublic Boolean getUiRebuildCachesForChildProperties()
public String getUiSectionStartpublic String getUiSectionStart()
public UIButton[] getUiSidebarButtonspublic UIButton[] getUiSidebarButtons()
public String getUiTypeIconpublic String getUiTypeIcon()
public String[] getValuespublic String[] getValues()
public String getVirtualPathpublic String getVirtualPath()
public int hashCodepublic int hashCode()
public int hashCodepublic int hashCode()
public int hashCodepublic int hashCode()
if if(var0.enumDescriptions == null && var0.markdownEnumDescriptions != null)
if if(var1.type == null)
if if(var1 && this.hytale == null)
if if(this == var1)
if if(this == var1)
if if(this.uiEditorPreview != var2.uiEditorPreview)
if if(this.uiDisplayMode != var2.uiDisplayMode)
if if(this == var1)
static void initvoid init()
public Boolean isDoNotSuggestBoolean isDoNotSuggest()
public boolean isInheritsPropertypublic boolean isInheritsProperty()
public void setAllOfvoid setAllOf(Schema... var1)
public void setAllowEmptyObjectpublic void setAllowEmptyObject(Boolean var1)
public void setAnyOfvoid setAnyOf(Schema... var1)
public void setDatavoid setData(String var1)
public void setDefaultRawvoid setDefaultRaw(BsonDocument var1)
public void setDefinitionsvoid setDefinitions(Map<String, Schema> var1)
public void setDescriptionvoid setDescription(String var1)
public void setDoNotSuggestvoid setDoNotSuggest(boolean var1)
public void setElsevoid setElse(Schema var1)
public void setElsevoid setElse(boolean var1)
public void setEnumDescriptionsvoid setEnumDescriptions(String[] var1)
public void setExtensionpublic void setExtension(String var1)
public void setHytaleAssetRefvoid setHytaleAssetRef(String var1)
public void setHytaleCustomAssetRefvoid setHytaleCustomAssetRef(String var1)
public void setHytaleParentvoid setHytaleParent(Schema.InheritSettings var1)
public void setHytaleSchemaTypeFieldvoid setHytaleSchemaTypeField(Schema.SchemaTypeField var1)
public void setIdvoid setId(String var1)
public void setIdProviderpublic void setIdProvider(String var1)
public void setIfvoid setIf(Schema var1)
public void setInheritsPropertypublic void setInheritsProperty(boolean var1)
public void setInternalKeyspublic void setInternalKeys(String[] var1)
public void setMapKeypublic void setMapKey(String var1)
public void setMapKeyValuepublic void setMapKeyValue(String var1)
public void setMarkdownDescriptionvoid setMarkdownDescription(String var1)
public void setMarkdownEnumDescriptionsvoid setMarkdownEnumDescriptions(String[] var1)
public void setMergesPropertiespublic void setMergesProperties(boolean var1)
public void setOneOfvoid setOneOf(Schema... var1)
public void setParentPropertyKeypublic void setParentPropertyKey(String var1)
public void setPathpublic void setPath(String var1)
public void setRefvoid setRef(String var1)
public void setRequiredvoid setRequired(String... var1)
public void setThenvoid setThen(Schema var1)
public void setTitlevoid setTitle(String var1)
public void setTypepublic void setType(String var1)
public void setTypepublic void setType(String var1)
public void setTypesvoid setTypes(String[] var1)
public void setUiCollapsedByDefaultpublic void setUiCollapsedByDefault(Boolean var1)
public void setUiCreateButtonspublic void setUiCreateButtons(UIButton[] var1)
public void setUiDisplayModepublic void setUiDisplayMode(UIDisplayMode.DisplayMode var1)
public void setUiEditorComponentpublic void setUiEditorComponent(UIEditor.EditorComponent var1)
public void setUiEditorFeaturespublic void setUiEditorFeatures(UIEditorFeatures.EditorFeature[] var1)
public void setUiEditorIgnorepublic void setUiEditorIgnore(Boolean var1)
public void setUiEditorPreviewpublic void setUiEditorPreview(UIEditorPreview.PreviewType var1)
public void setUiPropertyTitlepublic void setUiPropertyTitle(String var1)
public void setUiRebuildCachespublic void setUiRebuildCaches(UIRebuildCaches.ClientCache[] var1)
public void setUiRebuildCachesForChildPropertiespublic void setUiRebuildCachesForChildProperties(Boolean var1)
public void setUiSectionStartpublic void setUiSectionStart(String var1)
public void setUiSidebarButtonspublic void setUiSidebarButtons(UIButton[] var1)
public void setUiTypeIconpublic void setUiTypeIcon(String var1)
public void setVirtualPathpublic void setVirtualPath(String var1)
public Schema toSchemapublic Schema toSchema(@Nonnull SchemaContext var1)
public Schema toSchemapublic Schema toSchema(@Nonnull SchemaContext var1)
public Schema toSchemapublic Schema toSchema(@Nonnull SchemaContext var1)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.codec.schema.config;

class="kw">import com.hypixel.hytale.codec.Codec;
class="kw">import com.hypixel.hytale.codec.ExtraInfo;
class="kw">import com.hypixel.hytale.codec.KeyedCodec;
class="kw">import com.hypixel.hytale.codec.builder.BuilderCodec;
class="kw">import com.hypixel.hytale.codec.codecs.EnumCodec;
class="kw">import com.hypixel.hytale.codec.codecs.array.ArrayCodec;
class="kw">import com.hypixel.hytale.codec.codecs.map.MapCodec;
class="kw">import com.hypixel.hytale.codec.lookup.ObjectCodecMapCodec;
class="kw">import com.hypixel.hytale.codec.lookup.Priority;
class="kw">import com.hypixel.hytale.codec.schema.SchemaContext;
class="kw">import com.hypixel.hytale.codec.schema.metadata.ui.UIButton;
class="kw">import com.hypixel.hytale.codec.schema.metadata.ui.UIDisplayMode;
class="kw">import com.hypixel.hytale.codec.schema.metadata.ui.UIEditor;
class="kw">import com.hypixel.hytale.codec.schema.metadata.ui.UIEditorFeatures;
class="kw">import com.hypixel.hytale.codec.schema.metadata.ui.UIEditorPreview;
class="kw">import com.hypixel.hytale.codec.schema.metadata.ui.UIRebuildCaches;
class="kw">import com.hypixel.hytale.codec.util.Documentation;
class="kw">import java.util.Arrays;
class="kw">import java.util.HashMap;
class="kw">import java.util.Map;
class="kw">import java.util.Objects;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">import org.bson.BsonArray;
class="kw">import org.bson.BsonDocument;
class="kw">import org.bson.BsonNull;
class="kw">import org.bson.BsonValue;

class="kw">public class Schema {
   class="kw">public class="kw">static class="kw">final ObjectCodecMapCodec<String, Schema> CODEC = new ObjectCodecMapCodec<>("type", new Schema.StringOrBlank(), true, false);
   class="kw">public class="kw">static class="kw">final ArrayCodec<Schema> ARRAY_CODEC = new ArrayCodec<>(CODEC, Schema[]::new);
   class="kw">public class="kw">static class="kw">final BuilderCodec<Schema> BASE_CODEC = BuilderCodec.builder(Schema.class, Schema::new)
      .append(new KeyedCodec<>("$id", Codec.STRING, false, true), (var0, var1) -> var0.id = var1, var0 -> var0.id)
      .add()
      .append(new KeyedCodec<>("type", new Schema.ArrayOrNull(), false, true), (var0, var1) -> var0.types = var1, var0 -> var0.types)
      .add()
      .append(new KeyedCodec<>("title", Codec.STRING, false, true), (var0, var1) -> var0.title = var1, var0 -> var0.title)
      .add()
      .append(
         new KeyedCodec<>("description", Codec.STRING, false, true),
         (var0, var1) -> var0.description = var1,
         var0 -> var0.description == null && var0.markdownDescription != null ? Documentation.stripMarkdown(var0.markdownDescription) : var0.description
      )
      .add()
      .append(
         new KeyedCodec<>("markdownDescription", Codec.STRING, false, true), (var0, var1) -> var0.markdownDescription = var1, var0 -> var0.markdownDescription
      )
      .add()
      .append(new KeyedCodec<>("enumDescriptions", Codec.STRING_ARRAY, false, true), (var0, var1) -> var0.enumDescriptions = var1, var0 -> {
         if (var0.enumDescriptions == null && var0.markdownEnumDescriptions != null) {
            String[] var1 = new String[var0.markdownEnumDescriptions.length];

            for (int var2 = 0; var2 < var1.length; var2++) {
               var1[var2] = Documentation.stripMarkdown(var0.markdownEnumDescriptions[var2]);
            }

            class="kw">return var1;
         } else {
            class="kw">return var0.enumDescriptions;
         }
      })
      .add()
      .append(
         new KeyedCodec<>("markdownEnumDescriptions", Codec.STRING_ARRAY, false, true),
         (var0, var1) -> var0.markdownEnumDescriptions = var1,
         var0 -> var0.markdownEnumDescriptions
      )
      .add()
      .append(new KeyedCodec<>("anyOf", ARRAY_CODEC, false, true), (var0, var1) -> var0.anyOf = var1, var0 -> var0.anyOf)
      .add()
      .append(new KeyedCodec<>("oneOf", ARRAY_CODEC, false, true), (var0, var1) -> var0.oneOf = var1, var0 -> var0.oneOf)
      .add()
      .append(new KeyedCodec<>("allOf", ARRAY_CODEC, false, true), (var0, var1) -> var0.allOf = var1, var0 -> var0.allOf)
      .add()
      .append(new KeyedCodec<>("not", CODEC, false, true), (var0, var1) -> var0.not = var1, var0 -> var0.not)
      .add()
      .append(new KeyedCodec<>("if", CODEC, false, true), (var0, var1) -> var0.if_ = var1, var0 -> var0.if_)
      .add()
      .append(new KeyedCodec<>("then", CODEC, false, true), (var0, var1) -> var0.then = var1, var0 -> var0.then)
      .add()
      .append(new KeyedCodec<>("else", new Schema.BooleanOrSchema(), false, true), (var0, var1) -> var0.else_ = var1, var0 -> var0.else_)
      .add()
      .append(new KeyedCodec<>("required", Codec.STRING_ARRAY, false, true), (var0, var1) -> var0.required = var1, var0 -> var0.required)
      .add()
      .append(new KeyedCodec<>("class="kw">default", Codec.BSON_DOCUMENT, false, true), (var0, var1) -> var0.default_ = var1, var0 -> var0.default_)
      .add()
      .append(
         new KeyedCodec<>("definitions", new MapCodec<>(CODEC, HashMap::new), false, true), (var0, var1) -> var0.definitions = var1, var0 -> var0.definitions
      )
      .add()
      .append(new KeyedCodec<>("$ref", Codec.STRING, false, true), (var0, var1) -> var0.ref = var1, var0 -> var0.ref)
      .add()
      .append(new KeyedCodec<>("$data", Codec.STRING, false, true), (var0, var1) -> var0.data = var1, var0 -> var0.data)
      .add()
      .append(new KeyedCodec<>("doNotSuggest", Codec.BOOLEAN, false, true), (var0, var1) -> var0.doNotSuggest = var1, var0 -> var0.doNotSuggest)
      .add()
      .append(new KeyedCodec<>("hytaleAssetRef", Codec.STRING, false, true), (var0, var1) -> var0.hytaleAssetRef = var1, var0 -> var0.hytaleAssetRef)
      .add()
      .append(
         new KeyedCodec<>("hytaleCustomAssetRef", Codec.STRING, false, true),
         (var0, var1) -> var0.hytaleCustomAssetRef = var1,
         var0 -> var0.hytaleCustomAssetRef
      )
      .add()
      .append(new KeyedCodec<>("hytaleParent", Schema.InheritSettings.CODEC, false, true), (var0, var1) -> var0.hytaleParent = var1, var0 -> var0.hytaleParent)
      .add()
      .append(
         new KeyedCodec<>("hytaleSchemaTypeField", Schema.SchemaTypeField.CODEC, false, true),
         (var0, var1) -> var0.hytaleSchemaTypeField = var1,
         var0 -> var0.hytaleSchemaTypeField
      )
      .add()
      .append(new KeyedCodec<>("hytale", Schema.HytaleMetadata.CODEC, false, true), (var0, var1) -> {
         if (var1.type == null) {
            var1.type = CODEC.getIdFor((Class<? class="kw">extends Schema>)var0.getClass());
         }

         var0.hytale = var1;
      }, var0 -> var0.hytale)
      .add()
      .build();
   class="kw">private String id;
   class="kw">private String[] types;
   class="kw">private String title;
   class="kw">private String description;
   class="kw">private String markdownDescription;
   class="kw">private Schema[] anyOf;
   class="kw">private Schema[] oneOf;
   class="kw">private Schema[] allOf;
   class="kw">private Schema not;
   class="kw">private String[] required;
   class="kw">private String[] enumDescriptions;
   class="kw">private String[] markdownEnumDescriptions;
   class="kw">private Map<String, Schema> definitions;
   class="kw">private String ref;
   class="kw">private String data;
   class="kw">private BsonDocument default_;
   class="kw">private Schema if_;
   class="kw">private Schema then;
   class="kw">private Object else_;
   class="kw">private Schema.HytaleMetadata hytale;
   class="kw">private Schema.InheritSettings hytaleParent;
   class="kw">private Schema.SchemaTypeField hytaleSchemaTypeField;
   class="kw">private String hytaleAssetRef;
   class="kw">private String hytaleCustomAssetRef;
   class="kw">private Boolean doNotSuggest;

   class="kw">public Schema() {
      String var1 = CODEC.getIdFor((Class<? class="kw">extends Schema>)this.getClass());
      if (var1 != null && !var1.isBlank()) {
         this.hytale = new Schema.HytaleMetadata(var1);
      }
   }

   class="kw">public String getId() {
      class="kw">return this.id;
   }

   class="kw">public void setId(String var1) {
      this.id = var1;
   }

   class="kw">public String[] getTypes() {
      class="kw">return this.types;
   }

   class="kw">public void setTypes(String[] var1) {
      this.types = var1;
   }

   class="kw">public String getTitle() {
      class="kw">return this.title;
   }

   class="kw">public void setTitle(String var1) {
      this.title = var1;
   }

   class="kw">public String getDescription() {
      class="kw">return this.description;
   }

   class="kw">public void setDescription(String var1) {
      this.description = var1;
   }

   class="kw">public String getMarkdownDescription() {
      class="kw">return this.markdownDescription;
   }

   class="kw">public void setMarkdownDescription(String var1) {
      this.markdownDescription = var1;
   }

   class="kw">public String[] getEnumDescriptions() {
      class="kw">return this.enumDescriptions;
   }

   class="kw">public void setEnumDescriptions(String[] var1) {
      this.enumDescriptions = var1;
   }

   class="kw">public String[] getMarkdownEnumDescriptions() {
      class="kw">return this.markdownEnumDescriptions;
   }

   class="kw">public void setMarkdownEnumDescriptions(String[] var1) {
      this.markdownEnumDescriptions = var1;
   }

   class="kw">public Schema[] getAnyOf() {
      class="kw">return this.anyOf;
   }

   class="kw">public void setAnyOf(Schema... var1) {
      this.anyOf = var1;
   }

   class="kw">public Schema[] getOneOf() {
      class="kw">return this.oneOf;
   }

   class="kw">public void setOneOf(Schema... var1) {
      this.oneOf = var1;
   }

   class="kw">public Schema[] getAllOf() {
      class="kw">return this.allOf;
   }

   class="kw">public void setAllOf(Schema... var1) {
      this.allOf = var1;
   }

   class="kw">public String[] getRequired() {
      class="kw">return this.required;
   }

   class="kw">public void setRequired(String... var1) {
      this.required = var1;
   }

   class="kw">public BsonDocument getDefaultRaw() {
      class="kw">return this.default_;
   }

   class="kw">public void setDefaultRaw(BsonDocument var1) {
      this.default_ = var1;
   }

   class="kw">public Map<String, Schema> getDefinitions() {
      class="kw">return this.definitions;
   }

   class="kw">public void setDefinitions(Map<String, Schema> var1) {
      this.definitions = var1;
   }

   class="kw">public String getRef() {
      class="kw">return this.ref;
   }

   class="kw">public void setRef(String var1) {
      this.ref = var1;
   }

   class="kw">public String getData() {
      class="kw">return this.data;
   }

   class="kw">public void setData(String var1) {
      this.data = var1;
   }

   class="kw">public Schema getIf() {
      class="kw">return this.if_;
   }

   class="kw">public void setIf(Schema var1) {
      this.if_ = var1;
   }

   class="kw">public Schema getThen() {
      class="kw">return this.then;
   }

   class="kw">public void setThen(Schema var1) {
      this.then = var1;
   }

   class="kw">public Schema getElse() {
      class="kw">return (Schema)this.else_;
   }

   class="kw">public void setElse(Schema var1) {
      this.else_ = var1;
   }

   class="kw">public void setElse(boolean var1) {
      this.else_ = var1;
   }

   class="kw">public Boolean isDoNotSuggest() {
      class="kw">return this.doNotSuggest;
   }

   class="kw">public void setDoNotSuggest(boolean var1) {
      this.doNotSuggest = var1;
   }

   @Nullable
   class="kw">public Schema.HytaleMetadata getHytale() {
      class="kw">return this.getHytale(true);
   }

   @Nullable
   class="kw">public Schema.HytaleMetadata getHytale(boolean var1) {
      if (var1 && this.hytale == null) {
         this.hytale = new Schema.HytaleMetadata();
         this.hytale.type = CODEC.getIdFor((Class<? class="kw">extends Schema>)this.getClass());
      }

      class="kw">return this.hytale;
   }

   class="kw">public String getHytaleAssetRef() {
      class="kw">return this.hytaleAssetRef;
   }

   class="kw">public void setHytaleAssetRef(String var1) {
      this.hytaleAssetRef = var1;
   }

   class="kw">public Schema.InheritSettings getHytaleParent() {
      class="kw">return this.hytaleParent;
   }

   class="kw">public void setHytaleParent(Schema.InheritSettings var1) {
      this.hytaleParent = var1;
   }

   class="kw">public Schema.SchemaTypeField getHytaleSchemaTypeField() {
      class="kw">return this.hytaleSchemaTypeField;
   }

   class="kw">public void setHytaleSchemaTypeField(Schema.SchemaTypeField var1) {
      this.hytaleSchemaTypeField = var1;
   }

   class="kw">public String getHytaleCustomAssetRef() {
      class="kw">return this.hytaleCustomAssetRef;
   }

   class="kw">public void setHytaleCustomAssetRef(String var1) {
      this.hytaleCustomAssetRef = var1;
   }

   @Nonnull
   class="kw">public class="kw">static Schema ref(String var0) {
      Schema var1 = new Schema();
      var1.setRef(var0);
      class="kw">return var1;
   }

   @Nonnull
   class="kw">public class="kw">static Schema data(String var0) {
      Schema var1 = new Schema();
      var1.setData(var0);
      class="kw">return var1;
   }

   @Nonnull
   class="kw">public class="kw">static Schema anyOf(Schema... var0) {
      Schema var1 = new Schema();
      var1.anyOf = var0;
      class="kw">return var1;
   }

   @Nonnull
   class="kw">public class="kw">static Schema not(Schema var0) {
      Schema var1 = new Schema();
      var1.not = var0;
      class="kw">return var1;
   }

   @Override
   class="kw">public boolean equals(@Nullable Object var1) {
      if (this == var1) {
         class="kw">return true;
      }

      if (var1 != null && this.getClass() == var1.getClass()) {
         Schema var2 = (Schema)var1;
         if (this.id != null ? this.id.equals(var2.id) : var2.id == null) {
            if (!Arrays.equals(this.types, var2.types)) {
               class="kw">return false;
            }

            if (this.title != null ? this.title.equals(var2.title) : var2.title == null) {
               if (this.description != null ? this.description.equals(var2.description) : var2.description == null) {
                  if (this.markdownDescription != null ? this.markdownDescription.equals(var2.markdownDescription) : var2.markdownDescription == null) {
                     if (!Arrays.equals(this.anyOf, var2.anyOf)) {
                        class="kw">return false;
                     }

                     if (!Arrays.equals(this.oneOf, var2.oneOf)) {
                        class="kw">return false;
                     }

                     if (!Arrays.equals(this.allOf, var2.allOf)) {
                        class="kw">return false;
                     }

                     if (this.not != null ? this.not.equals(var2.not) : var2.not == null) {
                        if (!Arrays.equals(this.required, var2.required)) {
                           class="kw">return false;
                        }

                        if (!Arrays.equals(this.enumDescriptions, var2.enumDescriptions)) {
                           class="kw">return false;
                        }

                        if (!Arrays.equals(this.markdownEnumDescriptions, var2.markdownEnumDescriptions)) {
                           class="kw">return false;
                        }

                        if (this.definitions != null ? this.definitions.equals(var2.definitions) : var2.definitions == null) {
                           if (this.ref != null ? this.ref.equals(var2.ref) : var2.ref == null) {
                              if (this.data != null ? this.data.equals(var2.data) : var2.data == null) {
                                 if (this.default_ != null ? this.default_.equals(var2.default_) : var2.default_ == null) {
                                    if (this.hytale != null ? this.hytale.equals(var2.hytale) : var2.hytale == null) {
                                       if (this.hytaleParent != null ? this.hytaleParent.equals(var2.hytaleParent) : var2.hytaleParent == null) {
                                          if (this.hytaleSchemaTypeField != null
                                             ? this.hytaleSchemaTypeField.equals(var2.hytaleSchemaTypeField)
                                             : var2.hytaleSchemaTypeField == null) {
                                             if (this.hytaleAssetRef != null ? this.hytaleAssetRef.equals(var2.hytaleAssetRef) : var2.hytaleAssetRef == null) {
                                                if (this.if_ != null ? this.if_.equals(var2.if_) : var2.if_ == null) {
                                                   if (this.then != null ? this.then.equals(var2.then) : var2.then == null) {
                                                      if (this.else_ != null ? this.else_.equals(var2.else_) : var2.else_ == null) {
                                                         if (this.doNotSuggest != null
                                                            ? this.doNotSuggest.equals(var2.doNotSuggest)
                                                            : var2.doNotSuggest == null) {
                                                            class="kw">return this.hytaleCustomAssetRef != null
                                                               ? this.hytaleCustomAssetRef.equals(var2.hytaleCustomAssetRef)
                                                               : var2.hytaleCustomAssetRef == null;
                                                         } else {
                                                            class="kw">return false;
                                                         }
                                                      } else {
                                                         class="kw">return false;
                                                      }
                                                   } else {
                                                      class="kw">return false;
                                                   }
                                                } else {
                                                   class="kw">return false;
                                                }
                                             } else {
                                                class="kw">return false;
                                             }
                                          } else {
                                             class="kw">return false;
                                          }
                                       } else {
                                          class="kw">return false;
                                       }
                                    } else {
                                       class="kw">return false;
                                    }
                                 } else {
                                    class="kw">return false;
                                 }
                              } else {
                                 class="kw">return false;
                              }
                           } else {
                              class="kw">return false;
                           }
                        } else {
                           class="kw">return false;
                        }
                     } else {
                        class="kw">return false;
                     }
                  } else {
                     class="kw">return false;
                  }
               } else {
                  class="kw">return false;
               }
            } else {
               class="kw">return false;
            }
         } else {
            class="kw">return false;
         }
      } else {
         class="kw">return false;
      }
   }

   @Override
   class="kw">public int hashCode() {
      int var1 = this.id != null ? this.id.hashCode() : 0;
      var1 = 31 * var1 + Arrays.hashCode(this.types);
      var1 = 31 * var1 + (this.title != null ? this.title.hashCode() : 0);
      var1 = 31 * var1 + (this.description != null ? this.description.hashCode() : 0);
      var1 = 31 * var1 + (this.markdownDescription != null ? this.markdownDescription.hashCode() : 0);
      var1 = 31 * var1 + Arrays.hashCode(this.anyOf);
      var1 = 31 * var1 + Arrays.hashCode(this.oneOf);
      var1 = 31 * var1 + Arrays.hashCode(this.allOf);
      var1 = 31 * var1 + (this.not != null ? this.not.hashCode() : 0);
      var1 = 31 * var1 + Arrays.hashCode(this.required);
      var1 = 31 * var1 + Arrays.hashCode(this.enumDescriptions);
      var1 = 31 * var1 + Arrays.hashCode(this.markdownEnumDescriptions);
      var1 = 31 * var1 + (this.definitions != null ? this.definitions.hashCode() : 0);
      var1 = 31 * var1 + (this.ref != null ? this.ref.hashCode() : 0);
      var1 = 31 * var1 + (this.data != null ? this.data.hashCode() : 0);
      var1 = 31 * var1 + (this.default_ != null ? this.default_.hashCode() : 0);
      var1 = 31 * var1 + (this.hytale != null ? this.hytale.hashCode() : 0);
      var1 = 31 * var1 + (this.hytaleParent != null ? this.hytaleParent.hashCode() : 0);
      var1 = 31 * var1 + (this.hytaleSchemaTypeField != null ? this.hytaleSchemaTypeField.hashCode() : 0);
      var1 = 31 * var1 + (this.hytaleAssetRef != null ? this.hytaleAssetRef.hashCode() : 0);
      var1 = 31 * var1 + (this.hytaleCustomAssetRef != null ? this.hytaleCustomAssetRef.hashCode() : 0);
      var1 = 31 * var1 + (this.if_ != null ? this.if_.hashCode() : 0);
      var1 = 31 * var1 + (this.then != null ? this.then.hashCode() : 0);
      var1 = 31 * var1 + (this.else_ != null ? this.else_.hashCode() : 0);
      class="kw">return 31 * var1 + (this.doNotSuggest != null ? this.doNotSuggest.hashCode() : 0);
   }

   class="kw">public class="kw">static void init() {
      CODEC.register(Priority.DEFAULT, "", Schema.class, BASE_CODEC);
      CODEC.register("null", NullSchema.class, NullSchema.CODEC);
      CODEC.register("string", StringSchema.class, StringSchema.CODEC);
      CODEC.register("number", NumberSchema.class, NumberSchema.CODEC);
      CODEC.register("integer", IntegerSchema.class, IntegerSchema.CODEC);
      CODEC.register("array", ArraySchema.class, ArraySchema.CODEC);
      CODEC.register("boolean", BooleanSchema.class, BooleanSchema.CODEC);
      CODEC.register("object", ObjectSchema.class, ObjectSchema.CODEC);
      UIEditor.init();
   }

   @Deprecated
   class="kw">private class="kw">static class ArrayOrNull class="kw">implements Codec<String[]> {
      class="kw">private ArrayOrNull() {
      }

      @Nullable
      class="kw">public String[] decode(@Nonnull BsonValue var1, @Nonnull ExtraInfo var2) {
         class="kw">return var1.isArray() ? Codec.STRING_ARRAY.decode(var1, var2) : null;
      }

      @Nonnull
      class="kw">public BsonValue encode(@Nullable String[] var1, ExtraInfo var2) {
         class="kw">return (BsonValue)(var1 != null ? Codec.STRING_ARRAY.encode(var1, var2) : new BsonNull());
      }

      @Nonnull
      @Override
      class="kw">public Schema toSchema(@Nonnull SchemaContext var1) {
         class="kw">return Schema.anyOf(new ArraySchema(), new NullSchema());
      }
   }

   @Deprecated
   class="kw">protected class="kw">static class BooleanOrSchema class="kw">implements Codec<Object> {
      class="kw">protected BooleanOrSchema() {
      }

      @Override
      class="kw">public Object decode(@Nonnull BsonValue var1, ExtraInfo var2) {
         class="kw">return var1.isBoolean() ? Codec.BOOLEAN.decode(var1, var2) : Schema.CODEC.decode(var1, var2);
      }

      @Override
      class="kw">public BsonValue encode(Object var1, ExtraInfo var2) {
         class="kw">return var1 class="kw">instanceof Boolean ? Codec.BOOLEAN.encode((Boolean)var1, var2) : Schema.CODEC.encode((Schema)var1, var2);
      }

      @Nonnull
      @Override
      class="kw">public Schema toSchema(@Nonnull SchemaContext var1) {
         class="kw">return Schema.anyOf(new BooleanSchema(), Schema.CODEC.toSchema(var1));
      }
   }

   class="kw">public class="kw">static class HytaleMetadata {
      class="kw">public class="kw">static class="kw">final BuilderCodec<Schema.HytaleMetadata> CODEC = BuilderCodec.builder(Schema.HytaleMetadata.class, Schema.HytaleMetadata::new)
         .append(
            new KeyedCodec<>("type", Codec.STRING, false, true),
            (var0, var1) -> var0.type = var1,
            var0 -> var0.type != null && var0.type.isEmpty() ? null : var0.type
         )
         .add()
         .append(new KeyedCodec<>("internalKeys", Codec.STRING_ARRAY, false, true), (var0, var1) -> var0.internalKeys = var1, var0 -> var0.internalKeys)
         .add()
         .append(new KeyedCodec<>("path", Codec.STRING, false, true), (var0, var1) -> var0.path = var1, var0 -> var0.path)
         .add()
         .append(new KeyedCodec<>("virtualPath", Codec.STRING, false, true), (var0, var1) -> var0.virtualPath = var1, var0 -> var0.virtualPath)
         .add()
         .append(new KeyedCodec<>("extension", Codec.STRING, false, true), (var0, var1) -> var0.extension = var1, var0 -> var0.extension)
         .add()
         .append(new KeyedCodec<>("idProvider", Codec.STRING, false, true), (var0, var1) -> var0.idProvider = var1, var0 -> var0.idProvider)
         .add()
         .append(new KeyedCodec<>("inheritsProperty", Codec.BOOLEAN, false, true), (var0, var1) -> var0.inheritsProperty = var1, var0 -> var0.inheritsProperty)
         .add()
         .append(new KeyedCodec<>("mergesProperties", Codec.BOOLEAN, false, true), (var0, var1) -> var0.mergesProperties = var1, var0 -> var0.mergesProperties)
         .add()
         .append(
            new KeyedCodec<>("uiDisplayMode", new EnumCodec<>(UIDisplayMode.DisplayMode.class), false, true),
            (var0, var1) -> var0.uiDisplayMode = var1,
            var0 -> var0.uiDisplayMode
         )
         .add()
         .append(
            new KeyedCodec<>("uiEditorComponent", UIEditor.CODEC, false, true), (var0, var1) -> var0.uiEditorComponent = var1, var0 -> var0.uiEditorComponent
         )
         .add()
         .append(new KeyedCodec<>("allowEmptyObject", Codec.BOOLEAN, false, true), (var0, var1) -> var0.allowEmptyObject = var1, var0 -> var0.allowEmptyObject)
         .add()
         .append(new KeyedCodec<>("uiEditorIgnore", Codec.BOOLEAN, false, true), (var0, var1) -> var0.uiEditorIgnore = var1, var0 -> var0.uiEditorIgnore)
         .add()
         .append(
            new KeyedCodec<>(
               "uiEditorFeatures", new ArrayCodec<>(new EnumCodec<>(UIEditorFeatures.EditorFeature.class), UIEditorFeatures.EditorFeature[]::new), false, true
            ),
            (var0, var1) -> var0.uiEditorFeatures = var1,
            var0 -> var0.uiEditorFeatures
         )
         .add()
         .append(
            new KeyedCodec<>("uiEditorPreview", new EnumCodec<>(UIEditorPreview.PreviewType.class), false, true),
            (var0, var1) -> var0.uiEditorPreview = var1,
            var0 -> var0.uiEditorPreview
         )
         .add()
         .append(new KeyedCodec<>("uiTypeIcon", Codec.STRING, false, true), (var0, var1) -> var0.uiTypeIcon = var1, var0 -> var0.uiTypeIcon)
         .add()
         .append(new KeyedCodec<>("uiPropertyTitle", Codec.STRING, false, true), (var0, var1) -> var0.uiPropertyTitle = var1, var0 -> var0.uiPropertyTitle)
         .add()
         .append(new KeyedCodec<>("uiSectionStart", Codec.STRING, false, true), (var0, var1) -> var0.uiSectionStart = var1, var0 -> var0.uiSectionStart)
         .add()
         .append(
            new KeyedCodec<>(
               "uiRebuildCaches", new ArrayCodec<>(new EnumCodec<>(UIRebuildCaches.ClientCache.class), UIRebuildCaches.ClientCache[]::new), false, true
            ),
            (var0, var1) -> var0.uiRebuildCaches = var1,
            var0 -> var0.uiRebuildCaches
         )
         .add()
         .append(
            new KeyedCodec<>("uiSidebarButtons", new ArrayCodec<>(UIButton.CODEC, UIButton[]::new), false, true),
            (var0, var1) -> var0.uiSidebarButtons = var1,
            var0 -> var0.uiSidebarButtons
         )
         .add()
         .append(
            new KeyedCodec<>("uiRebuildCachesForChildProperties", Codec.BOOLEAN, false, true),
            (var0, var1) -> var0.uiRebuildCachesForChildProperties = var1,
            var0 -> var0.uiRebuildCachesForChildProperties
         )
         .add()
         .append(
            new KeyedCodec<>("uiCollapsedByDefault", Codec.BOOLEAN, false, true),
            (var0, var1) -> var0.uiCollapsedByDefault = var1,
            var0 -> var0.uiCollapsedByDefault
         )
         .add()
         .append(
            new KeyedCodec<>("uiCreateButtons", new ArrayCodec<>(UIButton.CODEC, UIButton[]::new), false, true),
            (var0, var1) -> var0.uiCreateButtons = var1,
            var0 -> var0.uiCreateButtons
         )
         .add()
         .build();
      class="kw">private String type;
      class="kw">private String path;
      class="kw">private String virtualPath;
      class="kw">private String extension;
      class="kw">private String idProvider;
      class="kw">private String[] internalKeys;
      class="kw">private Boolean inheritsProperty;
      class="kw">private Boolean mergesProperties;
      class="kw">private UIEditorFeatures.EditorFeature[] uiEditorFeatures;
      class="kw">private UIEditorPreview.PreviewType uiEditorPreview;
      class="kw">private String uiTypeIcon;
      class="kw">private Boolean uiEditorIgnore;
      class="kw">private Boolean allowEmptyObject;
      class="kw">private UIDisplayMode.DisplayMode uiDisplayMode;
      class="kw">private UIEditor.EditorComponent uiEditorComponent;
      class="kw">private String uiPropertyTitle;
      class="kw">private String uiSectionStart;
      class="kw">private UIRebuildCaches.ClientCache[] uiRebuildCaches;
      class="kw">private Boolean uiRebuildCachesForChildProperties;
      class="kw">private UIButton[] uiSidebarButtons;
      class="kw">private Boolean uiCollapsedByDefault;
      class="kw">private UIButton[] uiCreateButtons;

      class="kw">public HytaleMetadata(String var1) {
         this.type = var1;
      }

      class="kw">public HytaleMetadata() {
      }

      class="kw">public String getType() {
         class="kw">return this.type;
      }

      class="kw">public void setType(String var1) {
         this.type = var1;
      }

      class="kw">public String getPath() {
         class="kw">return this.path;
      }

      class="kw">public void setPath(String var1) {
         this.path = var1;
      }

      class="kw">public String getVirtualPath() {
         class="kw">return this.virtualPath;
      }

      class="kw">public void setVirtualPath(String var1) {
         this.virtualPath = var1;
      }

      class="kw">public String getExtension() {
         class="kw">return this.extension;
      }

      class="kw">public void setExtension(String var1) {
         this.extension = var1;
      }

      class="kw">public String getIdProvider() {
         class="kw">return this.idProvider;
      }

      class="kw">public void setIdProvider(String var1) {
         this.idProvider = var1;
      }

      class="kw">public String[] getInternalKeys() {
         class="kw">return this.internalKeys;
      }

      class="kw">public void setInternalKeys(String[] var1) {
         this.internalKeys = var1;
      }

      class="kw">public UIDisplayMode.DisplayMode getUiDisplayMode() {
         class="kw">return this.uiDisplayMode;
      }

      class="kw">public void setUiDisplayMode(UIDisplayMode.DisplayMode var1) {
         this.uiDisplayMode = var1;
      }

      class="kw">public UIEditor.EditorComponent getUiEditorComponent() {
         class="kw">return this.uiEditorComponent;
      }

      class="kw">public void setUiEditorComponent(UIEditor.EditorComponent var1) {
         this.uiEditorComponent = var1;
      }

      class="kw">public UIEditorFeatures.EditorFeature[] getUiEditorFeatures() {
         class="kw">return this.uiEditorFeatures;
      }

      class="kw">public void setUiEditorFeatures(UIEditorFeatures.EditorFeature[] var1) {
         this.uiEditorFeatures = var1;
      }

      class="kw">public UIEditorPreview.PreviewType getUiEditorPreview() {
         class="kw">return this.uiEditorPreview;
      }

      class="kw">public void setUiEditorPreview(UIEditorPreview.PreviewType var1) {
         this.uiEditorPreview = var1;
      }

      class="kw">public String getUiTypeIcon() {
         class="kw">return this.uiTypeIcon;
      }

      class="kw">public void setUiTypeIcon(String var1) {
         this.uiTypeIcon = var1;
      }

      class="kw">public Boolean getUiEditorIgnore() {
         class="kw">return this.uiEditorIgnore;
      }

      class="kw">public void setUiEditorIgnore(Boolean var1) {
         this.uiEditorIgnore = var1;
      }

      class="kw">public Boolean getAllowEmptyObject() {
         class="kw">return this.allowEmptyObject;
      }

      class="kw">public void setAllowEmptyObject(Boolean var1) {
         this.allowEmptyObject = var1;
      }

      class="kw">public String getUiPropertyTitle() {
         class="kw">return this.uiPropertyTitle;
      }

      class="kw">public void setUiPropertyTitle(String var1) {
         this.uiPropertyTitle = var1;
      }

      class="kw">public String getUiSectionStart() {
         class="kw">return this.uiSectionStart;
      }

      class="kw">public void setUiSectionStart(String var1) {
         this.uiSectionStart = var1;
      }

      class="kw">public boolean isInheritsProperty() {
         class="kw">return this.inheritsProperty;
      }

      class="kw">public void setInheritsProperty(boolean var1) {
         this.inheritsProperty = var1;
      }

      class="kw">public boolean getMergesProperties() {
         class="kw">return this.mergesProperties;
      }

      class="kw">public void setMergesProperties(boolean var1) {
         this.mergesProperties = var1;
      }

      class="kw">public UIRebuildCaches.ClientCache[] getUiRebuildCaches() {
         class="kw">return this.uiRebuildCaches;
      }

      class="kw">public void setUiRebuildCaches(UIRebuildCaches.ClientCache[] var1) {
         this.uiRebuildCaches = var1;
      }

      class="kw">public Boolean getUiRebuildCachesForChildProperties() {
         class="kw">return this.uiRebuildCachesForChildProperties;
      }

      class="kw">public void setUiRebuildCachesForChildProperties(Boolean var1) {
         this.uiRebuildCachesForChildProperties = var1;
      }

      class="kw">public UIButton[] getUiSidebarButtons() {
         class="kw">return this.uiSidebarButtons;
      }

      class="kw">public void setUiSidebarButtons(UIButton[] var1) {
         this.uiSidebarButtons = var1;
      }

      class="kw">public Boolean getUiCollapsedByDefault() {
         class="kw">return this.uiCollapsedByDefault;
      }

      class="kw">public void setUiCollapsedByDefault(Boolean var1) {
         this.uiCollapsedByDefault = var1;
      }

      class="kw">public UIButton[] getUiCreateButtons() {
         class="kw">return this.uiCreateButtons;
      }

      class="kw">public void setUiCreateButtons(UIButton[] var1) {
         this.uiCreateButtons = var1;
      }

      @Override
      class="kw">public boolean equals(@Nullable Object var1) {
         if (this == var1) {
            class="kw">return true;
         }

         if (var1 != null && this.getClass() == var1.getClass()) {
            Schema.HytaleMetadata var2 = (Schema.HytaleMetadata)var1;
            if (this.type != null ? this.type.equals(var2.type) : var2.type == null) {
               if (this.path != null ? this.path.equals(var2.path) : var2.path == null) {
                  if (this.virtualPath != null ? this.virtualPath.equals(var2.virtualPath) : var2.virtualPath == null) {
                     if (this.extension != null ? this.extension.equals(var2.extension) : var2.extension == null) {
                        if (this.idProvider != null ? this.idProvider.equals(var2.idProvider) : var2.idProvider == null) {
                           if (!Arrays.equals(this.internalKeys, var2.internalKeys)) {
                              class="kw">return false;
                           }

                           if (this.inheritsProperty != null ? this.inheritsProperty.equals(var2.inheritsProperty) : var2.inheritsProperty == null) {
                              if (this.mergesProperties != null ? this.mergesProperties.equals(var2.mergesProperties) : var2.mergesProperties == null) {
                                 if (!Arrays.equals(this.uiEditorFeatures, var2.uiEditorFeatures)) {
                                    class="kw">return false;
                                 }

                                 if (this.uiEditorPreview != var2.uiEditorPreview) {
                                    class="kw">return false;
                                 }

                                 if (this.uiTypeIcon != null ? this.uiTypeIcon.equals(var2.uiTypeIcon) : var2.uiTypeIcon == null) {
                                    if (this.uiEditorIgnore != null ? this.uiEditorIgnore.equals(var2.uiEditorIgnore) : var2.uiEditorIgnore == null) {
                                       if (this.allowEmptyObject != null ? this.allowEmptyObject.equals(var2.allowEmptyObject) : var2.allowEmptyObject == null) {
                                          if (this.uiDisplayMode != var2.uiDisplayMode) {
                                             class="kw">return false;
                                          }

                                          if (this.uiEditorComponent != null
                                             ? this.uiEditorComponent.equals(var2.uiEditorComponent)
                                             : var2.uiEditorComponent == null) {
                                             if (this.uiPropertyTitle != null
                                                ? this.uiPropertyTitle.equals(var2.uiPropertyTitle)
                                                : var2.uiPropertyTitle == null) {
                                                if (this.uiSectionStart != null ? this.uiSectionStart.equals(var2.uiSectionStart) : var2.uiSectionStart == null
                                                   )
                                                 {
                                                   if (!Arrays.equals(this.uiRebuildCaches, var2.uiRebuildCaches)) {
                                                      class="kw">return false;
                                                   }

                                                   if (this.uiRebuildCachesForChildProperties != null
                                                      ? this.uiRebuildCachesForChildProperties.equals(var2.uiRebuildCachesForChildProperties)
                                                      : var2.uiRebuildCachesForChildProperties == null) {
                                                      if (!Arrays.equals(this.uiSidebarButtons, var2.uiSidebarButtons)) {
                                                         class="kw">return false;
                                                      } else {
                                                         class="kw">return (
                                                               this.uiCollapsedByDefault != null
                                                                  ? this.uiCollapsedByDefault.equals(var2.uiCollapsedByDefault)
                                                                  : var2.uiCollapsedByDefault == null
                                                            )
                                                            ? Arrays.equals(this.uiCreateButtons, var2.uiCreateButtons)
                                                            : false;
                                                      }
                                                   } else {
                                                      class="kw">return false;
                                                   }
                                                } else {
                                                   class="kw">return false;
                                                }
                                             } else {
                                                class="kw">return false;
                                             }
                                          } else {
                                             class="kw">return false;
                                          }
                                       } else {
                                          class="kw">return false;
                                       }
                                    } else {
                                       class="kw">return false;
                                    }
                                 } else {
                                    class="kw">return false;
                                 }
                              } else {
                                 class="kw">return false;
                              }
                           } else {
                              class="kw">return false;
                           }
                        } else {
                           class="kw">return false;
                        }
                     } else {
                        class="kw">return false;
                     }
                  } else {
                     class="kw">return false;
                  }
               } else {
                  class="kw">return false;
               }
            } else {
               class="kw">return false;
            }
         } else {
            class="kw">return false;
         }
      }

      @Override
      class="kw">public int hashCode() {
         int var1 = this.type != null ? this.type.hashCode() : 0;
         var1 = 31 * var1 + (this.path != null ? this.path.hashCode() : 0);
         var1 = 31 * var1 + (this.virtualPath != null ? this.virtualPath.hashCode() : 0);
         var1 = 31 * var1 + (this.extension != null ? this.extension.hashCode() : 0);
         var1 = 31 * var1 + (this.idProvider != null ? this.idProvider.hashCode() : 0);
         var1 = 31 * var1 + Arrays.hashCode(this.internalKeys);
         var1 = 31 * var1 + (this.inheritsProperty != null ? this.inheritsProperty.hashCode() : 0);
         var1 = 31 * var1 + (this.mergesProperties != null ? this.mergesProperties.hashCode() : 0);
         var1 = 31 * var1 + Arrays.hashCode(this.uiEditorFeatures);
         var1 = 31 * var1 + (this.uiEditorPreview != null ? this.uiEditorPreview.hashCode() : 0);
         var1 = 31 * var1 + (this.uiTypeIcon != null ? this.uiTypeIcon.hashCode() : 0);
         var1 = 31 * var1 + (this.uiEditorIgnore != null ? this.uiEditorIgnore.hashCode() : 0);
         var1 = 31 * var1 + (this.allowEmptyObject != null ? this.allowEmptyObject.hashCode() : 0);
         var1 = 31 * var1 + (this.uiDisplayMode != null ? this.uiDisplayMode.hashCode() : 0);
         var1 = 31 * var1 + (this.uiEditorComponent != null ? this.uiEditorComponent.hashCode() : 0);
         var1 = 31 * var1 + (this.uiPropertyTitle != null ? this.uiPropertyTitle.hashCode() : 0);
         var1 = 31 * var1 + (this.uiSectionStart != null ? this.uiSectionStart.hashCode() : 0);
         var1 = 31 * var1 + Arrays.hashCode(this.uiRebuildCaches);
         var1 = 31 * var1 + (this.uiRebuildCachesForChildProperties != null ? this.uiRebuildCachesForChildProperties.hashCode() : 0);
         var1 = 31 * var1 + Arrays.hashCode(this.uiSidebarButtons);
         var1 = 31 * var1 + (this.uiCollapsedByDefault != null ? this.uiCollapsedByDefault.hashCode() : 0);
         class="kw">return 31 * var1 + Arrays.hashCode(this.uiCreateButtons);
      }
   }

   class="kw">public class="kw">static class InheritSettings {
      class="kw">public class="kw">static class="kw">final BuilderCodec<Schema.InheritSettings> CODEC = BuilderCodec.builder(Schema.InheritSettings.class, Schema.InheritSettings::new)
         .append(new KeyedCodec<>("type", Codec.STRING, false, true), (var0, var1) -> var0.type = var1, var0 -> var0.type)
         .add()
         .append(new KeyedCodec<>("mapKey", Codec.STRING, false, true), (var0, var1) -> var0.mapKey = var1, var0 -> var0.mapKey)
         .add()
         .append(new KeyedCodec<>("mapKeyValue", Codec.STRING, false, true), (var0, var1) -> var0.mapKeyValue = var1, var0 -> var0.mapKeyValue)
         .add()
         .build();
      class="kw">private String type;
      class="kw">private String mapKey;
      class="kw">private String mapKeyValue;

      class="kw">public InheritSettings(String var1) {
         this.type = var1;
      }

      class="kw">protected InheritSettings() {
      }

      class="kw">public String getType() {
         class="kw">return this.type;
      }

      class="kw">public void setType(String var1) {
         this.type = var1;
      }

      class="kw">public String getMapKey() {
         class="kw">return this.mapKey;
      }

      class="kw">public void setMapKey(String var1) {
         this.mapKey = var1;
      }

      class="kw">public String getMapKeyValue() {
         class="kw">return this.mapKeyValue;
      }

      class="kw">public void setMapKeyValue(String var1) {
         this.mapKeyValue = var1;
      }

      @Override
      class="kw">public boolean equals(@Nullable Object var1) {
         if (this == var1) {
            class="kw">return true;
         }

         if (var1 != null && this.getClass() == var1.getClass()) {
            Schema.InheritSettings var2 = (Schema.InheritSettings)var1;
            if (this.type != null ? this.type.equals(var2.type) : var2.type == null) {
               if (this.mapKey != null ? this.mapKey.equals(var2.mapKey) : var2.mapKey == null) {
                  class="kw">return this.mapKeyValue != null ? this.mapKeyValue.equals(var2.mapKeyValue) : var2.mapKeyValue == null;
               } else {
                  class="kw">return false;
               }
            } else {
               class="kw">return false;
            }
         } else {
            class="kw">return false;
         }
      }

      @Override
      class="kw">public int hashCode() {
         int var1 = this.type != null ? this.type.hashCode() : 0;
         var1 = 31 * var1 + (this.mapKey != null ? this.mapKey.hashCode() : 0);
         class="kw">return 31 * var1 + (this.mapKeyValue != null ? this.mapKeyValue.hashCode() : 0);
      }
   }

   class="kw">public class="kw">static class SchemaTypeField {
      class="kw">public class="kw">static class="kw">final BuilderCodec<Schema.SchemaTypeField> CODEC = BuilderCodec.builder(Schema.SchemaTypeField.class, Schema.SchemaTypeField::new)
         .append(new KeyedCodec<>("property", Codec.STRING, false, true), (var0, var1) -> var0.property = var1, var0 -> var0.property)
         .add()
         .append(new KeyedCodec<>("defaultValue", Codec.STRING, false, true), (var0, var1) -> var0.defaultValue = var1, var0 -> var0.defaultValue)
         .add()
         .append(new KeyedCodec<>("values", Codec.STRING_ARRAY, false, true), (var0, var1) -> var0.values = var1, var0 -> var0.values)
         .add()
         .append(
            new KeyedCodec<>("parentPropertyKey", Codec.STRING, false, true), (var0, var1) -> var0.parentPropertyKey = var1, var0 -> var0.parentPropertyKey
         )
         .add()
         .build();
      class="kw">private String property;
      class="kw">private String defaultValue;
      class="kw">private String[] values;
      class="kw">private String parentPropertyKey;

      class="kw">public SchemaTypeField(String var1, String var2, String... var3) {
         this.property = var1;
         this.defaultValue = var2;
         this.values = var3;
      }

      class="kw">protected SchemaTypeField() {
      }

      class="kw">public String getProperty() {
         class="kw">return this.property;
      }

      class="kw">public String getDefaultValue() {
         class="kw">return this.defaultValue;
      }

      class="kw">public String[] getValues() {
         class="kw">return this.values;
      }

      class="kw">public String getParentPropertyKey() {
         class="kw">return this.parentPropertyKey;
      }

      class="kw">public void setParentPropertyKey(String var1) {
         this.parentPropertyKey = var1;
      }

      @Override
      class="kw">public boolean equals(Object var1) {
         if (var1 != null && this.getClass() == var1.getClass()) {
            Schema.SchemaTypeField var2 = (Schema.SchemaTypeField)var1;
            class="kw">return Objects.equals(this.property, var2.property)
               && Objects.equals(this.defaultValue, var2.defaultValue)
               && Arrays.deepEquals(this.values, var2.values)
               && Objects.equals(this.parentPropertyKey, var2.parentPropertyKey);
         } else {
            class="kw">return false;
         }
      }

      @Override
      class="kw">public int hashCode() {
         int var1 = Objects.hashCode(this.property);
         var1 = 31 * var1 + Objects.hashCode(this.defaultValue);
         var1 = 31 * var1 + Arrays.hashCode(this.values);
         class="kw">return 31 * var1 + Objects.hashCode(this.parentPropertyKey);
      }
   }

   @Deprecated
   class="kw">private class="kw">static class StringOrBlank class="kw">implements Codec<String> {
      class="kw">private StringOrBlank() {
      }

      class="kw">public String decode(@Nonnull BsonValue var1, ExtraInfo var2) {
         if (var1.isString()) {
            class="kw">return Codec.STRING.decode(var1, var2);
         }

         if (var1.isArray()) {
            BsonArray var3 = var1.asArray();

            for (int var4 = 0; var4 < var3.size(); var4++) {
               BsonValue var5 = var3.get(var4);
               if (!var5.asString().getValue().equals("null")) {
                  class="kw">return Codec.STRING.decode(var5, var2);
               }
            }

            throw new IllegalArgumentException("Unknown type (in array)");
         } else {
            class="kw">return "";
         }
      }

      @Nonnull
      class="kw">public BsonValue encode(@Nonnull String var1, ExtraInfo var2) {
         class="kw">return Codec.STRING.encode(var1, var2);
      }

      @Nonnull
      @Override
      class="kw">public Schema toSchema(@Nonnull SchemaContext var1) {
         class="kw">return Schema.anyOf(new ArraySchema(), new StringSchema());
      }
   }
}