return reaction;
} else if (elementName.equals("event")
&& list.getSBaseListType().equals(
ListOf.Type.listOfEvents)
&& model.getLevel() > 1) {
Event event = (Event) newContextObject;
model.addEvent(event);
event.initDefaults();
return event;
} else if (elementName.equals("compartmentType")
&& list.getSBaseListType().equals(
ListOf.Type.listOfCompartmentTypes)
&& (model.getLevel() == 2 && model.getVersion() > 1)) {
CompartmentType compartmentType = (CompartmentType) newContextObject;
model.addCompartmentType(compartmentType);
return compartmentType;
} else if (elementName.equals("speciesType")
&& list.getSBaseListType().equals(
ListOf.Type.listOfSpeciesTypes)
&& (model.getLevel() == 2 && model.getVersion() > 1)) {
SpeciesType speciesType = (SpeciesType) newContextObject;
model.addSpeciesType(speciesType);
return speciesType;
} else {
log4jLogger.warn("The element " + elementName + " is not recognized");
}
} else if (list.getParentSBMLObject() instanceof UnitDefinition) {
UnitDefinition unitDefinition = (UnitDefinition) list
.getParentSBMLObject();
if (elementName.equals("unit")
&& list.getSBaseListType().equals(
ListOf.Type.listOfUnits)) {
Unit unit = (Unit) newContextObject;
unit.initDefaults();
unitDefinition.addUnit(unit);
return unit;
} else {
log4jLogger.warn("The element " + elementName + " is not recognized");
}
} else if (list.getParentSBMLObject() instanceof Reaction) {
Reaction reaction = (Reaction) list
.getParentSBMLObject();
if (elementName.equals("speciesReference")
&& (reaction.getLevel() > 1 || (reaction
.getLevel() == 1 && reaction
.getVersion() == 2))) {
SpeciesReference speciesReference = (SpeciesReference) newContextObject;
speciesReference.initDefaults();
if (list.getSBaseListType().equals(
ListOf.Type.listOfReactants)) {
reaction.addReactant(speciesReference);
return speciesReference;
} else if (list.getSBaseListType().equals(
ListOf.Type.listOfProducts)) {
reaction.addProduct(speciesReference);
return speciesReference;
} else {
log4jLogger.warn("The element " + elementName + " is not recognized");
}
} else if (elementName.equals("specieReference")
&& reaction.getLevel() == 1) {
SpeciesReference speciesReference = (SpeciesReference) newContextObject;
speciesReference.initDefaults();
if (list.getSBaseListType().equals(
ListOf.Type.listOfReactants)) {
reaction.addReactant(speciesReference);
return speciesReference;
} else if (list.getSBaseListType().equals(
ListOf.Type.listOfProducts)) {
reaction.addProduct(speciesReference);
return speciesReference;
} else {
log4jLogger.warn("The element " + elementName + " is not recognized");
}
} else if (elementName
.equals("modifierSpeciesReference")
&& list.getSBaseListType().equals(
ListOf.Type.listOfModifiers)
&& reaction.getLevel() > 1) {
ModifierSpeciesReference modifierSpeciesReference = (ModifierSpeciesReference) newContextObject;
reaction.addModifier(modifierSpeciesReference);
return modifierSpeciesReference;
} else {
log4jLogger.warn("The element " + elementName + " is not recognized");
}
} else if (list.getParentSBMLObject() instanceof KineticLaw) {
KineticLaw kineticLaw = (KineticLaw) list
.getParentSBMLObject();
// Level 3: parameter and listOfParameters =>
// localParameter and listOfLocalParameter
if (elementName.equals("localParameter")
&& list.getSBaseListType().equals(
ListOf.Type.listOfLocalParameters)
&& kineticLaw.getLevel() >= 3) {
LocalParameter localParameter = (LocalParameter) newContextObject;
kineticLaw.addLocalParameter(localParameter);
return localParameter;
} else if (elementName.equals("parameter")
&& list.getSBaseListType().equals(
ListOf.Type.listOfLocalParameters)
&& kineticLaw.isSetLevel()
&& kineticLaw.getLevel() < 3) {
LocalParameter localParameter = new LocalParameter(
(Parameter) newContextObject);
kineticLaw.addLocalParameter(localParameter);
return localParameter;
} else {
log4jLogger.warn("The element " + elementName + " is not recognized");
}
} else if (list.getParentSBMLObject() instanceof Event) {
Event event = (Event) list.getParentSBMLObject();
if (elementName.equals("eventAssignment")
&& list.getSBaseListType().equals(
ListOf.Type.listOfEventAssignments)
&& event.getLevel() > 1) {
EventAssignment eventAssignment = (EventAssignment) newContextObject;
event.addEventAssignment(eventAssignment);
return eventAssignment;
} else {
log4jLogger.warn("The element " + elementName + " is not recognized");
}
} else {
log4jLogger.warn("The element " + elementName + " is not recognized");
}
} else if (contextObject instanceof UnitDefinition) {
UnitDefinition unitDefinition = (UnitDefinition) contextObject;
if (elementName.equals("listOfUnits")) {
ListOf<Unit> listOfUnits = (ListOf<Unit>) newContextObject;
unitDefinition.setListOfUnits(listOfUnits);
return listOfUnits;
}
} else if (contextObject instanceof Event) {
Event event = (Event) contextObject;
if (elementName.equals("listOfEventAssignments")) {
ListOf<EventAssignment> listOfEventAssignments = (ListOf<EventAssignment>) newContextObject;
event.setListOfEventAssignments(listOfEventAssignments);
return listOfEventAssignments;
} else if (elementName.equals("trigger")) {
Trigger trigger = (Trigger) newContextObject;
event.setTrigger(trigger);
return trigger;
} else if (elementName.equals("delay")) {
Delay delay = (Delay) newContextObject;
event.setDelay(delay);
return delay;
} else if (elementName.equals("priority")) {
Priority priority = (Priority) newContextObject;
event.setPriority(priority);
return priority;
} else {
log4jLogger.warn("The element " + elementName + " is not recognized");
}