function ending with "_action" may be invoked via HTTP. It
isn't necessary anymore to define the action in a .hac file.
As a consequence, it's not possible anymore to invoke
templates (.hsp files) via HTTP. Thus, the exposeTemplates
option has become obsolete.
Implemented onRequest() function which is called on the
object handling the HTTP request before the actual action
is invoked.
- Groupby-Nodes with prototype now use an internal DbMapping object
with the specified prototype's DbMapping as parent mapping. This is
necessary because the groupby prototype may be used in different places
and with different relational constraints.
- Cleaned up and reduced duplcate code in Getters for Property Relations
and DbMappings. Now everything is based on getExactPropertyRelation(str)
and getPropertyRelation() methods.
- Replaced Hashtables with HashMaps for performance reasons after
noticing that they are accessed quite often within a single request.
HopObject properties a proxy object is created for
serialization. It is a Hashtable with two entries: id and prototype,
containing the the id and prototype name of the referenced
HopObject as string values.
object.
In checkConstraints(), if a filter property is set, never return
true if the object has been modified since it was fetched from
the database. This is the only way we can be sure that the
constraints are fulfilled without evaluating the filter expression.
parsed by the application instead of creating a vanilla DbMapping.
This makes it possible to actually define additional properties and
collections on groupby nodes.
type.properties file before returning its value as a macro.
Return an error message if the property is not defined, or if
the macro tried to access a private property (which currently
applies only to user passwords).
because the clearCache() function may have been called on
the object since last accessing the cache node.
implemented clearCache() method to reset the cache in the
wrapped object.
lets one clear (recreate) the HopObject's cache node.
createSkin now uses the application's skin cache. This is not
really much faster because caching and skin creation are
very similar in speed, but it should help reduce garbage collection.
encoding, prefix and suffix attributes can now be set for any
and all macros (not sure if this will create problems)
Macros handled by objects now check if a function called
handler_macro is defined. If so, the function is called.
Otherwise, the macro evaluates to a property of the object
with the handler name.
object
added methods to check if a function is defined for an object
and to retrieve a property. This is used by Skins and should
work for any object, be it HopObjects or scripted Java objects.