Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
/* Copyright (c) The m-m-m Team, Licensed under the Apache License, Version 2.0
* http://www.apache.org/licenses/LICENSE-2.0 */package net.sf.mmm.util.value.impl;
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import javax.inject.Inject;
import javax.inject.Named;
import javax.inject.Singleton;
import net.sf.mmm.util.lang.api.StringTokenizer;
import net.sf.mmm.util.reflect.api.CollectionReflectionUtil;
import net.sf.mmm.util.reflect.api.GenericType;
import net.sf.mmm.util.reflect.base.CollectionReflectionUtilImpl;
import net.sf.mmm.util.value.base.AbstractRecursiveValueConverter;
/**
* This is the abstract base-implementation of a {@link net.sf.mmm.util.value.api.ValueConverter} that converts an
* {@link Object} to a container type. A container type is an array, {@link java.util.Collection} or
* {@link java.util.Map}. It supports objects given as {@link CharSequence} (e.g. {@link String}), {@link Collection},
* or array. If a value is given as {@link CharSequence} it will be parsed as comma-separated values. An individual
* value can be escaped by enclosing it with "<{[" and "]}>" so it can itself contain the separator character.
* Here are some examples:
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
value
{@link #getTargetType() target-type}
result
"123"
List<Integer>
{123}
"1, 2,3"
int[]
{1,2,3}
"a, <{[b,c,d]}>,e"
List<List<Character>>
{{'a'},{'b','c','d'},{'e'}}
"42=true,84=false"
Map<Integer, Boolean>
{42->true, 84->false}
*
* @param is the generic type of the container.
*
* @author Joerg Hohwiller (hohwille at users.sourceforge.net)
* @since 2.0.0
*/@Singleton@Named@SuppressWarnings({ "rawtypes" })
publicabstractclassAbstractValueConverterToContainerextendsAbstractRecursiveValueConverter