Last active
May 22, 2018 18:55
-
-
Save ryansgot/d4af2cdb0068f4aa760bf9adb6aa88fc to your computer and use it in GitHub Desktop.
Forsure DB Quickstart Activity
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
I/forsuredb-example( 1832): SaveResult{exception: null; inserted: content://com.fsryan.example.forsuredb.content/employees/1; rowsAffected: 1} | |
I/forsuredb-example( 1832): SaveResult{exception: null; inserted: content://com.fsryan.example.forsuredb.content/employees/2; rowsAffected: 1} | |
I/forsuredb-example( 1832): Employee{uuid=c00399eb-7ac2-4d34-8d5e-2bc01846413d; firstName=FS; lastName=Ryan; _id=1; created=Tue May 22 17:29:50 EDT 2018; deleted=false; modified Tue May 22 17:29:50 EDT 2018} | |
I/forsuredb-example( 1832): SaveResult{exception: null; inserted: null; rowsAffected: 1} | |
I/forsuredb-example( 1832): Employee{uuid=c00399eb-7ac2-4d34-8d5e-2bc01846413d; firstName=First; lastName=Last; _id=1; created=Tue May 22 17:29:50 EDT 2018; deleted=false; modified Tue May 22 17:29:50 EDT 2018} | |
I/forsuredb-example( 1832): Employee{uuid=3746ee35-2212-43cf-9009-1b9bfb6a07b8; firstName=Some; lastName=Employee; _id=2; created=Tue May 22 17:29:50 EDT 2018; deleted=false; modified Tue May 22 17:29:50 EDT 2018} | |
I/forsuredb-example( 1832): SaveResult{exception: null; inserted: null; rowsAffected: 1} | |
I/forsuredb-example( 1832): Employee{uuid=c00399eb-7ac2-4d34-8d5e-2bc01846413d; firstName=First; lastName=Last; _id=1; created=Tue May 22 17:29:50 EDT 2018; deleted=false; modified Tue May 22 17:29:50 EDT 2018} | |
I/forsuredb-example( 1832): Employee{uuid=3746ee35-2212-43cf-9009-1b9bfb6a07b8; firstName=Some; lastName=Employee; _id=2; created=Tue May 22 17:29:50 EDT 2018; deleted=false; modified Tue May 22 17:29:50 EDT 2018} | |
I/forsuredb-example( 1832): Employee{uuid=null; firstName=Some New First Name; lastName=Some New Last Name; _id=3; created=Tue May 22 17:29:50 EDT 2018; deleted=false; modified Tue May 22 17:29:50 EDT 2018} | |
I/forsuredb-example( 1832): deleted: 1 | |
I/forsuredb-example( 1832): Employee{uuid=c00399eb-7ac2-4d34-8d5e-2bc01846413d; firstName=First; lastName=Last; _id=1; created=Tue May 22 17:29:50 EDT 2018; deleted=false; modified Tue May 22 17:29:50 EDT 2018} | |
I/forsuredb-example( 1832): Employee{uuid=null; firstName=Some New First Name; lastName=Some New Last Name; _id=3; created=Tue May 22 17:29:50 EDT 2018; deleted=false; modified Tue May 22 17:29:50 EDT 2018} | |
I/forsuredb-example( 1832): deleted: 2 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.fsryan.example.forsuredb | |
import android.net.Uri | |
import android.support.v7.app.AppCompatActivity | |
import android.os.Bundle | |
import android.util.Log | |
import com.fsryan.forsuredb.api.Retriever | |
import com.fsryan.forsuredb.api.SaveResult | |
import java.util.* | |
class QuickstartActivity : AppCompatActivity() { | |
// acquire the implmentation of EmployeesTable generated by Forsure DB | |
val api = ForSure.employeesTable().api | |
override fun onCreate(savedInstanceState: Bundle?) { | |
super.onCreate(savedInstanceState) | |
setContentView(R.layout.activity_main) | |
// create unique strings for uuid field for two records | |
val uuid1 = UUID.randomUUID().toString() | |
val uuid2 = UUID.randomUUID().toString() | |
// Insert a record | |
var saveResult = ForSure.employeesTable() | |
.set() | |
.firstName("FS") | |
.lastName("Ryan") | |
.uuid(uuid1) | |
.save() | |
logSaveResult(saveResult) | |
// Insert another record | |
saveResult = ForSure.employeesTable() | |
.set() | |
.firstName("Some") | |
.lastName("Employee") | |
.uuid(uuid2) | |
.save() | |
logSaveResult(saveResult) | |
// Retrieve first record by adding finding criteria | |
val retriever = ForSure.employeesTable() | |
.find().byUuid(uuid1) | |
.then() | |
.get() | |
logEmployeeRecordsAndClose(retriever) | |
// Update the first record--this is actually an upsert | |
// that resolves to an update because of a matching record | |
saveResult = ForSure.employeesTable() | |
.find().byFirstName("FS") | |
.and().byLastName("Ryan") | |
.then() | |
.set() | |
.firstName("First") | |
.lastName("Last") | |
.save() | |
logSaveResult(saveResult) | |
logEmployeeRecordsAndClose(ForSure.employeesTable().get()) | |
// Upsert--in this case, it will insert because the finding | |
// criteria does not match any records | |
saveResult = ForSure.employeesTable() | |
.find().byFirstName("Doesn't") | |
.and().byLastName("Exist") | |
.then() | |
.set() | |
.firstName("Some New First Name") | |
.lastName("Some New Last Name") | |
.save() | |
logSaveResult(saveResult) | |
logEmployeeRecordsAndClose(ForSure.employeesTable().get()) | |
var deleted = ForSure.employeesTable() | |
.find().byFirstName("Some") | |
.then() | |
.set() | |
.hardDelete() | |
Log.i("forsuredb-example", "deleted: $deleted") | |
logEmployeeRecordsAndClose(ForSure.employeesTable().get()) | |
deleted = ForSure.employeesTable().set().hardDelete() | |
Log.i("forsuredb-example", "deleted: $deleted") | |
} | |
private fun logSaveResult(sr: SaveResult<Uri>) { | |
var msg = "SaveResult{exception: ${sr.exception()}" | |
msg += "; inserted: ${sr.inserted()}" | |
msg += "; rowsAffected: ${sr.rowsAffected()}}" | |
Log.i("forsuredb-example", msg) | |
} | |
private fun logEmployeeRecordsAndClose(retriever: Retriever) { | |
if (retriever.moveToFirst()) { | |
do { // log employee record fields using generated api | |
var msg = "Employee{uuid=${api.uuid(retriever)}" | |
msg += "; firstName=${api.firstName(retriever)}" | |
msg += "; lastName=${api.lastName(retriever)}" | |
msg += "; _id=${api.id(retriever)}" | |
msg += "; created=${api.created(retriever)}" | |
msg += "; deleted=${api.deleted(retriever)}" | |
msg += "; modified=${api.modified(retriever)}}" | |
Log.i("forsuredb-example", msg) | |
} while(retriever.moveToNext()) | |
} | |
retriever.close() | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment