001/* 002 * Stallion Core: A Modern Web Framework 003 * 004 * Copyright (C) 2015 - 2016 Stallion Software LLC. 005 * 006 * This program is free software: you can redistribute it and/or modify it under the terms of the 007 * GNU General Public License as published by the Free Software Foundation, either version 2 of 008 * the License, or (at your option) any later version. This program is distributed in the hope that 009 * it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of 010 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public 011 * License for more details. You should have received a copy of the GNU General Public License 012 * along with this program. If not, see <http://www.gnu.org/licenses/gpl-2.0.html>. 013 * 014 * 015 * 016 */ 017 018package io.stallion.dataAccess.db; 019 020import io.stallion.dataAccess.db.converters.AttributeConverter; 021 022import java.lang.annotation.Retention; 023import java.lang.annotation.RetentionPolicy; 024 025/** 026 * An annotation that allows defining a custom AttributeConverter, 027 * add this to a model property getter to define a custom class for 028 * converting to and fro database format. 029 */ 030@Retention(RetentionPolicy.RUNTIME) 031public @interface Converter { 032 /** 033 * The canonical class name of the converter. (It is better to use cls instead of this, for 034 * better type checking. 035 * @return 036 */ 037 public String name() default ""; 038 039 /** 040 * The AttributeConverter to use. Preferring setting this to setting name. 041 * @return 042 */ 043 public Class<? extends AttributeConverter> cls() default AttributeConverter.class; 044}