KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > speedo > generation > mivisitor > FieldConverterVisitor


1 /**
2  * Copyright (C) 2001-2004 France Telecom R&D
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17  */

18 package org.objectweb.speedo.generation.mivisitor;
19
20 import org.objectweb.speedo.metadata.SpeedoField;
21 import org.objectweb.speedo.metadata.SpeedoExtension;
22 import org.objectweb.speedo.api.SpeedoException;
23 import org.objectweb.speedo.api.SpeedoProperties;
24 import org.objectweb.util.monolog.api.BasicLevel;
25
26 /**
27  * Add extensions FIELD_CONVERTER for various type:
28  * - java.sql.*
29  * - java.util.Locale
30  *
31  * @author S.Chassande-Barrioz
32  */

33 public class FieldConverterVisitor extends AbstractMetaInfoVisitor {
34
35     protected String JavaDoc getLoggerName() {
36         return super.getLoggerName() + ".fieldconverter";
37     }
38
39     public void visitField(SpeedoField sf) throws SpeedoException {
40         super.visitField(sf);
41         if (sf.desc.startsWith("Ljava/sql/")) {
42             SpeedoExtension se = new SpeedoExtension();
43             se.vendorName = SpeedoProperties.VENDOR_NAME;
44             se.key = SpeedoProperties.FIELD_CONVERTER;
45             se.value = "org.objectweb.speedo.lib.Sql";
46             se.value += sf.desc.substring(10, sf.desc.length()-1);
47             se.value += "FieldMapping";
48             logger.log(BasicLevel.DEBUG, "Use the converter '" + se.value
49                     + "' for the field '" + sf.name + "'");
50             sf.addExtension(se);
51         } else if (sf.desc.startsWith("Ljava/util/Locale")) {
52             SpeedoExtension se = new SpeedoExtension();
53             se.vendorName = SpeedoProperties.VENDOR_NAME;
54             se.key = SpeedoProperties.FIELD_CONVERTER;
55             se.value = "org.objectweb.speedo.lib.LocaleFieldMapping";
56             logger.log(BasicLevel.DEBUG, "Use the converter '" + se.value
57                     + "' for the field '" + sf.name + "'");
58             sf.addExtension(se);
59         }
60     }
61 }
62
Popular Tags