@Override public OperationStats convert(ComplexDefinition definition, Type type) { List<OperationStats> list = converter.convert(definition, List.class); if (list.isEmpty()) throw new IllegalStateException(); if (list.size() == 1) return list.get(0); return new MultiOperationStats(list.toArray(new OperationStats[list.size()])); }
@Override public List convert(ComplexDefinition definition, Type type) { if (type instanceof Class<?>) { Class<?> clazz = (Class<?>) type; if (!Collection.class.isAssignableFrom(clazz)) throw new IllegalArgumentException(type.toString()); } else if (type instanceof ParameterizedType) { ParameterizedType ptype = (ParameterizedType) type; if (!Collection.class.isAssignableFrom((Class<?>) ptype.getRawType())) throw new IllegalArgumentException(type.toString()); } List list = new ArrayList(); for (ComplexDefinition.Entry entry : definition.getAttributes()) { list.add(instantiate(entry.name, entry.definition)); } return list; }
@Override public Collection<Class<?>> content() { return converter.content(); }