if (stateObject.isDecorated()) {
toText(stateObject);
}
else {
CollectionMemberExpression expression = stateObject.getExpression();
// Entity or value expression
if (stateObject.hasEntityStateObject()) {
stateObject.getEntityStateObject().accept(this);
writer.append(SPACE);
}
// 'NOT'
if (stateObject.hasNot()) {
appendIdentifier((expression != null) ? expression.getActualNotIdentifier() : NOT, NOT);
writer.append(SPACE);
}
// 'MEMBER'
appendIdentifier((expression != null) ? expression.getActualMemberIdentifier() : MEMBER, MEMBER);
if (shouldOutput(expression) || expression.hasSpaceAfterMember()) {
writer.append(SPACE);
}
// 'OF'
if (stateObject.hasOf()) {
appendIdentifier((expression != null) ? expression.getActualOfIdentifier() : OF, OF);
if (shouldOutput(expression) || expression.hasSpaceAfterOf()) {
writer.append(SPACE);
}
}
// Collection-valued path expression