1
+ package main ;
2
+
1
3
import org .pmw .tinylog .Logger ;
2
4
3
5
import java .util .ArrayList ;
4
6
import java .util .Arrays ;
5
7
import java .util .List ;
6
8
7
9
/**
8
- * Parser object which interprets a given text file and creates an interpreted 'Item' object
10
+ * main. Parser object which interprets a given text file and creates an interpreted 'main. Item' object
9
11
*/
10
12
public class Parser {
11
13
@@ -32,13 +34,13 @@ public class Parser {
32
34
public static String SUBJECT = "SUBJECT" ;
33
35
public static String TITLE = "TITLE" ;
34
36
public static String TYPE = "TYPE" ;
35
- public static String [] ALL_OPTIONS =
37
+ public static String [] ALL_OPTIONS =
36
38
{ AUDIENCE , COVERAGE , DATE , DESCRIPTION , FILENAME , FORMAT , IDENTIFIER , LANGUAGE ,
37
39
NOTE , PUBLISHER , RELATION , RIGHTS , RIGHTSHOLDER , SUBJECT , TITLE , TYPE };
38
40
39
41
//modes
40
- protected enum mode { CONTRIBUTORS , ARTICLES , SUBJECT , NULL }
41
- private mode current_mode = mode .NULL ;
42
+ public enum mode { CONTRIBUTORS , ARTICLES , SUBJECT , NULL }
43
+ protected mode current_mode = mode .NULL ;
42
44
43
45
//critical elements
44
46
private ArrayList <String > lsHeaderOptions ;
@@ -47,28 +49,16 @@ protected enum mode { CONTRIBUTORS, ARTICLES, SUBJECT, NULL }
47
49
private String current_qualifier ;
48
50
49
51
52
+
50
53
// - constructors - //
51
54
52
55
/**
53
56
* base constructor which initializes object state and sets defaults
54
57
*/
55
58
public Parser (){
56
59
57
- //initialize header options
58
- lsHeaderOptions = new ArrayList <String >();
59
-
60
- /* set to default header:
61
- * 0: title | 'Title of the Issue'
62
- * 1: relation.isPartOfSeries | 'Volume ##, Number ##, "
63
- * 2: date.issued | '1993-03-26'
64
- * 3: title.alternative | ''
65
- * 4: filename | 'filename.pdf'
66
- */
67
- lsHeaderOptions .add (TITLE );
68
- lsHeaderOptions .add (RELATION + SPLIT_OPTION + "ISPARTOFSERIES" );
69
- lsHeaderOptions .add (DATE + SPLIT_OPTION + "ISSUED" );
70
- lsHeaderOptions .add (TITLE + SPLIT_OPTION + "ALTERNATIVE" );
71
- lsHeaderOptions .add (FILENAME );
60
+ //initialize header
61
+ initHeader ();
72
62
73
63
//initialize list of shared values
74
64
lsShared = new ArrayList <String []>();
@@ -212,6 +202,24 @@ else if (current_mode == mode.CONTRIBUTORS) {
212
202
213
203
// - helpers - //
214
204
205
+ private void initHeader (){
206
+ //initialize header options
207
+ lsHeaderOptions = new ArrayList <String >();
208
+
209
+ /* set to default header:
210
+ * 0: title | 'Title of the Issue'
211
+ * 1: relation.isPartOfSeries | 'Volume ##, Number ##, "
212
+ * 2: date.issued | '1993-03-26'
213
+ * 3: title.alternative | ''
214
+ * 4: filename | 'filename.pdf'
215
+ */
216
+ lsHeaderOptions .add (TITLE );
217
+ lsHeaderOptions .add (RELATION + SPLIT_OPTION + "ISPARTOFSERIES" );
218
+ lsHeaderOptions .add (DATE + SPLIT_OPTION + "ISSUED" );
219
+ lsHeaderOptions .add (TITLE + SPLIT_OPTION + "ALTERNATIVE" );
220
+ lsHeaderOptions .add (FILENAME );
221
+ }
222
+
215
223
/**
216
224
* check list of header options sent in to see if they are valid
217
225
* @param lsOptions the set of custom options the user established for the header
@@ -250,7 +258,7 @@ private static boolean containsAny(String[] target, String given){
250
258
251
259
/* - Mode Entry - */
252
260
253
- protected static mode determineMode (String str ){
261
+ public static mode determineMode (String str ){
254
262
255
263
if (matchTableOfContents (str ) ){ return mode .ARTICLES ; }
256
264
else if (matchContributor (str )){ return mode .CONTRIBUTORS ; }
0 commit comments