{
                    Object result = 
                       values == null ? 
                         valueInternalEList == null ? 
                           valueList.get(valueListIndex++) : 
                           valueInternalEList.basicGet(valueListIndex++) : 
                         values.next();
                    if (isHandlingFeatureMap)
                    {
                      FeatureMap.Entry entry = (FeatureMap.Entry)result; 
                      preparedFeature = entry.getEStructuralFeature();
                      @SuppressWarnings("unchecked") E newPreparedResult = (E)entry.getValue();
                      preparedResult = newPreparedResult;
                    }
                    else
                    {
                      @SuppressWarnings("unchecked") E newPreparedResult = (E)result;
                      preparedResult = newPreparedResult;
                      preparedFeature = feature;
                    }
                    prepared = 3;
                    return true;
                  }