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   * Format the function element.
10  *
11  * @author © 2000 DIRAT Laurent
12  * @version 1.0 07/01/2000
13  */
14  public class FunctionFormater 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          Function fts = (Function) obj;
24          
25          formatedObject += omFormater.writeStartApplication();
26          
27          // On rÈcupËre le nom de la fonction pour savoir si c'est une fonction dÈfinie ? l'aide d'un symbole ou pas.
28          // Attention, fts.getOperatorName() retourne le nom de la fonction, mais "(" y est collÈe.
29          // Il faut donc la supprimer.
30          // A voir si modif sur le modËle !!!
31          String objectId = fts.getTheOperator();
32          objectId = objectId.substring(0, objectId.length()-1);
33          
34          if (((OpenMathFormater) formaterRepository).getCdName(objectId) != null)
35              formatedObject += omFormater.writeSymbol(objectId);
36          else
37              formatedObject += omFormater.writeVariable(objectId);
38              
39          Formater formater = null;
40          FormulaTreeStructure ftsChild = null;
41          int nbChildren = fts.getNbChildren();
42          for (int i = 0; i < nbChildren; i++) {
43              ftsChild = (FormulaTreeStructure) fts.getChild(i);
44              objectId = ftsChild.getResourceIdentifier();
45              formater = formaterRepository.getFormater(objectId);
46              formatedObject = formater.format(formatedObject, formaterRepository, ftsChild);
47          }
48          
49          formatedObject += omFormater.writeEndApplication();
50          
51          return formatedObject;
52      }
53  }