// Path: HackPackage/src/main/java/Hack/Controller/Profiler.java
// public interface Profiler {
// 
//     void reset();
// 
//     String[] getTabNames();
// 
//     String[] getTableHeaders(int tab);
// 
//     Map<String, AtomicInteger> getData(int tab);
// 
//     boolean isEnabled();
// 
//     void setEnabled(boolean enabled);
// }


import Hack.Controller.Profiler;
import javax.swing.*;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.TableModel;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;
import static java.util.Map.Entry;
            public int getRowCount() {
                return data.size();
            }

            @Override
            public int getColumnCount() {
                return 2;
            }

            @Override
            public Object getValueAt(int rowIndex, int columnIndex) {
                final Entry<String, AtomicInteger> entry = data.get(rowIndex);
                switch (columnIndex) {
                    case 0:
                        return entry.getKey();
                    case 1:
                        return entry.getValue().get();
                    default:
                        throw new IllegalArgumentException();
                }
            }

            @Override
            public String getColumnName(int column) {
                return headers[column];
            }

            @Override
            public Class<?> getColumnClass(int columnIndex) {
                switch (columnIndex) {
// Path: HackPackage/src/main/java/Hack/Controller/Profiler.java
// public interface Profiler {
// 
//     void reset();
// 
//     String[] getTabNames();
// 
//     String[] getTableHeaders(int tab);
// 
//     Map<String, AtomicInteger> getData(int tab);
// 
//     boolean isEnabled();
// 
//     void setEnabled(boolean enabled);
// }


// Path: HackGUIPackage/src/main/java/HackGUI/ProfilerWindow.java
import Hack.Controller.Profiler;
import javax.swing.*;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.TableModel;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;
import static java.util.Map.Entry;

            public int getRowCount() {
                return data.size();
            }

            @Override
            public int getColumnCount() {
                return 2;
            }

            @Override
            public Object getValueAt(int rowIndex, int columnIndex) {
                final Entry<String, AtomicInteger> entry = data.get(rowIndex);
                switch (columnIndex) {
                    case 0:
                        return entry.getKey();
                    case 1:
                        return entry.getValue().get();
                    default:
                        throw new IllegalArgumentException();
                }
            }

            @Override
            public String getColumnName(int column) {
                return headers[column];
            }

            @Override
            public Class<?> getColumnClass(int columnIndex) {
                switch (columnIndex) {
                    case 0: