@@ -0,0 +1,930 @@
+package com.amplify.hiccup.service;%0A%0Aimport android.content.ContentValues;%0Aimport android.database.Cursor;%0Aimport android.net.Uri;%0A%0Apublic abstract class AbstractController%3CR%3E implements Controller %7B%0A%0A    private final ContentAdapter contentAdapter;%0A    private final Class%3CR%3E modelClass;%0A%0A    public AbstractController(ContentAdapter contentAdapter, Class%3CR%3E modelClass) %7B%0A        this.contentAdapter = contentAdapter;%0A        this.modelClass = modelClass;%0A    %7D%0A%0A    @Override%0A    public final Cursor get(Uri uri) %7B%0A        Iterable%3CR%3E models = handleGet(uri);%0A        return contentAdapter.toCursor(models);%0A    %7D%0A%0A    @Override%0A    public final Uri post(Uri uri, ContentValues contentValues) %7B%0A        R model = (R) contentAdapter.toModel(contentValues, modelClass);%0A        return handlePost(uri, model);%0A    %7D%0A%0A    protected abstract Iterable%3CR%3E handleGet(Uri uri);%0A    protected abstract Uri handlePost(Uri uri, R model);%0A%7D

Create AbstractController to help handle converting requests/responses to/from POJOs