defaultdatasqueezer.java

来自「欢迎使用 FastJsp 开发框架! 编译说明: * 若要生成Api J」· Java 代码 · 共 77 行

JAVA
77
字号
// Copyright 2005-2007 onetsoft.com
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package com.onetsoft.fastjsp;
import com.onetsoft.fastjsp.util.ResourceResolver;

import java.awt.*;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.StringTokenizer;

public class DefaultDataSqueezer implements DataSqueezer {

    private static String DATE_FORMAT = "yyyy/MM/dd";
    private static DateFormat dateFormatter = new SimpleDateFormat(DATE_FORMAT);

    public String squeeze(Object object) {
        if (object instanceof Date) {
            return dateFormatter.format((Date) object);
        }
        if (object instanceof Color) {
            Color color = (Color) object;
            return color.getRed() + "," + color.getGreen() + "," + color.getBlue();
        }
        if (object instanceof Class)
            return ((Class) object).getName();

        return object != null ? object.toString() : null;
    }

    public Object unsqueeze(Class type, String value) throws ClassNotFoundException {
        if (type.getName().equals("java.lang.String"))
            return value;
        if (type.getName().equals("boolean"))
            return Boolean.valueOf(value);
        if (type.getName().equals("int"))
            return Integer.valueOf(value);
        if (type.getName().equals("long"))
            return Long.valueOf(value);
        if (type.getName().equals("float"))
            return Float.valueOf(value);
        if (type.getName().equals("double"))
            return Double.valueOf(value);
        if (type.getName().equals("java.util.Date")) {
            try {
                return dateFormatter.parse(value);
            } catch (ParseException e) {
                /*ignored*/
            }
        }
        if (type.getName().equals("java.awt.Color")) {
            StringTokenizer tokens = new StringTokenizer(value, ",");
            int red = Integer.parseInt(tokens.nextToken());
            int green = Integer.parseInt(tokens.nextToken());
            int blue = Integer.parseInt(tokens.nextToken());
            return new Color(red, green, blue);
        }
        if (type.getName().equals("java.lang.Class"))
            return ResourceResolver.forName(value);
        else
            return null;
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?