[hibernate-commits] Hibernate SVN: r20007 - in tools/trunk/src: test/org/hibernate/tool/ide/completion and 1 other directory.
hibernate-commits at lists.jboss.org
hibernate-commits at lists.jboss.org
Thu Jul 22 08:59:24 EDT 2010
Author: dgeraskov
Date: 2010-07-22 08:59:24 -0400 (Thu, 22 Jul 2010)
New Revision: 20007
Added:
tools/trunk/src/test/org/hibernate/tool/ide/completion/City.hbm.xml
tools/trunk/src/test/org/hibernate/tool/ide/completion/City.java
Modified:
tools/trunk/src/java/org/hibernate/tool/ide/completion/ConfigurationCompletion.java
tools/trunk/src/test/org/hibernate/tool/ide/completion/Model.java
tools/trunk/src/test/org/hibernate/tool/ide/completion/ModelCompletionTest.java
tools/trunk/src/test/org/hibernate/tool/ide/completion/StoreCity.hbm.xml
tools/trunk/src/test/org/hibernate/tool/ide/completion/StoreCity.java
Log:
https://jira.jboss.org/browse/JBIDE-6120
Show superclass properties in code completion
Modified: tools/trunk/src/java/org/hibernate/tool/ide/completion/ConfigurationCompletion.java
===================================================================
--- tools/trunk/src/java/org/hibernate/tool/ide/completion/ConfigurationCompletion.java 2010-07-21 22:06:39 UTC (rev 20006)
+++ tools/trunk/src/java/org/hibernate/tool/ide/completion/ConfigurationCompletion.java 2010-07-22 12:59:24 UTC (rev 20007)
@@ -171,20 +171,25 @@
prefix = "";
}
- EntityPOJOClass pc = new EntityPOJOClass(cmd, new Cfg2JavaTool()); // TODO: we should extract the needed functionallity from this hbm2java class.
-
- Iterator allPropertiesIterator = pc.getAllPropertiesIterator();
- while ( allPropertiesIterator.hasNext() ) {
- Property property = (Property) allPropertiesIterator.next();
- String candidate = property.getName();
- if (prefix.length() == 0 || candidate.toLowerCase().startsWith(prefix.toLowerCase())) {
- HQLCompletionProposal proposal = createStartWithCompletionProposal( prefix, cursorPosition, HQLCompletionProposal.PROPERTY, candidate );
- proposal.setEntityName( cmd.getEntityName() );
- proposal.setProperty( property );
- proposal.setPropertyName( candidate );
- hcc.accept( proposal);
+ // Add superclass's properties too
+ while (cmd != null){
+ EntityPOJOClass pc = new EntityPOJOClass(cmd, new Cfg2JavaTool()); // TODO: we should extract the needed functionallity from this hbm2java class.
+
+ Iterator allPropertiesIterator = pc.getAllPropertiesIterator();
+ while ( allPropertiesIterator.hasNext() ) {
+ Property property = (Property) allPropertiesIterator.next();
+ String candidate = property.getName();
+ if (prefix.length() == 0 || candidate.toLowerCase().startsWith(prefix.toLowerCase())) {
+ HQLCompletionProposal proposal = createStartWithCompletionProposal( prefix, cursorPosition, HQLCompletionProposal.PROPERTY, candidate );
+ proposal.setEntityName( cmd.getEntityName() );
+ proposal.setProperty( property );
+ proposal.setPropertyName( candidate );
+ hcc.accept( proposal);
+ }
}
- }
+ cmd = cmd.getSuperclass();
+ }
+
}
private HQLCompletionProposal createStartWithCompletionProposal(String prefix, int cursorPosition, int kind, String candidate) {
Added: tools/trunk/src/test/org/hibernate/tool/ide/completion/City.hbm.xml
===================================================================
--- tools/trunk/src/test/org/hibernate/tool/ide/completion/City.hbm.xml (rev 0)
+++ tools/trunk/src/test/org/hibernate/tool/ide/completion/City.hbm.xml 2010-07-22 12:59:24 UTC (rev 20007)
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
+ "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
+<hibernate-mapping package="org.hibernate.tool.ide.completion">
+
+ <class name="City" table="hc_city" abstract="true">
+ <id name="id">
+ <generator class="native"/>
+ </id>
+ <discriminator column="hc_city_type" type="string"/>
+ <property name="name"/>
+ </class>
+
+</hibernate-mapping>
\ No newline at end of file
Added: tools/trunk/src/test/org/hibernate/tool/ide/completion/City.java
===================================================================
--- tools/trunk/src/test/org/hibernate/tool/ide/completion/City.java (rev 0)
+++ tools/trunk/src/test/org/hibernate/tool/ide/completion/City.java 2010-07-22 12:59:24 UTC (rev 20007)
@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * Copyright (c) 2010 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributor:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.hibernate.tool.ide.completion;
+
+/**
+ * @author Dmitry Geraskov
+ *
+ */
+public abstract class City {
+
+ private Long id;
+
+ private String name;
+
+ public City() {
+ }
+
+ public Long getId() {
+ return id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+}
Modified: tools/trunk/src/test/org/hibernate/tool/ide/completion/Model.java
===================================================================
--- tools/trunk/src/test/org/hibernate/tool/ide/completion/Model.java 2010-07-21 22:06:39 UTC (rev 20006)
+++ tools/trunk/src/test/org/hibernate/tool/ide/completion/Model.java 2010-07-22 12:59:24 UTC (rev 20007)
@@ -37,7 +37,8 @@
Model.class.getResourceAsStream("Product.hbm.xml")).
addInputStream(Model.class.getResourceAsStream("Store.hbm.xml")).
addInputStream(Model.class.getResourceAsStream("ProductOwnerAddress.hbm.xml")).
- addInputStream(Model.class.getResourceAsStream("StoreCity.hbm.xml"));
+ addInputStream(Model.class.getResourceAsStream("City.hbm.xml")).
+ addInputStream(Model.class.getResourceAsStream("StoreCity.hbm.xml"));
cfg.buildMappings();
return cfg;
}
Modified: tools/trunk/src/test/org/hibernate/tool/ide/completion/ModelCompletionTest.java
===================================================================
--- tools/trunk/src/test/org/hibernate/tool/ide/completion/ModelCompletionTest.java 2010-07-21 22:06:39 UTC (rev 20006)
+++ tools/trunk/src/test/org/hibernate/tool/ide/completion/ModelCompletionTest.java 2010-07-22 12:59:24 UTC (rev 20007)
@@ -66,7 +66,7 @@
public void testGetMappedClasses() {
Collector hcc = new Collector();
cc.getMatchingImports("", hcc);
- assertEquals("Invalid entity names count", 9, hcc.getCompletionProposals().length);
+ assertEquals("Invalid entity names count", 11, hcc.getCompletionProposals().length);
hcc.clear();
cc.getMatchingImports( " ", hcc );
@@ -209,7 +209,7 @@
String canonicalPath = cc.getCanonicalPath(visible, "store.city");
cc.getMatchingProperties( canonicalPath, "", hcc );
- doTestFields(hcc.getCompletionProposals(), new String[] {"id", "name"});
+ doTestFields(hcc.getCompletionProposals(), new String[] {"id", "name", "number"});
}
public void testUnaliasedProductQuery() {
@@ -256,7 +256,7 @@
HQLCompletionProposal[] completionProposals = c.getCompletionProposals();
- assertEquals(9, completionProposals.length);
+ assertEquals(11, completionProposals.length);
for (int i = 0; i < completionProposals.length; i++) {
HQLCompletionProposal proposal = completionProposals[i];
assertEquals(HQLCompletionProposal.ENTITY_NAME, proposal.getCompletionKind());
@@ -275,7 +275,7 @@
completionProposals = c.getCompletionProposals();
- assertEquals(9, completionProposals.length);
+ assertEquals(11, completionProposals.length);
}
@@ -293,7 +293,7 @@
caretPosition = getCaretPosition(query);
hqlEval.codeComplete(query, caretPosition, c);
completionProposals = c.getCompletionProposals();
- assertEquals("should get results after a nonwhitespace separator", 9, completionProposals.length);
+ assertEquals("should get results after a nonwhitespace separator", 11, completionProposals.length);
c.clear();
query = "from Store s where ";
@@ -371,7 +371,7 @@
HQLCompletionProposal[] completionProposals = c.getCompletionProposals();
- assertEquals(4, completionProposals.length);
+ assertEquals(5, completionProposals.length);
for (int i = 0; i < completionProposals.length; i++) {
HQLCompletionProposal proposal = completionProposals[i];
assertEquals(HQLCompletionProposal.ENTITY_NAME, proposal.getCompletionKind());
@@ -408,7 +408,7 @@
HQLCompletionProposal[] completionProposals = c.getCompletionProposals();
- assertEquals(4, completionProposals.length);
+ assertEquals(5, completionProposals.length);
}
@@ -514,7 +514,7 @@
HQLCompletionProposal[] completionProposals = c.getCompletionProposals();
- assertEquals(9, completionProposals.length);
+ assertEquals(11, completionProposals.length);
HQLCompletionProposal proposal = completionProposals[0];
assertEquals(HQLCompletionProposal.ENTITY_NAME, proposal.getCompletionKind());
Modified: tools/trunk/src/test/org/hibernate/tool/ide/completion/StoreCity.hbm.xml
===================================================================
--- tools/trunk/src/test/org/hibernate/tool/ide/completion/StoreCity.hbm.xml 2010-07-21 22:06:39 UTC (rev 20006)
+++ tools/trunk/src/test/org/hibernate/tool/ide/completion/StoreCity.hbm.xml 2010-07-22 12:59:24 UTC (rev 20007)
@@ -3,11 +3,8 @@
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="org.hibernate.tool.ide.completion">
- <class name="StoreCity" table="hc_store_city">
- <id name="id">
- <generator class="native"/>
- </id>
- <property name="name"/>
- </class>
+ <subclass name="StoreCity" extends="City" discriminator-value="sc">
+ <property name="number"/>
+ </subclass>
</hibernate-mapping>
\ No newline at end of file
Modified: tools/trunk/src/test/org/hibernate/tool/ide/completion/StoreCity.java
===================================================================
--- tools/trunk/src/test/org/hibernate/tool/ide/completion/StoreCity.java 2010-07-21 22:06:39 UTC (rev 20006)
+++ tools/trunk/src/test/org/hibernate/tool/ide/completion/StoreCity.java 2010-07-22 12:59:24 UTC (rev 20007)
@@ -22,27 +22,14 @@
*/
public class StoreCity {
- private Long id;
-
- private String name;
-
- public StoreCity() {
- }
+ private int number;
- public Long getId() {
- return id;
- }
+ public int getNumber() {
+ return number;
+ }
- public void setId(Long id) {
- this.id = id;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
+ public void setNumber(int number) {
+ this.number = number;
+ }
}
More information about the hibernate-commits
mailing list