public TypeConvertorRegistry()

in src/main/java/org/apache/bsf/util/type/TypeConvertorRegistry.java [36:177]


  public TypeConvertorRegistry () {
    // no-op convertors: cvt from primitive wrappers to the object wrapper
    TypeConvertor tc = new TypeConvertor () {
      public Object convert (final Class from, final Class to, final Object obj) {
          return obj;
      }

      public String getCodeGenString() {
        return "(Class from, Class to, Object obj) {\n" +
               "return obj;\n" +
               "}";
      }
    };
    register (Boolean.class, boolean.class, tc);
    register (boolean.class, Boolean.class, tc);
    register (Byte.class, byte.class, tc);
    register (byte.class, Byte.class, tc);
    register (Character.class, char.class, tc);
    register (char.class, Character.class, tc);
    register (Short.class, short.class, tc);
    register (short.class, Short.class, tc);
    register (Integer.class, int.class, tc);
    register (int.class, Integer.class, tc);
    register (Long.class, long.class, tc);
    register (long.class, Long.class, tc);
    register (Float.class, float.class, tc);
    register (float.class, Float.class, tc);
    register (Double.class, double.class, tc);
    register (double.class, Double.class, tc);

    // object to string: the registry special cases this one as the backup
    // if the target is string and there is no special convertor available
    // otherwise
    tc = new TypeConvertor () {
      public Object convert (final Class from, final Class to, final Object obj) {
          return (obj == null) ? "(null)" : obj.toString ();
      }

        public String getCodeGenString() {
        return "(Class from, Class to, Object obj) {\n" +
               "return (obj == null) ? \"(null)\" : obj.toString ();\n" +
               "}";
        }
    };
    register (Object.class, String.class, tc);

    // convert strings to various primitives (both their object versions
    // and wrappers for primitive versions)
    tc = new TypeConvertor () {
      public Object convert (final Class from, final Class to, final Object obj) {
        final String str = (String) obj;
        if (to == Boolean.class || to == boolean.class) {
          return Boolean.valueOf (str);
        } else if (to == Byte.class || to == byte.class) {
          return Byte.valueOf (str);
        } else if (to == Character.class || to == char.class) {
          return Character.valueOf (str.charAt (0));
        } else if (to == Short.class || to == short.class) {
          return Short.valueOf (str);
        } else if (to == Integer.class || to == int.class) {
          return Integer.valueOf (str);
        } else if (to == Long.class || to == long.class) {
          return Long.valueOf (str);
        } else if (to == Float.class || to == float.class) {
          return Float.valueOf (str);
        } else if (to == Double.class || to == double.class) {
          return Double.valueOf (str);
        } else {
          return null;
        }
      }

        public String getCodeGenString() {
        return "(Class from, Class to, Object obj) {\n" +
               "String str = (String) obj;\n" +
               "if (to == Boolean.class || to == boolean.class) {\n" +
               "return Boolean.valueOf (str);\n" +
               "} else if (to == Byte.class || to == byte.class) {\n" +
               "return Byte.valueOf (str);\n" +
               "} else if (to == Character.class || to == char.class) {\n" +
               "return Character.valueOf (str.charAt (0));\n" +
               "} else if (to == Short.class || to == short.class) {\n" +
               "return Short.valueOf (str);\n" +
               "} else if (to == Integer.class || to == int.class) {\n" +
               "return Integer.valueOf (str);\n" +
               "} else if (to == Long.class || to == long.class) {\n" +
               "return Long.valueOf (str);\n" +
               "} else if (to == Float.class || to == float.class) {\n" +
               "return Float.valueOf (str);\n" +
               "} else if (to == Double.class || to == double.class) {\n" +
               "return Double.valueOf (str);\n" +
               "} else {\n" +
               "return null;\n" +
               "}\n" +
               "}";
      }
    };
    register (String.class, boolean.class, tc);
    register (String.class, Boolean.class, tc);
    register (String.class, byte.class, tc);
    register (String.class, Byte.class, tc);
    register (String.class, char.class, tc);
    register (String.class, Character.class, tc);
    register (String.class, short.class, tc);
    register (String.class, Short.class, tc);
    register (String.class, int.class, tc);
    register (String.class, Integer.class, tc);
    register (String.class, long.class, tc);
    register (String.class, Long.class, tc);
    register (String.class, float.class, tc);
    register (String.class, Float.class, tc);
    register (String.class, double.class, tc);
    register (String.class, Double.class, tc);

    // strings to fonts
    tc = new TypeConvertor () {
      public Object convert (final Class from, final Class to, final Object obj) {
          return Font.decode ((String) obj);
      }

      public String getCodeGenString() {
        return "(Class from, Class to, Object obj) {\n" +
               "return Font.decode ((String) obj);\n" +
               "}";
      }
    };
    register (String.class, Font.class, tc);

    // strings to colors
    tc = new TypeConvertor () {
      public Object convert (final Class from, final Class to, final Object obj) {
          return Color.decode ((String) obj);
      }

        public String getCodeGenString() {
        return "(Class from, Class to, Object obj) {\n" +
               "return Color.decode ((String) obj);\n" +
               "}";
        }
    };
    register (String.class, Color.class, tc);
  }