Skip to content

Commit d429a73

Browse files
committed
Code review feedback
1 parent b7d2c60 commit d429a73

3 files changed

Lines changed: 48 additions & 26 deletions

File tree

src/org/labkey/test/components/ui/grids/FieldReferenceManager.java

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -18,25 +18,25 @@
1818

1919
public class FieldReferenceManager
2020
{
21-
private final List<FieldReference> fieldReferences;
22-
private final Map<Integer, FieldReference> fieldsByIndex;
23-
private final Map<FieldKey, FieldReference> fieldKeys = new LinkedHashMap<>();
24-
private final Map<String, FieldReference> fieldLabels = new LinkedHashMap<>();
21+
private final List<FieldReference> _fieldReferences;
22+
private final Map<Integer, FieldReference> _fieldsByIndex;
23+
private final Map<FieldKey, FieldReference> _fieldKeys = new LinkedHashMap<>();
24+
private final Map<String, FieldReference> _fieldLabels = new LinkedHashMap<>();
2525

2626
public <T extends FieldReference> FieldReferenceManager(List<T> columnHeaders)
2727
{
28-
fieldReferences = List.copyOf(columnHeaders);
29-
fieldsByIndex = columnHeaders.stream().collect(Collectors.toMap(FieldReference::getDomIndex, Function.identity()));
28+
_fieldReferences = List.copyOf(columnHeaders);
29+
_fieldsByIndex = columnHeaders.stream().collect(Collectors.toMap(FieldReference::getDomIndex, Function.identity()));
3030
}
3131

3232
public List<FieldReference> getColumnHeaders()
3333
{
34-
return fieldReferences;
34+
return _fieldReferences;
3535
}
3636

3737
public FieldReference getColumnHeader(int index)
3838
{
39-
return fieldsByIndex.get(index);
39+
return _fieldsByIndex.get(index);
4040
}
4141

4242
/**
@@ -86,18 +86,18 @@ public FieldReference getColumnHeader(int index)
8686

8787
private FieldReference findColumnHeaderByFieldKey(FieldKey fieldIdentifier)
8888
{
89-
if (fieldKeys.containsKey(fieldIdentifier))
89+
if (_fieldKeys.containsKey(fieldIdentifier))
9090
{
91-
return fieldKeys.get(fieldIdentifier);
91+
return _fieldKeys.get(fieldIdentifier);
9292
}
93-
else if (fieldKeys.size() < fieldReferences.size())
93+
else if (_fieldKeys.size() < _fieldReferences.size())
9494
{
95-
for (FieldReference header : fieldReferences)
95+
for (FieldReference header : _fieldReferences)
9696
{
97-
if (!fieldKeys.containsValue(header))
97+
if (!_fieldKeys.containsValue(header))
9898
{
9999
FieldKey fieldKey = header.getFieldKey();
100-
fieldKeys.put(fieldKey, header);
100+
_fieldKeys.put(fieldKey, header);
101101
if (fieldKey.equals(fieldIdentifier))
102102
{
103103
return header;
@@ -111,18 +111,18 @@ else if (fieldKeys.size() < fieldReferences.size())
111111

112112
private FieldReference findColumnHeaderByLabel(String label)
113113
{
114-
if (fieldLabels.containsKey(label))
114+
if (_fieldLabels.containsKey(label))
115115
{
116-
return fieldLabels.get(label);
116+
return _fieldLabels.get(label);
117117
}
118-
else if (fieldLabels.size() < fieldReferences.size())
118+
else if (_fieldLabels.size() < _fieldReferences.size())
119119
{
120-
for (FieldReference header : fieldReferences)
120+
for (FieldReference header : _fieldReferences)
121121
{
122-
if (!fieldLabels.containsValue(header))
122+
if (!_fieldLabels.containsValue(header))
123123
{
124124
String columnLabel = header.getLabel();
125-
fieldLabels.put(columnLabel, header);
125+
_fieldLabels.put(columnLabel, header);
126126
if (columnLabel.equals(label))
127127
{
128128
return header;

src/org/labkey/test/tests/TimeChartAPITest.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -312,13 +312,13 @@ private void testVisApi(File htmlPage, String[] testTitles, @Nullable int[] test
312312
waitForElement(Locator.paginationText(testRowCounts[testIndex]), WAIT_FOR_JAVASCRIPT);
313313
}
314314

315-
CachingSupplier<DataRegionTable> table = new CachingSupplier<>(
316-
() -> new DataRegionTable("apiTestDataRegion", this));
315+
DataRegionTable table = new DataRegionTable.DataRegionFinder(getDriver())
316+
.withName("apiTestDataRegion").findWhenNeeded();
317317

318318
if (testColumnNames != null)
319319
{
320320
List<String> expectedColumnNames = Arrays.asList(testColumnNames[testIndex]);
321-
List<String> columnNames = new ArrayList<>(table.get().getColumnNames());
321+
List<String> columnNames = new ArrayList<>(table.getColumnNames());
322322

323323
if (!columnNames.containsAll(expectedColumnNames))
324324
{
@@ -333,14 +333,14 @@ private void testVisApi(File htmlPage, String[] testTitles, @Nullable int[] test
333333
{
334334
Pair<String, List<Object>> expectedColumn = expectedColForAllTests.get(testIndex);
335335
String columnName = expectedColumn.getKey();
336-
int columnIndex = table.get().getColumnIndex(columnName);
336+
int columnIndex = table.getColumnIndex(columnName);
337337
List<Object> expectedValues = expectedColumn.getValue();
338338
List<Object> actualValues = new ArrayList<>();
339339
boolean isNumberCol = expectedValues.get(0) instanceof Number;
340340

341-
for (int i = 0; i < table.get().getDataRowCount() && actualValues.size() < expectedValues.size() && columnIndex >= 0; i++)
341+
for (int i = 0; i < table.getDataRowCount() && actualValues.size() < expectedValues.size() && columnIndex >= 0; i++)
342342
{
343-
String value = table.get().getDataAsText(i, columnIndex).trim();
343+
String value = table.getDataAsText(i, columnIndex).trim();
344344
if (!value.isEmpty())
345345
actualValues.add(isNumberCol ? Double.parseDouble(value) : value);
346346
}

src/org/labkey/test/util/CachingSupplier.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,28 @@
22

33
import java.util.function.Supplier;
44

5+
/**
6+
* Wraps another Supplier, invoking it lazily and caching its results for subsequent calls to get().<br>
7+
* Intended to be used as an alternative to null-checking and populating a member variable.<br>
8+
* Similar to {@link org.labkey.test.selenium.LazyWebElement} but for other types.
9+
* <pre>{@code
10+
* final CachingSupplier<T> item = new CachingSupplier<>(this::computeItem);
11+
* T getItem() {
12+
* return item.get();
13+
* }
14+
* }</pre>
15+
* <pre>{@code
16+
* // Old pattern
17+
* T item;
18+
* T getItem() {
19+
* if (item == null)
20+
* {
21+
* item = computeItem();
22+
* }
23+
* return item;
24+
* }
25+
* }</pre>
26+
*/
527
public class CachingSupplier<T> implements Supplier<T>
628
{
729
private final Supplier<T> _factory;

0 commit comments

Comments
 (0)