01: /**
02: * Objective Database Abstraction Layer (ODAL)
03: * Copyright (c) 2004, The ODAL Development Group
04: * All rights reserved.
05: * For definition of the ODAL Development Group please refer to LICENCE.txt file
06: *
07: * Distributable under LGPL license.
08: * See terms of license at gnu.org.
09: */package com.completex.objective.components.persistency.core;
10:
11: import com.completex.objective.components.persistency.ColumnType;
12: import com.completex.objective.components.persistency.type.TypeHandler;
13:
14: /**
15: * @author Gennady Krizhevsky
16: */
17: public interface TypeHandlerRegistry {
18: /**
19: * Registers default type handler for read and bind for given ColumnType.
20: * ColumnType.getName() is used as a key
21: *
22: * @param columnType ColumnType
23: * @param typeHandler TypeHandler
24: */
25: void registerTypeHandler(ColumnType columnType,
26: TypeHandler typeHandler);
27:
28: /**
29: * Registers TypeHandler only for bind. It will be used only if default
30: * type handler for read and bind is not found or the column type is not specified
31: *
32: * @param clazz Class
33: * @param typeHandler TypeHandler
34: */
35: void registerBindTypeHandler(Class clazz, TypeHandler typeHandler);
36:
37: /**
38: * Returnss TypeHandler only for bind by given class. It will be used only if default
39: * type handler for read and bind is not found or the column type is not specified.
40: * This method may never return null. If bind handler is not found it may return the default one.
41: * To check if type handlesr is registered use isRegisteredBindTypeHandler(Class clazz)
42: * method
43: *
44: * @param clazz Class
45: * @return TypeHandler only for bind. It will be used only if default
46: * type handler for read and bind is not found or the column type is not specified
47: */
48: TypeHandler getBindTypeHandler(Class clazz);
49:
50: /**
51: * Returns default type handler for read and bind for given ColumnType.
52: * This method may never return null. If bind handler is not found it may return the default one.
53: * To check if type handlesr is registered use isRegisteredTypeHandler(ColumnType columnType)
54: * method
55: *
56: * @param columnType
57: * @return default type handler for read and bind for given ColumnType
58: */
59: TypeHandler getTypeHandler(ColumnType columnType);
60:
61: /**
62: * Returns true if typeHandler is found by ColumnType.getName()
63: *
64: * @param columnType
65: * @return true if typeHandler is found by ColumnType.getName()
66: */
67: boolean isRegisteredTypeHandler(ColumnType columnType);
68:
69: /**
70: * Returns true if typeHandler is found by ColumnType.getName()
71: *
72: * @param clazz Class that has to be handled
73: * @return true if typeHandler is found by clazz
74: */
75: boolean isRegisteredBindTypeHandler(Class clazz);
76: }
|