" I represent a group of sets prescribed for a workout. " Class { #name : 'MFTSetGroupPrescription', #superclass : 'MFTObject', #instVars : [ 'sets' ], #category : 'MyFitnessTracker-Core-Prescription', #package : 'MyFitnessTracker-Core', #tag : 'Prescription' } { #category : 'as yet unclassified' } MFTSetGroupPrescription class >> withSets: aMFTSetPrescriptionCollection [ ^ self new sets: aMFTSetPrescriptionCollection asOrderedCollection; validate; yourself ] { #category : 'accessing' } MFTSetGroupPrescription >> alternativeExercisesFor: aMFTExercise [ ^ sets detect: [ :each | each exercise = aMFTExercise ] ifFound: [ :set | set alternativeExercises ] ifNone: [ nil ] ] { #category : 'initialization' } MFTSetGroupPrescription >> initialize [ super initialize. sets := OrderedCollection new ] { #category : 'testing' } MFTSetGroupPrescription >> setCount [ ^ sets size ] { #category : 'accessing' } MFTSetGroupPrescription >> sets [ ^ sets ] { #category : 'accessing' } MFTSetGroupPrescription >> sets: aMFTSetPrescriptionCollection [ sets := aMFTSetPrescriptionCollection ] { #category : 'testing' } MFTSetGroupPrescription >> uniqueExercisesInSets [ "I answer unique exercises across all sets." ^ (sets collect: #exercise) asSet ] { #category : 'validation' } MFTSetGroupPrescription >> validate [ self subclassResponsibility ]