001package io.ebean.plugin;
002
003import javax.annotation.Nonnull;
004
005/**
006 * Property of a entity bean that can be read.
007 */
008public interface Property {
009
010  /**
011   * Return the name of the property.
012   */
013  @Nonnull
014  String getName();
015
016  /**
017   * Return the type of the property.
018   */
019  @Nonnull
020  Class<?> getPropertyType();
021
022  /**
023   * Return the value of the property on the given bean.
024   */
025  Object getVal(Object bean);
026
027  /**
028   * Return true if this is a OneToMany or ManyToMany property.
029   */
030  boolean isMany();
031}