1 package org.apache.maven.doxia.module.twiki.parser;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.apache.maven.doxia.sink.Sink;
23
24
25
26
27
28
29 class ListItemBlock
30 extends AbstractFatherBlock
31 {
32 private final ListBlock innerList;
33
34
35
36
37 ListItemBlock( final Block[] blocks )
38 {
39 this( blocks, null );
40 }
41
42
43
44
45
46
47
48 ListItemBlock( final Block[] blocks, final ListBlock innerList )
49 {
50 super( blocks );
51 this.innerList = innerList;
52 }
53
54
55 final void before( final Sink sink )
56 {
57 sink.listItem();
58 }
59
60
61 final void after( final Sink sink )
62 {
63 if ( innerList != null )
64 {
65 innerList.traverse( sink );
66 }
67 sink.listItem_();
68 }
69
70
71
72
73
74
75 final ListBlock getInnerList()
76 {
77 return innerList;
78 }
79
80
81 public final boolean equals( final Object obj )
82 {
83 boolean ret = false;
84
85 if ( obj == this )
86 {
87 ret = true;
88 }
89 else if ( obj == null || this == null )
90 {
91 ret = false;
92 }
93 else if ( obj instanceof ListItemBlock )
94 {
95 final ListItemBlock li = (ListItemBlock) obj;
96 if ( this.innerList == null && li.innerList == null )
97 {
98 ret = super.equals( li );
99 }
100 else if ( this.innerList == null && li.innerList != null )
101 {
102 ret = false;
103 }
104 else
105 {
106 ret = this.innerList.equals( li.innerList ) && super.equals( li );
107 }
108 }
109
110 return ret;
111 }
112
113
114
115
116
117
118 public final int hashCode()
119 {
120 final int magic1 = 17;
121 final int magic2 = 37;
122
123 return magic1 + magic2 * super.hashCode() + ( innerList == null ? 0 : magic2 * innerList.hashCode() );
124 }
125 }