public List<Class<?>> getMapParamTypes() { if (!isMap) { throw new UnsupportedOperationException("Field [" + field + "] is not a map."); } List<Class<?>> p = getParameterizedType(field); if (p.size() == 0) { throw new UnsupportedOperationException("Map of field [" + field + "] does not have parameterized arguments, which is not allowed."); } return p; }
public Class<?> getType() { if (!isCollection) { return field.getType(); } List<Class<?>> p = getParameterizedType(field); if (p.size() == 0) { throw new UnsupportedOperationException("Collection of field [" + field + "] does not have parameterized arguments, which is not allowed."); } return p.get(0); }
public SourceTargetPair(Converter converter) { List<Class<?>> types = getParameterizedType(converter.getClass(), Converter.class); if (types.size() < 2) { throw new IllegalArgumentException( "Unable to the determine generic source and target type " + "for converter. Please declare these generic types."); } this.source = types.get(0); this.target = types.get(1); this.converter = converter; }
public boolean isEnum() { if (!isCollection) { return field.getType().isEnum(); } List<Class<?>> p = getParameterizedType(field); if (p.size() == 0) { throw new UnsupportedOperationException("Collection of field [" + field + "] does not have parameterized arguments, which is not allowed."); } return p.get(0).isEnum(); }
public String getTypeString() { StringBuffer sb = new StringBuffer(); sb.append(field.getType().getCanonicalName()); List<Class<?>> argument = getParameterizedType(field); if (argument.size() == 0) { return sb.toString(); } sb.append("<"); for (int i = 0; i < argument.size(); i++) { sb.append(argument.get(i).getCanonicalName()); if ((i + 1) != argument.size()) { sb.append(", "); } } sb.append(">"); return sb.toString(); }