/** * */ package vnet.sms.common.cachewriter.cassandra.internal; import java.lang.reflect.Field; import vnet.sms.common.cachewriter.cassandra.CacheWriterAnnotations; import vnet.sms.common.cachewriter.cassandra.Column; import vnet.sms.common.cachewriter.cassandra.ColumnFamily; import vnet.sms.common.cachewriter.cassandra.Id; /** * @author obergner * */ public class DefaultCacheWriterAnnotations implements CacheWriterAnnotations<Id, Column, ColumnFamily> { /** * @see com.netflix.astyanax.mapping.AnnotationSet#getIdAnnotation() */ @Override public Class<Id> getIdAnnotation() { return Id.class; } /** * @see com.netflix.astyanax.mapping.AnnotationSet#getColumnAnnotation() */ @Override public Class<Column> getColumnAnnotation() { return Column.class; } /** * @see com.netflix.astyanax.mapping.AnnotationSet#getIdName(java.lang.reflect.Field, * java.lang.annotation.Annotation) */ @Override public String getIdName(final Field field, final Id annotation) { return field.getName(); } /** * @see com.netflix.astyanax.mapping.AnnotationSet#getColumnName(java.lang.reflect.Field, * java.lang.annotation.Annotation) */ @Override public String getColumnName(final Field field, final Column annotation) { final String name = annotation.value(); return (name.length() > 0) ? name : field.getName(); } @Override public Class<ColumnFamily> getColumnFamilyAnnotation() { return ColumnFamily.class; } /** * @see vnet.sms.common.cachewriter.cassandra.CacheWriterAnnotations#getColumnFamilyName(java.lang.Class, * java.lang.annotation.Annotation) */ @Override public String getColumnFamilyName(final Class<?> type, final ColumnFamily annotation) { final String name = annotation.value(); return (name.length() > 0) ? name : type.getSimpleName(); } }