Rev

Rev 2230 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | SVN | Bug Tracker

Rev 2230 Rev 2655
Line 2... Line 2...
2
 * @author      ETSI / STF462 / Alexandre Berge
2
 * @author      ETSI / STF462 / Alexandre Berge
3
 * @version     $URL: file:///D:/RepositoriesNew/ITS/trunk/javasrc/codec/org/etsi/ttcn/codec/CodecFactory.java $
3
 * @version     $URL: file:///D:/RepositoriesNew/ITS/trunk/javasrc/codec/org/etsi/ttcn/codec/CodecFactory.java $
4
 *              $Id: CodecFactory.java 2230 2015-06-03 09:11:02Z mullers $
4
 *              $Id: CodecFactory.java 2655 2017-01-26 10:46:08Z filatov $
5
 */
5
 */
6
package org.etsi.ttcn.codec;
6
package org.etsi.ttcn.codec;
7
7
8
import java.lang.reflect.Constructor;
8
import java.lang.reflect.Constructor;
9
import java.util.Map;
9
import java.util.Map;
10
import java.util.TreeMap;
10
import java.util.TreeMap;
11
11
-
 
12
import org.etsi.adapter.TERFactory;
12
import org.etsi.ttcn.tci.TciCDProvided;
13
import org.etsi.ttcn.tci.TciCDProvided;
13
import org.etsi.ttcn.tci.TciTypeClass;
14
import org.etsi.ttcn.tci.TciTypeClass;
14
import org.etsi.ttcn.codec.generic.Bitstring;
15
import org.etsi.ttcn.codec.generic.Bitstring;
15
import org.etsi.ttcn.codec.generic.Boolean;
16
import org.etsi.ttcn.codec.generic.Boolean;
16
import org.etsi.ttcn.codec.generic.Charstring;
17
import org.etsi.ttcn.codec.generic.Charstring;
Line 59... Line 60...
59
       
60
       
60
            // FIXME: dynamic
61
            // FIXME: dynamic
61
            // initialize additional codec plugins
62
            // initialize additional codec plugins
62
            org.etsi.ttcn.codec.its.adapter.Plugin.init();
63
            org.etsi.ttcn.codec.its.adapter.Plugin.init();
63
            org.etsi.ttcn.codec.its.uppertester.Plugin.init();
64
            org.etsi.ttcn.codec.its.uppertester.Plugin.init();
-
 
65
            org.etsi.ttcn.codec.its.configtester.Plugin.init();
64
            org.etsi.ttcn.codec.its.geonetworking.Plugin.init();
66
            org.etsi.ttcn.codec.its.geonetworking.Plugin.init();
65
            org.etsi.ttcn.codec.its.btp.Plugin.init();
67
            org.etsi.ttcn.codec.its.btp.Plugin.init();
66
            org.etsi.ttcn.codec.its.security.Plugin.init();
68
            org.etsi.ttcn.codec.its.security.Plugin.init();
67
            org.etsi.ttcn.codec.its.facilities.Plugin.init();
69
            org.etsi.ttcn.codec.its.facilities.Plugin.init();
68
            org.etsi.ttcn.codec.its.mapspat.Plugin.init();
-
 
69
        }
70
        }
70
       
71
       
71
    }
72
    }
72
73
73
    public TciCDProvided getExternalCodec(String encoding) {
74
    public TciCDProvided getExternalCodec(String encoding) {
Line 75... Line 76...
75
       
76
       
76
        if(encoding == null) {
77
        if(encoding == null) {
77
            return null;
78
            return null;
78
        }
79
        }
79
       
80
       
80
//        System.out.println("getExternalCodec: Search external codec for " + encoding);
81
        //TERFactory.getInstance().logDebug("getExternalCodec: Search external codec for " + encoding);
81
        codec = externalCodecs.get(encoding);
82
        codec = externalCodecs.get(encoding);
82
        if(codec != null) {
83
        if(codec != null) {
83
            System.out.print(String.format("%50s", encoding));
84
            //TERFactory.getInstance().logDebug(String.format("%50s", encoding));
84
            System.out.println(" ==> " + codec.getClass().getName());      
85
            //TERFactory.getInstance().logDebug(" ==> " + codec.getClass().getName());
-
 
86
            System.out.println(String.format("%50s", encoding) + " ==> " + codec.getClass().getName());
85
            return codec;
87
            return codec;
86
        }
88
        }
87
        return null;
89
        return null;
88
    }
90
    }
