8fbe0edc2e4b6756bb75b6f45417f3187482aac1
[phpeclipse.git] / archive / org.plog4u.wiki / src / org / plog4u / wiki / filter / FilterUtil.java
1 package org.plog4u.wiki.filter;
2
3 import java.util.List;
4 import java.io.IOException;
5 import java.io.Writer;
6 import java.util.Arrays;
7
8 public class FilterUtil {
9   public static String getImageRoot() {
10     return "theme/images";
11   }
12
13   public static String getSpaceRoot() {
14     return "space";
15   }
16
17   public static String getExecRoot() {
18     return "exec";
19   }
20
21   public static String getCommentsRoot() {
22     return "comments";
23   }
24
25   private static List extensions = Arrays.asList(new String[] { "png", "jpg", "jpeg", "gif" });
26
27   public static String normalizeServerImageName(String wikiLink) {
28     wikiLink = wikiLink.replaceAll(":", "/");
29     return wikiLink.replaceAll(" ", "_");
30   }
31
32   public static String createServerImage(String location, String name, String extension, boolean createHTMLLevel, int level) {
33     StringBuffer filename = new StringBuffer();
34     if (location != null) {
35       filename.append(location);
36       filename.append("/");
37     }
38     String normalized = normalizeServerImageName(name);
39
40     if (location == null && createHTMLLevel) {
41       for (int i = 0; i < level; i++) {
42         filename.append("../");
43       }
44     }
45
46     filename.append(normalized);
47     if (!normalized.startsWith("Image/") && extension != null) {
48       filename.append(".");
49       filename.append(extension);
50     }
51     return filename.toString();
52   }
53
54   public static String createServerImage(String location, String name, String extension) {
55     return createServerImage(location, name, extension, false, 0);
56   }
57
58   public static String createHTMLLink(String location, String name, String extension, boolean createHTMLLevel, int level) {
59     StringBuffer filename = new StringBuffer();
60     if (location != null) {
61         filename.append(location);
62         filename.append("/");
63     }
64 //    System.out.println(filename);
65     String normalized = FilterUtil.normalizeWikiLink(name);
66
67     if (location == null && createHTMLLevel) {
68       for (int i = 0; i < level; i++) {
69         filename.append("../");
70       }
71     }
72
73     filename.append(normalized);
74     if (!normalized.startsWith("Image/")) {
75       filename.append(".");
76       filename.append(extension); 
77     }
78     return filename.toString();
79   }
80
81   public static String createHTMLLink(String location, String name, String extension) {
82     return createHTMLLink(location, name, extension, false, 0);
83   }
84
85   public static String normalizeWikiLink(String wikiLink) {
86     if (wikiLink.length() > 0) {
87       int index = wikiLink.lastIndexOf('/');
88       if (index >= 0) {
89         if (wikiLink.length() == index + 1) {
90           wikiLink = wikiLink.substring(0, index + 1) + wikiLink.substring(index + 1, 1).toUpperCase();
91         } else if (wikiLink.length() > index + 1) {
92           wikiLink = wikiLink.substring(0, index + 1) + wikiLink.substring(index + 1, index + 2).toUpperCase()
93               + wikiLink.substring(index + 2);
94         }
95       } else {
96         if (wikiLink.length() > 1) {
97           wikiLink = wikiLink.substring(0, 1).toUpperCase() + wikiLink.substring(1);
98         } else {
99           wikiLink = wikiLink.substring(0, 1).toUpperCase();
100         }
101       }
102     }
103     wikiLink = wikiLink.replaceAll(":", "/");
104     return wikiLink.replaceAll(" ", "_");
105   }
106 }