package com.airlock.iam.common.infrastructure.mapper;

import java.util.List;
import ma.glasnost.orika.CustomConverter;
import ma.glasnost.orika.MappingContext;
import ma.glasnost.orika.metadata.Type;

public final class ListToObjectConverter extends CustomConverter<List<?>, Object> {
   public Object convert(List<?> source, Type<?> destinationType, MappingContext mappingContext) {
      return source.stream().map(e -> this.mapperFacade.map(e, Object.class)).toArray();
   }

   public boolean canConvert(Type<?> sourceType, Type<?> destinationType) {
      return List.class.isAssignableFrom(sourceType.getRawType()) && destinationType.getRawType().equals(Object.class);
   }
}
