<commit_before>/* Copyright 2004 The JA-SIG Collaborative.  All rights reserved.
 * See license distributed with this file and
 * available online at http://www.uportal.org/license.html
 */
package org.jasig.portal.layout.al.common;

import org.jasig.portal.PortalException;
import org.jasig.portal.layout.al.common.node.ILayoutNode;
import org.jasig.portal.layout.al.common.node.INode;
import org.jasig.portal.layout.al.common.node.INodeDescription;
import org.jasig.portal.layout.al.common.node.INodeId;

/**
 * An interface describing node operation commands of the user layout manager.
 * 
 * @author <NAME>: pkharchenko at unicon.net
 * @version $Revision$
 */
public interface ILayoutManagerCommands {
    /**
     * Add a new node to a current user layout.
     *
     * @param node an <code>INode</code> value of a node to be added.
     * @param parentId an id of a folder to which the new node (channel or folder) should be added.
     * @param nextSiblingId an id of a sibling node (channel or folder) prior to which the new node should be inserted.
     * @return an <code>ILayoutNode</code> value with a newly determined Id.
     * @exception PortalException if an error occurs
     */
    public ILayoutNode addNode(INode node, INodeId parentId, INodeId nextSiblingId) throws PortalException;
    /**
     * Move a node (channel or folder) from one location to another.<commit_msg>fixed javadoc for the addNode() method<commit_after>/* Copyright 2004 The JA-SIG Collaborative.  All rights reserved.
 * See license distributed with this file and
 * available online at http://www.uportal.org/license.html
 */
package org.jasig.portal.layout.al.common;

import org.jasig.portal.PortalException;
import org.jasig.portal.layout.al.common.node.ILayoutNode;
import org.jasig.portal.layout.al.common.node.INode;
import org.jasig.portal.layout.al.common.node.INodeDescription;
import org.jasig.portal.layout.al.common.node.INodeId;

/**
 * An interface describing node operation commands of the user layout manager.
 * 
 * @author <NAME>: pkharchenko at unicon.net
 * @version $Revision$
 */
public interface ILayoutManagerCommands {
    /**
     * Import and attach a new node structure to the layout.
     * Note: it's important to understand that the <code>INode</code> supplied will
     * be imported into the layout. In other words, a copy of the structure will be created,
     * and assigned appropriate IDs. Existing IDs will be lost.
     *
     * @param node an <code>INode</code> structure be added.
     * @param parentId an id of a folder to which the new node structure should be added.
     * @param nextSiblingId an id of a sibling node prior to which the new node should be inserted.
     * @return an <code>ILayoutNode</code> value with a newly determined Id.
     * @exception PortalException if an error occurs
     */
    public ILayoutNode addNode(INode node, INodeId parentId, INodeId nextSiblingId) throws PortalException;
    /**
     * Move a node (channel or folder) from one location to another.
{'fraction_non_alphanumeric': 0.08877887788778878, 'fraction_numerical': 0.0026402640264026403, 'mean_word_length': 3.6559139784946235, 'pattern_counts': {'":': 0, '<': 15, '<?xml version=': 0, '>': 15, 'https://': 0, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1919097', 'n_tokens_mistral': 880, 'n_tokens_neox': 874, 'n_words': 325}