protected PersistenceContext buildPersistenceContext(HyperionContext context) { EntityPlugin entityPlugin = context.getEntityPlugin(); HyperionRequest endpointRequest = context.getEndpointRequest(); PersistenceContext persistenceContext = new PersistenceContext(); persistenceContext.setEntityPlugin(entityPlugin); persistenceContext.setEntity(entityPlugin.getEndpointName()); persistenceContext.setHttpMethod(context.getEffectiveMethod()); persistenceContext.setApiVersionPlugin(context.getVersionPlugin()); persistenceContext.setUserContext(context.getAuthorizationContext().getUserContext()); persistenceContext.setRequestedFields( buildFieldSet(endpointRequest.getFirstParameter("fields"))); persistenceContext.setAuthorizationContext(context.getAuthorizationContext()); persistenceContext.setLocale(context.getLocale()); persistenceContext.setMessageSource(messageSource); Set<String> additionalParameters = entityPlugin.getAdditionalParameters(); if (additionalParameters != null && additionalParameters.size() > 0) persistenceContext.setAdditionalParameters( endpointRequest.getParameterMap(additionalParameters)); return persistenceContext; }