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

org.sakaiproject.tool.assessment.data.model.Tree Maven / Gradle / Ivy

The newest version!
/**********************************************************************************
 * $URL$
 * $Id$
 ***********************************************************************************
 *
 * Copyright (c) 2004, 2005, 2006, 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.data.model;

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

/**
 * originally Tree.java
 * @author [email protected]
 * @version $Id$
 */
public interface Tree extends Serializable
{
  /**
   *
   *
   * @return
   */
  public Long getCurrentId();

  /**
   *
   *
   * @param id
   */
  public void setCurrentId(Long id);

  /**
   *
   *
   * @return
   */
  public boolean currentObjectIsParent();

  /**
   *
   *
   * @return
   */
  public Object getCurrentObject();

  /**
   *
   *
   * @return
   */
  public Object getParent();

  /**
   * This is used to get the String id suitable for use in a
   * javascript tree.
   */
  public String getCurrentObjectHTMLId();

  /**
   * Get the current level.
   *
   * @return A String that represents the level we're on (1 is root node,
   * 2 is first level child, etc..
   */
  public String getCurrentLevel();

  /**
   * This returns a collection of String properties that can be
   * displayed in a table.  If (currentObjectId == null), returns
   * the list of column headers.
   */
  public Collection getCurrentObjectProperties();

  /**
   * This takes in an array of method names used to get the properties.
   * These are used to return a collection of String properties that
   * can then be displayed in a javascript tree.

This does not * have to be implemented -- it will be a dummy method for most * trees. * * i.e. *

   * String[] methods = new String[3];
   * methods[0] = "getName";
   * methods[1] = "getNumberOfSubpools";
   * methods[2] = "getDescription";
   * 

* * Which might produce:
* { "Biology 101", "3", "Basic Biology Questions" }
* when getCurrentObjectProperties() is called. */ public void setPropertyMethods(String[] methods); /** * * * @return */ public Map getAllObjects(); /** * A collection of objects in proper sorted order for a tree. */ public Collection getSortedObjects(); /** * A collection of objects in proper sorted order for a subpool tree. */ public Collection getSortedObjects(Long parentId); /** * * * @param parentID * * @return */ public Map getChildren(Long parentID); /** * * * @return */ public Map getChildren(); /** * * * @param parentID * * @return */ public List getChildList(Long parentID); /** * * * @return */ public List getChildList(); /** * * * @return */ public List getRootNodeList(); /** * This gets the property by which siblings will be sorted. */ public String getSortProperty(); /** * This sets the property by which siblings will be sorted. */ public void setSortProperty(String sortBy); /** * This sorts the tree by the property . */ public void sortByProperty(String sortProperty,boolean sortAscending); /** * THis checks to see if given two pools have a common ancestor */ public boolean haveCommonRoot(Long poolIdA,Long poolIdB); /** * Is a pool a descendant of the other? */ public boolean isDescendantOf(Long poolA,Long poolB); /** * This returns the level of the pool inside a pool tree, Root being 0. */ public int poolLevel(Long poolId); }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy