package com.lateensoft.pathfinder.toolkit.db.dao.table; import android.content.ContentValues; import android.content.Context; import com.google.common.collect.Lists; import com.lateensoft.pathfinder.toolkit.db.dao.OwnedObject; import com.lateensoft.pathfinder.toolkit.model.IdNamePair; import org.jetbrains.annotations.Nullable; import java.util.Hashtable; import java.util.List; public class PartyMemberNameDAO extends AbstractPartyMembershipDAO<IdNamePair> { private CharacterNameDAO characterDao; public PartyMemberNameDAO(Context context) { super(context); characterDao = new CharacterNameDAO(context); } @Override @Nullable protected String getBaseSelector() { return String.format("%s.%s=%s.%s", TABLE, CHARACTER_ID, CharacterModelDAO.TABLE, CharacterModelDAO.CHARACTER_ID); } @Override protected String[] getColumnsForQuery() { return getTable().union(characterDao.getTable(), CHARACTER_ID, CharacterModelDAO.CHARACTER_ID); } @Override protected List<String> getTablesForQuery() { return Lists.newArrayList(TABLE, CharacterModelDAO.TABLE); } @Override protected OwnedObject<Long, Long> getIdFromRowData(OwnedObject<Long, IdNamePair> rowData) { return OwnedObject.of(rowData.getOwnerId(), rowData.getObject().getId()); } @Override protected ContentValues getContentValues(OwnedObject<Long, IdNamePair> rowData) { ContentValues values = new ContentValues(); values.put(PARTY_ID, rowData.getOwnerId()); values.put(CHARACTER_ID, rowData.getObject().getId()); return values; } @Override protected IdNamePair buildFromHashTable(Hashtable<String, Object> hashTable) { long characterId = ((Long) hashTable.get(CHARACTER_ID)); String name = (String) hashTable.get(AbstractCharacterDAO.NAME); return new IdNamePair(characterId, name); } }