View Javadoc

1   package fr.ove.openmath.jome.formaters.om;
2   
3   import fr.ove.utils.*;
4   import fr.ove.openmath.jome.model.*;
5   import fr.ove.openmath.jome.formaters.om.*;
6   
7   /***
8   * Formats the formula tree structure as its corresponding OpenMath object.<BR>
9   * This is the formater for the limits.
10  *
11  * @author © 2000 DIRAT Laurent
12  * @version 1.0 25/02/2000
13  */
14  public class LimitFormater implements Formater {
15      /***
16      * Returns the specified object formatted as a string.
17      * @param formatedObject the formatted object (for structured object, could represents the beginning).
18      * @param formaterRepository where the different other formaters are.
19      * @param obj the object to format.
20      */
21      public String format(String formatedObject, FormaterRepository formaterRepository, Object obj) {
22          OpenMathFormater omFormater = (OpenMathFormater) formaterRepository;
23          FormulaTreeStructure fts = (FormulaTreeStructure) obj;
24          
25          FormulaTreeStructure ftsChild;
26          Formater formater;
27          
28          int nbChildren = fts.getNbChildren();
29          
30          formatedObject += omFormater.writeStartApplication();
31          formatedObject += omFormater.writeSymbol("limit");
32              
33          ftsChild = (FormulaTreeStructure) fts.getChild(2).getChild(0);
34          String objectId = ftsChild.getResourceIdentifier();
35          formater = formaterRepository.getFormater(objectId);
36          formatedObject = formater.format(formatedObject, formaterRepository, ftsChild);
37          
38          formatedObject += omFormater.writeSymbol(fts.getResourceIdentifier());
39          
40          // CrČation du bind
41          formatedObject += omFormater.writeStartBinding();
42          formatedObject += omFormater.writeSymbol("lambda");
43          // On met la variable liČe.
44          formatedObject += omFormater.writeStartBoundVariables();
45          
46          ftsChild = (FormulaTreeStructure) fts.getChild(1);
47          objectId = ftsChild.getResourceIdentifier();
48          formater = formaterRepository.getFormater(objectId);
49          formatedObject = formater.format(formatedObject, formaterRepository, ftsChild);
50          
51          formatedObject += omFormater.writeEndBoundVariables();
52          
53          // On met maintenant l'objet du bind, i.e. l'argument.
54          ftsChild = (FormulaTreeStructure) fts.getChild(0);
55          objectId = ftsChild.getResourceIdentifier();
56          formater = formaterRepository.getFormater(objectId);
57          formatedObject = formater.format(formatedObject, formaterRepository, ftsChild);
58          
59          formatedObject += omFormater.writeEndBinding();
60          formatedObject += omFormater.writeEndApplication();
61          
62          return formatedObject;
63      }
64  }