package converter;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
public class ReplaceWithEmptyCollectionInDestination {
public boolean canConvert(Context rawContext) {
return Collection.class.isAssignableFrom(rawContext.source.declaredType);
}
public Object convert(Context rawContext) {
Class<?> destinationFieldType = rawContext.destination.declaredType;
if (List.class.isAssignableFrom(destinationFieldType)) {
return new ArrayList();
}
if (Set.class.isAssignableFrom(destinationFieldType)) {
return new HashSet();
}
if (Map.class.isAssignableFrom(destinationFieldType)) {
return new HashSet();
}
throw new RuntimeException("uncovered collection type");
}
}