001/* 002 * oauth2-oidc-sdk 003 * 004 * Copyright 2012-2016, Connect2id Ltd and contributors. 005 * 006 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use 007 * this file except in compliance with the License. You may obtain a copy of the 008 * License at 009 * 010 * http://www.apache.org/licenses/LICENSE-2.0 011 * 012 * Unless required by applicable law or agreed to in writing, software distributed 013 * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 014 * CONDITIONS OF ANY KIND, either express or implied. See the License for the 015 * specific language governing permissions and limitations under the License. 016 */ 017 018package com.nimbusds.openid.connect.sdk.assurance.claims; 019 020 021import com.nimbusds.oauth2.sdk.util.StringUtils; 022 023 024/** 025 * ISO 3166-1 alpha (letter-based) country code. 026 */ 027public abstract class ISO3166_1AlphaCountryCode extends CountryCode { 028 029 030 private static final long serialVersionUID = -3383887427716306419L; 031 032 033 /** 034 * Creates a new ISO 3166-1 alpha (letter-based) country code. 035 * Normalises the code to upper case. 036 * 037 * @param value The country code value. Must be alphabetic. 038 */ 039 public ISO3166_1AlphaCountryCode(final String value) { 040 super(value.toUpperCase()); 041 if (! StringUtils.isAlpha(value)) { 042 throw new IllegalArgumentException("The ISO 3166-1 alpha country code must consist of letters"); 043 } 044 } 045 046 047 /** 048 * Returns the country name. 049 * 050 * @return The country name, {@code null} if not available. 051 */ 052 public abstract String getCountryName(); 053}