@ShortName("HazelcastMapStore")
@Events(values={"Load(Key As Object) As Object",
"LoadAll(Keys As List) As Map",
"LoadAllKeys() As List",
"Delete(Key As Object)",
"DeleteAll(Keys As List)",
"Store(Key As Object, Value As Object)",
"StoreAll(KeyValue As Map)"})
public class MapStoreWrapper implements MapStore<Object, Object>, CheckForReinitialize {
private String eventName;
private BA ba;
public void Initialize(BA ba, String EventName) {
this.ba = ba;
this.eventName = EventName.toLowerCase(BA.cul);
}
@Hide
public synchronized Object load(Object key) {
return ba.raiseEvent(this, eventName + "_load", new Object[] {key});
}
@Hide
public synchronized Map<Object, Object> loadAll(Collection<Object> keys) {
List l1 = new List();
l1.setObject(new ArrayList<Object>(keys));
Object r = ba.raiseEvent(this, eventName + "_loadall", new Object[] {l1});
if (r == null) {
return null;
} else {
anywheresoftware.b4a.objects.collections.Map m1 = (anywheresoftware.b4a.objects.collections.Map) r;
if (m1.IsInitialized()) {
return m1.getObject();
} else {
return null;
}
}
}
@Hide
public synchronized Iterable<Object> loadAllKeys() {
Object r = ba.raiseEvent(this, eventName + "_loadallkeys", new Object[] {});
if (r == null) {
return null;
} else {
List l1 = (List) r;
if (l1.IsInitialized()) {
return l1.getObject();
} else {
return null;
}
}
}
@Hide
public synchronized void delete(Object key) {
ba.raiseEvent(this, eventName + "_delete", new Object[] {key});
}
@Hide
public synchronized void deleteAll(Collection<Object> keys) {
List l1 = new List();
l1.setObject(new ArrayList<Object>(keys));
ba.raiseEvent(this, eventName + "_deleteall", new Object[] {l1});
}
@Hide
public synchronized void store(Object key, Object value) {
ba.raiseEvent(this, eventName + "_store", new Object[] {key, value});
}
@Hide
public synchronized void storeAll(Map<Object, Object> map) {
anywheresoftware.b4a.objects.collections.Map m1 = new anywheresoftware.b4a.objects.collections.Map();
m1.Initialize();
m1.getObject().putAll(map);
ba.raiseEvent(this, eventName + "_store", new Object[] {m1});
}
@Override
public boolean IsInitialized() {
return (this.ba != null);
}
}