[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