source: greenstone3/trunk/src/java/org/greenstone/server/ScriptReadWrite.java@ 18868

Last change on this file since 18868 was 18868, checked in by ak19, 15 years ago

Updated Server files for Linux GS2 Local Library Server to work the same way as the Windows GS2 LLS. Basically the major difference is that build.properties is no longer used but glisite.cfg or llssite.cfg depending on whether or not gs2-server.sh is launched from gli. There are a few additional changes required for this to keep it consistent with the way the Windows GS2 LLS works: storing the preview URL in glisite.cfg/llssite.cfg while the server is running and removing it when the server has stopped, Server2.java's main method taking the configfile as an additional parameter (and corresponding adjustments in the gsicontrol.sh script of GS2).

  • Property svn:keywords set to Author Date Id Revision
File size: 3.2 KB
Line 
1package org.greenstone.server;
2
3import java.io.BufferedReader;
4import java.io.BufferedWriter;
5import java.io.File;
6import java.io.FileReader;
7import java.io.FileWriter;
8import java.io.PrintWriter;
9import java.util.ArrayList;
10import java.util.StringTokenizer;
11
12public class ScriptReadWrite {
13
14 public ScriptReadWrite() {
15 }
16
17 public ArrayList readInFile(File file) {
18 try {
19 ArrayList fileLines = new ArrayList();
20 String oneLine = null;
21 BufferedReader bufferedReader = new BufferedReader(new FileReader(file));
22 while ((oneLine = bufferedReader.readLine()) != null) {
23 fileLines.add(oneLine);
24 }
25 bufferedReader.close();
26 return fileLines;
27 } catch (Exception e) {
28 System.err.println("exception:" + e);
29 return null;
30 }
31 }
32
33 public void writeOutFile(File file, ArrayList fileLines_in) {
34 try {
35 PrintWriter printWriter = new PrintWriter(new BufferedWriter(new FileWriter(file)));
36 for (int i = 0; i < fileLines_in.size(); i++) {
37 printWriter.println(fileLines_in.get(i));
38 }
39 printWriter.flush();
40 printWriter.close();
41 } catch (Exception e) {
42 System.err.println("exception:" + e);
43 }
44 }
45
46 public ArrayList queryReplace(ArrayList fileLines_ex, String param,
47 String newValue) {
48 // only replace existing, don't append if param does not exist
49 return replaceOrAddLine(fileLines_ex, param, newValue, false);
50 }
51
52 // if the parameter exists, then a replace is performed, else the parameter-value
53 // is appended
54 public ArrayList replaceOrAddLine(ArrayList fileLines_ex, String param, String newValue,
55 boolean replaceElseAdd)
56 {
57 String oneLine = null;
58 String newLine = null;
59 String name = null;
60 // int oneLine_length = 0;
61 param = param.trim();
62 // int param_length = param.length();
63
64 for (int i = 0; i < fileLines_ex.size(); i++) {
65 oneLine = ((String) fileLines_ex.get(i)).trim();
66 // oneLine_length = oneLine.length();
67 StringTokenizer st = new StringTokenizer(oneLine, "=");
68 if (st.hasMoreTokens()) {
69 name = st.nextToken();
70 if (param.equals(name)) {
71 newLine = param + "=" + newValue;
72 fileLines_ex.set(i, newLine);
73 replaceElseAdd = false; // replaced, no longer need to add in any case
74 break;
75 }
76 }
77 }
78 // If we've made no replacement and need to append the new item
79 if(replaceElseAdd) {
80 fileLines_ex.add(param+"="+newValue);
81 }
82 return fileLines_ex;
83 }
84
85 public String existValue(ArrayList fileLines, String querytext) {
86 String retValue = null;
87 String oneline = null;
88 String name = null;
89 // String value=null;
90 // int oneline_length = 0;
91 querytext = querytext.trim();
92 // int querytext_length = querytext.length();
93 for (int i = 0; i < fileLines.size(); i++) {
94 oneline = ((String) fileLines.get(i)).trim();
95 // oneline_length = oneline.length();
96 StringTokenizer st = new StringTokenizer(oneline, "=");
97 if (st.hasMoreTokens()) {
98 name = st.nextToken();
99 if (querytext.equals(name)) {
100 if (st.hasMoreTokens()) {
101 retValue = st.nextToken();
102 retValue = retValue.trim();
103 if (retValue.equals("")) {
104 retValue = null;
105 }
106 } else {
107 retValue = null;
108 }
109 break;
110 }
111 }
112 }
113 return retValue;
114 }
115}
Note: See TracBrowser for help on using the repository browser.