Skip to content

Commit f6ae64b

Browse files
committed
MCR-3497 Reduce method complexity
1 parent 6d5f13e commit f6ae64b

File tree

1 file changed

+32
-15
lines changed

1 file changed

+32
-15
lines changed

mycore-xeditor/src/main/java/org/mycore/frontend/xeditor/transformer/MCRRepeatTransformerHelper.java

Lines changed: 32 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -150,27 +150,44 @@ private void handleControls(MCRTransformerHelperCall call) throws JaxenException
150150
continue;
151151
}
152152

153-
Element control = new Element("control").setText(token);
154-
155-
StringBuilder name = new StringBuilder();
156-
name.append("_xed_submit_").append(token).append(COLON);
157-
158-
if (CONTROL_APPEND.equals(token) || CONTROL_INSERT.equals(token)) {
159-
name.append(MCRInsertTarget.getInsertParameter(findCurrentRepeatBinding()));
160-
} else if (CONTROL_REMOVE.equals(token)) {
161-
name.append(getCurrentBinding().getAbsoluteXPath());
162-
} else if (CONTROL_UP.equals(token) || CONTROL_DOWN.equals(token)) {
163-
name.append(getSwapParameter(token));
153+
Element control = null;
154+
switch (token) {
155+
case CONTROL_APPEND:
156+
case CONTROL_INSERT: {
157+
control =
158+
buildControl(token, MCRInsertTarget.getInsertParameter(findCurrentRepeatBinding()), anchorID);
159+
break;
160+
}
161+
case CONTROL_REMOVE: {
162+
control = buildControl(token, getCurrentBinding().getAbsoluteXPath(), anchorID - 1);
163+
break;
164+
}
165+
case CONTROL_UP:
166+
case CONTROL_DOWN: {
167+
control = buildControl(token, getSwapParameter(token), anchorID);
168+
break;
169+
}
170+
default:
171+
;
164172
}
165173

166-
name.append("|rep-");
167-
name.append(CONTROL_REMOVE.equals(token) && (pos > 1) ? anchorID - 1 : anchorID);
168-
169-
control.setAttribute(ATTR_NAME, name.toString());
170174
call.getReturnElement().addContent(control);
171175
}
172176
}
173177

178+
private Element buildControl(String token, String param, int anchorIDtoUse) {
179+
Element control = new Element("control").setText(token);
180+
181+
StringBuilder name = new StringBuilder();
182+
name.append("_xed_submit_").append(token).append(COLON);
183+
name.append(param);
184+
name.append("|rep-");
185+
name.append(anchorIDtoUse);
186+
control.setAttribute(ATTR_NAME, name.toString());
187+
188+
return control;
189+
}
190+
174191
private MCRRepeatBinding findCurrentRepeatBinding() {
175192
MCRBinding binding = transformationState.getCurrentBinding();
176193
while (!(binding instanceof MCRRepeatBinding)) {

0 commit comments

Comments
 (0)