01: /**
02: * Copyright (C) 2001-2004 France Telecom R&D
03: *
04: * This library is free software; you can redistribute it and/or
05: * modify it under the terms of the GNU Lesser General Public
06: * License as published by the Free Software Foundation; either
07: * version 2 of the License, or (at your option) any later version.
08: *
09: * This library is distributed in the hope that it will be useful,
10: * but WITHOUT ANY WARRANTY; without even the implied warranty of
11: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12: * Lesser General Public License for more details.
13: *
14: * You should have received a copy of the GNU Lesser General Public
15: * License along with this library; if not, write to the Free Software
16: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17: */package org.objectweb.speedo.api;
18:
19: /**
20: * This interface permits to the user to convert a value store a support into
21: * the value used in its persistent object. For example you can store a Date
22: * value as a long in your data support and view this value as a java.util.Date
23: * in youur application. It is the role of the persistent object provider to
24: * implement this interface for each field which the type does not match to the
25: * type into the data support. This converter can be only used for primitive
26: * type, ie the memory type cannot be a reference to a persistent object.
27: *
28: * @author S.Chassande-Barrioz
29: */
30: public interface UserFieldMapping {
31:
32: /**
33: * Retrieves the java type corresponding to the type into the data support.
34: * @return a Class object (never null).
35: */
36: Class getStorageType();
37:
38: /**
39: * Retrieves the java type corresponding to the type in memory.
40: * @return a Class object (never null).
41: */
42: Class getMemoryType();
43:
44: /**
45: * Converts a value from the data support into a value in memory
46: * @param storagevalue is the value store in the support (can be null).
47: * @return the value in memory (can be null).
48: */
49: Object toMemory(Object storagevalue);
50:
51: /**
52: * Converts a value from the data support into a value in memory
53: * @param memoryvalue the value in memory (can be null).
54: * @return is the value store in the support (can be null).
55: */
56: Object toStorage(Object memoryvalue);
57: }
|