Index: /trunk/DataStore/lib/DataStore/File.pm
===================================================================
--- /trunk/DataStore/lib/DataStore/File.pm	(revision 6614)
+++ /trunk/DataStore/lib/DataStore/File.pm	(revision 6615)
@@ -1,5 +1,5 @@
 # Copyright (C) 2006  Joshua Hoblitt
 #
-# $Id: File.pm,v 1.8 2006-03-16 21:57:29 jhoblitt Exp $
+# $Id: File.pm,v 1.9 2006-03-17 01:11:23 jhoblitt Exp $
 
 package DataStore::File;
@@ -15,4 +15,5 @@
 use Carp qw( carp );
 use DataStore::Response;
+use DataStore::Utils qw( $STD_FIELD $BYTE_FIELD $MD5_FIELD %KNOWN_FILE_TYPES );
 use Digest::MD5::File qw( file_md5_hex );
 use File::stat;
@@ -117,5 +118,5 @@
     validate(@_,
         {
-            uri             => {
+            uri     => {
                 type        => SCALAR,
                 callbacks   => {
@@ -124,8 +125,23 @@
                 },
             },
-            fileid      => 1,
-            bytes       => 1,
-            md5sum      => 1,
-            type        => 1,
+            fileid  => {
+                type        => SCALAR,
+                regex       => $STD_FIELD,
+            },
+            bytes   => {
+                type        => SCALAR,
+                regex       => $BYTE_FIELD,
+            },
+            md5sum  => {
+                type        => SCALAR,
+                regex       => $MD5_FIELD,
+            },
+            type    => {
+                type        => SCALAR,
+                callbacks   => {
+                    'is valid type' =>
+                        sub { exists $KNOWN_FILE_TYPES{$_[0]} },
+                },
+            },
         },
     );
Index: /trunk/DataStore/t/07_file.t
===================================================================
--- /trunk/DataStore/t/07_file.t	(revision 6614)
+++ /trunk/DataStore/t/07_file.t	(revision 6615)
@@ -3,5 +3,5 @@
 # Copyright (C) 2006  Joshua Hoblitt
 #
-# $Id: 07_file.t,v 1.2 2006-03-15 22:02:53 jhoblitt Exp $
+# $Id: 07_file.t,v 1.3 2006-03-17 01:11:23 jhoblitt Exp $
 
 use strict;
@@ -38,5 +38,5 @@
         bytes       => 12345,
         md5sum      => 'fe6a2b6564c0d4cfb3bbf1db813824ba',
-        type        => 'foo',
+        type        => 'chip',
     );
 
@@ -50,5 +50,5 @@
         bytes       => 12345,
         md5sum      => 'fe6a2b6564c0d4cfb3bbf1db813824ba',
-        type        => 'foo',
+        type        => 'chip',
         foo         => 1,
     );
@@ -117,5 +117,5 @@
         bytes       => 9,
         md5sum      => 'a0a6e1a375117c58d77221f10c5ce12e',
-        type        => 'foo',
+        type        => 'chip',
     );
 
@@ -131,5 +131,5 @@
         bytes       => 9,
         md5sum      => 'a0a6e1a375117c58d77221f10c5ce12e',
-        type        => 'foo',
+        type        => 'chip',
     );
 
@@ -154,5 +154,5 @@
         bytes       => 12345,
         md5sum      => 'fe6a2b6564c0d4cfb3bbf1db813824ba',
-        type        => 'foo',
+        type        => 'chip',
     );
     
@@ -168,5 +168,5 @@
         bytes       => 12345,
         md5sum      => 'fe6a2b6564c0d4cfb3bbf1db813824ba',
-        type        => 'foo',
+        type        => 'chip',
     );
     
