This is an automated email from the ASF dual-hosted git repository.
markt pushed a commit to branch 7.0.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/7.0.x by this push:
new 5aa7b67 Generics: JOCL
5aa7b67 is described below
commit 5aa7b67648bba99037133b79d731ae6c7cc573c2
Author: Mark Thomas <[email protected]>
AuthorDate: Fri Mar 22 11:13:23 2019 +0000
Generics: JOCL
---
.../apache/tomcat/dbcp/jocl/ConstructorUtil.java | 15 ++++----
.../tomcat/dbcp/jocl/JOCLContentHandler.java | 44 +++++++++++-----------
2 files changed, 30 insertions(+), 29 deletions(-)
diff --git a/java/org/apache/tomcat/dbcp/jocl/ConstructorUtil.java
b/java/org/apache/tomcat/dbcp/jocl/ConstructorUtil.java
index b4cee2f..2bc9cba 100644
--- a/java/org/apache/tomcat/dbcp/jocl/ConstructorUtil.java
+++ b/java/org/apache/tomcat/dbcp/jocl/ConstructorUtil.java
@@ -5,9 +5,9 @@
* 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.
@@ -36,11 +36,11 @@ public class ConstructorUtil {
* if no such <tt>Constructor</tt> can be found.
* @see #invokeConstructor
*/
- public static Constructor getConstructor(Class type, Class[] argTypes) {
+ public static <T> Constructor<T> getConstructor(Class<T> type, Class<?>[]
argTypes) {
if(null == type || null == argTypes) {
throw new NullPointerException();
}
- Constructor ctor = null;
+ Constructor<T> ctor = null;
try {
ctor = type.getConstructor(argTypes);
} catch(Exception e) {
@@ -51,9 +51,10 @@ public class ConstructorUtil {
// look for something that will work
// XXX this should really be more careful to
// adhere to the jls mechanism for late binding
- Constructor[] ctors = type.getConstructors();
+ @SuppressWarnings("unchecked")
+ Constructor<T>[] ctors = (Constructor<T>[]) type.getConstructors();
for(int i=0;i<ctors.length;i++) {
- Class[] paramtypes = ctors[i].getParameterTypes();
+ Class<?>[] paramtypes = ctors[i].getParameterTypes();
if(paramtypes.length == argTypes.length) {
boolean canuse = true;
for(int j=0;j<paramtypes.length;j++) {
@@ -89,7 +90,7 @@ public class ConstructorUtil {
* @exception IllegalAccessException
* @exception InvocationTargetException
*/
- public static Object invokeConstructor(Class type, Class[] argTypes,
Object[] argValues) throws InstantiationException, IllegalAccessException,
InvocationTargetException {
+ public static <T> T invokeConstructor(Class<T> type, Class<?>[] argTypes,
Object[] argValues) throws InstantiationException, IllegalAccessException,
InvocationTargetException {
return
ConstructorUtil.getConstructor(type,argTypes).newInstance(argValues);
}
}
diff --git a/java/org/apache/tomcat/dbcp/jocl/JOCLContentHandler.java
b/java/org/apache/tomcat/dbcp/jocl/JOCLContentHandler.java
index f05136d..f8a8766 100644
--- a/java/org/apache/tomcat/dbcp/jocl/JOCLContentHandler.java
+++ b/java/org/apache/tomcat/dbcp/jocl/JOCLContentHandler.java
@@ -5,9 +5,9 @@
* 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.
@@ -379,8 +379,8 @@ public class JOCLContentHandler extends DefaultHandler {
* Clears all the values and types in my list.
*/
public void clear() {
- _typeList = new ArrayList();
- _valueList = new ArrayList();
+ _typeList = new ArrayList<Class<?>>();
+ _valueList = new ArrayList<Object>();
}
/**
@@ -394,8 +394,8 @@ public class JOCLContentHandler extends DefaultHandler {
/**
* Returns the type of the object at the specified index.
*/
- public Class getType(int i) {
- return(Class)(_typeList.get(i));
+ public Class<?> getType(int i) {
+ return _typeList.get(i);
}
/**
@@ -499,8 +499,8 @@ public class JOCLContentHandler extends DefaultHandler {
} else {
_cur.addArgument(temp.getType(),temp.createObject());
}
- }
- /*
+ }
+ /*
else if(ELT_BOOLEAN.equals(localName)) {
// nothing to do here
} else if(ELT_BYTE.equals(localName)) {
@@ -544,7 +544,7 @@ public class JOCLContentHandler extends DefaultHandler {
* @see #_acceptEmptyNamespaceForElements
* @see #_acceptJoclPrefixForElements
*/
- protected boolean isJoclNamespace(String uri, String localname, String
qname) {
+ protected boolean isJoclNamespace(String uri, @SuppressWarnings("unused")
String localname, String qname) {
if(JOCL_NAMESPACE_URI.equals(uri)) {
return true;
} else if(_acceptEmptyNamespaceForElements && (null == uri ||
"".equals(uri))) {
@@ -594,7 +594,7 @@ public class JOCLContentHandler extends DefaultHandler {
* Add the specified object either to my type/value list, or
* as an argument to the object I'm currently constructing.
*/
- protected void addObject(Class type, Object val) {
+ protected void addObject(Class<?> type, Object val) {
if(null == _cur) {
_typeList.add(type);
_valueList.add(val);
@@ -618,12 +618,12 @@ public class JOCLContentHandler extends DefaultHandler {
/**
* A list of the types ({@link Class}es) already created via the parse.
*/
- protected ArrayList _typeList = new ArrayList();
+ protected ArrayList<Class<?>> _typeList = new ArrayList<Class<?>>();
/**
* A list of the values ({@link Object}s) already created via the parse.
*/
- protected ArrayList _valueList = new ArrayList();
+ protected ArrayList<Object> _valueList = new ArrayList<Object>();
/**
* The object I'm currently working on.
@@ -725,9 +725,9 @@ public class JOCLContentHandler extends DefaultHandler {
static class ConstructorDetails {
private ConstructorDetails _parent = null;
- private Class _type = null;
- private ArrayList _argTypes = null;
- private ArrayList _argValues = null;
+ private Class<?> _type = null;
+ private ArrayList<Class<?>> _argTypes = null;
+ private ArrayList<Object> _argValues = null;
private boolean _isnull = false;
private boolean _isgroup = false;
@@ -749,11 +749,11 @@ public class JOCLContentHandler extends DefaultHandler {
/**
* @since 1.3
*/
- public ConstructorDetails(Class type, ConstructorDetails parent,
boolean isnull, boolean isgroup) {
+ public ConstructorDetails(Class<?> type, ConstructorDetails parent,
boolean isnull, boolean isgroup) {
_parent = parent;
_type = type;
- _argTypes = new ArrayList();
- _argValues = new ArrayList();
+ _argTypes = new ArrayList<Class<?>>();
+ _argValues = new ArrayList<Object>();
_isnull = isnull;
_isgroup = isgroup;
}
@@ -762,7 +762,7 @@ public class JOCLContentHandler extends DefaultHandler {
addArgument(value.getClass(),value);
}
- public void addArgument(Class type, Object val) {
+ public void addArgument(Class<?> type, Object val) {
if(_isnull) {
throw new NullPointerException("can't add arguments to null
instances");
}
@@ -770,7 +770,7 @@ public class JOCLContentHandler extends DefaultHandler {
_argValues.add(val);
}
- public Class getType() {
+ public Class<?> getType() {
return _type;
}
@@ -790,8 +790,8 @@ public class JOCLContentHandler extends DefaultHandler {
throw new IllegalStateException("implementation error:
unhandled _type:" + _type);
}
} else {
- Class k = getType();
- Class[] argtypes = (Class[])_argTypes.toArray(new Class[0]);
+ Class<?> k = getType();
+ Class<?>[] argtypes = _argTypes.toArray(new Class[0]);
Object[] argvals = _argValues.toArray();
return ConstructorUtil.invokeConstructor(k,argtypes,argvals);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]