package comeon.ui.media.metadata;
import javax.swing.table.TableModel;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
public final class OtherMetadataTable extends AbstractMetadataTable<Map<String, Object>> {
private static final long serialVersionUID = 1L;
public OtherMetadataTable(final String title, final Map<String, Object> content) {
super(title, content);
}
@Override
protected TableModel getTableModel(final Map<String, Object> content) {
return new OtherMetadataTableModel(content);
}
private static final class OtherMetadataTableModel extends SimpleMetadataTableModel<Map<String, Object>> {
private static final long serialVersionUID = 1L;
public OtherMetadataTableModel(final Map<String, Object> content) {
super(content);
}
@Override
protected List<Entry> getValues(final Map<String, Object> content) {
final List<Entry> values = new ArrayList<>(content.size());
for (final Map.Entry<String, Object> entry : content.entrySet()) {
final String value;
if (entry.getValue() == null) {
value = "";
} else if (entry.getValue().getClass().isArray()) {
value = Arrays.toString((Object[]) entry.getValue());
} else {
value = String.valueOf(entry.getValue());
}
values.add(new Entry(entry.getKey(), value));
}
return values;
}
}
}