GenderConverter.java

/*
 * Copyright © 2024-2025 The CTAN Team and individual authors
 *
 * This file is distributed under the 3-clause BSD license.
 * See file LICENSE for details.
 */

package org.ctan.site.domain;

import jakarta.persistence.AttributeConverter;
import jakarta.persistence.Converter;
import lombok.NonNull;

/**
 * The class <code>GenderConverter</code> contains the converter from and to
 * Gender values to single-character strings.
 */
@Converter(autoApply = true)
public class GenderConverter implements AttributeConverter<Gender, String> {

    /**
     * {@inheritDoc}
     *
     * @see jakarta.persistence.AttributeConverter#convertToDatabaseColumn(java.lang.Object)
     */
    @Override
    public String convertToDatabaseColumn(@NonNull Gender gender) {

        return gender.getValue();
    }

    /**
     * {@inheritDoc}
     *
     * @see jakarta.persistence.AttributeConverter#convertToEntityAttribute(java.lang.Object)
     */
    @Override
    public Gender convertToEntityAttribute(@NonNull String value) {

        return Gender.of(value);
    }

}