public final class Morphium extends Object
| Constructor and Description |
|---|
Morphium(MorphiumConfig cfg)
init the MongoDbLayer.
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
accessDenied(Class<?> cls,
Permission p) |
boolean |
accessDenied(Object r,
Permission p) |
void |
addListener(MorphiumStorageListener lst) |
void |
addProfilingListener(ProfilingListener l) |
void |
addShutdownListener(ShutdownListener l) |
<T> void |
addToCache(String k,
Class<?> type,
List<T> ret)
adds some list of objects to the cache manually...
|
<T,R> List<R> |
aggregate(Aggregator<T,R> a) |
void |
callLifecycleMethod(Class<? extends Annotation> type,
Object on) |
boolean |
checkAccess(String domain,
Permission p) |
void |
clearCachefor(Class<?> cls)
Erase cache entries for the given type. is being called after every store
depending on cache settings!
|
void |
clearCacheIfNecessary(Class cls) |
void |
clearCollection(Class<?> cls)
issues a delete command - no lifecycle methods calles, no drop, keeps all indexec this way
|
void |
clearCollectionOneByOne(Class<?> cls)
clears every single object in collection - reads ALL objects to do so
this way Lifecycle methods can be called!
|
Hashtable<Class<?>,Hashtable<String,CacheElement>> |
cloneCache() |
Hashtable<Class<?>,Hashtable<org.bson.types.ObjectId,Object>> |
cloneIdCache() |
void |
close() |
<T,R> Aggregator<T,R> |
createAggregator(Class<? extends T> type,
Class<? extends R> resultType) |
String |
createCamelCase(String n) |
<T> T |
createLazyLoadedEntity(Class<? extends T> cls,
org.bson.types.ObjectId id) |
<T> MongoField<T> |
createMongoField() |
<T> T |
createPartiallyUpdateableEntity(T o)
create a proxy object, implementing the ParitallyUpdateable Interface
these objects will be updated in mongo by only changing altered fields
Attention: the field name if determined by the setter name for now.
|
<T> Query<T> |
createQueryFor(Class<? extends T> type) |
void |
dec(Object toDec,
String field,
int amount)
decreasing a value of a given object
calles
inc(toDec,field,-amount); |
void |
dec(Query<?> query,
Enum field,
int amount) |
void |
dec(Query<?> query,
Enum field,
int amount,
boolean insertIfNotExist,
boolean multiple) |
void |
dec(Query<?> query,
String field,
int amount) |
void |
dec(Query<?> query,
String field,
int amount,
boolean insertIfNotExist,
boolean multiple) |
void |
delete(Object o)
deletes a single object from morphium backend.
|
void |
delete(Query o) |
List<Object> |
distinct(Enum key,
Class c) |
List<Object> |
distinct(Enum key,
Query q)
returns a distinct list of values of the given collection
Attention: these values are not unmarshalled, you might get MongoDBObjects
|
List<Object> |
distinct(String key,
Class cls) |
List<Object> |
distinct(String key,
Query q)
returns a distinct list of values of the given collection
Attention: these values are not unmarshalled, you might get MongoDBObjects
|
void |
dropCollection(Class<?> cls) |
void |
ensureIndex(Class<?> cls,
Enum... fldStr) |
void |
ensureIndex(Class<?> cls,
Map<String,Object> index) |
void |
ensureIndex(Class<?> cls,
String... fldStr)
ensureIndex(CachedObject.class,"counter","-value");
ensureIndex(CachedObject.class,"counter:2d","-value);
Similar to sorting
|
void |
ensureIndicesFor(Class type)
can be called for autmatic index ensurance.
|
<T> List<T> |
find(Query<T> q) |
<T> List<T> |
findByField(Class<? extends T> cls,
Enum fld,
Object val) |
<T> List<T> |
findByField(Class<? extends T> cls,
String fld,
Object val) |
<T> T |
findById(Class<? extends T> type,
org.bson.types.ObjectId id) |
<T> List<T> |
findByTemplate(T template,
String... fields)
search for objects similar to template concerning all given fields.
|
void |
firePostDropEvent(Class cls) |
void |
firePostLoadEvent(Object o)
will be called by query after unmarshalling
|
void |
firePostRemoveEvent(Object o) |
void |
firePostRemoveEvent(Query q) |
void |
firePostStoreEvent(Object o,
boolean isNew) |
void |
firePostUpdateEvent(Class cls,
MorphiumStorageListener.UpdateTypes t) |
void |
firePreDropEvent(Class cls) |
void |
firePreRemoveEvent(Object o) |
void |
firePreRemoveEvent(Query q) |
void |
firePreStoreEvent(Object o,
boolean isNew) |
void |
firePreUpdateEvent(Class cls,
MorphiumStorageListener.UpdateTypes t) |
void |
fireProfilingReadEvent(Query q,
long time,
ReadAccessType t) |
void |
fireProfilingWriteEvent(Class type,
Object data,
long time,
boolean isNew,
WriteAccessType wt) |
List<Annotation> |
getAllAnnotationsFromHierachy(Class<?> cls,
Class<? extends Annotation>... anCls) |
<T extends Annotation> |
getAnnotationFromHierarchy(Class<?> cls,
Class<? extends T> anCls)
returns annotations, even if in class hierarchy or
lazyloading proxy
|
String |
getCacheKey(com.mongodb.DBObject qo,
Map<String,Integer> sort,
int skip,
int limit) |
String |
getCacheKey(Query q)
create unique cache key for queries, also honoring skip & limit and sorting
|
MorphiumConfig |
getConfig() |
ConfigManager |
getConfigManager() |
String |
getCreatedByField(Class<?> cls) |
String |
getCreationTimeField(Class<?> cls) |
com.mongodb.DB |
getDatabase() |
Date |
getDateValue(Object o,
String fld) |
Double |
getDoubleValue(Object o,
String fld) |
Field |
getField(Class cls,
String fld)
extended logic: Fld may be, the java field name, the name of the specified value in Property-Annotation or
the translated underscored lowercase name (mongoId => mongo_id)
|
String |
getFieldName(Class<?> cls,
String fld) |
List<String> |
getFields(Class<?> cls)
get a list of valid fields of a given record as they are in the MongoDB
so, if you have a field Mapping, the mapped Property-name will be used
|
<T> List<T> |
getFromCache(Class<? extends T> type,
String k)
return object by from cache.
|
org.bson.types.ObjectId |
getId(Object o) |
String |
getLastAccessByField(Class<?> cls) |
String |
getLastAccessField(Class<?> cls) |
String |
getLastChangeByField(Class<?> cls) |
String |
getLastChangeField(Class<?> cls) |
Long |
getLongValue(Object o,
String fld) |
ObjectMapper |
getMapper() |
com.mongodb.Mongo |
getMongo() |
ReplicaSetStatus |
getReplicaSetStatus()
same as retReplicaSetStatus(false);
|
ReplicaSetStatus |
getReplicaSetStatus(boolean full)
get the current replicaset status - issues the replSetGetStatus command to mongo
if full==true, also the configuration is read.
|
MongoSecurityManager |
getSecurityManager() |
Map<String,Double> |
getStatistics() |
Map<StatisticKeys,StatisticValue> |
getStats() |
String |
getStringValue(Object o,
String fld) |
Class |
getTypeOfField(Class<?> cls,
String fld) |
Object |
getValue(Object o,
String fld) |
Object |
getValueOf(Object toGetValueFrom,
Enum fld) |
Object |
getValueOf(Object toGetValueFrom,
String fld) |
com.mongodb.WriteConcern |
getWriteConcernForClass(Class<?> cls) |
com.mongodb.DBObject |
group(Query q,
Map<String,Object> initial,
String jsReduce,
String jsFinalize,
String... keys) |
void |
inc(Object toSet,
String field,
int i) |
void |
inc(Query<?> query,
Enum field,
int amount) |
void |
inc(Query<?> query,
Enum field,
int amount,
boolean insertIfNotExist,
boolean multiple) |
void |
inc(Query<?> query,
String field,
int amount) |
void |
inc(Query<?> query,
String name,
int amount,
boolean insertIfNotExist,
boolean multiple) |
void |
inc(StatisticKeys k) |
<T extends Annotation> |
isAnnotationPresentInHierarchy(Class<?> cls,
Class<? extends T> anCls) |
boolean |
isCached(Class<?> type,
String k) |
boolean |
isReplicaSet() |
boolean |
isWriteCached(Class<?> cls) |
void |
pull(Query<?> query,
Enum field,
Object value) |
void |
pull(Query<?> query,
Enum field,
Object value,
boolean insertIfNotExist,
boolean multiple) |
void |
pull(Query<?> query,
String field,
Object value) |
void |
pull(Query<?> query,
String field,
Object value,
boolean insertIfNotExist,
boolean multiple) |
void |
pullAll(Query<?> query,
Enum field,
List<Object> value,
boolean insertIfNotExist,
boolean multiple) |
void |
pullAll(Query<?> query,
String field,
List<Object> value,
boolean insertIfNotExist,
boolean multiple) |
void |
push(Query<?> query,
Enum field,
Object value) |
void |
push(Query<?> query,
Enum field,
Object value,
boolean insertIfNotExist,
boolean multiple) |
void |
push(Query<?> query,
String field,
Object value) |
void |
push(Query<?> query,
String field,
Object value,
boolean insertIfNotExist,
boolean multiple) |
void |
pushAll(Query<?> query,
Enum field,
List<Object> value,
boolean insertIfNotExist,
boolean multiple) |
void |
pushAll(Query<?> query,
String field,
List<?> value,
boolean insertIfNotExist,
boolean multiple) |
<T> List<T> |
readAll(Class<? extends T> cls)
return a list of all elements stored in morphium for this type
|
void |
removeEntryFromCache(Class cls,
org.bson.types.ObjectId id) |
void |
removeListener(MorphiumStorageListener lst) |
void |
removeProfilingListener(ProfilingListener l) |
void |
removeShutdownListener(ShutdownListener l) |
<T> T |
reread(T o)
careful this actually changes the parameter o!
|
void |
resetCache() |
void |
set(Object toSet,
Enum field,
Object value) |
void |
set(Object toSet,
String field,
Object value)
setting a value in an existing mongo collection entry - no reading necessary.
|
void |
set(Query<?> query,
Enum field,
Object val) |
void |
set(Query<?> query,
Map<String,Object> map,
boolean insertIfNotExist,
boolean multiple) |
void |
set(Query<?> query,
String field,
Object val) |
void |
set(Query<?> query,
String field,
Object val,
boolean insertIfNotExist,
boolean multiple)
will change an entry in mongodb-collection corresponding to given class object
if query is too complex, upsert might not work!
|
void |
setCache(Hashtable<Class<?>,Hashtable<String,CacheElement>> cache) |
void |
setEnum(Query<?> query,
Map<Enum,Object> values,
boolean insertIfNotExist,
boolean multiple) |
void |
setIdCache(Hashtable<Class<?>,Hashtable<org.bson.types.ObjectId,Object>> c) |
void |
setPrivileged()
temporarily switch off security settings - needed by SecurityManagers
|
void |
setPrivilegedThread(Thread thr) |
void |
setValue(Object in,
String fld,
Object val) |
void |
setValueIn(Object toSetValueIn,
Enum fld,
Object value) |
void |
setValueIn(Object toSetValueIn,
String fld,
Object value)
does not set values in DB only in the entity
|
com.mongodb.DBObject |
simplifyQueryObject(com.mongodb.DBObject q) |
void |
store(Object o)
Stores a single Object.
|
void |
storeInBackground(Object lst) |
<T> void |
storeList(List<T> lst) |
void |
storeNoCache(Object lst) |
boolean |
storesCreatedBy(Class<?> cls) |
boolean |
storesCreation(Class<?> cls) |
boolean |
storesLastAccess(Class<?> cls) |
boolean |
storesLastAccessBy(Class<?> cls) |
boolean |
storesLastChange(Class<?> cls) |
boolean |
storesLastChangeBy(Class<?> cls) |
String |
toJsonString(Object o) |
void |
unset(Object toSet,
Enum field) |
void |
unset(Object toSet,
String field) |
void |
updateUsingFields(Object ent,
String... fields)
updating an enty in DB without sending the whole entity
only transfers the fields to be changed / set
|
int |
writeBufferCount() |
public Morphium(MorphiumConfig cfg)
MorphiumConfigpublic MorphiumConfig getConfig()
public void addListener(MorphiumStorageListener lst)
public void removeListener(MorphiumStorageListener lst)
public com.mongodb.Mongo getMongo()
public com.mongodb.DB getDatabase()
public ConfigManager getConfigManager()
public <T> List<T> findByTemplate(T template, String... fields)
T - - typetemplate - - what to search forfields - - fields to use for searchingpublic void ensureIndicesFor(Class type)
type - type to ensure indices forpublic void clearCacheIfNecessary(Class cls)
public com.mongodb.DBObject simplifyQueryObject(com.mongodb.DBObject q)
public void setEnum(Query<?> query, Map<Enum,Object> values, boolean insertIfNotExist, boolean multiple)
public void push(Query<?> query, Enum field, Object value, boolean insertIfNotExist, boolean multiple)
public void pull(Query<?> query, Enum field, Object value, boolean insertIfNotExist, boolean multiple)
public void pushAll(Query<?> query, Enum field, List<Object> value, boolean insertIfNotExist, boolean multiple)
public void pullAll(Query<?> query, Enum field, List<Object> value, boolean insertIfNotExist, boolean multiple)
public void push(Query<?> query, String field, Object value, boolean insertIfNotExist, boolean multiple)
public void pull(Query<?> query, String field, Object value, boolean insertIfNotExist, boolean multiple)
public void pushAll(Query<?> query, String field, List<?> value, boolean insertIfNotExist, boolean multiple)
public void pullAll(Query<?> query, String field, List<Object> value, boolean insertIfNotExist, boolean multiple)
public void set(Query<?> query, String field, Object val, boolean insertIfNotExist, boolean multiple)
query - - query to specify which objects should be setfield - - field to setval - - value to setinsertIfNotExist - - insert, if it does not exist (query needs to be simple!)multiple - - update several documents, if false, only first hit will be updatedpublic void set(Query<?> query, Map<String,Object> map, boolean insertIfNotExist, boolean multiple)
public void dec(Query<?> query, Enum field, int amount, boolean insertIfNotExist, boolean multiple)
public void dec(Query<?> query, String field, int amount, boolean insertIfNotExist, boolean multiple)
public void inc(Query<?> query, Enum field, int amount, boolean insertIfNotExist, boolean multiple)
public void inc(Query<?> query, String name, int amount, boolean insertIfNotExist, boolean multiple)
public void set(Object toSet, String field, Object value)
toSet: - object to set the value in (or better - the corresponding entry in mongo)field: - the field to changevalue: - the value to setpublic void dec(Object toDec, String field, int amount)
inc(toDec,field,-amount);public <T> void addToCache(String k, Class<?> type, List<T> ret)
T - - Type of recordk - - Key, usually the mongodb query stringtype - - class typeret - - list of resultspublic void setPrivilegedThread(Thread thr)
public void inc(StatisticKeys k)
public int writeBufferCount()
public String getCacheKey(com.mongodb.DBObject qo, Map<String,Integer> sort, int skip, int limit)
public String getCacheKey(Query q)
q - the querypublic void updateUsingFields(Object ent, String... fields)
ent - - entity to updatefields - - fields to usepublic List<Annotation> getAllAnnotationsFromHierachy(Class<?> cls, Class<? extends Annotation>... anCls)
public <T extends Annotation> T getAnnotationFromHierarchy(Class<?> cls, Class<? extends T> anCls)
cls - classpublic ObjectMapper getMapper()
public <T extends Annotation> boolean isAnnotationPresentInHierarchy(Class<?> cls, Class<? extends T> anCls)
public void callLifecycleMethod(Class<? extends Annotation> type, Object on)
public <T> T reread(T o)
T - - tpye of the objecto - - object to readpublic void firePreStoreEvent(Object o, boolean isNew)
public void firePostStoreEvent(Object o, boolean isNew)
public void firePreDropEvent(Class cls)
public void firePostDropEvent(Class cls)
public void firePostUpdateEvent(Class cls, MorphiumStorageListener.UpdateTypes t)
public void firePreUpdateEvent(Class cls, MorphiumStorageListener.UpdateTypes t)
public void firePostRemoveEvent(Object o)
public void firePostRemoveEvent(Query q)
public void firePreRemoveEvent(Object o)
public void firePreRemoveEvent(Query q)
public void firePostLoadEvent(Object o)
o - - entitiypublic ReplicaSetStatus getReplicaSetStatus()
public ReplicaSetStatus getReplicaSetStatus(boolean full)
full - - if true- return full statuspublic boolean isReplicaSet()
public com.mongodb.WriteConcern getWriteConcernForClass(Class<?> cls)
public void addProfilingListener(ProfilingListener l)
public void removeProfilingListener(ProfilingListener l)
public void fireProfilingWriteEvent(Class type, Object data, long time, boolean isNew, WriteAccessType wt)
public void fireProfilingReadEvent(Query q, long time, ReadAccessType t)
public <T> List<T> getFromCache(Class<? extends T> type, String k)
T - - type paramtype - - typek - - cache keypublic Hashtable<Class<?>,Hashtable<String,CacheElement>> cloneCache()
public void clearCollection(Class<?> cls)
cls - - classpublic void clearCollectionOneByOne(Class<?> cls)
cls - -classpublic <T> List<T> readAll(Class<? extends T> cls)
T - - Typecls - - type to search for, needs to be an Propertypublic List<Object> distinct(Enum key, Query q)
public List<Object> distinct(String key, Query q)
public com.mongodb.DBObject group(Query q, Map<String,Object> initial, String jsReduce, String jsFinalize, String... keys)
public <T> T findById(Class<? extends T> type, org.bson.types.ObjectId id)
public void setValueIn(Object toSetValueIn, String fld, Object value)
toSetValueIn - - where to set the valuepublic final List<String> getFields(Class<?> cls)
cls - - classpublic boolean storesLastChange(Class<?> cls)
public boolean storesLastChangeBy(Class<?> cls)
public boolean storesLastAccess(Class<?> cls)
public boolean storesLastAccessBy(Class<?> cls)
public boolean storesCreation(Class<?> cls)
public boolean storesCreatedBy(Class<?> cls)
public Field getField(Class cls, String fld)
cls - - class to searchfld - - field namepublic void clearCachefor(Class<?> cls)
cls - - classpublic void storeNoCache(Object lst)
public void storeInBackground(Object lst)
public org.bson.types.ObjectId getId(Object o)
public void dropCollection(Class<?> cls)
public void ensureIndex(Class<?> cls, String... fldStr)
cls - - classfldStr - - fieldspublic void store(Object o)
o - - Object to storepublic <T> void storeList(List<T> lst)
public void delete(Query o)
public void delete(Object o)
o - - entitypublic void resetCache()
public void setCache(Hashtable<Class<?>,Hashtable<String,CacheElement>> cache)
public void removeEntryFromCache(Class cls, org.bson.types.ObjectId id)
public Map<StatisticKeys,StatisticValue> getStats()
public void addShutdownListener(ShutdownListener l)
public void removeShutdownListener(ShutdownListener l)
public void close()
public boolean isWriteCached(Class<?> cls)
public <T,R> Aggregator<T,R> createAggregator(Class<? extends T> type, Class<? extends R> resultType)
public <T,R> List<R> aggregate(Aggregator<T,R> a)
public <T> T createPartiallyUpdateableEntity(T o)
T - - typeo - - entitypublic <T> T createLazyLoadedEntity(Class<? extends T> cls, org.bson.types.ObjectId id)
public <T> MongoField<T> createMongoField()
public MongoSecurityManager getSecurityManager()
public void setPrivileged()
public boolean checkAccess(String domain, Permission p) throws MongoSecurityException
MongoSecurityExceptionpublic boolean accessDenied(Class<?> cls, Permission p) throws MongoSecurityException
MongoSecurityExceptionpublic boolean accessDenied(Object r, Permission p) throws MongoSecurityException
MongoSecurityExceptionCopyright © 2013. All Rights Reserved.