All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.sakaiproject.tool.assessment.facade.QuestionPoolFacadeQueriesAPI Maven / Gradle / Ivy

There is a newer version: 23.3
Show newest version
/**********************************************************************************
 * $URL$
 * $Id$
 ***********************************************************************************
 *
 * Copyright (c) 2004, 2005, 2006, 2007, 2008 The Sakai Foundation
 *
 * Licensed under the Educational Community License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *       http://www.opensource.org/licenses/ECL-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 **********************************************************************************/


package org.sakaiproject.tool.assessment.facade;

import java.util.Collection;
import java.util.List;
import java.util.Map;

import org.sakaiproject.tool.assessment.data.ifc.assessment.ItemDataIfc;
import org.sakaiproject.tool.assessment.data.model.Tree;
import org.sakaiproject.tool.assessment.data.dao.questionpool.QuestionPoolAccessData;
import org.sakaiproject.tool.assessment.data.dao.questionpool.QuestionPoolData;
import org.sakaiproject.tool.assessment.data.dao.questionpool.QuestionPoolItemData;
import org.sakaiproject.tool.assessment.osid.shared.impl.IdImpl;

public interface QuestionPoolFacadeQueriesAPI
{

  public IdImpl getQuestionPoolId(String id);

  public IdImpl getQuestionPoolId(Long id);

  public IdImpl getQuestionPoolId(long id);

  /**
   * Get a list of all the pools in the site. Note that questions in each pool will not
   * be populated. We must keep this list updated.
   */
  public List getAllPools();

  /**
   * Get all the pools that the agent has access to. The easiest way seems to be
   * #1. get all the existing pool
   * #2. get all the QuestionPoolAccessData record of the agent
   * #3. go through the existing pools and check it against the QuestionPoolAccessData (qpa) record to see if
   * the agent is granted access to it. qpa record (if exists) always trumps the default access right set
   * up for a pool
   * e.g. if the defaultAccessType for a pool is ACCESS_DENIED but the qpa record say ADMIN, then access=ADMIN
   * e.g. if the defaultAccessType for a pool is ADMIN but the qpa record say ACCESS_DENIED, then access=ACCESS_DENIED
   * e.g. if no qpa record exists, then access rule will follow the defaultAccessType set by the pool
   */
  public QuestionPoolIteratorFacade getAllPools(String agentId);

  public QuestionPoolIteratorFacade getAllPoolsWithAccess(String agentId);
  
  public List getBasicInfoOfAllPools(String agentId);
 
  public boolean poolIsUnique(Long questionPoolId, String title, Long parentPoolId, String agentId);

  public List getAllItems(Long questionPoolId);

  public List getAllItemsIds(final Long questionPoolId);

  public List getAllItemFacadesOrderByItemText(Long questionPoolId,
					       String orderBy, String ascending);

  public List getAllItemFacadesOrderByItemType(Long questionPoolId,
					       String orderBy, String ascending);

  public List getAllItemFacades(Long questionPoolId);

  /**
   * This method returns an ItemFacade that we can use to construct our ItemImpl
   */
  public ItemFacade getItem(String id);

  /**
   * Get a pool based on poolId. I am not sure why agent is not used though is being parsed.
   *
   * @param poolid DOCUMENTATION PENDING
   * @param agent DOCUMENTATION PENDING
   *
   * @return DOCUMENTATION PENDING
   */
  public QuestionPoolFacade getPool(Long poolId, String agent);

  public void setPoolAccessType(QuestionPoolData qpp, String agentId);

  public QuestionPoolAccessData getQuestionPoolAccessData(Long poolId,
      String agentId);

  /**
   * DOCUMENTATION PENDING
   *
   * @param ids DOCUMENTATION PENDING
   * @param sectionId DOCUMENTATION PENDING
   */
  public void addItemsToSection(Collection ids, long sectionId);

  /**
   * add a question to a pool
   *
   * @param itemId DOCUMENTATION PENDING
   * @param poolId DOCUMENTATION PENDING
   */
  public void addItemToPool(QuestionPoolItemData qpi);

  /**
   * Delete pool and questions attached to it plus any subpool under it
   *
   * @param itemId DOCUMENTATION PENDING
   * @param poolId DOCUMENTATION PENDING
   */
  public void deletePool(Long poolId, String agent, Tree tree);

  /**
   * Move pool under another pool. The dest pool must not be the
   * descendant of the source nor can they be the same pool .
   */
  public void movePool(String agentId, Long sourcePoolId, Long destPoolId);

  /**
   * Is destination a descendant of the source?
   */
  public boolean isDescendantOf(QuestionPoolFacade destPool,
      QuestionPoolFacade sourcePool);

  /**
   * DOCUMENTATION PENDING
   *
   * @param itemId DOCUMENTATION PENDING
   * @param poolId DOCUMENTATION PENDING
   */
  public void removeItemFromPool(Long itemId, Long poolId);

  /**
   * DOCUMENTATION PENDING
   *
   * @param itemId DOCUMENTATION PENDING
   * @param poolId DOCUMENTATION PENDING
   */
  public void moveItemToPool(Long itemId, Long sourceId, Long destId);

  /**
   * DOCUMENTATION PENDING
   *
   * @param pool DOCUMENTATION PENDING
   */
  public QuestionPoolFacade savePool(QuestionPoolFacade pool);

  /**
   * Get all the children pools of a pool. Return a list of QuestionPoolData
   * should return QuestionPool instead - need fixing, daisyf
   *
   * @param itemId DOCUMENTATION PENDING
   * @param poolId DOCUMENTATION PENDING
   */

  public List getSubPools(Long poolId);

  public long getSubPoolSize(Long poolId);

  /**
   * get number of subpools for each pool in a single query.
   * returns a List of Long arrays. Each array is 0: poolid, 1: count of subpools
   *
   * @param agent
   * @return List
   */
  public List getSubPoolSizes(String agent);

  /**
   * DOCUMENTATION PENDING
   *
   * @param itemId DOCUMENTATION PENDING
   * @param poolId DOCUMENTATION PENDING
   */

  public boolean hasSubPools(Long poolId);

  /**
   * Return a list of questionPoolId (java.lang.Long)
   *
   * @param itemId DOCUMENTATION PENDING
   * @param poolId DOCUMENTATION PENDING
   */

  public List getPoolIdsByAgent(String agentId);

  /**
   * Return a list of questionPoolId (java.lang.Long)
   *
   * @param itemId DOCUMENTATION PENDING
   * @param poolId DOCUMENTATION PENDING
   */

  public List getPoolIdsByItem(String itemId);

  /**
   * Copy a pool to a new location.
   */
  public void copyPool(Tree tree, String agentId, Long sourceId, Long destId, String prependString1, String prependString2);

  public Long add();

  public QuestionPoolFacade getPoolById(Long questionPoolId);

  public Map getQuestionPoolItemMap();

  public Long copyItemFacade(ItemDataIfc itemData);
  
  public ItemFacade copyItemFacade2(ItemDataIfc itemData);

  public Integer getCountItemFacades(Long questionPoolId);
  
  public Map getCountItemFacadesForUser(String agentId);
  
  /**
   * Shared Pools with other user
   */
  public void addQuestionPoolAccess(Tree tree, String user, Long questionPoolId, Long accessTypeId);
     
  public void removeQuestionPoolAccess(Tree tree, String user, Long questionPoolId, Long accessTypeId);   

  public List getAgentsWithAccess(final Long questionPoolId);
  
  //SAM-2049
  public void transferPoolsOwnership(String ownerId, List poolIds);

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy