mirror of
https://github.com/apache/openjpa.git
synced 2025-03-06 08:29:08 +00:00
OPENJPA:1050: Use generics
git-svn-id: https://svn.apache.org/repos/asf/openjpa/trunk@1236280 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
ccdcf9b3fd
commit
e37a589072
@ -131,7 +131,7 @@ public abstract class StoreCollectionFieldStrategy
|
||||
* By default, assumes the structure is a collection.
|
||||
*/
|
||||
protected void add(JDBCStore store, Object coll, Object obj) {
|
||||
((Collection) coll).add(obj);
|
||||
((Collection<Object>) coll).add(obj);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -62,21 +62,21 @@ public class QueryKey
|
||||
// initialize the set of unmodifiable classes. This allows us
|
||||
// to avoid cloning collections that are not modifiable,
|
||||
// provided that they do not contain mutable objects.
|
||||
private static Collection s_unmod = new HashSet();
|
||||
private static Collection<Class<?>> s_unmod = new HashSet<Class<?>>();
|
||||
|
||||
static {
|
||||
// handle the set types; jdk uses different classes for collection,
|
||||
// set, and sorted set
|
||||
TreeSet s = new TreeSet();
|
||||
TreeSet<Object> s = new TreeSet<Object>();
|
||||
s_unmod.add(Collections.unmodifiableCollection(s).getClass());
|
||||
s_unmod.add(Collections.unmodifiableSet(s).getClass());
|
||||
s_unmod.add(Collections.unmodifiableSortedSet(s).getClass());
|
||||
|
||||
// handle the list types; jdk uses different classes for standard
|
||||
// and random access lists
|
||||
List l = new LinkedList();
|
||||
List<Object> l = new LinkedList<Object>();
|
||||
s_unmod.add(Collections.unmodifiableList(l).getClass());
|
||||
l = new ArrayList(0);
|
||||
l = new ArrayList<Object>(0);
|
||||
s_unmod.add(Collections.unmodifiableList(l).getClass());
|
||||
|
||||
// handle the constant types
|
||||
@ -88,10 +88,10 @@ public class QueryKey
|
||||
// because they are implicit in the filter
|
||||
private String _candidateClassName;
|
||||
private boolean _subclasses;
|
||||
private Set _accessPathClassNames;
|
||||
private Set<String> _accessPathClassNames;
|
||||
private Object _query;
|
||||
private boolean _ignoreChanges;
|
||||
private Map _params;
|
||||
private Map<Object,Object> _params;
|
||||
private long _rangeStart;
|
||||
private long _rangeEnd;
|
||||
|
||||
@ -123,7 +123,7 @@ public class QueryKey
|
||||
/**
|
||||
* Return a key for the given query, or null if it is not cacheable.
|
||||
*/
|
||||
public static QueryKey newInstance(Query q, Map args) {
|
||||
public static QueryKey newInstance(Query q, Map<Object,Object> args) {
|
||||
// compile to make sure info encoded in query string is available
|
||||
// via API calls (candidate class, result class, etc)
|
||||
q.compile();
|
||||
@ -135,7 +135,7 @@ public class QueryKey
|
||||
* Return a key for the given query, or null if it is not cacheable.
|
||||
*/
|
||||
static QueryKey newInstance(QueryContext q, boolean packed, Object[] args,
|
||||
Class candidate, boolean subs, long startIdx, long endIdx, Object parsed) {
|
||||
Class<?> candidate, boolean subs, long startIdx, long endIdx, Object parsed) {
|
||||
QueryKey key = createKey(q, packed, candidate, subs, startIdx, endIdx, parsed);
|
||||
if (key != null && setParams(key, q, args))
|
||||
return key;
|
||||
@ -145,11 +145,11 @@ public class QueryKey
|
||||
/**
|
||||
* Return a key for the given query, or null if it is not cacheable.
|
||||
*/
|
||||
static QueryKey newInstance(QueryContext q, boolean packed, Map args,
|
||||
Class candidate, boolean subs, long startIdx, long endIdx, Object parsed) {
|
||||
static QueryKey newInstance(QueryContext q, boolean packed, Map<Object,Object> args,
|
||||
Class<?> candidate, boolean subs, long startIdx, long endIdx, Object parsed) {
|
||||
QueryKey key = createKey(q, packed, candidate, subs, startIdx, endIdx, parsed);
|
||||
if (key != null && (args == null || args.isEmpty() ||
|
||||
setParams(key, q.getStoreContext(), new HashMap(args))))
|
||||
setParams(key, q.getStoreContext(), new HashMap<Object,Object>(args))))
|
||||
return key;
|
||||
return null;
|
||||
}
|
||||
@ -160,7 +160,7 @@ public class QueryKey
|
||||
* class, query filter, etc.
|
||||
*/
|
||||
private static QueryKey createKey(QueryContext q, boolean packed,
|
||||
Class candidateClass, boolean subclasses, long startIdx, long endIdx, Object parsed) {
|
||||
Class<?> candidateClass, boolean subclasses, long startIdx, long endIdx, Object parsed) {
|
||||
if (candidateClass == null)
|
||||
return null;
|
||||
|
||||
@ -173,7 +173,7 @@ public class QueryKey
|
||||
return null;
|
||||
|
||||
// can't cache non-serializable non-managed complex types
|
||||
Class[] types = q.getProjectionTypes();
|
||||
Class<?>[] types = q.getProjectionTypes();
|
||||
for (int i = 0; i < types.length; i++) {
|
||||
switch (JavaTypes.getTypeCode(types[i])) {
|
||||
case JavaTypes.ARRAY:
|
||||
@ -194,7 +194,7 @@ public class QueryKey
|
||||
if (metas.length == 0)
|
||||
return null;
|
||||
|
||||
Set accessPathClassNames = new HashSet((int) (metas.length * 1.33 + 1));
|
||||
Set<String> accessPathClassNames = new HashSet<String>((int) (metas.length * 1.33 + 1));
|
||||
ClassMetaData meta;
|
||||
for (int i = 0; i < metas.length; i++) {
|
||||
// since the class change framework deals with least-derived types,
|
||||
@ -267,10 +267,10 @@ public class QueryKey
|
||||
// Create a map for the given parameters, and convert the
|
||||
// parameter list into a map, using the query's parameter
|
||||
// declaration to determine ordering etc.
|
||||
Map types = q.getOrderedParameterTypes();
|
||||
Map map = new HashMap((int) (types.size() * 1.33 + 1));
|
||||
Map<Object,Class<?>> types = q.getOrderedParameterTypes();
|
||||
Map<Object,Object> map = new HashMap<Object,Object>((int) (types.size() * 1.33 + 1));
|
||||
int idx = 0;
|
||||
for (Iterator iter = types.keySet().iterator(); iter.hasNext(); idx++)
|
||||
for (Iterator<Object> iter = types.keySet().iterator(); iter.hasNext(); idx++)
|
||||
map.put(iter.next(), args[idx]);
|
||||
return setParams(key, q.getStoreContext(), map);
|
||||
}
|
||||
@ -280,14 +280,12 @@ public class QueryKey
|
||||
* will be cloned.
|
||||
*/
|
||||
private static boolean setParams(QueryKey key, StoreContext ctx,
|
||||
Map params) {
|
||||
Map<Object,Object> params) {
|
||||
if (params == null || params.isEmpty())
|
||||
return true;
|
||||
|
||||
Map.Entry e;
|
||||
Object v;
|
||||
for (Iterator iter = params.entrySet().iterator(); iter.hasNext();) {
|
||||
e = (Map.Entry) iter.next();
|
||||
for (Map.Entry<Object,Object> e : params.entrySet()) {
|
||||
v = e.getValue();
|
||||
if (ImplHelper.isManageable(v)) {
|
||||
if (!ctx.isPersistent(v) || ctx.isNew(v) || ctx.isDeleted(v))
|
||||
@ -296,7 +294,7 @@ public class QueryKey
|
||||
}
|
||||
|
||||
if (v instanceof Collection) {
|
||||
Collection c = (Collection) v;
|
||||
Collection<Object> c = (Collection<Object>) v;
|
||||
boolean contentsAreDates = false;
|
||||
if (c.iterator().hasNext()) {
|
||||
// this assumes that the collection is homogeneous
|
||||
@ -319,18 +317,18 @@ public class QueryKey
|
||||
// clone it for good measure.
|
||||
if (contentsAreDates || !s_unmod.contains(c.getClass())) {
|
||||
// copy the collection
|
||||
Collection copy;
|
||||
Collection<Object> copy;
|
||||
if (c instanceof SortedSet)
|
||||
copy = new TreeSet();
|
||||
copy = new TreeSet<Object>();
|
||||
else if (c instanceof Set)
|
||||
copy = new HashSet();
|
||||
copy = new HashSet<Object>();
|
||||
else
|
||||
copy = new ArrayList(c.size());
|
||||
copy = new ArrayList<Object>(c.size());
|
||||
|
||||
if (contentsAreDates) {
|
||||
// must go through by hand and do the
|
||||
// copy, since Date is mutable.
|
||||
for (Iterator itr2 = c.iterator(); itr2.hasNext();)
|
||||
for (Iterator<Object> itr2 = c.iterator(); itr2.hasNext();)
|
||||
copy.add(((Date) itr2.next()).clone());
|
||||
} else
|
||||
copy.addAll(c);
|
||||
@ -373,7 +371,7 @@ public class QueryKey
|
||||
* <code>false</code>. Invalidation is possible if one or more of
|
||||
* the classes in this query key's access path has been changed.
|
||||
*/
|
||||
public boolean changeInvalidatesQuery(Collection changed) {
|
||||
public boolean changeInvalidatesQuery(Collection<Class<?>> changed) {
|
||||
return intersects(_accessPathClassNames, changed);
|
||||
}
|
||||
|
||||
@ -381,11 +379,9 @@ public class QueryKey
|
||||
* Whether the given set of least-derived class names intersects with
|
||||
* the given set of changed classes.
|
||||
*/
|
||||
private static boolean intersects(Collection names, Collection changed) {
|
||||
Class cls;
|
||||
Class sup;
|
||||
for (Iterator iter = changed.iterator(); iter.hasNext();) {
|
||||
cls = (Class) iter.next();
|
||||
private static boolean intersects(Collection<String> names, Collection<Class<?>> changed) {
|
||||
Class<?> sup;
|
||||
for (Class<?> cls : changed) {
|
||||
while ((sup = PCRegistry.getPersistentSuperclass(cls)) != null)
|
||||
cls = sup;
|
||||
if (names.contains(cls.getName()))
|
||||
@ -462,10 +458,10 @@ public class QueryKey
|
||||
throws IOException, ClassNotFoundException {
|
||||
_candidateClassName = (String) in.readObject();
|
||||
_subclasses = in.readBoolean();
|
||||
_accessPathClassNames = (Set) in.readObject();
|
||||
_accessPathClassNames = (Set<String>) in.readObject();
|
||||
_query = (String) in.readObject();
|
||||
_ignoreChanges = in.readBoolean();
|
||||
_params = (Map) in.readObject();
|
||||
_params = (Map<Object,Object>) in.readObject();
|
||||
_rangeStart = in.readLong();
|
||||
_rangeEnd = in.readLong ();
|
||||
_timeout = in.readInt ();
|
||||
|
@ -45,10 +45,10 @@ public class BeanLifecycleCallbacks
|
||||
/**
|
||||
* Constructor. Make the callback on an instance of the given type.
|
||||
*
|
||||
* @arg whether another argunent is expected such as AfterDetach
|
||||
* @arg whether another argument is expected such as AfterDetach
|
||||
*/
|
||||
public BeanLifecycleCallbacks(Class cls, String method, boolean arg,
|
||||
Class type) {
|
||||
public BeanLifecycleCallbacks(Class<?> cls, String method, boolean arg,
|
||||
Class<?> type) {
|
||||
this(cls, getMethod(cls, method, arg ? new Class[]{ Object.class,
|
||||
type } : new Class[]{ type }), arg);
|
||||
}
|
||||
@ -56,12 +56,12 @@ public class BeanLifecycleCallbacks
|
||||
/**
|
||||
* Constructor. Make the callback on an instance of the given type.
|
||||
*/
|
||||
public BeanLifecycleCallbacks(Class cls, Method method, boolean arg) {
|
||||
public BeanLifecycleCallbacks(Class<?> cls, Method method, boolean arg) {
|
||||
super(method, arg);
|
||||
_listener = newListener(cls);
|
||||
}
|
||||
|
||||
private Object newListener(Class cls) {
|
||||
private Object newListener(Class<?> cls) {
|
||||
try {
|
||||
return AccessController.doPrivileged(
|
||||
J2DoPrivHelper.newInstanceAction(cls));
|
||||
@ -88,7 +88,7 @@ public class BeanLifecycleCallbacks
|
||||
public void readExternal(ObjectInput in)
|
||||
throws IOException, ClassNotFoundException {
|
||||
super.readExternal(in);
|
||||
Class cls = (Class) in.readObject();
|
||||
Class<?> cls = (Class<?>) in.readObject();
|
||||
_listener = newListener(cls);
|
||||
}
|
||||
|
||||
|
@ -53,7 +53,7 @@ public class ResultPacker {
|
||||
|
||||
private static final Localizer _loc = Localizer.forPackage
|
||||
(ResultPacker.class);
|
||||
private static final Set _stdTypes = new HashSet();
|
||||
private static final Set<Class<?>> _stdTypes = new HashSet<Class<?>>();
|
||||
|
||||
static {
|
||||
_stdTypes.add(Object[].class);
|
||||
@ -79,11 +79,11 @@ public class ResultPacker {
|
||||
_stdTypes.add(GregorianCalendar.class);
|
||||
}
|
||||
|
||||
private final Class _resultClass;
|
||||
private final Class<?> _resultClass;
|
||||
private final String[] _aliases;
|
||||
private final Member[] _sets;
|
||||
private final Method _put;
|
||||
private final Constructor _constructor;
|
||||
private final Constructor<?> _constructor;
|
||||
|
||||
/**
|
||||
* Protected constructor to bypass this implementation but allow extension.
|
||||
@ -99,7 +99,7 @@ public class ResultPacker {
|
||||
/**
|
||||
* Constructor for result class without a projection.
|
||||
*/
|
||||
public ResultPacker(Class candidate, String alias, Class resultClass) {
|
||||
public ResultPacker(Class<?> candidate, String alias, Class<?> resultClass) {
|
||||
this(candidate, null, new String[]{ alias }, resultClass);
|
||||
}
|
||||
|
||||
@ -110,7 +110,7 @@ public class ResultPacker {
|
||||
* @param aliases the alias for each projection value
|
||||
* @param resultClass the class to pack into
|
||||
*/
|
||||
public ResultPacker(Class[] types, String[] aliases, Class resultClass) {
|
||||
public ResultPacker(Class<?>[] types, String[] aliases, Class<?> resultClass) {
|
||||
this(null, types, aliases, resultClass);
|
||||
}
|
||||
|
||||
@ -186,9 +186,9 @@ public class ResultPacker {
|
||||
/**
|
||||
* Ensure that conversion is possible.
|
||||
*/
|
||||
private void assertConvertable(Class candidate, Class[] types,
|
||||
Class resultClass) {
|
||||
Class c = (types == null) ? candidate : types[0];
|
||||
private void assertConvertable(Class<?> candidate, Class<?>[] types,
|
||||
Class<?> resultClass) {
|
||||
Class<?> c = (types == null) ? candidate : types[0];
|
||||
if ((types != null && types.length != 1) || (c != null
|
||||
&& c != Object.class && !Filters.canConvert(c, resultClass, true)))
|
||||
throw new UserException(_loc.get("cant-convert-result",
|
||||
@ -208,7 +208,7 @@ public class ResultPacker {
|
||||
if (_resultClass == Object[].class)
|
||||
return new Object[]{ result };
|
||||
if (_resultClass == HashMap.class || _resultClass == Map.class) {
|
||||
HashMap map = new HashMap(1, 1F);
|
||||
HashMap<String,Object> map = new HashMap<String,Object>(1, 1F);
|
||||
map.put(_aliases[0], result);
|
||||
return map;
|
||||
}
|
||||
@ -249,7 +249,7 @@ public class ResultPacker {
|
||||
if (_resultClass == Object.class)
|
||||
return result[0];
|
||||
if (_resultClass == HashMap.class || _resultClass == Map.class) {
|
||||
Map map = new HashMap(result.length);
|
||||
Map<String,Object> map = new HashMap<String,Object>(result.length);
|
||||
for (int i = 0; i < _aliases.length; i++)
|
||||
map.put(_aliases[i], result[i]);
|
||||
return map;
|
||||
@ -304,7 +304,7 @@ public class ResultPacker {
|
||||
/**
|
||||
* Return the set method for the given property.
|
||||
*/
|
||||
private static Member findSet(String alias, Class type, Field[] fields,
|
||||
private static Member findSet(String alias, Class<?> type, Field[] fields,
|
||||
Method[] methods) {
|
||||
if (StringUtils.isEmpty(alias))
|
||||
return null;
|
||||
@ -336,7 +336,7 @@ public class ResultPacker {
|
||||
String setName = "set" + StringUtils.capitalize(alias);
|
||||
Method method = null;
|
||||
boolean eqName = false;
|
||||
Class[] params;
|
||||
Class<?>[] params;
|
||||
for (int i = 0; i < methods.length; i++) {
|
||||
if (!methods[i].getName().equalsIgnoreCase(setName))
|
||||
continue;
|
||||
|
@ -52,7 +52,7 @@ class InterfaceImplGenerator {
|
||||
private static final String POSTFIX = "openjpaimpl";
|
||||
|
||||
private final MetaDataRepository _repos;
|
||||
private final Map _impls = new WeakHashMap();
|
||||
private final Map<Class<?>,Class<?>> _impls = new WeakHashMap<Class<?>,Class<?>>();
|
||||
private final Project _project = new Project();
|
||||
|
||||
// distinct project / loader for enhanced version of class
|
||||
@ -69,11 +69,11 @@ class InterfaceImplGenerator {
|
||||
* Create a concrete implementation of the given type, possibly
|
||||
* returning a cached version of the class.
|
||||
*/
|
||||
public synchronized Class createImpl(ClassMetaData meta) {
|
||||
Class iface = meta.getDescribedType();
|
||||
public synchronized Class<?> createImpl(ClassMetaData meta) {
|
||||
Class<?> iface = meta.getDescribedType();
|
||||
|
||||
// check cache.
|
||||
Class impl = (Class) _impls.get(iface);
|
||||
Class<?> impl = _impls.get(iface);
|
||||
if (impl != null)
|
||||
return impl;
|
||||
|
||||
@ -98,12 +98,12 @@ class InterfaceImplGenerator {
|
||||
}
|
||||
|
||||
FieldMetaData[] fields = meta.getDeclaredFields();
|
||||
Set methods = new HashSet();
|
||||
Set<Method> methods = new HashSet<Method>();
|
||||
for (int i = 0; i < fields.length; i++)
|
||||
addField(bc, iface, fields[i], methods);
|
||||
invalidateNonBeanMethods(bc, iface, methods);
|
||||
|
||||
// first load the base class as the enhancer requires the class
|
||||
// first load the base Class<?> as the enhancer requires the class
|
||||
// to be available
|
||||
try {
|
||||
meta.setInterfaceImpl(Class.forName(bc.getName(), true, loader));
|
||||
@ -111,7 +111,7 @@ class InterfaceImplGenerator {
|
||||
throw new InternalException(_loc.get("interface-load", iface,
|
||||
loader), t).setFatal(true);
|
||||
}
|
||||
// copy the BCClass into the enhancer project.
|
||||
// copy the BCClass<?> into the enhancer project.
|
||||
bc = _enhProject.loadClass(new ByteArrayInputStream(bc.toByteArray()),
|
||||
loader);
|
||||
PCEnhancer enhancer = new PCEnhancer(_repos, bc, meta);
|
||||
@ -121,7 +121,7 @@ class InterfaceImplGenerator {
|
||||
throw new InternalException(_loc.get("interface-badenhance",
|
||||
iface)).setFatal(true);
|
||||
try {
|
||||
// load the class for real.
|
||||
// load the Class<?> for real.
|
||||
impl = Class.forName(bc.getName(), true, enhLoader);
|
||||
} catch (Throwable t) {
|
||||
throw new InternalException(_loc.get("interface-load2", iface,
|
||||
@ -136,10 +136,10 @@ class InterfaceImplGenerator {
|
||||
* Add bean getters and setters, also recording seen methods
|
||||
* into the given set.
|
||||
*/
|
||||
private void addField (BCClass bc, Class iface, FieldMetaData fmd,
|
||||
Set methods) {
|
||||
private void addField (BCClass bc, Class<?> iface, FieldMetaData fmd,
|
||||
Set<Method> methods) {
|
||||
String name = fmd.getName();
|
||||
Class type = fmd.getDeclaredType();
|
||||
Class<?> type = fmd.getDeclaredType();
|
||||
BCField field = bc.declareField(name, type);
|
||||
field.setAccessFlags(Constants.ACCESS_PRIVATE);
|
||||
|
||||
@ -172,13 +172,13 @@ class InterfaceImplGenerator {
|
||||
/**
|
||||
* Invalidate methods on the interface which are not managed.
|
||||
*/
|
||||
private void invalidateNonBeanMethods(BCClass bc, Class iface,
|
||||
Set methods) {
|
||||
private void invalidateNonBeanMethods(BCClass bc, Class<?> iface,
|
||||
Set<Method> methods) {
|
||||
Method[] meths = (Method[]) AccessController.doPrivileged(
|
||||
J2DoPrivHelper.getDeclaredMethodsAction(iface));
|
||||
BCMethod meth;
|
||||
Code code;
|
||||
Class type = _repos.getMetaDataFactory().getDefaults().
|
||||
Class<?> type = _repos.getMetaDataFactory().getDefaults().
|
||||
getUnimplementedExceptionType();
|
||||
for (int i = 0; i < meths.length; i++) {
|
||||
if (methods.contains(meths[i]))
|
||||
@ -197,17 +197,17 @@ class InterfaceImplGenerator {
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a unique class name.
|
||||
* Return a unique Class<?> name.
|
||||
*/
|
||||
protected final String getClassName(ClassMetaData meta) {
|
||||
Class iface = meta.getDescribedType();
|
||||
Class<?> iface = meta.getDescribedType();
|
||||
return iface.getName() + "$" + System.identityHashCode(iface) + POSTFIX;
|
||||
}
|
||||
|
||||
/**
|
||||
* Convenience method to return the given method / arg.
|
||||
*/
|
||||
private static Method getMethodSafe(Class iface, String name, Class arg) {
|
||||
private static Method getMethodSafe(Class<?> iface, String name, Class<?> arg) {
|
||||
try {
|
||||
return AccessController.doPrivileged(
|
||||
J2DoPrivHelper.getDeclaredMethodAction(
|
||||
@ -217,7 +217,7 @@ class InterfaceImplGenerator {
|
||||
}
|
||||
}
|
||||
|
||||
private static boolean isGetter(Class iface, FieldMetaData fmd) {
|
||||
private static boolean isGetter(Class<?> iface, FieldMetaData fmd) {
|
||||
if (fmd.getType() != boolean.class && fmd.getType() != Boolean.class)
|
||||
return true;
|
||||
try {
|
||||
@ -229,13 +229,13 @@ class InterfaceImplGenerator {
|
||||
return true;
|
||||
}
|
||||
|
||||
boolean isImplType(Class cls) {
|
||||
boolean isImplType(Class<?> cls) {
|
||||
return (cls.getName().endsWith(POSTFIX)
|
||||
&& cls.getName().indexOf('$') != -1);
|
||||
}
|
||||
|
||||
public Class toManagedInterface(Class cls) {
|
||||
Class[] ifaces = cls.getInterfaces();
|
||||
public Class<?> toManagedInterface(Class<?> cls) {
|
||||
Class<?>[] ifaces = cls.getInterfaces();
|
||||
for (int i = 0; i < ifaces.length; i++) {
|
||||
if (_impls.get(ifaces[i]) == cls)
|
||||
return ifaces[i];
|
||||
|
@ -440,22 +440,22 @@ public class JavaTypes {
|
||||
* Helper method to return the given array value as a collection.
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public static List toList(Object val, Class<?> elem, boolean mutable) {
|
||||
public static <T> List<T> toList(Object val, Class<T> elem, boolean mutable) {
|
||||
if (val == null)
|
||||
return null;
|
||||
|
||||
List l;
|
||||
List<T> l;
|
||||
if (!elem.isPrimitive()) {
|
||||
// if an object array, use built-in list function
|
||||
l = Arrays.asList((Object[]) val);
|
||||
l = Arrays.asList((T[]) val);
|
||||
if (mutable)
|
||||
l = new ArrayList(l);
|
||||
l = new ArrayList<T>(l);
|
||||
} else {
|
||||
// convert to list of wrapper objects
|
||||
int length = Array.getLength(val);
|
||||
l = new ArrayList(length);
|
||||
l = new ArrayList<T>(length);
|
||||
for (int i = 0; i < length; i++)
|
||||
l.add(Array.get(val, i));
|
||||
l.add((T)Array.get(val, i));
|
||||
}
|
||||
return l;
|
||||
}
|
||||
|
@ -98,7 +98,7 @@ public class ApplicationIds {
|
||||
// default to reflection
|
||||
if (meta.isObjectIdTypeShared())
|
||||
oid = ((ObjectId) oid).getId();
|
||||
Class oidType = oid.getClass();
|
||||
Class<?> oidType = oid.getClass();
|
||||
for (int i = 0; i < fmds.length; i++) {
|
||||
if (AccessCode.isField(meta.getAccessType()))
|
||||
pks[i] = Reflection.get(oid, Reflection.findField(oidType,
|
||||
@ -227,7 +227,7 @@ public class ApplicationIds {
|
||||
}
|
||||
|
||||
// default to reflection
|
||||
Class oidType = meta.getObjectIdType();
|
||||
Class<?> oidType = meta.getObjectIdType();
|
||||
if (Modifier.isAbstract(oidType.getModifiers()))
|
||||
throw new UserException(_loc.get("objectid-abstract", meta));
|
||||
Object copy = null;
|
||||
@ -267,7 +267,7 @@ public class ApplicationIds {
|
||||
|
||||
if (meta.isOpenJPAIdentity()) {
|
||||
// use meta type instead of oid type in case it's a subclass
|
||||
Class cls = meta.getDescribedType();
|
||||
Class<?> cls = meta.getDescribedType();
|
||||
OpenJPAId koid = (OpenJPAId) oid;
|
||||
FieldMetaData pk = meta.getPrimaryKeyFields()[0];
|
||||
switch (pk.getObjectIdFieldTypeCode()) {
|
||||
@ -330,7 +330,7 @@ public class ApplicationIds {
|
||||
// oid instance
|
||||
if (!Modifier.isAbstract(meta.getDescribedType().getModifiers())
|
||||
&& !hasPCPrimaryKeyFields(meta)) {
|
||||
Class type = meta.getDescribedType();
|
||||
Class<?> type = meta.getDescribedType();
|
||||
PersistenceCapable pc = PCRegistry.newInstance(type, null, oid,
|
||||
false);
|
||||
Object copy = pc.pcNewObjectIdInstance();
|
||||
@ -367,7 +367,7 @@ public class ApplicationIds {
|
||||
if (oid == null)
|
||||
return null;
|
||||
|
||||
Class oidType = oid.getClass();
|
||||
Class<?> oidType = oid.getClass();
|
||||
Object copy = null;
|
||||
try {
|
||||
copy = AccessController.doPrivileged(
|
||||
@ -408,7 +408,7 @@ public class ApplicationIds {
|
||||
return ((OpenJPAId) oid).getIdObject();
|
||||
|
||||
ClassMetaData meta = fmd.getDefiningMetaData();
|
||||
Class oidType = oid.getClass();
|
||||
Class<?> oidType = oid.getClass();
|
||||
if (AccessCode.isField(meta.getAccessType()))
|
||||
return Reflection.get(oid, Reflection.findField(oidType,
|
||||
fmd.getName(), true));
|
||||
@ -512,7 +512,7 @@ public class ApplicationIds {
|
||||
if (mappedByIdFieldName.length() != 0) {
|
||||
if (((ObjectId)id).getId() == null)
|
||||
return false;
|
||||
Class idClass = ((ObjectId)id).getId().getClass();
|
||||
Class<?> idClass = ((ObjectId)id).getId().getClass();
|
||||
val = Reflection.get(key,
|
||||
Reflection.findField(idClass, mappedByIdFieldName, true));
|
||||
} else
|
||||
|
@ -51,7 +51,7 @@ public class MultiClassLoader extends ClassLoader {
|
||||
AccessController.doPrivileged(
|
||||
J2DoPrivHelper.getSystemClassLoaderAction());
|
||||
|
||||
private List _loaders = new ArrayList(5);
|
||||
private List<ClassLoader> _loaders = new ArrayList<ClassLoader>(5);
|
||||
|
||||
/**
|
||||
* Constructor; initializes the loader with an empty list of delegates.
|
||||
@ -81,9 +81,9 @@ public class MultiClassLoader extends ClassLoader {
|
||||
public ClassLoader[] getClassLoaders() {
|
||||
ClassLoader[] loaders = new ClassLoader[size()];
|
||||
ClassLoader loader;
|
||||
Iterator itr = _loaders.iterator();
|
||||
Iterator<ClassLoader> itr = _loaders.iterator();
|
||||
for (int i = 0; i < loaders.length; i++) {
|
||||
loader = (ClassLoader) itr.next();
|
||||
loader = itr.next();
|
||||
if (loader == THREAD_LOADER)
|
||||
loader = AccessController.doPrivileged(
|
||||
J2DoPrivHelper.getContextClassLoaderAction());
|
||||
@ -146,7 +146,7 @@ public class MultiClassLoader extends ClassLoader {
|
||||
|
||||
// use iterator so that the thread loader is not resolved
|
||||
boolean added = false;
|
||||
for (Iterator itr = multi._loaders.iterator(); itr.hasNext();) {
|
||||
for (Iterator<ClassLoader> itr = multi._loaders.iterator(); itr.hasNext();) {
|
||||
if (addClassLoader(index, (ClassLoader) itr.next())) {
|
||||
index++;
|
||||
added = true;
|
||||
@ -166,7 +166,7 @@ public class MultiClassLoader extends ClassLoader {
|
||||
|
||||
// use iterator so that the thread loader is not resolved
|
||||
boolean added = false;
|
||||
for (Iterator itr = multi._loaders.iterator(); itr.hasNext();)
|
||||
for (Iterator<ClassLoader> itr = multi._loaders.iterator(); itr.hasNext();)
|
||||
added = addClassLoader((ClassLoader) itr.next()) || added;
|
||||
return added;
|
||||
}
|
||||
@ -201,9 +201,9 @@ public class MultiClassLoader extends ClassLoader {
|
||||
return _loaders.isEmpty();
|
||||
}
|
||||
|
||||
protected Class findClass(String name) throws ClassNotFoundException {
|
||||
protected Class<?> findClass(String name) throws ClassNotFoundException {
|
||||
ClassLoader loader;
|
||||
for (Iterator itr = _loaders.iterator(); itr.hasNext();) {
|
||||
for (Iterator<ClassLoader> itr = _loaders.iterator(); itr.hasNext();) {
|
||||
loader = (ClassLoader) itr.next();
|
||||
if (loader == THREAD_LOADER)
|
||||
loader = AccessController.doPrivileged(
|
||||
@ -219,7 +219,7 @@ public class MultiClassLoader extends ClassLoader {
|
||||
protected URL findResource(String name) {
|
||||
ClassLoader loader;
|
||||
URL rsrc;
|
||||
for (Iterator itr = _loaders.iterator(); itr.hasNext();) {
|
||||
for (Iterator<ClassLoader> itr = _loaders.iterator(); itr.hasNext();) {
|
||||
loader = (ClassLoader) itr.next();
|
||||
if (loader == THREAD_LOADER)
|
||||
loader = AccessController.doPrivileged(
|
||||
@ -236,13 +236,13 @@ public class MultiClassLoader extends ClassLoader {
|
||||
return null;
|
||||
}
|
||||
|
||||
protected Enumeration findResources(String name) throws IOException {
|
||||
protected Enumeration<URL> findResources(String name) throws IOException {
|
||||
ClassLoader loader;
|
||||
Enumeration rsrcs;
|
||||
Object rsrc;
|
||||
Vector all = new Vector();
|
||||
for (Iterator itr = _loaders.iterator(); itr.hasNext();) {
|
||||
loader = (ClassLoader) itr.next();
|
||||
Enumeration<URL> rsrcs;
|
||||
URL rsrc;
|
||||
Vector<URL> all = new Vector<URL>();
|
||||
for (Iterator<ClassLoader> itr = _loaders.iterator(); itr.hasNext();) {
|
||||
loader = itr.next();
|
||||
if (loader == THREAD_LOADER)
|
||||
loader = AccessController.doPrivileged(
|
||||
J2DoPrivHelper.getContextClassLoaderAction());
|
||||
|
@ -177,7 +177,7 @@ public class Options extends TypedProperties {
|
||||
// set all defaults that have no explicit value
|
||||
Map.Entry entry = null;
|
||||
if (defaults != null) {
|
||||
for (Iterator itr = defaults.entrySet().iterator(); itr.hasNext();) {
|
||||
for (Iterator<?> itr = defaults.entrySet().iterator(); itr.hasNext();) {
|
||||
entry = (Map.Entry) itr.next();
|
||||
if (!containsKey(entry.getKey()))
|
||||
setInto(obj, entry);
|
||||
@ -187,7 +187,7 @@ public class Options extends TypedProperties {
|
||||
// set from main map
|
||||
Options invalidEntries = null;
|
||||
Map.Entry e;
|
||||
for (Iterator itr = entrySet().iterator(); itr.hasNext();) {
|
||||
for (Iterator<?> itr = entrySet().iterator(); itr.hasNext();) {
|
||||
e = (Map.Entry) itr.next();
|
||||
if (!setInto(obj, e)) {
|
||||
if (invalidEntries == null)
|
||||
@ -310,7 +310,7 @@ public class Options extends TypedProperties {
|
||||
String get = "get" + base;
|
||||
|
||||
// look for a setter/getter matching the key; look for methods first
|
||||
Class type = match[0].getClass();
|
||||
Class<? extends Object> type = match[0].getClass();
|
||||
Method[] meths = type.getMethods();
|
||||
Method setMeth = null;
|
||||
Method getMeth = null;
|
||||
@ -366,7 +366,7 @@ public class Options extends TypedProperties {
|
||||
// if no getter or current inner is null, try to create a new
|
||||
// inner instance and set it in object
|
||||
if (inner == null && setter != null) {
|
||||
Class innerType = getType(setter)[0];
|
||||
Class<?> innerType = getType(setter)[0];
|
||||
try {
|
||||
inner = AccessController.doPrivileged(
|
||||
J2DoPrivHelper.newInstanceAction(innerType));
|
||||
@ -387,7 +387,7 @@ public class Options extends TypedProperties {
|
||||
/**
|
||||
* Return the types of the parameters needed to set the given member.
|
||||
*/
|
||||
private static Class[] getType(Object member) {
|
||||
private static Class<?>[] getType(Object member) {
|
||||
if (member instanceof Method)
|
||||
return ((Method) member).getParameterTypes();
|
||||
return new Class[]{ ((Field) member).getType() };
|
||||
@ -463,7 +463,7 @@ public class Options extends TypedProperties {
|
||||
/**
|
||||
* Returns the default value for the given parameter type.
|
||||
*/
|
||||
private Object getDefaultValue(Class type) {
|
||||
private Object getDefaultValue(Class<?> type) {
|
||||
for (int i = 0; i < _primWrappers.length; i++)
|
||||
if (_primWrappers[i][0] == type)
|
||||
return _primWrappers[i][2];
|
||||
|
@ -26,20 +26,20 @@ import org.apache.openjpa.lib.log.*;
|
||||
* Simple default log implementation to test whether certain messages
|
||||
* are logged or not.
|
||||
*
|
||||
* @author <a href="mailto:marc@solarmetric.com">Marc Prud'hommeaux</a>
|
||||
* @author Marc Prud'hommeaux
|
||||
*/
|
||||
public class BufferedLogFactory
|
||||
extends LogFactoryImpl {
|
||||
|
||||
private int bufferSize = 10000;
|
||||
private List buffer = new ArrayList();
|
||||
private List disallowedMessages = new LinkedList();
|
||||
private List<String> buffer = new ArrayList<String>();
|
||||
private List<String> disallowedMessages = new LinkedList<String>();
|
||||
|
||||
protected LogImpl newLogImpl() {
|
||||
return new BufferedLog();
|
||||
}
|
||||
|
||||
public List getBuffer() {
|
||||
public List<String> getBuffer() {
|
||||
return Collections.unmodifiableList(buffer);
|
||||
}
|
||||
|
||||
@ -59,7 +59,7 @@ public class BufferedLogFactory
|
||||
return disallowedMessages.remove(regexp);
|
||||
}
|
||||
|
||||
public List getDisallowedMessages() {
|
||||
public List<String> getDisallowedMessages() {
|
||||
return Collections.unmodifiableList(disallowedMessages);
|
||||
}
|
||||
|
||||
@ -91,8 +91,8 @@ public class BufferedLogFactory
|
||||
buffer.iterator().remove();
|
||||
|
||||
if (disallowedMessages.size() > 0) {
|
||||
for (Iterator i = disallowedMessages.iterator(); i.hasNext();) {
|
||||
String regex = (String) i.next();
|
||||
for (Iterator<String> i = disallowedMessages.iterator(); i.hasNext();) {
|
||||
String regex = i.next();
|
||||
AbstractTestCase.assertNotMatches(regex, message);
|
||||
}
|
||||
}
|
||||
|
@ -74,7 +74,7 @@ public class Members {
|
||||
* Returns the managed type which declared this attribute.
|
||||
*/
|
||||
public final ManagedType<X> getDeclaringType() {
|
||||
return owner.model.managedType(fmd.getDeclaringType());
|
||||
return (ManagedType<X>)owner.model.managedType(fmd.getDeclaringType());
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
x
Reference in New Issue
Block a user