01: package org.drools.ruleflow.core.impl;
02:
03: /*
04: * Copyright 2005 JBoss Inc
05: *
06: * Licensed under the Apache License, Version 2.0 (the "License");
07: * you may not use this file except in compliance with the License.
08: * You may obtain a copy of the License at
09: *
10: * http://www.apache.org/licenses/LICENSE-2.0
11: *
12: * Unless required by applicable law or agreed to in writing, software
13: * distributed under the License is distributed on an "AS IS" BASIS,
14: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15: * See the License for the specific language governing permissions and
16: * limitations under the License.
17: */
18:
19: import java.io.Serializable;
20:
21: import org.drools.ruleflow.common.datatype.DataType;
22: import org.drools.ruleflow.common.datatype.impl.type.UndefinedDataType;
23: import org.drools.ruleflow.core.Variable;
24:
25: /**
26: * Default implementation of a variable.
27: *
28: * @author <a href="mailto:kris_verlaenen@hotmail.com">Kris Verlaenen</a>
29: */
30: public class VariableImpl implements Variable, Serializable {
31:
32: private static final long serialVersionUID = 400L;
33:
34: private String name;
35: private DataType type;
36: private Serializable value;
37:
38: public VariableImpl() {
39: this .type = UndefinedDataType.getInstance();
40: }
41:
42: public String getName() {
43: return this .name;
44: }
45:
46: public void setName(final String name) {
47: this .name = name;
48: }
49:
50: public DataType getType() {
51: return this .type;
52: }
53:
54: public void setType(final DataType type) {
55: if (type == null) {
56: throw new IllegalArgumentException("type is null");
57: }
58: this .type = type;
59: }
60:
61: public Serializable getValue() {
62: return this .value;
63: }
64:
65: public void setValue(final Serializable value) {
66: if (this .type.verifyDataType(value)) {
67: this .value = value;
68: } else {
69: final StringBuffer sb = new StringBuffer();
70: sb.append("Value <");
71: sb.append(value);
72: sb.append("> is not valid for datatype: ");
73: sb.append(this .type);
74: throw new IllegalArgumentException(sb.toString());
75: }
76: }
77:
78: public String toString() {
79: return this.name;
80: }
81: }
|