/* * This file is part of the OdinMS Maple Story Server Copyright (C) 2008 ~ 2010 * Patrick Huy <patrick.huy@frz.cc> Matthias Butz <matze@odinms.de> Jan * Christian Meyer <vimes@odinms.de> * * This program is free software: you can redistribute it and/or modify it under * the terms of the GNU Affero General Public License version 3 as published by * the Free Software Foundation. You may not use, modify or distribute this * program under any other version of the GNU Affero General Public License. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more * details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package javastory.wz; import java.awt.Point; import java.awt.Rectangle; import java.awt.image.BufferedImage; public class WzDataTool { public static String getString(final WzData data) { return (String) data.getData(); } public static String getString(final WzData data, final String def) { if (data == null || data.getData() == null) { return def; } else { return (String) data.getData(); } } public static String getString(final String path, final WzData data) { return getString(data.getChildByPath(path)); } public static String getString(final String path, final WzData data, final String def) { return getString(data.getChildByPath(path), def); } public static double getDouble(final WzData data) { return ((Double) data.getData()).doubleValue(); } public static float getFloat(final WzData data) { return ((Float) data.getData()).floatValue(); } public static float getFloat(final WzData data, final float def) { if (data == null || data.getData() == null) { return def; } else { return ((Float) data.getData()).floatValue(); } } public static float getFloat(final String path, final WzData data) { return getFloat(data.getChildByPath(path)); } public static float getFloat(final String path, final WzData data, final float def) { return getFloat(data.getChildByPath(path), def); } public static int getInt(final WzData data) { return ((Integer) data.getData()).intValue(); } public static int getInt(final WzData data, final int def) { if (data == null || data.getData() == null) { return def; } else { if (data.getType() == WzDataType.STRING) { return Integer.parseInt(getString(data)); } else { return ((Integer) data.getData()).intValue(); } } } public static int getInt(final String path, final WzData data) { return getInt(data.getChildByPath(path)); } public static int getIntConvert(final WzData data) { if (data.getType() == WzDataType.STRING) { return Integer.parseInt(getString(data)); } else { return getInt(data); } } public static int getIntConvert(final String path, final WzData data) { final WzData d = data.getChildByPath(path); if (d.getType() == WzDataType.STRING) { return Integer.parseInt(getString(d)); } else { return getInt(d); } } public static int getInt(final String path, final WzData data, final int def) { return getInt(data.getChildByPath(path), def); } public static int getIntConvert(final String path, final WzData data, final int def) { final WzData d = data.getChildByPath(path); if (d == null) { return def; } if (d.getType() == WzDataType.STRING) { try { return Integer.parseInt(getString(d)); } catch (final NumberFormatException nfe) { return def; } } else { return getInt(d, def); } } public static BufferedImage getImage(final WzData data) { return ((WzCanvas) data.getData()).getImage(); } public static Point getVector(final WzData data) { return (Point) data.getData(); } public static Point getVector(final String path, final WzData data) { return getVector(data.getChildByPath(path)); } public static Point getVector(final String path, final WzData data, final Point def) { final WzData pointData = data.getChildByPath(path); if (pointData == null) { return def; } return getVector(pointData); } public static Point getPoint(final String xPath, final String yPath, final WzData data) { final int x = getInt(xPath, data); final int y = getInt(yPath, data); return new Point(x, y); } public static Rectangle getRectangle(final String x1Path, final String y1Path, final String x2Path, final String y2Path, final WzData data) { final int x1 = WzDataTool.getInt(x1Path, data); final int y1 = WzDataTool.getInt(y1Path, data); final int x2 = WzDataTool.getInt(x2Path, data); final int y2 = WzDataTool.getInt(y2Path, data); return new Rectangle(x1, y1, x2 - x1, y2 - y1); } public static String getFullDataPath(final WzData data) { String path = ""; WzDataEntity myData = data; while (myData != null) { path = myData.getName() + "/" + path; myData = myData.getParent(); } return path.substring(0, path.length() - 1); } }