• R/O
  • SSH
  • HTTPS

clearfybusiness: Commit


Commit MetaInfo

Révision218 (tree)
l'heure2019-07-18 14:50:16
Auteurdaianji

Message de Log

H2db conpact command implemented

Change Summary

Modification

--- org.clearfy/org.clearfy.datawrapper/src/main/java/org/clearfy/datawrapper/ClearfyDatabaseException.java (revision 217)
+++ org.clearfy/org.clearfy.datawrapper/src/main/java/org/clearfy/datawrapper/ClearfyDatabaseException.java (revision 218)
@@ -24,7 +24,7 @@
2424 package org.clearfy.datawrapper;
2525
2626 /**
27- *
27+ *
2828 * @author Takahiro MURAKAMI
2929 */
3030 public class ClearfyDatabaseException extends Exception {
--- org.clearfy/org.clearfy.datawrapper/src/main/java/org/clearfy/datawrapper/Column.java (revision 217)
+++ org.clearfy/org.clearfy.datawrapper/src/main/java/org/clearfy/datawrapper/Column.java (revision 218)
@@ -79,12 +79,12 @@
7979 * パスワードnull可
8080 */
8181 public static final int VISIBLE_TYPE_PASSWORD_NOREQ = 4;
82-
82+
8383 /**
8484 * 長いテキスト
8585 */
8686 public static final int VISIBLE_TYPE_TEXTAREA = 5;
87-
87+
8888 /**
8989 * 長いリッチテキスト
9090 */
@@ -188,6 +188,7 @@
188188 private boolean includeMd5 = true;
189189
190190 public <T> Column() {
191+
191192 }
192193
193194 /**
@@ -261,10 +262,10 @@
261262 String rvalue = "%s.%s";
262263 String colName = this.getName();
263264 String tableName = (this.getTable()
264- .hasAlias())
265- ? this.getTable()
266- .getAlias() : this.getTable()
267- .getName();
265+ .hasAlias())
266+ ? this.getTable()
267+ .getAlias() : this.getTable()
268+ .getName();
268269 rvalue = String.format(rvalue, tableName, colName);
269270 return rvalue;
270271 }
@@ -288,7 +289,14 @@
288289 }
289290
290291 public Column setValue(T value) {
291- this.value = value;
292+ if (value != null
293+ && this.getType().equals(String.class.getSimpleName())) {
294+ String vvalue = (String) value;
295+ vvalue = vvalue.replaceAll("'", "''");
296+ this.value = (T) vvalue;
297+ } else {
298+ this.value = value;
299+ }
292300 this.existValue = true;
293301 return this;
294302 }
@@ -376,7 +384,7 @@
376384 *
377385 * @return このカラム(続けて定義を記述するため.)
378386 */
379- public Column addRelationWith(Class<? extends Table> table) {
387+ public Column addRelationWith(Class<? extends Table> table) throws ClearfyDatabaseException {
380388 return this.addRelationWith(table, this);
381389 }
382390
@@ -383,15 +391,18 @@
383391 /**
384392 * カラムの参照先を登録する. テーブルと参照先カラムを明示する必要がある場合は、このメソッドでテーブルとカラムを指定する.
385393 *
386- * @param table 参照先のテーブルクラス
394+ * @param table 参照先のテーブルクラス
387395 * @param column 参照先のカラム
388396 *
389397 * @return このカラム(続けて定義を記述するため.)
398+ * @throws org.clearfy.datawrapper.ClearfyDatabaseException
399+ *  同一テーブル内のリレーションが宣言されたとき
390400 */
391- public Column addRelationWith(Class<? extends Table> table, Column column) {
401+ public Column addRelationWith(Class<? extends Table> table, Column column) throws ClearfyDatabaseException {
392402
393403 this.relation = false;
394404
405+ //同一テーブル内の宣言は登録しない(自動処理できないため)。
395406 if (!table.equals(this.myTable.getClass())) {
396407 boolean exist = false;
397408 for (RelationInfo inf : this) {
@@ -404,6 +415,8 @@
404415 this.add(new RelationInfo(table, column));
405416 this.relation = true;
406417 }
418+ } else {
419+ throw new ClearfyDatabaseException("同一テーブル内のリレーション宣言が行われています。");
407420 }
408421 return this;
409422 }
@@ -419,7 +432,7 @@
419432
420433 public Condition sameValueOf(int value) {
421434 Condition rvalue = new Condition(this, Condition.EQUALS, String.valueOf(
422- value));
435+ value));
423436 return rvalue;
424437 }
425438
@@ -539,7 +552,7 @@
539552 T rvalue = null;
540553 try {
541554 if (this.getType()
542- .equals(char[].class.getSimpleName())) {
555+ .equals(char[].class.getSimpleName())) {
543556 String sz = rs.getString(this.getName());
544557 return (T) sz.toCharArray();
545558 } else {
@@ -547,7 +560,7 @@
547560 }
548561 } catch (SQLException ex) {
549562 Logger.getLogger(Column.class.getName())
550- .log(Level.SEVERE, null, ex);
563+ .log(Level.SEVERE, null, ex);
551564 }
552565 return rvalue;
553566 }
@@ -575,13 +588,13 @@
575588
576589 public ConditionForOrder asc() {
577590 ConditionForOrder rvalue = new ConditionForOrder(this,
578- ConditionForOrder.ORDER_ASC);
591+ ConditionForOrder.ORDER_ASC);
579592 return rvalue;
580593 }
581594
582595 public ConditionForOrder desc() {
583596 ConditionForOrder rvalue = new ConditionForOrder(this,
584- ConditionForOrder.ORDER_DESC);
597+ ConditionForOrder.ORDER_DESC);
585598 return rvalue;
586599 }
587600
@@ -611,8 +624,9 @@
611624 *
612625 * @param status
613626 */
614- public void setMargeTarget(boolean status) {
627+ public Column<T> setMargeTarget(boolean status) {
615628 this.margeTarget = status;
629+ return this;
616630 }
617631
618632 /**
--- org.clearfy/org.clearfy.datawrapper/src/main/java/org/clearfy/datawrapper/Table.java (revision 217)
+++ org.clearfy/org.clearfy.datawrapper/src/main/java/org/clearfy/datawrapper/Table.java (revision 218)
@@ -99,12 +99,11 @@
9999
100100 try {
101101 this.generateColumns();
102+ this.defineColumns();
102103 } catch (ClearfyDatabaseException ex) {
103104 Logger.getLogger(Table.class.getName())
104105 .log(Level.SEVERE, null, ex);
105106 }
106-
107- this.defineColumns();
108107 }
109108
110109 /**
@@ -365,8 +364,9 @@
365364 * このメソッドをオーバライドし SQLの create table文と同様の定義を
366365 * 記述するだけで、データベース上にテーブルを作成し、レコードを登録し、 また削除ことが可能となる。
367366 * </p>
367+ * @throws org.clearfy.datawrapper.ClearfyDatabaseException
368368 */
369- public abstract void defineColumns();
369+ public abstract void defineColumns() throws ClearfyDatabaseException;
370370
371371 public String getColumnSqlType(Column col) {
372372 String rvalue = col.getType();
@@ -798,7 +798,7 @@
798798
799799 } else if (column.getDefault().length() > 0) {
800800 values += ", '" + column.getDefault() + "'";
801-
801+
802802 } else {
803803 values += ", ''";
804804 }
--- org.clearfy/org.clearfy.datawrapper/src/main/java/org/clearfy/datawrapper/data/ColumnInfo.java (revision 217)
+++ org.clearfy/org.clearfy.datawrapper/src/main/java/org/clearfy/datawrapper/data/ColumnInfo.java (revision 218)
@@ -23,9 +23,9 @@
2323 */
2424 package org.clearfy.datawrapper.data;
2525
26-import org.clearfy.datawrapper.data.TableInfo;
2726 import org.clearfy.annotations.Comment;
2827 import org.clearfy.annotations.LogicalName;
28+import org.clearfy.datawrapper.ClearfyDatabaseException;
2929 import org.clearfy.datawrapper.Column;
3030 import org.clearfy.datawrapper.CurrentTimestamp;
3131 import org.clearfy.datawrapper.ShortFlagZero;
@@ -80,7 +80,7 @@
8080 public Column<String> Description;
8181
8282 @Override
83- public void defineColumns() {
83+ public void defineColumns() throws ClearfyDatabaseException {
8484 this.ColumnClassName
8585 .setAllowNull(false)
8686 .setLength(Column.SIZE_1024)
Afficher sur ancien navigateur de dépôt.