public TaggableItem getItem(
     String itemRef, TaggingProvider provider, boolean getMyItemOnly, String taggedItem) {
   TaggableItem item = null;
   if (checkReference(itemRef)) {
     // Only return item to a specified rating (evalutation) provider
     if (ratingProviderIds.contains(provider.getId())) {
       WizardReference reference = WizardReference.getReference(itemRef);
       if (reference != null) {
         WizardPage page = matrixManager.getWizardPage(idManager.getId(reference.getId()));
         if (page != null
             && (page.getStatus().equals(MatrixFunctionConstants.PENDING_STATUS)
                 || page.getStatus().equals(MatrixFunctionConstants.COMPLETE_STATUS))
             && (page.getOwner()
                     .getId()
                     .getValue()
                     .equals(sessionManager.getCurrentSessionUserId())
                 || (!getMyItemOnly && canEvaluate(page)))) {
           item = getItem(page);
         }
       }
     } else {
       // Notify other tagging providers that they aren't accepted here
       // yet
       logger.warn(this + ".getItem(): Provider with id " + provider.getId() + " not allowed!");
     }
   }
   return item;
 }
 public String getContext(String ref) {
   String context = null;
   WizardReference reference = WizardReference.getReference(ref);
   if (reference != null) {
     if (WizardReference.REF_DEF.equals(reference.getType())) {
       context =
           wizardManager.getWizardPageDefinition(idManager.getId(reference.getId())).getSiteId();
     } else {
       context =
           matrixManager
               .getWizardPage(idManager.getId(reference.getId()))
               .getPageDefinition()
               .getSiteId();
     }
   }
   return context;
 }