package xapi.collect.impl; import xapi.collect.X_Collect; import xapi.collect.api.StringTo; public class StringToDeepMap <X> extends StringToAbstract<StringTo<X>>{ private static final long serialVersionUID = 3345558328628203700L; private final Class<? extends X> componentClass; public StringToDeepMap(final Class<? extends X> componentClass) { super(Class.class.cast(StringTo.class)); this.componentClass = componentClass; } @Override public final StringTo<X> get(final String key) { StringTo<X> list = super.get(key); if (list == null) { list = newMap(); put(key, list); } return list; } @SuppressWarnings("unchecked") protected StringTo<X> newMap() { return X_Collect.newStringMap(Class.class.cast(componentClass)); } }