summaryrefslogtreecommitdiff
path: root/www/wiki/extensions/SemanticMediaWiki/src/SQLStore/TableBuilder/FieldType.php
blob: 8b5ba88fc653a0b694e9e651922decb51e52ead4 (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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
<?php

namespace SMW\SQLStore\TableBuilder;

/**
 * @private
 *
 * @license GNU GPL v2+
 * @since 2.5
 *
 * @author mwjames
 */
class FieldType {

	/**
	 * @var string
	 */
	const FIELD_ID = 'id';

	/**
	 * @var string
	 */
	const FIELD_ID_PRIMARY = 'id_primary';

	/**
	 * @var string
	 */
	const FIELD_ID_UNSIGNED = 'id_unsigned';

	/**
	 * @var string
	 */
	const FIELD_TITLE = 'title';

	/**
	 * @var string
	 */
	const FIELD_HASH = 'hash';

	/**
	 * @var string
	 */
	const FIELD_NAMESPACE = 'namespace';

	/**
	 * @var string
	 */
	const FIELD_INTERWIKI = 'interwiki';

	/**
	 * @var string
	 */
	const FIELD_USAGE_COUNT = 'usage_count';

	/**
	 * @var string
	 */
	const TYPE_CHAR_NOCASE = 'char_nocase';

	/**
	 * @var string
	 */
	const TYPE_CHAR_LONG = 'char_long';

	/**
	 * @var string
	 */
	const TYPE_CHAR_LONG_NOCASE = 'char_long_nocase';

	/**
	 * @var integer
	 */
	const CHAR_LONG_LENGTH = 300;

	/**
	 * @var string
	 */
	const TYPE_BOOL = 'boolean';

	/**
	 * @var string
	 */
	const TYPE_INT = 'integer';

	/**
	 * @var string
	 */
	const TYPE_INT_UNSIGNED = 'integer_unsigned';

	/**
	 * @var string
	 */
	const TYPE_TEXT = 'text';

	/**
	 * @var string
	 */
	const TYPE_BLOB = 'blob';

	/**
	 * @var string
	 */
	const TYPE_DOUBLE = 'double';

	/**
	 * @since 2.5
	 *
	 * @param string|array $type
	 * @param array $fieldTypes
	 */
	public static function mapType( $type, $fieldTypes = [] ) {

		$fieldType = $type;
		$auxilary = '';

		// [ FieldType::FIELD_ID, 'NOT NULL' ]
		if ( is_array( $type ) && count( $type ) > 1 ) {
			$fieldType = $type[0];
			$auxilary = ' ' . $type[1];
		} elseif ( is_array( $type ) ) {
			$fieldType = $type[0];
		}

		if ( isset( $fieldTypes[$fieldType] ) ) {
			$fieldType = $fieldTypes[$fieldType];
		}

		return $fieldType . $auxilary;
	}

}