Hello Thomas,

Here is the diff which I tested with trunk intake.

I an not sure how can I keep the 'null' state.


Thanks,

Youngho

//*********************************************

Index: src/java/org/apache/fulcrum/intake/model/Field.java
===================================================================
--- src/java/org/apache/fulcrum/intake/model/Field.java    (revision 1629357)
+++ src/java/org/apache/fulcrum/intake/model/Field.java    (working copy)
@@ -42,7 +42,7 @@
  * Base class for Intake generated input processing classes.
  *
  * @author <a href="mailto:[email protected]";>John McNally</a>
- * @author <a href="mailto:[email protected]>Daniel Rall</a>
+ * @author <a href="mailto:[email protected]";>Daniel Rall</a>
  * @author <a href="mailto:[email protected]";>Henning P. Schmiedehausen</a>
  * @author <a href="mailto:[email protected]";>Quinton McCombs</a>
  * @author <a href="mailto:[email protected]";>J&uuml;rgen Hoffmann</a>
Index: src/test/intake1.xml
===================================================================
--- src/test/intake1.xml    (revision 1629357)
+++ src/test/intake1.xml    (working copy)
@@ -56,4 +56,20 @@
             <rule name="invalidNumber">Not a number</rule>
         </field>
     </group>
+
+<group name="AttributeValue" key="attv" mapToObject="AttributeValue">
+        <field name="Id" key="id" type="long" mapToProperty="ValueId">
+           <rule name="mask" value="[0-9]+">intakeBadIdMessage</rule>
+           <rule name="required" value="false"></rule>
+        </field>
+        <field name="AttributeId" key="attid" type="int">
+            <rule name="mask" value="[0-9]+"></rule>
+            <rule name="required" value="true">Required</rule>
+        </field>
+        <field name="UserId" key="visid" type="int">
+           <rule name="mask" value="[0-9]+">intakeBadIdMessage</rule>
+           <rule name="required" value="false"></rule>
+        </field>
+</group>
+
 </input-data>
Index: src/test/org/apache/fulcrum/intake/IntakeTest.java
===================================================================
--- src/test/org/apache/fulcrum/intake/IntakeTest.java    (revision 1629357)
+++ src/test/org/apache/fulcrum/intake/IntakeTest.java    (working copy)
@@ -23,6 +23,7 @@

 import org.apache.fulcrum.intake.model.Field;
 import org.apache.fulcrum.intake.model.Group;
+import org.apache.fulcrum.intake.test.AttributeValue;
 import org.apache.fulcrum.intake.test.LoginForm;
 import org.apache.fulcrum.intake.validator.BooleanValidator;
 import org.apache.fulcrum.intake.validator.IntegerValidator;
@@ -255,4 +256,36 @@
             assertEquals("Invalid number message is wrong.", "Not a
number", ve.getMessage());
         }
     }
+
+    public void testEmptyNumberField() throws Exception
+    {
+        IntakeService is = (IntakeService) this.resolve(
IntakeService.class.getName() );
+        Group group = is.getGroup("AttributeValue");
+        assertNotNull(group);
+
+        ParserService ps = (ParserService) this.resolve(
ParserService.class.getName() );
+        ValueParser pp = ps.getParser(DefaultParameterParser.class);
+
+        pp.add("attv_0attid", "1");
+        group.init(pp);
+
+        Field<?> attributeField = group.get("AttributeId");
+        assertNotNull(attributeField);
+        assertEquals(1, attributeField.getValue());
+
+        Field<?> valueField = group.get("Id");
+        assertNull(valueField.getValue());
+
+        Field<?> userField = group.get("UserId");
+        assertNull(userField.getValue());
+
+        AttributeValue value = new AttributeValue();
+        assertTrue(group.isAllValid());
+        //
+        group.setProperties(value);
+
+        assertEquals(Integer.valueOf(1), value.getAttributeId());
+        assertNull(value.toString(), value.getValueId());
+        assertNull(value.toString(), value.getUserId());
+    }
 }
Index: src/test/org/apache/fulcrum/intake/test/AttributeValue.java
===================================================================
--- src/test/org/apache/fulcrum/intake/test/AttributeValue.java    (revision 0)
+++ src/test/org/apache/fulcrum/intake/test/AttributeValue.java
(working copy)
@@ -0,0 +1,75 @@
+package org.apache.fulcrum.intake.test;
+
+
+public class AttributeValue {
+
+    private Long valueId;
+
+    private Integer attributeId;
+
+    private Integer userId;
+
+  /**
+   * @return
+   */
+  public Long getValueId() {
+    return valueId;
+  }
+
+  /**
+   * @param userId
+   */
+  public void setValueId(Long valueId) {
+    this.valueId = valueId;
+  }
+
+  /**
+   * @return
+   */
+  public Integer getAttributeId() {
+    return attributeId;
+  }
+
+  /**
+   * @param attributeId
+   */
+  public void setAttributeId(Integer attributeId) {
+    this.attributeId = attributeId;
+  }
+
+  /**
+   * @return
+   */
+  public Integer getUserId() {
+    return userId;
+  }
+
+  /**
+   * @param userId
+   */
+  public void setUserId(Integer userId) {
+    this.userId = userId;
+  }
+
+  //****************************************
+  // primitive for intake
+  public void setValueId(long valueId) {
+      setValueId(Long.valueOf(valueId));
+  }
+  public void setAttributeId(int attributeId) {
+      setAttributeId(Integer.valueOf(attributeId));
+  }
+  public void setUserId(int userId) {
+      setUserId(Integer.valueOf(userId));
+  }
+  public String toString() {
+      final StringBuilder sb = new StringBuilder();
+      sb.append("ValueId ");
+      sb.append(this.valueId);
+      sb.append(", AttributeId ");
+      sb.append(this.attributeId);
+      sb.append(", UserId ");
+      sb.append(this.userId);
+      return sb.toString();
+  }
+}


2014-11-03 1:35 GMT+09:00 Thomas Vandahl <[email protected]>:
> On 31.10.14 04:26, Youngho Cho wrote:
>> Hello,
>>
>> I am migrating very old intake to current trunk version.
>>
>> I have a question about usage for 'null' number state.
>>
>> for example,
>>
>> I would like to keep 'null' state when input parameter doesn't have a
>> value for number field.
>>
>> But
>>
>> during the group.setProperties(OM) process
>> the empty field value set to '0' value of number.
>>
>> How can I keep 'null' state ?
>
> Could you please show me the relevant part of your intake.xml?
>
> Bye, Thomas.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to