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
18 package org.apache.shale.dialog.basic.config;
19
20 import org.apache.shale.dialog.basic.model.Transition;
21
22 /***
23 * <p>{@link TransitionImpl} is a basic implementation of
24 * {@link Transition}.</p>
25 *
26 * @since 1.0.4
27 */
28
29 public final class TransitionImpl implements Transition {
30
31
32 // ------------------------------------------------------ Instance Variables
33
34
35 /***
36 * <p>The logical outcome used to select this {@link Transition}.</p>
37 */
38 private String outcome = null;
39
40
41 /***
42 * <p>The identifier of the target {@link State} for this
43 * {@link Transition}.</p>
44 */
45 private String target = null;
46
47
48 // -------------------------------------------------------------- Properties
49
50
51 /***
52 * {@inheritDoc}
53 */
54 public String getOutcome() {
55
56 return this.outcome;
57
58 }
59
60
61 /***
62 * {@inheritDoc}
63 */
64 public String getTarget() {
65
66 return this.target;
67
68 }
69
70
71 // ---------------------------------------------------------- Public Methods
72
73
74 /***
75 * <p>Render a printable version of this instance.</p>
76 *
77 * @return The printable version of this instance
78 */
79 public String toString() {
80
81 return "Transition[outcome=" + this.outcome +
82 ",target=" + this.target + "]";
83
84 }
85
86
87 // --------------------------------------------------- Configuration Methods
88
89
90 /***
91 * <p>Set the logical outcome used to select this {@link Transition}.</p>
92 *
93 * @param outcome New logical outcome
94 */
95 public void setOutcome(String outcome) {
96
97 this.outcome = outcome;
98
99 }
100
101
102 /***
103 * <p>Set the target {@link State} identifier for this
104 * {@link Transition}.</p>
105 *
106 * @param target New target identifier
107 */
108 public void setTarget(String target) {
109
110 this.target = target;
111
112 }
113
114
115 }