Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
<!-- begin-user-doc -->
<!-- end-user-doc -->
@return the first non-null result returned by a <code>caseXXX</code> call.
@generated
184138
protected T doSwitch(EClass theEClass, EObject theEObject) {
		if (theEClass.eContainer() == modelPackage) {
			return doSwitch(theEClass.getClassifierID(), theEObject);
		}
		else {
			List<EClass> eSuperTypes = theEClass.getESuperTypes();
			return
				eSuperTypes.isEmpty() ?
					defaultCase(theEObject) :
					doSwitch(eSuperTypes.get(0), theEObject);
		}
	}
1175137
protected ProcessInstanceDesc verifyCaseIdExists(String caseId) throws CaseNotFoundException {
        ProcessInstanceDesc pi = runtimeDataService.getProcessInstanceByCorrelationKey(correlationKeyFactory.newCorrelationKey(caseId));
        if (pi == null) {
            throw new CaseNotFoundException("Case with id " + caseId + " was not found"); 
        }
        
        return pi;
    }
450612
protected Example goToNextSection( Example example )
    {
        for (Example table = example; table != null; table = table.nextSibling())
        {
            if ("section".equalsIgnoreCase( contentOf( table.at( 0, 0, 0 ) ) )) return table;
        }
        return null;
    }
1238578
@Override
	public LexNameSet caseASeqMultipleBind(ASeqMultipleBind node, FreeVarInfo info) throws AnalysisException
	{
		return node.getSeq().apply(this, info);
	}
1021411
public CaseDefinitionEntity getPreviousDefinition() {
    CaseDefinitionEntity previousCaseDefinition = null;

    String previousCaseDefinitionId = getPreviousCaseDefinitionId();
    if (previousCaseDefinitionId != null) {

      previousCaseDefinition = loadCaseDefinition(previousCaseDefinitionId);

      if (previousCaseDefinition == null) {
        resetPreviousCaseDefinitionId();
        previousCaseDefinitionId = getPreviousCaseDefinitionId();

        if (previousCaseDefinitionId != null) {
          previousCaseDefinition = loadCaseDefinition(previousCaseDefinitionId);
        }
      }
    }

    return previousCaseDefinition;
  }
528942
public TestResult getFirstNonSuccessfulResult() {
        for (ResponsePayload payload : payloads.values()) {

            if (payload != null) {

                TestResult testResult = payload.getTestResult();

                if (testResult != null) {
                    switch (testResult.getStatus()) {
                        case FAILED:
                            return testResult;
                        case SKIPPED:
                            return testResult;
                        case PASSED:
                    }
                }
            }
        }

        return null;
    }
1252825
public T result() throws NoSuchElementException {
    if (result == NULL_RESULT) {
      if (parent != null) {
        return parent.result();
      }
      throw new NoSuchElementException("There is no result");
    }
    return result;
  }
1031460
public ClassInfoList getAllClasses() {
        if (closed.get()) {
            throw new IllegalArgumentException("Cannot use a ScanResult after it has been closed");
        }
        if (!scanSpec.enableClassInfo) {
            throw new IllegalArgumentException("Please call ClassGraph#enableClassInfo() before #scan()");
        }
        return ClassInfo.getAllClasses(classNameToClassInfo.values(), scanSpec);
    }
1041549
@Override
	public T next() {
		SQLException sqlException = null;
		try {
			T result = nextThrow();
			if (result != null) {
				return result;
			}
		} catch (SQLException e) {
			sqlException = e;
		}
		// we have to throw if there is no next or on a SQLException
		last = null;
		closeQuietly();
		throw new IllegalStateException("Could not get next result for " + dataClass, sqlException);
	}
