Package | Class | Deprecated
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.makumba
Interface DataTransformer

    public interface DataTransformer

Specifies interface for data transformation. Some of your application's class should implement this DataTransformer in order to be used by Makumba during DB operations.

In your db configuration file (e.g. `localhost_mysql_myapp.properties`) it should be specified with a line

      insert#<i>makumba.Type</i>=<i>yourClassThatImplementsDataTransformer</i>

to run your transformer (`yourClassThatImplementsDataTransformer`) on all the records of that makumba type (`makumba.Type`) before being inserted into the database.

### Example

      insert#<i>general.Person</i>=<i>PersonHook</i>

with a simple `DataTransformer` class `PersonHook`:

     import org.makumba.*;
     import java.util.*;

     public class PersonHook implements DataTransformer {
         public boolean transform(Dictionary d, Database db) {
             //we might want to make sure a name is all lowercase with capital initial:
             String n= (String)d.get("name");
             if(n!=null && n.trim().length()>2) {
                 d.put("name", n.substring(0,1).toUpperCase()+n.substring(1).toLowerCase());
                 return true
             } else {
                 return false;
             }
         }
     }

Would ensure that application writes only "properly capitalized" names to the DB, wherever in the application objects of type `general.Person` would be created.

Method Summary
`boolean` | `transform(Dictionary<String,Object> d, Transaction db)` Performs the data transformation.

Method Detail

### transform

    boolean transform(Dictionary<String,Object> d,
                      Transaction db)

  Performs the data transformation.

  Parameters:
    `d` - data to transform
    `db` - database
  Returns:
    true if specified database operation should be done (eg data transformed successfully or data is valid), false otherwise.

Package | Class | Deprecated
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Docs generated on 2009-02-25 14:20