KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > fr > emn > info > eaop > recoderaux > AuxListKit


1 /* ----------------------------------------------------------------------------
2  * EAOP 1.0, 2002-12-19
3  * (c) 2002 Remi Douence, Mario Sudholt; OBASCO group; EMN/INRIA; France
4  * THIS SOFTWARE IS PROVIDED AS IS AND WITHOUT ANY WARRANTY
5   -------------------------------------------------------------------------- */

6
7 package fr.emn.info.eaop.recoderaux;
8
9 import recoder.java.*;
10 import recoder.java.declaration.*;
11 import recoder.java.reference.*;
12 import recoder.list.*;
13 import recoder.service.*;
14
15 /**
16  * This class provides methods extending the Recoder's list subframework.
17  *
18  * @author MS
19  * @version 1.0
20  */

21 public class AuxListKit {
22     /**
23      * Calculates a Java class list expression from a
24      * syntactic parameter list.
25      */

26     public static String JavaDoc paramTs2argTs(ParameterDeclarationMutableList ps,
27                        SourceInfo si) {
28     String JavaDoc args = "";
29
30     for (int i=0; i<ps.size(); i++) {
31         ParameterDeclaration p = ps.getParameterDeclaration(i);
32         if (args != "") args = args + ", ";
33         TypeReference tr = p.getTypeReference();
34         args += AuxTypeKit.type2representingType(si.getType(tr));
35     }
36     
37     return "new Class[] { " + args + " }";
38     }
39
40     /**
41      * Calculates a Java argument list expression from a
42      * syntactic parameter list.
43      */

44     public static String JavaDoc params2argsObj(ParameterDeclarationMutableList ps) {
45     String JavaDoc args = "";
46
47     for (int i=0; i<ps.size(); i++) {
48         ParameterDeclaration p = ps.getParameterDeclaration(i);
49         VariableSpecification v = p.getVariableSpecification();
50         String JavaDoc vName = v.getName();
51         String JavaDoc tName = p.getTypeReference().getName();
52         if (AuxTypeKit.isPrimitive(tName))
53         vName = "new " + AuxTypeKit.primitiveT2objectT(tName)
54                 + "(" + vName + ")";
55         if (args != "") args = args + ", ";
56         args = args + vName;
57     }
58     
59     return "new Object[] { " + args + " }";
60     }
61
62     /**
63      * Calculates a Java argument list expression from a
64      * syntactic parameter list.
65      */

66     public static String JavaDoc paramsObj2args(ParameterDeclarationMutableList ps) {
67     String JavaDoc args = "";
68     String JavaDoc arg;
69
70     for (int i=0; i<ps.size(); i++) {
71         arg = "e1.args[" + i + "]";
72         ParameterDeclaration p = ps.getParameterDeclaration(i);
73         String JavaDoc tName = p.getTypeReference().getName();
74         if (AuxTypeKit.isPrimitive(tName))
75         arg = "((" + AuxTypeKit.primitiveT2objectT(tName) + ") "
76               + arg +")." + tName + "Value()";
77         else arg = "(" + tName + ") " + arg;
78         if (args != "") args += ", ";
79         args += arg;
80     }
81     
82     return args;
83     }
84
85     /**
86      * Calculates a Java argument list expression from a
87      * syntactic parameter list.
88      */

89     public static String JavaDoc params2args(ParameterDeclarationMutableList ps,
90                      SourceInfo si) {
91     String JavaDoc args = "";
92
93     for (int i=0; i<ps.size(); i++) {
94         ParameterDeclaration p = ps.getParameterDeclaration(i);
95         if (args != "") args = args + ", ";
96         TypeReference tr = p.getTypeReference();
97         args += AuxTypeKit.type2representingType(si.getType(tr));
98     }
99     
100     return "new Class[] { " + args + " }";
101     }
102
103     public static ExpressionMutableList
104     ParameterDeclarationList2ExpressionList (ParameterDeclarationList pl) {
105
106         ExpressionMutableList el = new ExpressionArrayList();
107     for (int i=0; i<pl.size(); i++) {
108         Identifier id =
109         pl.getParameterDeclaration(i).getVariableSpecification()
110                   .getIdentifier();
111         el.add(new VariableReference(id)) ;
112     }
113
114     return el;
115     }
116 }
117
Popular Tags