Skip to content

Instantly share code, notes, and snippets.

View ryansgot's full-sized avatar

Ryan ryansgot

  • Fukuoka, Japan
  • 10:20 (UTC +09:00)
View GitHub Profile
@ryansgot
ryansgot / App_contentprovider.kt
Last active June 8, 2018 03:56
ForSureDB Example App.kt (contentprovider)
import android.app.Application
import com.fsryan.forsuredb.FSDBHelper
import com.fsryan.forsuredb.ForSureAndroidInfoFactory
import com.fsryan.forsuredb.gsonserialization.FSDbInfoGsonSerializer
import com.fsryan.forsuredb.api.FSTableCreator
class App : Application() {
override fun onCreate() {
super.onCreate()
@ryansgot
ryansgot / EmployeesTable.java
Created May 21, 2018 16:40
Initial Employees Table
package com.fsryan.example.forsuredb.data.db.tables;
import com.fsryan.forsuredb.annotations.FSColumn;
import com.fsryan.forsuredb.annotations.FSTable;
import com.fsryan.forsuredb.annotations.Unique;
import com.fsryan.forsuredb.api.FSGetApi;
import com.fsryan.forsuredb.api.Retriever;
@FSTable("employees")
public interface EmployeesTable extends FSGetApi {
@ryansgot
ryansgot / dbmigrate_output_sample.txt
Created May 21, 2018 17:25
Log of dbMigrate output
w: Note: [DiffGenerator] analyzing diff: targetContext.allTables().size() = 1
w: Note: [MigrationGenerator] Number of migrations in set = 4
w: Note: [ResourceCreator] creating resource at location: CLASS_OUTPUT
w: Note: [MigrationGenerator] creating source file: /path/to/app/build/tmp/kapt3/classes/debug/com/fsryan/example/forsuredb/1526923325850.migration
> Task :app:dbMigrate
I/[forsuredbplugin.dbMigrate]: creating /path/to/app/src/main/assets to store migration files
I/[forsuredbplugin.dbMigrate]: copying migration file /path/to/app/build/tmp/kapt3/classes/debug/com/fsryan/example/forsuredb/1526923325850.migration to /path/to/app/src/main/assets/1526923325850.migration.json
@ryansgot
ryansgot / quickstart_insertion_query.java
Last active May 21, 2018 18:24
Quickstart Insertion Query
// java version
String uuid1 = UUID.randomUUID().toString();
// the below assumes use of forsuredbandroid-contentprovider
// as the platform integration library. SaveResult would be
// parameterized with DirectLocator if using
// forsuredbandroid-directdb or forsuredbjdbc
SaveResult<Uri> saveResult = ForSure.employeesTable()
.set()
.firstName("FS")
@ryansgot
ryansgot / quickstart_retrieval_query.java
Last active May 22, 2018 17:52
Quickstart Retreival Query
// java version
EmployeesTable api = ForSure.employeesTable().getApi();
Retriever retriever = ForSure.employeesTable.get();
if (retriever.moveToFirst()) {
do { // log employee record fields using generated api
String msg = "Employee{uuid=" + api.uuid(retriever);
msg += "; first_name=" + api.firstName(retriever);
msg += "; last_name=" + api.lastName(retriever);
msg += "; _id=" + api.id(retriever);
@ryansgot
ryansgot / quickstart_upsert_query.java
Created May 22, 2018 18:02
Quickstart Upsert Query
// java version
// supposing there is at least one record with first_name="FS"
// and last_name="Ryan", this code will perform an update to
// all matching records. Otherwise, it will insert. This is
// called "upsert."
// the below assumes use of forsuredbandroid-contentprovider
// as the platform integration library. SaveResult would be
// parameterized with DirectLocator if using
// forsuredbandroid-directdb or forsuredbjdbc
@ryansgot
ryansgot / quickstart_deletion_query.java
Last active May 22, 2018 18:26
Quickstart Deletion Query
// java version
int deleted = ForSure.employeesTable()
.find().byFirstName("Some")
.then()
.set()
.hardDelete();
Log.i("forsuredb-example", "Deleted " + deleted + " records")
@ryansgot
ryansgot / quickstart_soft_deletion_query.java
Created May 22, 2018 18:21
Quickstart Soft Deletion Query
// java version
// the below assumes use of forsuredbandroid-contentprovider
// as the platform integration library. SaveResult would be
// parameterized with DirectLocator if using
// forsuredbandroid-directdb or forsuredbjdbc
SaveResult<Uri> saveResult = ForSure.employeesTable()
.find().byFirstName("Some")
.then()
.set()
@ryansgot
ryansgot / quickstart_acitivty_logged_output.txt
Last active May 22, 2018 18:55
Forsure DB Quickstart Activity
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-exam
@ryansgot
ryansgot / CRUD.kt
Last active June 8, 2018 01:40
ForSure DB CRUD For the Impatient (Kotlin)
val uuid = UUID.randomUUID().toString()
// create (upsert)
ForSure.employeesTable()
.set().firstName("Some").lastName("Name").uuid(uuid)
.save()
//retrieve
val api = ForSure.employeesTable().api
val retriever = ForSure.employeesTable().get()
if (retriever.moveToFirst()) {