[hibernate-commits] Hibernate SVN: r17039 - in jpamodelgen/trunk: generator/src/main/java/org/hibernate/jpa/metamodel/ap and 3 other directories.

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Wed Jul 8 07:03:08 EDT 2009


Author: epbernard
Date: 2009-07-08 07:03:07 -0400 (Wed, 08 Jul 2009)
New Revision: 17039

Added:
   jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/IMetaAttribute.java
   jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/IMetaSingleAttribute.java
   jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/annotation/MetaAttribute.java
   jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/annotation/MetaSingleAttribute.java
   jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/xml/XmlMetaAttribute.java
   jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/xml/XmlMetaSingleAttribute.java
Removed:
   jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/IMetaAttribute.java
   jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/IMetaMember.java
   jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/annotation/MetaAttribute.java
   jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/annotation/MetaMember.java
   jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/xml/XmlMetaAttribute.java
   jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/xml/XmlMetaMember.java
Modified:
   jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/IMetaCollection.java
   jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/IMetaEntity.java
   jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/JPAMetaModelEntityProcessor.java
   jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/annotation/MetaCollection.java
   jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/annotation/MetaEntity.java
   jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/annotation/MetaMap.java
   jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/xml/XmlMetaCollection.java
   jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/xml/XmlMetaEntity.java
   jpamodelgen/trunk/pom.xml
   jpamodelgen/trunk/test/src/test/java/QueryTest.java
Log:
Update to Criteria and metamode as of July 2nd 2009

Deleted: jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/IMetaAttribute.java
===================================================================
--- jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/IMetaAttribute.java	2009-07-08 10:58:24 UTC (rev 17038)
+++ jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/IMetaAttribute.java	2009-07-08 11:03:07 UTC (rev 17039)
@@ -1,24 +0,0 @@
-// $Id:$
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2008, Red Hat Middleware LLC, and individual contributors
-* by the @authors tag. See the copyright.txt in the distribution for a
-* full listing of individual contributors.
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-* http://www.apache.org/licenses/LICENSE-2.0
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-package org.hibernate.jpa.metamodel.ap;
-
-/**
- * @author Hardy Ferentschik
- */
-public interface IMetaAttribute extends IMetaMember {
-}

Copied: jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/IMetaAttribute.java (from rev 17027, jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/IMetaMember.java)
===================================================================
--- jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/IMetaAttribute.java	                        (rev 0)
+++ jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/IMetaAttribute.java	2009-07-08 11:03:07 UTC (rev 17039)
@@ -0,0 +1,31 @@
+// $Id:$
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2008, Red Hat Middleware LLC, and individual contributors
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+* http://www.apache.org/licenses/LICENSE-2.0
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.hibernate.jpa.metamodel.ap;
+
+/**
+ * @author Hardy Ferentschik
+ */
+public interface IMetaAttribute {
+    String getDeclarationString();
+
+    String getMetaType();
+
+    String getPropertyName();
+
+   String getTypeDeclaration(); 
+}

Modified: jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/IMetaCollection.java
===================================================================
--- jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/IMetaCollection.java	2009-07-08 10:58:24 UTC (rev 17038)
+++ jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/IMetaCollection.java	2009-07-08 11:03:07 UTC (rev 17039)
@@ -17,10 +17,10 @@
 */
 package org.hibernate.jpa.metamodel.ap;
 
-import org.hibernate.jpa.metamodel.ap.IMetaMember;
+import org.hibernate.jpa.metamodel.ap.IMetaAttribute;
 
 /**
  * @author Hardy Ferentschik
  */
