}
}
private synchronized Template lookupGenericImpl(final ParameterizedType targetType) {
Type rawType = targetType.getRawType();
GenericTemplate tmpl = genericCache.get(rawType);
if (tmpl == null) {
return null;
}
Type[] types = targetType.getActualTypeArguments();
Template[] tmpls = new Template[types.length];
for (int i=0; i < types.length; ++i) {
tmpls[i] = lookup(types[i]);
}
return tmpl.build(tmpls);
}