Skip to content

Instantly share code, notes, and snippets.

@jnorthrup
Created May 25, 2012 01:37
Show Gist options
  • Save jnorthrup/2785285 to your computer and use it in GitHub Desktop.
Save jnorthrup/2785285 to your computer and use it in GitHub Desktop.
metamodel declarative driver
public enum CouchMetaDriver implements AsioVisitor {
@DbKeys({db, docId})
createDb,
@DbKeys({db, docId}) @DbInputUnit(String.class)
createDoc,
@DbResultUnit(String.class) @DbKeys({db, docId})
getDoc,
@DbResultUnit(String.class) @DbKeys({db, docId})
getRevision,
@DbKeys({db, docId, rev})
updateDoc,
@DbKeys({db, designDocId})
createNewDesignDoc,
@DbResultUnit(String.class) @DbKeys({db, designDocId})
getDesignDoc,
@DbKeys({db, designDocId})
updateDesignDoc,
@DbResultUnit(CouchResultSet.class) @DbKeys({db, view})
getView,
@DbKeys({opaque})sendJson,
@DbKeys({opaque}) @DbResultUnit(Iterator.class)
getAsyncIterator,
@DbResultUnit(Rfc822HeaderState.class)
@DbKeys({opaque, mimetype, blob})
sendBlob;
public
static void main(String... args) {...
System.out.println(s);
}
AsioVisitor delegate = new Impl();
@Override
public void onRead(SelectionKey key) throws Exception {
delegate.onRead(key);
}
@Override
public void onConnect(SelectionKey key) throws Exception {
delegate.onConnect(key);
}
@Override
public void onWrite(SelectionKey key) throws Exception {
delegate.onWrite(key);
}
@Override
public void onAccept(SelectionKey key) throws Exception {
delegate.onAccept(key);
}
}
>>> raw
package rxf.server;public interface CouchDriver{rxf.server.CouchTx createDb( java.lang.String db, java.lang.String docId );
rxf.server.CouchTx createDoc( java.lang.String db, java.lang.String docId );
java.lang.String getDoc( java.lang.String db, java.lang.String docId );
java.lang.String getRevision( java.lang.String db, java.lang.String docId );
rxf.server.CouchTx updateDoc( java.lang.String db, java.lang.String docId, java.lang.String rev );
rxf.server.CouchTx createNewDesignDoc( java.lang.String db, java.lang.String designDocId );
java.lang.String getDesignDoc( java.lang.String db, java.lang.String designDocId );
rxf.server.CouchTx updateDesignDoc( java.lang.String db, java.lang.String designDocId );
rxf.server.CouchResultSet getView( java.lang.String db, java.lang.String view );
rxf.server.CouchTx sendJson( java.lang.String opaque );
java.util.Iterator getAsyncIterator( java.lang.String opaque );
rxf.server.Rfc822HeaderState sendBlob( java.lang.String opaque, one.xio.MimeType mimetype, java.nio.ByteBuffer blob );
}
>>> cooked
package rxf.server;
import java.nio.ByteBuffer;
import java.util.Iterator;
import one.xio.MimeType;
public interface CouchDriver {
CouchTx createDb(String db, String docId);
CouchTx createDoc(String db, String docId);
String getDoc(String db, String docId);
String getRevision(String db, String docId);
CouchTx updateDoc(String db, String docId, String rev);
CouchTx createNewDesignDoc(String db, String designDocId);
String getDesignDoc(String db, String designDocId);
CouchTx updateDesignDoc(String db, String designDocId);
CouchResultSet getView(String db, String view);
CouchTx sendJson(String opaque);
Iterator getAsyncIterator(String opaque);
Rfc822HeaderState sendBlob(String opaque, MimeType mimetype, ByteBuffer blob);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment