xmlbeans-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From xmlbeans-...@xml.apache.org
Subject [Apache XMLBeans Wiki] New: PrePostSetFeature
Date Wed, 28 Apr 2004 00:16:02 GMT
   Date: 2004-04-27T17:16:02
   Editor: <>
   Wiki: Apache XMLBeans Wiki
   Page: PrePostSetFeature
   URL: http://wiki.apache.org/xmlbeans/PrePostSetFeature

   no comment

New Page:

== PrePostSetFeature ==

When the prepostset feature is enabled in a .xsdconfig file, pre and post calls to the handler
will be generated at the beginning and at the end of all the setter methods of the specifyed

=== Example ===

To enable this feature the .xsdconfig must contain the following:

<xb:config xmlns:xb="http://xml.apache.org/xmlbeans/2004/02/xbean/config">
    <xb:extension for="*">

The {{{extension}}} element specifies a set of xbeans (see ExtensionInterfacesFeature), for
this set of xbeans, in all the setter methods calls to the preSet and postSet handler methods
will be generated.

     * Sets the "config" element
    public void setConfig(org.apache.xml.xmlbeans.x2004.x02.xbean.config.ConfigDocument.Config
        synchronized (monitor())
            if ( myPackage.FooHandler.preSet(...) )
                ... store implementation code

The preSet method returns a boolean, if the result is:
 * true: the usual store code executes
 * false: the store code is skipped

If a handler that always returns false is used, it will prevent the modification of an xbean
through setters.

==== Signature ====

The handler specified in the {{{staticHandler}}} element must have the following two static

    public static boolean preSet(int opType, XmlObject xo, QName prop, boolean isAttr, int
        return true;  

    public static void postSet(int opType, XmlObject xo, QName propertyName, boolean isAttr,
int index)

Where the parameters are:
 * int opType - the type of the set operation, valid values are:
     * `org.apache.xmlbeans.impl.config.PrePostExtension.OPERATION_SET` - for set of an external
     * `org.apache.xmlbeans.impl.config.PrePostExtension.OPERATION_INSERT` - for creating
a new internal value
     * `org.apache.xmlbeans.impl.config.PrePostExtension.OPERATION_REMOVE` - for remove operations
 * `XmlObject xo` - the !XmlObject on which the setter was called
 * `QName propertyName` - the ``QName of the property to be set
 * `boolean isAttr` - true if property is an attribute, false if it's an element
 * `int index` - the index of the item to be set when the property allows several values (i.e.
maxOccurs > 1 )

=== Building ===

Same as building for ExtensionInterfacesFeature.

To unsubscribe, e-mail: xmlbeans-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xmlbeans-cvs-help@xml.apache.org

View raw message