All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.avaje.ebean.plugin.ExpressionPath Maven / Gradle / Ivy

package com.avaje.ebean.plugin;

import com.avaje.ebean.bean.EntityBean;
import com.avaje.ebean.text.StringParser;

/**
 * A dot notation expression path.
 */
public interface ExpressionPath {

  /**
   * Return true if there is a property on the path that is a many property.
   */
  boolean containsMany();

  /**
   * Return the value from a given entity bean.
   */
  Object pathGet(Object bean);

  /**
   * Set a value to the bean for this expression path.
   *
   * @param bean  the bean to set the value on
   * @param value the value to set
   */
  void pathSet(Object bean, Object value);

  /**
   * Convert the value to the expected type.
   * 

* Typically useful for converting strings to the appropriate number type etc. *

*/ Object convert(Object value); /** * Return the default StringParser for the scalar property. */ StringParser getStringParser(); /** * For DateTime capable scalar types convert the long systemTimeMillis into * an appropriate java time (Date,Timestamp,Time,Calendar, JODA type etc). */ Object parseDateTime(long systemTimeMillis); /** * Return true if the last type is "DateTime capable" - can support * {@link #parseDateTime(long)}. */ boolean isDateTimeCapable(); /** * Return the underlying JDBC type or 0 if this is not a scalar type. */ int getJdbcType(); /** * Return true if this is an ManyToOne or OneToOne associated bean property. */ boolean isAssocId(); /** * Return the Id expression string. *

* Typically used to produce id = ? expression strings. *

*/ String getAssocIdExpression(String propName, String bindOperator); /** * Return the Id values for the given bean value. */ Object[] getAssocIdValues(EntityBean bean); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy