@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 org.brandao.brutos.type.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
public abstract Class<? extends org.brandao.brutos.type.Type> metaTypeDef
Copyright © 2018 Brandao. All rights reserved.