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

com.c4_soft.springaddons.security.oauth2.test.annotations.OpenIdAddress Maven / Gradle / Ivy

There is a newer version: 7.8.11
Show newest version
/*
 * Copyright 2019 Jérôme Wacongne
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may
 * obtain a copy of the License at
 *
 * https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
 * and limitations under the License.
 */

package com.c4_soft.springaddons.security.oauth2.test.annotations;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import org.springframework.util.StringUtils;

import com.c4_soft.springaddons.security.oauth2.test.OpenidClaimSetBuilder.AddressClaim;

/**
 * @author Jérôme Wacongne <ch4mp@c4-soft.com>
 */
@Target({ ElementType.METHOD, ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
public @interface OpenIdAddress {

	String formattedAddress() default "";

	String streetAddress() default "";

	String locality() default "";

	String region() default "";

	String postalCode() default "";

	String country() default "";

	public static class Claim {
		private Claim() {
		}

		public static AddressClaim of(OpenIdAddress addressAnnotation) {
			return new AddressClaim()
					.country(nullIfEmpty(addressAnnotation.country()))
					.formatted(nullIfEmpty(addressAnnotation.formattedAddress()))
					.locality(nullIfEmpty(addressAnnotation.locality()))
					.postalCode(nullIfEmpty(addressAnnotation.postalCode()))
					.region(nullIfEmpty(addressAnnotation.region()))
					.streetAddress(nullIfEmpty(addressAnnotation.streetAddress()));
		}

		private static String nullIfEmpty(String str) {
			return StringUtils.hasText(str) ? str : null;
		}
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy