}
@SuppressWarnings("unchecked")
private List<DBFilesBean> updateFiles(Map<String, Object> files, long game_id, boolean update) throws IllegalArgumentException, IllegalAccessException, InstantiationException, SQLException {
List<DBFilesBean> result = null;
DataMapper mapper = new DataMapper();
if (files != null) {
result = new ArrayList<DBFilesBean>();
for(String key: files.keySet()) {
long file_id = Long.valueOf(key);
Map<String, Object> info = (Map<String, Object>)files.get(key);
DBFilesBean bean = DbAccess.filesAccess.getFileByGameIdAndFileId(game_id, file_id);
bean.setState((String) info.get("state"));
bean.setLinkType((String) info.get("type"));
if (update && bean.getGameFileId() != null && ("insert".equals(bean.getState()) || "none".equals(bean.getState()))) {
DbAccess.gameFilesAccess.updateByPrimaryKey(mapper.map(bean, DBGameFilesBean.class), bean.getGameFileId());
} else if (update && bean.getGameFileId() != null && "delete".equals(bean.getState())) {
DbAccess.gameFilesAccess.deleteByPrimaryKey(bean.getGameFileId());
} else if (update && bean.getGameFileId() == null && "insert".equals(bean.getState())) {
DBGameFilesBean newBean = new DBGameFilesBean().
setFileId(file_id).setGameId(game_id).setLinkType(bean.getLinkType()).setIsActive(1);