|
From: <hib...@li...> - 2006-05-29 14:22:13
|
Author: max...@jb...
Date: 2006-05-29 10:21:56 -0400 (Mon, 29 May 2006)
New Revision: 9957
Modified:
trunk/HibernateExt/tools/src/java/org/hibernate/tool/ide/completion/ConfigurationCompletion.java
trunk/HibernateExt/tools/src/test/org/hibernate/tool/ide/completion/Model.java
trunk/HibernateExt/tools/src/test/org/hibernate/tool/ide/completion/ModelCompletionTest.java
trunk/HibernateExt/tools/src/test/org/hibernate/tool/ide/completion/Product.hbm.xml
trunk/HibernateExt/tools/src/test/org/hibernate/tool/ide/completion/Product.java
Log:
fixed completion for joined components
e.g. "from Product p join p.otherOwners where p.|"
Modified: trunk/HibernateExt/tools/src/java/org/hibernate/tool/ide/completion/ConfigurationCompletion.java
===================================================================
--- trunk/HibernateExt/tools/src/java/org/hibernate/tool/ide/completion/ConfigurationCompletion.java 2006-05-29 14:20:28 UTC (rev 9956)
+++ trunk/HibernateExt/tools/src/java/org/hibernate/tool/ide/completion/ConfigurationCompletion.java 2006-05-29 14:21:56 UTC (rev 9957)
@@ -9,6 +9,7 @@
import java.util.Set;
import java.util.Map.Entry;
+import org.hibernate.HibernateException;
import org.hibernate.cfg.Configuration;
import org.hibernate.mapping.Collection;
import org.hibernate.mapping.Component;
@@ -104,6 +105,8 @@
// No properties left
if (value instanceof Component) {
addPropertiesToList((Component) value, prefix, cursorPosition, hcc);
+ } else if (value instanceof Collection && ((Collection)value).getElement() instanceof Component) {
+ addPropertiesToList((Component) ((Collection)value).getElement(), prefix, cursorPosition, hcc);
} else {
addPropertiesToList(getPersistentClass( getReferencedEntityName( value ) ), prefix, cursorPosition, hcc);
}
@@ -280,8 +283,13 @@
if (attribute.equals(idName)) {
return cmd.getIdentifierProperty().getValue();
}
- Property property = cmd.getProperty( attribute );
- return property==null?null:property.getValue();
+ try {
+ Property property = cmd.getProperty( attribute );
+ return property==null?null:property.getValue();
+ } catch (HibernateException he) {
+ return null;
+ }
+
}
private Value getNextAttributeType(Component t, String attributeName) {
Modified: trunk/HibernateExt/tools/src/test/org/hibernate/tool/ide/completion/Model.java
===================================================================
--- trunk/HibernateExt/tools/src/test/org/hibernate/tool/ide/completion/Model.java 2006-05-29 14:20:28 UTC (rev 9956)
+++ trunk/HibernateExt/tools/src/test/org/hibernate/tool/ide/completion/Model.java 2006-05-29 14:21:56 UTC (rev 9957)
@@ -38,6 +38,7 @@
addInputStream(Model.class.getResourceAsStream("Store.hbm.xml")).
addInputStream(Model.class.getResourceAsStream("ProductOwnerAddress.hbm.xml")).
addInputStream(Model.class.getResourceAsStream("StoreCity.hbm.xml"));
+ cfg.buildMappings();
return cfg;
}
Modified: trunk/HibernateExt/tools/src/test/org/hibernate/tool/ide/completion/ModelCompletionTest.java
===================================================================
--- trunk/HibernateExt/tools/src/test/org/hibernate/tool/ide/completion/ModelCompletionTest.java 2006-05-29 14:20:28 UTC (rev 9956)
+++ trunk/HibernateExt/tools/src/test/org/hibernate/tool/ide/completion/ModelCompletionTest.java 2006-05-29 14:21:56 UTC (rev 9957)
@@ -96,7 +96,7 @@
Collector hcc = new Collector();
cc.getMatchingProperties( "Product", "", hcc );
- doTestFields(hcc.getCompletionProposals(), new String[] {"id", "owner", "price", "stores", "version", "weight"});
+ doTestFields(hcc.getCompletionProposals(), new String[] {"id", "otherOwners", "owner", "price", "stores", "version", "weight" });
hcc.clear();
cc.getMatchingProperties( "Product", " ", hcc );
@@ -407,7 +407,17 @@
assertEquals(3, completionProposals.length);
-
+ c.clear();
+
+ query = "from Product as p join p.otherOwners o where o.";
+ caretPosition = getCaretPosition(query);
+ hqlEval.codeComplete(getCleanQuery(query), caretPosition, c);
+
+ completionProposals = c.getCompletionProposals();
+
+ assertEquals(3, completionProposals.length);
+
+
}
Modified: trunk/HibernateExt/tools/src/test/org/hibernate/tool/ide/completion/Product.hbm.xml
===================================================================
--- trunk/HibernateExt/tools/src/test/org/hibernate/tool/ide/completion/Product.hbm.xml 2006-05-29 14:20:28 UTC (rev 9956)
+++ trunk/HibernateExt/tools/src/test/org/hibernate/tool/ide/completion/Product.hbm.xml 2006-05-29 14:21:56 UTC (rev 9957)
@@ -23,6 +23,15 @@
<property name="lastName"/>
<one-to-one name="address" class="ProductOwnerAddress"/>
</component>
+
+ <set name="otherOwners">
+ <key/>
+ <composite-element class="ProductOwner">
+ <property name="firstName"/>
+ <property name="lastName"/>
+ <many-to-one name="address" class="ProductOwnerAddress"/>
+ </composite-element>
+ </set>
</class>
</hibernate-mapping>
\ No newline at end of file
Modified: trunk/HibernateExt/tools/src/test/org/hibernate/tool/ide/completion/Product.java
===================================================================
--- trunk/HibernateExt/tools/src/test/org/hibernate/tool/ide/completion/Product.java 2006-05-29 14:20:28 UTC (rev 9956)
+++ trunk/HibernateExt/tools/src/test/org/hibernate/tool/ide/completion/Product.java 2006-05-29 14:21:56 UTC (rev 9957)
@@ -37,6 +37,8 @@
private ProductOwner owner;
+ private Set otherOwners;
+
public Product() {
}
@@ -87,5 +89,12 @@
public ProductOwner getOwner() {
return owner;
}
+
+ public Set getOtherOwners() {
+ return otherOwners;
+ }
+ public void setOtherOwners(Set otherOwners) {
+ this.otherOwners = otherOwners;
+ }
}
|