You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by dw...@apache.org on 2009/07/07 21:18:06 UTC
svn commit: r791942 [1/2] - in
/geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence:
./ criteria/ metamodel/
Author: dwoods
Date: Tue Jul 7 19:18:04 2009
New Revision: 791942
URL: http://svn.apache.org/viewvc?rev=791942&view=rev
Log:
GERONIMO-4410 Latest JPA 2.0 API updates from 20090702
Added:
geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/CompoundSelection.java (with props)
Modified:
geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/Cache.java
geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/CacheRetrieveMode.java
geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/CacheStoreMode.java
geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/EntityManager.java
geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/EntityManagerFactory.java
geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/EntityTransaction.java
geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/FlushModeType.java
geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/LockModeType.java
geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/Parameter.java
geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/PersistenceUtil.java
geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/PessimisticLockScope.java
geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/Query.java
geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/Tuple.java
geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/TupleElement.java
geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/TypedQuery.java
geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/AbstractQuery.java
geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/CollectionJoin.java
geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/CriteriaQuery.java
geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/Expression.java
geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/Fetch.java
geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/FetchParent.java
geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/From.java
geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/Join.java
geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/JoinType.java
geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/ListJoin.java
geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/MapJoin.java
geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/Order.java
geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/ParameterExpression.java
geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/Path.java
geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/PluralJoin.java
geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/Predicate.java
geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/QueryBuilder.java
geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/Root.java
geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/Selection.java
geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/SetJoin.java
geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/Subquery.java
geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/Attribute.java
geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/BasicType.java
geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/Bindable.java
geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/CollectionAttribute.java
geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/EmbeddableType.java
geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/EntityType.java
geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/IdentifiableType.java
geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/ListAttribute.java
geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/ManagedType.java
geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/MapAttribute.java
geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/MappedSuperclassType.java
geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/Metamodel.java
geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/PluralAttribute.java
geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/SetAttribute.java
geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/SingularAttribute.java
geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/StaticMetamodel.java
geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/Type.java
Modified: geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/Cache.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/Cache.java?rev=791942&r1=791941&r2=791942&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/Cache.java (original)
+++ geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/Cache.java Tue Jul 7 19:18:04 2009
@@ -22,15 +22,22 @@
// Community Process. In order to remain compliant with the specification
// DO NOT add / change / or delete method signatures!
//
+
+
package javax.persistence;
+
public interface Cache {
+
public boolean contains(Class cls, Object primaryKey);
+
public void evict(Class cls, Object primaryKey);
+
public void evict(Class cls);
+
public void evictAll();
}
Modified: geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/CacheRetrieveMode.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/CacheRetrieveMode.java?rev=791942&r1=791941&r2=791942&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/CacheRetrieveMode.java (original)
+++ geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/CacheRetrieveMode.java Tue Jul 7 19:18:04 2009
@@ -22,9 +22,14 @@
// Community Process. In order to remain compliant with the specification
// DO NOT add / change / or delete method signatures!
//
+
package javax.persistence;
public enum CacheRetrieveMode {
+
+
USE,
- BYPASS
+
+
+ BYPASS
}
Modified: geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/CacheStoreMode.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/CacheStoreMode.java?rev=791942&r1=791941&r2=791942&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/CacheStoreMode.java (original)
+++ geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/CacheStoreMode.java Tue Jul 7 19:18:04 2009
@@ -26,7 +26,13 @@
package javax.persistence;
public enum CacheStoreMode {
+
+
USE,
+
+
BYPASS,
+
+
REFRESH
}
Modified: geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/EntityManager.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/EntityManager.java?rev=791942&r1=791941&r2=791942&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/EntityManager.java (original)
+++ geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/EntityManager.java Tue Jul 7 19:18:04 2009
@@ -31,58 +31,137 @@
import javax.persistence.criteria.QueryBuilder;
import javax.persistence.criteria.CriteriaQuery;
-/**
- * @version $Rev$ $Date$
- */
+
public interface EntityManager {
- public void persist(Object entity);
- public <T> T merge(T entity);
- public void remove(Object entity);
- public <T> T find(Class<T> entityClass, Object primaryKey);
- public <T> T find(Class<T> entityClass, Object primaryKey,
- Map<String, Object> properties);
- public <T> T find(Class<T> entityClass, Object primaryKey,
- LockModeType lockMode);
- public <T> T find(Class<T> entityClass, Object primaryKey,
- LockModeType lockMode,
- Map<String, Object> properties);
- public <T> T getReference(Class<T> entityClass,
+
+ public void persist(Object entity);
+
+
+ public <T> T merge(T entity);
+
+
+ public void remove(Object entity);
+
+
+ public <T> T find(Class<T> entityClass, Object primaryKey);
+
+
+ public <T> T find(Class<T> entityClass, Object primaryKey,
+ Map<String, Object> properties);
+
+
+ public <T> T find(Class<T> entityClass, Object primaryKey,
+ LockModeType lockMode);
+
+
+ public <T> T find(Class<T> entityClass, Object primaryKey,
+ LockModeType lockMode,
+ Map<String, Object> properties);
+
+
+ public <T> T getReference(Class<T> entityClass,
Object primaryKey);
- public void flush();
- public void setFlushMode(FlushModeType flushMode);
- public FlushModeType getFlushMode();
- public void lock(Object entity, LockModeType lockMode);
- public void lock(Object entity, LockModeType lockMode,
- Map<String, Object> properties);
- public void refresh(Object entity);
- public void refresh(Object entity,
+
+
+ public void flush();
+
+
+ public void setFlushMode(FlushModeType flushMode);
+
+
+ public FlushModeType getFlushMode();
+
+
+ public void lock(Object entity, LockModeType lockMode);
+
+
+ public void lock(Object entity, LockModeType lockMode,
+ Map<String, Object> properties);
+
+
+ public void refresh(Object entity);
+
+
+ public void refresh(Object entity,
Map<String, Object> properties);
- public void refresh(Object entity, LockModeType lockMode);
- public void refresh(Object entity, LockModeType lockMode,
- Map<String, Object> properties);
- public void clear();
- public void detach(Object entity);
- public boolean contains(Object entity);
- public LockModeType getLockMode(Object entity);
- public void setProperty(String propertyName, Object value);
- public Map<String, Object> getProperties();
- public Set<String> getSupportedProperties();
- public Query createQuery(String qlString);
- public <T> TypedQuery<T> createQuery(String qlString, Class<T> resultClass);
- public <T> TypedQuery<T> createQuery(CriteriaQuery<T> criteriaQuery);
- public Query createNamedQuery(String name);
- public <T> TypedQuery<T> createNamedQuery(String name, Class<T> resultClass);
- public Query createNativeQuery(String sqlString);
- public Query createNativeQuery(String sqlString, Class resultClass);
- public Query createNativeQuery(String sqlString, String resultSetMapping);
- public void joinTransaction();
- public <T> T unwrap(Class<T> cls);
- public Object getDelegate();
- public void close();
- public boolean isOpen();
- public EntityTransaction getTransaction();
- public EntityManagerFactory getEntityManagerFactory();
- public QueryBuilder getQueryBuilder();
- public Metamodel getMetamodel();
+
+
+ public void refresh(Object entity, LockModeType lockMode);
+
+
+ public void refresh(Object entity, LockModeType lockMode,
+ Map<String, Object> properties);
+
+
+ public void clear();
+
+
+ public void detach(Object entity);
+
+
+ public boolean contains(Object entity);
+
+
+ public LockModeType getLockMode(Object entity);
+
+
+ public void setProperty(String propertyName, Object value);
+
+
+ public Map<String, Object> getProperties();
+
+
+ public Set<String> getSupportedProperties();
+
+
+ public Query createQuery(String qlString);
+
+
+ public <T> TypedQuery<T> createQuery(String qlString, Class<T> resultClass);
+
+
+ public <T> TypedQuery<T> createQuery(CriteriaQuery<T> criteriaQuery);
+
+
+ public Query createNamedQuery(String name);
+
+
+ public <T> TypedQuery<T> createNamedQuery(String name, Class<T> resultClass);
+
+
+ public Query createNativeQuery(String sqlString);
+
+
+ public Query createNativeQuery(String sqlString, Class resultClass);
+
+
+ public Query createNativeQuery(String sqlString, String resultSetMapping);
+
+
+ public void joinTransaction();
+
+
+ public <T> T unwrap(Class<T> cls);
+
+
+ public Object getDelegate();
+
+
+ public void close();
+
+
+ public boolean isOpen();
+
+
+ public EntityTransaction getTransaction();
+
+
+ public EntityManagerFactory getEntityManagerFactory();
+
+
+ public QueryBuilder getQueryBuilder();
+
+
+ public Metamodel getMetamodel();
}
Modified: geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/EntityManagerFactory.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/EntityManagerFactory.java?rev=791942&r1=791941&r2=791942&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/EntityManagerFactory.java (original)
+++ geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/EntityManagerFactory.java Tue Jul 7 19:18:04 2009
@@ -22,35 +22,42 @@
// Community Process. In order to remain compliant with the specification
// DO NOT add / change / or delete method signatures!
//
+
+
package javax.persistence;
import java.util.Set;
import java.util.Map;
-
import javax.persistence.metamodel.Metamodel;
import javax.persistence.criteria.QueryBuilder;
-/**
- *
- * @version $Rev$ $Date$
- */
+
public interface EntityManagerFactory {
- public EntityManager createEntityManager();
+
+ public EntityManager createEntityManager();
- public EntityManager createEntityManager(Map map);
+
+ public EntityManager createEntityManager(Map map);
- public QueryBuilder getQueryBuilder();
+
+ public QueryBuilder getQueryBuilder();
- public Metamodel getMetamodel();
+
+ public Metamodel getMetamodel();
- public boolean isOpen();
+
+ public boolean isOpen();
- public void close();
+
+ public void close();
- public Map<String, Object> getProperties();
+
+ public Map<String, Object> getProperties();
- public Set<String> getSupportedProperties();
+
+ public Set<String> getSupportedProperties();
- public Cache getCache();
+
+ public Cache getCache();
}
Modified: geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/EntityTransaction.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/EntityTransaction.java?rev=791942&r1=791941&r2=791942&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/EntityTransaction.java (original)
+++ geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/EntityTransaction.java Tue Jul 7 19:18:04 2009
@@ -22,22 +22,27 @@
// Community Process. In order to remain compliant with the specification
// DO NOT add / change / or delete method signatures!
//
+
package javax.persistence;
-/**
- * @version $Rev$ $Date$
- */
+
public interface EntityTransaction {
- public void begin();
+
+ public void begin();
- public void commit();
+
+ public void commit();
- public void rollback();
+
+ public void rollback();
- public void setRollbackOnly();
+
+ public void setRollbackOnly();
- public boolean getRollbackOnly();
+
+ public boolean getRollbackOnly();
- public boolean isActive();
+
+ public boolean isActive();
}
Modified: geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/FlushModeType.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/FlushModeType.java?rev=791942&r1=791941&r2=791942&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/FlushModeType.java (original)
+++ geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/FlushModeType.java Tue Jul 7 19:18:04 2009
@@ -21,11 +21,11 @@
// This source code implements specifications defined by the Java
// Community Process. In order to remain compliant with the specification
// DO NOT add / change / or delete method signatures!
+//
+
package javax.persistence;
-/**
- * @version $Rev$ $Date$
- */
public enum FlushModeType {
- COMMIT, AUTO
+ COMMIT,
+ AUTO
}
Modified: geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/LockModeType.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/LockModeType.java?rev=791942&r1=791941&r2=791942&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/LockModeType.java (original)
+++ geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/LockModeType.java Tue Jul 7 19:18:04 2009
@@ -22,11 +22,9 @@
// Community Process. In order to remain compliant with the specification
// DO NOT add / change / or delete method signatures!
//
+
package javax.persistence;
-/**
- * @version $Rev$ $Date$
- */
public enum LockModeType
{
READ,
Modified: geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/Parameter.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/Parameter.java?rev=791942&r1=791941&r2=791942&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/Parameter.java (original)
+++ geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/Parameter.java Tue Jul 7 19:18:04 2009
@@ -25,9 +25,13 @@
package javax.persistence;
+
public interface Parameter<T> {
+
String getName();
+
Integer getPosition();
}
+
Modified: geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/PersistenceUtil.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/PersistenceUtil.java?rev=791942&r1=791941&r2=791942&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/PersistenceUtil.java (original)
+++ geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/PersistenceUtil.java Tue Jul 7 19:18:04 2009
@@ -25,9 +25,12 @@
package javax.persistence;
+
public interface PersistenceUtil {
+
public boolean isLoaded(Object entity, String attributeName);
- public boolean isLoaded(Object object);
+
+ public boolean isLoaded(Object entity);
}
Modified: geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/PessimisticLockScope.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/PessimisticLockScope.java?rev=791942&r1=791941&r2=791942&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/PessimisticLockScope.java (original)
+++ geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/PessimisticLockScope.java Tue Jul 7 19:18:04 2009
@@ -22,6 +22,7 @@
// Community Process. In order to remain compliant with the specification
// DO NOT add / change / or delete method signatures!
//
+
package javax.persistence;
public enum PessimisticLockScope {
Modified: geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/Query.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/Query.java?rev=791942&r1=791941&r2=791942&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/Query.java (original)
+++ geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/Query.java Tue Jul 7 19:18:04 2009
@@ -22,6 +22,8 @@
// Community Process. In order to remain compliant with the specification
// DO NOT add / change / or delete method signatures!
//
+
+
package javax.persistence;
import java.util.Calendar;
@@ -30,60 +32,96 @@
import java.util.Set;
import java.util.Map;
-/**
- * @version $Rev$ $Date$
- */
+
public interface Query {
+
List getResultList();
+
Object getSingleResult();
+
int executeUpdate();
+
Query setMaxResults(int maxResult);
+
int getMaxResults();
+
Query setFirstResult(int startPosition);
+
int getFirstResult();
+
Query setHint(String hintName, Object value);
+
Map<String, Object> getHints();
+
Set<String> getSupportedHints();
+
+ <T> Query setParameter(Parameter<T> param, T value);
+
+
+ Query setParameter(Parameter<Date> param, Date value, TemporalType temporalType);
+
+
+ Query setParameter(Parameter<Calendar> param, Calendar value, TemporalType temporalType);
+
+
Query setParameter(String name, Object value);
+
Query setParameter(String name, Date value, TemporalType temporalType);
+
Query setParameter(String name, Calendar value, TemporalType temporalType);
- <T> Query setParameter(Parameter<T> param, T value);
-
+
Query setParameter(int position, Object value);
+
Query setParameter(int position, Date value, TemporalType temporalType);
+
Query setParameter(int position, Calendar value, TemporalType temporalType);
+
Set<Parameter<?>> getParameters();
- <T> Parameter<T> getParameter(String name, Class<T> type);
+
+ Parameter<?> getParameter(String name);
- <T> Parameter<T> getParameter(int position, Class<T> type);
+
+ Parameter<?> getParameter(int position);
+
<T> T getParameterValue(Parameter<T> param);
+
+ Object getParameterValue(String name);
+
+
+ Object getParameterValue(int position);
+
+
Query setFlushMode(FlushModeType flushMode);
+
FlushModeType getFlushMode();
+
Query setLockMode(LockModeType lockMode);
+
LockModeType getLockMode();
+
<T> T unwrap(Class<T> cls);
}
Modified: geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/Tuple.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/Tuple.java?rev=791942&r1=791941&r2=791942&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/Tuple.java (original)
+++ geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/Tuple.java Tue Jul 7 19:18:04 2009
@@ -22,21 +22,32 @@
// Community Process. In order to remain compliant with the specification
// DO NOT add / change / or delete method signatures!
//
+
package javax.persistence;
import java.util.List;
+
public interface Tuple {
+
<X> X get(TupleElement<X> tupleElement);
+
<X> X get(String alias, Class<X> type);
+
+ Object get(String alias);
+
+
<X> X get(int i, Class<X> type);
+
Object get(int i);
+
Object[] toArray();
+
List<TupleElement<?>> getElements();
}
Modified: geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/TupleElement.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/TupleElement.java?rev=791942&r1=791941&r2=791942&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/TupleElement.java (original)
+++ geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/TupleElement.java Tue Jul 7 19:18:04 2009
@@ -22,11 +22,15 @@
// Community Process. In order to remain compliant with the specification
// DO NOT add / change / or delete method signatures!
//
+
package javax.persistence;
-public interface TupleElement <X> {
+
+public interface TupleElement<X> {
+
Class<X> getJavaType();
+
String getAlias();
}
Modified: geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/TypedQuery.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/TypedQuery.java?rev=791942&r1=791941&r2=791942&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/TypedQuery.java (original)
+++ geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/TypedQuery.java Tue Jul 7 19:18:04 2009
@@ -1,25 +1,90 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.
+ */
+
+//
+// This source code implements specifications defined by the Java
+// Community Process. In order to remain compliant with the specification
+// DO NOT add / change / or delete method signatures!
+//
+
package javax.persistence;
import java.util.List;
+import java.util.Date;
+import java.util.Calendar;
+
-/**
- * Interface used to control the execution of typed queries.
- */
public interface TypedQuery<X> extends Query {
+
List<X> getResultList();
+
X getSingleResult();
+
TypedQuery<X> setMaxResults(int maxResult);
+
TypedQuery<X> setFirstResult(int startPosition);
+
TypedQuery<X> setHint(String hintName, Object value);
- <T> TypedQuery<X> setParameter(Parameter<T> param, T value);
+
+ <T> TypedQuery<X> setParameter(Parameter<T> param, T value);
+
+
+ TypedQuery<X> setParameter(Parameter<Date> param, Date value, TemporalType temporalType);
+
+
+
+ TypedQuery<X> setParameter(Parameter<Calendar> param, Calendar value, TemporalType temporalType);
+
+
+ TypedQuery<X> setParameter(String name, Object value);
+
+
+ TypedQuery<X> setParameter(String name, Date value, TemporalType temporalType);
+
+
+ TypedQuery<X> setParameter(String name, Calendar value, TemporalType temporalType);
+
+
+ TypedQuery<X> setParameter(int position, Object value);
+
+
+ TypedQuery<X> setParameter(int position, Date value, TemporalType temporalType);
+
+
+ TypedQuery<X> setParameter(int position, Calendar value, TemporalType temporalType);
+
+
+ <T> Parameter<T> getParameter(String name, Class<T> type);
+
+
+ <T> Parameter<T> getParameter(int position, Class<T> type);
+
+
+ TypedQuery<X> setFlushMode(FlushModeType flushMode);
- TypedQuery<X> setFlushMode(FlushModeType flushMode);
+
+ TypedQuery<X> setLockMode(LockModeType lockMode);
- TypedQuery<X> setLockMode(LockModeType lockMode);
}
Modified: geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/AbstractQuery.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/AbstractQuery.java?rev=791942&r1=791941&r2=791942&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/AbstractQuery.java (original)
+++ geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/AbstractQuery.java Tue Jul 7 19:18:04 2009
@@ -30,35 +30,52 @@
import javax.persistence.metamodel.EntityType;
+
public interface AbstractQuery<T> {
+
<X> Root<X> from(EntityType<X> entity);
+
<X> Root<X> from(Class<X> entityClass);
- Set<Root<?>> getRoots();
+ Set<Root<?>> getRoots();
+
+
AbstractQuery<T> where(Expression<Boolean> restriction);
+
AbstractQuery<T> where(Predicate... restrictions);
+
AbstractQuery<T> groupBy(Expression<?>... grouping);
+
AbstractQuery<T> having(Expression<Boolean> restriction);
+
AbstractQuery<T> having(Predicate... restrictions);
+
AbstractQuery<T> distinct(boolean distinct);
-
- Selection<T> getSelection();
+
+ Selection<T> getSelection();
+
+
List<Expression<?>> getGroupList();
+
Predicate getRestriction();
+
Predicate getGroupRestriction();
+
boolean isDistinct();
+
- <U> Subquery<U> subquery(Class<U> type);
+ <U> Subquery<U> subquery(Class<U> type);
+
}
Modified: geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/CollectionJoin.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/CollectionJoin.java?rev=791942&r1=791941&r2=791942&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/CollectionJoin.java (original)
+++ geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/CollectionJoin.java Tue Jul 7 19:18:04 2009
@@ -28,8 +28,10 @@
import java.util.Collection;
import javax.persistence.metamodel.CollectionAttribute;
+
public interface CollectionJoin<Z, E>
- extends PluralJoin<Z, Collection<E>, E> {
+ extends PluralJoin<Z, Collection<E>, E> {
+
CollectionAttribute<? super Z, E> getModel();
}
Added: geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/CompoundSelection.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/CompoundSelection.java?rev=791942&view=auto
==============================================================================
--- geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/CompoundSelection.java (added)
+++ geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/CompoundSelection.java Tue Jul 7 19:18:04 2009
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.
+ */
+
+//
+// This source code implements specifications defined by the Java
+// Community Process. In order to remain compliant with the specification
+// DO NOT add / change / or delete method signatures!
+//
+
+package javax.persistence.criteria;
+
+import java.util.List;
+
+
+public interface CompoundSelection<X> extends Selection<X> {
+
+
+ List<Selection<?>> getSelectionItems();
+}
Propchange: geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/CompoundSelection.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/CriteriaQuery.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/CriteriaQuery.java?rev=791942&r1=791941&r2=791942&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/CriteriaQuery.java (original)
+++ geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/CriteriaQuery.java Tue Jul 7 19:18:04 2009
@@ -22,34 +22,53 @@
// Community Process. In order to remain compliant with the specification
// DO NOT add / change / or delete method signatures!
//
+
package javax.persistence.criteria;
import java.util.List;
import java.util.Set;
+
public interface CriteriaQuery<T> extends AbstractQuery<T> {
+
- CriteriaQuery<T> select(Selection<T> selection);
+ CriteriaQuery<T> select(Selection<? extends T> selection);
+
CriteriaQuery<T> multiselect(Selection<?>... selections);
+
+
+ CriteriaQuery<T> multiselect(List<Selection<?>> selectionList);
+
+
+
CriteriaQuery<T> where(Expression<Boolean> restriction);
+
CriteriaQuery<T> where(Predicate... restrictions);
+
CriteriaQuery<T> groupBy(Expression<?>... grouping);
+
CriteriaQuery<T> having(Expression<Boolean> restriction);
+
CriteriaQuery<T> having(Predicate... restrictions);
+
CriteriaQuery<T> orderBy(Order... o);
+
CriteriaQuery<T> distinct(boolean distinct);
-
- List<Selection<?>> getSelectionList();
+
+
+ Class getResultType();
+
List<Order> getOrderList();
+
Set<ParameterExpression<?>> getParameters();
-}
\ No newline at end of file
+}
Modified: geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/Expression.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/Expression.java?rev=791942&r1=791941&r2=791942&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/Expression.java (original)
+++ geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/Expression.java Tue Jul 7 19:18:04 2009
@@ -22,23 +22,32 @@
// Community Process. In order to remain compliant with the specification
// DO NOT add / change / or delete method signatures!
//
+
package javax.persistence.criteria;
import java.util.Collection;
+
public interface Expression<T> extends Selection<T> {
+
Predicate isNull();
+
Predicate isNotNull();
+
Predicate in(Object... values);
+
Predicate in(Expression<?>... values);
+
Predicate in(Collection<?> values);
+
Predicate in(Expression<Collection<?>> values);
+
<X> Expression<X> as(Class<X> type);
}
Modified: geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/Fetch.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/Fetch.java?rev=791942&r1=791941&r2=791942&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/Fetch.java (original)
+++ geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/Fetch.java Tue Jul 7 19:18:04 2009
@@ -27,11 +27,15 @@
import javax.persistence.metamodel.Attribute;
+
public interface Fetch<Z, X> extends FetchParent<Z, X> {
- Attribute<? extends Z, X> getAttribute();
+
+ Attribute<? super Z, ?> getAttribute();
+
FetchParent<?, Z> getParent();
+
JoinType getJoinType();
}
Modified: geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/FetchParent.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/FetchParent.java?rev=791942&r1=791941&r2=791942&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/FetchParent.java (original)
+++ geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/FetchParent.java Tue Jul 7 19:18:04 2009
@@ -28,21 +28,30 @@
import javax.persistence.metamodel.PluralAttribute;
import javax.persistence.metamodel.SingularAttribute;
+
public interface FetchParent<Z, X> {
+
java.util.Set<Fetch<X, ?>> getFetches();
+
<Y> Fetch<X, Y> fetch(SingularAttribute<? super X, Y> attribute);
+
<Y> Fetch<X, Y> fetch(SingularAttribute<? super X, Y> attribute, JoinType jt);
+
<Y> Fetch<X, Y> fetch(PluralAttribute<? super X, ?, Y> attribute);
+
<Y> Fetch<X, Y> fetch(PluralAttribute<? super X, ?, Y> attribute, JoinType jt);
+
+
- //String-based:
-
+
+
<Y> Fetch<X, Y> fetch(String attributeName);
+
<Y> Fetch<X, Y> fetch(String attributeName, JoinType jt);
}
Modified: geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/From.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/From.java?rev=791942&r1=791941&r2=791942&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/From.java (original)
+++ geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/From.java Tue Jul 7 19:18:04 2009
@@ -31,49 +31,73 @@
import javax.persistence.metamodel.MapAttribute;
import javax.persistence.metamodel.SetAttribute;
+
public interface From<Z, X> extends Path<X>, FetchParent<Z, X> {
+
java.util.Set<Join<X, ?>> getJoins();
+
<Y> Join<X, Y> join(SingularAttribute<? super X, Y> attribute);
+
<Y> Join<X, Y> join(SingularAttribute<? super X, Y> attribute, JoinType jt);
+
<Y> CollectionJoin<X, Y> join(CollectionAttribute<? super X, Y> collection);
+
<Y> SetJoin<X, Y> join(SetAttribute<? super X, Y> set);
+
<Y> ListJoin<X, Y> join(ListAttribute<? super X, Y> list);
+
<K, V> MapJoin<X, K, V> join(MapAttribute<? super X, K, V> map);
+
<Y> CollectionJoin<X, Y> join(CollectionAttribute<? super X, Y> collection, JoinType jt);
+
<Y> SetJoin<X, Y> join(SetAttribute<? super X, Y> set, JoinType jt);
+
<Y> ListJoin<X, Y> join(ListAttribute<? super X, Y> list, JoinType jt);
+
<K, V> MapJoin<X, K, V> join(MapAttribute<? super X, K, V> map, JoinType jt);
+
+
- //String-based:
- <X, Y> Join<X, Y> join(String attributeName);
+
+ <X, Y> Join<X, Y> join(String attributeName);
- <X, Y> CollectionJoin<X, Y> joinCollection(String attributeName);
+
+ <X, Y> CollectionJoin<X, Y> joinCollection(String attributeName);
- <X, Y> SetJoin<X, Y> joinSet(String attributeName);
+
+ <X, Y> SetJoin<X, Y> joinSet(String attributeName);
- <X, Y> ListJoin<X, Y> joinList(String attributeName);
+
+ <X, Y> ListJoin<X, Y> joinList(String attributeName);
- <X, K, V> MapJoin<X, K, V> joinMap(String attributeName);
+
+ <X, K, V> MapJoin<X, K, V> joinMap(String attributeName);
- <X, Y> Join<X, Y> join(String attributeName, JoinType jt);
- <X, Y> CollectionJoin<X, Y> joinCollection(String attributeName, JoinType jt);
+
+ <X, Y> Join<X, Y> join(String attributeName, JoinType jt);
- <X, Y> SetJoin<X, Y> joinSet(String attributeName, JoinType jt);
+
+ <X, Y> CollectionJoin<X, Y> joinCollection(String attributeName, JoinType jt);
- <X, Y> ListJoin<X, Y> joinList(String attributeName, JoinType jt);
+
+ <X, Y> SetJoin<X, Y> joinSet(String attributeName, JoinType jt);
- <X, K, V> MapJoin<X, K, V> joinMap(String attributeName, JoinType jt);
+
+ <X, Y> ListJoin<X, Y> joinList(String attributeName, JoinType jt);
+
+
+ <X, K, V> MapJoin<X, K, V> joinMap(String attributeName, JoinType jt);
}
Modified: geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/Join.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/Join.java?rev=791942&r1=791941&r2=791942&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/Join.java (original)
+++ geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/Join.java Tue Jul 7 19:18:04 2009
@@ -27,11 +27,15 @@
import javax.persistence.metamodel.Attribute;
+
public interface Join<Z, X> extends From<Z, X> {
+
Attribute<? super Z, ?> getAttribute();
+
From<?, Z> getParent();
+
JoinType getJoinType();
}
Modified: geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/JoinType.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/JoinType.java?rev=791942&r1=791941&r2=791942&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/JoinType.java (original)
+++ geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/JoinType.java Tue Jul 7 19:18:04 2009
@@ -22,8 +22,10 @@
// Community Process. In order to remain compliant with the specification
// DO NOT add / change / or delete method signatures!
//
+
package javax.persistence.criteria;
+
public enum JoinType {
- INNER, LEFT, RIGHT
+ INNER, LEFT, RIGHT
}
Modified: geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/ListJoin.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/ListJoin.java?rev=791942&r1=791941&r2=791942&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/ListJoin.java (original)
+++ geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/ListJoin.java Tue Jul 7 19:18:04 2009
@@ -28,10 +28,13 @@
import java.util.List;
import javax.persistence.metamodel.ListAttribute;
+
public interface ListJoin<Z, E>
- extends PluralJoin<Z, List<E>, E> {
+ extends PluralJoin<Z, List<E>, E> {
+
ListAttribute<? super Z, E> getModel();
+
Expression<Integer> index();
}
Modified: geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/MapJoin.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/MapJoin.java?rev=791942&r1=791941&r2=791942&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/MapJoin.java (original)
+++ geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/MapJoin.java Tue Jul 7 19:18:04 2009
@@ -28,18 +28,25 @@
import java.util.Map;
import javax.persistence.metamodel.MapAttribute;
+
public interface MapJoin<Z, K, V>
- extends PluralJoin<Z, Map<K, V>, V> {
+ extends PluralJoin<Z, Map<K, V>, V> {
+
MapAttribute<? super Z, K, V> getModel();
+
Join<Map<K, V>, K> joinKey();
+
Join<Map<K, V>, K> joinKey(JoinType jt);
+
Path<K> key();
+
Path<V> value();
+
Expression<Map.Entry<K, V>> entry();
}
Modified: geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/Order.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/Order.java?rev=791942&r1=791941&r2=791942&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/Order.java (original)
+++ geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/Order.java Tue Jul 7 19:18:04 2009
@@ -25,11 +25,15 @@
package javax.persistence.criteria;
+
public interface Order {
+
Order reverse();
+
boolean isAscending();
+
<T extends Comparable<T>> Expression<T> getExpression();
}
Modified: geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/ParameterExpression.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/ParameterExpression.java?rev=791942&r1=791941&r2=791942&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/ParameterExpression.java (original)
+++ geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/ParameterExpression.java Tue Jul 7 19:18:04 2009
@@ -22,9 +22,11 @@
// Community Process. In order to remain compliant with the specification
// DO NOT add / change / or delete method signatures!
//
+
package javax.persistence.criteria;
import javax.persistence.Parameter;
-public interface ParameterExpression<T> extends Parameter<T>, Expression<T> {
-}
+
+
+public interface ParameterExpression<T> extends Parameter<T>, Expression<T> {}
Modified: geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/Path.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/Path.java?rev=791942&r1=791941&r2=791942&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/Path.java (original)
+++ geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/Path.java Tue Jul 7 19:18:04 2009
@@ -30,22 +30,30 @@
import javax.persistence.metamodel.Bindable;
import javax.persistence.metamodel.MapAttribute;
+
public interface Path<X> extends Expression<X> {
+
Bindable<X> getModel();
+
Path<?> getParentPath();
+
<Y> Path<Y> get(SingularAttribute<? super X, Y> attribute);
+
<E, C extends java.util.Collection<E>> Expression<C> get(PluralAttribute<X, C, E> collection);
+
<K, V, M extends java.util.Map<K, V>> Expression<M> get(MapAttribute<X, K, V> map);
+
Expression<Class<? extends X>> type();
+
+
- //String-based:
+
<Y> Path<Y> get(String attributeName);
}
-
Modified: geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/PluralJoin.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/PluralJoin.java?rev=791942&r1=791941&r2=791942&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/PluralJoin.java (original)
+++ geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/PluralJoin.java Tue Jul 7 19:18:04 2009
@@ -22,11 +22,14 @@
// Community Process. In order to remain compliant with the specification
// DO NOT add / change / or delete method signatures!
//
+
package javax.persistence.criteria;
import javax.persistence.metamodel.PluralAttribute;
+
public interface PluralJoin<Z, C, E> extends Join<Z, E> {
+
PluralAttribute<? super Z, C, E> getModel();
}
Modified: geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/Predicate.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/Predicate.java?rev=791942&r1=791941&r2=791942&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/Predicate.java (original)
+++ geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/Predicate.java Tue Jul 7 19:18:04 2009
@@ -27,19 +27,22 @@
import java.util.List;
+
public interface Predicate extends Expression<Boolean> {
-
- public static enum BooleanOperator {
- AND, OR
- }
+
+ public static enum BooleanOperator {
+ AND, OR
+ }
+
BooleanOperator getOperator();
+
boolean isNegated();
- List<Expression<Boolean>> getExpressions();
- Predicate add(Expression<Boolean> exp);
+ List<Expression<Boolean>> getExpressions();
+
Predicate negate();
}
Modified: geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/QueryBuilder.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/QueryBuilder.java?rev=791942&r1=791941&r2=791942&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/QueryBuilder.java (original)
+++ geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/QueryBuilder.java Tue Jul 7 19:18:04 2009
@@ -32,366 +32,545 @@
import java.util.Set;
import javax.persistence.Tuple;
+
public interface QueryBuilder {
+
CriteriaQuery<Object> createQuery();
+
<T> CriteriaQuery<T> createQuery(Class<T> resultClass);
+
CriteriaQuery<Tuple> createTupleQuery();
+
- //select new Foo(...) equivalent:
+ <Y> CompoundSelection<Y> construct(Class<Y> result, Selection<?>... selections);
- <Y> Selection<Y> construct(Class<Y> result, Selection<?>... selections);
+
+ CompoundSelection<Tuple> tuple(Selection<?>... selections);
+
+ CompoundSelection<Object[]> array(Selection<?>... selections);
- //ordering:
+
+
Order asc(Expression<?> x);
+
Order desc(Expression<?> x);
+
+
- //aggregate functions:
+
<N extends Number> Expression<Double> avg(Expression<N> x);
+
<N extends Number> Expression<N> sum(Expression<N> x);
+
<N extends Number> Expression<N> max(Expression<N> x);
+
<N extends Number> Expression<N> min(Expression<N> x);
+
<X extends Comparable<X>> Expression<X> greatest(Expression<X> x);
+
<X extends Comparable<X>> Expression<X> least(Expression<X> x);
+
Expression<Long> count(Expression<?> x);
+
Expression<Long> countDistinct(Expression<?> x);
+
- //subqueries:
+
+
+
Predicate exists(Subquery<?> subquery);
+
<Y> Expression<Y> all(Subquery<Y> subquery);
+
<Y> Expression<Y> some(Subquery<Y> subquery);
-
+
+
<Y> Expression<Y> any(Subquery<Y> subquery);
- //boolean functions:
+
+
Predicate and(Expression<Boolean> x, Expression<Boolean> y);
+
Predicate or(Expression<Boolean> x, Expression<Boolean> y);
+
Predicate and(Predicate... restrictions);
+
Predicate or(Predicate... restrictions);
+
Predicate not(Expression<Boolean> restriction);
+
Predicate conjunction();
+
Predicate disjunction();
+
+
- //turn Expression<Boolean> into a Predicate
- //useful for use with varargs methods
+
Predicate isTrue(Expression<Boolean> x);
+
Predicate isFalse(Expression<Boolean> x);
+
+
+
+
- //equality:
+ Predicate isNull(Expression<?> x);
+
+
+ Predicate isNotNull(Expression<?> x);
+
+
+
Predicate equal(Expression<?> x, Expression<?> y);
+
Predicate notEqual(Expression<?> x, Expression<?> y);
+
Predicate equal(Expression<?> x, Object y);
+
Predicate notEqual(Expression<?> x, Object y);
+
+
- //comparisons for generic (non-numeric) operands:
+
<Y extends Comparable<Y>> Predicate greaterThan(Expression<? extends Y> x, Expression<? extends Y> y);
+
<Y extends Comparable<Y>> Predicate lessThan(Expression<? extends Y> x, Expression<? extends Y> y);
+
<Y extends Comparable<Y>> Predicate greaterThanOrEqualTo(Expression<? extends Y> x, Expression<? extends Y> y);
-
+
+
<Y extends Comparable<Y>> Predicate lessThanOrEqualTo(Expression<? extends Y> x, Expression<? extends Y> y);
+
<Y extends Comparable<Y>> Predicate between(Expression<? extends Y> v, Expression<? extends Y> x, Expression<? extends Y> y);
-
+
+
<Y extends Comparable<Y>> Predicate greaterThan(Expression<? extends Y> x, Y y);
+
<Y extends Comparable<Y>> Predicate lessThan(Expression<? extends Y> x, Y y);
+
<Y extends Comparable<Y>> Predicate greaterThanOrEqualTo(Expression<? extends Y> x, Y y);
+
<Y extends Comparable<Y>> Predicate lessThanOrEqualTo(Expression<? extends Y> x, Y y);
+
<Y extends Comparable<Y>> Predicate between(Expression<? extends Y> v, Y x, Y y);
-
+
- //comparisons for numeric operands:
+
+
Predicate gt(Expression<? extends Number> x, Expression<? extends Number> y);
+
Predicate lt(Expression<? extends Number> x, Expression<? extends Number> y);
+
Predicate ge(Expression<? extends Number> x, Expression<? extends Number> y);
+
Predicate le(Expression<? extends Number> x, Expression<? extends Number> y);
+
Predicate gt(Expression<? extends Number> x, Number y);
+
Predicate lt(Expression<? extends Number> x, Number y);
+
Predicate ge(Expression<? extends Number> x, Number y);
+
Predicate le(Expression<? extends Number> x, Number y);
-
+
- //numerical operations:
+
+
<N extends Number> Expression<N> neg(Expression<N> x);
+
<N extends Number> Expression<N> abs(Expression<N> x);
+
<N extends Number> Expression<N> sum(Expression<? extends N> x, Expression<? extends N> y);
+
<N extends Number> Expression<N> prod(Expression<? extends N> x, Expression<? extends N> y);
+
<N extends Number> Expression<N> diff(Expression<? extends N> x, Expression<? extends N> y);
+
<N extends Number> Expression<N> sum(Expression<? extends N> x, N y);
+
<N extends Number> Expression<N> prod(Expression<? extends N> x, N y);
+
<N extends Number> Expression<N> diff(Expression<? extends N> x, N y);
+
<N extends Number> Expression<N> sum(N x, Expression<? extends N> y);
+
<N extends Number> Expression<N> prod(N x, Expression<? extends N> y);
+
<N extends Number> Expression<N> diff(N x, Expression<? extends N> y);
+
Expression<Number> quot(Expression<? extends Number> x, Expression<? extends Number> y);
+
Expression<Number> quot(Expression<? extends Number> x, Number y);
+
Expression<Number> quot(Number x, Expression<? extends Number> y);
+
Expression<Integer> mod(Expression<Integer> x, Expression<Integer> y);
+
Expression<Integer> mod(Expression<Integer> x, Integer y);
+
Expression<Integer> mod(Integer x, Expression<Integer> y);
+
Expression<Double> sqrt(Expression<? extends Number> x);
+
- //typecasts:
+
Expression<Long> toLong(Expression<? extends Number> number);
+
Expression<Integer> toInteger(Expression<? extends Number> number);
+
Expression<Float> toFloat(Expression<? extends Number> number);
+
Expression<Double> toDouble(Expression<? extends Number> number);
+
Expression<BigDecimal> toBigDecimal(Expression<? extends Number> number);
+
Expression<BigInteger> toBigInteger(Expression<? extends Number> number);
-
+
+
Expression<String> toString(Expression<Character> character);
+
+
- //literals:
+
<T> Expression<T> literal(T value);
- //parameters:
+
+
+
<T> ParameterExpression<T> parameter(Class<T> paramClass);
+
<T> ParameterExpression<T> parameter(Class<T> paramClass, String name);
- //collection operations:
+
+
<C extends Collection<?>> Predicate isEmpty(Expression<C> collection);
- <C extends Collection<?>> Predicate isNotEmpty(Expression<C> collection);
+ <C extends Collection<?>> Predicate isNotEmpty(Expression<C> collection);
+
+
<C extends Collection<?>> Expression<Integer> size(C collection);
+
<C extends java.util.Collection<?>> Expression<Integer> size(Expression<C> collection);
+
<E, C extends Collection<E>> Predicate isMember(E elem, Expression<C> collection);
+
<E, C extends Collection<E>> Predicate isNotMember(E elem, Expression<C> collection);
+
<E, C extends Collection<E>> Predicate isMember(Expression<E> elem, Expression<C> collection);
+
<E, C extends Collection<E>> Predicate isNotMember(Expression<E> elem, Expression<C> collection);
+
+
+
+
+
<V, M extends Map<?, V>> Expression<Collection<V>> values(M map);
+
<K, M extends Map<K, ?>> Expression<Set<K>> keys(M map);
+
- //string functions:
+
Predicate like(Expression<String> x, Expression<String> pattern);
+
Predicate like(Expression<String> x, Expression<String> pattern, Expression<Character> escapeChar);
+
Predicate like(Expression<String> x, Expression<String> pattern, char escapeChar);
+
Predicate like(Expression<String> x, String pattern);
+
Predicate like(Expression<String> x, String pattern, Expression<Character> escapeChar);
+
Predicate like(Expression<String> x, String pattern, char escapeChar);
+
Predicate notLike(Expression<String> x, Expression<String> pattern);
+
Predicate notLike(Expression<String> x, Expression<String> pattern, Expression<Character> escapeChar);
+
Predicate notLike(Expression<String> x, Expression<String> pattern, char escapeChar);
+
Predicate notLike(Expression<String> x, String pattern);
- Predicate notLike(Expression<String> x, String pattern, Expression<Character> escapeChar);
+ Predicate notLike(Expression<String> x, String pattern, Expression<Character> escapeChar);
+
+
Predicate notLike(Expression<String> x, String pattern, char escapeChar);
+
Expression<String> concat(Expression<String> x, Expression<String> y);
+
Expression<String> concat(Expression<String> x, String y);
+
Expression<String> concat(String x, Expression<String> y);
-
+
+
Expression<String> substring(Expression<String> x, Expression<Integer> from);
-
+
+
Expression<String> substring(Expression<String> x, int from);
+
Expression<String> substring(Expression<String> x, Expression<Integer> from, Expression<Integer> len);
-
+
+
Expression<String> substring(Expression<String> x, int from, int len);
-
+
public static enum Trimspec { LEADING, TRAILING, BOTH }
+
Expression<String> trim(Expression<String> x);
+
Expression<String> trim(Trimspec ts, Expression<String> x);
+
Expression<String> trim(Expression<Character> t, Expression<String> x);
+
Expression<String> trim(Trimspec ts, Expression<Character> t, Expression<String> x);
+
Expression<String> trim(char t, Expression<String> x);
+
Expression<String> trim(Trimspec ts, char t, Expression<String> x);
+
Expression<String> lower(Expression<String> x);
+
Expression<String> upper(Expression<String> x);
+
Expression<Integer> length(Expression<String> x);
-
+
+
+
Expression<Integer> locate(Expression<String> x, Expression<String> pattern);
+
Expression<Integer> locate(Expression<String> x, Expression<String> pattern, Expression<Integer> from);
+
Expression<Integer> locate(Expression<String> x, String pattern);
+
Expression<Integer> locate(Expression<String> x, String pattern, int from);
-
+
- // Date/time/timestamp functions:
+
+
Expression<java.sql.Date> currentDate();
+
Expression<java.sql.Timestamp> currentTimestamp();
+
Expression<java.sql.Time> currentTime();
-
+
- //in builders:
- public static interface In<T> extends Predicate {
-
- Expression<T> getExpression();
+
- In<T> value(T value);
+ public static interface In<T> extends Predicate {
- In<T> value(Expression<? extends T> value);
- }
+
+ Expression<T> getExpression();
+
+
+ In<T> value(T value);
+
+
+ In<T> value(Expression<? extends T> value);
+ }
+
<T> In<T> in(Expression<? extends T> expression);
+
+
- //coalesce, nullif:
+
<Y> Expression<Y> coalesce(Expression<? extends Y> x, Expression<? extends Y> y);
+
<Y> Expression<Y> coalesce(Expression<? extends Y> x, Y y);
+
<Y> Expression<Y> nullif(Expression<Y> x, Expression<?> y);
+
<Y> Expression<Y> nullif(Expression<Y> x, Y y);
- // coalesce builder:
+
+
public static interface Coalesce<T> extends Expression<T> {
- Coalesce<T> value(T value);
+
+ Coalesce<T> value(T value);
- Coalesce<T> value(Expression<? extends T> value);
- }
+
+ Coalesce<T> value(Expression<? extends T> value);
+ }
+
<T> Coalesce<T> coalesce();
- //case builders:
+
+
public static interface SimpleCase<C,R> extends Expression<R> {
- Expression<C> getExpression();
+
+ Expression<C> getExpression();
- SimpleCase<C, R> when(C condition, R result);
+
+ SimpleCase<C, R> when(C condition, R result);
- SimpleCase<C, R> when(C condition, Expression<? extends R> result);
+
+ SimpleCase<C, R> when(C condition, Expression<? extends R> result);
- Expression<R> otherwise(R result);
-
- Expression<R> otherwise(Expression<? extends R> result);
- }
+
+ Expression<R> otherwise(R result);
+
+
+ Expression<R> otherwise(Expression<? extends R> result);
+ }
+
<C, R> SimpleCase<C,R> selectCase(Expression<? extends C> expression);
+
public static interface Case<R> extends Expression<R> {
- Case<R> when(Expression<Boolean> condition, R result);
+
+ Case<R> when(Expression<Boolean> condition, R result);
- Case<R> when(Expression<Boolean> condition, Expression<? extends R> result);
+
+ Case<R> when(Expression<Boolean> condition, Expression<? extends R> result);
- Expression<R> otherwise(R result);
+
+ Expression<R> otherwise(R result);
- Expression<R> otherwise(Expression<? extends R> result);
- }
+
+ Expression<R> otherwise(Expression<? extends R> result);
+ }
+
<R> Case<R> selectCase();
- <T> Expression<T> function(String name, Class<T> type, Expression<?>... args);
+
+ <T> Expression<T> function(String name, Class<T> type,
+Expression<?>... args);
}
+
+
+
+
Modified: geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/Root.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/Root.java?rev=791942&r1=791941&r2=791942&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/Root.java (original)
+++ geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/Root.java Tue Jul 7 19:18:04 2009
@@ -27,7 +27,9 @@
import javax.persistence.metamodel.EntityType;
+
public interface Root<X> extends From<X, X> {
+
EntityType<X> getModel();
}
Modified: geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/Selection.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/Selection.java?rev=791942&r1=791941&r2=791942&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/Selection.java (original)
+++ geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/Selection.java Tue Jul 7 19:18:04 2009
@@ -26,8 +26,18 @@
package javax.persistence.criteria;
import javax.persistence.TupleElement;
+import java.util.List;
+
public interface Selection<X> extends TupleElement<X> {
- void setAlias(String name);
+
+ Selection<X> alias(String name);
+
+
+ boolean isCompoundSelection();
+
+
+ List<Selection<?>> getCompoundSelectionItems();
+
}
Modified: geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/SetJoin.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/SetJoin.java?rev=791942&r1=791941&r2=791942&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/SetJoin.java (original)
+++ geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/SetJoin.java Tue Jul 7 19:18:04 2009
@@ -28,7 +28,9 @@
import java.util.Set;
import javax.persistence.metamodel.SetAttribute;
+
public interface SetJoin<Z, E> extends PluralJoin<Z, Set<E>, E> {
+
SetAttribute<? super Z, E> getModel();
}
Modified: geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/Subquery.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/Subquery.java?rev=791942&r1=791941&r2=791942&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/Subquery.java (original)
+++ geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/criteria/Subquery.java Tue Jul 7 19:18:04 2009
@@ -25,37 +25,56 @@
package javax.persistence.criteria;
+
public interface Subquery<T> extends AbstractQuery<T>, Expression<T> {
+
AbstractQuery<?> getParent();
+
Subquery<T> select(Expression<T> expression);
+
Subquery<T> where(Expression<Boolean> restriction);
+
Subquery<T> where(Predicate... restrictions);
+
Subquery<T> groupBy(Expression<?>... grouping);
+
Subquery<T> having(Expression<Boolean> restriction);
+
Subquery<T> having(Predicate... restrictions);
+
Subquery<T> distinct(boolean distinct);
+
Expression<T> getSelection();
+
<Y> Root<Y> correlate(Root<Y> parentRoot);
+
<X, Y> Join<X, Y> correlate(Join<X, Y> parentJoin);
+
<X, Y> CollectionJoin<X, Y> correlate(CollectionJoin<X, Y> parentCollection);
+
<X, Y> SetJoin<X, Y> correlate(SetJoin<X, Y> parentSet);
+
<X, Y> ListJoin<X, Y> correlate(ListJoin<X, Y> parentList);
+
<X, K, V> MapJoin<X, K, V> correlate(MapJoin<X, K, V> parentMap);
+
java.util.Set<Join<?, ?>> getJoins();
+
}
+
Modified: geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/Attribute.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/Attribute.java?rev=791942&r1=791941&r2=791942&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/Attribute.java (original)
+++ geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/Attribute.java Tue Jul 7 19:18:04 2009
@@ -25,24 +25,32 @@
package javax.persistence.metamodel;
+
public interface Attribute<X, Y> {
- public static enum PersistentAttributeType {
- MANY_TO_ONE, ONE_TO_ONE, BASIC, EMBEDDED,
- MANY_TO_MANY, ONE_TO_MANY, ELEMENT_COLLECTION
- }
+ public static enum PersistentAttributeType {
+ MANY_TO_ONE, ONE_TO_ONE, BASIC, EMBEDDED,
+ MANY_TO_MANY, ONE_TO_MANY, ELEMENT_COLLECTION
+ }
+
String getName();
+
PersistentAttributeType getPersistentAttributeType();
+
ManagedType<X> getDeclaringType();
+
Class<Y> getJavaType();
+
java.lang.reflect.Member getJavaMember();
+
boolean isAssociation();
+
boolean isCollection();
}
Modified: geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/BasicType.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/BasicType.java?rev=791942&r1=791941&r2=791942&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/BasicType.java (original)
+++ geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/BasicType.java Tue Jul 7 19:18:04 2009
@@ -25,5 +25,5 @@
package javax.persistence.metamodel;
-public interface BasicType<X> extends Type<X> {
-}
+
+public interface BasicType<X> extends Type<X> {}
Modified: geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/Bindable.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/Bindable.java?rev=791942&r1=791941&r2=791942&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/Bindable.java (original)
+++ geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/Bindable.java Tue Jul 7 19:18:04 2009
@@ -25,13 +25,16 @@
package javax.persistence.metamodel;
+
public interface Bindable<T> {
-
- public static enum BindableType {
- SINGULAR_ATTRIBUTE, PLURAL_ATTRIBUTE, ENTITY_TYPE
- }
+
+ public static enum BindableType {
+ SINGULAR_ATTRIBUTE, PLURAL_ATTRIBUTE, ENTITY_TYPE
+ }
+
BindableType getBindableType();
+
Class<T> getBindableJavaType();
}
Modified: geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/CollectionAttribute.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/CollectionAttribute.java?rev=791942&r1=791941&r2=791942&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/CollectionAttribute.java (original)
+++ geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/CollectionAttribute.java Tue Jul 7 19:18:04 2009
@@ -25,7 +25,6 @@
package javax.persistence.metamodel;
+
public interface CollectionAttribute<X, E>
- extends PluralAttribute<X, java.util.Collection<E>, E> {
-
-}
+ extends PluralAttribute<X, java.util.Collection<E>, E> {}
Modified: geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/EmbeddableType.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/EmbeddableType.java?rev=791942&r1=791941&r2=791942&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/EmbeddableType.java (original)
+++ geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/EmbeddableType.java Tue Jul 7 19:18:04 2009
@@ -25,6 +25,5 @@
package javax.persistence.metamodel;
-public interface EmbeddableType<X> extends ManagedType<X> {
-
-}
+
+public interface EmbeddableType<X> extends ManagedType<X> {}
Modified: geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/EntityType.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/EntityType.java?rev=791942&r1=791941&r2=791942&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/EntityType.java (original)
+++ geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/EntityType.java Tue Jul 7 19:18:04 2009
@@ -25,8 +25,10 @@
package javax.persistence.metamodel;
+
public interface EntityType<X>
- extends IdentifiableType<X>, Bindable<X>{
+ extends IdentifiableType<X>, Bindable<X>{
+
String getName();
}
Modified: geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/IdentifiableType.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/IdentifiableType.java?rev=791942&r1=791941&r2=791942&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/IdentifiableType.java (original)
+++ geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/IdentifiableType.java Tue Jul 7 19:18:04 2009
@@ -22,25 +22,36 @@
// Community Process. In order to remain compliant with the specification
// DO NOT add / change / or delete method signatures!
//
+
package javax.persistence.metamodel;
+
public interface IdentifiableType<X> extends ManagedType<X> {
+
<Y> SingularAttribute<? super X, Y> getId(Class<Y> type);
+
<Y> SingularAttribute<? super X, Y> getVersion(Class<Y> type);
+
<Y> SingularAttribute<X, Y> getDeclaredId(Class<Y> type);
+
<Y> SingularAttribute<X, Y> getDeclaredVersion(Class<Y> type);
+
IdentifiableType<? super X> getSupertype();
+
boolean hasSingleIdAttribute();
+
boolean hasVersionAttribute();
- java.util.Set<SingularAttribute<? super X, ?>> getIdClassAttributes();
+
+ java.util.Set<SingularAttribute<? super X, ?>> getIdClassAttributes();
+
Type<?> getIdType();
}
Modified: geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/ListAttribute.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/ListAttribute.java?rev=791942&r1=791941&r2=791942&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/ListAttribute.java (original)
+++ geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/ListAttribute.java Tue Jul 7 19:18:04 2009
@@ -25,7 +25,6 @@
package javax.persistence.metamodel;
+
public interface ListAttribute<X, E>
- extends PluralAttribute<X, java.util.List<E>, E> {
-
-}
+ extends PluralAttribute<X, java.util.List<E>, E> {}
Modified: geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/ManagedType.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/ManagedType.java?rev=791942&r1=791941&r2=791942&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/ManagedType.java (original)
+++ geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/ManagedType.java Tue Jul 7 19:18:04 2009
@@ -22,69 +22,99 @@
// Community Process. In order to remain compliant with the specification
// DO NOT add / change / or delete method signatures!
//
+
package javax.persistence.metamodel;
+
public interface ManagedType<X> extends Type<X> {
- java.util.Set<Attribute<? super X, ?>> getAttributes();
+
+ java.util.Set<Attribute<? super X, ?>> getAttributes();
- java.util.Set<Attribute<X, ?>> getDeclaredAttributes();
+
+ java.util.Set<Attribute<X, ?>> getDeclaredAttributes();
+
<Y> SingularAttribute<? super X, Y> getSingularAttribute(String name, Class<Y> type);
+
<Y> SingularAttribute<X, Y> getDeclaredSingularAttribute(String name, Class<Y> type);
+
java.util.Set<SingularAttribute<? super X, ?>> getSingularAttributes();
- java.util.Set<SingularAttribute<X, ?>> getDeclaredSingularAttributes();
+ java.util.Set<SingularAttribute<X, ?>> getDeclaredSingularAttributes();
+
+
<E> CollectionAttribute<? super X, E> getCollection(String name, Class<E> elementType);
+
<E> SetAttribute<? super X, E> getSet(String name, Class<E> elementType);
+
<E> ListAttribute<? super X, E> getList(String name, Class<E> elementType);
+
<K, V> MapAttribute<? super X, K, V> getMap(String name,
Class<K> keyType,
Class<V> valueType);
+
<E> CollectionAttribute<X, E> getDeclaredCollection(String name, Class<E> elementType);
+
<E> SetAttribute<X, E> getDeclaredSet(String name, Class<E> elementType);
+
<E> ListAttribute<X, E> getDeclaredList(String name, Class<E> elementType);
+
<K, V> MapAttribute<X, K, V> getDeclaredMap(String name,
Class<K> keyType,
Class<V> valueType);
+
java.util.Set<PluralAttribute<? super X, ?, ?>> getCollections();
+
java.util.Set<PluralAttribute<X, ?, ?>> getDeclaredCollections();
-//String-based:
+
+
Attribute<? super X, ?> getAttribute(String name);
+
Attribute<X, ?> getDeclaredAttribute(String name);
+
SingularAttribute<? super X, ?> getSingularAttribute(String name);
+
SingularAttribute<X, ?> getDeclaredSingularAttribute(String name);
+
CollectionAttribute<? super X, ?> getCollection(String name);
+
SetAttribute<? super X, ?> getSet(String name);
+
ListAttribute<? super X, ?> getList(String name);
+
MapAttribute<? super X, ?, ?> getMap(String name);
+
CollectionAttribute<X, ?> getDeclaredCollection(String name);
+
SetAttribute<X, ?> getDeclaredSet(String name);
+
ListAttribute<X, ?> getDeclaredList(String name);
+
MapAttribute<X, ?, ?> getDeclaredMap(String name);
}
Modified: geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/MapAttribute.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/MapAttribute.java?rev=791942&r1=791941&r2=791942&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/MapAttribute.java (original)
+++ geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/MapAttribute.java Tue Jul 7 19:18:04 2009
@@ -25,10 +25,13 @@
package javax.persistence.metamodel;
+
public interface MapAttribute<X, K, V>
- extends PluralAttribute<X, java.util.Map<K, V>, V> {
+ extends PluralAttribute<X, java.util.Map<K, V>, V> {
+
Class<K> getKeyJavaType();
+
Type<K> getKeyType();
}
Modified: geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/MappedSuperclassType.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/MappedSuperclassType.java?rev=791942&r1=791941&r2=791942&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/MappedSuperclassType.java (original)
+++ geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/MappedSuperclassType.java Tue Jul 7 19:18:04 2009
@@ -25,6 +25,5 @@
package javax.persistence.metamodel;
-public interface MappedSuperclassType<X> extends IdentifiableType<X> {
-}
+public interface MappedSuperclassType<X> extends IdentifiableType<X> {}
Modified: geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/Metamodel.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/Metamodel.java?rev=791942&r1=791941&r2=791942&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/Metamodel.java (original)
+++ geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/Metamodel.java Tue Jul 7 19:18:04 2009
@@ -25,17 +25,24 @@
package javax.persistence.metamodel;
+
public interface Metamodel {
+
<X> EntityType<X> entity(Class<X> cls);
+
<X> ManagedType<X> type(Class<X> cls);
+
<X> EmbeddableType<X> embeddable(Class<X> cls);
+
java.util.Set<ManagedType<?>> getManagedTypes();
+
java.util.Set<EntityType<?>> getEntities();
+
java.util.Set<EmbeddableType<?>> getEmbeddables();
}
Modified: geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/PluralAttribute.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/PluralAttribute.java?rev=791942&r1=791941&r2=791942&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/PluralAttribute.java (original)
+++ geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/PluralAttribute.java Tue Jul 7 19:18:04 2009
@@ -22,16 +22,20 @@
// Community Process. In order to remain compliant with the specification
// DO NOT add / change / or delete method signatures!
//
-package javax.persistence.metamodel;
-public interface PluralAttribute<X, C, E>
- extends Attribute<X, C>, Bindable<E> {
+package javax.persistence.metamodel;
- public static enum CollectionType {
- COLLECTION, SET, LIST, MAP
- }
+public interface PluralAttribute<X, C, E>
+ extends Attribute<X, C>, Bindable<E> {
+
+ public static enum CollectionType {
+ COLLECTION, SET, LIST, MAP
+ }
+
+
CollectionType getCollectionType();
+
Type<E> getElementType();
}
Modified: geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/SetAttribute.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/SetAttribute.java?rev=791942&r1=791941&r2=791942&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/SetAttribute.java (original)
+++ geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/SetAttribute.java Tue Jul 7 19:18:04 2009
@@ -25,7 +25,6 @@
package javax.persistence.metamodel;
+
public interface SetAttribute<X, E>
- extends PluralAttribute<X, java.util.Set<E>, E> {
-
-}
+ extends PluralAttribute<X, java.util.Set<E>, E> {}
Modified: geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/SingularAttribute.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/SingularAttribute.java?rev=791942&r1=791941&r2=791942&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/SingularAttribute.java (original)
+++ geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/SingularAttribute.java Tue Jul 7 19:18:04 2009
@@ -22,16 +22,22 @@
// Community Process. In order to remain compliant with the specification
// DO NOT add / change / or delete method signatures!
//
+
package javax.persistence.metamodel;
-public interface SingularAttribute<X, T>
- extends Attribute<X, T>, Bindable<T> {
+public interface SingularAttribute<X, T>
+ extends Attribute<X, T>, Bindable<T> {
+
+
boolean isId();
+
boolean isVersion();
+
boolean isOptional();
+
Type<T> getType();
}
Modified: geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/StaticMetamodel.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/StaticMetamodel.java?rev=791942&r1=791941&r2=791942&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/StaticMetamodel.java (original)
+++ geronimo/specs/trunk/geronimo-jpa_2.0_spec/src/main/java/javax/persistence/metamodel/StaticMetamodel.java Tue Jul 7 19:18:04 2009
@@ -30,6 +30,7 @@
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
+
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface StaticMetamodel {