Package au.net.causal.projo.metadata

Source Code of au.net.causal.projo.metadata.SettingsPropertyMetadata

package au.net.causal.projo.metadata;

import java.lang.annotation.Annotation;
import java.lang.reflect.Type;

import org.apache.commons.lang3.StringUtils;

import au.net.causal.projo.annotation.Preference;
import au.net.causal.projo.bind.EntityMetadata;
import au.net.causal.projo.bind.PropertyAccessor;
import au.net.causal.projo.bind.PropertyMetadata;

public class SettingsPropertyMetadata extends PropertyMetadata
{
  private final String key;
  private final SettingsEntityMetadata targetEntity;
 
  public SettingsPropertyMetadata(String name, Type propertyType, EntityMetadata<?> parent, PropertyAccessor accessor,
      Iterable<? extends Annotation> annotations, SettingsEntityMetadata targetEntity)
  {
    super(name, propertyType, parent, accessor, annotations);
   
    Preference preference = getAnnotation(Preference.class);
    if (preference == null || StringUtils.isEmpty(preference.key()))
      key = name;
    else
      key = preference.key();
   
    this.targetEntity = targetEntity;
  }
 
  public String getKey()
  {
    return(key);
  }
 
  public SettingsEntityMetadata getTargetEntity()
  {
    return(targetEntity);
  }
}
TOP

Related Classes of au.net.causal.projo.metadata.SettingsPropertyMetadata

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.