com.redhat.rhn.frontend.nav.NavNode.java Source code

Java tutorial

Introduction

Here is the source code for com.redhat.rhn.frontend.nav.NavNode.java

Source

/**
 * Copyright (c) 2009--2014 Red Hat, Inc.
 *
 * This software is licensed to you under the GNU General Public License,
 * version 2 (GPLv2). There is NO WARRANTY for this software, express or
 * implied, including the implied warranties of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2
 * along with this software; if not, see
 * http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
 *
 * Red Hat trademarks are not licensed under GPLv2. No permission is
 * granted to use or replicate Red Hat trademarks that are incorporated
 * in this software or its documentation.
 */

package com.redhat.rhn.frontend.nav;

import com.redhat.rhn.common.localization.LocalizationService;

import org.apache.commons.lang.StringEscapeUtils;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
 * Class representing a navigation tree node (aka tab)
 * @version $Rev$
 */

public class NavNode {
    private String label;
    private String name;
    private String acl;
    private String target;
    private boolean dominant;
    private boolean invisible;
    private boolean overrideSidenav;
    private boolean showChildrenIfActive;
    private boolean first;
    private boolean last;
    private String permFailRedirect;
    private String activeImage;
    private String inactiveImage;
    private String onClick;
    private String dynamicChildren;

    private List<NavNode> children;
    private List<String> urls;
    private List<String> dirs;

    /**
     * Default constructor
     */
    public NavNode() {
        children = new ArrayList<NavNode>();
        urls = new ArrayList<String>();
        dirs = new ArrayList<String>();
        showChildrenIfActive = true;
    }

    /**
     * Returns an unmodifiableList containing children of the node
     * @return List the children of the node
     */
    public List<NavNode> getNodes() {
        return Collections.unmodifiableList(children);
    }

    /**
     * Adds a child node to the current node
     * @param child The child node
     */
    public void addNode(NavNode child) {
        children.add(child);
    }

    /**
     * Associated a URL with this node
     * @param url The URL (a string, not java.net.URL)
     */
    public void addURL(String url) {
        urls.add(url);
    }

    /**
     * Associated a URL with this node.  This is the primary URL and
     * comes first.  If not called, then the first normal addURL is
     * the primary URL.
     * @param url The URL (a string, not java.net.URL)
     */
    public void addPrimaryURL(String url) {
        urls.add(0, url);
    }

    /**
     * Get URLs associated with this node
     * @return List the associated URLs
     */
    public List<String> getURLs() {
        return Collections.unmodifiableList(urls);
    }

    /**
     * Get Dirs associated with this node
     * @return List the associated dirs
     */
    public List<String> getDirs() {
        return Collections.unmodifiableList(dirs);
    }

    /**
     * Associates a directory with this node
     * @param dir the directory
     */
    public void addDirectory(String dir) {
        dirs.add(dir);
    }

    /**
     *  String version of node
     *  @return String the stringified node
     */
    public String toString() {
        return ToStringBuilder.reflectionToString(this, ToStringStyle.MULTI_LINE_STYLE);
    }

    /* Begin copy/paste constructors */

    /**
     * Gets the current value of label
     * @return String the current value
     */
    public String getLabel() {
        return this.label;
    }

    /**
     * Sets the value of label to new value
     * @param labelIn New value for label
     */
    public void setLabel(String labelIn) {
        this.label = labelIn;
    }

    /**
     * Gets the current value of name
     * @return String the current value
     */
    public String getName() {
        //Return the translated and escaped name
        String unescapedName = LocalizationService.getInstance().getMessage(this.name);
        return StringEscapeUtils.escapeHtml(unescapedName);
    }

    /**
     * Sets the value of name to the localized version of the passed in name.
     * @param nameIn Message key for name
     */
    public void setName(String nameIn) {
        name = nameIn;
    }

    /**
     * Gets the current value of acl
     * @return String the current value
     */
    public String getAcl() {
        return this.acl;
    }

    /**
     * Sets the value of acl to new value
     * @param aclIn New value for acl
     */
    public void setAcl(String aclIn) {
        this.acl = aclIn;
    }

    /**
     * Gets the current value of dominant
     * @return boolean the current value
     */
    public boolean getDominant() {
        return this.dominant;
    }

    /**
     * Sets the value of dominant to new value
     * @param dominantIn New value for dominant
     */
    public void setDominant(boolean dominantIn) {
        this.dominant = dominantIn;
    }

