content: package alien4cloud.tosca.parser.impl.base;
  
  import java.util.Collection;
  
  import alien4cloud.tosca.parser.INodeParser;
  
  import com.google.common.collect.Lists;
  import org.springframework.beans.factory.config.ConfigurableBeanFactory;
  import org.springframework.context.annotation.Scope;
  import org.springframework.stereotype.Component;
  
  @Component
  @Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE)
  public class ListParser<T> extends CollectionParser<T> {
  
      /**
       * Constructor called by spring (see BaseParserFactory).
       * 
       * @param valueParser The parser to use to parse list values.
       * @param toscaType The expected type name to generate error messages.
       */
      public ListParser(INodeParser<T> valueParser, String toscaType) {
          super(valueParser, toscaType, null);
      }
  
      /**
       * Constructor called by spring (see BaseParserFactory).
       *
       * @param valueParser The parser to use to parse list values.
       * @param toscaType The expected type name to generate error messages.
       * @param keyPath In case the list is created from a map, optional value to inject the key into the value object.
       */
      public ListParser(INodeParser<T> valueParser, String toscaType, String keyPath) {
          super(valueParser, toscaType, keyPath);
      }
  
      @Override
      protected Collection<T> getCollectionInstance() {
          return Lists.newArrayList();
      }
  }