-public interface IMetaCollection extends IMetaMember {
+public interface IMetaCollection extends IMetaAttribute {
 }

Modified: jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/IMetaEntity.java
===================================================================
--- jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/IMetaEntity.java	2009-07-08 10:58:24 UTC (rev 17038)
+++ jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/IMetaEntity.java	2009-07-08 11:03:07 UTC (rev 17039)
@@ -30,7 +30,7 @@
 
     String getPackageName();
 
-    List<IMetaMember> getMembers();
+    List<IMetaAttribute> getMembers();
 
     String generateImports();
 

Deleted: jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/IMetaMember.java
===================================================================
--- jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/IMetaMember.java	2009-07-08 10:58:24 UTC (rev 17038)
+++ jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/IMetaMember.java	2009-07-08 11:03:07 UTC (rev 17039)
@@ -1,31 +0,0 @@
-// $Id:$
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2008, Red Hat Middleware LLC, and individual contributors
-* by the @authors tag. See the copyright.txt in the distribution for a
-* full listing of individual contributors.
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-* http://www.apache.org/licenses/LICENSE-2.0
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-package org.hibernate.jpa.metamodel.ap;
-
-/**
- * @author Hardy Ferentschik
- */
-public interface IMetaMember {
-    String getDeclarationString();
-
-    String getMetaType();
-
-    String getPropertyName();
-
-   String getTypeDeclaration(); 
-}

Copied: jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/IMetaSingleAttribute.java (from rev 17027, jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/IMetaAttribute.java)
===================================================================
--- jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/IMetaSingleAttribute.java	                        (rev 0)
+++ jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/IMetaSingleAttribute.java	2009-07-08 11:03:07 UTC (rev 17039)
@@ -0,0 +1,24 @@
+// $Id:$
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2008, Red Hat Middleware LLC, and individual contributors
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+* http://www.apache.org/licenses/LICENSE-2.0
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.hibernate.jpa.metamodel.ap;
+
+/**
+ * @author Hardy Ferentschik
+ */
+public interface IMetaSingleAttribute extends IMetaAttribute {
+}

Modified: jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/JPAMetaModelEntityProcessor.java
===================================================================
--- jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/JPAMetaModelEntityProcessor.java	2009-07-08 10:58:24 UTC (rev 17038)
+++ jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/JPAMetaModelEntityProcessor.java	2009-07-08 11:03:07 UTC (rev 17039)
@@ -234,15 +234,15 @@
 
 			pw.println( "@" + entity.importType( Generated.class.getName() ) + "(\"JPA MetaModel for " + entity.getQualifiedName() + "\")" );
 
-			pw.println( "@" + entity.importType( "javax.persistence.metamodel.TypesafeMetamodel" ) + "(" + entity.getSimpleName() + ".class)" );
+			pw.println( "@" + entity.importType( "javax.persistence.metamodel.StaticMetamodel" ) + "(" + entity.getSimpleName() + ".class)" );
 
 			pw.println( "public abstract class " + entity.getSimpleName() + "_" + " {" );
 
 			pw.println();
 
-			List<IMetaMember> members = entity.getMembers();
+			List<IMetaAttribute> members = entity.getMembers();
 
-			for ( IMetaMember metaMember : members ) {
+			for ( IMetaAttribute metaMember : members ) {
 				pw.println( "	" + metaMember.getDeclarationString() );
 			}
 			pw.println();

Deleted: jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/annotation/MetaAttribute.java
===================================================================
--- jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/annotation/MetaAttribute.java	2009-07-08 10:58:24 UTC (rev 17038)
+++ jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/annotation/MetaAttribute.java	2009-07-08 11:03:07 UTC (rev 17039)
@@ -1,18 +0,0 @@
-package org.hibernate.jpa.metamodel.ap.annotation;
-
-import org.hibernate.jpa.metamodel.ap.IMetaAttribute;
-
-import javax.lang.model.element.Element;
-
-public class MetaAttribute extends MetaMember implements IMetaAttribute {
-
-	public MetaAttribute(MetaEntity parent, Element element, String type) {
-		super(parent, element, type);
-	}
-
-	@Override
-	public String getMetaType() {
-		return "javax.persistence.metamodel.Attribute";
-	}
-
-}

Copied: jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/annotation/MetaAttribute.java (from rev 17027, jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/annotation/MetaMember.java)
===================================================================
--- jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/annotation/MetaAttribute.java	                        (rev 0)
+++ jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/annotation/MetaAttribute.java	2009-07-08 11:03:07 UTC (rev 17039)
@@ -0,0 +1,51 @@
+package org.hibernate.jpa.metamodel.ap.annotation;
+
+import org.hibernate.jpa.metamodel.ap.IMetaAttribute;
+
+import java.beans.Introspector;
+
+import javax.annotation.processing.ProcessingEnvironment;
+import javax.lang.model.element.Element;
+import javax.lang.model.element.ElementKind;
+
+public abstract class MetaAttribute implements IMetaAttribute {
+
+	final protected Element element;
+	final protected MetaEntity parent;
+	final protected ProcessingEnvironment pe;
+	private final String type;
+
+	public MetaAttribute(MetaEntity parent, Element element, String type) {
+		this.element = element;
+		this.parent = parent;
+		this.type = type;
+		this.pe = parent.pe;
+	}
+
+	public String getDeclarationString() {
+		return "public static volatile " + parent.importType(getMetaType()) + "<" + parent.importType(parent.getQualifiedName()) + ", " + parent.importType(getTypeDeclaration()) + "> " + getPropertyName() + ";";  
+	}
+
+	public String getPropertyName() {
+		if(element.getKind()==ElementKind.FIELD) {
+			return element.getSimpleName().toString();
+		} else if (element.getKind()==ElementKind.METHOD) {
+			
+			String name = element.getSimpleName().toString();
+			if(name.startsWith("get")) {
+				return pe.getElementUtils().getName(Introspector.decapitalize(name.substring("get".length()))).toString();
+			} else if(name.startsWith("is")) {
+				return (pe.getElementUtils().getName(Introspector.decapitalize(name.substring("is".length())))).toString();
+			}
+			return pe.getElementUtils().getName(Introspector.decapitalize(name)).toString();
+		} else {
+			return pe.getElementUtils().getName(element.getSimpleName() + "/* " + element.getKind() + " */").toString();
+		}
+	}
+
+	abstract public String getMetaType();
+
+	public String getTypeDeclaration() {
+		return type;		
+	}
+}

Modified: jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/annotation/MetaCollection.java
===================================================================
--- jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/annotation/MetaCollection.java	2009-07-08 10:58:24 UTC (rev 17038)
+++ jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/annotation/MetaCollection.java	2009-07-08 11:03:07 UTC (rev 17039)
@@ -5,7 +5,7 @@
 import javax.lang.model.element.Element;
 
 
-public class MetaCollection extends MetaMember implements IMetaCollection {
+public class MetaCollection extends MetaAttribute implements IMetaCollection {
 
 	private String collectionType; 
 	

Modified: jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/annotation/MetaEntity.java
===================================================================
--- jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/annotation/MetaEntity.java	2009-07-08 10:58:24 UTC (rev 17038)
+++ jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/annotation/MetaEntity.java	2009-07-08 11:03:07 UTC (rev 17039)
@@ -22,7 +22,7 @@
 import javax.tools.Diagnostic.Kind;
 
 import org.hibernate.jpa.metamodel.ap.IMetaEntity;
-import org.hibernate.jpa.metamodel.ap.IMetaMember;
+import org.hibernate.jpa.metamodel.ap.IMetaAttribute;
 import org.hibernate.jpa.metamodel.ap.ImportContext;
 import org.hibernate.jpa.metamodel.ap.ImportContextImpl;
 import org.hibernate.jpa.metamodel.ap.TypeUtils;
@@ -57,9 +57,9 @@
 		return pe.getElementUtils().getName( packageOf.getQualifiedName() + ".metamodel" ).toString();
 	}
 
-	public List<IMetaMember> getMembers() {
+	public List<IMetaAttribute> getMembers() {
 
-		List<IMetaMember> members = new ArrayList<IMetaMember>();
+		List<IMetaAttribute> members = new ArrayList<IMetaAttribute>();
 
 		if ( useFields() ) {
 
@@ -70,7 +70,7 @@
 
 			for ( Element mymember : myMembers ) {
 
-				MetaMember result = mymember.asType().accept( new TypeVisitor( this ), mymember );
+				MetaAttribute result = mymember.asType().accept( new TypeVisitor( this ), mymember );
 				if ( result != null ) {
 					members.add( result );
 				}
@@ -90,7 +90,7 @@
 					.printMessage( Kind.NOTE, "Scanning " + myMembers.size() + " methods for " + element.toString() );
 			for ( Element mymember : myMembers ) {
 
-				MetaMember result = mymember.asType().accept( new TypeVisitor( this ), mymember );
+				MetaAttribute result = mymember.asType().accept( new TypeVisitor( this ), mymember );
 				if ( result != null ) {
 					members.add( result );
 				}
@@ -136,13 +136,13 @@
 	static Map<String, String> COLLECTIONS = new HashMap<String, String>();
 
 	static {
-		COLLECTIONS.put( "java.util.Collection", "javax.persistence.metamodel.Collection" );
-		COLLECTIONS.put( "java.util.Set", "javax.persistence.metamodel.Set" );
-		COLLECTIONS.put( "java.util.List", "javax.persistence.metamodel.List" );
-		COLLECTIONS.put( "java.util.Map", "javax.persistence.metamodel.Map" );
+		COLLECTIONS.put( "java.util.Collection", "javax.persistence.metamodel.CollectionAttribute" );
+		COLLECTIONS.put( "java.util.Set", "javax.persistence.metamodel.SetAttribute" );
+		COLLECTIONS.put( "java.util.List", "javax.persistence.metamodel.ListAttribute" );
+		COLLECTIONS.put( "java.util.Map", "javax.persistence.metamodel.MapAttribute" );
 	}
 
-	class TypeVisitor extends SimpleTypeVisitor6<MetaMember, Element> {
+	class TypeVisitor extends SimpleTypeVisitor6<MetaAttribute, Element> {
 
 		MetaEntity parent;
 
@@ -151,23 +151,23 @@
 		}
 
 		@Override
-		protected MetaMember defaultAction(TypeMirror e, Element p) {
+		protected MetaAttribute defaultAction(TypeMirror e, Element p) {
 			return super.defaultAction( e, p );
 		}
 
 		@Override
-		public MetaMember visitPrimitive(PrimitiveType t, Element p) {
-			return new MetaAttribute( parent, p, TypeUtils.toTypeString( t ) );
+		public MetaAttribute visitPrimitive(PrimitiveType t, Element p) {
+			return new MetaSingleAttribute( parent, p, TypeUtils.toTypeString( t ) );
 		}
 
 
 		@Override
-		public MetaMember visitDeclared(DeclaredType t, Element p) {
+		public MetaAttribute visitDeclared(DeclaredType t, Element p) {
 			TypeElement e = ( TypeElement ) pe.getTypeUtils().asElement( t );
 
 			String collection = COLLECTIONS.get( e.getQualifiedName().toString() ); // WARNING: .toString() is necessary here since Name equals does not compare to String
 			if ( collection != null ) {
-				if ( collection.equals( "javax.persistence.metamodel.Map" ) ) {
+				if ( collection.equals( "javax.persistence.metamodel.MapAttribute" ) ) {
 					return new MetaMap( parent, p, collection, getKeyType( t ), getElementType( t ) );
 				}
 				else {
@@ -175,13 +175,13 @@
 				}
 			}
 			else {
-				return new MetaAttribute( parent, p, e.getQualifiedName().toString() );
+				return new MetaSingleAttribute( parent, p, e.getQualifiedName().toString() );
 			}
 		}
 
 
 		@Override
-		public MetaMember visitExecutable(ExecutableType t, Element p) {
+		public MetaAttribute visitExecutable(ExecutableType t, Element p) {
 			String string = p.getSimpleName().toString();
 
 			// TODO: implement proper property get/is/boolean detection

Modified: jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/annotation/MetaMap.java
===================================================================
--- jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/annotation/MetaMap.java	2009-07-08 10:58:24 UTC (rev 17038)
+++ jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/annotation/MetaMap.java	2009-07-08 11:03:07 UTC (rev 17039)
@@ -13,7 +13,7 @@
 	}
 	
 	public String getDeclarationString() {
-		return "public static " + parent.importType(getMetaType()) + "<" + parent.importType(parent.getQualifiedName()) + ", " + parent.importType(keyType) + ", " + parent.importType(getTypeDeclaration()) + "> " + getPropertyName() + ";";  
+		return "public static volatile " + parent.importType(getMetaType()) + "<" + parent.importType(parent.getQualifiedName()) + ", " + parent.importType(keyType) + ", " + parent.importType(getTypeDeclaration()) + "> " + getPropertyName() + ";";  
 	}
 
 }

Deleted: jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/annotation/MetaMember.java
===================================================================
--- jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/annotation/MetaMember.java	2009-07-08 10:58:24 UTC (rev 17038)
+++ jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/annotation/MetaMember.java	2009-07-08 11:03:07 UTC (rev 17039)
@@ -1,51 +0,0 @@
-package org.hibernate.jpa.metamodel.ap.annotation;
-
-import org.hibernate.jpa.metamodel.ap.IMetaMember;
-
-import java.beans.Introspector;
-
-import javax.annotation.processing.ProcessingEnvironment;
-import javax.lang.model.element.Element;
-import javax.lang.model.element.ElementKind;
-
-public abstract class MetaMember implements IMetaMember {
-
-	final protected Element element;
-	final protected MetaEntity parent;
-	final protected ProcessingEnvironment pe;
-	private final String type;
-
-	public MetaMember(MetaEntity parent, Element element, String type) {
-		this.element = element;
-		this.parent = parent;
-		this.type = type;
-		this.pe = parent.pe;
-	}
-
-	public String getDeclarationString() {
-		return "public static " + parent.importType(getMetaType()) + "<" + parent.importType(parent.getQualifiedName()) + ", " + parent.importType(getTypeDeclaration()) + "> " + getPropertyName() + ";";  
-	}
-
-	public String getPropertyName() {
-		if(element.getKind()==ElementKind.FIELD) {
-			return element.getSimpleName().toString();
-		} else if (element.getKind()==ElementKind.METHOD) {
-			
-			String name = element.getSimpleName().toString();
-			if(name.startsWith("get")) {
-				return pe.getElementUtils().getName(Introspector.decapitalize(name.substring("get".length()))).toString();
-			} else if(name.startsWith("is")) {
-				return (pe.getElementUtils().getName(Introspector.decapitalize(name.substring("is".length())))).toString();
-			}
-			return pe.getElementUtils().getName(Introspector.decapitalize(name)).toString();
-		} else {
-			return pe.getElementUtils().getName(element.getSimpleName() + "/* " + element.getKind() + " */").toString();
-		}
-	}
-
-	abstract public String getMetaType();
-
-	public String getTypeDeclaration() {
-		return type;		
-	}
-}

Copied: jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/annotation/MetaSingleAttribute.java (from rev 17027, jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/annotation/MetaAttribute.java)
===================================================================
--- jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/annotation/MetaSingleAttribute.java	                        (rev 0)
+++ jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/annotation/MetaSingleAttribute.java	2009-07-08 11:03:07 UTC (rev 17039)
@@ -0,0 +1,18 @@
+package org.hibernate.jpa.metamodel.ap.annotation;
+
+import org.hibernate.jpa.metamodel.ap.IMetaSingleAttribute;
+
+import javax.lang.model.element.Element;
+
+public class MetaSingleAttribute extends MetaAttribute implements IMetaSingleAttribute {
+
+	public MetaSingleAttribute(MetaEntity parent, Element element, String type) {
+		super(parent, element, type);
+	}
+
+	@Override
+	public String getMetaType() {
+		return "javax.persistence.metamodel.SingularAttribute";
+	}
+
+}

Deleted: jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/xml/XmlMetaAttribute.java
===================================================================
--- jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/xml/XmlMetaAttribute.java	2009-07-08 10:58:24 UTC (rev 17038)
+++ jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/xml/XmlMetaAttribute.java	2009-07-08 11:03:07 UTC (rev 17039)
@@ -1,35 +0,0 @@
-// $Id:$
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2008, Red Hat Middleware LLC, and individual contributors
-* by the @authors tag. See the copyright.txt in the distribution for a
-* full listing of individual contributors.
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-* http://www.apache.org/licenses/LICENSE-2.0
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-package org.hibernate.jpa.metamodel.ap.xml;
-
-import org.hibernate.jpa.metamodel.ap.IMetaAttribute;
-
-/**
- * @author Hardy Ferentschik
- */
-public class XmlMetaAttribute extends XmlMetaMember implements IMetaAttribute {
-
-    public XmlMetaAttribute(XmlMetaEntity parent, String propertyName, String type) {
-        super(parent, propertyName, type);
-    }
-
-    @Override
-    public String getMetaType() {
-        return "javax.persistence.metamodel.Attribute";
-    }
-}

Copied: jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/xml/XmlMetaAttribute.java (from rev 17027, jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/xml/XmlMetaMember.java)
===================================================================
--- jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/xml/XmlMetaAttribute.java	                        (rev 0)
+++ jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/xml/XmlMetaAttribute.java	2009-07-08 11:03:07 UTC (rev 17039)
@@ -0,0 +1,55 @@
+// $Id:$
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2008, Red Hat Middleware LLC, and individual contributors
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+* http://www.apache.org/licenses/LICENSE-2.0
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.hibernate.jpa.metamodel.ap.xml;
+
+import org.hibernate.jpa.metamodel.ap.IMetaAttribute;
+
+/**
+ * @author Hardy Ferentschik
+ */
+public abstract class XmlMetaAttribute implements IMetaAttribute {
+
+    private XmlMetaEntity parentEntity;
+
+    private String propertyName;
+
+    private String type;
+
+    XmlMetaAttribute(XmlMetaEntity parent, String propertyName, String type) {
+        this.parentEntity = parent;
+        this.propertyName = propertyName;
+        this.type = type;
+    }
+
+
+	@Override
+    public String getDeclarationString() {
+        return "public static volatile " + parentEntity.importType(getMetaType()) + "<" + parentEntity.importType(parentEntity.getQualifiedName()) + ", " + parentEntity.importType(getTypeDeclaration()) + "> " + getPropertyName() + ";";
+    }
+
+    public String getPropertyName() {
+        return propertyName;
+    }
+
+    public String getTypeDeclaration() {
+		return type;
+	}
+
+    @Override
+    abstract public String getMetaType();
+}

Modified: jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/xml/XmlMetaCollection.java
===================================================================
--- jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/xml/XmlMetaCollection.java	2009-07-08 10:58:24 UTC (rev 17038)
+++ jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/xml/XmlMetaCollection.java	2009-07-08 11:03:07 UTC (rev 17039)
@@ -22,7 +22,7 @@
 /**
  * @author Hardy Ferentschik
  */
-public class XmlMetaCollection extends XmlMetaMember implements IMetaCollection {
+public class XmlMetaCollection extends XmlMetaAttribute implements IMetaCollection {
 
     String collectionType;
 

Modified: jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/xml/XmlMetaEntity.java
===================================================================
--- jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/xml/XmlMetaEntity.java	2009-07-08 10:58:24 UTC (rev 17038)
+++ jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/xml/XmlMetaEntity.java	2009-07-08 11:03:07 UTC (rev 17039)
@@ -27,7 +27,7 @@
 import javax.lang.model.type.DeclaredType;
 
 import org.hibernate.jpa.metamodel.ap.IMetaEntity;
-import org.hibernate.jpa.metamodel.ap.IMetaMember;
+import org.hibernate.jpa.metamodel.ap.IMetaAttribute;
 import org.hibernate.jpa.metamodel.ap.ImportContext;
 import org.hibernate.jpa.metamodel.ap.ImportContextImpl;
 import org.hibernate.jpa.metamodel.xml.jaxb.Attributes;
@@ -46,10 +46,10 @@
 	static Map<String, String> COLLECTIONS = new HashMap<String, String>();
 
 	static {
-		COLLECTIONS.put( "java.util.Collection", "javax.persistence.metamodel.Collection" );
-		COLLECTIONS.put( "java.util.Set", "javax.persistence.metamodel.Set" );
-		COLLECTIONS.put( "java.util.List", "javax.persistence.metamodel.List" );
-		COLLECTIONS.put( "java.util.Map", "javax.persistence.metamodel.Map" );
+		COLLECTIONS.put( "java.util.Collection", "javax.persistence.metamodel.CollectionAttribute" );
+		COLLECTIONS.put( "java.util.Set", "javax.persistence.metamodel.SetAttribute" );
+		COLLECTIONS.put( "java.util.List", "javax.persistence.metamodel.ListAttribute" );
+		COLLECTIONS.put( "java.util.Map", "javax.persistence.metamodel.MapAttribute" );
 	}
 
 	final private Entity ormEntity;
@@ -58,7 +58,7 @@
 
 	final private ImportContext importContext;
 
-	final private List<IMetaMember> members = new ArrayList<IMetaMember>();
+	final private List<IMetaAttribute> members = new ArrayList<IMetaAttribute>();
 
 	private TypeElement type;
 
@@ -69,16 +69,16 @@
 		this.type = type;
 		Attributes attributes = ormEntity.getAttributes();
 		Id id = attributes.getId().get( 0 );
-		XmlMetaAttribute attribute = new XmlMetaAttribute( this, id.getName(), getType( id.getName() ) );
+		XmlMetaSingleAttribute attribute = new XmlMetaSingleAttribute( this, id.getName(), getType( id.getName() ) );
 		members.add( attribute );
 
 		for ( Basic basic : attributes.getBasic() ) {
-			attribute = new XmlMetaAttribute( this, basic.getName(), getType( basic.getName() ) );
+			attribute = new XmlMetaSingleAttribute( this, basic.getName(), getType( basic.getName() ) );
 			members.add( attribute );
 		}
 
 		for ( ManyToOne manyToOne : attributes.getManyToOne() ) {
-			attribute = new XmlMetaAttribute( this, manyToOne.getName(), getType( manyToOne.getName() ) );
+			attribute = new XmlMetaSingleAttribute( this, manyToOne.getName(), getType( manyToOne.getName() ) );
 			members.add( attribute );
 		}
 
@@ -108,7 +108,7 @@
 		return packageName + ".metamodel";
 	}
 
-	public List<IMetaMember> getMembers() {
+	public List<IMetaAttribute> getMembers() {
 		return members;
 	}
 

Deleted: jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/xml/XmlMetaMember.java
===================================================================
--- jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/xml/XmlMetaMember.java	2009-07-08 10:58:24 UTC (rev 17038)
+++ jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/xml/XmlMetaMember.java	2009-07-08 11:03:07 UTC (rev 17039)
@@ -1,55 +0,0 @@
-// $Id:$
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2008, Red Hat Middleware LLC, and individual contributors
-* by the @authors tag. See the copyright.txt in the distribution for a
-* full listing of individual contributors.
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-* http://www.apache.org/licenses/LICENSE-2.0
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-package org.hibernate.jpa.metamodel.ap.xml;
-
-import org.hibernate.jpa.metamodel.ap.IMetaMember;
-
-/**
- * @author Hardy Ferentschik
- */
-public abstract class XmlMetaMember implements IMetaMember {
-
-    private XmlMetaEntity parentEntity;
-
-    private String propertyName;
-
-    private String type;
-
-    XmlMetaMember(XmlMetaEntity parent, String propertyName, String type) {
-        this.parentEntity = parent;
-        this.propertyName = propertyName;
-        this.type = type;
-    }
-
-
-    @Override
-    public String getDeclarationString() {
-        return "public static " + parentEntity.importType(getMetaType()) + "<" + parentEntity.importType(parentEntity.getQualifiedName()) + ", " + parentEntity.importType(getTypeDeclaration()) + "> " + getPropertyName() + ";";
-    }
-
-    public String getPropertyName() {
-        return propertyName;
-    }
-
-    public String getTypeDeclaration() {
-		return type;
-	}
-
-    @Override
-    abstract public String getMetaType();
-}

Copied: jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/xml/XmlMetaSingleAttribute.java (from rev 17027, jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/xml/XmlMetaAttribute.java)
===================================================================
--- jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/xml/XmlMetaSingleAttribute.java	                        (rev 0)
+++ jpamodelgen/trunk/generator/src/main/java/org/hibernate/jpa/metamodel/ap/xml/XmlMetaSingleAttribute.java	2009-07-08 11:03:07 UTC (rev 17039)
@@ -0,0 +1,35 @@
+// $Id:$
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2008, Red Hat Middleware LLC, and individual contributors
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+* http://www.apache.org/licenses/LICENSE-2.0
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.hibernate.jpa.metamodel.ap.xml;
+
+import org.hibernate.jpa.metamodel.ap.IMetaSingleAttribute;
+
+/**
+ * @author Hardy Ferentschik
+ */
+public class XmlMetaSingleAttribute extends XmlMetaAttribute implements IMetaSingleAttribute {
+
+    public XmlMetaSingleAttribute(XmlMetaEntity parent, String propertyName, String type) {
+        super(parent, propertyName, type);
+    }
+
+	@Override
+    public String getMetaType() {
+        return "javax.persistence.metamodel.SingularAttribute";
+    }
+}

Modified: jpamodelgen/trunk/pom.xml
===================================================================
--- jpamodelgen/trunk/pom.xml	2009-07-08 10:58:24 UTC (rev 17038)
+++ jpamodelgen/trunk/pom.xml	2009-07-08 11:03:07 UTC (rev 17039)
@@ -39,7 +39,7 @@
             <dependency>
                 <groupId>org.hibernate.java-persistence</groupId>
                 <artifactId>jpa-api</artifactId>
-                <version>2.0.Beta2</version>
+                <version>2.0.Beta3-SNAPSHOT</version>
             </dependency>
             <dependency>
                 <groupId>org.slf4j</groupId>

Modified: jpamodelgen/trunk/test/src/test/java/QueryTest.java
===================================================================
--- jpamodelgen/trunk/test/src/test/java/QueryTest.java	2009-07-08 10:58:24 UTC (rev 17038)
+++ jpamodelgen/trunk/test/src/test/java/QueryTest.java	2009-07-08 11:03:07 UTC (rev 17039)
@@ -9,6 +9,7 @@
 import javax.persistence.criteria.Path;
 import javax.persistence.criteria.QueryBuilder;
 import javax.persistence.criteria.Root;
+import javax.persistence.Tuple;
 
 import model.Item;
 import model.Order;
@@ -29,7 +30,7 @@
 	QueryBuilder qb;
 
 	public void test() {
-		CriteriaQuery q = qb.create();
+		CriteriaQuery<Tuple> q = qb.createTupleQuery();
 
 		Root<Order> order = q.from(Order.class);
 		Join<Item, Product> product = order.join(Order_.items)
@@ -39,13 +40,13 @@
 		Path<Boolean> filled = order.get(Order_.filled);
 		Path<Date> date = order.get(Order_.date);
 
-		q.select(order, product)
+		q.select( qb.tuple( order, product ) )
 		 .where( qb.and( qb.gt(price, 100.00), qb.not(filled) ) )
-		 .order( qb.asc(price), qb.desc(date) );
+		 .orderBy( qb.asc(price), qb.desc(date) );
 	}
 
 	public void testUntypesafe() {
-		CriteriaQuery q = qb.create();
+		CriteriaQuery<Tuple> q = qb.createTupleQuery();
 
 		Root<Order> order = q.from(Order.class);
 		Join<Item, Product> product = order.join("items")
@@ -55,16 +56,16 @@
 		Path<Boolean> filled = order.get("filled");
 		Path<Date> date = order.get("date");
 
-		q.select(order, product)
+		q.select( qb.tuple( order, product ) )
 		 .where( qb.and( qb.gt(price, 100.00), qb.not(filled) ) )
-		 .order( qb.asc(price), qb.desc(date) );
+		 .orderBy( qb.asc(price), qb.desc(date) );
 	}
 
 	/**
 	 * Navigation by joining
 	 */
 	public void test2() {
-		CriteriaQuery q = qb.create();
+		CriteriaQuery<Product> q = qb.createQuery(Product.class);
 
 		Root<Product> product = q.from(Product.class);
 		Join<Item, Order> order = product.join(Product_.items)
@@ -75,7 +76,7 @@
 	}
 
 	public void testMap() {
-		CriteriaQuery q = qb.create();
+		CriteriaQuery<Item> q = qb.createQuery(Item.class);
 
 		Root<Item> item = q.from(Item.class);
 		Join<Item, Order> io = item.join(Item_.namedOrders);
@@ -86,7 +87,7 @@
 	 * Navigation by compound Path
 	 */
 	public void test3() {
-		CriteriaQuery q = qb.create();
+		CriteriaQuery<Item> q = qb.createQuery(Item.class);
 
 		Root<Item> item = q.from(Item.class);
 		Path<String> shopName = item.get(Item_.order)
@@ -109,7 +110,7 @@
 //	}
 
 	public void test4Untypesafe() {
-		CriteriaQuery q = qb.create();
+		CriteriaQuery<String> q = qb.createQuery(String.class);
 
 		Root<Order> order = q.from(Order.class);
 		ListJoin<Order, String> note = order.joinList("notes");




More information about the hibernate-commits mailing list