docs: protected T doSwitch(int classifierID, EObject theEObject) {
  		switch (classifierID) {
  			case BpsimPackage.BETA_DISTRIBUTION_TYPE: {
  				BetaDistributionType betaDistributionType = (BetaDistributionType)theEObject;
  				T result = caseBetaDistributionType(betaDistributionType);
  				if (result == null) result = caseDistributionParameter(betaDistributionType);
  				if (result == null) result = caseParameterValue(betaDistributionType);
  				if (result == null) result = defaultCase(theEObject);
  				return result;
  			}
  			case BpsimPackage.BINOMIAL_DISTRIBUTION_TYPE: {
  				BinomialDistributionType binomialDistributionType = (BinomialDistributionType)theEObject;
  				T result = caseBinomialDistributionType(binomialDistributionType);
  				if (result == null) result = caseDistributionParameter(binomialDistributionType);
  				if (result == null) result = caseParameterValue(binomialDistributionType);
  				if (result == null) result = defaultCase(theEObject);
  				return result;
  			}
  			case BpsimPackage.BOOLEAN_PARAMETER_TYPE: {
  				BooleanParameterType booleanParameterType = (BooleanParameterType)theEObject;
  				T result = caseBooleanParameterType(booleanParameterType);
  				if (result == null) result = caseConstantParameter(booleanParameterType);
  				if (result == null) result = caseParameterValue(booleanParameterType);
  				if (result == null) result = defaultCase(theEObject);
  				return result;
  			}
  			case BpsimPackage.BP_SIM_DATA_TYPE: {
  				BPSimDataType bpSimDataType = (BPSimDataType)theEObject;
  				T result = caseBPSimDataType(bpSimDataType);
  				if (result == null) result = defaultCase(theEObject);
  				return result;
  			}
  			case BpsimPackage.CALENDAR: {
  				Calendar calendar = (Calendar)theEObject;
  				T result = caseCalendar(calendar);
  				if (result == null) result = defaultCase(theEObject);
  				return result;
  			}
  			case BpsimPackage.CONSTANT_PARAMETER: {
  				ConstantParameter constantParameter = (ConstantParameter)theEObject;
  				T result = caseConstantParameter(constantParameter);
  				if (result == null) result = caseParameterValue(constantParameter);
  				if (result == null) result = defaultCase(theEObject);
  				return result;
  			}
  			case BpsimPackage.CONTROL_PARAMETERS: {
  				ControlParameters controlParameters = (ControlParameters)theEObject;
  				T result = caseControlParameters(controlParameters);
  				if (result == null) result = defaultCase(theEObject);
  				return result;
  			}
  			case BpsimPackage.COST_PARAMETERS: {
  				CostParameters costParameters = (CostParameters)theEObject;
  				T result = caseCostParameters(costParameters);
  				if (result == null) result = defaultCase(theEObject);
  				return result;
  			}
  			case BpsimPackage.DATE_TIME_PARAMETER_TYPE: {
  				DateTimeParameterType dateTimeParameterType = (DateTimeParameterType)theEObject;
  				T result = caseDateTimeParameterType(dateTimeParameterType);
  				if (result == null) result = caseConstantParameter(dateTimeParameterType);
  				if (result == null) result = caseParameterValue(dateTimeParameterType);
  				if (result == null) result = defaultCase(theEObject);
  				return result;
  			}
  			case BpsimPackage.DISTRIBUTION_PARAMETER: {
  				DistributionParameter distributionParameter = (DistributionParameter)theEObject;
  				T result = caseDistributionParameter(distributionParameter);
  				if (result == null) result = caseParameterValue(distributionParameter);
  				if (result == null) result = defaultCase(theEObject);
  				return result;
  			}
  			case BpsimPackage.DOCUMENT_ROOT: {
  				DocumentRoot documentRoot = (DocumentRoot)theEObject;
  				T result = caseDocumentRoot(documentRoot);
  				if (result == null) result = defaultCase(theEObject);
  				return result;
  			}
  			case BpsimPackage.DURATION_PARAMETER_TYPE: {
  				DurationParameterType durationParameterType = (DurationParameterType)theEObject;
  				T result = caseDurationParameterType(durationParameterType);
  				if (result == null) result = caseConstantParameter(durationParameterType);
  				if (result == null) result = caseParameterValue(durationParameterType);
  				if (result == null) result = defaultCase(theEObject);
  				return result;
  			}
  			case BpsimPackage.ELEMENT_PARAMETERS: {
  				ElementParameters elementParameters = (ElementParameters)theEObject;
  				T result = caseElementParameters(elementParameters);
  				if (result == null) result = defaultCase(theEObject);
  				return result;
  			}
  			case BpsimPackage.ELEMENT_PARAMETERS_TYPE: {
  				ElementParametersType elementParametersType = (ElementParametersType)theEObject;
  				T result = caseElementParametersType(elementParametersType);
  				if (result == null) result = caseElementParameters(elementParametersType);
  				if (result == null) result = defaultCase(theEObject);
  				return result;
  			}
  			case BpsimPackage.ENUM_PARAMETER_TYPE: {
  				EnumParameterType enumParameterType = (EnumParameterType)theEObject;
  				T result = caseEnumParameterType(enumParameterType);
  				if (result == null) result = caseParameterValue(enumParameterType);
  				if (result == null) result = defaultCase(theEObject);
  				return result;
  			}
  			case BpsimPackage.ERLANG_DISTRIBUTION_TYPE: {
  				ErlangDistributionType erlangDistributionType = (ErlangDistributionType)theEObject;
  				T result = caseErlangDistributionType(erlangDistributionType);
  				if (result == null) result = caseDistributionParameter(erlangDistributionType);
  				if (result == null) result = caseParameterValue(erlangDistributionType);
  				if (result == null) result = defaultCase(theEObject);
  				return result;
  			}
  			case BpsimPackage.EXPRESSION_PARAMETER_TYPE: {
  				ExpressionParameterType expressionParameterType = (ExpressionParameterType)theEObject;
  				T result = caseExpressionParameterType(expressionParameterType);
  				if (result == null) result = caseParameterValue(expressionParameterType);
  				if (result == null) result = defaultCase(theEObject);
  				return result;
  			}
  			case BpsimPackage.FLOATING_PARAMETER_TYPE: {
  				FloatingParameterType floatingParameterType = (FloatingParameterType)theEObject;
  				T result = caseFloatingParameterType(floatingParameterType);
  				if (result == null) result = caseConstantParameter(floatingParameterType);
  				if (result == null) result = caseParameterValue(floatingParameterType);
  				if (result == null) result = defaultCase(theEObject);
  				return result;
  			}
  			case BpsimPackage.GAMMA_DISTRIBUTION_TYPE: {
  				GammaDistributionType gammaDistributionType = (GammaDistributionType)theEObject;
  				T result = caseGammaDistributionType(gammaDistributionType);
  				if (result == null) result = caseDistributionParameter(gammaDistributionType);
  				if (result == null) result = caseParameterValue(gammaDistributionType);
  				if (result == null) result = defaultCase(theEObject);
  				return result;
  			}
  			case BpsimPackage.LOG_NORMAL_DISTRIBUTION_TYPE: {
  				LogNormalDistributionType logNormalDistributionType = (LogNormalDistributionType)theEObject;
  				T result = caseLogNormalDistributionType(logNormalDistributionType);
  				if (result == null) result = caseDistributionParameter(logNormalDistributionType);
  				if (result == null) result = caseParameterValue(logNormalDistributionType);
  				if (result == null) result = defaultCase(theEObject);
  				return result;
  			}
  			case BpsimPackage.NEGATIVE_EXPONENTIAL_DISTRIBUTION_TYPE: {
  				NegativeExponentialDistributionType negativeExponentialDistributionType = (NegativeExponentialDistributionType)theEObject;
  				T result = caseNegativeExponentialDistributionType(negativeExponentialDistributionType);
  				if (result == null) result = caseDistributionParameter(negativeExponentialDistributionType);
  				if (result == null) result = caseParameterValue(negativeExponentialDistributionType);
  				if (result == null) result = defaultCase(theEObject);
  				return result;
  			}
  			case BpsimPackage.NORMAL_DISTRIBUTION_TYPE: {
  				NormalDistributionType normalDistributionType = (NormalDistributionType)theEObject;
  				T result = caseNormalDistributionType(normalDistributionType);
  				if (result == null) result = caseDistributionParameter(normalDistributionType);
  				if (result == null) result = caseParameterValue(normalDistributionType);
  				if (result == null) result = defaultCase(theEObject);
  				return result;
  			}
  			case BpsimPackage.NUMERIC_PARAMETER_TYPE: {
  				NumericParameterType numericParameterType = (NumericParameterType)theEObject;
  				T result = caseNumericParameterType(numericParameterType);
  				if (result == null) result = caseConstantParameter(numericParameterType);
  				if (result == null) result = caseParameterValue(numericParameterType);
  				if (result == null) result = defaultCase(theEObject);
  				return result;
  			}
  			case BpsimPackage.PARAMETER: {
  				Parameter parameter = (Parameter)theEObject;
  				T result = caseParameter(parameter);
  				if (result == null) result = defaultCase(theEObject);
  				return result;
  			}
  			case BpsimPackage.PARAMETER_VALUE: {
  				ParameterValue parameterValue = (ParameterValue)theEObject;
  				T result = caseParameterValue(parameterValue);
  				if (result == null) result = defaultCase(theEObject);
  				return result;
  			}
  			case BpsimPackage.POISSON_DISTRIBUTION_TYPE: {
  				PoissonDistributionType poissonDistributionType = (PoissonDistributionType)theEObject;
  				T result = casePoissonDistributionType(poissonDistributionType);
  				if (result == null) result = caseDistributionParameter(poissonDistributionType);
  				if (result == null) result = caseParameterValue(poissonDistributionType);
  				if (result == null) result = defaultCase(theEObject);
  				return result;
  			}
  			case BpsimPackage.PRIORITY_PARAMETERS: {
  				PriorityParameters priorityParameters = (PriorityParameters)theEObject;
  				T result = casePriorityParameters(priorityParameters);
  				if (result == null) result = defaultCase(theEObject);
  				return result;
  			}
  			case BpsimPackage.PROPERTY_PARAMETERS: {
  				PropertyParameters propertyParameters = (PropertyParameters)theEObject;
  				T result = casePropertyParameters(propertyParameters);
  				if (result == null) result = defaultCase(theEObject);
  				return result;
  			}
  			case BpsimPackage.PROPERTY_TYPE: {
  				PropertyType propertyType = (PropertyType)theEObject;
  				T result = casePropertyType(propertyType);
  				if (result == null) result = caseParameter(propertyType);
  				if (result == null) result = defaultCase(theEObject);
  				return result;
  			}
  			case BpsimPackage.RESOURCE_PARAMETERS: {
  				ResourceParameters resourceParameters = (ResourceParameters)theEObject;
  				T result = caseResourceParameters(resourceParameters);
  				if (result == null) result = defaultCase(theEObject);
  				return result;
  			}
  			case BpsimPackage.SCENARIO: {
  				Scenario scenario = (Scenario)theEObject;
  				T result = caseScenario(scenario);
  				if (result == null) result = defaultCase(theEObject);
  				return result;
  			}
  			case BpsimPackage.SCENARIO_PARAMETERS: {
  				ScenarioParameters scenarioParameters = (ScenarioParameters)theEObject;
  				T result = caseScenarioParameters(scenarioParameters);
  				if (result == null) result = defaultCase(theEObject);
  				return result;
  			}
  			case BpsimPackage.SCENARIO_PARAMETERS_TYPE: {
  				ScenarioParametersType scenarioParametersType = (ScenarioParametersType)theEObject;
  				T result = caseScenarioParametersType(scenarioParametersType);
  				if (result == null) result = caseScenarioParameters(scenarioParametersType);
  				if (result == null) result = defaultCase(theEObject);
  				return result;
  			}
  			case BpsimPackage.STRING_PARAMETER_TYPE: {
  				StringParameterType stringParameterType = (StringParameterType)theEObject;
  				T result = caseStringParameterType(stringParameterType);
  				if (result == null) result = caseConstantParameter(stringParameterType);
  				if (result == null) result = caseParameterValue(stringParameterType);
  				if (result == null) result = defaultCase(theEObject);
  				return result;
  			}
  			case BpsimPackage.TIME_PARAMETERS: {
  				TimeParameters timeParameters = (TimeParameters)theEObject;
  				T result = caseTimeParameters(timeParameters);
  				if (result == null) result = defaultCase(theEObject);
  				return result;
  			}
  			case BpsimPackage.TRIANGULAR_DISTRIBUTION_TYPE: {
  				TriangularDistributionType triangularDistributionType = (TriangularDistributionType)theEObject;
  				T result = caseTriangularDistributionType(triangularDistributionType);
  				if (result == null) result = caseDistributionParameter(triangularDistributionType);
  				if (result == null) result = caseParameterValue(triangularDistributionType);
  				if (result == null) result = defaultCase(theEObject);
  				return result;
  			}
  			case BpsimPackage.TRUNCATED_NORMAL_DISTRIBUTION_TYPE: {
  				TruncatedNormalDistributionType truncatedNormalDistributionType = (TruncatedNormalDistributionType)theEObject;
  				T result = caseTruncatedNormalDistributionType(truncatedNormalDistributionType);
  				if (result == null) result = caseDistributionParameter(truncatedNormalDistributionType);
  				if (result == null) result = caseParameterValue(truncatedNormalDistributionType);
  				if (result == null) result = defaultCase(theEObject);
  				return result;
  			}
  			case BpsimPackage.UNIFORM_DISTRIBUTION_TYPE: {
  				UniformDistributionType uniformDistributionType = (UniformDistributionType)theEObject;
  				T result = caseUniformDistributionType(uniformDistributionType);
  				if (result == null) result = caseDistributionParameter(uniformDistributionType);
  				if (result == null) result = caseParameterValue(uniformDistributionType);
  				if (result == null) result = defaultCase(theEObject);
  				return result;
  			}
  			case BpsimPackage.USER_DISTRIBUTION_DATA_POINT_TYPE: {
  				UserDistributionDataPointType userDistributionDataPointType = (UserDistributionDataPointType)theEObject;
  				T result = caseUserDistributionDataPointType(userDistributionDataPointType);
  				if (result == null) result = defaultCase(theEObject);
  				return result;
  			}
  			case BpsimPackage.USER_DISTRIBUTION_TYPE: {
  				UserDistributionType userDistributionType = (UserDistributionType)theEObject;
  				T result = caseUserDistributionType(userDistributionType);
  				if (result == null) result = caseDistributionParameter(userDistributionType);
  				if (result == null) result = caseParameterValue(userDistributionType);
  				if (result == null) result = defaultCase(theEObject);
  				return result;
  			}
  			case BpsimPackage.VENDOR_EXTENSION: {
  				VendorExtension vendorExtension = (VendorExtension)theEObject;
  				T result = caseVendorExtension(vendorExtension);
  				if (result == null) result = defaultCase(theEObject);
  				return result;
  			}
  			case BpsimPackage.WEIBULL_DISTRIBUTION_TYPE: {
  				WeibullDistributionType weibullDistributionType = (WeibullDistributionType)theEObject;
  				T result = caseWeibullDistributionType(weibullDistributionType);
  				if (result == null) result = caseDistributionParameter(weibullDistributionType);
  				if (result == null) result = caseParameterValue(weibullDistributionType);
  				if (result == null) result = defaultCase(theEObject);
  				return result;
  			}
  			default: return defaultCase(theEObject);
  		}
  	}