aboutsummaryrefslogtreecommitdiffstats
path: root/src/org/apache/fop/viewer/LoadableProperties.java
blob: 1a6e957a74bb0457f94b4b96732c1681b2023258 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
package org.apache.fop.viewer;

import java.io.*;
import java.util.*;

/**
 * Erweitert Hashtable um die Methode load.
 * Die Zeilen der Textdatei, die mit # oder ! anfangen sind Kommentarzeilen.
 * Eine g�ltige Zeile ist entweder eine Kommentarzeile oder eine Zeile mit dem
 * Gleichheitszeichen "in der Mitte".
 * Die Klasse LoadableProperties l�sst im Gegensatz zu der Klasse Properties die
 * Schl�sselwerte mit Leerzeichen zu.
 *
 * @version 02.12.99
 * @author Stanislav.Gorkhover@af-software.de
 *
 */
public class LoadableProperties extends Hashtable {

  public LoadableProperties() {
    super();
  }


  public void load(InputStream inStream) throws IOException {

    BufferedReader in = new BufferedReader(new InputStreamReader(inStream, "8859_1"));

    String aKey;
    String aValue;
    int index;
    String line = getNextLine(in);
    while (line != null) {
      line = line.trim();
      if (isValid(line)) {
        index = line.indexOf("=");
        aKey = line.substring(0, index);
        aValue = line.substring(index + 1);
        put(aKey, aValue);
      }
      line = getNextLine(in);
    }
  }


  private boolean isValid(String str) {
    if (str == null)
      return false;
    if (str.length() > 0) {
      if (str.startsWith("#") || str.startsWith("!")) {
        return false;
      }
    }
    else {
      return false;
    }

    int index = str.indexOf("=");
    if (index > 0 && str.length() > index) {
      return true;
    }
    else {
      System.out.println(getClass().getName() + ": load(): invalid line " +
                         str + "." + " Character '=' missed.");
      return false;
    }
  }

  private String getNextLine(BufferedReader br) {
    try {
      return br.readLine();
    } catch (Exception e) {
      return null;
    }

  }


}