1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 package org.modeshape.jcr;
25
26 import javax.jcr.PropertyType;
27 import javax.jcr.Value;
28 import org.modeshape.graph.ExecutionContext;
29 import org.modeshape.graph.property.ValueFactories;
30 import org.modeshape.jcr.nodetype.PropertyDefinitionTemplate;
31
32
33
34
35 class JcrPropertyDefinitionTemplate extends JcrItemDefinitionTemplate implements PropertyDefinitionTemplate {
36
37 private boolean multiple = false;
38 private Value[] defaultValues = null;
39 private int requiredType = PropertyType.STRING;
40 private String[] valueConstraints = null;
41 private boolean fullTextSearchable = true;
42 private boolean queryOrderable = true;
43 private String[] availableQueryOperators;
44
45 JcrPropertyDefinitionTemplate( ExecutionContext context ) {
46 super(context);
47 }
48
49
50
51
52
53
54 public void setDefaultValues( String[] defaultValues ) {
55 if (defaultValues == null) {
56 this.defaultValues = null;
57 return;
58 }
59
60 this.defaultValues = new Value[defaultValues.length];
61 ValueFactories factories = getExecutionContext().getValueFactories();
62 for (int i = 0; i < defaultValues.length; i++) {
63 this.defaultValues[i] = new JcrValue(factories, null, PropertyType.STRING, defaultValues[i]);
64 }
65 }
66
67
68
69
70
71
72 public void setDefaultValues( Value[] defaultValues ) {
73 this.defaultValues = defaultValues;
74 }
75
76
77
78
79
80
81 public void setMultiple( boolean multiple ) {
82 this.multiple = multiple;
83 }
84
85
86
87
88
89
90 public void setRequiredType( int requiredType ) {
91 assert requiredType == PropertyType.BINARY || requiredType == PropertyType.BOOLEAN || requiredType == PropertyType.DATE
92 || requiredType == PropertyType.DOUBLE || requiredType == PropertyType.DECIMAL
93 || requiredType == PropertyType.LONG || requiredType == PropertyType.NAME || requiredType == PropertyType.PATH
94 || requiredType == PropertyType.REFERENCE || requiredType == PropertyType.WEAKREFERENCE
95 || requiredType == PropertyType.URI
96 || requiredType == PropertyType.STRING || requiredType == PropertyType.UNDEFINED;
97 this.requiredType = requiredType;
98 }
99
100
101
102
103
104
105 public void setValueConstraints( String[] constraints ) {
106 this.valueConstraints = constraints;
107 }
108
109
110
111
112
113
114 public Value[] getDefaultValues() {
115 return this.defaultValues;
116 }
117
118
119
120
121
122
123 public int getRequiredType() {
124 return requiredType;
125 }
126
127
128
129
130
131
132 public String[] getValueConstraints() {
133 return valueConstraints;
134 }
135
136
137
138
139
140
141 public boolean isMultiple() {
142 return multiple;
143 }
144
145 public boolean isFullTextSearchable() {
146 return this.fullTextSearchable;
147 }
148
149
150
151
152
153
154 public void setFullTextSearchable( boolean fullTextSearchable ) {
155 this.fullTextSearchable = fullTextSearchable;
156 }
157
158 public String[] getAvailableQueryOperators() {
159 return this.availableQueryOperators;
160 }
161
162
163
164
165
166
167 public void setAvailableQueryOperators( String[] queryOperators ) {
168 this.availableQueryOperators = queryOperators;
169 }
170
171 public boolean isQueryOrderable() {
172 return this.queryOrderable;
173 }
174
175
176
177
178
179
180 public void setQueryOrderable( boolean queryOrderable ) {
181 this.queryOrderable = queryOrderable;
182 }
183 }