|
From: <de...@us...> - 2012-10-05 20:18:18
|
Revision: 7718
http://fudaa.svn.sourceforge.net/fudaa/?rev=7718&view=rev
Author: deniger
Date: 2012-10-05 20:18:11 +0000 (Fri, 05 Oct 2012)
Log Message:
-----------
support fichier externe
Added Paths:
-----------
trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/converter/
trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/converter/AbstractPropertyToStringTransformer.java
trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/converter/BooleanToStringTransformer.java
trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/converter/ColorToStringTransformer.java
trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/converter/DoubleToStringTransformer.java
trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/converter/FloatToStringTransformer.java
trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/converter/FontToStringTransformer.java
trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/converter/IntegerToStringTransformer.java
trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/converter/Point2DDoubleArrayToStringTransformer.java
trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/converter/Point2DDoubleToStringTransformer.java
trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/converter/StringToStringTransformer.java
trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/converter/ToStringTransformerFactory.java
Copied: trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/converter/AbstractPropertyToStringTransformer.java (from rev 7578, trunk/soft/fudaa-crue/ui-common/src/main/java/org/fudaa/fudaa/crue/common/helper/PropertyToStringTransformer.java)
===================================================================
--- trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/converter/AbstractPropertyToStringTransformer.java (rev 0)
+++ trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/converter/AbstractPropertyToStringTransformer.java 2012-10-05 20:18:11 UTC (rev 7718)
@@ -0,0 +1,35 @@
+package org.fudaa.ctulu.converter;
+
+/**
+ *
+ * @author deniger ( genesis)
+ */
+public abstract class AbstractPropertyToStringTransformer<T> {
+
+ public String toString(T in) {
+ if (in == null) {
+ return "null";
+ }
+ return toStringSafe(in);
+ }
+
+ public abstract String toStringSafe(T in);
+
+ public abstract boolean isValidSafe(String in);
+
+ public boolean isValid(String in) {
+ if (in == null) {
+ return false;
+ }
+ return isValidSafe(in);
+ }
+
+ public T fromString(String in) {
+ if (in == null || "null".equals(in)) {
+ return null;
+ }
+ return fromStringSafe(in);
+ }
+
+ public abstract T fromStringSafe(String in);
+}
Added: trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/converter/BooleanToStringTransformer.java
===================================================================
--- trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/converter/BooleanToStringTransformer.java (rev 0)
+++ trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/converter/BooleanToStringTransformer.java 2012-10-05 20:18:11 UTC (rev 7718)
@@ -0,0 +1,35 @@
+/*
+ GPL 2
+ */
+package org.fudaa.ctulu.converter;
+
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+/**
+ *
+ * @author Frederic Deniger
+ */
+public class BooleanToStringTransformer extends AbstractPropertyToStringTransformer<Boolean> {
+
+ @Override
+ public Boolean fromStringSafe(String in) {
+ try {
+ return Boolean.valueOf(in);
+ } catch (NumberFormatException numberFormatException) {
+ Logger.getLogger(BooleanToStringTransformer.class.getName()).log(Level.INFO, "message {0}", numberFormatException);
+ }
+ return null;
+ }
+
+ @Override
+ public boolean isValidSafe(String in) {
+ return "false".equals(in) || "true".equals(in);
+ }
+
+ @Override
+ public String toStringSafe(Boolean in) {
+ return in.toString();
+ }
+
+}
Added: trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/converter/ColorToStringTransformer.java
===================================================================
--- trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/converter/ColorToStringTransformer.java (rev 0)
+++ trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/converter/ColorToStringTransformer.java 2012-10-05 20:18:11 UTC (rev 7718)
@@ -0,0 +1,67 @@
+/*
+ GPL 2
+ */
+package org.fudaa.ctulu.converter;
+
+import com.memoire.fu.FuLib;
+import java.awt.Color;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+/**
+ *
+ * @author Frederic Deniger
+ */
+public class ColorToStringTransformer extends AbstractPropertyToStringTransformer<Color> {
+
+ Map<String, Color> cache;
+
+ public ColorToStringTransformer() {
+ }
+
+ public ColorToStringTransformer(boolean useCache) {
+ if (useCache) {
+ cache = new HashMap<String, Color>();
+ }
+ }
+
+ @Override
+ public Color fromStringSafe(String in) {
+ if (cache != null) {
+ Color cached = cache.get(in);
+ if (cached != null) {
+ return cached;
+ }
+ }
+ String[] split = FuLib.split(in, ',');
+ if (split.length != 3) {
+ return null;
+ }
+ try {
+ int r = Integer.parseInt(split[0]);
+ int g = Integer.parseInt(split[1]);
+ int b = Integer.parseInt(split[2]);
+
+ final Color color = new Color(r, g, b);
+ if (cache != null) {
+ cache.put(in, color);
+ }
+ return color;
+ } catch (Exception exception) {
+ Logger.getLogger(ColorToStringTransformer.class.getName()).log(Level.INFO, "message {0}", exception);
+ }
+ return null;
+ }
+
+ @Override
+ public String toStringSafe(Color in) {
+ return in.getRed() + "," + in.getGreen() + "," + in.getBlue();
+ }
+
+ @Override
+ public boolean isValidSafe(String in) {
+ return fromString(in) != null;
+ }
+}
Added: trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/converter/DoubleToStringTransformer.java
===================================================================
--- trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/converter/DoubleToStringTransformer.java (rev 0)
+++ trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/converter/DoubleToStringTransformer.java 2012-10-05 20:18:11 UTC (rev 7718)
@@ -0,0 +1,40 @@
+/*
+ GPL 2
+ */
+package org.fudaa.ctulu.converter;
+
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+/**
+ *
+ * @author Frederic Deniger
+ */
+public class DoubleToStringTransformer extends AbstractPropertyToStringTransformer<Double> {
+
+ @Override
+ public Double fromStringSafe(String in) {
+ try {
+ return Double.parseDouble(in);
+ } catch (NumberFormatException numberFormatException) {
+ Logger.getLogger(DoubleToStringTransformer.class.getName()).log(Level.INFO, "message {0}", numberFormatException);
+ }
+ return null;
+ }
+
+ @Override
+ public boolean isValidSafe(String in) {
+ try {
+ Double.parseDouble(in);
+ return true;
+ } catch (NumberFormatException numberFormatException) {
+ }
+ return false;
+ }
+
+ @Override
+ public String toStringSafe(Double in) {
+ return in.toString();
+ }
+
+}
Added: trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/converter/FloatToStringTransformer.java
===================================================================
--- trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/converter/FloatToStringTransformer.java (rev 0)
+++ trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/converter/FloatToStringTransformer.java 2012-10-05 20:18:11 UTC (rev 7718)
@@ -0,0 +1,40 @@
+/*
+ GPL 2
+ */
+package org.fudaa.ctulu.converter;
+
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+/**
+ *
+ * @author Frederic Deniger
+ */
+public class FloatToStringTransformer extends AbstractPropertyToStringTransformer<Float> {
+
+ @Override
+ public Float fromStringSafe(String in) {
+ try {
+ return Float.parseFloat(in);
+ } catch (NumberFormatException numberFormatException) {
+ Logger.getLogger(FloatToStringTransformer.class.getName()).log(Level.INFO, "message {0}", numberFormatException);
+ }
+ return null;
+ }
+
+ @Override
+ public boolean isValidSafe(String in) {
+ try {
+ Float.parseFloat(in);
+ return true;
+ } catch (NumberFormatException numberFormatException) {
+ }
+ return false;
+ }
+
+ @Override
+ public String toStringSafe(Float in) {
+ return in.toString();
+ }
+
+}
Added: trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/converter/FontToStringTransformer.java
===================================================================
--- trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/converter/FontToStringTransformer.java (rev 0)
+++ trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/converter/FontToStringTransformer.java 2012-10-05 20:18:11 UTC (rev 7718)
@@ -0,0 +1,66 @@
+/*
+ GPL 2
+ */
+package org.fudaa.ctulu.converter;
+
+import com.memoire.fu.FuLib;
+import java.awt.Font;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+/**
+ *
+ * @author Frederic Deniger
+ */
+public class FontToStringTransformer extends AbstractPropertyToStringTransformer<Font> {
+
+ Map<String, Font> cache;
+
+ public FontToStringTransformer() {
+ }
+
+ public FontToStringTransformer(boolean useCache) {
+ if (useCache) {
+ cache = new HashMap<String, Font>();
+ }
+ }
+
+ @Override
+ public Font fromStringSafe(String in) {
+ if (cache != null) {
+ Font cached = cache.get(in);
+ if (cached != null) {
+ return cached;
+ }
+ }
+ String[] split = FuLib.split(in, ',');
+ if (split.length != 3) {
+ return null;
+ }
+ try {
+ String family = split[0];
+ int type = Integer.parseInt(split[1]);
+ int size = Integer.parseInt(split[2]);
+ final Font font = new Font(family, type, size);
+ if (cache != null) {
+ cache.put(in, font);
+ }
+ return font;
+ } catch (Exception exception) {
+ Logger.getLogger(FontToStringTransformer.class.getName()).log(Level.INFO, "message {0}", exception);
+ }
+ return null;
+ }
+
+ @Override
+ public String toStringSafe(Font in) {
+ return in.getFamily() + "," + in.getStyle() + "," + in.getSize();
+ }
+
+ @Override
+ public boolean isValidSafe(String in) {
+ return fromString(in) != null;
+ }
+}
Added: trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/converter/IntegerToStringTransformer.java
===================================================================
--- trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/converter/IntegerToStringTransformer.java (rev 0)
+++ trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/converter/IntegerToStringTransformer.java 2012-10-05 20:18:11 UTC (rev 7718)
@@ -0,0 +1,40 @@
+/*
+ GPL 2
+ */
+package org.fudaa.ctulu.converter;
+
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+/**
+ *
+ * @author Frederic Deniger
+ */
+public class IntegerToStringTransformer extends AbstractPropertyToStringTransformer<Integer> {
+
+ @Override
+ public Integer fromStringSafe(String in) {
+ try {
+ return Integer.parseInt(in);
+ } catch (NumberFormatException numberFormatException) {
+ Logger.getLogger(IntegerToStringTransformer.class.getName()).log(Level.INFO, "message {0}", numberFormatException);
+ }
+ return null;
+ }
+
+ @Override
+ public boolean isValidSafe(String in) {
+ try {
+ Integer.parseInt(in);
+ return true;
+ } catch (NumberFormatException numberFormatException) {
+ }
+ return false;
+ }
+
+ @Override
+ public String toStringSafe(Integer in) {
+ return in.toString();
+ }
+
+}
Added: trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/converter/Point2DDoubleArrayToStringTransformer.java
===================================================================
--- trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/converter/Point2DDoubleArrayToStringTransformer.java (rev 0)
+++ trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/converter/Point2DDoubleArrayToStringTransformer.java 2012-10-05 20:18:11 UTC (rev 7718)
@@ -0,0 +1,50 @@
+/*
+ GPL 2
+ */
+package org.fudaa.ctulu.converter;
+
+import com.memoire.fu.FuLib;
+import java.awt.geom.Point2D;
+
+/**
+ *
+ * @author Frederic Deniger
+ */
+public class Point2DDoubleArrayToStringTransformer extends AbstractPropertyToStringTransformer<Point2D.Double[]> {
+
+ @Override
+ public Point2D.Double[] fromStringSafe(String in) {
+ Point2DDoubleToStringTransformer elemTransformer = new Point2DDoubleToStringTransformer();
+ String[] splitArray = FuLib.split(in, ';');
+ Point2D.Double[] res = new Point2D.Double[splitArray.length];
+ int idx = 0;
+ for (String item : splitArray) {
+ Point2D.Double fromString = elemTransformer.fromString(item);
+ if (fromString == null) {
+ return null;
+ }
+ res[idx++] = fromString;
+ }
+ return res;
+ }
+
+ @Override
+ public boolean isValidSafe(String in) {
+ return fromString(in) != null;
+ }
+
+ @Override
+ public String toStringSafe(Point2D.Double[] in) {
+ Point2DDoubleToStringTransformer elemTransformer = new Point2DDoubleToStringTransformer();
+ StringBuilder builder = new StringBuilder();
+ boolean first = true;
+ for (Point2D.Double doubleValue : in) {
+ if (!first) {
+ builder.append(';');
+ }
+ first = false;
+ builder.append(elemTransformer.toString(doubleValue));
+ }
+ return builder.toString();
+ }
+}
Added: trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/converter/Point2DDoubleToStringTransformer.java
===================================================================
--- trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/converter/Point2DDoubleToStringTransformer.java (rev 0)
+++ trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/converter/Point2DDoubleToStringTransformer.java 2012-10-05 20:18:11 UTC (rev 7718)
@@ -0,0 +1,41 @@
+/*
+ GPL 2
+ */
+package org.fudaa.ctulu.converter;
+
+import com.memoire.fu.FuLib;
+import java.awt.geom.Point2D;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+/**
+ *
+ * @author Frederic Deniger
+ */
+public class Point2DDoubleToStringTransformer extends AbstractPropertyToStringTransformer<Point2D.Double> {
+
+ @Override
+ public Point2D.Double fromStringSafe(String in) {
+ String[] split = FuLib.split(in, ' ');
+ if (split != null && split.length == 2) {
+ try {
+ double x = Double.parseDouble(split[0]);
+ double y = Double.parseDouble(split[1]);
+ return new Point2D.Double(x, y);
+ } catch (NumberFormatException numberFormatException) {
+ Logger.getLogger(Point2DDoubleToStringTransformer.class.getName()).log(Level.INFO, "message {0}", numberFormatException);
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public boolean isValidSafe(String in) {
+ return fromString(in) != null;
+ }
+
+ @Override
+ public String toStringSafe(Point2D.Double in) {
+ return in.getX() + " " + in.getY();
+ }
+}
Added: trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/converter/StringToStringTransformer.java
===================================================================
--- trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/converter/StringToStringTransformer.java (rev 0)
+++ trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/converter/StringToStringTransformer.java 2012-10-05 20:18:11 UTC (rev 7718)
@@ -0,0 +1,26 @@
+/*
+ GPL 2
+ */
+package org.fudaa.ctulu.converter;
+
+/**
+ *
+ * @author Frederic Deniger
+ */
+public class StringToStringTransformer extends AbstractPropertyToStringTransformer<String> {
+
+ @Override
+ public String fromStringSafe(String in) {
+ return in;
+ }
+
+ @Override
+ public String toStringSafe(String in) {
+ return in;
+ }
+
+ @Override
+ public boolean isValidSafe(String in) {
+ return true;
+ }
+}
Added: trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/converter/ToStringTransformerFactory.java
===================================================================
--- trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/converter/ToStringTransformerFactory.java (rev 0)
+++ trunk/framework/ctulu-common/src/main/java/org/fudaa/ctulu/converter/ToStringTransformerFactory.java 2012-10-05 20:18:11 UTC (rev 7718)
@@ -0,0 +1,44 @@
+/*
+ GPL 2
+ */
+package org.fudaa.ctulu.converter;
+
+import java.awt.Color;
+import java.awt.Font;
+import java.awt.geom.Point2D;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ *
+ * @author Frederic Deniger
+ */
+public class ToStringTransformerFactory {
+
+ public static Map<Class, AbstractPropertyToStringTransformer> createTransformers() {
+ Map<Class, AbstractPropertyToStringTransformer> res = new HashMap<Class, AbstractPropertyToStringTransformer>();
+ res.put(String.class, new StringToStringTransformer());
+ res.put(Color.class, new ColorToStringTransformer());
+ res.put(Font.class, new FontToStringTransformer());
+ DoubleToStringTransformer doubleTransformer = new DoubleToStringTransformer();
+ res.put(Double.TYPE, doubleTransformer);
+ res.put(Double.class, doubleTransformer);
+ FloatToStringTransformer floatTransformer = new FloatToStringTransformer();
+ res.put(Float.TYPE, floatTransformer);
+ res.put(Float.class, floatTransformer);
+ IntegerToStringTransformer integerTransformer = new IntegerToStringTransformer();
+ res.put(Integer.TYPE, integerTransformer);
+ res.put(Integer.class, integerTransformer);
+ BooleanToStringTransformer booleanTransformer = new BooleanToStringTransformer();
+ res.put(Boolean.TYPE, booleanTransformer);
+ res.put(Boolean.class, booleanTransformer);
+ res.put(Point2D.Double.class, new Point2DDoubleToStringTransformer());
+ res.put(Point2D.Double[].class, new Point2DDoubleArrayToStringTransformer());
+ return res;
+ }
+
+ public static AbstractPropertyToStringTransformer<Point2D.Double[]> getPoint2dArrayTransformer() {
+ return ToStringTransformerFactory.createTransformers().get(Point2D.Double[].class);
+ }
+
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|