All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.yubico.fido.metadata.AlternativeDescriptions Maven / Gradle / Ivy

package com.yubico.fido.metadata;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;
import java.util.Map;
import java.util.Optional;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.Value;

/**
 * See:
 * https://fidoalliance.org/specs/mds/fido-metadata-statement-v3.0-ps-20210518.html#alternativedescriptions-dictionary
 *
 * @see FIDO
 *     Metadata Statement §3.11. AlternativeDescriptions dictionary
 */
@Value
@AllArgsConstructor(onConstructor_ = {@JsonCreator})
public class AlternativeDescriptions {

  @JsonValue
  @Getter(AccessLevel.NONE)
  Map values;

  /**
   * Get a map entry in accordance with the rules defined in AlternativeDescriptions
   * dictionary.
   *
   * @see AlternativeDescriptions
   *     dictionary.
   */
  public Optional get(String languageCode) {
    if (values.containsKey(languageCode)) {
      return Optional.of(values.get(languageCode));
    } else {
      final String[] splits = languageCode.split("-");
      if (splits.length > 1 && values.containsKey(splits[0])) {
        return Optional.of(values.get(splits[0]));
      } else {
        return Optional.empty();
      }
    }
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy