break;
case Location.LOCATION_LHS_INSIDE_CONDITION_START :
String className = (String) location.getProperty( Location.LOCATION_PROPERTY_CLASS_NAME );
String propertyName = (String) location.getProperty( Location.LOCATION_PROPERTY_PROPERTY_NAME );
if ( className != null ) {
ClassTypeResolver resolver = new ClassTypeResolver( getUniqueImports(),
ProjectClassLoader.getProjectClassLoader( getEditor() ) );
try {
String currentClass = className;
if ( propertyName != null ) {
String[] nestedProperties = propertyName.split( "\\." );
int nbSuperProperties = nestedProperties.length - 1;
if ( propertyName.endsWith( "." ) ) {
nbSuperProperties++;
}
for ( int i = 0; i < nbSuperProperties; i++ ) {
String simplePropertyName = nestedProperties[i];
currentClass = getSimplePropertyClass( currentClass,
simplePropertyName );
currentClass = convertToNonPrimitiveClass( currentClass );
}
}
RuleCompletionProposal p = new RuleCompletionProposal( documentOffset - prefix.length(),
prefix.length(),
"this" );
p.setImage( METHOD_ICON );
list.add( p );
Class<?> clazz = resolver.resolveType( currentClass );
if ( clazz != null ) {
if ( Map.class.isAssignableFrom( clazz ) ) {
p = new RuleCompletionProposal( documentOffset - prefix.length(),
prefix.length(),
"this['']",