package com.airlock.iam.admin.application.configuration.generic;

import com.airlock.iam.admin.api.domain.model.token.generic.GenericToken;
import com.airlock.iam.base.api.domain.model.validation.ValidationResult;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import jakarta.annotation.Nullable;

public abstract class MappingEntry {
   private final boolean readOnly;

   protected MappingEntry(boolean readOnly) {
      this.readOnly = readOnly;
   }

   abstract void setAttributeValueOnToken(Object var1, GenericToken var2);

   @Nullable
   abstract Object getAttributeValueFromToken(GenericToken var1);

   @SuppressFBWarnings("NM_CONFUSING")
   protected boolean isReadOnly() {
      return this.readOnly;
   }

   ValidationResult validate(String key, Object object) {
      return ValidationResult.valid();
   }
}
