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

com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBGeneratedUuid Maven / Gradle / Ivy

Go to download

The AWS Java SDK for Amazon DynamoDB module holds the client classes that are used for communicating with Amazon DynamoDB Service

There is a newer version: 1.12.778
Show newest version
/*
 * Copyright 2011-2024 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 *
 * 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.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import java.util.UUID;

/**
 * Annotation for auto-generating a {@link UUID}.
 *
 * 
 * @DynamoDBGeneratedUuid(DynamoDBAutoGenerateStrategy.CREATE)
 * public UUID getKey()
 * 
* *

When applied to a key field, only the strategy * {@link DynamoDBAutoGenerateStrategy#CREATE} is supported.

* *

The short-formed {@link DynamoDBAutoGeneratedKey} may also be used for * create only.

* *

May be used as a meta-annotation.

* * @see java.util.UUID */ @DynamoDB @DynamoDBAutoGenerated(generator=DynamoDBGeneratedUuid.Generator.class) @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.FIELD, ElementType.METHOD, ElementType.ANNOTATION_TYPE}) public @interface DynamoDBGeneratedUuid { /** * The auto-generation strategy. */ DynamoDBAutoGenerateStrategy value(); /** * Default generator. */ static final class Generator extends DynamoDBAutoGenerator.AbstractGenerator { private final DynamoDBTypeConverter converter; public Generator(Class targetType, DynamoDBGeneratedUuid annotation) { super(annotation.value()); this.converter = StandardTypeConverters.factory().getConverter(targetType, UUID.class); } @Override public final T generate(final T currentValue) { return converter.convert(UUID.randomUUID()); } } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy