public final StructValue exportCustomValue( Object value )
{
Class<?> clss = value.getClass();
Type type = getCustomStructType( clss );
if (type == null && clss == StructValue.class)
{
StructValue struct = (StructValue) value;
type = struct.type();
}
if (type == null)
{
if (Throwable.class.isAssignableFrom( clss ))
type = _mt__Etch_RuntimeException;
else if (List.class.isAssignableFrom( clss ))
type = _mt__Etch_List;
else if (Map.class.isAssignableFrom( clss ))
type = _mt__Etch_Map;
else if (Set.class.isAssignableFrom( clss ))
type = _mt__Etch_Set;
else
return null;
}
ImportExportHelper helper = type.getImportExportHelper();
if (helper == null)
return null;
return helper.exportValue( this, value );