// Check to see if the expression is a constant expression and type string.
ILogicalExpression logicalExpression2 = (ILogicalExpression) assign2.getExpressions().get(0).getValue();
if (logicalExpression2.getExpressionTag() != LogicalExpressionTag.CONSTANT) {
return null;
}
ConstantExpression constantExpression = (ConstantExpression) logicalExpression2;
constantValue = (VXQueryConstantValue) constantExpression.getValue();
if (constantValue.getType() != SequenceType.create(BuiltinTypeRegistry.XS_STRING, Quantifier.QUANT_ONE)) {
return null;
}
} else if (op3.getOperatorTag() == LogicalOperatorTag.EMPTYTUPLESOURCE) {
ILogicalExpression logicalExpression2 = (ILogicalExpression) functionCall.getArguments().get(0).getValue();
if (logicalExpression2.getExpressionTag() != LogicalExpressionTag.FUNCTION_CALL) {
return null;
}
AbstractFunctionCallExpression functionCall2 = (AbstractFunctionCallExpression) logicalExpression2;
if (!functionCall2.getFunctionIdentifier().equals(BuiltinOperators.PROMOTE.getFunctionIdentifier())) {
return null;
}
ILogicalExpression logicalExpression3 = (ILogicalExpression) functionCall2.getArguments().get(0).getValue();
if (logicalExpression3.getExpressionTag() != LogicalExpressionTag.FUNCTION_CALL) {
return null;
}
AbstractFunctionCallExpression functionCall3 = (AbstractFunctionCallExpression) logicalExpression3;
if (!functionCall3.getFunctionIdentifier().equals(BuiltinFunctions.FN_DATA_1.getFunctionIdentifier())) {
return null;
}
ILogicalExpression logicalExpression4 = (ILogicalExpression) functionCall3.getArguments().get(0).getValue();
if (logicalExpression4.getExpressionTag() != LogicalExpressionTag.CONSTANT) {
return null;
}
ConstantExpression constantExpression = (ConstantExpression) logicalExpression4;
constantValue = (VXQueryConstantValue) constantExpression.getValue();
if (constantValue.getType() != SequenceType.create(BuiltinTypeRegistry.XS_STRING, Quantifier.QUANT_ONE)) {
return null;
}
} else {
return null;