001package com.nimbusds.openid.connect.sdk.claims;
002
003
004import net.jcip.annotations.Immutable;
005
006import com.nimbusds.oauth2.sdk.id.Identifier;
007
008
009/**
010 * The end-user's gender: Values defined by the OpenID Connect specification 
011 * are {@link #FEMALE} and {@link #MALE} ({@code gender}). Other values may be
012 * used when neither of the defined values are applicable. This class is
013 * immutable.
014 *
015 * @author Vladimir Dzhuvinov
016 */
017@Immutable
018public class Gender extends Identifier {
019
020        
021        /**
022         * Female gender claim value.
023         */
024        public static final Gender FEMALE = new Gender("female");
025        
026        
027        /**
028         * Male gender claim value.
029         */
030        public static final Gender MALE = new Gender("male");
031        
032         
033        /**
034         * Creates a new gender with the specified value.
035         *
036         * @param value The gender value. Must not be {@code null}.
037         */
038        public Gender(final String value) {
039        
040                super(value);
041        }
042
043
044        @Override
045        public boolean equals(final Object object) {
046        
047                return object instanceof Gender &&
048                       this.toString().equals(object.toString());
049        }
050}