package no.nordicsemi.puckcentral.db; import android.content.Context; import com.radiusnetworks.ibeacon.IBeacon; import org.droidparts.persist.sql.EntityManager; import org.droidparts.persist.sql.stmt.Is; import org.droidparts.persist.sql.stmt.Select; import org.droidparts.persist.sql.stmt.Where; import java.util.ArrayList; import java.util.List; import java.util.UUID; import no.nordicsemi.puckcentral.models.Puck; public class PuckManager extends EntityManager<Puck> { public PuckManager(Context ctx) { super(Puck.class, ctx); } public Puck forIBeacon(IBeacon iBeacon) { if (iBeacon == null) { return null; } return readFirst(find(iBeacon.getProximityUuid(), iBeacon.getMajor(), iBeacon.getMinor())); } public Select<Puck> find(String UUID, int major, int minor) { Where query = new Where(DB.Column.PROXIMITY_UUID, Is.EQUAL, UUID) .and(DB.Column.MAJOR, Is.EQUAL, major) .and(DB.Column.MINOR, Is.EQUAL, minor); return select().where(query); } public List<Puck> withServiceUUID(UUID serviceUUID) { List<Puck> pucks = new ArrayList<>(); for (Puck puck : getAll()) { if (puck.getServiceUUIDs().contains(serviceUUID)) { pucks.add(puck); } } return pucks; } public Puck read(String UUID, int major, int minor) { return readFirst(find(UUID, major, minor)); } public ArrayList<Puck> getAll() { return readAll(select()); } }