rubeus 0.0.8-java → 0.0.9-java
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.document +5 -0
- data/.gitignore +8 -0
- data/LICENSE +20 -0
- data/README.rdoc +17 -0
- data/Rakefile +55 -16
- data/VERSION +1 -0
- data/examples/.gitignore +1 -0
- data/examples/JavaSwingExample01.java +41 -0
- data/examples/jdbc_example.rb +1 -2
- data/examples/notepad.rb +15 -17
- data/examples/nyanco_viewer/nekobean_LICENSE.txt +22 -0
- data/examples/rubeus_swing_example01.rb +0 -2
- data/examples/rubeus_swing_example01_with_class.rb +1 -3
- data/examples/rubeus_swing_jdbc_example01.rb +5 -0
- data/java/.gitignore +3 -0
- data/java/mvn_plugins.yml +57 -0
- data/java/pom.xml +30 -0
- data/java/src/main/java/jp/rubybizcommons/rubeus/extensions/javax/swing/table/DelegatableTableModel.java +54 -0
- data/java/src/main/java/jp/rubybizcommons/rubeus/extensions/javax/swing/table/ReadonlyableTableModel.java +24 -0
- data/lib/rubeus.rb +6 -4
- data/lib/rubeus/awt/attributes.rb +5 -5
- data/lib/rubeus/awt/event.rb +8 -8
- data/lib/rubeus/awt/nestable.rb +4 -4
- data/lib/rubeus/awt/setters.rb +1 -1
- data/lib/rubeus/component_loader.rb +12 -11
- data/lib/rubeus/extensions.rb +6 -6
- data/lib/rubeus/extensions/java.rb +1 -0
- data/lib/rubeus/extensions/java/awt/dimension.rb +1 -1
- data/lib/rubeus/extensions/java/lang.rb +5 -0
- data/lib/rubeus/extensions/java/lang/reflect.rb +4 -0
- data/lib/rubeus/extensions/java/lang/reflect/method.rb +23 -0
- data/lib/rubeus/extensions/java/sql/connection.rb +2 -2
- data/lib/rubeus/extensions/java/sql/database_meta_data.rb +9 -9
- data/lib/rubeus/extensions/java/sql/driver_manager.rb +80 -79
- data/lib/rubeus/extensions/java/sql/result_set.rb +6 -6
- data/lib/rubeus/extensions/java/sql/result_set_meta_data.rb +4 -4
- data/lib/rubeus/extensions/javax/swing/box_layout.rb +4 -4
- data/lib/rubeus/extensions/javax/swing/j_component.rb +1 -1
- data/lib/rubeus/extensions/javax/swing/j_editor_pane.rb +5 -0
- data/lib/rubeus/extensions/javax/swing/j_frame.rb +1 -1
- data/lib/rubeus/extensions/javax/swing/j_list.rb +5 -0
- data/lib/rubeus/extensions/javax/swing/j_scroll_pane.rb +1 -1
- data/lib/rubeus/extensions/javax/swing/j_split_pane.rb +1 -1
- data/lib/rubeus/extensions/javax/swing/j_table.rb +2 -2
- data/lib/rubeus/extensions/javax/swing/j_text_pane.rb +7 -0
- data/lib/rubeus/extensions/javax/swing/table/default_table_model.rb +10 -10
- data/lib/rubeus/extensions/javax/swing/timer.rb +3 -3
- data/lib/rubeus/jdbc.rb +2 -2
- data/lib/rubeus/jdbc/closeable_resource.rb +1 -1
- data/lib/rubeus/jdbc/column.rb +19 -14
- data/lib/rubeus/jdbc/foreign_key.rb +14 -9
- data/lib/rubeus/jdbc/index.rb +15 -10
- data/lib/rubeus/jdbc/meta_element.rb +8 -8
- data/lib/rubeus/jdbc/primary_key.rb +26 -7
- data/lib/rubeus/jdbc/result_set_column.rb +3 -3
- data/lib/rubeus/jdbc/table.rb +47 -36
- data/lib/rubeus/reflection.rb +17 -0
- data/lib/rubeus/swing.rb +1 -1
- data/lib/rubeus/util.rb +3 -0
- data/lib/rubeus/util/java_method_name.rb +31 -0
- data/lib/rubeus/util/name_access_array.rb +6 -4
- data/lib/rubeus/verboseable.rb +3 -3
- data/rmaven.yml +5 -0
- data/rubeus.gemspec +202 -0
- data/test/rubeus/extensions/java/awt/test_dimension.rb +47 -47
- data/test/rubeus/extensions/java/sql/test_database_meta_data.rb +86 -40
- data/test/rubeus/extensions/java/sql/test_driver_manager.rb +9 -2
- data/test/rubeus/extensions/java/sql/test_sql_helper.rb +4 -4
- data/test/rubeus/reflection/test_method_modifier.rb +107 -0
- data/test/rubeus/test_extensions.rb +30 -30
- data/test/rubeus_test.jar +0 -0
- data/test_jar/.classpath +7 -0
- data/test_jar/.gitignore +1 -0
- data/test_jar/.project +17 -0
- data/test_jar/mvn_plugins.yml +57 -0
- data/test_jar/pom.xml +25 -0
- data/test_jar/src/main/java/jp/rubybizcommons/rubeus/test/reflection/VariousFields.java +13 -0
- data/test_jar/src/main/java/jp/rubybizcommons/rubeus/test/reflection/VariousMethods.java +14 -0
- data/test_jar/src/test/java/jp/rubybizcommons/rubeus/test/AppTest.java +38 -0
- metadata +137 -47
- data/test/test_all.rb +0 -2
@@ -3,27 +3,27 @@ Rubeus::Jdbc.depend_on("ResultSetMetaData")
|
|
3
3
|
module Rubeus::Extensions::Java::Sql
|
4
4
|
module ResultSet
|
5
5
|
include Enumerable
|
6
|
-
|
6
|
+
|
7
7
|
def each(&block)
|
8
8
|
return unless block_given?
|
9
9
|
yield(self) while self.next
|
10
10
|
end
|
11
|
-
|
11
|
+
|
12
12
|
def each_array
|
13
13
|
each{|rs| yield(rs.to_a)}
|
14
14
|
end
|
15
|
-
|
15
|
+
|
16
16
|
def each_hash
|
17
17
|
each{|rs| yield(rs.to_hash)}
|
18
18
|
end
|
19
|
-
|
19
|
+
|
20
20
|
def to_a(default_value = nil)
|
21
21
|
meta_data.map{|i| get_object(i) || default_value}
|
22
22
|
end
|
23
|
-
|
23
|
+
|
24
24
|
def to_hash
|
25
25
|
column_names = meta_data.column_names
|
26
|
-
meta_data.inject({}) do |dest, i|
|
26
|
+
meta_data.inject({}) do |dest, i|
|
27
27
|
dest[column_names[i]] = get_object(i)
|
28
28
|
dest
|
29
29
|
end
|
@@ -1,17 +1,17 @@
|
|
1
1
|
module Rubeus::Extensions::Java::Sql
|
2
2
|
module ResultSetMetaData
|
3
3
|
include Enumerable
|
4
|
-
|
4
|
+
|
5
5
|
def each(&block)
|
6
6
|
return unless block_given?
|
7
7
|
@column_count ||= get_column_count
|
8
8
|
(1..@column_count).each(&block)
|
9
9
|
end
|
10
|
-
|
10
|
+
|
11
11
|
def columns
|
12
12
|
@columns ||= build_columns
|
13
13
|
end
|
14
|
-
|
14
|
+
|
15
15
|
def column_names
|
16
16
|
@column_names ||= columns.inject({}) do |dest, column|
|
17
17
|
dest[column.index] = column.name
|
@@ -22,7 +22,7 @@ module Rubeus::Extensions::Java::Sql
|
|
22
22
|
def column_index(i)
|
23
23
|
i
|
24
24
|
end
|
25
|
-
|
25
|
+
|
26
26
|
private
|
27
27
|
def build_columns
|
28
28
|
result = []
|
@@ -2,12 +2,12 @@ module Rubeus::Extensions::Javax::Swing
|
|
2
2
|
module BoxLayout
|
3
3
|
def self.included(base)
|
4
4
|
base.extend(ClassMethods)
|
5
|
-
base.instance_eval do
|
5
|
+
base.instance_eval do
|
6
6
|
alias :new_without_nestable :new
|
7
7
|
alias :new :new_with_nestable
|
8
8
|
end
|
9
9
|
end
|
10
|
-
|
10
|
+
|
11
11
|
module ClassMethods
|
12
12
|
def new_with_nestable(*args, &block)
|
13
13
|
if args.length == 1
|
@@ -15,12 +15,12 @@ module Rubeus::Extensions::Javax::Swing
|
|
15
15
|
raise ArgumentError, "No container! you must specify a Container and an axis" unless container
|
16
16
|
args.unshift(container.respond_to?(:content_pane) ? container.content_pane : container)
|
17
17
|
end
|
18
|
-
|
18
|
+
|
19
19
|
unless args.last.is_a?(Integer)
|
20
20
|
value = args.pop
|
21
21
|
args << const_get(value.to_s)
|
22
22
|
end
|
23
|
-
|
23
|
+
|
24
24
|
new_without_nestable(*args, &block)
|
25
25
|
end
|
26
26
|
end
|
@@ -18,7 +18,7 @@ module Rubeus::Extensions::Javax::Swing
|
|
18
18
|
|
19
19
|
if ENV_JAVA["java.specification.version"] == "1.6"
|
20
20
|
def set_size(*args)
|
21
|
-
java_send :setSize, [java.awt.Dimension],
|
21
|
+
java_send :setSize, [java.awt.Dimension],
|
22
22
|
Rubeus::Awt::Dimension.create(*args)
|
23
23
|
end
|
24
24
|
end
|
@@ -19,11 +19,11 @@ module Rubeus::Extensions::Javax::Swing
|
|
19
19
|
alias_method :model=, :set_model
|
20
20
|
end
|
21
21
|
end
|
22
|
-
|
22
|
+
|
23
23
|
def get_model_with_rubeus
|
24
24
|
@model || get_model_without_rubeus
|
25
25
|
end
|
26
|
-
|
26
|
+
|
27
27
|
def set_model_with_rubeus(model, *args)
|
28
28
|
unless model.is_a?(Rubeus::Swing::TableModel)
|
29
29
|
model = Rubeus::Swing::DefaultTableModel.new(model, *args)
|
@@ -11,12 +11,12 @@ module Rubeus::Extensions::Javax::Swing::Table
|
|
11
11
|
alias_method :insert_row, :insert_row_with_rubeus
|
12
12
|
end
|
13
13
|
base.extend(ClassMethods)
|
14
|
-
base.instance_eval do
|
14
|
+
base.instance_eval do
|
15
15
|
alias :new_without_rubeus :new
|
16
16
|
alias :new :new_with_rubeus
|
17
17
|
end
|
18
18
|
end
|
19
|
-
|
19
|
+
|
20
20
|
module ClassMethods
|
21
21
|
def vectorize_if_array(value)
|
22
22
|
value.is_a?(Array) ? java.util.Vector.new(value) : value
|
@@ -45,17 +45,17 @@ module Rubeus::Extensions::Javax::Swing::Table
|
|
45
45
|
column_names = vectorize_if_array(cols)
|
46
46
|
return new_without_rubeus(data, column_names)
|
47
47
|
end
|
48
|
-
elsif (args.length == 2) and (args.first.class.name == 'REXML::Document' and args.last.is_a?(Hash))
|
48
|
+
elsif (args.length == 2) and (args.first.class.name == 'REXML::Document' and args.last.is_a?(Hash))
|
49
49
|
result = new_without_rubeus(vectorize_if_array(args.last[:column_paths]), 0)
|
50
50
|
result.load_from_xml(*args)
|
51
51
|
return result
|
52
52
|
end
|
53
|
-
return new_without_rubeus(*args)
|
53
|
+
return new_without_rubeus(*args)
|
54
54
|
end
|
55
55
|
end
|
56
56
|
|
57
57
|
attr_accessor :readonly
|
58
|
-
|
58
|
+
|
59
59
|
def isCellEditable(row, col)
|
60
60
|
!readonly
|
61
61
|
end
|
@@ -63,19 +63,19 @@ module Rubeus::Extensions::Javax::Swing::Table
|
|
63
63
|
def vectorize_if_array(value)
|
64
64
|
self.class.vectorize_if_array(value)
|
65
65
|
end
|
66
|
-
|
66
|
+
|
67
67
|
def add_row_with_rubeus(row)
|
68
68
|
add_row_without_rubeus(vectorize_if_array(row))
|
69
69
|
end
|
70
|
-
|
70
|
+
|
71
71
|
def insert_row_with_rubeus(index, row)
|
72
72
|
insert_row_without_rubeus(index, vectorize_if_array(row))
|
73
73
|
end
|
74
|
-
|
74
|
+
|
75
75
|
def load_from_xml(rexml_doc, options = {:refresh_columns => false})
|
76
76
|
row_path = options[:row_path]
|
77
77
|
col_paths = options[:column_paths]
|
78
|
-
if row_path.nil?
|
78
|
+
if row_path.nil?
|
79
79
|
raise ArgumentError, "require :row_path but options was #{options}"
|
80
80
|
end
|
81
81
|
unless col_paths
|
@@ -90,7 +90,7 @@ module Rubeus::Extensions::Javax::Swing::Table
|
|
90
90
|
end
|
91
91
|
self.row_count = 0
|
92
92
|
rexml_doc.elements.each(row_path) do |row|
|
93
|
-
values = col_paths.map do |col_path|
|
93
|
+
values = col_paths.map do |col_path|
|
94
94
|
element = row.elements[col_path]
|
95
95
|
element ? element.text :
|
96
96
|
options[:ignore_unexist_column] ? nil :
|
@@ -7,17 +7,17 @@ module Rubeus::Extensions::Javax::Swing
|
|
7
7
|
alias :new :new_with_rubeus
|
8
8
|
end
|
9
9
|
end
|
10
|
-
|
10
|
+
|
11
11
|
module ClassMethods
|
12
12
|
def new_with_rubeus(interval, &block)
|
13
13
|
# Create ActionListener implement class
|
14
14
|
mod = Module.new do
|
15
15
|
define_method("actionPerformed", &block)
|
16
16
|
end
|
17
|
-
|
17
|
+
|
18
18
|
obj = Object.new
|
19
19
|
obj.extend(mod)
|
20
|
-
|
20
|
+
|
21
21
|
# Use original constructor
|
22
22
|
new_without_rubeus(interval, obj)
|
23
23
|
end
|
data/lib/rubeus/jdbc.rb
CHANGED
@@ -12,11 +12,11 @@ module Rubeus
|
|
12
12
|
'ResultSetMetaData' => 'java.sql',
|
13
13
|
'Statement' => 'java.sql'
|
14
14
|
)
|
15
|
-
|
15
|
+
|
16
16
|
def self.irb
|
17
17
|
self.extend_with
|
18
18
|
end
|
19
|
-
|
19
|
+
|
20
20
|
# auto_load :MetaElement, "rubeus/jdbc/meta_element"
|
21
21
|
# auto_load :Table, "rubeus/jdbc/table"
|
22
22
|
# auto_load :Column, "rubeus/jdbc/column"
|
data/lib/rubeus/jdbc/column.rb
CHANGED
@@ -3,7 +3,7 @@ require 'rubeus/jdbc/meta_element'
|
|
3
3
|
module Rubeus::Jdbc
|
4
4
|
class Column < TableElement
|
5
5
|
include FullyQualifiedNamed
|
6
|
-
|
6
|
+
|
7
7
|
# 1. TABLE_CAT String => テーブルカタログ (null の可能性がある)
|
8
8
|
# 2. TABLE_SCHEM String => テーブルスキーマ (null の可能性がある)
|
9
9
|
# 3. TABLE_NAME String => テーブル名
|
@@ -17,7 +17,7 @@ module Rubeus::Jdbc
|
|
17
17
|
# 11. NULLABLE int => NULL は許されるか
|
18
18
|
# * columnNoNulls - NULL 値を許さない可能性がある
|
19
19
|
# * columnNullable - 必ず NULL 値を許す
|
20
|
-
# * columnNullableUnknown - NULL 値を許すかどうかは不明
|
20
|
+
# * columnNullableUnknown - NULL 値を許すかどうかは不明
|
21
21
|
# 12. REMARKS String => コメント記述列 (null の可能性がある)
|
22
22
|
# 13. COLUMN_DEF String => デフォルト値 (null の可能性がある)
|
23
23
|
# 14. SQL_DATA_TYPE int => 未使用
|
@@ -28,35 +28,40 @@ module Rubeus::Jdbc
|
|
28
28
|
# 19. SCOPE_CATLOG String => 参照属性のスコープであるテーブルのカタログ (DATA_TYPE が REF でない場合は null)
|
29
29
|
# 20. SCOPE_SCHEMA String => 参照属性のスコープであるテーブルのスキーマ (DATA_TYPE が REF でない場合は null)
|
30
30
|
# 21. SCOPE_TABLE String => 参照属性のスコープであるテーブル名 (DATA_TYPE が REF でない場合は null)
|
31
|
-
# 22. SOURCE_DATA_TYPE short => 個別の型またはユーザ生成 Ref 型、java.sql.Types の SQL 型のソースの型 (DATA_TYPE が DISTINCT またはユーザ生成 REF でない場合は null)
|
32
|
-
#
|
31
|
+
# 22. SOURCE_DATA_TYPE short => 個別の型またはユーザ生成 Ref 型、java.sql.Types の SQL 型のソースの型 (DATA_TYPE が DISTINCT またはユーザ生成 REF でない場合は null)
|
32
|
+
#
|
33
33
|
# see also:
|
34
34
|
# http://java.sun.com/javase/ja/6/docs/ja/api/java/sql/DatabaseMetaData.html#getColumns(java.lang.String,%20java.lang.String,%20java.lang.String,%20java.lang.String)
|
35
|
-
#
|
35
|
+
#
|
36
36
|
attr_accessor :column_name, :data_type, :type_name, :column_size,
|
37
37
|
:buffer_length, :decimal_digits, :num_prec_radix,
|
38
38
|
:nullable, :remarks, :column_def, :sql_data_type,
|
39
39
|
:sql_datetime_sub, :char_octet_length,
|
40
|
-
:ordinal_position, :is_nullable,
|
40
|
+
:ordinal_position, :is_nullable,
|
41
41
|
:scope_catlog, :scope_schema, :scope_table, :scope_data_type
|
42
42
|
|
43
43
|
alias_method :size, :column_size
|
44
|
-
|
44
|
+
|
45
|
+
def inspect
|
46
|
+
"#<#{self.class.name} #{self.name} #{type_name}(#{size}) #{nullable? ? 'NULL' : 'NOT NULL'}>"
|
47
|
+
end
|
48
|
+
|
49
|
+
|
45
50
|
def name
|
46
51
|
column_name.send(options[:name_case] || :to_s)
|
47
52
|
end
|
48
|
-
|
53
|
+
|
49
54
|
def jdbc_type
|
50
55
|
@column_type ||= (TYPE_ID_TO_NAMES[data_type] || type_name || '')
|
51
56
|
end
|
52
|
-
|
57
|
+
|
53
58
|
def rails_type
|
54
59
|
@rails_type ||= (
|
55
60
|
(table.primary_key != self.name) ? JDBC_TYPE_TO_RAILS_TYPE[jdbc_type] :
|
56
61
|
(/^id$/ =~ self.name) ? nil : :primary_key
|
57
62
|
)
|
58
63
|
end
|
59
|
-
|
64
|
+
|
60
65
|
def rails_type=(value)
|
61
66
|
@rails_type = value
|
62
67
|
end
|
@@ -64,20 +69,20 @@ module Rubeus::Jdbc
|
|
64
69
|
attr_accessor :rails_ignored
|
65
70
|
attr_accessor :rails_name, :rails_options
|
66
71
|
attr_reader :name_changed?
|
67
|
-
|
72
|
+
|
68
73
|
def nullable?
|
69
74
|
@_nullable ||= (is_nullable != 'NO')
|
70
75
|
end
|
71
|
-
|
76
|
+
|
72
77
|
def primary_key_index
|
73
78
|
@primary_key_index ||= table.primary_key_names.index(self.name)
|
74
79
|
end
|
75
|
-
|
80
|
+
|
76
81
|
def primary_key?
|
77
82
|
!!primary_key_index
|
78
83
|
end
|
79
84
|
alias_method :pk?, :primary_key?
|
80
|
-
|
85
|
+
|
81
86
|
def default
|
82
87
|
self.column_def.nil? ? nil :
|
83
88
|
/^NULL$/i =~ self.column_def.to_s ? nil : self.column_def
|
@@ -15,20 +15,20 @@ module Rubeus::Jdbc
|
|
15
15
|
# * importedKeyCascade - 主キーの更新に合致するように、インポートされたキーを変更する
|
16
16
|
# * importedKeySetNull - インポートされたキーの主キーが更新されたら、NULL に変更する
|
17
17
|
# * importedKeySetDefault - インポートされたキーの主キーが更新されたら、デフォルト値に変更する
|
18
|
-
# * importedKeyRestrict - importedKeyNoAction と同じ (ODBC 2.x との互換性のため)
|
18
|
+
# * importedKeyRestrict - importedKeyNoAction と同じ (ODBC 2.x との互換性のため)
|
19
19
|
# 11. DELETE_RULE short => 主キーが削除されると、外部キーに起こる内容は次のとおりである
|
20
20
|
# * importedKeyNoAction - 主キーがインポートされたら、削除できない
|
21
21
|
# * importedKeyCascade - 削除されたキーをインポートする行を、削除する
|
22
22
|
# * importedKeySetNull - インポートされたキーの主キーが削除されたら、NULL に変更する
|
23
23
|
# * importedKeyRestrict - importedKeyNoAction と同じ (ODBC 2.x との互換性のため)
|
24
|
-
# * importedKeySetDefault - インポートされたキーの主キーが削除されたら、デフォルト値に変更する
|
24
|
+
# * importedKeySetDefault - インポートされたキーの主キーが削除されたら、デフォルト値に変更する
|
25
25
|
# 12. FK_NAME String => 外部キー名 (null の可能性がある)
|
26
26
|
# 13. PK_NAME String => 主キー名 (null の可能性がある)
|
27
27
|
# 14. DEFERRABILITY short => 外部キーの制限の評価はコミットまで延期できる
|
28
28
|
# * importedKeyInitiallyDeferred - 定義については SQL92 を参照
|
29
29
|
# * importedKeyInitiallyImmediate - 定義については SQL92 を参照
|
30
|
-
# * importedKeyNotDeferrable - 定義については SQL92 を参照
|
31
|
-
#
|
30
|
+
# * importedKeyNotDeferrable - 定義については SQL92 を参照
|
31
|
+
#
|
32
32
|
# see also:
|
33
33
|
# http://java.sun.com/javase/ja/6/docs/ja/api/java/sql/DatabaseMetaData.html#getExportedKeys(java.lang.String,%20java.lang.String,%20java.lang.String)
|
34
34
|
# http://java.sun.com/javase/ja/6/docs/ja/api/java/sql/DatabaseMetaData.html#getImportedKeys(java.lang.String,%20java.lang.String,%20java.lang.String)
|
@@ -40,7 +40,12 @@ module Rubeus::Jdbc
|
|
40
40
|
|
41
41
|
attr_accessor :fkcolumn_names, :pkcolumn_names
|
42
42
|
attr_accessor :fktable, :pktable
|
43
|
-
|
43
|
+
|
44
|
+
def inspect
|
45
|
+
"#<#{self.class.name} #{name} #{fktable.name}(%s)=>#{pktable.name}(%s)>" %
|
46
|
+
[fkcolumn_names.join(','), pkcolumn_names.join(',')]
|
47
|
+
end
|
48
|
+
|
44
49
|
def name
|
45
50
|
fk_name.send(options[:name_case] || :to_s)
|
46
51
|
end
|
@@ -48,19 +53,19 @@ module Rubeus::Jdbc
|
|
48
53
|
def pretty_print_instance_variables
|
49
54
|
super - [:@fktable, :@pktable]
|
50
55
|
end
|
51
|
-
|
56
|
+
|
52
57
|
def length
|
53
58
|
pkcolumn_names.length
|
54
59
|
end
|
55
60
|
alias_method :size, :length
|
56
|
-
|
61
|
+
|
57
62
|
def fkcolumns
|
58
63
|
@fkcolumns ||= fkcolumn_names.map{|name| fktable.columns[name]}
|
59
64
|
end
|
60
|
-
|
65
|
+
|
61
66
|
def pkcolumns
|
62
67
|
@pkcolumns ||= pkcolumn_names.map{|name| pktable.columns[name]}
|
63
68
|
end
|
64
|
-
|
69
|
+
|
65
70
|
end
|
66
71
|
end
|
data/lib/rubeus/jdbc/index.rb
CHANGED
@@ -3,7 +3,7 @@ require 'rubeus/jdbc/meta_element'
|
|
3
3
|
module Rubeus::Jdbc
|
4
4
|
class Index < TableElement
|
5
5
|
include FullyQualifiedNamed
|
6
|
-
|
6
|
+
|
7
7
|
# 1. TABLE_CAT String => テーブルカタログ (null の可能性がある)
|
8
8
|
# 2. TABLE_SCHEM String => テーブルスキーマ (null の可能性がある)
|
9
9
|
# 3. TABLE_NAME String => テーブル名
|
@@ -14,27 +14,32 @@ module Rubeus::Jdbc
|
|
14
14
|
# * tableIndexStatistic - テーブルのインデックスの記述に連動して返されるテーブルの統計情報を識別する
|
15
15
|
# * tableIndexClustered - クラスタ化されたインデックス
|
16
16
|
# * tableIndexHashed - ハッシュ化されたインデックス
|
17
|
-
# * tableIndexOther - インデックスのその他のスタイル
|
17
|
+
# * tableIndexOther - インデックスのその他のスタイル
|
18
18
|
# 8. ORDINAL_POSITION short => インデックス中の列シーケンス。TYPE が tableIndexStatistic の場合は 0
|
19
19
|
# 9. COLUMN_NAME String => 列名。TYPE が tableIndexStatistic の場合は null
|
20
20
|
# 10. ASC_OR_DESC String => 列ソートシーケンス、「A」=> 昇順、「D」=> 降順、ソートシーケンスがサポートされていない場合は、null の可能性がある。TYPE が tableIndexStatistic の場合は null
|
21
21
|
# 11. CARDINALITY int => TYPE が tableIndexStatistic の場合、テーブル中の列数。そうでない場合は、インデックス中の一意の値の数
|
22
22
|
# 12. PAGES int => TYPE が tableIndexStatistic の場合、テーブルで使用されるページ数。そうでない場合は、現在のインデックスで使用されるページ数
|
23
|
-
# 13. FILTER_CONDITION String => もしあれば、フィルタ条件 (null の可能性がある)
|
24
|
-
#
|
23
|
+
# 13. FILTER_CONDITION String => もしあれば、フィルタ条件 (null の可能性がある)
|
24
|
+
#
|
25
25
|
# see also:
|
26
26
|
# http://java.sun.com/javase/ja/6/docs/ja/api/java/sql/DatabaseMetaData.html#getIndexInfo(java.lang.String,%20java.lang.String,%20java.lang.String,%20boolean,%20boolean)
|
27
|
-
#
|
27
|
+
#
|
28
28
|
RECORD_UNIQUE_ATTRS = [:table_cat, :table_schem, :table_name, :non_unique, :index_qualifier, :index_name]
|
29
|
-
ATTR_NAMES = [:table_cat, :table_schem, :table_name, :non_unique, :index_qualifier, :index_name, :type,
|
30
|
-
# :orinal_position, :column_name, :asc_or_desc, :cardinality,
|
29
|
+
ATTR_NAMES = [:table_cat, :table_schem, :table_name, :non_unique, :index_qualifier, :index_name, :type,
|
30
|
+
# :orinal_position, :column_name, :asc_or_desc, :cardinality,
|
31
31
|
:pages, :filter_condition]
|
32
32
|
attr_accessor(*(ATTR_NAMES - [:table_cat, :table_schem, :table_name]))
|
33
33
|
|
34
|
+
def inspect
|
35
|
+
"#<#{self.class.name} #{table.name}.#{name}(%s)>" %
|
36
|
+
keys.map{|k| k.name + (k.desc? ? " DESC" : '')}.join(',')
|
37
|
+
end
|
38
|
+
|
34
39
|
def name
|
35
40
|
index_name.send(options[:name_case] || :to_s)
|
36
41
|
end
|
37
|
-
|
42
|
+
|
38
43
|
def keys
|
39
44
|
@key ||= Rubeus::Util::NameAccessArray.new
|
40
45
|
end
|
@@ -56,11 +61,11 @@ module Rubeus::Jdbc
|
|
56
61
|
def name
|
57
62
|
column_name.send(options[:name_case] || :to_s)
|
58
63
|
end
|
59
|
-
|
64
|
+
|
60
65
|
def pretty_print_instance_variables
|
61
66
|
super - [:@index]
|
62
67
|
end
|
63
|
-
|
68
|
+
|
64
69
|
def desc?; asc_or_desc == 'D' end
|
65
70
|
def asc?; !desc? end
|
66
71
|
end
|