private ParameterizedType findAncestor(Class< ? > start, Class<?> target) { if ( start == Object.class) return null; for ( Type t : start.getGenericInterfaces()) { if ( t instanceof ParameterizedType ) { if ( ((ParameterizedType) t).getRawType() == target) return (ParameterizedType) t; } } for ( Class<?> impls : start.getInterfaces()) { ParameterizedType ancestor = findAncestor(impls, target); if (ancestor != null) return ancestor; } return findAncestor(start.getSuperclass(), target); }
private ParameterizedType findAncestor(Class<?> start, Class<?> target) { if (start == null || start == Object.class) return null; for (Type t : start.getGenericInterfaces()) { if (t instanceof ParameterizedType) { if (((ParameterizedType) t).getRawType() == target) return (ParameterizedType) t; } } for (Class<?> impls : start.getInterfaces()) { ParameterizedType ancestor = findAncestor(impls, target); if (ancestor != null) return ancestor; } return findAncestor(start.getSuperclass(), target); }
private ParameterizedType findAncestor(Class< ? > start, Class<?> target) { if ( start == Object.class) return null; for ( Type t : start.getGenericInterfaces()) { if ( t instanceof ParameterizedType ) { if ( ((ParameterizedType) t).getRawType() == target) return (ParameterizedType) t; } } for ( Class<?> impls : start.getInterfaces()) { ParameterizedType ancestor = findAncestor(impls, target); if (ancestor != null) return ancestor; } return findAncestor(start.getSuperclass(), target); }
private ParameterizedType findAncestor(Class< ? > start, Class<?> target) { if ( start == null || start == Object.class) return null; for ( Type t : start.getGenericInterfaces()) { if ( t instanceof ParameterizedType ) { if ( ((ParameterizedType) t).getRawType() == target) return (ParameterizedType) t; } } for ( Class<?> impls : start.getInterfaces()) { ParameterizedType ancestor = findAncestor(impls, target); if (ancestor != null) return ancestor; } return findAncestor(start.getSuperclass(), target); }
private ParameterizedType findAncestor(Class< ? > start, Class<?> target) { if ( start == null || start == Object.class) return null; for ( Type t : start.getGenericInterfaces()) { if ( t instanceof ParameterizedType ) { if ( ((ParameterizedType) t).getRawType() == target) return (ParameterizedType) t; } } for ( Class<?> impls : start.getInterfaces()) { ParameterizedType ancestor = findAncestor(impls, target); if (ancestor != null) return ancestor; } return findAncestor(start.getSuperclass(), target); }
private ParameterizedType findAncestor(Class<?> start, Class<?> target) { if (start == null || start == Object.class) return null; for (Type t : start.getGenericInterfaces()) { if (t instanceof ParameterizedType) { if (((ParameterizedType) t).getRawType() == target) return (ParameterizedType) t; } } for (Class<?> impls : start.getInterfaces()) { ParameterizedType ancestor = findAncestor(impls, target); if (ancestor != null) return ancestor; } return findAncestor(start.getSuperclass(), target); }
private ParameterizedType findAncestor(Class< ? > start, Class<?> target) { if ( start == null || start == Object.class) return null; for ( Type t : start.getGenericInterfaces()) { if ( t instanceof ParameterizedType ) { if ( ((ParameterizedType) t).getRawType() == target) return (ParameterizedType) t; } } for ( Class<?> impls : start.getInterfaces()) { ParameterizedType ancestor = findAncestor(impls, target); if (ancestor != null) return ancestor; } return findAncestor(start.getSuperclass(), target); }
private ParameterizedType findAncestor(Class<?> start, Class<?> target) { if (start == null || start == Object.class) return null; for (Type t : start.getGenericInterfaces()) { if (t instanceof ParameterizedType) { if (((ParameterizedType) t).getRawType() == target) return (ParameterizedType) t; } } for (Class<?> impls : start.getInterfaces()) { ParameterizedType ancestor = findAncestor(impls, target); if (ancestor != null) return ancestor; } return findAncestor(start.getSuperclass(), target); }
private ParameterizedType findAncestor(Class< ? > start, Class<?> target) { if ( start == null || start == Object.class) return null; for ( Type t : start.getGenericInterfaces()) { if ( t instanceof ParameterizedType ) { if ( ((ParameterizedType) t).getRawType() == target) return (ParameterizedType) t; } } for ( Class<?> impls : start.getInterfaces()) { ParameterizedType ancestor = findAncestor(impls, target); if (ancestor != null) return ancestor; } return findAncestor(start.getSuperclass(), target); }
private ParameterizedType findAncestor(Class< ? > start, Class<?> target) { if ( start == null || start == Object.class) return null; for ( Type t : start.getGenericInterfaces()) { if ( t instanceof ParameterizedType ) { if ( ((ParameterizedType) t).getRawType() == target) return (ParameterizedType) t; } } for ( Class<?> impls : start.getInterfaces()) { ParameterizedType ancestor = findAncestor(impls, target); if (ancestor != null) return ancestor; } return findAncestor(start.getSuperclass(), target); }
MapHandler(Class< ? > rawClass, Type keyType, Type valueType) { if ( rawClass != Map.class) { ParameterizedType type = findAncestor(rawClass,Map.class); this.keyType = keyType == Object.class ? resolve(type.getActualTypeArguments()[0]) : keyType; this.valueType = valueType == Object.class ? resolve(type.getActualTypeArguments()[1]) : valueType; } else { this.keyType = keyType; this.valueType = valueType; } if (rawClass.isInterface()) { if (rawClass.isAssignableFrom(HashMap.class)) rawClass = HashMap.class; else if (rawClass.isAssignableFrom(TreeMap.class)) rawClass = TreeMap.class; else if (rawClass.isAssignableFrom(Hashtable.class)) rawClass = Hashtable.class; else if (rawClass.isAssignableFrom(LinkedHashMap.class)) rawClass = LinkedHashMap.class; else if (rawClass.isAssignableFrom(Dictionary.class)) rawClass = Hashtable.class; else throw new IllegalArgumentException("Unknown map interface: " + rawClass); } this.rawClass = rawClass; }
MapHandler(Class<?> rawClass, Type keyType, Type valueType) { if (rawClass != Map.class) { ParameterizedType type = findAncestor(rawClass, Map.class); this.keyType = keyType == Object.class ? resolve(type.getActualTypeArguments()[0]) : keyType; this.valueType = valueType == Object.class ? resolve(type.getActualTypeArguments()[1]) : valueType; } else { this.keyType = keyType; this.valueType = valueType; } if (rawClass.isInterface()) { if (rawClass.isAssignableFrom(LinkedHashMap.class)) rawClass = LinkedHashMap.class; else if (rawClass.isAssignableFrom(TreeMap.class)) rawClass = TreeMap.class; else if (rawClass.isAssignableFrom(Hashtable.class)) rawClass = Hashtable.class; else if (rawClass.isAssignableFrom(HashMap.class)) rawClass = HashMap.class; else if (rawClass.isAssignableFrom(Dictionary.class)) rawClass = Hashtable.class; else throw new IllegalArgumentException("Unknown map interface: " + rawClass); } this.rawClass = rawClass; }
MapHandler(Class<?> rawClass, Type keyType, Type valueType) { if (rawClass != Map.class) { ParameterizedType type = findAncestor(rawClass, Map.class); this.keyType = keyType == Object.class ? resolve(type.getActualTypeArguments()[0]) : keyType; this.valueType = valueType == Object.class ? resolve(type.getActualTypeArguments()[1]) : valueType; } else { this.keyType = keyType; this.valueType = valueType; } if (rawClass.isInterface()) { if (rawClass.isAssignableFrom(LinkedHashMap.class)) rawClass = LinkedHashMap.class; else if (rawClass.isAssignableFrom(TreeMap.class)) rawClass = TreeMap.class; else if (rawClass.isAssignableFrom(Hashtable.class)) rawClass = Hashtable.class; else if (rawClass.isAssignableFrom(HashMap.class)) rawClass = HashMap.class; else if (rawClass.isAssignableFrom(Dictionary.class)) rawClass = Hashtable.class; else throw new IllegalArgumentException("Unknown map interface: " + rawClass); } this.rawClass = rawClass; }
MapHandler(Class<?> rawClass, Type keyType, Type valueType) { if (rawClass != Map.class) { ParameterizedType type = findAncestor(rawClass, Map.class); this.keyType = keyType == Object.class ? resolve(type.getActualTypeArguments()[0]) : keyType; this.valueType = valueType == Object.class ? resolve(type.getActualTypeArguments()[1]) : valueType; } else { this.keyType = keyType; this.valueType = valueType; } if (rawClass.isInterface()) { if (rawClass.isAssignableFrom(LinkedHashMap.class)) rawClass = LinkedHashMap.class; else if (rawClass.isAssignableFrom(TreeMap.class)) rawClass = TreeMap.class; else if (rawClass.isAssignableFrom(Hashtable.class)) rawClass = Hashtable.class; else if (rawClass.isAssignableFrom(HashMap.class)) rawClass = HashMap.class; else if (rawClass.isAssignableFrom(Dictionary.class)) rawClass = Hashtable.class; else throw new IllegalArgumentException("Unknown map interface: " + rawClass); } this.rawClass = rawClass; }
MapHandler(Class< ? > rawClass, Type keyType, Type valueType) { if ( rawClass != Map.class) { ParameterizedType type = findAncestor(rawClass,Map.class); this.keyType = keyType == Object.class ? resolve(type.getActualTypeArguments()[0]) : keyType; this.valueType = valueType == Object.class ? resolve(type.getActualTypeArguments()[1]) : valueType; } else { this.keyType = keyType; this.valueType = valueType; } if (rawClass.isInterface()) { if (rawClass.isAssignableFrom(LinkedHashMap.class)) rawClass = LinkedHashMap.class; else if (rawClass.isAssignableFrom(TreeMap.class)) rawClass = TreeMap.class; else if (rawClass.isAssignableFrom(Hashtable.class)) rawClass = Hashtable.class; else if (rawClass.isAssignableFrom(HashMap.class)) rawClass = HashMap.class; else if (rawClass.isAssignableFrom(Dictionary.class)) rawClass = Hashtable.class; else throw new IllegalArgumentException("Unknown map interface: " + rawClass); } this.rawClass = rawClass; }
MapHandler(Class< ? > rawClass, Type keyType, Type valueType) { if ( rawClass != Map.class) { ParameterizedType type = findAncestor(rawClass,Map.class); this.keyType = keyType == Object.class ? resolve(type.getActualTypeArguments()[0]) : keyType; this.valueType = valueType == Object.class ? resolve(type.getActualTypeArguments()[1]) : valueType; } else { this.keyType = keyType; this.valueType = valueType; } if (rawClass.isInterface()) { if (rawClass.isAssignableFrom(LinkedHashMap.class)) rawClass = LinkedHashMap.class; else if (rawClass.isAssignableFrom(TreeMap.class)) rawClass = TreeMap.class; else if (rawClass.isAssignableFrom(Hashtable.class)) rawClass = Hashtable.class; else if (rawClass.isAssignableFrom(HashMap.class)) rawClass = HashMap.class; else if (rawClass.isAssignableFrom(Dictionary.class)) rawClass = Hashtable.class; else throw new IllegalArgumentException("Unknown map interface: " + rawClass); } this.rawClass = rawClass; }
MapHandler(Class< ? > rawClass, Type keyType, Type valueType) { if ( rawClass != Map.class) { ParameterizedType type = findAncestor(rawClass,Map.class); this.keyType = keyType == Object.class ? resolve(type.getActualTypeArguments()[0]) : keyType; this.valueType = valueType == Object.class ? resolve(type.getActualTypeArguments()[1]) : valueType; } else { this.keyType = keyType; this.valueType = valueType; } if (rawClass.isInterface()) { if (rawClass.isAssignableFrom(HashMap.class)) rawClass = HashMap.class; else if (rawClass.isAssignableFrom(TreeMap.class)) rawClass = TreeMap.class; else if (rawClass.isAssignableFrom(Hashtable.class)) rawClass = Hashtable.class; else if (rawClass.isAssignableFrom(LinkedHashMap.class)) rawClass = LinkedHashMap.class; else if (rawClass.isAssignableFrom(Dictionary.class)) rawClass = Hashtable.class; else throw new IllegalArgumentException("Unknown map interface: " + rawClass); } this.rawClass = rawClass; }
MapHandler(Class< ? > rawClass, Type keyType, Type valueType) { if ( rawClass != Map.class) { ParameterizedType type = findAncestor(rawClass,Map.class); this.keyType = keyType == Object.class ? resolve(type.getActualTypeArguments()[0]) : keyType; this.valueType = valueType == Object.class ? resolve(type.getActualTypeArguments()[1]) : valueType; } else { this.keyType = keyType; this.valueType = valueType; } if (rawClass.isInterface()) { if (rawClass.isAssignableFrom(LinkedHashMap.class)) rawClass = LinkedHashMap.class; else if (rawClass.isAssignableFrom(TreeMap.class)) rawClass = TreeMap.class; else if (rawClass.isAssignableFrom(Hashtable.class)) rawClass = Hashtable.class; else if (rawClass.isAssignableFrom(HashMap.class)) rawClass = HashMap.class; else if (rawClass.isAssignableFrom(Dictionary.class)) rawClass = Hashtable.class; else throw new IllegalArgumentException("Unknown map interface: " + rawClass); } this.rawClass = rawClass; }
MapHandler(Class< ? > rawClass, Type keyType, Type valueType) { if ( rawClass != Map.class) { ParameterizedType type = findAncestor(rawClass,Map.class); this.keyType = keyType == Object.class ? resolve(type.getActualTypeArguments()[0]) : keyType; this.valueType = valueType == Object.class ? resolve(type.getActualTypeArguments()[1]) : valueType; } else { this.keyType = keyType; this.valueType = valueType; } if (rawClass.isInterface()) { if (rawClass.isAssignableFrom(LinkedHashMap.class)) rawClass = LinkedHashMap.class; else if (rawClass.isAssignableFrom(TreeMap.class)) rawClass = TreeMap.class; else if (rawClass.isAssignableFrom(Hashtable.class)) rawClass = Hashtable.class; else if (rawClass.isAssignableFrom(HashMap.class)) rawClass = HashMap.class; else if (rawClass.isAssignableFrom(Dictionary.class)) rawClass = Hashtable.class; else throw new IllegalArgumentException("Unknown map interface: " + rawClass); } this.rawClass = rawClass; }
MapHandler(Class< ? > rawClass, Type keyType, Type valueType) { if ( rawClass != Map.class) { ParameterizedType type = findAncestor(rawClass,Map.class); this.keyType = keyType == Object.class ? resolve(type.getActualTypeArguments()[0]) : keyType; this.valueType = valueType == Object.class ? resolve(type.getActualTypeArguments()[1]) : valueType; } else { this.keyType = keyType; this.valueType = valueType; } if (rawClass.isInterface()) { if (rawClass.isAssignableFrom(LinkedHashMap.class)) rawClass = LinkedHashMap.class; else if (rawClass.isAssignableFrom(TreeMap.class)) rawClass = TreeMap.class; else if (rawClass.isAssignableFrom(Hashtable.class)) rawClass = Hashtable.class; else if (rawClass.isAssignableFrom(HashMap.class)) rawClass = HashMap.class; else if (rawClass.isAssignableFrom(Dictionary.class)) rawClass = Hashtable.class; else throw new IllegalArgumentException("Unknown map interface: " + rawClass); } this.rawClass = rawClass; }