### Question:
EntityTableModel extends AbstractTableModel { @Override public Class<?> getColumnClass(int columnIndex) { if (d_props.get(columnIndex).equals("name")) { return d_entityType; } try { Class<?> propertyType = BeanUtils.getPropertyDescriptor(d_entityType, d_props.get(columnIndex)).getPropertyType(); return EntityUtil.getConcreteTypeOrEntity(propertyType); } catch (IntrospectionException e) { System.err.println(e); return Object.class; } } EntityTableModel(Class<? extends Entity> entityType, ObservableList<? extends Entity> entities, List<String> properties, PresentationModelFactory pmf); int getColumnCount(); int getRowCount(); Object getValueAt(int row, int column); @Override String getColumnName(int columnIndex); @Override Class<?> getColumnClass(int columnIndex);  }### Answer:
@Test public void testGetColumnClass() { assertEquals(Drug.class, d_tableModel.getColumnClass(0)); EntityTableModel differentTableModel = new EntityTableModel(Study.class, d_domain.getStudies(), Arrays.asList(Study.PROPERTY_ARMS, Study.PROPERTY_INDICATION), d_pmf); assertEquals(Indication.class, differentTableModel.getColumnClass(1)); assertEquals(Object.class, differentTableModel.getColumnClass(0)); EntityTableModel interfaceTableModel = new EntityTableModel(Endpoint.class, d_domain.getStudies(), Arrays.asList(Endpoint.PROPERTY_VARIABLE_TYPE), d_pmf); assertEquals(Entity.class, interfaceTableModel.getColumnClass(0)); }