Original 2.4
[marc4j.git] / src / org / marc4j / marc / VariableField.java
1 //$Id: VariableField.java,v 1.10 2006/08/04 12:28:17 bpeters Exp $\r
2 /**\r
3  * Copyright (C) 2004 Bas Peters\r
4  *\r
5  * This file is part of MARC4J\r
6  *\r
7  * MARC4J is free software; you can redistribute it and/or\r
8  * modify it under the terms of the GNU Lesser General Public \r
9  * License as published by the Free Software Foundation; either \r
10  * version 2.1 of the License, or (at your option) any later version.\r
11  *\r
12  * MARC4J is distributed in the hope that it will be useful,\r
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\r
15  * Lesser General Public License for more details.\r
16  *\r
17  * You should have received a copy of the GNU Lesser General Public \r
18  * License along with MARC4J; if not, write to the Free Software\r
19  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA\r
20  */\r
21 package org.marc4j.marc;\r
22 \r
23 import java.io.Serializable;\r
24 \r
25 import org.marc4j.marc.impl.VariableFieldImpl;\r
26 \r
27 /**\r
28  * Represents a variable field in a MARC record.\r
29  * \r
30  * @author Bas Peters\r
31  * @version $Revision: 1.10 $\r
32  */\r
33 public interface VariableField extends Serializable, Comparable {\r
34 \r
35     /**\r
36      * Sets the identifier.\r
37      * \r
38      * <p>\r
39      * The purpose of this identifier is to provide an identifier for\r
40      * persistency.\r
41      * \r
42      * @param id\r
43      *            the identifier\r
44      */\r
45     public void setId(Long id);\r
46 \r
47     /**\r
48      * Returns the identifier.\r
49      * \r
50      * @return Long - the identifier\r
51      */\r
52     public Long getId();\r
53 \r
54     /**\r
55      * Returns the tag name.\r
56      * \r
57      * @return String - the tag name\r
58      */\r
59     public String getTag();\r
60 \r
61     /**\r
62      * Sets the tag name.\r
63      * \r
64      * @param tag\r
65      *            the tag name\r
66      */\r
67     public void setTag(String tag);\r
68 \r
69     /**\r
70      * Returns true if the given regular expression matches a subsequence of a\r
71      * data element within the variable field.\r
72      * \r
73      * <p>\r
74      * See {@link java.util.regex.Pattern} for more information about Java\r
75      * regular expressions.\r
76      * </p>\r
77      * \r
78      * @param pattern\r
79      *            the regular expression\r
80      * @return true if the pattern matches, false othewise\r
81      */\r
82     public abstract boolean find(String pattern);\r
83 \r
84 }\r