Skip to content

Commit 4d42dfa

Browse files
committed
DomainKind.getKindReservedPropertyNames
1 parent 37549b5 commit 4d42dfa

30 files changed

Lines changed: 53 additions & 78 deletions

api/src/org/labkey/api/audit/query/AbstractAuditDomainKind.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -298,7 +298,7 @@ public boolean hasNullValues(Domain domain, DomainProperty prop)
298298
}
299299

300300
@Override
301-
public @NotNull Set<String> getReservedPropertyNames(Domain domain, User user)
301+
protected @NotNull Set<String> getKindReservedPropertyNames(Domain domain, User user, boolean forCreate)
302302
{
303303
Set<String> names = new HashSet<>();
304304

api/src/org/labkey/api/exp/api/SampleTypeDomainKind.java

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -261,16 +261,9 @@ public Set<PropertyStorageSpec> getBaseProperties(Domain domain)
261261
}
262262

263263
@Override
264-
public @NotNull Set<String> getReservedPropertyNames(Domain domain, User user)
265-
{
266-
return getReservedPropertyNames(domain, user, false);
267-
}
268-
269-
@Override
270-
public @NotNull Set<String> getReservedPropertyNames(Domain domain, User user, boolean forCreate)
264+
protected @NotNull Set<String> getKindReservedPropertyNames(Domain domain, User user, boolean forCreate)
271265
{
272266
Set<String> reserved = new CaseInsensitiveHashSet(RESERVED_NAMES);
273-
reserved.addAll(getTemplateReservedPropertyNames(domain));
274267

275268
if (domain == null)
276269
{

api/src/org/labkey/api/exp/property/DomainKind.java

Lines changed: 27 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -109,23 +109,41 @@ public Map<String, Object> processArguments(Container container, User user, Map<
109109

110110
/**
111111
* Return the set of names that should not be allowed for properties. E.g., the names of columns
112-
* from the hard table underlying this type.
112+
* from the hard table underlying this type, unioned with any names declared in the
113+
* {@link DomainTemplate}'s {@code <reservedColumnNames>} element that this domain was created from.
113114
* <p>
114-
* Subclasses should typically override this method and union their kind-specific reserved set with
115-
* {@link #getTemplateReservedPropertyNames(Domain)} (or with {@code super.getReservedPropertyNames(...)}
116-
* when the override does not also override the {@code forCreate} variant). Doing so ensures that
117-
* names declared in a {@code DomainTemplate}'s {@code <reservedColumnNames>} element are honored.
115+
* This method is {@code final}; subclasses contribute their kind-specific reserved set by overriding
116+
* {@link #getKindReservedPropertyNames(Domain, User, boolean)}. The base class always unions that
117+
* set with the template-declared set.
118118
*
119119
* @return set of strings containing the names. This will be compared ignoring case
120120
*/
121-
public Set<String> getReservedPropertyNames(Domain domain, User user)
121+
public final Set<String> getReservedPropertyNames(Domain domain, User user)
122122
{
123-
return getTemplateReservedPropertyNames(domain);
123+
return getReservedPropertyNames(domain, user, false);
124124
}
125125

126-
public Set<String> getReservedPropertyNames(Domain domain, User user, boolean forCreate)
126+
public final Set<String> getReservedPropertyNames(Domain domain, User user, boolean forCreate)
127127
{
128-
return getReservedPropertyNames(domain, user);
128+
Set<String> reserved = new CaseInsensitiveHashSet(getKindReservedPropertyNames(domain, user, forCreate));
129+
reserved.addAll(getTemplateReservedPropertyNames(domain));
130+
return reserved;
131+
}
132+
133+
/**
134+
* Return the kind-specific set of names that should not be allowed for properties. Subclasses override
135+
* this to contribute their static/hard-coded reserved names. The base class will automatically union
136+
* the result with any names declared in the {@link DomainTemplate}'s {@code <reservedColumnNames>}
137+
* element via {@link #getReservedPropertyNames(Domain, User, boolean)}.
138+
*
139+
* @param forCreate true when validating names during domain creation; some kinds reserve additional
140+
* names only at creation time.
141+
* @return set of strings containing the names.
142+
*/
143+
@NotNull
144+
protected Set<String> getKindReservedPropertyNames(Domain domain, User user, boolean forCreate)
145+
{
146+
return Collections.emptySet();
129147
}
130148

131149
/**

api/src/org/labkey/api/exp/property/TestDomainKind.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ public void deletePropertyDescriptor(Domain domain, User user, PropertyDescripto
148148
}
149149

150150
@Override
151-
public @NotNull Set<String> getReservedPropertyNames(Domain domain, User user)
151+
protected @NotNull Set<String> getKindReservedPropertyNames(Domain domain, User user, boolean forCreate)
152152
{
153153
throw new UnsupportedOperationException();
154154
}

api/src/org/labkey/api/query/SimpleTableDomainKind.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,7 @@ public boolean canCreateDefinition(User user, Container container)
236236
}
237237

238238
@Override
239-
public @NotNull Set<String> getReservedPropertyNames(Domain domain, User user)
239+
protected @NotNull Set<String> getKindReservedPropertyNames(Domain domain, User user, boolean forCreate)
240240
{
241241
SimpleUserSchema.SimpleTable table = domain != null ? getTable(domain, user) : null;
242242
if (table != null)

assay/api-src/org/labkey/api/assay/AssayBatchDomainKind.java

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,6 @@
2525
import java.util.Arrays;
2626
import java.util.Set;
2727

28-
/**
29-
* User: jeckels
30-
* Date: Jan 27, 2012
31-
*/
3228
public class AssayBatchDomainKind extends AssayDomainKind
3329
{
3430
private static final Set<String> RESERVED_NAMES;
@@ -50,7 +46,7 @@ public String getKindName()
5046
}
5147

5248
@Override
53-
public @NotNull Set<String> getReservedPropertyNames(Domain domain, User user)
49+
protected @NotNull Set<String> getKindReservedPropertyNames(Domain domain, User user, boolean forCreate)
5450
{
5551
return RESERVED_NAMES;
5652
}

assay/api-src/org/labkey/api/assay/AssayResultDomainKind.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ public DbSchema getSchema()
127127
}
128128

129129
@Override
130-
public @NotNull Set<String> getReservedPropertyNames(Domain domain, User user)
130+
protected @NotNull Set<String> getKindReservedPropertyNames(Domain domain, User user, boolean forCreate)
131131
{
132132
return RESERVED_NAMES;
133133
}

assay/api-src/org/labkey/api/assay/AssayRunDomainKind.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ public String getKindName()
5353
}
5454

5555
@Override
56-
public @NotNull Set<String> getReservedPropertyNames(Domain domain, User user)
56+
protected @NotNull Set<String> getKindReservedPropertyNames(Domain domain, User user, boolean forCreate)
5757
{
5858
return RESERVED_NAMES;
5959
}

assay/src/org/labkey/assay/DefaultAssayDomainKind.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ public String getKindName()
4343
}
4444

4545
@Override
46-
public @NotNull Set<String> getReservedPropertyNames(Domain domain, User user)
46+
protected @NotNull Set<String> getKindReservedPropertyNames(Domain domain, User user, boolean forCreate)
4747
{
4848
return getAssayReservedPropertyNames();
4949
}

assay/src/org/labkey/assay/PlateBasedAssaySampleTypeDomainKind.java

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -55,12 +55,6 @@ public String getKindName()
5555
{
5656
return null;
5757
}
58-
59-
@Override
60-
public @NotNull Set<String> getReservedPropertyNames(Domain domain, User user)
61-
{
62-
return Collections.emptySet();
63-
}
6458
};
6559
}
6660

0 commit comments

Comments
 (0)