1 /* 2 * Licensed to the Apache Software Foundation (ASF) under one or more 3 * contributor license agreements. See the NOTICE file distributed with 4 * this work for additional information regarding copyright ownership. 5 * The ASF licenses this file to You under the Apache License, Version 2.0 6 * (the "License"); you may not use this file except in compliance with 7 * the License. You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 */ 17 package org.apache.commons.scxml2.model; 18 19 import java.io.Serializable; 20 21 /** 22 * The class in this SCXML object model that corresponds to the 23 * <initial> SCXML pseudo state element. 24 * 25 */ 26 public class Initial implements Serializable { 27 28 /** 29 * Serial version UID. 30 */ 31 private static final long serialVersionUID = 1L; 32 33 /** 34 * The parent State of this initial 35 */ 36 private State parent; 37 38 /** 39 * A conditionless transition that is always enabled and will be taken 40 * as soon as the state is entered. The target of the transition must 41 * be a descendant of the parent state of initial. 42 */ 43 private SimpleTransition transition; 44 45 /** 46 * Indicator if this Initial was automatically generated and not loaded from the SCXML Document itself 47 */ 48 private boolean generated; 49 50 /** 51 * Constructor. 52 */ 53 public Initial() { 54 super(); 55 } 56 57 /** 58 * Get the parent State. 59 * 60 * @return Returns the parent state 61 */ 62 public final State getParent() { 63 return parent; 64 } 65 66 67 /** 68 * Set the parent TransitionTarget. 69 * 70 * @param parent The parent state to set 71 */ 72 public final void setParent(final State parent) { 73 this.parent = parent; 74 if (transition != null) { 75 transition.setParent(parent); 76 } 77 } 78 79 /** 80 * Get the initial transition. 81 * 82 * @return Returns the transition. 83 */ 84 public final SimpleTransition getTransition() { 85 return transition; 86 } 87 88 /** 89 * Set the initial transition. 90 * 91 * @param transition The transition to set. 92 */ 93 public final void setTransition(final SimpleTransition transition) { 94 this.transition = transition; 95 this.transition.setParent(getParent()); 96 } 97 98 /** 99 * @return true if this Initial was automatically generated and not loaded from the SCXML Document itself 100 */ 101 public final boolean isGenerated() { 102 return generated; 103 } 104 105 /** 106 * Marks this Initial as automatically generated after loading the SCXML Document 107 */ 108 public final void setGenerated() { 109 this.generated = true; 110 } 111 } 112