protected ObjectConverter getObjectConverter(HstRequestContext requestContext) { return requestContext.getContentBeansTool().getObjectConverter(); }
/** * @return * @throws HstComponentException * @deprecated since 7.9.0, use {@link org.hippoecm.hst.content.tool.ContentBeansTool#getObjectConverter()} instead. * ContentBeansTool can be accessed through {@link org.hippoecm.hst.core.request.HstRequestContext#getContentBeansTool()} and * the HstReqeustContext can be fetched from the HstRequest or through RequestContextProvider.get(). */ @Deprecated public ObjectConverter getObjectConverter() throws HstComponentException { return RequestContextProvider.get().getContentBeansTool().getObjectConverter(); }
protected ObjectConverter getObjectConverter() { return RequestContextProvider.get().getContentBeansTool().getObjectConverter(); } }
@Override @Nonnull public final HstQueryBuilder documents(final String... primaryNodeTypes) { if (mappings == null) { mappings = new ArrayList<>(); } final HstRequestContext context = request.getRequestContext(); final ObjectConverter objectConverter = context.getContentBeansTool().getObjectConverter(); int typeCounter = 0; for (String primaryNodeType : primaryNodeTypes) { final Class<? extends HippoBean> clazz = objectConverter.getAnnotatedClassFor(primaryNodeType); if (clazz != null) { mappings.add(clazz); typeCounter++; } } if (typeCounter != primaryNodeTypes.length) { log.warn("Couldn't resolve all primary node types through object converter: {}", primaryNodeTypes); } return this; }
/** * Returns a <CODE>WorkflowPersistenceManager</CODE> instance with custom binders map. * @param session make sure this is a persistable session, obtained through {@link #getPersistableSession(HstRequest) or {@link #getPersistableSession(HstRequest, Credentials)}} * @param contentNodeBinders * @return */ protected WorkflowPersistenceManager getWorkflowPersistenceManager(Session session, Map<String, ContentNodeBinder> contentNodeBinders) { WorkflowPersistenceManagerImpl wpm = new WorkflowPersistenceManagerImpl(session, RequestContextProvider.get().getContentBeansTool().getObjectConverter(), contentNodeBinders); return wpm; }
private Class<? extends HippoBean> getPrimaryType(final HstRequestContext context, final HippoBean document) { try { final ObjectConverter converter = context.getContentBeansTool().getObjectConverter(); final String primaryObjectType = converter.getPrimaryObjectType(document.getNode()); return converter.getAnnotatedClassFor(primaryObjectType); } catch (ObjectBeanManagerException e) { log.error("Error fetching primary node type", e); } return null; }
@Override public void bind(final IdentifiableContentBean identifiableContentBean) throws BindingException { if (!(identifiableContentBean instanceof HippoBean)) { log.warn("Cannot bind '{}' to a jcr node because the bean is not of (sub)type HippoBean. Return unbinded bean", identifiableContentBean.getClass().getName(), identifiableContentBean.getIdentifier()); return; } HippoBean bean = (HippoBean) identifiableContentBean; final HstRequestContext requestContext = RequestContextProvider.get(); if (requestContext == null) { log.warn("Cannot bind '{}' to its backing jcr node because there is no hst request context. Return unbinded bean", bean.getClass().getName(), bean.getIdentifier()); } try { Node node = requestContext.getSession().getNodeByIdentifier(bean.getIdentifier()); bean.setNode(node); bean.setObjectConverter(requestContext.getContentBeansTool().getObjectConverter()); } catch (ItemNotFoundException e) { log.warn("Cannot bind '{}' to its backing jcr node because the uuid '{}' does not exist (anymore). Return unbinded bean", bean.getClass().getName(), bean.getIdentifier()); } catch (RepositoryException e) { throw new BindingException("RepositoryException during binding to jcr node", e); } } }