/* * Copyright 2013 cruxframework.org. * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of * the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations under * the License. */ package org.cruxframework.crux.core.client.db.indexeddb; import org.cruxframework.crux.core.client.db.indexeddb.events.IDBAbortEvent; import org.cruxframework.crux.core.client.db.indexeddb.events.IDBCompleteEvent; /** * @author Thiago da Rosa de Bustamante * */ public class IDBTransaction extends IDBClass { protected IDBTransaction() {} public static enum IDBTransactionMode {readonly, readwrite, versionchange} public final native IDBDatabase getDb() /*-{ return this.db; }-*/; public final native IDBObjectStore getObjectStore(String name) /*-{ return this.objectStore(name); }-*/; public final IDBTransactionMode getMode() { return IDBTransactionMode.valueOf(getModeNative()); } private native String getModeNative() /*-{ return this.mode; }-*/; public final native void abort() /*-{ this.abort(); }-*/; public final native void onAbort(IDBAbortEvent.Handler handler) /*-{ this.onabort = function(evt) { handler.@org.cruxframework.crux.core.client.db.indexeddb.events.IDBAbortEvent.Handler::onAbort(Lorg/cruxframework/crux/core/client/db/indexeddb/events/IDBAbortEvent;)(evt); }; }-*/; public final native void onComplete(IDBCompleteEvent.Handler handler) /*-{ this.oncomplete = function(evt) { handler.@org.cruxframework.crux.core.client.db.indexeddb.events.IDBCompleteEvent.Handler::onComplete(Lorg/cruxframework/crux/core/client/db/indexeddb/events/IDBCompleteEvent;)(evt); }; }-*/; }