コード例 #1
0
 /**
  * Set the stoichiometry for a specified Renderable object.
  *
  * @param renderable the Renderable object.
  * @param value the new stoichiometry.
  */
 public void setStoichiometry(Renderable renderable, int value) {
   if (value <= 0)
     throw new IllegalArgumentException(
         "RenderableComplex.setStoichiometry(): value should be greater than 0.");
   Integer oldValue = (Integer) stoichiometries.get(renderable);
   if (oldValue != null && oldValue.intValue() == value) return;
   Renderable target = getTarget(renderable);
   stoichiometries.put(target, new Integer(value));
   // Have to make sure renderable is in the components
   for (Iterator it = components.iterator(); it.hasNext(); ) {
     Renderable r = (Renderable) it.next();
     if (r instanceof Shortcut) r = ((Shortcut) r).getTarget();
     if (r == target) return;
   }
   addComponent(renderable);
 }