From: <hib...@li...> - 2006-03-19 04:07:08
|
Author: ste...@jb... Date: 2006-03-18 23:07:05 -0500 (Sat, 18 Mar 2006) New Revision: 9658 Added: branches/HQL_ANTLR_2/Hibernate3/src/org/hibernate/hql/ast/tree/EntityPersisterReference.java branches/HQL_ANTLR_2/Hibernate3/src/org/hibernate/hql/ast/tree/PersisterReference.java branches/HQL_ANTLR_2/Hibernate3/src/org/hibernate/hql/ast/tree/PropertyReference.java Log: initial persister/property ref nodes Added: branches/HQL_ANTLR_2/Hibernate3/src/org/hibernate/hql/ast/tree/EntityPersisterReference.java =================================================================== --- branches/HQL_ANTLR_2/Hibernate3/src/org/hibernate/hql/ast/tree/EntityPersisterReference.java 2006-03-19 03:17:18 UTC (rev 9657) +++ branches/HQL_ANTLR_2/Hibernate3/src/org/hibernate/hql/ast/tree/EntityPersisterReference.java 2006-03-19 04:07:05 UTC (rev 9658) @@ -0,0 +1,40 @@ +package org.hibernate.hql.ast.tree; + +import org.hibernate.type.AssociationType; +import org.hibernate.persister.entity.Queryable; + +/** + * @author Steve Ebersole + */ +public class EntityPersisterReference extends Node implements PersisterReference { + private String entityName; + private String alias; + private Queryable persister; + + public void initialize(String entityName, String alias) { + // todo : would much prefer this stuff to be constructor injection... + // todo : need a SF reference to resolve the persister... + this.entityName = entityName; + this.alias = alias; + } + + public String getName() { + return alias == null ? entityName : entityName + " (" + alias + ")"; + } + + public String getAlias() { + return alias; + } + + public AssociationType getPersisterType() { + return ( AssociationType ) persister.getType(); + } + + public PropertyReference retrievePropertyReference(String propertyName) { + return null; + } + + public String getDisplayText() { + return null; + } +} Added: branches/HQL_ANTLR_2/Hibernate3/src/org/hibernate/hql/ast/tree/PersisterReference.java =================================================================== --- branches/HQL_ANTLR_2/Hibernate3/src/org/hibernate/hql/ast/tree/PersisterReference.java 2006-03-19 03:17:18 UTC (rev 9657) +++ branches/HQL_ANTLR_2/Hibernate3/src/org/hibernate/hql/ast/tree/PersisterReference.java 2006-03-19 04:07:05 UTC (rev 9658) @@ -0,0 +1,17 @@ +package org.hibernate.hql.ast.tree; + +import org.hibernate.type.AssociationType; + +/** + * Represents a reference to a persister (either entity or collection) within + * an HQL statement. + * + * @author Steve Ebersole + */ +public interface PersisterReference extends DisplayableNode { + public String getName(); + public String getAlias(); + public AssociationType getPersisterType(); + + public PropertyReference retrievePropertyReference(String propertyName); +} Added: branches/HQL_ANTLR_2/Hibernate3/src/org/hibernate/hql/ast/tree/PropertyReference.java =================================================================== --- branches/HQL_ANTLR_2/Hibernate3/src/org/hibernate/hql/ast/tree/PropertyReference.java 2006-03-19 03:17:18 UTC (rev 9657) +++ branches/HQL_ANTLR_2/Hibernate3/src/org/hibernate/hql/ast/tree/PropertyReference.java 2006-03-19 04:07:05 UTC (rev 9658) @@ -0,0 +1,15 @@ +package org.hibernate.hql.ast.tree; + +import org.hibernate.type.Type; + +/** + * Represents a reference to a particular persister-managed property; also + * some special cases such as a collection property reference (e.g., size). + * + * @author Steve Ebersole + */ +public interface PropertyReference extends DisplayableNode { + public String getPropertyName(); + public Type getPropertyType(); + public PersisterReference getPersisterReference(); +} |