RequiresOneOfFeaturesValidator class

Пакет: com.hypixel.hytale.server.npc.asset.builder.validators

Файл: com/hypixel/hytale/server/npc/asset/builder/validators/RequiresOneOfFeaturesValidator.java

extends: RequiredFeatureValidator

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.server.npc.asset.builder.validators;

class="kw">import com.hypixel.hytale.server.npc.asset.builder.BuilderBase;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.Feature;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.FeatureEvaluatorHelper;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.providerevaluators.FeatureProviderEvaluator;
class="kw">import com.hypixel.hytale.server.npc.asset.builder.providerevaluators.ProviderEvaluator;
class="kw">import java.util.EnumSet;
class="kw">import javax.annotation.Nonnull;

class="kw">public class RequiresOneOfFeaturesValidator class="kw">extends RequiredFeatureValidator {
   @Nonnull
   class="kw">private class="kw">final EnumSet<Feature> requiredFeature;
   @Nonnull
   class="kw">private class="kw">final String[] description;

   class="kw">private RequiresOneOfFeaturesValidator(@Nonnull EnumSet<Feature> var1) {
      this.requiredFeature = var1;
      this.description = BuilderBase.getDescriptionArray(var1);
   }

   @Override
   class="kw">public boolean validate(@Nonnull FeatureEvaluatorHelper var1) {
      for (ProviderEvaluator var3 : var1.getProviders()) {
         if (var3 class="kw">instanceof FeatureProviderEvaluator && ((FeatureProviderEvaluator)var3).provides(this.requiredFeature)) {
            class="kw">return true;
         }
      }

      class="kw">return false;
   }

   @Nonnull
   @Override
   class="kw">public String getErrorMessage(String var1) {
      class="kw">return String.format("At least one of required features %s must be provided at %s", String.join(", ", this.description), var1);
   }

   @Nonnull
   class="kw">public class="kw">static RequiresOneOfFeaturesValidator withFeatures(@Nonnull EnumSet<Feature> var0) {
      class="kw">return new RequiresOneOfFeaturesValidator(var0);
   }
}