docs: public void createPackageContents() {
  		if (isCreated) return;
  		isCreated = true;
  
  		// Create classes and their features
  		betaDistributionTypeEClass = createEClass(BETA_DISTRIBUTION_TYPE);
  		createEAttribute(betaDistributionTypeEClass, BETA_DISTRIBUTION_TYPE__SCALE);
  		createEAttribute(betaDistributionTypeEClass, BETA_DISTRIBUTION_TYPE__SHAPE);
  
  		binomialDistributionTypeEClass = createEClass(BINOMIAL_DISTRIBUTION_TYPE);
  		createEAttribute(binomialDistributionTypeEClass, BINOMIAL_DISTRIBUTION_TYPE__PROBABILITY);
  		createEAttribute(binomialDistributionTypeEClass, BINOMIAL_DISTRIBUTION_TYPE__TRIALS);
  
  		booleanParameterTypeEClass = createEClass(BOOLEAN_PARAMETER_TYPE);
  		createEAttribute(booleanParameterTypeEClass, BOOLEAN_PARAMETER_TYPE__VALUE);
  
  		bpSimDataTypeEClass = createEClass(BP_SIM_DATA_TYPE);
  		createEAttribute(bpSimDataTypeEClass, BP_SIM_DATA_TYPE__GROUP);
  		createEReference(bpSimDataTypeEClass, BP_SIM_DATA_TYPE__SCENARIO);
  
  		calendarEClass = createEClass(CALENDAR);
  		createEAttribute(calendarEClass, CALENDAR__VALUE);
  		createEAttribute(calendarEClass, CALENDAR__ID);
  		createEAttribute(calendarEClass, CALENDAR__NAME);
  
  		constantParameterEClass = createEClass(CONSTANT_PARAMETER);
  
  		controlParametersEClass = createEClass(CONTROL_PARAMETERS);
  		createEReference(controlParametersEClass, CONTROL_PARAMETERS__PROBABILITY);
  		createEReference(controlParametersEClass, CONTROL_PARAMETERS__CONDITION);
  		createEReference(controlParametersEClass, CONTROL_PARAMETERS__INTER_TRIGGER_TIMER);
  		createEReference(controlParametersEClass, CONTROL_PARAMETERS__TRIGGER_COUNT);
  
  		costParametersEClass = createEClass(COST_PARAMETERS);
  		createEReference(costParametersEClass, COST_PARAMETERS__FIXED_COST);
  		createEReference(costParametersEClass, COST_PARAMETERS__UNIT_COST);
  
  		dateTimeParameterTypeEClass = createEClass(DATE_TIME_PARAMETER_TYPE);
  		createEAttribute(dateTimeParameterTypeEClass, DATE_TIME_PARAMETER_TYPE__VALUE);
  
  		distributionParameterEClass = createEClass(DISTRIBUTION_PARAMETER);
  		createEAttribute(distributionParameterEClass, DISTRIBUTION_PARAMETER__CURRENCY_UNIT);
  		createEAttribute(distributionParameterEClass, DISTRIBUTION_PARAMETER__TIME_UNIT);
  
  		documentRootEClass = createEClass(DOCUMENT_ROOT);
  		createEAttribute(documentRootEClass, DOCUMENT_ROOT__MIXED);
  		createEReference(documentRootEClass, DOCUMENT_ROOT__XMLNS_PREFIX_MAP);
  		createEReference(documentRootEClass, DOCUMENT_ROOT__XSI_SCHEMA_LOCATION);
  		createEReference(documentRootEClass, DOCUMENT_ROOT__BETA_DISTRIBUTION);
  		createEReference(documentRootEClass, DOCUMENT_ROOT__PARAMETER_VALUE);
  		createEReference(documentRootEClass, DOCUMENT_ROOT__BINOMIAL_DISTRIBUTION);
  		createEReference(documentRootEClass, DOCUMENT_ROOT__BOOLEAN_PARAMETER);
  		createEReference(documentRootEClass, DOCUMENT_ROOT__BP_SIM_DATA);
  		createEReference(documentRootEClass, DOCUMENT_ROOT__DATE_TIME_PARAMETER);
  		createEReference(documentRootEClass, DOCUMENT_ROOT__DURATION_PARAMETER);
  		createEReference(documentRootEClass, DOCUMENT_ROOT__ENUM_PARAMETER);
  		createEReference(documentRootEClass, DOCUMENT_ROOT__ERLANG_DISTRIBUTION);
  		createEReference(documentRootEClass, DOCUMENT_ROOT__EXPRESSION_PARAMETER);
  		createEReference(documentRootEClass, DOCUMENT_ROOT__FLOATING_PARAMETER);
  		createEReference(documentRootEClass, DOCUMENT_ROOT__GAMMA_DISTRIBUTION);
  		createEReference(documentRootEClass, DOCUMENT_ROOT__LOG_NORMAL_DISTRIBUTION);
  		createEReference(documentRootEClass, DOCUMENT_ROOT__NEGATIVE_EXPONENTIAL_DISTRIBUTION);
  		createEReference(documentRootEClass, DOCUMENT_ROOT__NORMAL_DISTRIBUTION);
  		createEReference(documentRootEClass, DOCUMENT_ROOT__NUMERIC_PARAMETER);
  		createEReference(documentRootEClass, DOCUMENT_ROOT__POISSON_DISTRIBUTION);
  		createEReference(documentRootEClass, DOCUMENT_ROOT__STRING_PARAMETER);
  		createEReference(documentRootEClass, DOCUMENT_ROOT__TRIANGULAR_DISTRIBUTION);
  		createEReference(documentRootEClass, DOCUMENT_ROOT__TRUNCATED_NORMAL_DISTRIBUTION);
  		createEReference(documentRootEClass, DOCUMENT_ROOT__UNIFORM_DISTRIBUTION);
  		createEReference(documentRootEClass, DOCUMENT_ROOT__USER_DISTRIBUTION);
  		createEReference(documentRootEClass, DOCUMENT_ROOT__USER_DISTRIBUTION_DATA_POINT);
  		createEReference(documentRootEClass, DOCUMENT_ROOT__WEIBULL_DISTRIBUTION);
  
  		durationParameterTypeEClass = createEClass(DURATION_PARAMETER_TYPE);
  		createEAttribute(durationParameterTypeEClass, DURATION_PARAMETER_TYPE__VALUE);
  
  		elementParametersEClass = createEClass(ELEMENT_PARAMETERS);
  		createEReference(elementParametersEClass, ELEMENT_PARAMETERS__TIME_PARAMETERS);
  		createEReference(elementParametersEClass, ELEMENT_PARAMETERS__CONTROL_PARAMETERS);
  		createEReference(elementParametersEClass, ELEMENT_PARAMETERS__RESOURCE_PARAMETERS);
  		createEReference(elementParametersEClass, ELEMENT_PARAMETERS__PRIORITY_PARAMETERS);
  		createEReference(elementParametersEClass, ELEMENT_PARAMETERS__COST_PARAMETERS);
  		createEReference(elementParametersEClass, ELEMENT_PARAMETERS__PROPERTY_PARAMETERS);
  		createEReference(elementParametersEClass, ELEMENT_PARAMETERS__VENDOR_EXTENSION);
  		createEAttribute(elementParametersEClass, ELEMENT_PARAMETERS__ELEMENT_REF);
  		createEAttribute(elementParametersEClass, ELEMENT_PARAMETERS__ID);
  
  		elementParametersTypeEClass = createEClass(ELEMENT_PARAMETERS_TYPE);
  
  		enumParameterTypeEClass = createEClass(ENUM_PARAMETER_TYPE);
  		createEAttribute(enumParameterTypeEClass, ENUM_PARAMETER_TYPE__GROUP);
  		createEAttribute(enumParameterTypeEClass, ENUM_PARAMETER_TYPE__PARAMETER_VALUE_GROUP);
  		createEReference(enumParameterTypeEClass, ENUM_PARAMETER_TYPE__PARAMETER_VALUE);
  
  		erlangDistributionTypeEClass = createEClass(ERLANG_DISTRIBUTION_TYPE);
  		createEAttribute(erlangDistributionTypeEClass, ERLANG_DISTRIBUTION_TYPE__K);
  		createEAttribute(erlangDistributionTypeEClass, ERLANG_DISTRIBUTION_TYPE__MEAN);
  
  		expressionParameterTypeEClass = createEClass(EXPRESSION_PARAMETER_TYPE);
  		createEAttribute(expressionParameterTypeEClass, EXPRESSION_PARAMETER_TYPE__VALUE);
  
  		floatingParameterTypeEClass = createEClass(FLOATING_PARAMETER_TYPE);
  		createEAttribute(floatingParameterTypeEClass, FLOATING_PARAMETER_TYPE__CURRENCY_UNIT);
  		createEAttribute(floatingParameterTypeEClass, FLOATING_PARAMETER_TYPE__TIME_UNIT);
  		createEAttribute(floatingParameterTypeEClass, FLOATING_PARAMETER_TYPE__VALUE);
  
  		gammaDistributionTypeEClass = createEClass(GAMMA_DISTRIBUTION_TYPE);
  		createEAttribute(gammaDistributionTypeEClass, GAMMA_DISTRIBUTION_TYPE__SCALE);
  		createEAttribute(gammaDistributionTypeEClass, GAMMA_DISTRIBUTION_TYPE__SHAPE);
  
  		logNormalDistributionTypeEClass = createEClass(LOG_NORMAL_DISTRIBUTION_TYPE);
  		createEAttribute(logNormalDistributionTypeEClass, LOG_NORMAL_DISTRIBUTION_TYPE__MEAN);
  		createEAttribute(logNormalDistributionTypeEClass, LOG_NORMAL_DISTRIBUTION_TYPE__STANDARD_DEVIATION);
  
  		negativeExponentialDistributionTypeEClass = createEClass(NEGATIVE_EXPONENTIAL_DISTRIBUTION_TYPE);
  		createEAttribute(negativeExponentialDistributionTypeEClass, NEGATIVE_EXPONENTIAL_DISTRIBUTION_TYPE__MEAN);
  
  		normalDistributionTypeEClass = createEClass(NORMAL_DISTRIBUTION_TYPE);
  		createEAttribute(normalDistributionTypeEClass, NORMAL_DISTRIBUTION_TYPE__MEAN);
  		createEAttribute(normalDistributionTypeEClass, NORMAL_DISTRIBUTION_TYPE__STANDARD_DEVIATION);
  
  		numericParameterTypeEClass = createEClass(NUMERIC_PARAMETER_TYPE);
  		createEAttribute(numericParameterTypeEClass, NUMERIC_PARAMETER_TYPE__CURRENCY_UNIT);
  		createEAttribute(numericParameterTypeEClass, NUMERIC_PARAMETER_TYPE__TIME_UNIT);
  		createEAttribute(numericParameterTypeEClass, NUMERIC_PARAMETER_TYPE__VALUE);
  
  		parameterEClass = createEClass(PARAMETER);
  		createEAttribute(parameterEClass, PARAMETER__RESULT_REQUEST);
  		createEAttribute(parameterEClass, PARAMETER__PARAMETER_VALUE_GROUP);
  		createEReference(parameterEClass, PARAMETER__PARAMETER_VALUE);
  		createEAttribute(parameterEClass, PARAMETER__KPI);
  		createEAttribute(parameterEClass, PARAMETER__SLA);
  
  		parameterValueEClass = createEClass(PARAMETER_VALUE);
  		createEAttribute(parameterValueEClass, PARAMETER_VALUE__INSTANCE);
  		createEAttribute(parameterValueEClass, PARAMETER_VALUE__RESULT);
  		createEAttribute(parameterValueEClass, PARAMETER_VALUE__VALID_FOR);
  
  		poissonDistributionTypeEClass = createEClass(POISSON_DISTRIBUTION_TYPE);
  		createEAttribute(poissonDistributionTypeEClass, POISSON_DISTRIBUTION_TYPE__MEAN);
  
  		priorityParametersEClass = createEClass(PRIORITY_PARAMETERS);
  		createEReference(priorityParametersEClass, PRIORITY_PARAMETERS__INTERRUPTIBLE);
  		createEReference(priorityParametersEClass, PRIORITY_PARAMETERS__PRIORITY);
  
  		propertyParametersEClass = createEClass(PROPERTY_PARAMETERS);
  		createEReference(propertyParametersEClass, PROPERTY_PARAMETERS__PROPERTY);
  
  		propertyTypeEClass = createEClass(PROPERTY_TYPE);
  		createEAttribute(propertyTypeEClass, PROPERTY_TYPE__NAME);
  
  		resourceParametersEClass = createEClass(RESOURCE_PARAMETERS);
  		createEReference(resourceParametersEClass, RESOURCE_PARAMETERS__SELECTION);
  		createEReference(resourceParametersEClass, RESOURCE_PARAMETERS__AVAILABILITY);
  		createEReference(resourceParametersEClass, RESOURCE_PARAMETERS__QUANTITY);
  		createEReference(resourceParametersEClass, RESOURCE_PARAMETERS__ROLE);
  
  		scenarioEClass = createEClass(SCENARIO);
  		createEReference(scenarioEClass, SCENARIO__SCENARIO_PARAMETERS);
  		createEReference(scenarioEClass, SCENARIO__ELEMENT_PARAMETERS);
  		createEReference(scenarioEClass, SCENARIO__CALENDAR);
  		createEReference(scenarioEClass, SCENARIO__VENDOR_EXTENSION);
  		createEAttribute(scenarioEClass, SCENARIO__AUTHOR);
  		createEAttribute(scenarioEClass, SCENARIO__CREATED);
  		createEAttribute(scenarioEClass, SCENARIO__DESCRIPTION);
  		createEAttribute(scenarioEClass, SCENARIO__ID);
  		createEAttribute(scenarioEClass, SCENARIO__INHERITS);
  		createEAttribute(scenarioEClass, SCENARIO__MODIFIED);
  		createEAttribute(scenarioEClass, SCENARIO__NAME);
  		createEAttribute(scenarioEClass, SCENARIO__RESULT);
  		createEAttribute(scenarioEClass, SCENARIO__VENDOR);
  		createEAttribute(scenarioEClass, SCENARIO__VERSION);
  
  		scenarioParametersEClass = createEClass(SCENARIO_PARAMETERS);
  		createEReference(scenarioParametersEClass, SCENARIO_PARAMETERS__START);
  		createEReference(scenarioParametersEClass, SCENARIO_PARAMETERS__DURATION);
  		createEReference(scenarioParametersEClass, SCENARIO_PARAMETERS__PROPERTY_PARAMETERS);
  		createEAttribute(scenarioParametersEClass, SCENARIO_PARAMETERS__BASE_CURRENCY_UNIT);
  		createEAttribute(scenarioParametersEClass, SCENARIO_PARAMETERS__BASE_TIME_UNIT);
  		createEAttribute(scenarioParametersEClass, SCENARIO_PARAMETERS__REPLICATION);
  		createEAttribute(scenarioParametersEClass, SCENARIO_PARAMETERS__SEED);
  
  		scenarioParametersTypeEClass = createEClass(SCENARIO_PARAMETERS_TYPE);
  
  		stringParameterTypeEClass = createEClass(STRING_PARAMETER_TYPE);
  		createEAttribute(stringParameterTypeEClass, STRING_PARAMETER_TYPE__VALUE);
  
  		timeParametersEClass = createEClass(TIME_PARAMETERS);
  		createEReference(timeParametersEClass, TIME_PARAMETERS__TRANSFER_TIME);
  		createEReference(timeParametersEClass, TIME_PARAMETERS__QUEUE_TIME);
  		createEReference(timeParametersEClass, TIME_PARAMETERS__WAIT_TIME);
  		createEReference(timeParametersEClass, TIME_PARAMETERS__SET_UP_TIME);
  		createEReference(timeParametersEClass, TIME_PARAMETERS__PROCESSING_TIME);
  		createEReference(timeParametersEClass, TIME_PARAMETERS__VALIDATION_TIME);
  		createEReference(timeParametersEClass, TIME_PARAMETERS__REWORK_TIME);
  
  		triangularDistributionTypeEClass = createEClass(TRIANGULAR_DISTRIBUTION_TYPE);
  		createEAttribute(triangularDistributionTypeEClass, TRIANGULAR_DISTRIBUTION_TYPE__MAX);
  		createEAttribute(triangularDistributionTypeEClass, TRIANGULAR_DISTRIBUTION_TYPE__MIN);
  		createEAttribute(triangularDistributionTypeEClass, TRIANGULAR_DISTRIBUTION_TYPE__MODE);
  
  		truncatedNormalDistributionTypeEClass = createEClass(TRUNCATED_NORMAL_DISTRIBUTION_TYPE);
  		createEAttribute(truncatedNormalDistributionTypeEClass, TRUNCATED_NORMAL_DISTRIBUTION_TYPE__MAX);
  		createEAttribute(truncatedNormalDistributionTypeEClass, TRUNCATED_NORMAL_DISTRIBUTION_TYPE__MEAN);
  		createEAttribute(truncatedNormalDistributionTypeEClass, TRUNCATED_NORMAL_DISTRIBUTION_TYPE__MIN);
  		createEAttribute(truncatedNormalDistributionTypeEClass, TRUNCATED_NORMAL_DISTRIBUTION_TYPE__STANDARD_DEVIATION);
  
  		uniformDistributionTypeEClass = createEClass(UNIFORM_DISTRIBUTION_TYPE);
  		createEAttribute(uniformDistributionTypeEClass, UNIFORM_DISTRIBUTION_TYPE__MAX);
  		createEAttribute(uniformDistributionTypeEClass, UNIFORM_DISTRIBUTION_TYPE__MIN);
  
  		userDistributionDataPointTypeEClass = createEClass(USER_DISTRIBUTION_DATA_POINT_TYPE);
  		createEAttribute(userDistributionDataPointTypeEClass, USER_DISTRIBUTION_DATA_POINT_TYPE__PARAMETER_VALUE_GROUP);
  		createEReference(userDistributionDataPointTypeEClass, USER_DISTRIBUTION_DATA_POINT_TYPE__PARAMETER_VALUE);
  		createEAttribute(userDistributionDataPointTypeEClass, USER_DISTRIBUTION_DATA_POINT_TYPE__PROBABILITY);
  
  		userDistributionTypeEClass = createEClass(USER_DISTRIBUTION_TYPE);
  		createEAttribute(userDistributionTypeEClass, USER_DISTRIBUTION_TYPE__GROUP);
  		createEReference(userDistributionTypeEClass, USER_DISTRIBUTION_TYPE__USER_DISTRIBUTION_DATA_POINT);
  		createEAttribute(userDistributionTypeEClass, USER_DISTRIBUTION_TYPE__DISCRETE);
  
  		vendorExtensionEClass = createEClass(VENDOR_EXTENSION);
  		createEAttribute(vendorExtensionEClass, VENDOR_EXTENSION__ANY);
  		createEAttribute(vendorExtensionEClass, VENDOR_EXTENSION__NAME);
  		createEAttribute(vendorExtensionEClass, VENDOR_EXTENSION__ANY_ATTRIBUTE);
  
  		weibullDistributionTypeEClass = createEClass(WEIBULL_DISTRIBUTION_TYPE);
  		createEAttribute(weibullDistributionTypeEClass, WEIBULL_DISTRIBUTION_TYPE__SCALE);
  		createEAttribute(weibullDistributionTypeEClass, WEIBULL_DISTRIBUTION_TYPE__SHAPE);
  
  		// Create enums
  		resultTypeEEnum = createEEnum(RESULT_TYPE);
  		timeUnitEEnum = createEEnum(TIME_UNIT);
  
  		// Create data types
  		resultTypeObjectEDataType = createEDataType(RESULT_TYPE_OBJECT);
  		timeUnitObjectEDataType = createEDataType(TIME_UNIT_OBJECT);
  	}