@Override public List<Object> getListOfSBMLElementsToWrite(Object sbase) { logger.debug("getListOfSBMLElementsToWrite: " + sbase.getClass().getCanonicalName()); List<Object> listOfElementsToWrite = new ArrayList<Object>(); if (sbase instanceof Model) { SBasePlugin modelPlugin = ((Model) sbase).getExtension(getNamespaceURI()); if (modelPlugin != null) { listOfElementsToWrite = super.getListOfSBMLElementsToWrite(modelPlugin); } } else { listOfElementsToWrite = super.getListOfSBMLElementsToWrite(sbase); } return listOfElementsToWrite; }
/** * Generate a valid SBML identifier using UUID. * * @param model * @return */ public static String nextId(Model model) { String idOne; do { idOne = UUID.randomUUID().toString().replace("-", "_"); if (Character.isDigit(idOne.charAt(0))) { // Add an underscore at the beginning of the new id only if // necessary. idOne = '_' + idOne; } } while (model.findNamedSBase(idOne) != null); return idOne; }
private void addSBaseToModel(Model model, SBase sBase) { if (model != null && sBase != null) { sBase.removeFromParent(); if (sBase.getClass() == Reaction.class) { model.addReaction((Reaction) sBase); } else if (sBase.getClass() == Compartment.class) { model.addCompartment((Compartment) sBase); } else if (sBase.getClass() == Constraint.class) { model.addConstraint((Constraint) sBase); } else if (sBase.getClass() == Event.class) { model.addEvent((Event) sBase); } else if (sBase.getClass() == FunctionDefinition.class) { model.addFunctionDefinition((FunctionDefinition) sBase); } else if (sBase.getClass() == Parameter.class) { model.addParameter((Parameter) sBase); } else if (sBase.getClass() == Rule.class) { model.addRule((Rule) sBase); } else if (sBase.getClass() == Species.class) { model.addSpecies((Species) sBase); } else if (sBase.getClass() == UnitDefinition.class) { model.addUnitDefinition((UnitDefinition) sBase); } } }
/** * Creates a new {@link Reaction} inside this {@link Model} and returns it. * * @param id * the id of the new element to create * @return the {@link Reaction} object created */ public Reaction createReaction(String id) { Reaction reaction = new Reaction(id, getLevel(), getVersion()); addReaction(reaction); return reaction; }
@Override public boolean check(ValidationContext ctx, LocalParameter lp) { Model m = lp.getModel(); if (m != null) { String id = lp.getId(); // ID should't be used by anything else return m.getFunctionDefinition(id) == null && m.getCompartment(id) == null && m.getSpecies(id) == null && m.getParameter(id) == null && m.getReaction(id) == null; } return true; } };
@Override public boolean check(ValidationContext ctx, Model m) { if (m.isSetListOfCompartments() || m.isListOfCompartmentsEmpty()) { return new UnknownAttributeValidationFunction<TreeNodeWithChangeSupport>().check(ctx, m.getListOfCompartments()); } return true; } };
initDefaults(); if (model.isSetListOfFunctionDefinitions()) { setListOfFunctionDefinitions( model.getListOfFunctionDefinitions().clone()); if (model.isSetListOfUnitDefinitions()) { setListOfUnitDefinitions(model.getListOfUnitDefinitions().clone()); if (model.isSetListOfCompartmentTypes()) { setListOfCompartmentTypes(model.getListOfCompartmentTypes().clone()); if (model.isSetListOfSpeciesTypes()) { setListOfSpeciesTypes(model.getListOfSpeciesTypes().clone()); if (model.isSetListOfCompartments()) { setListOfCompartments(model.getListOfCompartments().clone()); if (model.isSetListOfSpecies()) { setListOfSpecies(model.getListOfSpecies().clone()); if (model.isSetListOfParameters()) { setListOfParameters(model.getListOfParameters().clone()); if (model.isSetListOfInitialAssignments()) { setListOfInitialAssignments(model.getListOfInitialAssignments().clone()); if (model.isSetListOfRules()) { setListOfRules(model.getListOfRules().clone());
if (model.isSetAreaUnits() && !model.isSetAreaUnitsInstance()) { logger.warn(MessageFormat.format( bundle.getString("SBMLCoreParser.unknownReferenceError1"), "UnitDefinition", "areaUnitsID", model.getAreaUnits(), model.getElementName(), SBMLtools.getIdOrName(model))); if (model.isSetConversionFactor() && !model.isSetConversionFactorInstance()) { logger.warn(MessageFormat.format( bundle.getString("SBMLCoreParser.unknownReferenceError1"), "Parameter", "conversionFactorID", model.getConversionFactor(), model.getElementName(), SBMLtools.getIdOrName(model))); if (model.isSetExtentUnits() && !model.isSetExtentUnitsInstance()) { logger.warn(MessageFormat.format( bundle.getString("SBMLCoreParser.unknownReferenceError1"), "UnitDefinition", "extentUnitsID", model.getExtentUnits(), model.getElementName(), SBMLtools.getIdOrName(model))); if (model.isSetLengthUnits() && !model.isSetLengthUnitsInstance()) { logger.warn(MessageFormat.format( bundle.getString("SBMLCoreParser.unknownReferenceError1"), "UnitDefinition", "lengthUnitsID", model.getLengthUnits(), model.getElementName(), SBMLtools.getIdOrName(model))); if (model.isSetSubstanceUnits() && !model.isSetSubstanceUnitsInstance()) { logger.warn(MessageFormat.format( bundle.getString("SBMLCoreParser.unknownReferenceError1"),
ListOf<Reaction> reactionListOf = sourceModel.getListOfReactions().clone(); sourceModel.getListOfReactions().removeFromParent(); targetModel.addReaction(reaction.clone()); ListOf<Compartment> compartmentListOf = sourceModel.getListOfCompartments().clone(); sourceModel.getListOfCompartments().removeFromParent(); targetModel.addCompartment(compartment.clone()); ListOf<Constraint> constraintListOf = sourceModel.getListOfConstraints().clone(); sourceModel.getListOfConstraints().removeFromParent(); targetModel.addConstraint(constraint.clone()); ListOf<Species> speciesListOf = sourceModel.getListOfSpecies().clone(); sourceModel.getListOfSpecies().removeFromParent(); targetModel.addSpecies(species.clone()); ListOf<Event> eventListOf = sourceModel.getListOfEvents().clone(); sourceModel.getListOfEvents().removeFromParent(); targetModel.addEvent(event.clone()); ListOf<FunctionDefinition> functionalDefinitionsListOf = sourceModel.getListOfFunctionDefinitions().clone(); sourceModel.getListOfFunctionDefinitions().removeFromParent(); targetModel.addFunctionDefinition(functionalDefinition.clone());
int modelLevel = model.getLevel(); int modelVersion = model.getVersion(); SBMLDocument originalDocument = model.getSBMLDocument(); subModel.setMetaId(subModelId); for (FunctionDefinition functionDefinition : model.getListOfFunctionDefinitions()) { allFunctionsIdSet.add(functionDefinition.getId()); Reaction relatedReaction = model.getReaction(reactsIds[i]); subModel.addReaction(relatedReaction.clone()); Compartment relatedCompartment = model.getCompartment(compartmentsIds[i]); subModel.addCompartment(relatedCompartment.clone()); processUnitsMap(unitsMap, model, relatedCompartment.getUnits()); && (subModel.getCompartmentType(relatedCompartment.getCompartmentType()) == null)) { subModel.addCompartmentType(relatedCompartment.getCompartmentTypeInstance().clone()); Species relatedSpecies = model.getSpecies(speciesIds[i]); if (subModel.getSBaseById(relatedSpecies.getId()) != null) { subModel.addSpecies(relatedSpecies.clone()); processUnitsMap(unitsMap, model, relatedSpecies.getSubstanceUnits());
model.setLevel(sbmlDocument.getLevel()); model.setVersion(sbmlDocument.getVersion()); model.initDefaults(); sbmlDocument.setModel(model); && model.getLevel() > 1) { ListOf<FunctionDefinition> listOfFunctionDefinitions = (ListOf<FunctionDefinition>) newContextObject; model.setListOfFunctionDefinitions(listOfFunctionDefinitions); model.setListOfUnitDefinitions(listOfUnitDefinitions); model.setListOfCompartments(listOfCompartments); model.setListOfSpecies(listOfSpecies); model.setListOfParameters(listOfParameters); && ((model.getLevel() == 2 && model.getVersion() > 1) || model.getLevel() >= 3)) { ListOf<InitialAssignment> listOfInitialAssignments = (ListOf<InitialAssignment>) newContextObject; model.setListOfInitialAssignments(listOfInitialAssignments); model.setListOfRules(listOfRules); && ((model.getLevel() == 2 && model.getVersion() > 1) || model.getLevel() >= 3)) { ListOf<Constraint> listOfConstraints = (ListOf<Constraint>) newContextObject; model.setListOfConstraints(listOfConstraints);
Model mergedModel = new Model(); mergedModel.setLevel(previousModel.getLevel()); mergedModel.setVersion(previousModel.getVersion()); mergeListsOfModels(previousModel.getListOfCompartments(), previousModel, mergedModel); mergeListsOfModels(previousModel.getListOfSpecies(), previousModel, mergedModel); mergeListsOfModels(previousModel.getListOfFunctionDefinitions(), previousModel, mergedModel); mergeListsOfModels(previousModel.getListOfRules(), previousModel, mergedModel); mergeListsOfModels(previousModel.getListOfEvents(), previousModel, mergedModel); mergeListsOfModels(previousModel.getListOfUnitDefinitions(), previousModel, mergedModel); mergeListsOfModels(previousModel.getListOfReactions(), previousModel, mergedModel); mergeListsOfModels(previousModel.getListOfParameters(), previousModel, mergedModel); mergeListsOfModels(previousModel.getListOfInitialAssignments(), previousModel, mergedModel); mergeListsOfModels(currentModel.getListOfCompartments(), currentModel, mergedModel); mergeListsOfModels(currentModel.getListOfSpecies(), currentModel, mergedModel); mergeListsOfModels(currentModel.getListOfFunctionDefinitions(), currentModel, mergedModel); mergeListsOfModels(currentModel.getListOfRules(), currentModel, mergedModel); mergeListsOfModels(currentModel.getListOfEvents(), currentModel, mergedModel); mergeListsOfModels(currentModel.getListOfUnitDefinitions(), currentModel, mergedModel); mergeListsOfModels(currentModel.getListOfReactions(), currentModel, mergedModel); mergeListsOfModels(currentModel.getListOfParameters(), currentModel, mergedModel); mergeListsOfModels(currentModel.getListOfInitialAssignments(), currentModel, mergedModel);
return getListOfFunctionDefinitions(); return getListOfUnitDefinitions(); return getListOfCompartmentTypes(); return getListOfSpeciesTypes(); return getListOfCompartments(); return getListOfSpecies(); return getListOfParameters(); return getListOfInitialAssignments(); return getListOfRules(); return getListOfConstraints(); return getListOfReactions(); return getListOfEvents();
if (m.isSetSubstanceUnits()) boolean isUnitsValid = ValidationTools.checkUnit(ctx, m, m.getSubstanceUnits()); ValidationConstraint.logError(ctx, CORE_10313, m, m.getSubstanceUnits(), m.getElementName(), m.getId()); isCheckValid = false; if (m.isSetVolumeUnits()) boolean isUnitsValid = ValidationTools.checkUnit(ctx, m, m.getVolumeUnits()); ValidationConstraint.logError(ctx, CORE_10313, m, m.getVolumeUnits(), m.getElementName(), m.getId()); isCheckValid = false; if (m.isSetAreaUnits()) boolean isUnitsValid = ValidationTools.checkUnit(ctx, m, m.getAreaUnits()); ValidationConstraint.logError(ctx, CORE_10313, m, m.getAreaUnits(), m.getElementName(), m.getId()); isCheckValid = false; if (m.isSetLengthUnits()) boolean isUnitsValid = ValidationTools.checkUnit(ctx, m, m.getLengthUnits()); ValidationConstraint.logError(ctx, CORE_10313, m, m.getLengthUnits(), m.getElementName(), m.getId()); isCheckValid = false; if (m.isSetTimeUnits())
private Model flattenModel(Model modelOfSubmodel) { flattenSBaseList(modelOfSubmodel, modelOfSubmodel.getListOfReactions()); flattenSBaseList(modelOfSubmodel, modelOfSubmodel.getListOfCompartments()); flattenSBaseList(modelOfSubmodel, modelOfSubmodel.getListOfConstraints()); flattenSBaseList(modelOfSubmodel, modelOfSubmodel.getListOfEvents()); flattenSBaseList(modelOfSubmodel, modelOfSubmodel.getListOfFunctionDefinitions()); flattenSBaseList(modelOfSubmodel, modelOfSubmodel.getListOfParameters()); flattenSBaseList(modelOfSubmodel, modelOfSubmodel.getListOfRules()); flattenSBaseList(modelOfSubmodel, modelOfSubmodel.getListOfSpecies()); flattenSBaseList(modelOfSubmodel, modelOfSubmodel.getListOfUnitDefinitions()); return modelOfSubmodel; }
if (model.isSetListOfCompartments()) { for (Compartment c : model.getListOfCompartments()) { if ((model.getLevel()==1) || !(c.isConstant())) { variable = new InnerNode<SBase>(c); variables.add(variable); if (model.isSetListOfSpecies()) { for (Species s : model.getListOfSpecies()) { if (!s.isConstant()) { variable = new InnerNode<SBase>(s); if (model.isSetListOfParameters()) { for (Parameter p : model.getListOfParameters()) { if (!p.isConstant()) { variable = new InnerNode<SBase>(p); if (model.isSetListOfReactions()) { for (Reaction r : model.getListOfReactions()) { variable = new InnerNode<SBase>(r); variables.add(variable); for (i = 0; i < model.getReactionCount(); i++) { Reaction r = model.getReaction(i); for (i = 0; i < model.getRuleCount(); i++) { equation = new InnerNode<SBase>(model.getRule(i)); Rule r = model.getRule(i); if (r instanceof RateRule) { equations.add(equation);
model.addExtension(GroupsConstants.namespaceURI, groupModelPlugin); GroupsModelPlugin extendeModel = (GroupsModelPlugin) model.getExtension(GroupsConstants.namespaceURI);
boolean checkL2 = (m.isSetListOfCompartments() && m.getCompartment(symbol) != null) || (m.isSetListOfSpecies() && m.getSpecies(symbol) != null) || (m.isSetListOfParameters() && m.getParameter(symbol) != null); SBase s = m.findUniqueSBase(symbol);
/** * Returns the number of {@link KineticLaw}s of this {@link Model}. * * @return the number of {@link KineticLaw}s of this {@link Model}. */ public int getKineticLawCount() { int count = 0; if (isSetListOfReactions()) { for (Reaction r : getListOfReactions()) { if (r.isSetKineticLaw()) { count++; } } } return count; }
if (node.isString()) { String id = node.toString(); SBase sbase = model.findNamedSBase(id); ArraysSBasePlugin arraysSBasePlugin = (ArraysSBasePlugin) sbase.getExtension(ArraysConstants.shortLabel); for (Dimension dim : arraysSBasePlugin.getListOfDimensions()) { String size = dim.getSize(); Parameter p = model.getParameter(size); if (p == null) { return false;