From e131a5fedb836e98b5a79d31a1b6ea323485a9e8 Mon Sep 17 00:00:00 2001
From: Thomas Oster <thomas.oster@rwth-aachen.de>
Date: Tue, 18 Sep 2012 14:41:52 +0200
Subject: [PATCH] getPropertyClass-Method for LaserPropertys

---
 .../FloatPowerSpeedFocusFrequencyProperty.java     | 10 ++++++++++
 src/com/t_oster/liblasercut/LaserProperty.java     | 10 ++++++++--
 .../PowerSpeedFocusFrequencyProperty.java          | 10 ++++++++++
 .../liblasercut/PowerSpeedFocusProperty.java       | 14 ++++++++++++++
 4 files changed, 42 insertions(+), 2 deletions(-)

diff --git a/src/com/t_oster/liblasercut/FloatPowerSpeedFocusFrequencyProperty.java b/src/com/t_oster/liblasercut/FloatPowerSpeedFocusFrequencyProperty.java
index 794a3b4..22cde99 100644
--- a/src/com/t_oster/liblasercut/FloatPowerSpeedFocusFrequencyProperty.java
+++ b/src/com/t_oster/liblasercut/FloatPowerSpeedFocusFrequencyProperty.java
@@ -225,4 +225,14 @@ public class FloatPowerSpeedFocusFrequencyProperty implements LaserProperty
   {
     return null;
   }
+
+  @Override
+  public Class getPropertyClass(String name)
+  {
+    if ("power".equals(name)||"speed".equals(name)||"focus".equals(name)||"frequency".equals(name))
+    {
+      return Float.class;
+    }
+    return null;
+  }
 }
diff --git a/src/com/t_oster/liblasercut/LaserProperty.java b/src/com/t_oster/liblasercut/LaserProperty.java
index 7970967..4d41e53 100644
--- a/src/com/t_oster/liblasercut/LaserProperty.java
+++ b/src/com/t_oster/liblasercut/LaserProperty.java
@@ -18,8 +18,6 @@
  **/
 package com.t_oster.liblasercut;
 
-import java.util.List;
-
 /**
  * The LaserProperty holds all the parameters for parts of the LaserJob.
  * The Frequency value is ignored for Engraving operations
@@ -46,6 +44,14 @@ public interface LaserProperty extends Cloneable
   
   public abstract void setProperty(String name, Object value);
   
+  /**
+   * If name is a name of a vaild property, return the class
+   * of this property's objects. else return null
+   * @param name
+   * @return 
+   */
+  public abstract Class getPropertyClass(String name);
+  
   /**
    * returns the minimum value of this property if it is
    * of type Double, Integer or Float and a minimum value
diff --git a/src/com/t_oster/liblasercut/PowerSpeedFocusFrequencyProperty.java b/src/com/t_oster/liblasercut/PowerSpeedFocusFrequencyProperty.java
index 5e66170..ecfebbc 100644
--- a/src/com/t_oster/liblasercut/PowerSpeedFocusFrequencyProperty.java
+++ b/src/com/t_oster/liblasercut/PowerSpeedFocusFrequencyProperty.java
@@ -118,6 +118,16 @@ public class PowerSpeedFocusFrequencyProperty extends PowerSpeedFocusProperty
     }
   }
   
+  @Override
+  public Class getPropertyClass(String name)
+  {
+    if ("frequency".equals(name))
+    {
+      return Integer.class;
+    }
+    return super.getPropertyClass(name);
+  }
+  
   @Override
   public PowerSpeedFocusFrequencyProperty clone()
   {
diff --git a/src/com/t_oster/liblasercut/PowerSpeedFocusProperty.java b/src/com/t_oster/liblasercut/PowerSpeedFocusProperty.java
index 2493e31..687179b 100644
--- a/src/com/t_oster/liblasercut/PowerSpeedFocusProperty.java
+++ b/src/com/t_oster/liblasercut/PowerSpeedFocusProperty.java
@@ -192,6 +192,20 @@ public class PowerSpeedFocusProperty implements LaserProperty
     }
   }
 
+  @Override 
+  public Class getPropertyClass(String name)
+  {
+    if ("power".equals(name)||"speed".equals(name))
+    {
+      return Integer.class;
+    }
+    else if ("focus".equals(name))
+    {
+      return Float.class;
+    }
+    return null;
+  }
+  
   @Override
   public Object[] getPossibleValues(String name)
   {
-- 
GitLab