/** * Copyright (c) 2010-2011 United States Government as represented by the Administrator for The National Aeronautics and Space Administration. All Rights Reserved. */ package net.certware.measurement.spm.impl; import net.certware.measurement.smm.Annotation; import net.certware.measurement.smm.Characteristic; import net.certware.measurement.smm.DimensionalMeasure; import net.certware.measurement.smm.Scope; import net.certware.measurement.smm.SmmElement; import net.certware.measurement.smm.SmmFactory; import net.certware.measurement.smm.SmmModel; import net.certware.measurement.spm.AdaptabilityRatioMeasure; import net.certware.measurement.spm.AdaptabilityTrend; import net.certware.measurement.spm.AdditiveMeasure; import net.certware.measurement.spm.BaselineCaseSizeMeasure; import net.certware.measurement.spm.BrokenCaseSizeMeasure; import net.certware.measurement.spm.CaseDimensionalMeasure; import net.certware.measurement.spm.CaseScope; import net.certware.measurement.spm.ChangeOrderDimensionalMeasure; import net.certware.measurement.spm.ChangeScope; import net.certware.measurement.spm.CommitRelationship; import net.certware.measurement.spm.CriticalAndNormalChangeOrderCount; import net.certware.measurement.spm.CriticalDefectChangeOrderCount; import net.certware.measurement.spm.DevelopmentEffortMeasure; import net.certware.measurement.spm.EndProductQuality; import net.certware.measurement.spm.EndProductQualityCategory; import net.certware.measurement.spm.FixedCaseSizeMeasure; import net.certware.measurement.spm.ImprovementChangeOrderCount; import net.certware.measurement.spm.InProgressIndicator; import net.certware.measurement.spm.InProgressQualityCategory; import net.certware.measurement.spm.Maintainability; import net.certware.measurement.spm.MaintainabilityMeasure; import net.certware.measurement.spm.MaturityRatioMeasure; import net.certware.measurement.spm.MaturityTrend; import net.certware.measurement.spm.ModularityMeasure; import net.certware.measurement.spm.ModularityTrend; import net.certware.measurement.spm.NewFeatureChangeOrderCount; import net.certware.measurement.spm.NormalDefectChangeOrderCount; import net.certware.measurement.spm.ProjectCommit; import net.certware.measurement.spm.ProjectModel; import net.certware.measurement.spm.ProjectScope; import net.certware.measurement.spm.ProjectSize; import net.certware.measurement.spm.RepairEffortMeasure; import net.certware.measurement.spm.ReworkBacklogMeasure; import net.certware.measurement.spm.ReworkRatioMeasure; import net.certware.measurement.spm.ReworkStabilityMeasure; import net.certware.measurement.spm.ScrapRatioMeasure; import net.certware.measurement.spm.SpmFactory; import net.certware.measurement.spm.SpmPackage; import net.certware.measurement.spm.TimeDimensionalMeasure; import net.certware.measurement.spm.TotalCaseSizeMeasure; import net.certware.measurement.spm.TotalChangeOrderCount; import net.certware.measurement.spm.TrendMeasure; import net.certware.measurement.spm.UsageTimeMeasure; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.EPackage; import org.eclipse.emf.ecore.impl.EFactoryImpl; import org.eclipse.emf.ecore.plugin.EcorePlugin; /** * <!-- begin-user-doc --> * An implementation of the model <b>Factory</b>. * <!-- end-user-doc --> * @generated */ public class SpmFactoryImpl extends EFactoryImpl implements SpmFactory { /** unit trend value */ public static final String UNIT_TREND = "instance"; /** dimensionless ratio value */ public static final String UNIT_DIMENSIONLESS = "dimensionless"; /** functor divide value */ public static final String FUNCTOR_DIVIDE = "divide"; /** functor add value */ public static final String FUNCTOR_ADD = "add"; /** functor subtract value */ public static final String FUNCTOR_SUBTRACT = "subtract"; /** library value, assigned for all CertWare elements */ public static final String LIBRARY_CERTWARE = "CertWare Library"; /** unit lines per change value */ public static final String UNIT_LINES_PER_CHANGE = "lines per change"; /** unit hours per change value */ public static final String UNIT_HOURS_PER_CHANGE = "hours per change"; /** unit count value */ public static final String UNIT_COUNT = "count"; /** unit count per hour value */ public static final String UNIT_COUNT_PER_HOUR = "count per hour"; /** unit hours value */ public static final String UNIT_HOURS = "hours"; /** * Creates the default factory implementation. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public static SpmFactory init() { try { SpmFactory theSpmFactory = (SpmFactory)EPackage.Registry.INSTANCE.getEFactory("http://www.certware.net/spm"); //$NON-NLS-1$ if (theSpmFactory != null) { return theSpmFactory; } } catch (Exception exception) { EcorePlugin.INSTANCE.log(exception); } return new SpmFactoryImpl(); } /** * Creates an instance of the factory. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public SpmFactoryImpl() { super(); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override public EObject create(EClass eClass) { switch (eClass.getClassifierID()) { case SpmPackage.PROJECT_MODEL: return createProjectModel(); case SpmPackage.PROJECT_COMMIT: return createProjectCommit(); case SpmPackage.COMMIT_RELATIONSHIP: return createCommitRelationship(); case SpmPackage.END_PRODUCT_QUALITY_CATEGORY: return createEndProductQualityCategory(); case SpmPackage.IN_PROGRESS_QUALITY_CATEGORY: return createInProgressQualityCategory(); case SpmPackage.END_PRODUCT_QUALITY: return createEndProductQuality(); case SpmPackage.MAINTAINABILITY: return createMaintainability(); case SpmPackage.IN_PROGRESS_INDICATOR: return createInProgressIndicator(); case SpmPackage.PROJECT_SIZE: return createProjectSize(); case SpmPackage.CASE_DIMENSIONAL_MEASURE: return createCaseDimensionalMeasure(); case SpmPackage.CHANGE_ORDER_DIMENSIONAL_MEASURE: return createChangeOrderDimensionalMeasure(); case SpmPackage.TIME_DIMENSIONAL_MEASURE: return createTimeDimensionalMeasure(); case SpmPackage.ADDITIVE_MEASURE: return createAdditiveMeasure(); case SpmPackage.CASE_SCOPE: return createCaseScope(); case SpmPackage.PROJECT_SCOPE: return createProjectScope(); case SpmPackage.CHANGE_SCOPE: return createChangeScope(); case SpmPackage.CRITICAL_DEFECT_CHANGE_ORDER_COUNT: return createCriticalDefectChangeOrderCount(); case SpmPackage.NORMAL_DEFECT_CHANGE_ORDER_COUNT: return createNormalDefectChangeOrderCount(); case SpmPackage.IMPROVEMENT_CHANGE_ORDER_COUNT: return createImprovementChangeOrderCount(); case SpmPackage.NEW_FEATURE_CHANGE_ORDER_COUNT: return createNewFeatureChangeOrderCount(); case SpmPackage.TREND_MEASURE: return createTrendMeasure(); case SpmPackage.SCRAP_RATIO_MEASURE: return createScrapRatioMeasure(); case SpmPackage.MODULARITY_MEASURE: return createModularityMeasure(); case SpmPackage.REWORK_RATIO_MEASURE: return createReworkRatioMeasure(); case SpmPackage.ADAPTABILITY_RATIO_MEASURE: return createAdaptabilityRatioMeasure(); case SpmPackage.MATURITY_RATIO_MEASURE: return createMaturityRatioMeasure(); case SpmPackage.MAINTAINABILITY_MEASURE: return createMaintainabilityMeasure(); case SpmPackage.BROKEN_CASE_SIZE_MEASURE: return createBrokenCaseSizeMeasure(); case SpmPackage.FIXED_CASE_SIZE_MEASURE: return createFixedCaseSizeMeasure(); case SpmPackage.TOTAL_CASE_SIZE_MEASURE: return createTotalCaseSizeMeasure(); case SpmPackage.BASELINE_CASE_SIZE_MEASURE: return createBaselineCaseSizeMeasure(); case SpmPackage.USAGE_TIME_MEASURE: return createUsageTimeMeasure(); case SpmPackage.REPAIR_EFFORT_MEASURE: return createRepairEffortMeasure(); case SpmPackage.DEVELOPMENT_EFFORT_MEASURE: return createDevelopmentEffortMeasure(); case SpmPackage.TOTAL_CHANGE_ORDER_COUNT: return createTotalChangeOrderCount(); case SpmPackage.CRITICAL_AND_NORMAL_CHANGE_ORDER_COUNT: return createCriticalAndNormalChangeOrderCount(); case SpmPackage.REWORK_STABILITY_MEASURE: return createReworkStabilityMeasure(); case SpmPackage.REWORK_BACKLOG_MEASURE: return createReworkBacklogMeasure(); case SpmPackage.MODULARITY_TREND: return createModularityTrend(); case SpmPackage.ADAPTABILITY_TREND: return createAdaptabilityTrend(); case SpmPackage.MATURITY_TREND: return createMaturityTrend(); default: throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$ } } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public ProjectModel createProjectModel() { ProjectModelImpl projectModel = new ProjectModelImpl(); return projectModel; } /** * Create a project model. * @param parent parent model, or null * @return project model, populated for CertWare project metrics */ @SuppressWarnings("unused") public ProjectModel createProjectModel(SmmModel parent) { // create the project's model; parent is unused in this factory, can be null ProjectModel model = createProjectModel(); model.setModel(parent); // create the measure categories EndProductQualityCategory endProductCategory = createEndProductQualityCategory(model); InProgressQualityCategory inProgressCategory = createInProgressQualityCategory(model); // create the scopes ProjectScope projectScope = createProjectScope(model); CaseScope caseScope = createCaseScope(model); ChangeScope changeScope = createChangeScope(model); // create the characteristics ProjectSize projectSize = createProjectSize(model,null); Maintainability maintainability = createMaintainability(model,null); InProgressIndicator inProgressIndicator = createInProgressIndicator(model,null); EndProductQuality endProductQuality = createEndProductQuality(model,null); // create base measures ChangeOrderDimensionalMeasure changeOrderDimensionalMeasure = createChangeOrderDimensionalMeasure(model,projectScope,projectSize); CaseDimensionalMeasure caseDimensionalMeasure = createCaseDimensionalMeasure(model,caseScope,projectSize); return model; } /** * Finds an object of a given class in the model's model element list. * @param model model to search using its model element list * @param eclass class to find by instance match * @return first element found by match, or null */ @SuppressWarnings("rawtypes") public SmmElement getModelElement(SmmModel model, Class eclass) { SmmElement rv = null; for ( SmmElement e : model.getModelElement() ) { if ( e.getClass().isInstance(eclass)) return e; } return rv; } /** * Creates an annotation and adds it to the model's model element list. * @param model containing model * @param name annotation text * @param owner annotation owner element * @return annotation */ public Annotation createAnnotation(SmmModel model, String name, SmmElement owner) { Annotation annotation = SmmFactory.eINSTANCE.createAnnotation(); annotation.setModel(model); annotation.setOwner(owner); annotation.setText(name); model.getModelElement().add(annotation); return annotation; } /** * Adds a new commit model to the project model. * Uses the given name as an annotation on the model for identification. * Creates commit-specific statistics and measures, but does not add observations or measurements. * @param projectModel parent project model * @param commitName commit name for annotation * @return commit model */ public ProjectCommit addCommit(ProjectModel projectModel, String commitName) { ProjectCommit commit = createProjectCommit(projectModel); // annotation for commit name Annotation annotation = createAnnotation(commit,commitName,commit); commit.getAnnotation().add(annotation); // add the commit to the model // model.getModelElement().add(projectCommit); // done by the create commit method // get the scopes CaseScope caseScope = (CaseScope)getModelElement(projectModel,CaseScope.class); ProjectScope projectScope = (ProjectScope)getModelElement(projectModel,ProjectScope.class); // get the categories and base measures EndProductQualityCategory epqc = (EndProductQualityCategory)getModelElement(projectModel,EndProductQualityCategory.class); InProgressQualityCategory ipqc = (InProgressQualityCategory)getModelElement(projectModel,InProgressQualityCategory.class); ChangeOrderDimensionalMeasure codm = (ChangeOrderDimensionalMeasure)getModelElement(projectModel,ChangeOrderDimensionalMeasure.class); CaseDimensionalMeasure cd = (CaseDimensionalMeasure)getModelElement(projectModel,CaseDimensionalMeasure.class); // get the traits EndProductQuality endProductQuality = (EndProductQuality)getModelElement(projectModel,EndProductQuality.class); InProgressIndicator inProgressIndicator = (InProgressIndicator)getModelElement(projectModel,InProgressIndicator.class); ProjectSize projectSize = (ProjectSize)getModelElement(projectModel,ProjectSize.class); // create commit-specific measures and statistics NormalDefectChangeOrderCount normal = createNormalDefectChangeOrderCount(commit,codm,projectScope,projectSize); CriticalDefectChangeOrderCount defects = createCriticalDefectChangeOrderCount(commit,codm,projectScope,projectSize); CriticalAndNormalChangeOrderCount cncoc = createCriticalAndNormalChangeOrderCount(commit,normal,defects,projectScope,projectSize); BrokenCaseSizeMeasure bcsm = createBrokenCaseSizeMeasure(commit,cd,caseScope,projectSize); FixedCaseSizeMeasure fcsm = createFixedCaseSizeMeasure(commit,cd,caseScope,projectSize); TotalCaseSizeMeasure tcsm = createTotalCaseSizeMeasure(commit,cd,caseScope,projectSize); BaselineCaseSizeMeasure baseline = createBaselineCaseSizeMeasure(commit,cd,caseScope,projectSize); RepairEffortMeasure rem = createRepairEffortMeasure(commit,projectScope,inProgressIndicator); DevelopmentEffortMeasure dem = createDevelopmentEffortMeasure(commit,projectScope,inProgressIndicator); TotalChangeOrderCount tcoc = createTotalChangeOrderCount(commit,codm,projectScope,projectSize); UsageTimeMeasure ut = createUsageTimeMeasure(commit,projectScope,inProgressIndicator); // create the product quality measures ScrapRatioMeasure scrapRatio = createScrapRatioMeasure(commit,bcsm,tcsm,caseScope,endProductQuality); ReworkRatioMeasure reworkRatio = createReworkRatioMeasure(commit,rem,dem,projectScope,endProductQuality); ModularityMeasure modularity = createModularityMeasure(commit,bcsm,tcoc,projectScope,endProductQuality); AdaptabilityRatioMeasure adaptability = createAdaptabilityRatioMeasure(commit,rem,tcoc,projectScope,endProductQuality); MaturityRatioMeasure maturity = createMaturityRatioMeasure(commit,ut,cncoc,projectScope,endProductQuality); MaintainabilityMeasure maintainability = createMaintainabilityMeasure(commit,scrapRatio,reworkRatio,projectScope,endProductQuality); // create the in-progress indicators ReworkStabilityMeasure reworkStability = createReworkStabilityMeasure(commit,bcsm,fcsm,projectScope,inProgressIndicator); ReworkBacklogMeasure reworkBacklog = createReworkBacklogMeasure(commit,reworkStability,baseline,projectScope,inProgressIndicator); ModularityTrend modularityTrend = createModularityTrend(commit,modularity,projectScope,inProgressIndicator); AdaptabilityTrend adaptabilityTrend = createAdaptabilityTrend(commit,adaptability,projectScope,inProgressIndicator); MaturityTrend maturityTrend = createMaturityTrend(commit,maturity,projectScope,inProgressIndicator); // add the measures to the metric categories epqc.getCategoryMeasure().add(scrapRatio); epqc.getCategoryMeasure().add(reworkRatio); epqc.getCategoryMeasure().add(modularity); epqc.getCategoryMeasure().add(adaptability); epqc.getCategoryMeasure().add(maturity); epqc.getCategoryMeasure().add(maintainability); ipqc.getCategoryMeasure().add(reworkStability); ipqc.getCategoryMeasure().add(reworkBacklog); ipqc.getCategoryMeasure().add(modularityTrend); ipqc.getCategoryMeasure().add(adaptabilityTrend); ipqc.getCategoryMeasure().add(maturityTrend); return commit; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public ProjectCommit createProjectCommit() { ProjectCommitImpl projectCommit = new ProjectCommitImpl(); return projectCommit; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public CommitRelationship createCommitRelationship() { CommitRelationshipImpl commitRelationship = new CommitRelationshipImpl(); return commitRelationship; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EndProductQualityCategory createEndProductQualityCategory() { EndProductQualityCategoryImpl endProductQualityCategory = new EndProductQualityCategoryImpl(); return endProductQualityCategory; } /** * Creates the end product quality category. * Assigns name. Adds category to the model element list. * @param model project model * @return category */ public EndProductQualityCategory createEndProductQualityCategory(ProjectModel model) { EndProductQualityCategory category = createEndProductQualityCategory(); category.setModel(model); category.setName("End Product Quality Metrics"); model.getModelElement().add(category); return category; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public InProgressQualityCategory createInProgressQualityCategory() { InProgressQualityCategoryImpl inProgressQualityCategory = new InProgressQualityCategoryImpl(); return inProgressQualityCategory; } /** * Creates the in-progress indicators metrics category. * Assigns name. Adds category to the model element list. * @param model project model * @return category */ public InProgressQualityCategory createInProgressQualityCategory(ProjectModel model) { InProgressQualityCategory category = createInProgressQualityCategory(); category.setModel(model); category.setName("In-Progress Indicators"); model.getModelElement().add(category); return category; } /** * Creates the structure for a project commit record in the parent project model. * Adds commit to the parent model's model element list. * Does not add measures, categories, annotations, etc. * @param projectModel project model * @return project commit record */ public ProjectCommit createProjectCommit(ProjectModel projectModel) { ProjectCommit projectCommit = createProjectCommit(); projectCommit.setModel(projectModel); projectModel.getModelElement().add(projectCommit); return projectCommit; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EndProductQuality createEndProductQuality() { EndProductQualityImpl endProductQuality = new EndProductQualityImpl(); return endProductQuality; } /** * Create a new product quality characteristic node. * @param model measurement model * @param parent characteristic parent or null * @return product quality characteristic */ public EndProductQuality createEndProductQuality(ProjectModel model, Characteristic parent) { EndProductQuality endProductQuality = createEndProductQuality(); endProductQuality.setName("End-Product Quality"); endProductQuality.setModel(model); endProductQuality.setParent(parent); model.getModelElement().add(endProductQuality); return endProductQuality; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public Maintainability createMaintainability() { MaintainabilityImpl maintainability = new MaintainabilityImpl(); return maintainability; } /** * Create a new maintainability characteristic node. * @param model measurement model * @param parent parent characteristic or null * @return maintainability characteristic */ public Maintainability createMaintainability(ProjectModel model,Characteristic parent) { Maintainability maintainability = createMaintainability(); maintainability.setModel(model); maintainability.setName("Maintainability"); maintainability.setParent(parent); model.getModelElement().add(maintainability); return maintainability; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public InProgressIndicator createInProgressIndicator() { InProgressIndicatorImpl inProgressIndicator = new InProgressIndicatorImpl(); return inProgressIndicator; } /** * Create a new in-progress indicator characteristic. * @param model measurement model * @param parent parent characteristic or null * @return in-progress indicator characteristic */ public InProgressIndicator createInProgressIndicator(ProjectModel model, Characteristic parent) { InProgressIndicator inProgressIndicator = createInProgressIndicator(); inProgressIndicator.setModel(model); inProgressIndicator.setName("In-Progress Indicator"); inProgressIndicator.setParent(parent); model.getModelElement().add(inProgressIndicator); return inProgressIndicator; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public ProjectSize createProjectSize() { ProjectSizeImpl projectSize = new ProjectSizeImpl(); return projectSize; } /** * Create a project size indicator characteristic. * @param model measurement model * @param parent parent characteristic or null * @return project size characteristic */ public ProjectSize createProjectSize(ProjectModel model, Characteristic parent) { ProjectSize projectSize = createProjectSize(); projectSize.setModel(model); projectSize.setName("Project Size"); projectSize.setParent(parent); model.getModelElement().add(projectSize); return projectSize; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public CaseDimensionalMeasure createCaseDimensionalMeasure() { CaseDimensionalMeasureImpl caseDimensionalMeasure = new CaseDimensionalMeasureImpl(); return caseDimensionalMeasure; } /** * Create a case dimensional measure. * @param projectModel measurement model * @param scope measure scope * @param trait measure trait * @return case dimensional measure */ public CaseDimensionalMeasure createCaseDimensionalMeasure(ProjectModel projectModel, CaseScope scope, Characteristic trait) { CaseDimensionalMeasure caseDimensionalMeasure = createCaseDimensionalMeasure(); caseDimensionalMeasure.setModel(projectModel); caseDimensionalMeasure.setLibrary(LIBRARY_CERTWARE); caseDimensionalMeasure.setName("Case Dimensional Measure"); caseDimensionalMeasure.setUnit("line count"); caseDimensionalMeasure.setScope(scope); caseDimensionalMeasure.setTrait(trait); projectModel.getModelElement().add(caseDimensionalMeasure); return caseDimensionalMeasure; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public ChangeOrderDimensionalMeasure createChangeOrderDimensionalMeasure() { ChangeOrderDimensionalMeasureImpl changeOrderDimensionalMeasure = new ChangeOrderDimensionalMeasureImpl(); return changeOrderDimensionalMeasure; } /** * Create a change order dimensional measure. * @param model measurement model * @param scope measure scope * @param trait measure trait * @return change order dimensional measure */ public ChangeOrderDimensionalMeasure createChangeOrderDimensionalMeasure(ProjectModel model, ProjectScope scope, ProjectSize trait) { ChangeOrderDimensionalMeasure changeOrderDimensionalMeasure = createChangeOrderDimensionalMeasure(); changeOrderDimensionalMeasure.setModel(model); changeOrderDimensionalMeasure.setLibrary(LIBRARY_CERTWARE); changeOrderDimensionalMeasure.setName("Change Order Dimensional Measure"); changeOrderDimensionalMeasure.setUnit("order count"); changeOrderDimensionalMeasure.setScope(scope); changeOrderDimensionalMeasure.setTrait(trait); model.getModelElement().add(changeOrderDimensionalMeasure); return changeOrderDimensionalMeasure; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public TimeDimensionalMeasure createTimeDimensionalMeasure() { TimeDimensionalMeasureImpl timeDimensionalMeasure = new TimeDimensionalMeasureImpl(); return timeDimensionalMeasure; } /** * Create a time dimensional measure (hours). * @param projectModel measurement model * @param scope measure scope * @param trait measure trait * @return time dimensional measure */ public TimeDimensionalMeasure createTimeDimensionalMeasure(ProjectCommit projectModel, Scope scope, Characteristic trait) { TimeDimensionalMeasure timeDimensionalMeasure = createTimeDimensionalMeasure(); timeDimensionalMeasure.setModel(projectModel); timeDimensionalMeasure.setLibrary(LIBRARY_CERTWARE); timeDimensionalMeasure.setName("Time Dimensional Measure"); timeDimensionalMeasure.setUnit("hours"); timeDimensionalMeasure.setScope(scope); timeDimensionalMeasure.setTrait(trait); projectModel.getModelElement().add(timeDimensionalMeasure); return timeDimensionalMeasure; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated NOT */ public AdditiveMeasure createAdditiveMeasure() { AdditiveMeasureImpl additiveMeasure = new AdditiveMeasureImpl(); return additiveMeasure; } /** * Create an additive measure. * @param smmModel measurement model * @param baseMeasure base measure * @param scope measure scope * @param trait measure trait * @param unit unit of measure * @return additive measure */ public AdditiveMeasure createAdditiveMeasure(SmmModel smmModel, DimensionalMeasure baseMeasure, Scope scope, Characteristic trait, String unit) { AdditiveMeasure additiveMeasure = createAdditiveMeasure(); additiveMeasure.setBaseMeasure(baseMeasure); additiveMeasure.setLibrary(LIBRARY_CERTWARE); additiveMeasure.setModel(smmModel); additiveMeasure.setName("Additive Measure"); additiveMeasure.setScope(scope); additiveMeasure.setTrait(trait); additiveMeasure.setUnit(unit); smmModel.getModelElement().add(additiveMeasure); // assumes sub-classes do not call this method return additiveMeasure; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public CaseScope createCaseScope() { CaseScopeImpl caseScope = new CaseScopeImpl(); return caseScope; } /** * Create a case scope. * Uses {@code Argument} for class, {@code Case Scope} for name, and {@code isArgument} for recognizer. * @param model measurement model * @return case scope */ public CaseScope createCaseScope(ProjectModel model) { CaseScope caseScope = createCaseScope(); caseScope.setClass("Argument"); caseScope.setEnumerated(false); caseScope.setModel(model); caseScope.setName("Case Scope"); caseScope.setRecognizer("isArgument"); model.getModelElement().add(caseScope); return caseScope; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public ProjectScope createProjectScope() { ProjectScopeImpl projectScope = new ProjectScopeImpl(); return projectScope; } /** * Create a project scope. * Uses {@code IProject} for class, {@code Project Scope} for name, and {@code isProject} for recognizer. * @param model measurement model * @return project scope */ public ProjectScope createProjectScope(ProjectModel model) { ProjectScope projectScope = createProjectScope(); projectScope.setClass("IProject"); projectScope.setEnumerated(false); projectScope.setModel(model); projectScope.setName("Project Scope"); projectScope.setRecognizer("isProject"); model.getModelElement().add(projectScope); return projectScope; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public ChangeScope createChangeScope() { ChangeScopeImpl changeScope = new ChangeScopeImpl(); return changeScope; } /** * Create a change order scope. * Uses {@code ITask} for class, {@code Change Scope} for name, and {@code isTask} for recognizer. * @param model measurement model * @return change scope */ public ChangeScope createChangeScope(ProjectModel model) { ChangeScope changeScope = createChangeScope(); changeScope.setClass("ITask"); changeScope.setEnumerated(false); changeScope.setModel(model); changeScope.setName("Change Scope"); changeScope.setRecognizer("isTask"); model.getModelElement().add(changeScope); return changeScope; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public CriticalDefectChangeOrderCount createCriticalDefectChangeOrderCount() { CriticalDefectChangeOrderCountImpl criticalDefectChangeOrderCount = new CriticalDefectChangeOrderCountImpl(); return criticalDefectChangeOrderCount; } /** * Create a critical defect change order count element. * @param projectCommit commit model * @param baseMeasure change order base measure * @param scope project scope * @param trait project size characteristic * @return change order count */ public CriticalDefectChangeOrderCount createCriticalDefectChangeOrderCount(ProjectCommit projectCommit, ChangeOrderDimensionalMeasure baseMeasure, ProjectScope scope, ProjectSize trait) { CriticalDefectChangeOrderCount criticalDefectChangeOrderCount = createCriticalDefectChangeOrderCount(); criticalDefectChangeOrderCount.setBaseMeasure(baseMeasure); criticalDefectChangeOrderCount.setLibrary(LIBRARY_CERTWARE); criticalDefectChangeOrderCount.setModel(projectCommit); criticalDefectChangeOrderCount.setName("Critical Defect Change Order Count"); criticalDefectChangeOrderCount.setScope(scope); criticalDefectChangeOrderCount.setTrait(trait); criticalDefectChangeOrderCount.setUnit(UNIT_COUNT); projectCommit.getModelElement().add(criticalDefectChangeOrderCount); return criticalDefectChangeOrderCount; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public NormalDefectChangeOrderCount createNormalDefectChangeOrderCount() { NormalDefectChangeOrderCountImpl normalDefectChangeOrderCount = new NormalDefectChangeOrderCountImpl(); return normalDefectChangeOrderCount; } /** * Create a normal defect change order count element. * @param commitModel commit model * @param baseMeasure change order base measure * @param scope project scope * @param trait project size characteristic * @return change order count */ public NormalDefectChangeOrderCount createNormalDefectChangeOrderCount(ProjectCommit commitModel, ChangeOrderDimensionalMeasure baseMeasure, ProjectScope scope, ProjectSize trait) { NormalDefectChangeOrderCount normalDefectChangeOrderCount = createNormalDefectChangeOrderCount(); normalDefectChangeOrderCount.setBaseMeasure(baseMeasure); normalDefectChangeOrderCount.setLibrary(LIBRARY_CERTWARE); normalDefectChangeOrderCount.setModel(commitModel); normalDefectChangeOrderCount.setName("Normal Defect Change Order Count"); normalDefectChangeOrderCount.setScope(scope); normalDefectChangeOrderCount.setTrait(trait); normalDefectChangeOrderCount.setUnit(UNIT_COUNT); commitModel.getModelElement().add(normalDefectChangeOrderCount); return normalDefectChangeOrderCount; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public ImprovementChangeOrderCount createImprovementChangeOrderCount() { ImprovementChangeOrderCountImpl improvementChangeOrderCount = new ImprovementChangeOrderCountImpl(); return improvementChangeOrderCount; } /** * Create a improvement change order count element. * @param commitModel project model * @param baseMeasure change order base measure * @param scope project scope * @param trait project size characteristic * @return change order count */ public ImprovementChangeOrderCount createImprovementChangeOrderCount(ProjectCommit commitModel, ChangeOrderDimensionalMeasure baseMeasure, ProjectScope scope, ProjectSize trait) { ImprovementChangeOrderCount improvementChangeOrderCount = createImprovementChangeOrderCount(); improvementChangeOrderCount.setBaseMeasure(baseMeasure); improvementChangeOrderCount.setLibrary(LIBRARY_CERTWARE); improvementChangeOrderCount.setModel(commitModel); improvementChangeOrderCount.setName("Improvement Change Order Count"); improvementChangeOrderCount.setScope(scope); improvementChangeOrderCount.setTrait(trait); improvementChangeOrderCount.setUnit(UNIT_COUNT); commitModel.getModelElement().add(improvementChangeOrderCount); return improvementChangeOrderCount; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public NewFeatureChangeOrderCount createNewFeatureChangeOrderCount() { NewFeatureChangeOrderCountImpl newFeatureChangeOrderCount = new NewFeatureChangeOrderCountImpl(); return newFeatureChangeOrderCount; } /** * Create a new feature change order count element. * @param commitModel commit model * @param baseMeasure change order base measure * @param scope project scope * @param trait project size characteristic * @return change order count */ public NewFeatureChangeOrderCount createNewFeatureChangeOrderCount(ProjectCommit commitModel, ChangeOrderDimensionalMeasure baseMeasure, ProjectScope scope, ProjectSize trait) { NewFeatureChangeOrderCount newFeatureChangeOrderCount = createNewFeatureChangeOrderCount(); newFeatureChangeOrderCount.setBaseMeasure(baseMeasure); newFeatureChangeOrderCount.setLibrary(LIBRARY_CERTWARE); newFeatureChangeOrderCount.setModel(commitModel); newFeatureChangeOrderCount.setName("New Feature Change Order Count"); newFeatureChangeOrderCount.setScope(scope); newFeatureChangeOrderCount.setTrait(trait); newFeatureChangeOrderCount.setUnit(UNIT_COUNT); commitModel.getModelElement().add(newFeatureChangeOrderCount); return newFeatureChangeOrderCount; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public TrendMeasure createTrendMeasure() { TrendMeasureImpl trendMeasure = new TrendMeasureImpl(); return trendMeasure; } /** * Create a trend measure. * Sets {@code unit} to 'instance'; * @param smmModel measurement model * @param baseMeasure base measure reference * @param scope measure scope * @param trait measure trait * @return trend measure */ public TrendMeasure createTrendMeasure(SmmModel smmModel, DimensionalMeasure baseMeasure, Scope scope, Characteristic trait) { TrendMeasure trendMeasure = createTrendMeasure(); trendMeasure.setBaseMeasure(baseMeasure); trendMeasure.setLibrary(LIBRARY_CERTWARE); trendMeasure.setModel(smmModel); trendMeasure.setName("Trend Measure"); trendMeasure.setScope(scope); trendMeasure.setTrait(trait); trendMeasure.setUnit(UNIT_TREND); smmModel.getModelElement().add(trendMeasure); return trendMeasure; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public ScrapRatioMeasure createScrapRatioMeasure() { ScrapRatioMeasureImpl scrapRatioMeasure = new ScrapRatioMeasureImpl(); return scrapRatioMeasure; } /** * Create a scrap ratio measure. * @param commitModel commit model * @param b1 broken case size measure (numerator) * @param b2 total case size measure (denominator) * @param scope case scope * @param trait end product quality characteristic * @return scrap ratio measure */ public ScrapRatioMeasure createScrapRatioMeasure(ProjectCommit commitModel, BrokenCaseSizeMeasure b1, TotalCaseSizeMeasure b2, CaseScope scope, EndProductQuality trait) { ScrapRatioMeasure scrapRatioMeasure = createScrapRatioMeasure(); scrapRatioMeasure.setBaseMeasure1(b1); scrapRatioMeasure.setBaseMeasure2(b2); scrapRatioMeasure.setFunctor(FUNCTOR_DIVIDE); scrapRatioMeasure.setLibrary(LIBRARY_CERTWARE); scrapRatioMeasure.setModel(commitModel); scrapRatioMeasure.setName("Scrap Ratio Measure"); scrapRatioMeasure.setScope(scope); scrapRatioMeasure.setTrait(trait); scrapRatioMeasure.setUnit(UNIT_DIMENSIONLESS); commitModel.getModelElement().add(scrapRatioMeasure); return scrapRatioMeasure; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public ModularityMeasure createModularityMeasure() { ModularityMeasureImpl modularityMeasure = new ModularityMeasureImpl(); return modularityMeasure; } /** * Create a modularity measure. * @param commitModel commit model * @param b1 broken case size measure (numerator) * @param b2 total change order count (denominator) * @param scope project scope * @param trait end product quality characteristic * @return modularity ratio measure */ public ModularityMeasure createModularityMeasure(ProjectCommit commitModel, BrokenCaseSizeMeasure b1, TotalChangeOrderCount b2, ProjectScope scope, EndProductQuality trait) { ModularityMeasure modularityMeasure = createModularityMeasure(); modularityMeasure.setBaseMeasure1(b1); modularityMeasure.setBaseMeasure2(b2); modularityMeasure.setFunctor(FUNCTOR_DIVIDE); modularityMeasure.setLibrary(LIBRARY_CERTWARE); modularityMeasure.setModel(commitModel); modularityMeasure.setName("Modularity Measure"); modularityMeasure.setScope(scope); modularityMeasure.setTrait(trait); modularityMeasure.setUnit(UNIT_LINES_PER_CHANGE); commitModel.getModelElement().add(modularityMeasure); return modularityMeasure; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public ReworkRatioMeasure createReworkRatioMeasure() { ReworkRatioMeasureImpl reworkRatioMeasure = new ReworkRatioMeasureImpl(); return reworkRatioMeasure; } /** * Create a rework measure. * @param commitModel project model * @param b1 repair effort measure (numerator) * @param b2 development effort measure (denominator) * @param scope project scope * @param trait end product quality characteristic * @return rework ratio measure */ public ReworkRatioMeasure createReworkRatioMeasure(ProjectCommit commitModel, RepairEffortMeasure b1, DevelopmentEffortMeasure b2, ProjectScope scope, EndProductQuality trait) { ReworkRatioMeasure reworkRatioMeasure = createReworkRatioMeasure(); reworkRatioMeasure.setBaseMeasure1(b1); reworkRatioMeasure.setBaseMeasure2(b2); reworkRatioMeasure.setFunctor(FUNCTOR_DIVIDE); reworkRatioMeasure.setLibrary(LIBRARY_CERTWARE); reworkRatioMeasure.setModel(commitModel); reworkRatioMeasure.setName("Rework Measure"); reworkRatioMeasure.setScope(scope); reworkRatioMeasure.setTrait(trait); reworkRatioMeasure.setUnit(UNIT_DIMENSIONLESS); commitModel.getModelElement().add(reworkRatioMeasure); return reworkRatioMeasure; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public AdaptabilityRatioMeasure createAdaptabilityRatioMeasure() { AdaptabilityRatioMeasureImpl adaptabilityRatioMeasure = new AdaptabilityRatioMeasureImpl(); return adaptabilityRatioMeasure; } /** * Create an adaptability measure. * @param commitModel commit model * @param b1 repair effort measure (numerator) * @param b2 total change order count (denominator) * @param scope project scope * @param trait end product quality characteristic * @return adaptability ratio measure */ public AdaptabilityRatioMeasure createAdaptabilityRatioMeasure(ProjectCommit commitModel, RepairEffortMeasure b1, TotalChangeOrderCount b2, ProjectScope scope, EndProductQuality trait) { AdaptabilityRatioMeasure adaptabilityRatioMeasure = createAdaptabilityRatioMeasure(); adaptabilityRatioMeasure.setBaseMeasure1(b1); adaptabilityRatioMeasure.setBaseMeasure2(b2); adaptabilityRatioMeasure.setFunctor(FUNCTOR_DIVIDE); adaptabilityRatioMeasure.setLibrary(LIBRARY_CERTWARE); adaptabilityRatioMeasure.setModel(commitModel); adaptabilityRatioMeasure.setName("Adaptability Measure"); adaptabilityRatioMeasure.setScope(scope); adaptabilityRatioMeasure.setTrait(trait); adaptabilityRatioMeasure.setUnit(UNIT_HOURS_PER_CHANGE); commitModel.getModelElement().add(adaptabilityRatioMeasure); return adaptabilityRatioMeasure; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public MaturityRatioMeasure createMaturityRatioMeasure() { MaturityRatioMeasureImpl maturityRatioMeasure = new MaturityRatioMeasureImpl(); return maturityRatioMeasure; } /** * Create a maturity measure. * @param commitModel commit model * @param b1 usage time (numerator) * @param b2 critical and normal change order count (denominator) * @param scope project scope * @param trait end product quality characteristic * @return maturity ratio measure */ public MaturityRatioMeasure createMaturityRatioMeasure(ProjectCommit commitModel, UsageTimeMeasure b1, CriticalAndNormalChangeOrderCount b2, ProjectScope scope, EndProductQuality trait) { MaturityRatioMeasure maturityRatioMeasure = createMaturityRatioMeasure(); maturityRatioMeasure.setBaseMeasure1(b1); maturityRatioMeasure.setBaseMeasure2(b2); maturityRatioMeasure.setFunctor(FUNCTOR_DIVIDE); maturityRatioMeasure.setLibrary(LIBRARY_CERTWARE); maturityRatioMeasure.setModel(commitModel); maturityRatioMeasure.setName("Maturity Measure"); maturityRatioMeasure.setScope(scope); maturityRatioMeasure.setTrait(trait); maturityRatioMeasure.setUnit(UNIT_HOURS_PER_CHANGE); commitModel.getModelElement().add(maturityRatioMeasure); return maturityRatioMeasure; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public MaintainabilityMeasure createMaintainabilityMeasure() { MaintainabilityMeasureImpl maintainabilityMeasure = new MaintainabilityMeasureImpl(); return maintainabilityMeasure; } /** * Create a maintainability measure. * @param commitModel commit model * @param b1 scrap ratio (numerator) * @param b2 rework ratio (denominator) * @param scope project scope * @param trait end product quality characteristic * @return maintainability measure */ public MaintainabilityMeasure createMaintainabilityMeasure(ProjectCommit commitModel, ScrapRatioMeasure b1, ReworkRatioMeasure b2, ProjectScope scope, EndProductQuality trait) { MaintainabilityMeasure maintainabilityMeasure = createMaintainabilityMeasure(); maintainabilityMeasure.setBaseMeasure1(b1); maintainabilityMeasure.setBaseMeasure2(b2); maintainabilityMeasure.setFunctor(FUNCTOR_DIVIDE); maintainabilityMeasure.setLibrary(LIBRARY_CERTWARE); maintainabilityMeasure.setModel(commitModel); maintainabilityMeasure.setName("Maintainability Measure"); maintainabilityMeasure.setScope(scope); maintainabilityMeasure.setTrait(trait); maintainabilityMeasure.setUnit(UNIT_DIMENSIONLESS); commitModel.getModelElement().add(maintainabilityMeasure); return maintainabilityMeasure; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public BrokenCaseSizeMeasure createBrokenCaseSizeMeasure() { BrokenCaseSizeMeasureImpl brokenCaseSizeMeasure = new BrokenCaseSizeMeasureImpl(); return brokenCaseSizeMeasure; } /** * Create a broken case size measure. * @param commitModel commit model * @param baseMeasure case measure reference * @param scope case scope * @param trait project size characteristic * @return broken case size measure */ public BrokenCaseSizeMeasure createBrokenCaseSizeMeasure(ProjectCommit commitModel, CaseDimensionalMeasure baseMeasure, CaseScope scope, ProjectSize trait) { BrokenCaseSizeMeasure brokenCaseSizeMeasure = createBrokenCaseSizeMeasure(); brokenCaseSizeMeasure.setBaseMeasure(baseMeasure); brokenCaseSizeMeasure.setLibrary(LIBRARY_CERTWARE); brokenCaseSizeMeasure.setModel(commitModel); brokenCaseSizeMeasure.setName("Broken Case Size"); brokenCaseSizeMeasure.setScope(scope); brokenCaseSizeMeasure.setTrait(trait); brokenCaseSizeMeasure.setUnit(UNIT_COUNT); commitModel.getModelElement().add(brokenCaseSizeMeasure); return brokenCaseSizeMeasure; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public FixedCaseSizeMeasure createFixedCaseSizeMeasure() { FixedCaseSizeMeasureImpl fixedCaseSizeMeasure = new FixedCaseSizeMeasureImpl(); return fixedCaseSizeMeasure; } /** * Create a fixed case size measure. * @param commitModel commit model * @param baseMeasure case measure reference * @param scope case scope * @param trait project size characteristic * @return fixed case size measure */ public FixedCaseSizeMeasure createFixedCaseSizeMeasure(ProjectCommit commitModel, CaseDimensionalMeasure baseMeasure, CaseScope scope, ProjectSize trait) { FixedCaseSizeMeasure fixedCaseSizeMeasure = createFixedCaseSizeMeasure(); fixedCaseSizeMeasure.setBaseMeasure(baseMeasure); fixedCaseSizeMeasure.setLibrary(LIBRARY_CERTWARE); fixedCaseSizeMeasure.setModel(commitModel); fixedCaseSizeMeasure.setName("Fixed Case Size"); fixedCaseSizeMeasure.setScope(scope); fixedCaseSizeMeasure.setTrait(trait); fixedCaseSizeMeasure.setUnit(UNIT_COUNT); commitModel.getModelElement().add(fixedCaseSizeMeasure); return fixedCaseSizeMeasure; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public TotalCaseSizeMeasure createTotalCaseSizeMeasure() { TotalCaseSizeMeasureImpl totalCaseSizeMeasure = new TotalCaseSizeMeasureImpl(); return totalCaseSizeMeasure; } /** * Create a total case size measure. * @param commitModel commit model * @param baseMeasure case measure reference * @param scope case scope * @param trait project size characteristic * @return total case size measure */ public TotalCaseSizeMeasure createTotalCaseSizeMeasure(ProjectCommit commitModel, CaseDimensionalMeasure baseMeasure, CaseScope scope, ProjectSize trait) { TotalCaseSizeMeasure totalCaseSizeMeasure = createTotalCaseSizeMeasure(); totalCaseSizeMeasure.setBaseMeasure(baseMeasure); totalCaseSizeMeasure.setLibrary(LIBRARY_CERTWARE); totalCaseSizeMeasure.setModel(commitModel); totalCaseSizeMeasure.setName("Total Case Size"); totalCaseSizeMeasure.setScope(scope); totalCaseSizeMeasure.setTrait(trait); totalCaseSizeMeasure.setUnit(UNIT_COUNT); commitModel.getModelElement().add(totalCaseSizeMeasure); return totalCaseSizeMeasure; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public BaselineCaseSizeMeasure createBaselineCaseSizeMeasure() { BaselineCaseSizeMeasureImpl baselineCaseSizeMeasure = new BaselineCaseSizeMeasureImpl(); return baselineCaseSizeMeasure; } /** * Create a baseline case size measure. * @param commitModel commit model * @param baseMeasure case measure reference * @param scope case scope * @param trait project size characteristic * @return baseline case size measure */ public BaselineCaseSizeMeasure createBaselineCaseSizeMeasure(ProjectCommit commitModel, CaseDimensionalMeasure baseMeasure, CaseScope scope, ProjectSize trait) { BaselineCaseSizeMeasure baselineCaseSizeMeasure = createBaselineCaseSizeMeasure(); baselineCaseSizeMeasure.setBaseMeasure(baseMeasure); baselineCaseSizeMeasure.setLibrary(LIBRARY_CERTWARE); baselineCaseSizeMeasure.setModel(commitModel); baselineCaseSizeMeasure.setName("Baseline Case Size"); baselineCaseSizeMeasure.setScope(scope); baselineCaseSizeMeasure.setTrait(trait); baselineCaseSizeMeasure.setUnit(UNIT_COUNT); commitModel.getModelElement().add(baselineCaseSizeMeasure); return baselineCaseSizeMeasure; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public UsageTimeMeasure createUsageTimeMeasure() { UsageTimeMeasureImpl usageTimeMeasure = new UsageTimeMeasureImpl(); return usageTimeMeasure; } /** * Create a usage time measure. * @param commitModel commit model * @param scope project scope * @param trait in-progress characteristic * @return usage time measure */ public UsageTimeMeasure createUsageTimeMeasure(ProjectCommit commitModel, ProjectScope scope, InProgressIndicator trait) { UsageTimeMeasure usageTimeMeasure = createUsageTimeMeasure(); usageTimeMeasure.setLibrary(LIBRARY_CERTWARE); usageTimeMeasure.setModel(commitModel); usageTimeMeasure.setName("Usage Time"); usageTimeMeasure.setScope(scope); usageTimeMeasure.setTrait(trait); usageTimeMeasure.setUnit(UNIT_HOURS); commitModel.getModelElement().add(usageTimeMeasure); return usageTimeMeasure; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public RepairEffortMeasure createRepairEffortMeasure() { RepairEffortMeasureImpl repairEffortMeasure = new RepairEffortMeasureImpl(); return repairEffortMeasure; } /** * Create a repair effort measure. * @param commitModel commit model * @param scope project scope * @param trait in-progress characteristic * @return usage time measure */ public RepairEffortMeasure createRepairEffortMeasure(ProjectCommit commitModel, ProjectScope scope, InProgressIndicator trait) { RepairEffortMeasure repairEffortMeasure = createRepairEffortMeasure(); repairEffortMeasure.setLibrary(LIBRARY_CERTWARE); repairEffortMeasure.setModel(commitModel); repairEffortMeasure.setName("Repair Effort"); repairEffortMeasure.setScope(scope); repairEffortMeasure.setTrait(trait); repairEffortMeasure.setUnit(UNIT_HOURS); commitModel.getModelElement().add(repairEffortMeasure); return repairEffortMeasure; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public DevelopmentEffortMeasure createDevelopmentEffortMeasure() { DevelopmentEffortMeasureImpl developmentEffortMeasure = new DevelopmentEffortMeasureImpl(); return developmentEffortMeasure; } /** * Create a development effort measure. * @param commitModel commit model * @param scope project scope * @param trait in-progress characteristic * @return usage time measure */ public DevelopmentEffortMeasure createDevelopmentEffortMeasure(ProjectCommit commitModel, ProjectScope scope, InProgressIndicator trait) { DevelopmentEffortMeasure developmentEffortMeasure = createDevelopmentEffortMeasure(); developmentEffortMeasure.setLibrary(LIBRARY_CERTWARE); developmentEffortMeasure.setModel(commitModel); developmentEffortMeasure.setName("Development Effort"); developmentEffortMeasure.setScope(scope); developmentEffortMeasure.setTrait(trait); developmentEffortMeasure.setUnit(UNIT_HOURS); commitModel.getModelElement().add(developmentEffortMeasure); return developmentEffortMeasure; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public TotalChangeOrderCount createTotalChangeOrderCount() { TotalChangeOrderCountImpl totalChangeOrderCount = new TotalChangeOrderCountImpl(); return totalChangeOrderCount; } /** * Create a total change order count element. * @param commitModel commit model * @param baseMeasure change order base * @param scope project scope * @param trait project size characteristic * @return total change order count */ public TotalChangeOrderCount createTotalChangeOrderCount(ProjectCommit commitModel, ChangeOrderDimensionalMeasure baseMeasure, ProjectScope scope, ProjectSize trait) { TotalChangeOrderCount totalChangeOrderCount = createTotalChangeOrderCount(); totalChangeOrderCount.setBaseMeasure(baseMeasure); totalChangeOrderCount.setLibrary(LIBRARY_CERTWARE); totalChangeOrderCount.setModel(commitModel); totalChangeOrderCount.setName("Total Change Order Count"); totalChangeOrderCount.setScope(scope); totalChangeOrderCount.setTrait(trait); totalChangeOrderCount.setUnit(UNIT_COUNT); commitModel.getModelElement().add(totalChangeOrderCount); return totalChangeOrderCount; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public CriticalAndNormalChangeOrderCount createCriticalAndNormalChangeOrderCount() { CriticalAndNormalChangeOrderCountImpl criticalAndNormalChangeOrderCount = new CriticalAndNormalChangeOrderCountImpl(); return criticalAndNormalChangeOrderCount; } /** * Create a total change order count element. * @param commitModel commit model * @param normalCount normal defect measure * @param criticalCount critical defect measure * @param scope project scope * @param trait project size characteristic * @return total change order count */ public CriticalAndNormalChangeOrderCount createCriticalAndNormalChangeOrderCount(ProjectCommit commitModel, NormalDefectChangeOrderCount normalCount, CriticalDefectChangeOrderCount criticalCount, ProjectScope scope, ProjectSize trait) { CriticalAndNormalChangeOrderCount criticalAndNormalChangeOrderCount = createCriticalAndNormalChangeOrderCount(); criticalAndNormalChangeOrderCount.setBaseMeasure1(criticalCount); criticalAndNormalChangeOrderCount.setBaseMeasure2(normalCount); criticalAndNormalChangeOrderCount.setFunctor(FUNCTOR_ADD); criticalAndNormalChangeOrderCount.setLibrary(LIBRARY_CERTWARE); criticalAndNormalChangeOrderCount.setModel(commitModel); criticalAndNormalChangeOrderCount.setName("Critical And Normal Change Order Count"); criticalAndNormalChangeOrderCount.setScope(scope); criticalAndNormalChangeOrderCount.setTrait(trait); criticalAndNormalChangeOrderCount.setUnit(UNIT_COUNT); commitModel.getModelElement().add(criticalAndNormalChangeOrderCount); return criticalAndNormalChangeOrderCount; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public ReworkStabilityMeasure createReworkStabilityMeasure() { ReworkStabilityMeasureImpl reworkStabilityMeasure = new ReworkStabilityMeasureImpl(); return reworkStabilityMeasure; } /** * Create a rework stability measure. * @param commitModel commit model * @param brokenCount broken case size * @param fixedCount fixed case size * @param scope project scope * @param trait progress characteristic * @return rework stability measure */ public ReworkStabilityMeasure createReworkStabilityMeasure(ProjectCommit commitModel, BrokenCaseSizeMeasure brokenCount, FixedCaseSizeMeasure fixedCount, ProjectScope scope, InProgressIndicator trait) { ReworkStabilityMeasure reworkStabilityMeasure = createReworkStabilityMeasure(); reworkStabilityMeasure.setBaseMeasure1(brokenCount); reworkStabilityMeasure.setBaseMeasure2(fixedCount); reworkStabilityMeasure.setFunctor(FUNCTOR_SUBTRACT); reworkStabilityMeasure.setLibrary(LIBRARY_CERTWARE); reworkStabilityMeasure.setModel(commitModel); reworkStabilityMeasure.setName("Rework Stability"); reworkStabilityMeasure.setScope(scope); reworkStabilityMeasure.setTrait(trait); reworkStabilityMeasure.setUnit(UNIT_COUNT); commitModel.getModelElement().add(reworkStabilityMeasure); return reworkStabilityMeasure; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public ReworkBacklogMeasure createReworkBacklogMeasure() { ReworkBacklogMeasureImpl reworkBacklogMeasure = new ReworkBacklogMeasureImpl(); return reworkBacklogMeasure; } /** * Create a total change order count element. * @param commitModel commit model * @param reworkStability rework stability measure * @param baselineSize total baseline size count * @param scope project scope * @param inProgressIndicator progress characteristic * @return total change order count */ public ReworkBacklogMeasure createReworkBacklogMeasure(ProjectCommit commitModel, ReworkStabilityMeasure reworkStability, BaselineCaseSizeMeasure baselineSize, ProjectScope scope, InProgressIndicator inProgressIndicator) { ReworkBacklogMeasure reworkBacklogMeasure = createReworkBacklogMeasure(); reworkBacklogMeasure.setBaseMeasure1(reworkStability); reworkBacklogMeasure.setBaseMeasure2(baselineSize); reworkBacklogMeasure.setFunctor(FUNCTOR_DIVIDE); reworkBacklogMeasure.setLibrary(LIBRARY_CERTWARE); reworkBacklogMeasure.setModel(commitModel); reworkBacklogMeasure.setName("Rework Stability"); reworkBacklogMeasure.setScope(scope); reworkBacklogMeasure.setTrait(inProgressIndicator); reworkBacklogMeasure.setUnit(UNIT_COUNT); commitModel.getModelElement().add(reworkBacklogMeasure); return reworkBacklogMeasure; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public ModularityTrend createModularityTrend() { ModularityTrendImpl modularityTrend = new ModularityTrendImpl(); return modularityTrend; } /** * Modularity trend measure. * @param commitModel commit model * @param baseMeasure modularity measure (static) * @param scope project scope * @param trait in-progress indicator characteristic * @return modularity trend measure */ public ModularityTrend createModularityTrend(ProjectCommit commitModel, ModularityMeasure baseMeasure, ProjectScope scope, InProgressIndicator trait) { ModularityTrend modularityTrend = createModularityTrend(); modularityTrend.setBaseMeasure(baseMeasure); modularityTrend.setLibrary(LIBRARY_CERTWARE); modularityTrend.setModel(commitModel); modularityTrend.setName("Modularity Trend"); modularityTrend.setScope(scope); modularityTrend.setTrait(trait); modularityTrend.setUnit(UNIT_LINES_PER_CHANGE); commitModel.getModelElement().add(modularityTrend); return modularityTrend; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public AdaptabilityTrend createAdaptabilityTrend() { AdaptabilityTrendImpl adaptabilityTrend = new AdaptabilityTrendImpl(); return adaptabilityTrend; } /** * Adaptability trend measure. * @param commitModel commit model * @param baseMeasure adaptability measure (static) * @param scope project scope * @param trait in-progress indicator characteristic * @return adaptability trend measure */ public AdaptabilityTrend createAdaptabilityTrend(ProjectCommit commitModel, AdaptabilityRatioMeasure baseMeasure, ProjectScope scope, InProgressIndicator trait) { AdaptabilityTrend adaptabilityTrend = createAdaptabilityTrend(); adaptabilityTrend.setBaseMeasure(baseMeasure); adaptabilityTrend.setLibrary(LIBRARY_CERTWARE); adaptabilityTrend.setModel(commitModel); adaptabilityTrend.setName("Adaptability Trend"); adaptabilityTrend.setScope(scope); adaptabilityTrend.setTrait(trait); adaptabilityTrend.setUnit(UNIT_HOURS_PER_CHANGE); commitModel.getModelElement().add(adaptabilityTrend); return adaptabilityTrend; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public MaturityTrend createMaturityTrend() { MaturityTrendImpl maturityTrend = new MaturityTrendImpl(); return maturityTrend; } /** * Maturity trend measure. * @param commitModel commit model * @param baseMeasure maturity measure (static) * @param scope project scope * @param trait in-progress indicator characteristic * @return maturity trend measure */ public MaturityTrend createMaturityTrend(ProjectCommit commitModel, MaturityRatioMeasure baseMeasure, ProjectScope scope, InProgressIndicator trait) { MaturityTrend maturityTrend = createMaturityTrend(); maturityTrend.setBaseMeasure(baseMeasure); maturityTrend.setLibrary(LIBRARY_CERTWARE); maturityTrend.setModel(commitModel); maturityTrend.setName("Maturity Trend"); maturityTrend.setScope(scope); maturityTrend.setTrait(trait); maturityTrend.setUnit(UNIT_HOURS_PER_CHANGE); commitModel.getModelElement().add(maturityTrend); return maturityTrend; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public SpmPackage getSpmPackage() { return (SpmPackage)getEPackage(); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @deprecated * @generated */ @Deprecated public static SpmPackage getPackage() { return SpmPackage.eINSTANCE; } } //SpmFactoryImpl