22
22
import org.apache.maven.doxia.sink.Sink;
26
25
* Block that represents a link.
28
27
* @author Juan F. Codagnone
28
* @version $Id: LinkBlock.java 705065 2008-10-15 21:46:08Z vsiveton $
31
public class LinkBlock implements Block
36
36
private final String reference;
40
private final String text;
43
* Creates the LinkBlock.
45
* @param reference reference anchor
46
* @param text text to show
41
private final Block content;
44
* Creates the LinkBlock.
46
* @param reference reference anchor
47
* @param text text to display
50
LinkBlock( final String reference, final String text )
52
this( reference, new TextBlock( text ) );
56
* Creates the LinkBlock.
58
* @param reference reference anchor
59
* @param content block with the displayed content
47
60
* @throws IllegalArgumentException if any argument is <code>null</code>
49
public LinkBlock( final String reference, final String text )
62
LinkBlock( final String reference, final Block content )
50
63
throws IllegalArgumentException
52
if ( reference == null || text == null )
65
if ( reference == null || content == null )
54
67
throw new IllegalArgumentException( "arguments can't be null" );
56
69
this.reference = reference;
70
this.content = content;
61
* @see Block#traverse(org.apache.maven.doxia.sink.Sink)
63
74
public final void traverse( final Sink sink )
65
76
sink.link( reference );
77
content.traverse( sink );
72
* @see Object#equals(Object)
75
83
public final boolean equals( final Object obj )
77
85
boolean ret = false;
83
91
else if ( obj instanceof LinkBlock )
85
93
final LinkBlock l = (LinkBlock) obj;
86
ret = reference.equals( l.reference )
87
&& text.equals( l.text );
94
ret = reference.equals( l.reference ) && content.equals( l.content );
94
* @see Object#hashCode()
97
101
public final int hashCode()
99
103
final int magic1 = 17;
100
104
final int magic2 = 37;
102
return magic1 + magic2 * reference.hashCode()
103
+ magic2 * text.hashCode();
106
return magic1 + magic2 * reference.hashCode() + magic2 * content.hashCode();