/** * Similar to {@link #toString()}, but using {@link #hintId} rather than {@link #identifier}. */ public String toStringUsingHintId() { return state.getCode() + objectType + SEPARATOR + hintId; } }
@SuppressWarnings("unchecked") @Override <T> T parseStr(String str, Class<T> cls) { return (T) new Bookmark(str); } };
@Override public OidDto marshal(final Object domainObject) throws Exception { if(domainObject == null) { return null; } final Bookmark bookmark = getBookmarkService().bookmarkFor(domainObject); return bookmark.toOidDto(); }
public static Bookmark from(final OidDto oidDto) { final BookmarkObjectState bookmarkObjectState = oidDto.getObjectState(); final ObjectState objectState = ObjectState.from(bookmarkObjectState); final String objectType = coalesce(oidDto.getType(), oidDto.getObjectType()); final String objectId = coalesce(oidDto.getId(), oidDto.getObjectIdentifier()); final Bookmark bookmark = new Bookmark(objectState.getCode() + objectType, objectId); return bookmark; }
public BookmarkWithHintId(final Bookmark bookmark, final String hintId) { super(bookmark.toString()); this.hintId = hintId; }
public OidDto toOidDto() { final OidDto oidDto = new OidDto(); oidDto.setType(getObjectType()); oidDto.setId(getIdentifier()); // persistent is assumed if not specified... final BookmarkObjectState bookmarkState = getObjectState().toBookmarkState(); oidDto.setObjectState(bookmarkState != BookmarkObjectState.PERSISTENT ? bookmarkState : null); return oidDto; }
/** * Subclasses should optionally override in order to set the type-safe equivalent. */ @Programmatic public void setPolymorphicReference(final P polymorphicReference) { final Bookmark bookmark = bookmarkService.bookmarkFor(polymorphicReference); setPolymorphicObjectType(bookmark.getObjectType()); setPolymorphicIdentifier(bookmark.getIdentifier()); }
private ObjectAdapter adapterFor(final OidDto oidDto) { final Bookmark bookmark = Bookmark.from(oidDto); return adapterFor(bookmark); }
static String deriveLogicalMemberId(final Bookmark bookmark, final String memberId) { String objectType = bookmark.getObjectType(); int hashAt = memberId.lastIndexOf("#"); String localMemberId = hashAt >= 0 && hashAt < memberId.length() ? memberId.substring(hashAt + 1) : memberId; return objectType + "#" + localMemberId; }
@Action( domainEvent = ActionDomainEvent.class, semantics = SemanticsOf.SAFE ) @ActionLayout( contributed = Contributed.AS_ACTION, cssClassFa = "fa-bookmark" ) public Object act() { return bookmarkService.lookup(bookmarkHolder); }
public Bookmark(final String objectType, final String identifier) { this.state = ObjectState.from(objectType); this.objectType = state != ObjectState.PERSISTENT ? objectType.substring(1): objectType; this.identifier = identifier; }
@Override public OidsDto marshal(final List<Object> domainObjects) throws Exception { if(domainObjects == null) { return null; } OidsDto oidsDto = new OidsDto(); for (final Object domainObject : domainObjects) { final Bookmark bookmark = getBookmarkService().bookmarkFor(domainObject); oidsDto.getOid().add(bookmark.toOidDto()); } return oidsDto; }
protected String sessionAttributeFor(final Bookmark bookmark) { return "hint-" + bookmark.toString(); }
@Override public List<Object> unmarshal(final OidsDto oidsDto) throws Exception { List<Object> domainObjects = Lists.newArrayList(); for (final OidDto oidDto : oidsDto.getOid()) { final Bookmark bookmark = Bookmark.from(oidDto); Object domainObject = bookmarkService.lookup(bookmark, BookmarkService2.FieldResetPolicy.DONT_RESET); domainObjects.add(domainObject); } return domainObjects; }
@Deprecated public static Bookmark bookmarkFor(final String str) { return str != null? new Bookmark(str): null; }
protected final ObjectAdapter adapterFor(final OidDto oidDto) { final Bookmark bookmark = Bookmark.from(oidDto); return adapterFor(bookmark); }
/** * The canonical form of the {@link Bookmark}, that is "{@link #getObjectType() objectType}{@value #SEPARATOR}{@link #getIdentifier()}". * * <p> * This is parseable by the {@link #Bookmark(String) string constructor}. */ @Override public String toString() { return state.getCode() + objectType + SEPARATOR + identifier; }
@Deprecated public static String asString(Bookmark bookmark) { return bookmark != null? bookmark.toString(): null; }