// Retrieve the abstract schema so we can check the state field is part of it
AbstractSchemaName abstractSchemaName = findAbstractSchemaName(expression);
String name = (abstractSchemaName != null) ? abstractSchemaName.getText() : null;
if (ExpressionTools.stringIsNotEmpty(name)) {
IManagedType managedType = getManagedType(name);
// Check the existence of the state field on the abstract schema
if (managedType != null) {
StateFieldPathExpression pathExpression = stateFieldPathExpression(expression.getStateFieldPathExpression());
String stateFieldValue = (pathExpression != null) ? pathExpression.toParsedText() : null;
if (ExpressionTools.stringIsNotEmpty(stateFieldValue)) {
// State field without a dot
if (stateFieldValue.indexOf(".") == -1) {
IMapping mapping = managedType.getMappingNamed(stateFieldValue);
if (mapping == null) {
addProblem(pathExpression, UpdateItem_NotResolvable, stateFieldValue);
}
else {