KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > archive > util > anvl > Element


1 /* Element
2 *
3 * $Id: Element.java,v 1.5 2006/08/26 00:33:38 stack-sf Exp $
4 *
5 * Created on July 26, 2006.
6 *
7 * Copyright (C) 2006 Internet Archive.e.
8 *
9 * This file is part of the Heritrix web crawler (crawler.archive.org).
10 *
11 * Heritrix is free software; you can redistribute it and/or modify
12 * it under the terms of the GNU Lesser Public License as published by
13 * the Free Software Foundation; either version 2.1 of the License, or
14 * any later version.
15 *
16 * Heritrix is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU Lesser Public License for more details.
20 *
21 * You should have received a copy of the GNU Lesser Public License
22 * along with Heritrix; if not, write to the Free Software
23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
24 */

25 package org.archive.util.anvl;
26
27
28 /**
29  * ANVL 'data element'.
30  * Made of a lone {@link Label}, or a {@link Label} plus {@link Value}.
31  *
32  * @author stack
33  * @see <a
34  * HREF="http://www.cdlib.org/inside/diglib/ark/anvlspec.pdf">A Name-Value
35  * Language (ANVL)</a>
36  */

37 class Element {
38     private final SubElement [] subElements;
39     
40     public Element(final Label l) {
41         this.subElements = new SubElement [] {l};
42     }
43     
44     public Element(final Label l, final Value v) {
45         this.subElements = new SubElement [] {l, v};
46     }
47     
48     public boolean isValue() {
49         return this.subElements.length > 1;
50     }
51     
52     public Label getLabel() {
53         return (Label)this.subElements[0];
54     }
55     
56     public Value getValue() {
57         if (!isValue()) {
58             return null;
59         }
60         return (Value)this.subElements[1];
61     }
62     
63     @Override JavaDoc
64     public String JavaDoc toString() {
65         StringBuilder JavaDoc sb = new StringBuilder JavaDoc();
66         for (int i = 0; i < subElements.length; i++) {
67             sb.append(subElements[i].toString());
68             if (i == 0) {
69                 // Add colon after Label.
70
sb.append(':');
71                 if (isValue()) {
72                     // Add space to intro the value.
73
sb.append(' ');
74                 }
75             }
76         }
77         return sb.toString();
78     }
79 }
80
Popular Tags