@@ -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