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

javax.faces.flow.Flow Maven / Gradle / Ivy

There is a newer version: 4.1.1
Show newest version
/*
 * Copyright (c) 1997, 2018 Oracle and/or its affiliates. All rights reserved.
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License v. 2.0, which is available at
 * http://www.eclipse.org/legal/epl-2.0.
 *
 * This Source Code may also be made available under the following Secondary
 * Licenses when the conditions for such availability set forth in the
 * Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
 * version 2 with the GNU Classpath Exception, which is available at
 * https://www.gnu.org/software/classpath/license.html.
 *
 * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
 */

package javax.faces.flow;

import java.util.List;
import java.util.Map;
import java.util.Set;
import javax.el.MethodExpression;
import javax.faces.application.NavigationCase;
import javax.faces.lifecycle.ClientWindow;

/**
 * 

Flow is the runtime * representation of a Faces Flow. Once placed into service by the * runtime, an instance of this class is immutable. The implementation * must be thread-safe because instances will be shared across all * usages of the flow within the application.

* * * @since 2.2 */ public abstract class Flow { // /** *

Return the immutable id for this * Flow. This must be unique within the defining document (such as * an Application Configuration Resources file), but need not be * unique within the entire application.

* * @return the id. * @since 2.2 */ public abstract String getId(); /** *

Return the immutable application unique * identifier for the document in which the argument flow is defined.

* * @return the defining document id * @since 2.2 */ public abstract String getDefiningDocumentId(); /** *

Return the immutable id for the * default node that should be activated when this flow is * entered.

* * @return the id of the start node * * @since 2.2 */ public abstract String getStartNodeId(); /** *

Return the {@code MethodExpression} * that must be called by the runtime as the last thing that happens * before exiting this flow. Any {@link FlowScoped} beans declared * for this flow must remain in scope until after control returns * from the method referenced by this {@code MethodExpression}.

* * @return the {@code MethodExpresion} for the finalizer. * @since 2.2 */ public abstract MethodExpression getFinalizer(); /** *

Return the {@code MethodExpression} * that must be called by the runtime immediately after activating * any {@link FlowScoped} beans declared for this flow.

* * @return the {@code MethodExpresion} for the initializer. * @since 2.2 */ public abstract MethodExpression getInitializer(); //
// /** *

Return an immutable data structure * containing the inbound parameters that have been declared for * this flow. See {@link FlowHandler#transition} for the * specification of how these parameters are used. Inbound * parameters are associated with a specific flow instance, while * outbound parameters are associated with a {@link FlowCallNode} * that causes the transition to a new flow.

* * @return the inbound parameters * * @since 2.2 */ public abstract Map getInboundParameters(); /** *

Return an immutable data structure * containing all of the view nodes declared for this flow.

* * @return the view nodes for this flow * @since 2.2 */ public abstract List getViews(); /** *

Return an immutable data structure * containing all of the return nodes declared for this flow.

* * @return the return nodes for this flow. * * @since 2.2 */ public abstract Map getReturns(); /** *

Return an immutable data structure * containing all of the switch nodes declared for this flow.

* * @return the switch nodes for this flow * * @since 2.2 */ public abstract Map getSwitches(); /** *

Return an immutable data structure * containing all the flow call nodes declared for this flow.

* * @return the flow call nodes for this flow * * @since 2.2 */ public abstract Map getFlowCalls(); /** *

Return the {@link FlowCallNode} that * represents calling the {@code targetFlow} from this flow, or * {@code null} if {@code targetFlow} cannot be reached from this * flow.

* * @param targetFlow the flow for which the {@link FlowCallNode} is to be returned * * @return a {@link FlowCallNode} for the argument flow or {@code null} * * @since 2.2 */ public abstract FlowCallNode getFlowCall(Flow targetFlow); /** *

Return an immutable data structure * containing all the method call nodes declared for this flow.

* * @return the method call nodes for this flow * * @since 2.2 */ public abstract List getMethodCalls(); //
// /** *

Return the generic {@link FlowNode} by id, * or {@code null} if not found.

* * @param nodeId the node id for which the {@link FlowNode} is to be returned * * @return the {@link FlowNode} or {@code null} */ public abstract FlowNode getNode(String nodeId); /** *

Return an unmodifiable view of the * navigation cases within this flow.

* * @return the navigation cases, */ public abstract Map> getNavigationCases(); //
// /** *

Get the {@link ClientWindow}'s id and * append "_" and the return from {@link #getId}. Return the result.

* * @return the generated client window id for this flow. * * @param curWindow the * * @since 2.2 */ public abstract String getClientWindowFlowId(ClientWindow curWindow); //
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy