/* * Copyright 2004-2012 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.springframework.webflow.engine.model; import java.util.LinkedList; import org.springframework.util.StringUtils; /** * Model support for states. * * @author Scott Andrews */ public abstract class AbstractStateModel extends AbstractModel { private String id; private String parent; private LinkedList<AttributeModel> attributes; private SecuredModel secured; private LinkedList<AbstractActionModel> onEntryActions; private LinkedList<ExceptionHandlerModel> exceptionHandlers; public AbstractStateModel(String id) { setId(id); } protected void fillCopy(AbstractStateModel copy) { copy.setParent(parent); copy.setAttributes(copyList(attributes)); copy.setSecured((SecuredModel) copy(secured)); copy.setOnEntryActions(copyList(onEntryActions)); copy.setExceptionHandlers(copyList(exceptionHandlers)); } /** * @return the id */ public String getId() { return id; } /** * @param id the id to set */ public void setId(String id) { if (StringUtils.hasText(id)) { this.id = id; } else { this.id = null; } } /** * @return the parent */ public String getParent() { return parent; } /** * @param parent the parent to set */ public void setParent(String parent) { if (StringUtils.hasText(parent)) { this.parent = parent; } else { this.parent = null; } } /** * @return the attributes */ public LinkedList<AttributeModel> getAttributes() { return attributes; } /** * @param attributes the attributes to set */ public void setAttributes(LinkedList<AttributeModel> attributes) { this.attributes = attributes; } /** * @return the secured */ public SecuredModel getSecured() { return secured; } /** * @param secured the secured to set */ public void setSecured(SecuredModel secured) { this.secured = secured; } /** * @return the on entry actions */ public LinkedList<AbstractActionModel> getOnEntryActions() { return onEntryActions; } /** * @param onEntryActions the on entry actions to set */ public void setOnEntryActions(LinkedList<AbstractActionModel> onEntryActions) { this.onEntryActions = onEntryActions; } /** * @return the exception handlers */ public LinkedList<ExceptionHandlerModel> getExceptionHandlers() { return exceptionHandlers; } /** * @param exceptionHandlers the exception handlers to set */ public void setExceptionHandlers(LinkedList<ExceptionHandlerModel> exceptionHandlers) { this.exceptionHandlers = exceptionHandlers; } }