[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