Package com.gentics.cr.nav

Source Code of com.gentics.cr.nav.BreadcrumbHelper

package com.gentics.cr.nav;

import java.util.List;
import java.util.Vector;

import com.gentics.cr.CRResolvableBean;

/**
* Provides helper methods to generate a breadcrumb.
* @author bigbear3001
*
*/
public final class BreadcrumbHelper {

  /**
   * default name of the folderattribute, used when no explicit attributename
   * was given.
   */
  public static final String DEFAULT_FOLDERATTRIBUTE = "folder_id";

  /**
   * Private Constructor to prevent initialization.
   */
  private BreadcrumbHelper() {
  }

  /**
   * Get all parents of the given resolvable using
   * {@value #DEFAULT_FOLDERATTRIBUTE} as attribute to get the parent element.
   * @param resolvable - resolvable to get the parents from.
   * @return List containing the parents in descending order:<br>
   * [0]  => ROOT<br>
   * [..] => Folders<br>
   * [n]  => Page<br>
   */
  public static List<CRResolvableBean> getParents(final CRResolvableBean resolvable) {
    return getParents(resolvable, DEFAULT_FOLDERATTRIBUTE);
  }

  /**
   * Get all parents of the given resolvable.
   * @param resolvable - resolvable to get the parents from.
   * @param folderattribute - attribute name to get the parent of an element
   * @return List containing the parents in descending order:<br>
   * [0]  => ROOT<br>
   * [..] => Folders<br>
   * [n]  => Page<br>
   */
  public static List<CRResolvableBean> getParents(final CRResolvableBean resolvable, final String folderattribute) {
    Vector<CRResolvableBean> parents = new Vector<CRResolvableBean>();
    CRResolvableBean parent;
    CRResolvableBean current = resolvable;
    while ((parent = (CRResolvableBean) current.get(folderattribute)) != null) {
      parents.add(0, parent);
      current = parent;
    }
    return parents;
  };

}
TOP

Related Classes of com.gentics.cr.nav.BreadcrumbHelper

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.