* org.sbml.jsbml.xml.stax.ReadingParser#processEndDocument(org.sbml.jsbml
* .SBMLDocument)
*/
public void processEndDocument(SBMLDocument sbmlDocument) {
if (sbmlDocument.isSetModel()) {
Model model = sbmlDocument.getModel();
if (model.isSetListOfRules()) {
for (int i = 0; i < model.getRuleCount(); i++) {
Rule rule = model.getRule(i);
if (rule instanceof AssignmentRule) {
AssignmentRule assignmentRule = (AssignmentRule) rule;
setAssignmentRuleVariable(assignmentRule, model);
} else if (rule instanceof RateRule) {
RateRule rateRule = (RateRule) rule;
setRateRuleVariable(rateRule, model);
}
}
}
if (model.isSetListOfCompartments()) {
for (int i = 0; i < model.getCompartmentCount(); i++) {
Compartment compartment = model.getCompartment(i);
setCompartmentCompartmentType(compartment, model);
setCompartmentOutside(compartment, model);
setCompartmentUnits(compartment, model);
}
}
if (model.isSetListOfEvents()) {
for (int i = 0; i < model.getEventCount(); i++) {
Event event = model.getEvent(i);
setEventTimeUnits(event, model);
if (event.isSetListOfEventAssignments()) {
for (int j = 0; j < event.getEventAssignmentCount(); j++) {
EventAssignment eventAssignment = event
.getEventAssignment(j);
setEventAssignmentVariable(eventAssignment, model);
}
}
}
}
if (model.isSetListOfInitialAssignments()) {
for (int i = 0; i < model.getInitialAssignmentCount(); i++) {
InitialAssignment initialAssignment = model
.getInitialAssignment(i);
setInitialAssignmentSymbol(initialAssignment, model);
}
}
if (model.isSetListOfReactions()) {
for (int i = 0; i < model.getReactionCount(); i++) {
Reaction reaction = model.getReaction(i);
setReactionCompartment(reaction, model);
if (reaction.isSetListOfReactants()) {
for (int j = 0; j < reaction.getReactantCount(); j++) {
SpeciesReference speciesReference = reaction
.getReactant(j);
setSpeciesReferenceSpecies(speciesReference, model);
}
}
if (reaction.isSetListOfProducts()) {
for (int j = 0; j < reaction.getProductCount(); j++) {
SpeciesReference speciesReference = reaction
.getProduct(j);
setSpeciesReferenceSpecies(speciesReference, model);
}
}
if (reaction.isSetListOfModifiers()) {
for (int j = 0; j < reaction.getModifierCount(); j++) {
ModifierSpeciesReference modifierSpeciesReference = reaction
.getModifier(j);
setSpeciesReferenceSpecies(
modifierSpeciesReference, model);
}
}
if (reaction.isSetKineticLaw()) {
KineticLaw kineticLaw = reaction.getKineticLaw();
if (kineticLaw.isSetListOfLocalParameters()) {
for (int j = 0; j < kineticLaw.getLocalParameterCount(); j++) {
LocalParameter parameter = kineticLaw
.getLocalParameter(j);
setParameterUnits(parameter, model);
}
}
}
}
}
if (model.isSetListOfSpecies()) {
for (int i = 0; i < model.getSpeciesCount(); i++) {
Species species = model.getSpecies(i);
setSpeciesSubstanceUnits(species, model);
setSpeciesSpeciesType(species, model);
setSpeciesConversionFactor(species, model);
setSpeciesCompartment(species, model);
}
}
if (model.isSetListOfParameters()) {
for (int i = 0; i < model.getParameterCount(); i++) {
Parameter parameter = model.getParameter(i);
setParameterUnits(parameter, model);
}
}
} else {