01: /*
02:
03: This software is OSI Certified Open Source Software.
04: OSI Certified is a certification mark of the Open Source Initiative.
05:
06: The license (Mozilla version 1.0) can be read at the MMBase site.
07: See http://www.MMBase.org/license
08:
09: */
10: package org.mmbase.storage;
11:
12: /**
13: * This class defines the attributes names used by the standard storage manager classes.
14: * Specific storage managers may ignore or add their own attributes.
15: *
16: * @author Pierre van Rooden
17: * @since MMBase-1.7
18: * @version $Id: Attributes.java,v 1.6 2005/10/26 13:28:08 michiel Exp $
19: */
20: public final class Attributes {
21:
22: /**
23: * Option: <code>disallowed-fields-case-sensitive</code>.
24: * if <code>true</code>, matching MMBase fieldnames with the disallowed fieldnames list is case-sensitive.
25: * By default, this option is <code>false</code>.
26: * Note that you can specify this attribute seperately, but the "case-sensitive" attribute
27: * of the "disallowedfields" tag overrides this attribute.
28: */
29: public static final String DISALLOWED_FIELD_CASE_SENSITIVE = "disallowed-fields-case-sensitive";
30:
31: /**
32: * Option: <code>enforce.disallowed.fields</code>.
33: * if <code>true</code>, the storage layer alwyas fails when encountering fieldnames that are reserved sql keywords,
34: * and for which no alternate name is available.
35: * If <code>false</code>, the layer will ignore the restriction and attempt to use the reserved word (leaving any
36: * errors to the underlying implementation). <br />
37: * By default, this option is <code>false</code>.
38: * Note that you can specify this attribute seperately, but the "enforce" attribute
39: * of the "disallowedfields" tag overrides this attribute.
40: */
41: public static final String ENFORCE_DISALLOWED_FIELDS = "enforce-disallowed-fields";
42:
43: /**
44: * Attribute: <code>storage-identifier-case</code>.
45: * if set, the storage identifiers for builders and fieldnames are converted to lowercase (if the value is 'lower') or
46: * uppercase (if the value is 'upper') before they are passed to the storage manager.
47: * If you specify another value this attribute is ignored.
48: * This ensures that field or builder names that differ only by case will return the same storage identifier
49: * (and thus point to the same storage element).
50: * You may need to set this value for some specific storage implementations. I.e. some databases expect table or fieldname to be
51: * case sensitive, or expect them to be uppercase.
52: * By default, this option is not set.
53: */
54: public static final String STORAGE_IDENTIFIER_CASE = "storage-identifier-case";
55:
56: /**
57: * Attribute: <code>default-storage-identifier-prefix</code>.
58: * A default prefix to place in front of diallowed fieldnames to make them suitabel for use in a storage layer.
59: * By default, this option is not set.
60: */
61: public static final String DEFAULT_STORAGE_IDENTIFIER_PREFIX = "default-storage-identifier-prefix";
62:
63: /**
64: * This attribute can be used to specify a CharTransformer class of which an instance will be
65: * used to filter strings which are set into the database.
66: * @since MMBase-1.7.4
67: */
68: public static final String SET_SURROGATOR = "storage-set-surrogator";
69:
70: /**
71: * This attribute can be used to specify a CharTransformer class of which an instance will be
72: * used to filter strings which are fetched from the database.
73: * @since MMBase-1.7.4
74: */
75: public static final String GET_SURROGATOR = "storage-get-surrogator";
76:
77: /**
78: * This attribute can be used to specify the maximum identifier length for
79: * table names and key names.
80: * @since MMBase-1.8.0
81: */
82: public static final String MAX_IDENTIFIER_LENGTH = "max-identifier-length";
83: }
|