@@ -56,36 +56,49 @@ public void updateEntity(Long objectiveId, Objective objective) {
56
56
Alignment savedAlignment = alignmentPersistenceService .findByAlignedObjectiveId (objectiveId );
57
57
58
58
if (savedAlignment == null ) {
59
- Alignment alignment = buildAlignmentModel (objective , 0 );
60
- alignmentValidationService .validateOnCreate (alignment );
61
- alignmentPersistenceService .save (alignment );
59
+ createEntity (objective );
60
+ } else {
61
+ handleExistingAlignment (objective , savedAlignment );
62
+ }
63
+ }
64
+
65
+ private void handleExistingAlignment (Objective objective , Alignment savedAlignment ) {
66
+ if (objective .getAlignedEntityId () == null ) {
67
+ validateAndDeleteAlignmentById (savedAlignment .getId ());
62
68
} else {
63
- if (objective .getAlignedEntityId () == null ) {
64
- alignmentValidationService .validateOnDelete (savedAlignment .getId ());
65
- alignmentPersistenceService .deleteById (savedAlignment .getId ());
66
- } else {
67
- Alignment alignment = buildAlignmentModel (objective , savedAlignment .getVersion ());
68
-
69
- alignment .setId (savedAlignment .getId ());
70
- alignmentValidationService .validateOnUpdate (savedAlignment .getId (), alignment );
71
- if (isAlignmentTypeChange (alignment , savedAlignment )) {
72
- alignmentPersistenceService .recreateEntity (savedAlignment .getId (), alignment );
73
- } else {
74
- alignmentPersistenceService .save (alignment );
75
- }
76
- }
69
+ validateAndUpdateAlignment (objective , savedAlignment );
70
+ }
71
+ }
72
+
73
+ private void validateAndUpdateAlignment (Objective objective , Alignment savedAlignment ) {
74
+ Alignment alignment = buildAlignmentModel (objective , savedAlignment .getVersion ());
75
+
76
+ alignment .setId (savedAlignment .getId ());
77
+ alignmentValidationService .validateOnUpdate (savedAlignment .getId (), alignment );
78
+ updateAlignment (savedAlignment , alignment );
79
+ }
80
+
81
+ private void updateAlignment (Alignment savedAlignment , Alignment alignment ) {
82
+ if (isAlignmentTypeChange (alignment , savedAlignment )) {
83
+ alignmentPersistenceService .recreateEntity (savedAlignment .getId (), alignment );
84
+ } else {
85
+ alignmentPersistenceService .save (alignment );
77
86
}
78
87
}
79
88
80
89
public Alignment buildAlignmentModel (Objective alignedObjective , int version ) {
81
90
if (alignedObjective .getAlignedEntityId ().startsWith ("O" )) {
82
- Objective targetObjective = objectivePersistenceService
83
- .findById (Long .valueOf (alignedObjective .getAlignedEntityId ().replace ("O" , "" )));
84
- return ObjectiveAlignment .Builder .builder ().withAlignedObjective (alignedObjective )
85
- .withTargetObjective (targetObjective ).withVersion (version ).build ();
91
+ Long entityId = Long .valueOf (alignedObjective .getAlignedEntityId ().replace ("O" , "" ));
92
+
93
+ Objective targetObjective = objectivePersistenceService .findById (entityId );
94
+ return ObjectiveAlignment .Builder .builder () //
95
+ .withAlignedObjective (alignedObjective ) //
96
+ .withTargetObjective (targetObjective ) //
97
+ .withVersion (version ).build ();
86
98
} else if (alignedObjective .getAlignedEntityId ().startsWith ("K" )) {
87
- KeyResult targetKeyResult = keyResultPersistenceService
88
- .findById (Long .valueOf (alignedObjective .getAlignedEntityId ().replace ("K" , "" )));
99
+ Long entityId = Long .valueOf (alignedObjective .getAlignedEntityId ().replace ("K" , "" ));
100
+
101
+ KeyResult targetKeyResult = keyResultPersistenceService .findById (entityId );
89
102
return KeyResultAlignment .Builder .builder ().withAlignedObjective (alignedObjective )
90
103
.withTargetKeyResult (targetKeyResult ).withVersion (version ).build ();
91
104
} else {
@@ -99,9 +112,10 @@ public boolean isAlignmentTypeChange(Alignment alignment, Alignment savedAlignme
99
112
|| (alignment instanceof KeyResultAlignment && savedAlignment instanceof ObjectiveAlignment );
100
113
}
101
114
102
- public void updateKeyResultIdOnIdChange (Long oldId , KeyResult keyResult ) {
103
- List <KeyResultAlignment > alignments = alignmentPersistenceService .findByKeyResultAlignmentId (oldId );
104
- alignments .forEach (alignment -> {
115
+ public void updateKeyResultIdOnIdChange (Long oldKeyResultId , KeyResult keyResult ) {
116
+ List <KeyResultAlignment > keyResultAlignmentList = alignmentPersistenceService
117
+ .findByKeyResultAlignmentId (oldKeyResultId );
118
+ keyResultAlignmentList .forEach (alignment -> {
105
119
alignment .setAlignmentTarget (keyResult );
106
120
alignmentValidationService .validateOnUpdate (alignment .getId (), alignment );
107
121
alignmentPersistenceService .save (alignment );
@@ -111,21 +125,23 @@ public void updateKeyResultIdOnIdChange(Long oldId, KeyResult keyResult) {
111
125
public void deleteAlignmentByObjectiveId (Long objectiveId ) {
112
126
Alignment alignment = alignmentPersistenceService .findByAlignedObjectiveId (objectiveId );
113
127
if (alignment != null ) {
114
- alignmentValidationService .validateOnDelete (alignment .getId ());
115
- alignmentPersistenceService .deleteById (alignment .getId ());
128
+ validateAndDeleteAlignmentById (alignment .getId ());
116
129
}
117
- List <ObjectiveAlignment > alignmentList = alignmentPersistenceService .findByObjectiveAlignmentId (objectiveId );
118
- alignmentList .forEach (objectiveAlignment -> {
119
- alignmentValidationService .validateOnDelete (objectiveAlignment .getId ());
120
- alignmentPersistenceService .deleteById (objectiveAlignment .getId ());
121
- });
130
+ List <ObjectiveAlignment > objectiveAlignmentList = alignmentPersistenceService
131
+ .findByObjectiveAlignmentId (objectiveId );
132
+ objectiveAlignmentList
133
+ .forEach (objectiveAlignment -> validateAndDeleteAlignmentById (objectiveAlignment .getId ()));
122
134
}
123
135
124
136
public void deleteAlignmentByKeyResultId (Long keyResultId ) {
125
- List <KeyResultAlignment > alignmentList = alignmentPersistenceService .findByKeyResultAlignmentId (keyResultId );
126
- alignmentList .forEach (keyResultAlignment -> {
127
- alignmentValidationService .validateOnDelete (keyResultAlignment .getId ());
128
- alignmentPersistenceService .deleteById (keyResultAlignment .getId ());
129
- });
137
+ List <KeyResultAlignment > keyResultAlignmentList = alignmentPersistenceService
138
+ .findByKeyResultAlignmentId (keyResultId );
139
+ keyResultAlignmentList
140
+ .forEach (keyResultAlignment -> validateAndDeleteAlignmentById (keyResultAlignment .getId ()));
141
+ }
142
+
143
+ private void validateAndDeleteAlignmentById (Long alignmentId ) {
144
+ alignmentValidationService .validateOnDelete (alignmentId );
145
+ alignmentPersistenceService .deleteById (alignmentId );
130
146
}
131
147
}
0 commit comments