@SuppressWarnings("unchecked") <O, R> R convert(O input, Class<R> type) { Class<O> inputType = (Class<O>) input.getClass(); if (inputType == type) { return (R) input; } ETransformer<O, R> transformer = transformerManager.getTransformerSafe(inputType, type); return transformer.from(input); }
@SuppressWarnings("unchecked") <O, R> List<R> convert(Iterable<O> inputs, Class<R> type) { Iterator<O> iterator = inputs.iterator(); if (!iterator.hasNext()) { return Collections.emptyList(); } List<R> results = new ArrayList<R>(); ETransformer<O, R> transformer = null; for (O t : inputs) { if (transformer == null) { Class<O> inputType = (Class<O>) t.getClass(); transformer = transformerManager.getTransformerSafe(inputType, type); } results.add(transformer.from(t)); } return results; }