    /**
     * Gets the current value of invisible
     * @return boolean the current value
     */
    public boolean getInvisible() {
        return this.invisible;
    }

    /**
     * Sets the value of invisible to new value
     * @param invisibleIn New value for invisible
     */
    public void setInvisible(boolean invisibleIn) {
        this.invisible = invisibleIn;
    }

    /**
     * Gets the current value of overrideSidenav
     * @return boolean the current value
     */
    public boolean getOverrideSidenav() {
        return this.overrideSidenav;
    }

    /**
     * Sets the value of overrideSidenav to new value
     * @param overrideSidenavIn New value for overrideSidenav
     */
    public void setOverrideSidenav(boolean overrideSidenavIn) {
        this.overrideSidenav = overrideSidenavIn;
    }

    /**
     * Gets the current value of showChildrenIfActive
     * @return boolean the current value
     */
    public boolean getShowChildrenIfActive() {
        return this.showChildrenIfActive;
    }

    /**
     * Sets the value of showChildrenIfActive to new value
     * @param showChildrenIfActiveIn New value for showChildrenIfActive
     */
    public void setShowChildrenIfActive(boolean showChildrenIfActiveIn) {
        this.showChildrenIfActive = showChildrenIfActiveIn;
    }

    /**
     * Gets the current value of permFailRedirect
     * @return String the current value
     */
    public String getPermFailRedirect() {
        return this.permFailRedirect;
    }

    /**
     * Sets the value of permFailRedirect to new value
     * @param permFailRedirectIn New value for permFailRedirect
     */
    public void setPermFailRedirect(String permFailRedirectIn) {
        this.permFailRedirect = permFailRedirectIn;
    }

    /**
     * Gets the current value of activeImage
     * @return String the current value
     */
    public String getActiveImage() {
        return this.activeImage;
    }

    /**
     * Sets the value of activeImage to new value
     * @param activeImageIn New value for activeImage
     */
    public void setActiveImage(String activeImageIn) {
        this.activeImage = activeImageIn;
    }

    /**
     * Gets the current value of inactiveImage
     * @return String the current value
     */
    public String getInactiveImage() {
        return this.inactiveImage;
    }

    /**
     * Sets the value of inactiveImage to new value
     * @param inactiveImageIn New value for inactiveImage
     */
    public void setInactiveImage(String inactiveImageIn) {
        this.inactiveImage = inactiveImageIn;
    }

    /**
     * Gets the current value of onClick
     * @return String the current value
     */
    public String getOnClick() {
        return this.onClick;
    }

    /**
     * Sets the value of onClick to new value
     * @param onClickIn New value for onClick
     */
    public void setOnClick(String onClickIn) {
        this.onClick = onClickIn;
    }

    /**
     * Gets the current value of dynamicChildren
     * @return String the current value
     */
    public String getDynamicChildren() {
        return this.dynamicChildren;
    }

    /**
     * Sets the value of dynamicChildren to new value
     * @param dynamicChildrenIn New value for dynamicChildren
     */
    public void setDynamicChildren(String dynamicChildrenIn) {
        this.dynamicChildren = dynamicChildrenIn;
    }

    /**
     * get the "best" most "proper" URL for this node
     * @return "best" most "proper" URL for this node
     */
    public String getPrimaryURL() {
        if (urls != null && urls.size() > 0) {
            return urls.get(0);
        }
        throw new IndexOutOfBoundsException(
                "attempt to ask for primary URL of " + this.getName() + " node with no URLs associated");
    }

    /**
     * Marks the Node as the first in a list.
     * @param flag true if this Node is the first in a particular level of
     * the tree.
     */
    public void setFirst(boolean flag) {
        first = flag;
        last = false;
    }

    /**
     * Returns true if this Node is the first in a particular level of
     * the tree.
     * @return true if this Node is the first in a particular level of
     * the tree.
     */
    public boolean isFirst() {
        return first;
    }

    /**
     * Marks the Node as the last in a list.
     * @param flag true if this Node is the last in a particular level of
     * the tree.
     */
    public void setLast(boolean flag) {
        last = flag;
        first = false;
    }

    /**
     * Returns true if this Node is the last in a particular level of
     * the tree.
     * @return true if this Node is the last in a particular level of
     * the tree.
     */
    public boolean isLast() {
        return last;
    }

    /**
     * Sets the target of the url.
     * @param tgt link target
     */
    public void setTarget(String tgt) {
        target = tgt;
    }

    /**
     * returns the target for the url
     * @return the target for the url
     */
    public String getTarget() {
        return target;
    }
}