final Region2ElementAdapter elementAdapter,
final Region2AttrAdapter attrAdapter, final String elText)
{
// Call EL validator which will perform at least the syntactical
// validation
final ELExpressionValidator elValidator = new ELExpressionValidator(
elContext, elText, _validationContext
.getSymbolResolverFactory(), _validationContext
.getReporter());
elValidator.validateXMLNode();
final CompositeType exprType = elValidator.getExpressionType();
if (exprType != null)
{
// Ignore the expression whose last two segments are of types Object.
final CompositeType boxedType = TypeTransformer
.transformBoxPrimitives(exprType);
final String[] testSignatures = boxedType.getSignatures();
if (testSignatures.length > 0 && TypeConstants.TYPE_JAVAOBJECT.equals(testSignatures[0]))
{
if (elText.indexOf('.') != -1)
{
String elText2 = elText.substring(0, elText.lastIndexOf('.'));
final ELExpressionValidator elValidator2 = new ELExpressionValidator(
elContext, elText2, _validationContext
.getSymbolResolverFactory(), _validationContext
.getReporter());
elValidator2.validateXMLNode();
final CompositeType exprType2 = elValidator.getExpressionType();
final CompositeType boxedType2 = TypeTransformer.transformBoxPrimitives(exprType2);
final String[] testSignatures2 = boxedType2.getSignatures();
if (testSignatures2.length > 0 && TypeConstants.TYPE_JAVAOBJECT.equals(testSignatures2[0]))