|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectome.logic.AbstractLevel2Service
ome.services.sharing.ShareBean
@Transactional(readOnly=true) public class ShareBean
Note: SessionManager
should not be used to obtain the Share
data since it may not be completely in sync. i.e. Don't use SM.find()
IShare
Field Summary | |
---|---|
protected LocalAdmin |
admin
|
protected Executor |
executor
|
static org.apache.commons.logging.Log |
log
|
static String |
NS_COMMENT
|
static String |
NS_ENABLED
|
protected SessionManager |
sessionManager
|
protected ShareStore |
store
|
Fields inherited from class ome.logic.AbstractLevel2Service |
---|
iQuery, iUpdate, metadata, queryFactory, sec |
Constructor Summary | |
---|---|
ShareBean(LocalAdmin admin,
SessionManager mgr,
ShareStore store,
Executor executor)
|
Method Summary | ||
---|---|---|
protected void |
_addGraph(ShareData data,
ome.services.sharing.ShareBean.Graph g)
|
|
void |
activate(long shareId)
Turns on the access control lists attached to the given share for the current session. |
|
ome.model.annotations.CommentAnnotation |
addComment(long shareId,
String commentText)
Creates comment for
share . |
|
void |
addGuest(long shareId,
String emailAddress)
Add guest email address to the share. |
|
void |
addGuests(long shareId,
String... emailAddresses)
Adds guest email addresses to the share. |
|
|
addObject(long shareId,
T object)
Adds new item to share . |
|
|
addObjects(long shareId,
T... objects)
Adds new items to
share . |
|
ome.model.annotations.CommentAnnotation |
addReply(long shareId,
String comment,
ome.model.annotations.CommentAnnotation replyTo)
Creates comment which replies to an existing
comment. |
|
void |
addUser(long shareId,
ome.model.meta.Experimenter exp)
Adds experimenter to
share |
|
void |
addUsers(long shareId,
ome.model.meta.Experimenter... exps)
Adds experimenters to
share |
|
protected void |
adminFlush()
|
|
protected void |
applyIfShareAccessible(QueryBuilder qb)
If the current user is not an admin, then this methods adds a subclause to the HQL: AND ( share.owner.id = :userId or user.id = :userId ) QueryBuilder.where() should already have been called. |
|
void |
closeShare(long shareId)
Closes share . |
|
|
createShare(String description,
Timestamp expiration,
List<T> items,
List<ome.model.meta.Experimenter> exps,
List<String> guests,
boolean enabled)
Creates share with all related:
items , members , and guests. |
|
void |
deactivate()
Turns off the access control lists with the current share. |
|
void |
deleteComment(ome.model.annotations.Annotation comment)
Deletes comment from the
database. |
|
static long |
expirationAsLong(long started,
Timestamp expiration)
Convert a expiration into a long which can be set on
Session.setTimeToLive(Long) . |
|
Map<String,ome.model.meta.Experimenter> |
getActiveConnections(long shareId)
Gets actual active connections to share . |
|
Set<String> |
getAllGuests(long shareId)
Get the email addresses for all share guests. |
|
Set<ome.model.meta.Experimenter> |
getAllMembers(long shareId)
Get all users who are a member of the share. |
|
Set<String> |
getAllUsers(long shareId)
Get a single set containing the login
names of the Experimenters as well email addresses for guests. |
|
Map<Long,Long> |
getCommentCount(Set<Long> ids)
Returns a map from share id to comment count. |
|
List<ome.model.annotations.Annotation> |
getComments(long shareId)
Looks up all comments which
belong to the share . |
|
|
getContentMap(long shareId)
Returns the contents of the share keyed by type. |
|
|
getContents(long shareId)
Looks up all items belong to the
share . |
|
int |
getContentSize(long shareId)
Returns the number of items in the share. |
|
|
getContentSubList(long shareId,
int start,
int finish)
Returns a range of items from the share. |
|
List<ome.model.meta.Event> |
getEvents(long shareId,
ome.model.meta.Experimenter experimenter,
Timestamp from,
Timestamp to)
Gets events for share per
experimenter for period of time. |
|
Map<Long,Long> |
getMemberCount(Set<Long> shareIds)
Returns a map from share id to the count of total members (including the owner). |
|
Set<ome.model.meta.Session> |
getMemberShares(boolean active)
Gets all shares where current Experimenter is a member. |
|
Set<ome.model.meta.Session> |
getMemberSharesFor(ome.model.meta.Experimenter user,
boolean active)
Gets all shares where given Experimenter is a member. |
|
Set<ome.model.meta.Session> |
getOwnShares(boolean active)
Gets all owned shares for the current Experimenter |
|
Map<String,ome.model.meta.Experimenter> |
getPastConnections(long shareId)
Gets previous connections to share . |
|
Class<? extends ServiceInterface> |
getServiceInterface()
|
|
ome.model.meta.Session |
getShare(long sessionId)
Gets a share as a Session with all related:
comments ,
members , fully loaded. |
|
protected ShareData |
getShareIfAccessible(long shareId)
Loads share and checks it's owner and member data against the current context (owner/member/admin). |
|
Set<ome.model.meta.Session> |
getSharesOwnedBy(ome.model.meta.Experimenter user,
boolean active)
Gets all shares owned by the given Experimenter . |
|
protected String |
idToUuid(long shareId)
|
|
void |
invalidateConnection(long shareId,
ome.model.meta.Experimenter exp)
Makes the connection invalid for share for
specifiec user. |
|
protected
|
list(List<Obj> objectList)
|
|
protected List<ome.model.meta.Experimenter> |
loadMembers(ShareData data)
|
|
protected
|
map(Map<String,List<Long>> map)
|
|
void |
removeGuest(long shareId,
String emailAddress)
Removes guest email address from share. |
|
void |
removeGuests(long shareId,
String... emailAddresses)
Removes guest email addresses from the share. |
|
|
removeObject(long shareId,
T object)
Removes existing item from the
share . |
|
|
removeObjects(long shareId,
T... objects)
Remove existing items from the share. |
|
void |
removeUser(long shareId,
ome.model.meta.Experimenter exp)
Removes experimenter from
share |
|
void |
removeUsers(long shareId,
List<ome.model.meta.Experimenter> exps)
Removes experimenters from
share |
|
void |
setActive(long shareId,
boolean active)
|
|
void |
setDescription(long shareId,
String description)
|
|
void |
setExpiration(long shareId,
Timestamp expiration)
|
|
protected Set<ome.model.meta.Session> |
sharesToSessions(List<ShareData> datas)
|
|
protected ome.model.meta.Session |
shareToSession(ShareData data)
|
|
protected void |
storeShareData(long shareId,
ShareData data)
|
|
protected void |
throwOnNullData(long shareId,
ShareData data)
|
Methods inherited from class ome.logic.AbstractLevel2Service |
---|
getBeanHelper, getExtendedMetadata, getQueryFactory, getSecuritySystem, selfConfigure, setExtendedMetadata, setQueryFactory, setQueryService, setSecuritySystem, setUpdateService |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final org.apache.commons.logging.Log log
public static final String NS_ENABLED
public static final String NS_COMMENT
protected final LocalAdmin admin
protected final SessionManager sessionManager
protected final ShareStore store
protected final Executor executor
Constructor Detail |
---|
public ShareBean(LocalAdmin admin, SessionManager mgr, ShareStore store, Executor executor)
Method Detail |
---|
public final Class<? extends ServiceInterface> getServiceInterface()
getServiceInterface
in interface SelfConfigurableService
public void activate(long shareId)
IShare
ValidationException
is thrown.
activate
in interface IShare
public void deactivate()
IShare
deactivate
in interface IShare
public Map<Long,Long> getMemberCount(Set<Long> shareIds)
IShare
ShareMember
links.
getMemberCount
in interface IShare
shareIds
- Not null.
public Set<ome.model.meta.Session> getOwnShares(boolean active)
IShare
Experimenter
getOwnShares
in interface IShare
active
- if true, then only shares which can be used for login will be
returned. All "draft" shares (see
IShare.createShare(String, Timestamp, List, List, List, boolean)
and closed shares
will be filtered.
public Set<ome.model.meta.Session> getMemberShares(boolean active)
IShare
Experimenter
is a member.
getMemberShares
in interface IShare
active
- if true, then only shares which can be used for login will be
returned. All "draft" shares (see
IShare.createShare(String, Timestamp, List, List, List, boolean)
and closed shares
will be filtered.
public Set<ome.model.meta.Session> getSharesOwnedBy(ome.model.meta.Experimenter user, boolean active)
IShare
Experimenter
.
getSharesOwnedBy
in interface IShare
active
- if true, then only shares which can be used for login will be
returned. All "draft" shares (see
IShare.createShare(String, Timestamp, List, List, List, boolean)
and closed shares
will be filtered.
public Set<ome.model.meta.Session> getMemberSharesFor(ome.model.meta.Experimenter user, boolean active)
IShare
Experimenter
is a member.
getMemberSharesFor
in interface IShare
active
- if true, then only shares which can be used for login will be
returned. All "draft" shares (see
IShare.createShare(String, Timestamp, List, List, List, boolean)
and closed shares
will be filtered.
public ome.model.meta.Session getShare(long sessionId)
IShare
Session
with all related:
comments
,
members
, fully loaded. Unlike the
other methods on this interface, if the sessionId is unknown, does not
throw a ValidationException
.
getShare
in interface IShare
Session
with id and Details
set or null.
The owner in
the Details object is the true owner, and the group in the
Details has all member users linked. Annotation
instances
of the share are linked to the Session
. Missing is a list
of share guests.public <T extends ome.model.IObject> List<T> getContents(long shareId)
IShare
items
belong to the
share
.
getContents
in interface IShare
public <T extends ome.model.IObject> List<T> getContentSubList(long shareId, int start, int finish)
IShare
getContentSubList
in interface IShare
IShare.getContents(long)
public <T extends ome.model.IObject> Map<Class<T>,List<Long>> getContentMap(long shareId)
IShare
getContentMap
in interface IShare
public int getContentSize(long shareId)
IShare
getContentSize
in interface IShare
@Transactional(readOnly=false) public <T extends ome.model.IObject> long createShare(String description, Timestamp expiration, List<T> items, List<ome.model.meta.Experimenter> exps, List<String> guests, boolean enabled)
IShare
share
with all related:
items
, members
, and guests.
createShare
in interface IShare
enabled
- if true, then the share is immediately available for use. If
false, then the share is in draft state. All methods on this
interface will work for shares except
IShare.activate(long)
. Similarly, the share password cannot
be used by guests to login.@Transactional(readOnly=false) public void setDescription(long shareId, String description)
setDescription
in interface IShare
@Transactional(readOnly=false) public void setExpiration(long shareId, Timestamp expiration)
setExpiration
in interface IShare
@Transactional(readOnly=false) public void setActive(long shareId, boolean active)
setActive
in interface IShare
@Transactional(readOnly=false) public void closeShare(long shareId)
IShare
share
. No further logins will be
possible and all getters (e.g. #getMemberShares(boolean),
{@link #getAllShares(boolean), ...} will filter these results if
"onlyActive" is true.
closeShare
in interface IShare
@Transactional(readOnly=false) public <T extends ome.model.IObject> void addObjects(long shareId, T... objects)
IShare
items
to
share
. Conceptually calls
IShare.addObjects(long, IObject...)
for every argument passed, but the
graphs will be merged.
addObjects
in interface IShare
@Transactional(readOnly=false) public <T extends ome.model.IObject> void addObject(long shareId, T object)
IShare
item
to share
. The entire object graph with the exception of all Details will
be loaded into the share. If you would like to load a single object,
then pass an unloaded reference.
addObject
in interface IShare
@Transactional(readOnly=false) public <T extends ome.model.IObject> void removeObjects(long shareId, T... objects)
IShare
removeObjects
in interface IShare
@Transactional(readOnly=false) public <T extends ome.model.IObject> void removeObject(long shareId, T object)
IShare
item
from the
share
.
removeObject
in interface IShare
public Map<Long,Long> getCommentCount(Set<Long> ids)
IShare
getCommentCount
in interface IShare
ids
- Not null.
public List<ome.model.annotations.Annotation> getComments(long shareId)
IShare
comments
which
belong to the share
.
getComments
in interface IShare
@Transactional(readOnly=false) public ome.model.annotations.CommentAnnotation addComment(long shareId, String commentText)
IShare
comment
for
share
.
addComment
in interface IShare
@Transactional(readOnly=false) public ome.model.annotations.CommentAnnotation addReply(long shareId, String comment, ome.model.annotations.CommentAnnotation replyTo)
IShare
comment
which replies to an existing
comment.
addReply
in interface IShare
@Transactional(readOnly=false) public void deleteComment(ome.model.annotations.Annotation comment)
IShare
comment
from the
database.
deleteComment
in interface IShare
public Set<ome.model.meta.Experimenter> getAllMembers(long shareId)
IShare
users
who are a member of the share.
getAllMembers
in interface IShare
public Set<String> getAllGuests(long shareId)
IShare
getAllGuests
in interface IShare
public Set<String> getAllUsers(long shareId) throws ome.conditions.ValidationException
IShare
login
names
of the Experimenters
as well email addresses for guests.
getAllUsers
in interface IShare
ome.conditions.ValidationException
- if there is a conflict between email addresses and user
names.@Transactional(readOnly=false) public void addUsers(long shareId, ome.model.meta.Experimenter... exps)
IShare
experimenters
to
share
addUsers
in interface IShare
@Transactional(readOnly=false) public void addGuests(long shareId, String... emailAddresses)
IShare
addGuests
in interface IShare
@Transactional(readOnly=false) public void removeUsers(long shareId, List<ome.model.meta.Experimenter> exps)
IShare
experimenters
from
share
removeUsers
in interface IShare
@Transactional(readOnly=false) public void removeGuests(long shareId, String... emailAddresses)
IShare
removeGuests
in interface IShare
@Transactional(readOnly=false) public void addUser(long shareId, ome.model.meta.Experimenter exp)
IShare
experimenter
to
share
addUser
in interface IShare
@Transactional(readOnly=false) public void addGuest(long shareId, String emailAddress)
IShare
addGuest
in interface IShare
@Transactional(readOnly=false) public void removeUser(long shareId, ome.model.meta.Experimenter exp)
IShare
experimenter
from
share
removeUser
in interface IShare
@Transactional(readOnly=false) public void removeGuest(long shareId, String emailAddress)
IShare
removeGuest
in interface IShare
public Map<String,ome.model.meta.Experimenter> getActiveConnections(long shareId)
IShare
share
.
getActiveConnections
in interface IShare
public List<ome.model.meta.Event> getEvents(long shareId, ome.model.meta.Experimenter experimenter, Timestamp from, Timestamp to)
IShare
share
per
experimenter
for period of time.
getEvents
in interface IShare
from
- - timeto
- - time
public Map<String,ome.model.meta.Experimenter> getPastConnections(long shareId)
IShare
share
.
getPastConnections
in interface IShare
public void invalidateConnection(long shareId, ome.model.meta.Experimenter exp)
IShare
share
for
specifiec user.
invalidateConnection
in interface IShare
exp
- - connectionprotected String idToUuid(long shareId)
protected List<ome.model.meta.Experimenter> loadMembers(ShareData data)
public static long expirationAsLong(long started, Timestamp expiration)
expiration
into a long which can be set on
Session.setTimeToLive(Long)
.
protected Set<ome.model.meta.Session> sharesToSessions(List<ShareData> datas)
protected ome.model.meta.Session shareToSession(ShareData data)
protected <T extends ome.model.IObject> Map<Class<T>,List<Long>> map(Map<String,List<Long>> map)
protected <T extends ome.model.IObject> List<T> list(List<Obj> objectList)
protected void adminFlush()
protected void throwOnNullData(long shareId, ShareData data)
protected void applyIfShareAccessible(QueryBuilder qb)
QueryBuilder.where()
should already have been called.
protected ShareData getShareIfAccessible(long shareId)
applyIfShareAccessible(QueryBuilder)
which does the same check
at the database rather than binary data level.
protected void _addGraph(ShareData data, ome.services.sharing.ShareBean.Graph g)
protected void storeShareData(long shareId, ShareData data)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
Version: Beta-4.1.1-r5927-b91
Copyright © 2009 The University of Dundee. All Rights Reserved.