d3d7897e7e9f7cd43edc035d1280c1e53471da70
[potlatch2.git] / org / as3yaml / nodes / Node.as
1 /* Copyright (c) 2007 Derek Wischusen
2  *
3  * Permission is hereby granted, free of charge, to any person obtaining a copy of 
4  * this software and associated documentation files (the "Software"), to deal in 
5  * the Software without restriction, including without limitation the rights to 
6  * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies 
7  * of the Software, and to permit persons to whom the Software is furnished to do
8  * so, subject to the following conditions:
9  * 
10  * The above copyright notice and this permission notice shall be included in all
11  * copies or substantial portions of the Software.
12  * 
13  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 
14  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
15  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 
16  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 
17  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 
18  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 
19  * SOFTWARE.
20  */
21
22 package org.as3yaml.nodes {
23         import flash.utils.getQualifiedClassName;
24         
25
26 public class Node {
27     private var tag:String;
28     private var value:Object;
29     private var hash:int= -1;
30
31   public function Node(tag:String, value:Object) {
32         this.tag = tag;
33         this.value = value;
34     }
35
36     public function getTag():String{
37         return this.tag;
38     }
39
40     public function getValue():Object{
41         return this.value;
42     }
43
44 /*    public function hashCode():int{
45         if(hash == -1) {
46             hash = 3;
47             hash += (null == tag) ? 0: 3*tag.hashCode();
48             hash += (null == value) ? 0: 3*value.hashCode();
49         }
50         return hash;
51     }
52 */
53     public function equals(oth:Object):Boolean{
54         if(oth is Node) {
55             var nod:Node= Node(oth);
56             return ((this.tag != null) ? this.tag == (nod.tag) : nod.tag == null) && 
57                 ((this.value != null) ? this.value == (nod.value) : nod.value == null);
58         }
59         return false;
60     }
61
62     public function toString():String{
63         return "#<" + getQualifiedClassName(this) + " (tag=" + getTag() + ", value=" + getValue()+")>";
64     }
65 }
66 }