/******************************************************************************* * Copyright (c) 2015 the original author or authors. * * 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://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 org.springframework.data.aerospike.mapping; import java.util.*; import org.springframework.data.mapping.model.SimpleTypeHolder; /** * Simple constant holder for a {@link SimpleTypeHolder} enriched with Aerospike specific simple types. * * @author Oliver Gierke * @author Peter Milne */ public abstract class AerospikeSimpleTypes { public static final Set<Class<?>> AUTOGENERATED_ID_TYPES; static { Set<Class<?>> classes = new HashSet<Class<?>>(); classes.add(String.class); classes.add(Integer.class); classes.add(Long.class); AUTOGENERATED_ID_TYPES = Collections.unmodifiableSet(classes); Set<Class<?>> simpleTypes = new HashSet<Class<?>>(); simpleTypes.add(boolean.class); simpleTypes.add(boolean[].class); simpleTypes.add(long.class); simpleTypes.add(long[].class); simpleTypes.add(short.class); simpleTypes.add(short[].class); simpleTypes.add(int.class); simpleTypes.add(int[].class); simpleTypes.add(byte.class); simpleTypes.add(byte[].class); simpleTypes.add(float.class); simpleTypes.add(float[].class); simpleTypes.add(double.class); simpleTypes.add(double[].class); simpleTypes.add(char.class); simpleTypes.add(char[].class); simpleTypes.add(Boolean.class); simpleTypes.add(Long.class); simpleTypes.add(Short.class); simpleTypes.add(Integer.class); simpleTypes.add(Byte.class); simpleTypes.add(Float.class); simpleTypes.add(Double.class); simpleTypes.add(Character.class); simpleTypes.add(String.class); simpleTypes.add(Date.class); simpleTypes.add(Locale.class); simpleTypes.add(Class.class); simpleTypes.add(List.class); simpleTypes.add(Map.class); simpleTypes.add(Byte[].class); simpleTypes.add(UUID.class); AEROSPIKE_SIMPLE_TYPES = Collections.unmodifiableSet(simpleTypes); } private static final Set<Class<?>> AEROSPIKE_SIMPLE_TYPES; public static final SimpleTypeHolder HOLDER = new SimpleTypeHolder(AEROSPIKE_SIMPLE_TYPES, Boolean.FALSE); private AerospikeSimpleTypes() {} public static String getColletionName(Class<?> clazz){ Document annotation = (Document)clazz.getAnnotation(Document.class); if(annotation != null && ! annotation.collection().isEmpty()){ return annotation.collection(); } return clazz.getSimpleName(); } }