435634
@Override
	protected T doSwitch(int classifierID, EObject theEObject)
	{
		switch (classifierID)
		{
			case XbasePackage.XEXPRESSION:
			{
				XExpression xExpression = (XExpression)theEObject;
				T result = caseXExpression(xExpression);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case XbasePackage.XIF_EXPRESSION:
			{
				XIfExpression xIfExpression = (XIfExpression)theEObject;
				T result = caseXIfExpression(xIfExpression);
				if (result == null) result = caseXExpression(xIfExpression);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case XbasePackage.XSWITCH_EXPRESSION:
			{
				XSwitchExpression xSwitchExpression = (XSwitchExpression)theEObject;
				T result = caseXSwitchExpression(xSwitchExpression);
				if (result == null) result = caseXExpression(xSwitchExpression);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case XbasePackage.XCASE_PART:
			{
				XCasePart xCasePart = (XCasePart)theEObject;
				T result = caseXCasePart(xCasePart);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case XbasePackage.XBLOCK_EXPRESSION:
			{
				XBlockExpression xBlockExpression = (XBlockExpression)theEObject;
				T result = caseXBlockExpression(xBlockExpression);
				if (result == null) result = caseXExpression(xBlockExpression);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case XbasePackage.XVARIABLE_DECLARATION:
			{
				XVariableDeclaration xVariableDeclaration = (XVariableDeclaration)theEObject;
				T result = caseXVariableDeclaration(xVariableDeclaration);
				if (result == null) result = caseXExpression(xVariableDeclaration);
				if (result == null) result = caseJvmIdentifiableElement(xVariableDeclaration);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case XbasePackage.XABSTRACT_FEATURE_CALL:
			{
				XAbstractFeatureCall xAbstractFeatureCall = (XAbstractFeatureCall)theEObject;
				T result = caseXAbstractFeatureCall(xAbstractFeatureCall);
				if (result == null) result = caseXExpression(xAbstractFeatureCall);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case XbasePackage.XMEMBER_FEATURE_CALL:
			{
				XMemberFeatureCall xMemberFeatureCall = (XMemberFeatureCall)theEObject;
				T result = caseXMemberFeatureCall(xMemberFeatureCall);
				if (result == null) result = caseXAbstractFeatureCall(xMemberFeatureCall);
				if (result == null) result = caseXExpression(xMemberFeatureCall);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case XbasePackage.XFEATURE_CALL:
			{
				XFeatureCall xFeatureCall = (XFeatureCall)theEObject;
				T result = caseXFeatureCall(xFeatureCall);
				if (result == null) result = caseXAbstractFeatureCall(xFeatureCall);
				if (result == null) result = caseXExpression(xFeatureCall);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case XbasePackage.XCONSTRUCTOR_CALL:
			{
				XConstructorCall xConstructorCall = (XConstructorCall)theEObject;
				T result = caseXConstructorCall(xConstructorCall);
				if (result == null) result = caseXExpression(xConstructorCall);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case XbasePackage.XBOOLEAN_LITERAL:
			{
				XBooleanLiteral xBooleanLiteral = (XBooleanLiteral)theEObject;
				T result = caseXBooleanLiteral(xBooleanLiteral);
				if (result == null) result = caseXExpression(xBooleanLiteral);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case XbasePackage.XNULL_LITERAL:
			{
				XNullLiteral xNullLiteral = (XNullLiteral)theEObject;
				T result = caseXNullLiteral(xNullLiteral);
				if (result == null) result = caseXExpression(xNullLiteral);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case XbasePackage.XNUMBER_LITERAL:
			{
				XNumberLiteral xNumberLiteral = (XNumberLiteral)theEObject;
				T result = caseXNumberLiteral(xNumberLiteral);
				if (result == null) result = caseXExpression(xNumberLiteral);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case XbasePackage.XSTRING_LITERAL:
			{
				XStringLiteral xStringLiteral = (XStringLiteral)theEObject;
				T result = caseXStringLiteral(xStringLiteral);
				if (result == null) result = caseXExpression(xStringLiteral);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case XbasePackage.XCOLLECTION_LITERAL:
			{
				XCollectionLiteral xCollectionLiteral = (XCollectionLiteral)theEObject;
				T result = caseXCollectionLiteral(xCollectionLiteral);
				if (result == null) result = caseXExpression(xCollectionLiteral);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case XbasePackage.XLIST_LITERAL:
			{
				XListLiteral xListLiteral = (XListLiteral)theEObject;
				T result = caseXListLiteral(xListLiteral);
				if (result == null) result = caseXCollectionLiteral(xListLiteral);
				if (result == null) result = caseXExpression(xListLiteral);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case XbasePackage.XSET_LITERAL:
			{
				XSetLiteral xSetLiteral = (XSetLiteral)theEObject;
				T result = caseXSetLiteral(xSetLiteral);
				if (result == null) result = caseXCollectionLiteral(xSetLiteral);
				if (result == null) result = caseXExpression(xSetLiteral);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case XbasePackage.XCLOSURE:
			{
				XClosure xClosure = (XClosure)theEObject;
				T result = caseXClosure(xClosure);
				if (result == null) result = caseXExpression(xClosure);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case XbasePackage.XCASTED_EXPRESSION:
			{
				XCastedExpression xCastedExpression = (XCastedExpression)theEObject;
				T result = caseXCastedExpression(xCastedExpression);
				if (result == null) result = caseXExpression(xCastedExpression);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case XbasePackage.XBINARY_OPERATION:
			{
				XBinaryOperation xBinaryOperation = (XBinaryOperation)theEObject;
				T result = caseXBinaryOperation(xBinaryOperation);
				if (result == null) result = caseXAbstractFeatureCall(xBinaryOperation);
				if (result == null) result = caseXExpression(xBinaryOperation);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case XbasePackage.XUNARY_OPERATION:
			{
				XUnaryOperation xUnaryOperation = (XUnaryOperation)theEObject;
				T result = caseXUnaryOperation(xUnaryOperation);
				if (result == null) result = caseXAbstractFeatureCall(xUnaryOperation);
				if (result == null) result = caseXExpression(xUnaryOperation);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case XbasePackage.XPOSTFIX_OPERATION:
			{
				XPostfixOperation xPostfixOperation = (XPostfixOperation)theEObject;
				T result = caseXPostfixOperation(xPostfixOperation);
				if (result == null) result = caseXAbstractFeatureCall(xPostfixOperation);
				if (result == null) result = caseXExpression(xPostfixOperation);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case XbasePackage.XFOR_LOOP_EXPRESSION:
			{
				XForLoopExpression xForLoopExpression = (XForLoopExpression)theEObject;
				T result = caseXForLoopExpression(xForLoopExpression);
				if (result == null) result = caseXExpression(xForLoopExpression);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case XbasePackage.XBASIC_FOR_LOOP_EXPRESSION:
			{
				XBasicForLoopExpression xBasicForLoopExpression = (XBasicForLoopExpression)theEObject;
				T result = caseXBasicForLoopExpression(xBasicForLoopExpression);
				if (result == null) result = caseXExpression(xBasicForLoopExpression);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case XbasePackage.XABSTRACT_WHILE_EXPRESSION:
			{
				XAbstractWhileExpression xAbstractWhileExpression = (XAbstractWhileExpression)theEObject;
				T result = caseXAbstractWhileExpression(xAbstractWhileExpression);
				if (result == null) result = caseXExpression(xAbstractWhileExpression);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case XbasePackage.XDO_WHILE_EXPRESSION:
			{
				XDoWhileExpression xDoWhileExpression = (XDoWhileExpression)theEObject;
				T result = caseXDoWhileExpression(xDoWhileExpression);
				if (result == null) result = caseXAbstractWhileExpression(xDoWhileExpression);
				if (result == null) result = caseXExpression(xDoWhileExpression);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case XbasePackage.XWHILE_EXPRESSION:
			{
				XWhileExpression xWhileExpression = (XWhileExpression)theEObject;
				T result = caseXWhileExpression(xWhileExpression);
				if (result == null) result = caseXAbstractWhileExpression(xWhileExpression);
				if (result == null) result = caseXExpression(xWhileExpression);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case XbasePackage.XTYPE_LITERAL:
			{
				XTypeLiteral xTypeLiteral = (XTypeLiteral)theEObject;
				T result = caseXTypeLiteral(xTypeLiteral);
				if (result == null) result = caseXExpression(xTypeLiteral);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case XbasePackage.XINSTANCE_OF_EXPRESSION:
			{
				XInstanceOfExpression xInstanceOfExpression = (XInstanceOfExpression)theEObject;
				T result = caseXInstanceOfExpression(xInstanceOfExpression);
				if (result == null) result = caseXExpression(xInstanceOfExpression);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case XbasePackage.XTHROW_EXPRESSION:
			{
				XThrowExpression xThrowExpression = (XThrowExpression)theEObject;
				T result = caseXThrowExpression(xThrowExpression);
				if (result == null) result = caseXExpression(xThrowExpression);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case XbasePackage.XTRY_CATCH_FINALLY_EXPRESSION:
			{
				XTryCatchFinallyExpression xTryCatchFinallyExpression = (XTryCatchFinallyExpression)theEObject;
				T result = caseXTryCatchFinallyExpression(xTryCatchFinallyExpression);
				if (result == null) result = caseXExpression(xTryCatchFinallyExpression);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case XbasePackage.XCATCH_CLAUSE:
			{
				XCatchClause xCatchClause = (XCatchClause)theEObject;
				T result = caseXCatchClause(xCatchClause);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case XbasePackage.XASSIGNMENT:
			{
				XAssignment xAssignment = (XAssignment)theEObject;
				T result = caseXAssignment(xAssignment);
				if (result == null) result = caseXAbstractFeatureCall(xAssignment);
				if (result == null) result = caseXExpression(xAssignment);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case XbasePackage.XRETURN_EXPRESSION:
			{
				XReturnExpression xReturnExpression = (XReturnExpression)theEObject;
				T result = caseXReturnExpression(xReturnExpression);
				if (result == null) result = caseXExpression(xReturnExpression);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			case XbasePackage.XSYNCHRONIZED_EXPRESSION:
			{
				XSynchronizedExpression xSynchronizedExpression = (XSynchronizedExpression)theEObject;
				T result = caseXSynchronizedExpression(xSynchronizedExpression);
				if (result == null) result = caseXExpression(xSynchronizedExpression);
				if (result == null) result = defaultCase(theEObject);
				return result;
			}
			default: return defaultCase(theEObject);
		}
	}
836329
@Nonnull
	public <V extends T> LObjBiIntPredicateBuilder<T> casesOf(Class<V> argC1, Consumer<LObjBiIntPredicateBuilder<V>> pcpConsumer) {
		PartialCaseWithBoolProduct.The pc = partialCaseFactoryMethod((a1, a2, a3) -> (argC1 == null || argC1.isInstance(a1)));

		pc.specifySubCases((Consumer) pcpConsumer);
		return self();
	}
36041
public A getResult() {
		final InvocationHandler handler = new XAnnotationInvocationHandler(this);

		@SuppressWarnings("unchecked")
		final A annotation = (A) Proxy.newProxyInstance(
				annotationClass.getClassLoader(),
				new Class[] { annotationClass }, handler);

		return annotation;
	}
1020317
public static CaseTerminal perform() {
		CaseExpression cx = new CaseExpression();
		CaseTerminal ret = CaseFactory.createCaseTerminal(cx);
		cx.setClauseType(ClauseType.ELSE);
		return ret;
	}
369264
@Nullable
  public ResultT first() {
    final CoreRemoteMongoCursor<ResultT> cursor = iterator();
    if (!cursor.hasNext()) {
      return null;
    }
    return cursor.next();
  }
456716
@Override
	protected T doSwitch(int classifierID, EObject theEObject) {
		switch (classifierID) {
		case LogPackage.LOG_ACTION: {
			LogAction logAction = (LogAction) theEObject;
			T result = caseLogAction(logAction);
			if (result == null)
				result = defaultCase(theEObject);
			return result;
		}
		case LogPackage.SERVER_LOG: {
			ServerLog serverLog = (ServerLog) theEObject;
			T result = caseServerLog(serverLog);
			if (result == null)
				result = defaultCase(theEObject);
			return result;
		}
		case LogPackage.PROJECT_RELATED: {
			ProjectRelated projectRelated = (ProjectRelated) theEObject;
			T result = caseProjectRelated(projectRelated);
			if (result == null)
				result = caseLogAction(projectRelated);
			if (result == null)
				result = defaultCase(theEObject);
			return result;
		}
		case LogPackage.CHECKOUT_RELATED: {
			CheckoutRelated checkoutRelated = (CheckoutRelated) theEObject;
			T result = caseCheckoutRelated(checkoutRelated);
			if (result == null)
				result = caseLogAction(checkoutRelated);
			if (result == null)
				result = defaultCase(theEObject);
			return result;
		}
		case LogPackage.REVISION_RELATED: {
			RevisionRelated revisionRelated = (RevisionRelated) theEObject;
			T result = caseRevisionRelated(revisionRelated);
			if (result == null)
				result = caseLogAction(revisionRelated);
			if (result == null)
				result = defaultCase(theEObject);
			return result;
		}
		case LogPackage.USER_RELATED: {
			UserRelated userRelated = (UserRelated) theEObject;
			T result = caseUserRelated(userRelated);
			if (result == null)
				result = caseLogAction(userRelated);
			if (result == null)
				result = defaultCase(theEObject);
			return result;
		}
		case LogPackage.NEW_USER_ADDED: {
			NewUserAdded newUserAdded = (NewUserAdded) theEObject;
			T result = caseNewUserAdded(newUserAdded);
			if (result == null)
				result = caseUserRelated(newUserAdded);
			if (result == null)
				result = caseLogAction(newUserAdded);
			if (result == null)
				result = defaultCase(theEObject);
			return result;
		}
		case LogPackage.NEW_PROJECT_ADDED: {
			NewProjectAdded newProjectAdded = (NewProjectAdded) theEObject;
			T result = caseNewProjectAdded(newProjectAdded);
			if (result == null)
				result = caseProjectRelated(newProjectAdded);
			if (result == null)
				result = caseLogAction(newProjectAdded);
			if (result == null)
				result = defaultCase(theEObject);
			return result;
		}
		case LogPackage.REVISION_BRANCHED: {
			RevisionBranched revisionBranched = (RevisionBranched) theEObject;
			T result = caseRevisionBranched(revisionBranched);
			if (result == null)
				result = caseLogAction(revisionBranched);
			if (result == null)
				result = defaultCase(theEObject);
			return result;
		}
		case LogPackage.NEW_REVISION_ADDED: {
			NewRevisionAdded newRevisionAdded = (NewRevisionAdded) theEObject;
			T result = caseNewRevisionAdded(newRevisionAdded);
			if (result == null)
				result = caseRevisionRelated(newRevisionAdded);
			if (result == null)
				result = caseLogAction(newRevisionAdded);
			if (result == null)
				result = defaultCase(theEObject);
			return result;
		}
		case LogPackage.NEW_CHECKOUT_ADDED: {
			NewCheckoutAdded newCheckoutAdded = (NewCheckoutAdded) theEObject;
			T result = caseNewCheckoutAdded(newCheckoutAdded);
			if (result == null)
				result = caseCheckoutRelated(newCheckoutAdded);
			if (result == null)
				result = caseLogAction(newCheckoutAdded);
			if (result == null)
				result = defaultCase(theEObject);
			return result;
		}
		case LogPackage.SETTINGS_SAVED: {
			SettingsSaved settingsSaved = (SettingsSaved) theEObject;
			T result = caseSettingsSaved(settingsSaved);
			if (result == null)
				result = caseLogAction(settingsSaved);
			if (result == null)
				result = defaultCase(theEObject);
			return result;
		}
		case LogPackage.USER_ADDED_TO_PROJECT: {
			UserAddedToProject userAddedToProject = (UserAddedToProject) theEObject;
			T result = caseUserAddedToProject(userAddedToProject);
			if (result == null)
				result = caseUserRelated(userAddedToProject);
			if (result == null)
				result = caseLogAction(userAddedToProject);
			if (result == null)
				result = defaultCase(theEObject);
			return result;
		}
		case LogPackage.NEW_OBJECT_IDM_UPLOADED: {
			NewObjectIDMUploaded newObjectIDMUploaded = (NewObjectIDMUploaded) theEObject;
			T result = caseNewObjectIDMUploaded(newObjectIDMUploaded);
			if (result == null)
				result = caseLogAction(newObjectIDMUploaded);
			if (result == null)
				result = defaultCase(theEObject);
			return result;
		}
		case LogPackage.DOWNLOAD: {
			Download download = (Download) theEObject;
			T result = caseDownload(download);
			if (result == null)
				result = caseLogAction(download);
			if (result == null)
				result = defaultCase(theEObject);
			return result;
		}
		case LogPackage.USER_REMOVED_FROM_PROJECT: {
			UserRemovedFromProject userRemovedFromProject = (UserRemovedFromProject) theEObject;
			T result = caseUserRemovedFromProject(userRemovedFromProject);
			if (result == null)
				result = caseUserRelated(userRemovedFromProject);
			if (result == null)
				result = caseLogAction(userRemovedFromProject);
			if (result == null)
				result = defaultCase(theEObject);
			return result;
		}
		case LogPackage.PROJECT_DELETED: {
			ProjectDeleted projectDeleted = (ProjectDeleted) theEObject;
			T result = caseProjectDeleted(projectDeleted);
			if (result == null)
				result = caseProjectRelated(projectDeleted);
			if (result == null)
				result = caseLogAction(projectDeleted);
			if (result == null)
				result = defaultCase(theEObject);
			return result;
		}
		case LogPackage.USER_DELETED: {
			UserDeleted userDeleted = (UserDeleted) theEObject;
			T result = caseUserDeleted(userDeleted);
			if (result == null)
				result = caseUserRelated(userDeleted);
			if (result == null)
				result = caseLogAction(userDeleted);
			if (result == null)
				result = defaultCase(theEObject);
			return result;
		}
		case LogPackage.PASSWORD_RESET: {
			PasswordReset passwordReset = (PasswordReset) theEObject;
			T result = casePasswordReset(passwordReset);
			if (result == null)
				result = caseUserRelated(passwordReset);
			if (result == null)
				result = caseLogAction(passwordReset);
			if (result == null)
				result = defaultCase(theEObject);
			return result;
		}
		case LogPackage.DATABASE_CREATED: {
			DatabaseCreated databaseCreated = (DatabaseCreated) theEObject;
			T result = caseDatabaseCreated(databaseCreated);
			if (result == null)
				result = caseLogAction(databaseCreated);
			if (result == null)
				result = defaultCase(theEObject);
			return result;
		}
		case LogPackage.SERVER_STARTED: {
			ServerStarted serverStarted = (ServerStarted) theEObject;
			T result = caseServerStarted(serverStarted);
			if (result == null)
				result = caseLogAction(serverStarted);
			if (result == null)
				result = defaultCase(theEObject);
			return result;
		}
		case LogPackage.PROJECT_UPDATED: {
			ProjectUpdated projectUpdated = (ProjectUpdated) theEObject;
			T result = caseProjectUpdated(projectUpdated);
			if (result == null)
				result = caseProjectRelated(projectUpdated);
			if (result == null)
				result = caseLogAction(projectUpdated);
			if (result == null)
				result = defaultCase(theEObject);
			return result;
		}
		case LogPackage.USER_UNDELETED: {
			UserUndeleted userUndeleted = (UserUndeleted) theEObject;
			T result = caseUserUndeleted(userUndeleted);
			if (result == null)
				result = caseUserRelated(userUndeleted);
			if (result == null)
				result = caseLogAction(userUndeleted);
			if (result == null)
				result = defaultCase(theEObject);
			return result;
		}
		case LogPackage.PROJECT_UNDELETED: {
			ProjectUndeleted projectUndeleted = (ProjectUndeleted) theEObject;
			T result = caseProjectUndeleted(projectUndeleted);
			if (result == null)
				result = caseProjectRelated(projectUndeleted);
			if (result == null)
				result = caseLogAction(projectUndeleted);
			if (result == null)
				result = defaultCase(theEObject);
			return result;
		}
		case LogPackage.REVISION_UPDATED: {
			RevisionUpdated revisionUpdated = (RevisionUpdated) theEObject;
			T result = caseRevisionUpdated(revisionUpdated);
			if (result == null)
				result = caseRevisionRelated(revisionUpdated);
			if (result == null)
				result = caseLogAction(revisionUpdated);
			if (result == null)
				result = defaultCase(theEObject);
			return result;
		}
		case LogPackage.GEO_TAG_UPDATED: {
			GeoTagUpdated geoTagUpdated = (GeoTagUpdated) theEObject;
			T result = caseGeoTagUpdated(geoTagUpdated);
			if (result == null)
				result = caseLogAction(geoTagUpdated);
			if (result == null)
				result = defaultCase(theEObject);
			return result;
		}
		case LogPackage.PASSWORD_CHANGED: {
			PasswordChanged passwordChanged = (PasswordChanged) theEObject;
			T result = casePasswordChanged(passwordChanged);
			if (result == null)
				result = caseUserRelated(passwordChanged);
			if (result == null)
				result = caseLogAction(passwordChanged);
			if (result == null)
				result = defaultCase(theEObject);
			return result;
		}
		case LogPackage.USER_CHANGED: {
			UserChanged userChanged = (UserChanged) theEObject;
			T result = caseUserChanged(userChanged);
			if (result == null)
				result = caseUserRelated(userChanged);
			if (result == null)
				result = caseLogAction(userChanged);
			if (result == null)
				result = defaultCase(theEObject);
			return result;
		}
		case LogPackage.EXTENDED_DATA_ADDED_TO_REVISION: {
			ExtendedDataAddedToRevision extendedDataAddedToRevision = (ExtendedDataAddedToRevision) theEObject;
			T result = caseExtendedDataAddedToRevision(extendedDataAddedToRevision);
			if (result == null)
				result = caseLogAction(extendedDataAddedToRevision);
			if (result == null)
				result = defaultCase(theEObject);
			return result;
		}
		case LogPackage.EXTENDED_DATA_ADDED_TO_PROJECT: {
			ExtendedDataAddedToProject extendedDataAddedToProject = (ExtendedDataAddedToProject) theEObject;
			T result = caseExtendedDataAddedToProject(extendedDataAddedToProject);
			if (result == null)
				result = caseLogAction(extendedDataAddedToProject);
			if (result == null)
				result = defaultCase(theEObject);
			return result;
		}
		case LogPackage.REMOTE_SERVICE_CALLED: {
			RemoteServiceCalled remoteServiceCalled = (RemoteServiceCalled) theEObject;
			T result = caseRemoteServiceCalled(remoteServiceCalled);
			if (result == null)
				result = caseLogAction(remoteServiceCalled);
			if (result == null)
				result = defaultCase(theEObject);
			return result;
		}
		default:
			return defaultCase(theEObject);
		}
	}
1348972
@Override
    public CompletableFuture<T> getNext() {
        // Verify no other call to getNext() is currently executing.
        return getNextBucket()
                .thenCompose(bucket -> {
                    if (bucket == null) {
                        // We are done.
                        return CompletableFuture.completedFuture(null);
                    } else {
                        // Convert the TableBucket into the desired result.
                        return this.resultConverter.apply(bucket);
                    }
                });
    }
847058
private Expression readCaseWhenExpression() {

        Expression l = null;

        read();
        readThis(Tokens.OPENBRACKET);

        l = XreadBooleanValueExpression();

        readThis(Tokens.COMMA);

        Expression thenelse = XreadRowValueExpression();

        readThis(Tokens.COMMA);

        thenelse = new ExpressionOp(OpTypes.ALTERNATIVE, thenelse,
                                    XreadValueExpression());
        l = new ExpressionOp(OpTypes.CASEWHEN, l, thenelse);

        readThis(Tokens.CLOSEBRACKET);

        return l;
    }