1
22
23 package com.liferay.portal.tools.sql;
24
25 import com.liferay.portal.kernel.util.StringUtil;
26
27 import java.io.BufferedReader;
28 import java.io.IOException;
29 import java.io.StringReader;
30
31
39 public class HypersonicUtil extends DBUtil {
40
41 public static DBUtil getInstance() {
42 return _instance;
43 }
44
45 public String buildSQL(String template) throws IOException {
46 template = convertTimestamp(template);
47 template = replaceTemplate(template, getTemplate());
48
49 template = reword(template);
50 template = StringUtil.replace(template, "\\'", "''");
51
52 return template;
53 }
54
55 protected HypersonicUtil() {
56 }
57
58 protected void buildCreateFile(String databaseName, boolean minimal) {
59 }
60
61 protected String getServerName() {
62 return "hypersonic";
63 }
64
65 protected String[] getTemplate() {
66 return _HYPERSONIC;
67 }
68
69 protected String reword(String data) throws IOException {
70 BufferedReader br = new BufferedReader(new StringReader(data));
71
72 StringBuilder sb = new StringBuilder();
73
74 String line = null;
75
76 while ((line = br.readLine()) != null) {
77 if (line.startsWith(ALTER_COLUMN_TYPE)) {
78 String[] template = buildColumnTypeTokens(line);
79
80 line = StringUtil.replace(
81 "alter table @table@ alter column @type@ @nullable@;",
82 REWORD_TEMPLATE, template);
83 }
84 else if (line.startsWith(ALTER_COLUMN_NAME)) {
85 String[] template = buildColumnNameTokens(line);
86
87 line = StringUtil.replace(
88 "alter table @table@ alter column @old-column@ rename to " +
89 "@new-column@;",
90 REWORD_TEMPLATE, template);
91 }
92
93 sb.append(line);
94 sb.append("\n");
95 }
96
97 br.close();
98
99 return sb.toString();
100 }
101
102 private static String[] _HYPERSONIC = {
103 "//", "true", "false",
104 "'1970-01-01'", "now()",
105 " binary", " bit", " timestamp",
106 " double", " int", " bigint",
107 " longvarchar", " longvarchar", " varchar",
108 "", "commit"
109 };
110
111 private static HypersonicUtil _instance = new HypersonicUtil();
112
113 }