89
   
91
   
90
    public ICodec getCodec(MainCodec mainCodec, int classType, String encoding, String typeName) {
92
    public ICodec getCodec(MainCodec mainCodec, int classType, String encoding, String typeName) {
91
93
-
 
94
        //TERFactory.getInstance().logDebug(String.format("%50s", typeName + "(" + encoding + ")"));
92
        System.out.print(String.format("%50s", typeName + "(" + encoding + ")"));
95
        System.out.println(String.format("%50s", typeName + "(" + encoding + ")"));
93
        Class<? extends ICodec> cls = null;
96
        Class<? extends ICodec> cls = null;
94
        Class<?>[] ctorParams = {MainCodec.class};
97
        Class<?>[] ctorParams = {MainCodec.class};
95
98
-
 
99
        //TERFactory.getInstance().logDebug("getCodec: Search internal codec for " + classType + '/' + encoding + '/' + typeName);
96
        System.out.println("getCodec: Search internal codec for " + classType + '/' + encoding + '/' + typeName);
100
        System.out.println("getCodec: Search internal codec for " + classType + '/' + encoding + '/' + typeName);
97
        cls = codecs.get(classType + '/' + encoding + '/' + typeName);
101
        cls = codecs.get(classType + '/' + encoding + '/' + typeName);
98
        if(cls == null) {
102
        if(cls == null) {
99
            cls = codecs.get(classType + '/' + encoding + '/');
103
            cls = codecs.get(classType + '/' + encoding + '/');
100
        }
104
        }
101
        if(cls == null) {
105
        if(cls == null) {
102
            cls = codecs.get(classType + "//");
106
            cls = codecs.get(classType + "//");
103
        }
107
        }
104
108
105
        if(cls != null) {
109
        if(cls != null) {
-
 
110
            //TERFactory.getInstance().logDebug(" ==> " + cls.getName());
106
            System.out.println(" ==> " + cls.getName());
111
            System.out.println(" ==> " + cls.getName());
107
            try {
112
            try {
108
                Constructor<? extends ICodec> ctor = cls.getConstructor(ctorParams);
113
                Constructor<? extends ICodec> ctor = cls.getConstructor(ctorParams);
109
                return ctor.newInstance(mainCodec);
114
                return ctor.newInstance(mainCodec);
110
            }
115
            }
111
            catch (Exception ex) {
116
            catch (Exception ex) {
112
                ex.printStackTrace();
117
                ex.printStackTrace();
113
            }
118
            }
114
        }
119
        }
115
120
-
 
121
        //TERFactory.getInstance().logDebug(" ==> No codec found !");
116
        System.out.println(" ==> No codec found !");     
122
        System.out.println(" ==> No codec found !");
117
        return new Dummy(mainCodec);
123
        return new Dummy(mainCodec);
118
    }
124
    }
119
125
120
    public void setCodec(int classType, String encoding, String typeName, Class<? extends ICodec> codec) {
126
    public void setCodec(int classType, String encoding, String typeName, Class<? extends ICodec> codec) {
121
//        System.out.println("setCodec: add " + classType + "/" + encoding + "/" + typeName + "/" + codec);
127
        //TERFactory.getInstance().logDebug("setCodec: add " + classType + "/" + encoding + "/" + typeName + "/" + codec);
122
        codecs.put(classType + '/' + encoding + '/' + typeName, codec);
128
        codecs.put(classType + '/' + encoding + '/' + typeName, codec);
123
    }
129
    }
124
   
130
   
125
    public void setExternalCodec(String encoding, TciCDProvided codec) {
131
    public void setExternalCodec(String encoding, TciCDProvided codec) {
126
        externalCodecs.put(encoding, codec);
132
        externalCodecs.put(encoding, codec);