View Javadoc

1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   *   http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing,
13   * software distributed under the License is distributed on an
14   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   * KIND, either express or implied.  See the License for the
16   * specific language governing permissions and limitations
17   * under the License.
18   */
19  
20  package org.apache.myfaces.orchestra.conversation.jsf.components;
21  
22  import javax.faces.component.UICommand;
23  import javax.faces.context.FacesContext;
24  import javax.faces.el.ValueBinding;
25  
26  /***
27   * base class for all the conversation components
28   */
29  public abstract class AbstractConversationComponent extends UICommand
30  {
31  	public static final String COMPONENT_FAMILY = "javax.faces.Component";
32  
33  	private String name;
34  
35  	public AbstractConversationComponent()
36  	{
37  		setRendererType(null);
38  	}
39  
40  	public String getFamily()
41  	{
42  		return COMPONENT_FAMILY;
43  	}
44  
45  	public void restoreState(FacesContext context, Object state)
46  	{
47  		Object[] states = (Object[]) state;
48  
49  		super.restoreState(context, states[0]);
50  		name = (String) states[1];
51  	}
52  
53  	public Object saveState(FacesContext context)
54  	{
55  		return new Object[]
56  			{
57  				super.saveState(context),
58  				name
59  			};
60  	}
61  
62  	/***
63  	 * the conversation name
64  	 */
65  	public String getName()
66  	{
67  		if (name != null)
68  		{
69  			return name;
70  		}
71  		ValueBinding vb = getValueBinding("name");
72  		if (vb == null)
73  		{
74  			return null;
75  		}
76  		return (String) vb.getValue(getFacesContext());
77  	}
78  
79  	/***
80  	 * the conversation name
81  	 */
82  	public void setName(String name)
83  	{
84  		this.name = name;
85  	}
86  }