01: /* Copyright (c) 2006-2007, Vladimir Nikic
02: All rights reserved.
03:
04: Redistribution and use of this software in source and binary forms,
05: with or without modification, are permitted provided that the following
06: conditions are met:
07:
08: * Redistributions of source code must retain the above
09: copyright notice, this list of conditions and the
10: following disclaimer.
11:
12: * Redistributions in binary form must reproduce the above
13: copyright notice, this list of conditions and the
14: following disclaimer in the documentation and/or other
15: materials provided with the distribution.
16:
17: * The name of Web-Harvest may not be used to endorse or promote
18: products derived from this software without specific prior
19: written permission.
20:
21: THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
22: AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23: IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24: ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
25: LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
26: CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
27: SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
28: INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
29: CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
30: ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
31: POSSIBILITY OF SUCH DAMAGE.
32:
33: You can contact Vladimir Nikic by sending e-mail to
34: nikic_vladimir@yahoo.com. Please include the word "Web-Harvest" in the
35: subject line.
36: */
37: package org.webharvest.runtime.variables;
38:
39: import java.util.ArrayList;
40: import java.util.List;
41:
42: /**
43: * Node variable - Single node wrapper.
44: */
45: public class NodeVariable implements IVariable {
46:
47: private Object data;
48:
49: public NodeVariable(Object data) {
50: this .data = data;
51: }
52:
53: public String toString() {
54: if (data == null) {
55: return null;
56: } else if (data instanceof byte[]) {
57: return new String((byte[]) data);
58: } else {
59: return data.toString();
60: }
61: }
62:
63: public byte[] toBinary() {
64: if (data == null) {
65: return null;
66: } else if (data instanceof byte[]) {
67: return (byte[]) data;
68: } else {
69: return data.toString().getBytes();
70: }
71: }
72:
73: public List toList() {
74: List list = new ArrayList();
75: if (!isEmpty()) {
76: list.add(this );
77: }
78:
79: return list;
80: }
81:
82: public String toText() {
83: return toString();
84: }
85:
86: public boolean isEmpty() {
87: return (data == null) || ("".equals(toString()));
88: }
89:
90: public Object getWrappedObject() {
91: return this.data;
92: }
93:
94: }
|