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

cdc.applic.expressions.ast.RenamableNode Maven / Gradle / Ivy

package cdc.applic.expressions.ast;

import java.util.Optional;

import cdc.applic.expressions.literals.Name;
import cdc.applic.expressions.literals.SName;

/**
 * Interface implemented by nodes that can be renamed.
 *
 * @author Damien Carbonne
 */
public interface RenamableNode extends NamedNode {

    public RenamableNode setName(Name name);

    /**
     * @param prefix The prefix.
     * @return This node if its name contains a prefix, or a new node whose name contains {@code prefix}.
     */
    public RenamableNode setPrefixIfMissing(Optional prefix);

    /**
     * @return The node i its name has no prefix, or a new node whose name has no prefix.
     */
    public RenamableNode removePrefix();
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy