/** * Get the string reference for this entity reference object, * same as calling {@link #toString()} * @return the full entity reference */ public String getReference() { return this.toString(); }
private HttpServletRequest wrapRequest(HttpServletRequest req) { String oldpathinfo = req.getPathInfo(); EntityReference parsed = entityBroker.parseReference(oldpathinfo); int extent = parsed.toString().length(); final String newpathinfo = extent < oldpathinfo.length() ? oldpathinfo.substring(parsed.toString().length()) : ""; return new HttpServletRequestWrapper(req) { public String getPathInfo() { return newpathinfo; } }; }
private HttpServletRequest wrapRequest(HttpServletRequest req) { String oldpathinfo = req.getPathInfo(); EntityReference parsed = entityBroker.parseReference(oldpathinfo); int extent = parsed.toString().length(); final String newpathinfo = extent < oldpathinfo.length()? oldpathinfo.substring(parsed.toString().length()) : ""; return new HttpServletRequestWrapper(req) { public String getPathInfo() { return newpathinfo; } }; }
public void fireEvent(String eventName, String reference) { if (eventName == null || "".equals(eventName)) { throw new IllegalArgumentException("Cannot fire event if name is null or empty"); } if (reference == null || "".equals(reference)) { throw new IllegalArgumentException("Cannot fire event if reference is null or empty"); } if (entityBrokerManager.getExternalIntegrationProvider() != null) { String refName = reference; try { // parse the reference string to validate it and remove any extra bits EntityReference ref = entityBrokerManager.parseReference(reference); if (ref != null) { refName = ref.toString(); } else { // fallback to simple parsing refName = new EntityReference(reference).toString(); } } catch (Exception e) { refName = reference; log.warn("Invalid reference ({}) for eventName ({}), could not parse the reference correctly, continuing to create event with original reference", reference, eventName); } // had to take out the exists check because it makes firing events for removing entities very annoying -AZ entityBrokerManager.getExternalIntegrationProvider().fireEvent(eventName, refName); } else { log.warn("No external system to handle events: event not fired: {}:{}", eventName, reference); } }
public String getCurrentToolReference() { String toolRef = null; String toolId = toolManager.getCurrentTool().getId(); // assume the form /tool/toolId if (toolId != null) { toolRef = new EntityReference("tool", toolId).toString(); } return toolRef; }
EntityProvider provider = entityProviderManager.getProviderByPrefix(prefix); res.setHeader("x-entity-prefix", prefix); res.setHeader("x-entity-reference", view.getEntityReference().toString()); res.setHeader("x-entity-url", view.getEntityURL()); res.setHeader("x-entity-format", view.getFormat());
throw new IllegalArgumentException("Invalid reference (" + reference + "), no entity provider to handle this reference"); } else { reference = ref.toString(); if (! entityBrokerManager.entityExists(ref)) { throw new IllegalArgumentException("Invalid reference (" + reference + "), entity does not exist");
throw new IllegalArgumentException("Invalid reference (" + reference + "), no entity provider to handle this reference"); } else { reference = ref.toString(); if (! entityBrokerManager.entityExists(ref)) { throw new IllegalArgumentException("Invalid reference (" + reference + "), entity does not exist");
public void removeTagsFromEntity(String reference, String[] tags) { if (tags == null) { throw new IllegalArgumentException("Invalid params, tags cannot be null"); } validateTags(tags); // ensures tags are valid EntityReference ref = entityBrokerManager.parseReference(reference); if (ref == null) { throw new IllegalArgumentException("Invalid reference (" + reference + "), no entity provider to handle this reference"); } else { reference = ref.toString(); if (! entityBrokerManager.entityExists(ref)) { throw new IllegalArgumentException("Invalid reference (" + reference + "), entity does not exist"); } if (entityProviderManager.getProviderByPrefixAndCapability(ref.getPrefix(), Taggable.class) != null) { TagProvideable provider = entityProviderManager.getProviderByPrefixAndCapability(ref.getPrefix(), TagProvideable.class); if (provider == null) { // put in call to central tag system here if desired dao.deleteTags(reference, tags); } else { provider.removeTagsFromEntity(reference, tags); } } else { throw new UnsupportedOperationException("Cannot set tags for this entity ("+reference+"), it has no support for tagging in its entity provider"); } } }
throw new IllegalArgumentException("Invalid reference (" + reference + "), no entity provider to handle this reference"); } else { reference = ref.toString(); if (! entityBrokerManager.entityExists(ref)) { throw new IllegalArgumentException("Invalid reference (" + reference + "), entity does not exist");
if (entity == null) { throw new EntityException("Failed to retrieve entity (" + ref + "), entity object could not be found", ref.toString(), HttpServletResponse.SC_NOT_FOUND);
/** * Get the entity data for a reference if possible * * @param ref an entity reference * @return an {@link EntityData} object for this reference if one can be found OR null if not */ public EntityData getEntityData(EntityReference ref) { if (ref == null) { throw new IllegalArgumentException("ref cannot be null"); } EntityData ed = null; Object obj = fetchEntityObject(ref); if (obj != null) { ed = EntityDataUtils.makeEntityData(ref, obj); populateEntityData(new EntityData[] {ed} ); } else { if (entityExists(ref)) { String url = getEntityURL(ref.toString(), EntityView.VIEW_SHOW, null); ed = new EntityData(ref, (String)null); ed.setEntityURL(url); } } return ed; }
public void handleAccess(HttpServletRequest req, HttpServletResponse res, EntityReference reference, WBLAcceptor acceptor) { try { rsacbl.startRequest(); // A request bean locator just good for this request. WriteableBeanLocator rbl = rsacbl.getBeanLocator(); // inchuck entityReference rbl.set("sakai-EntityReference", reference.toString()); if (acceptor != null) { acceptor.acceptWBL(rbl); } RSACUtils.startServletRequest(wrapRequest(req), res, rsacbl, RSACUtils.HTTP_SERVLET_FACTORY); // pass the request to RSF. rbl.locateBean("rootHandlerBean"); } catch (Exception t) { // Access servlet performs no useful logging, do it here. Logger.log.error("Error handling access request", t); Throwable unwrapped = UniversalRuntimeException.unwrapException(t); if (unwrapped instanceof RuntimeException) { throw ((RuntimeException) unwrapped); } else throw UniversalRuntimeException.accumulate(unwrapped, "Error handling access request"); } finally { rsacbl.endRequest(); } }
public Object doubleUp(EntityView view) { MyEntity me = (MyEntity) getEntity(view.getEntityReference()); MyEntity togo = me.copy(); togo.setNumber( togo.getNumber() * 2 ); return new ActionReturn(new EntityData(view.getEntityReference().toString(), togo.getStuff(), togo), (String)null); }
public void handleAccess(HttpServletRequest req, HttpServletResponse res, EntityReference reference, WBLAcceptor acceptor) { try { rsacbl.startRequest(); // A request bean locator just good for this request. WriteableBeanLocator rbl = rsacbl.getBeanLocator(); // inchuck entityReference rbl.set("sakai-EntityReference", reference.toString()); if (acceptor != null) { acceptor.acceptWBL(rbl); } RSACUtils.startServletRequest(wrapRequest(req), res, rsacbl, RSACUtils.HTTP_SERVLET_FACTORY); // pass the request to RSF. rbl.locateBean("rootHandlerBean"); } catch (Exception t) { // Access servlet performs no useful logging, do it here. Logger.log.error("Error handling access request", t); Throwable unwrapped = UniversalRuntimeException.unwrapException(t); if (unwrapped instanceof RuntimeException) { throw ((RuntimeException) unwrapped); } else throw UniversalRuntimeException.accumulate(unwrapped, "Error handling access request"); } finally { rsacbl.endRequest(); } }
public Object doubleCustomAction(EntityView view) { MyEntity me = (MyEntity) getEntity(view.getEntityReference()); MyEntity togo = me.copy(); togo.setNumber( togo.getNumber() * 2 ); return new ActionReturn(new EntityData(view.getEntityReference().toString(), togo.getStuff(), togo), (String)null); }
private Object myDoubleAction(EntityView view) { MyEntity me = (MyEntity) getEntity(view.getEntityReference()); MyEntity togo = me.copy(); togo.setNumber( togo.getNumber() * 2 ); return new ActionReturn(new EntityData(view.getEntityReference().toString(), togo.getStuff(), togo), (String)null); }
public Object doubleUp(EntityView view) { MyEntity me = (MyEntity) getEntity(view.getEntityReference()); MyEntity togo = me.copy(); togo.setNumber( togo.getNumber() * 2 ); return new ActionReturn(new EntityData(view.getEntityReference().toString(), togo.getStuff(), togo), (String)null); }
private Object myDoubleAction(EntityView view) { MyEntity me = (MyEntity) getEntity(view.getEntityReference()); MyEntity togo = me.copy(); togo.setNumber( togo.getNumber() * 2 ); return new ActionReturn(new EntityData(view.getEntityReference().toString(), togo.getStuff(), togo), (String)null); }
public Object doubleCustomAction(EntityView view) { MyEntity me = (MyEntity) getEntity(view.getEntityReference()); MyEntity togo = me.copy(); togo.setNumber( togo.getNumber() * 2 ); return new ActionReturn(new EntityData(view.getEntityReference().toString(), togo.getStuff(), togo), (String)null); }