com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMappingsRegistry Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of aws-java-sdk-dynamodb Show documentation
Show all versions of aws-java-sdk-dynamodb Show documentation
The AWS Java SDK for Amazon DynamoDB module holds the client classes that are used for communicating with Amazon DynamoDB Service
/*
* Copyright 2015-2020 Amazon Technologies, Inc.
*
* 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:
*
* http://aws.amazon.com/apache2.0
*
* This file 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.amazonaws.services.dynamodbv2.datamodeling;
import java.lang.reflect.Method;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
import com.amazonaws.annotation.SdkInternalApi;
import com.amazonaws.services.dynamodbv2.datamodeling.StandardBeanProperties.Bean;
/**
* Reflection assistant for {@link DynamoDBMapper}
*
* @deprecated Replaced by {@link StandardBeanProperties}/{@link StandardModelFactories}
*/
@Deprecated
@SdkInternalApi
final class DynamoDBMappingsRegistry {
/**
* The default instance.
*/
private static final DynamoDBMappingsRegistry INSTANCE = new DynamoDBMappingsRegistry();
/**
* Gets the default instance.
* @return The default instance.
*/
static final DynamoDBMappingsRegistry instance() {
return INSTANCE;
}
/**
* The cache of class to mapping definition.
*/
private final ConcurrentMap, Mappings> mappings = new ConcurrentHashMap, Mappings>();
/**
* Gets the mapping definition for a given class.
* @param clazz The class.
* @return The mapping definition.
*/
final Mappings mappingsOf(final Class> clazz) {
if (!mappings.containsKey(clazz)) {
mappings.putIfAbsent(clazz, new Mappings(clazz));
}
return mappings.get(clazz);
}
/**
* Holds the properties for mapping an object.
*/
static final class Mappings {
private final Map byNames = new HashMap();
private Mappings(final Class> clazz) {
for (final Map.Entry> bean : StandardBeanProperties.of((Class