Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 20 additions & 12 deletions api/src/org/labkey/api/data/TableViewForm.java
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,7 @@ public void doInsert() throws SQLException
if (null != _tinfo.getColumn("container"))
setValueToBind("container", _c.getId());

Map<String, Object> newMap = Table.insert(_user, _tinfo, getTypedValues());
Map<String, Object> newMap = Table.insert(_user, _tinfo, _getTypedValues());
setTypedValues(newMap, false);
}

Expand All @@ -168,7 +168,7 @@ public void doUpdate() throws SQLException
setValueToBind("container", _c.getId());

Object[] pkVal = getPkVals();
Map<String, Object> newMap = Table.update(_user, _tinfo, getTypedValues(), pkVal);
Map<String, Object> newMap = Table.update(_user, _tinfo, _getTypedValues(), pkVal);
setTypedValues(newMap, true);
}

Expand Down Expand Up @@ -230,7 +230,7 @@ public void refreshFromDb()
if (maps.length > 0)
{
setTypedValues(maps[0], false);
setOldValues(new CaseInsensitiveHashMap<>(getTypedValues()));
setOldValues(new CaseInsensitiveHashMap<>(_getTypedValues()));
}
}

Expand Down Expand Up @@ -339,7 +339,7 @@ public Object[] getPkVals()
{
String pkName = pkNames.get(i);
Object pkVal;
pkVal = getTypedValues().get(pkName);
pkVal = _getTypedValues().get(pkName);
if (null == pkVal)
{
Object oldValues = getOldValues();
Expand Down Expand Up @@ -514,28 +514,28 @@ public boolean isValid()

public Object getTypedValue(String propName)
{
return getTypedValues().get(propName);
return _getTypedValues().get(propName);
}

public Object getTypedValue(ColumnInfo column)
{
return getTypedValues().get(getFormFieldName(column));
return _getTypedValues().get(getFormFieldName(column));
}

public boolean hasTypedValue(String propName)
{
return getTypedValues().containsKey(propName);
return _getTypedValues().containsKey(propName);
}

public boolean hasTypedValue(ColumnInfo column)
{
return getTypedValues().containsKey(getFormFieldName(column));
return _getTypedValues().containsKey(getFormFieldName(column));
}

public void setTypedValue(String propName, Object val)
{
// call _populate() if necessary
getTypedValues();
_getTypedValues();
_values.put(propName, val);
// We don't use setValueToBind() here because we want to avoid its side effect of clearing _values
// To convert or not to convert???
Expand All @@ -551,11 +551,19 @@ public void setTypedValue(String propName, Object val)
* setTypedValues
*/
public Map<String, Object> getTypedValues()
{
return Collections.unmodifiableMap(_getTypedValues());
}

private Map<String, Object> _getTypedValues()
{
if (null == _values)
{
// TODO we don't usually enter this code path, but we should still throw if there is a conversion error
// or maybe enforce that populateValues() has been called and throw IllegalStateException here?
populateValues(null);

return Collections.unmodifiableMap(_values);
}
return _values;
}

/**
Expand All @@ -580,7 +588,7 @@ else if (includeUntyped && _stringValues.containsKey(getFormFieldName(column)))
else if (getRequest() instanceof MultipartHttpServletRequest request)
{
String fieldName = getMultiPartFormFieldName(column);
Object typedValue = getTypedValues().get(fieldName);
Object typedValue = _getTypedValues().get(fieldName);

if (typedValue != null)
values.put(column.getName(), typedValue);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1757,8 +1757,8 @@ public ApiResponse execute(TableViewForm form, BindException errors) throws Exce
if (!getContainer().hasPermission(getUser(),AdminPermission.class))
throw new UnauthorizedException();

form.setTypedValue("container", getContainer().getId());
Map<String,Object> values = form.getTypedValues();
values.put("container", getContainer().getId());

TableInfo studyProperties = form.getTable();
QueryUpdateService qus = studyProperties.getUpdateService();
Expand Down