@SuppressWarnings("unchecked")
    public Translator<V> getTranslatedValue(Object src, Locale loc, Translator<?> curr) {
        if( curr != null ) {
            Map<Locale,Object> map = (Map<Locale, Object>)curr.toMap();
            Object ob = getValue(src);
            
            map.put(loc, ob);
            return new Translator(map);
        }
        else {
            return new Translator<V>(loc, getValue(src));
        }
    }
@ SuppressWarnings ( "unchecked" ) public Translator < V > getTranslatedValue ( Object src , Locale loc , Translator < ? > curr ) { if ( curr != null ) { Map < Locale , Object > map = ( Map < Locale , Object > ) curr . toMap ( ) ; Object ob = getValue ( src ) ; map . put ( loc , ob ) ; return new Translator ( map ) ; } else { return new Translator < V > ( loc , getValue ( src ) ) ; } }
Provides a {@link Translator} instance for the requested value. This method is
generally called to turn an arbitrary object into a multi-lingual instance of
of the variable. Basically, when the system is trying to convert arbitrary
data&mdash;such as user input or values from a persistence engine&mdash;into
proper values for this type, it will call either this method or {@link #getValue(Object)}.
Which method is called is dependent on whether this data type is multi-lingual.
If the data type is multi-lingual, this method is called. This method will, in turn,
call {@link #getValue(Object)} and wrap it in a {@link Translator}.
@param src the raw data to be converted
@param loc the locale associated with this value
@param curr any current values for other languages
@return a combined multi-lingual value