@Target(value={METHOD,PARAMETER,FIELD}) @Retention(value=RUNTIME) public @interface Any
Ex: @Controller("/controller") public class PropertyController{ public void saveProperty( @Basic(bean="property") @Any( metaBean=@Basic(bean="property_type") metaValues={ @MetaValue(name="Decimal", target=DecimalProperty.class), @MetaValue(name="Set”, target=SetProperty.class) } ) Property property){ ... } } public interface Property{ Object getName(); } public abstract class AbstractProperty{ private String name; public Stirng getName(){ return this.name; } } public class DecimalProperty extends AbstractProperty{ private int length; private int decimals; ... } public class SetProperty extends AbstractProperty { private List <String> values; ... }
Modifier and Type | Required Element and Description |
---|---|
Basic |
metaBean
Mapeamento dos metadados.
|
Modifier and Type | Optional Element and Description |
---|---|
EnumerationType |
metaEnumerated
Usado se os metadados forem do tipo enum.
|
String |
metaTemporal
|
Class<?> |
metaType
Tipo dos metadados.
|
Class<? extends Type> |
metaTypeDef
Define o uso de um tipo específico.
|
MetaValue[] |
metaValues
Especificação dos tipos de mapeamentos.
|
Class<? extends MetaValuesDefinition> |
metaValuesDefinition
Permite, em tempo de execução, definir os tipos de mapeamento.
|
public abstract Basic metaBean
public abstract Class<?> metaType
public abstract EnumerationType metaEnumerated
EnumerationType
.public abstract String metaTemporal
Date
ou
Calendar
. Deve seguir o padrão definido em
SimpleDateFormat
.public abstract MetaValue[] metaValues
public abstract Class<? extends MetaValuesDefinition> metaValuesDefinition
Copyright © 2018 Brandao. All rights reserved.