handleScoreChild(endingChildForm, saveAllVariants));
}
return ending;
} else if (childForm instanceof ScoreDefForm) {
ScoreDefForm contentForm = (ScoreDefForm) childForm;
ScoreDef contentNode = (ScoreDef) contentForm.getMeiNode();
for (BasicElement contentChildForm : contentForm.getChildren()) {
contentNode.setStaffGrp((StaffGrp) handleScoreChild(
contentChildForm, saveAllVariants));
}
return contentNode;
} else if (childForm instanceof StaffGroupForm) {
StaffGroupForm contentForm = (StaffGroupForm) childForm;
StaffGrp contentNode = (StaffGrp) contentForm.getMeiNode();
contentNode.getInstrDevesAndGrpSymsAndStaffDeves().clear();
if(contentForm.getChildren().size() == 0) {
//an empty staffGrp is not allowed and is being cut
return null;
}
for (BasicElement contentChildForm : contentForm.getChildren()) {
contentNode.getInstrDevesAndGrpSymsAndStaffDeves().add(
handleScoreChild(contentChildForm, saveAllVariants));
}
return contentNode;
} else if (childForm instanceof StaffDefForm) {
StaffDefForm contentForm = (StaffDefForm) childForm;
StaffDef contentNode = (StaffDef) contentForm.getMeiNode();
contentNode.getMensursAndProportsAndClefGrps().clear();
for (BasicElement contentChildForm : contentForm.getChildren()) {
contentNode.getMensursAndProportsAndClefGrps().add(
handleScoreChild(contentChildForm, saveAllVariants));
}
return contentNode;
} else if (childForm instanceof MeasureForm) {
MeasureForm measureForm = (MeasureForm) childForm;
Measure measureNode = (Measure) measureForm.getMeiNode();
measureNode.getAnnotsAndSlursAndTupletSpen().clear();
for (BasicElement measureChildForm : measureForm.getChildren()) {
measureNode.getAnnotsAndSlursAndTupletSpen().add(
handleScoreChild(measureChildForm, saveAllVariants));
}
return measureNode;
} else if (childForm instanceof StaffForm) {
StaffForm contentForm = (StaffForm) childForm;
Staff contentNode = (Staff) contentForm.getMeiNode();
contentNode.getSbsAndSymbolsAndOrigs().clear();
for (BasicElement contentChildForm : contentForm.getChildren()) {
contentNode.getSbsAndSymbolsAndOrigs().add(
handleScoreChild(contentChildForm, saveAllVariants));
}
return contentNode;
} else if (childForm instanceof AppForm) {
AppForm contentForm = (AppForm) childForm;
App contentNode = (App) contentForm.getMeiNode();
contentNode.getRdgs().clear();
for (BasicElement contentChildForm : contentForm.getChildren()) {
contentNode.getRdgs().add(
(Rdg) handleScoreChild(contentChildForm,
saveAllVariants));
}
if (contentNode.isSetRdgs() && contentNode.getRdgs().isEmpty())
contentNode.unsetRdgs();
if (contentNode.isSetN() && contentNode.getN().isEmpty())
contentNode.setN(null);
if (!saveAllVariants) {
for (BasicElement contentChildForm : contentForm.getChildren()) {
if(contentChildForm instanceof ReadingForm && ((ReadingForm)contentChildForm).isActive() ) {
MeiNode parentMeiNode = contentForm.getParent().getMeiNode();
for(BasicElement grandChild : ((ReadingForm)contentChildForm).getChildren()){
MeiNodeNavigator.addMeiNodeAsChild(parentMeiNode, grandChild.getMeiNode());
}
}
}
return null;
}
return contentNode;
} else if (childForm instanceof ReadingForm) {
Rdg contentNode;
ReadingForm contentForm = (ReadingForm) childForm;
if (!saveAllVariants && !contentForm.isActive()) {
// ignore this very reading
return null;
}
contentNode = (Rdg) contentForm.getMeiNode();
contentNode.getSources().clear();
for (SourceBindingWrapper sbw : contentForm
.getSourceBindingWrappers()) { // insert the wrapped sources
contentNode.getSources().add(sbw.getSource().getId());
}
if (contentNode.getSources().isEmpty())
contentNode.unsetSources();
contentNode.getMRestsAndKeySigsAndProports().clear();
for (BasicElement contentChildForm : contentForm.getChildren()) {
contentNode.getMRestsAndKeySigsAndProports().add(
handleScoreChild(contentChildForm, saveAllVariants));
}
return contentNode;
} else if (childForm instanceof LayerForm) {
LayerForm contentForm = (LayerForm) childForm;
Layer contentNode = (Layer) contentForm.getMeiNode();
contentNode.getBarLinesAndSyllablesAndGaps().clear();
for (BasicElement contentChildForm : contentForm.getChildren()) {
contentNode.getBarLinesAndSyllablesAndGaps().add(
handleScoreChild(contentChildForm, saveAllVariants));
}
return contentNode;
} else if (childForm instanceof ChordGroupForm) {
ChordGroupForm contentForm = (ChordGroupForm) childForm;
Chord contentNode = (Chord) contentForm.getMeiNode();
contentNode.getRestoresAndArticsAndUnclears().clear();
for (BasicElement contentChildForm : contentForm.getChildren()) {
contentNode.getRestoresAndArticsAndUnclears().add(
handleScoreChild(contentChildForm, saveAllVariants));
}
if(contentNode.getArtics().isEmpty()) {
contentNode.unsetArtics();
}
return contentNode;
} else if (childForm instanceof BeamGroupForm) {
BeamGroupForm contentForm = (BeamGroupForm) childForm;
Beam contentNode = (Beam) contentForm.getMeiNode();
contentNode.getFTremsAndChordsAndDamages().clear();
for (BasicElement contentChildForm : contentForm.getChildren()) {
contentNode.getFTremsAndChordsAndDamages().add(
handleScoreChild(contentChildForm, saveAllVariants));
}
return contentNode;
} else if (childForm instanceof NoteForm) {
NoteForm contentForm = (NoteForm) childForm;
Note contentNode = (Note) contentForm.getMeiNode();
if (contentNode.getArtics().isEmpty())
contentNode.unsetArtics();
return contentNode;
} else if (childForm instanceof RestForm) {
RestForm contentForm = (RestForm) childForm;
Rest contentNode = (Rest) contentForm.getMeiNode();
return contentNode;
} else if (childForm instanceof MRestForm) {
MRestForm contentForm = (MRestForm) childForm;
MRest contentNode = (MRest) contentForm.getMeiNode();
return contentNode;
} else if (childForm instanceof SpaceForm) {
SpaceForm contentForm = (SpaceForm) childForm;
Space contentNode = (Space) contentForm.getMeiNode();
return contentNode;
} else if (childForm instanceof DynamForm) {
DynamForm contentForm = (DynamForm) childForm;
Dynam contentNode = (Dynam) contentForm.getMeiNode();
for (BasicElement contentChildForm : contentForm.getChildren()) {
contentNode.getContent().add(
handleScoreChild(contentChildForm, saveAllVariants));
}
return contentNode;
} else if (childForm instanceof TieForm) {
TieForm contentForm = (TieForm) childForm;