DictionarySet is an abstract class that supports the creation of new Set
+ types where the underlying data store is an IDictionary instance.
+
+
You can use any object that implements the IDictionary interface to hold set data.
+ You can define your own, or you can use one of the objects provided in the Framework.
+ The type of IDictionary you choose will affect both the performance and the behavior
+ of the Set using it.
+
+
To make a Set typed based on your own IDictionary, simply derive a
+ new class with a constructor that takes no parameters. Some Set implmentations
+ cannot be defined with a default constructor. If this is the case for your class,
+ you will need to override Clone() as well.
+
+
It is also standard practice that at least one of your constructors takes an ICollection or
+ an ISet as an argument.
+
+
+
+
A collection that contains no duplicate elements. This class models the mathematical
+ Set abstraction, and is the base class for all other Set implementations.
+ The order of elements in a set is dependant on (a)the data-structure implementation, and
+ (b)the implementation of the various Set methods, and thus is not guaranteed.
+
+
None of the Set implementations in this library are guranteed to be thread-safe
+ in any way unless wrapped in a SynchronizedSet.
+
+
The following table summarizes the binary operators that are supported by the Set class.
+
+
+ Operation
+ Description
+ Method
+ Operator
+
+
+ Union (OR)
+ Element included in result if it exists in either A OR B.
+ Union()
+ |
+
+
+ Intersection (AND)
+ Element included in result if it exists in both A AND B.
+ InterSect()
+ &
+
+
+ Exclusive Or (XOR)
+ Element included in result if it exists in one, but not both, of A and B.
+ ExclusiveOr()
+ ^
+
+
+ Minus (n/a)
+ Take all the elements in A. Now, if any of them exist in B, remove
+ them. Note that unlike the other operators, A - B is not the same as B - A.
+ Minus()
+ -
+
+
+
+
+
+
+
A collection that contains no duplicate elements. This interface models the mathematical
+ Set abstraction.
+ The order of elements in a set is dependant on (a)the data-structure implementation, and
+ (b)the implementation of the various Set methods, and thus is not guaranteed.
+
+
None of the Set implementations in this library are guranteed to be thread-safe
+ in any way unless wrapped in a SynchronizedSet.
+
+
The following table summarizes the binary operators that are supported by the Set class.
+
+
+ Operation
+ Description
+ Method
+
+
+ Union (OR)
+ Element included in result if it exists in either A OR B.
+ Union()
+
+
+ Intersection (AND)
+ Element included in result if it exists in both A AND B.
+ InterSect()
+
+
+ Exclusive Or (XOR)
+ Element included in result if it exists in one, but not both, of A and B.
+ ExclusiveOr()
+
+
+ Minus (n/a)
+ Take all the elements in A. Now, if any of them exist in B, remove
+ them. Note that unlike the other operators, A - B is not the same as B - A.
+ Minus()
+
+
+
+
+
+
+ Performs a "union" of the two sets, where all the elements
+ in both sets are present. That is, the element is included if it is in either a or b.
+ Neither this set nor the input set are modified during the operation. The return value
+ is a Clone() of this set with the extra elements added in.
+
+ A collection of elements.
+ A new Set containing the union of this Set with the specified collection.
+ Neither of the input objects is modified by the union.
+
+
+
+ Performs an "intersection" of the two sets, where only the elements
+ that are present in both sets remain. That is, the element is included if it exists in
+ both sets. The Intersect() operation does not modify the input sets. It returns
+ a Clone() of this set with the appropriate elements removed.
+
+ A set of elements.
+ The intersection of this set with a.
+
+
+
+ Performs a "minus" of set b from set a. This returns a set of all
+ the elements in set a, removing the elements that are also in set b.
+ The original sets are not modified during this operation. The result set is a Clone()
+ of this Set containing the elements from the operation.
+
+ A set of elements.
+ A set containing the elements from this set with the elements in a removed.
+
+
+
+ Performs an "exclusive-or" of the two sets, keeping only the elements that
+ are in one of the sets, but not in both. The original sets are not modified
+ during this operation. The result set is a Clone() of this set containing
+ the elements from the exclusive-or operation.
+
+ A set of elements.
+ A set containing the result of a ^ b.
+
+
+
+ Returns if the set contains all the elements in the specified collection.
+
+ A collection of objects.
+ if the set contains all the elements in the specified collection, otherwise.
+
+
+
+ Adds the specified element to this set if it is not already present.
+
+ The object to add to the set.
+ is the object was added, if it was already present.
+
+
+
+ Adds all the elements in the specified collection to the set if they are not already present.
+
+ A collection of objects to add to the set.
+ is the set changed as a result of this operation, if not.
+
+
+
+ Remove all the specified elements from this set, if they exist in this set.
+
+ A collection of elements to remove.
+ if the set was modified as a result of this operation.
+
+
+
+ Retains only the elements in this set that are contained in the specified collection.
+
+ Collection that defines the set of elements to be retained.
+ if this set changed as a result of this operation.
+
+
+
+ Returns if this set contains no elements.
+
+
+
+
+
A collection that contains no duplicate elements. This interface models the mathematical
+ Set abstraction.
+ The order of elements in a set is dependant on (a)the data-structure implementation, and
+ (b)the implementation of the various Set methods, and thus is not guaranteed.
+
+
None of the Set implementations in this library are guranteed to be thread-safe
+ in any way unless wrapped in a SynchronizedSet.
+
+
The following table summarizes the binary operators that are supported by the Set class.
+
+
+ Operation
+ Description
+ Method
+
+
+ Union (OR)
+ Element included in result if it exists in either A OR B.
+ Union()
+
+
+ Intersection (AND)
+ Element included in result if it exists in both A AND B.
+ InterSect()
+
+
+ Exclusive Or (XOR)
+ Element included in result if it exists in one, but not both, of A and B.
+ ExclusiveOr()
+
+
+ Minus (n/a)
+ Take all the elements in A. Now, if any of them exist in B, remove
+ them. Note that unlike the other operators, A - B is not the same as B - A.
+ Minus()
+
+
+
+
+
+
+ Performs a "union" of the two sets, where all the elements
+ in both sets are present. That is, the element is included if it is in either a or b.
+ Neither this set nor the input set are modified during the operation. The return value
+ is a Clone() of this set with the extra elements added in.
+
+ A collection of elements.
+ A new Set containing the union of this Set with the specified collection.
+ Neither of the input objects is modified by the union.
+
+
+
+ Performs an "intersection" of the two sets, where only the elements
+ that are present in both sets remain. That is, the element is included if it exists in
+ both sets. The Intersect() operation does not modify the input sets. It returns
+ a Clone() of this set with the appropriate elements removed.
+
+ A set of elements.
+ The intersection of this set with a.
+
+
+
+ Performs a "minus" of set b from set a. This returns a set of all
+ the elements in set a, removing the elements that are also in set b.
+ The original sets are not modified during this operation. The result set is a Clone()
+ of this Set containing the elements from the operation.
+
+ A set of elements.
+ A set containing the elements from this set with the elements in a removed.
+
+
+
+ Performs an "exclusive-or" of the two sets, keeping only the elements that
+ are in one of the sets, but not in both. The original sets are not modified
+ during this operation. The result set is a Clone() of this set containing
+ the elements from the exclusive-or operation.
+
+ A set of elements.
+ A set containing the result of a ^ b.
+
+
+
+ Returns if this set contains the specified element.
+
+ The element to look for.
+ if this set contains the specified element, otherwise.
+
+
+
+ Returns if the set contains all the elements in the specified collection.
+
+ A collection of objects.
+ if the set contains all the elements in the specified collection, otherwise.
+
+
+
+ Adds the specified element to this set if it is not already present.
+
+ The object to add to the set.
+ is the object was added, if it was already present.
+
+
+
+ Adds all the elements in the specified collection to the set if they are not already present.
+
+ A collection of objects to add to the set.
+ is the set changed as a result of this operation, if not.
+
+
+
+ Removes the specified element from the set.
+
+ The element to be removed.
+ if the set contained the specified element, otherwise.
+
+
+
+ Remove all the specified elements from this set, if they exist in this set.
+
+ A collection of elements to remove.
+ if the set was modified as a result of this operation.
+
+
+
+ Retains only the elements in this set that are contained in the specified collection.
+
+ Collection that defines the set of elements to be retained.
+ if this set changed as a result of this operation.
+
+
+
+ Removes all objects from the set.
+
+
+
+
+ Returns if this set contains no elements.
+
+
+
+
+ Performs a "union" of the two sets, where all the elements
+ in both sets are present. That is, the element is included if it is in either a or b.
+ Neither this set nor the input set are modified during the operation. The return value
+ is a Clone() of this set with the extra elements added in.
+
+ A collection of elements.
+ A new Set containing the union of this Set with the specified collection.
+ Neither of the input objects is modified by the union.
+
+
+
+ Performs a "union" of two sets, where all the elements
+ in both are present. That is, the element is included if it is in either a or b.
+ The return value is a Clone() of one of the sets (a if it is not ) with elements of the other set
+ added in. Neither of the input sets is modified by the operation.
+
+ A set of elements.
+ A set of elements.
+ A set containing the union of the input sets. if both sets are .
+
+
+
+ Performs a "union" of two sets, where all the elements
+ in both are present. That is, the element is included if it is in either a or b.
+ The return value is a Clone() of one of the sets (a if it is not ) with elements of the other set
+ added in. Neither of the input sets is modified by the operation.
+
+ A set of elements.
+ A set of elements.
+ A set containing the union of the input sets. if both sets are .
+
+
+
+ Performs an "intersection" of the two sets, where only the elements
+ that are present in both sets remain. That is, the element is included if it exists in
+ both sets. The Intersect() operation does not modify the input sets. It returns
+ a Clone() of this set with the appropriate elements removed.
+
+ A set of elements.
+ The intersection of this set with a.
+
+
+
+ Performs an "intersection" of the two sets, where only the elements
+ that are present in both sets remain. That is, the element is included only if it exists in
+ both a and b. Neither input object is modified by the operation.
+ The result object is a Clone() of one of the input objects (a if it is not ) containing the
+ elements from the intersect operation.
+
+ A set of elements.
+ A set of elements.
+ The intersection of the two input sets. if both sets are .
+
+
+
+ Performs an "intersection" of the two sets, where only the elements
+ that are present in both sets remain. That is, the element is included only if it exists in
+ both a and b. Neither input object is modified by the operation.
+ The result object is a Clone() of one of the input objects (a if it is not ) containing the
+ elements from the intersect operation.
+
+ A set of elements.
+ A set of elements.
+ The intersection of the two input sets. if both sets are .
+
+
+
+ Performs a "minus" of set b from set a. This returns a set of all
+ the elements in set a, removing the elements that are also in set b.
+ The original sets are not modified during this operation. The result set is a Clone()
+ of this Set containing the elements from the operation.
+
+ A set of elements.
+ A set containing the elements from this set with the elements in a removed.
+
+
+
+ Performs a "minus" of set b from set a. This returns a set of all
+ the elements in set a, removing the elements that are also in set b.
+ The original sets are not modified during this operation. The result set is a Clone()
+ of set a containing the elements from the operation.
+
+ A set of elements.
+ A set of elements.
+ A set containing A - B elements. if a is .
+
+
+
+ Performs a "minus" of set b from set a. This returns a set of all
+ the elements in set a, removing the elements that are also in set b.
+ The original sets are not modified during this operation. The result set is a Clone()
+ of set a containing the elements from the operation.
+
+ A set of elements.
+ A set of elements.
+ A set containing A - B elements. if a is .
+
+
+
+ Performs an "exclusive-or" of the two sets, keeping only the elements that
+ are in one of the sets, but not in both. The original sets are not modified
+ during this operation. The result set is a Clone() of this set containing
+ the elements from the exclusive-or operation.
+
+ A set of elements.
+ A set containing the result of a ^ b.
+
+
+
+ Performs an "exclusive-or" of the two sets, keeping only the elements that
+ are in one of the sets, but not in both. The original sets are not modified
+ during this operation. The result set is a Clone() of one of the sets
+ (a if it is not ) containing
+ the elements from the exclusive-or operation.
+
+ A set of elements.
+ A set of elements.
+ A set containing the result of a ^ b. if both sets are .
+
+
+
+ Performs an "exclusive-or" of the two sets, keeping only the elements that
+ are in one of the sets, but not in both. The original sets are not modified
+ during this operation. The result set is a Clone() of one of the sets
+ (a if it is not ) containing
+ the elements from the exclusive-or operation.
+
+ A set of elements.
+ A set of elements.
+ A set containing the result of a ^ b. if both sets are .
+
+
+
+ Adds the specified element to this set if it is not already present.
+
+ The object to add to the set.
+ is the object was added, if it was already present.
+
+
+
+ Adds all the elements in the specified collection to the set if they are not already present.
+
+ A collection of objects to add to the set.
+ is the set changed as a result of this operation, if not.
+
+
+
+ Removes all objects from the set.
+
+
+
+
+ Returns if this set contains the specified element.
+
+ The element to look for.
+ if this set contains the specified element, otherwise.
+
+
+
+ Returns if the set contains all the elements in the specified collection.
+
+ A collection of objects.
+ if the set contains all the elements in the specified collection, otherwise.
+
+
+
+ Removes the specified element from the set.
+
+ The element to be removed.
+ if the set contained the specified element, otherwise.
+
+
+
+ Remove all the specified elements from this set, if they exist in this set.
+
+ A collection of elements to remove.
+ if the set was modified as a result of this operation.
+
+
+
+ Retains only the elements in this set that are contained in the specified collection.
+
+ Collection that defines the set of elements to be retained.
+ if this set changed as a result of this operation.
+
+
+
+ Returns a clone of the Set instance. This will work for derived Set
+ classes if the derived class implements a constructor that takes no arguments.
+
+ A clone of this object.
+
+
+
+ Copies the elements in the Set to an array. The type of array needs
+ to be compatible with the objects in the Set, obviously.
+
+ An array that will be the target of the copy operation.
+ The zero-based index where copying will start.
+
+
+
+ Gets an enumerator for the elements in the Set.
+
+ An IEnumerator over the elements in the Set.
+
+
+
+ Performs CopyTo when called trhough non-generic ISet (ICollection) interface
+
+
+
+
+
+
+ Performs Union when called trhough non-generic ISet interface
+
+
+
+
+
+
+ Performs Minus when called trhough non-generic ISet interface
+
+
+
+
+
+
+ Performs Intersect when called trhough non-generic ISet interface
+
+
+
+
+
+
+ Performs ExclusiveOr when called trhough non-generic ISet interface
+
+
+
+
+
+
+ Returns if this set contains no elements.
+
+
+
+
+ The number of elements currently contained in this collection.
+
+
+
+
+ Returns if the Set is synchronized across threads. Note that
+ enumeration is inherently not thread-safe. Use the SyncRoot to lock the
+ object during enumeration.
+
+
+
+
+ An object that can be used to synchronize this collection to make it thread-safe.
+ When implementing this, if your object uses a base object, like an IDictionary,
+ or anything that has a SyncRoot, return that object instead of "this".
+
+
+
+
+ Indicates whether the given instance is read-only or not
+
+
+ if the ISet is read-only; otherwise, .
+ In the default implementation of Set, this property always returns false.
+
+
+
+
+ Provides the storage for elements in the Set, stored as the key-set
+ of the IDictionary object. Set this object in the constructor
+ if you create your own Set class.
+
+
+
+
+ Adds the specified element to this set if it is not already present.
+
+ The to add to the set.
+ is the object was added, if it was already present.
+
+
+
+ Adds all the elements in the specified collection to the set if they are not already present.
+
+ A collection of objects to add to the set.
+ is the set changed as a result of this operation, if not.
+
+
+
+ Removes all objects from the set.
+
+
+
+
+ Returns if this set contains the specified element.
+
+ The element to look for.
+ if this set contains the specified element, otherwise.
+
+
+
+ Returns if the set contains all the elements in the specified collection.
+
+ A collection of objects.
+ if the set contains all the elements in the specified collection, otherwise.
+
+
+
+ Removes the specified element from the set.
+
+ The element to be removed.
+ if the set contained the specified element, otherwise.
+
+
+
+ Remove all the specified elements from this set, if they exist in this set.
+
+ A collection of elements to remove.
+ if the set was modified as a result of this operation.
+
+
+
+ Retains only the elements in this set that are contained in the specified collection.
+
+ Collection that defines the set of elements to be retained.
+ if this set changed as a result of this operation.
+
+
+
+ Copies the elements in the Set to an array of T. The type of array needs
+ to be compatible with the objects in the Set, obviously.
+
+ An array that will be the target of the copy operation.
+ The zero-based index where copying will start.
+
+
+
+ Gets an enumerator for the elements in the Set.
+
+ An IEnumerator over the elements in the Set.
+
+
+
+ Copies the elements in the Set to an array. The type of array needs
+ to be compatible with the objects in the Set, obviously. Needed for
+ non-generic ISet methods implementation
+
+ An array that will be the target of the copy operation.
+ The zero-based index where copying will start.
+
+
+
+ The placeholder object used as the value for the IDictionary instance.
+
+
+ There is a single instance of this object globally, used for all Sets.
+
+
+
+
+ Returns if this set contains no elements.
+
+
+
+
+ The number of elements contained in this collection.
+
+
+
+
+ None of the objects based on DictionarySet are synchronized. Use the
+ SyncRoot property instead.
+
+
+
+
+ Returns an object that can be used to synchronize the Set between threads.
+
+
+
+
+ Indicates wether the Set is read-only or not
+
+
+
+
+ Implements a Set based on a Dictionary (which is equivalent of
+ non-genric HashTable) This will give the best lookup, add, and remove
+ performance for very large data-sets, but iteration will occur in no particular order.
+
+
+
+
+ Creates a new set instance based on a Dictinary.
+
+
+
+
+ Creates a new set instance based on a Dictinary and
+ initializes it based on a collection of elements.
+
+ A collection of elements that defines the initial set contents.
+
+
+
+
Implements an immutable (read-only) Set wrapper.
+
Although this is advertised as immutable, it really isn't. Anyone with access to the
+ basisSet can still change the data-set. So GetHashCode() is not implemented
+ for this Set, as is the case for all Set implementations in this library.
+ This design decision was based on the efficiency of not having to Clone() the
+ basisSet every time you wrap a mutable Set.
+
+
+
+
+ Constructs an immutable (read-only) Set wrapper.
+
+ The Set that is wrapped.
+
+
+
+ Adds the specified element to this set if it is not already present.
+
+ The object to add to the set.
+ nothing
+ is always thrown
+
+
+
+ Adds all the elements in the specified collection to the set if they are not already present.
+
+ A collection of objects to add to the set.
+ nothing
+ is always thrown
+
+
+
+ Removes all objects from the set.
+
+ is always thrown
+
+
+
+ Returns if this set contains the specified element.
+
+ The element to look for.
+ if this set contains the specified element, otherwise.
+
+
+
+ Returns if the set contains all the elements in the specified collection.
+
+ A collection of objects.
+ if the set contains all the elements in the specified collection, otherwise.
+
+
+
+ Removes the specified element from the set.
+
+ The element to be removed.
+ nothing
+ is always thrown
+
+
+
+ Remove all the specified elements from this set, if they exist in this set.
+
+ A collection of elements to remove.
+ nothing
+ is always thrown
+
+
+
+ Retains only the elements in this set that are contained in the specified collection.
+
+ Collection that defines the set of elements to be retained.
+ nothing
+ is always thrown
+
+
+
+ Copies the elements in the Set to an array of T. The type of array needs
+ to be compatible with the objects in the Set, obviously.
+
+ An array that will be the target of the copy operation.
+ The zero-based index where copying will start.
+
+
+
+ Gets an enumerator for the elements in the Set.
+
+ An IEnumerator over the elements in the Set.
+
+
+
+ Returns a clone of the Set instance.
+
+ A clone of this object.
+
+
+
+ Performs a "union" of the two sets, where all the elements
+ in both sets are present. That is, the element is included if it is in either a or b.
+ Neither this set nor the input set are modified during the operation. The return value
+ is a Clone() of this set with the extra elements added in.
+
+ A collection of elements.
+ A new Set containing the union of this Set with the specified collection.
+ Neither of the input objects is modified by the union.
+
+
+
+ Performs an "intersection" of the two sets, where only the elements
+ that are present in both sets remain. That is, the element is included if it exists in
+ both sets. The Intersect() operation does not modify the input sets. It returns
+ a Clone() of this set with the appropriate elements removed.
+
+ A set of elements.
+ The intersection of this set with a.
+
+
+
+ Performs a "minus" of set b from set a. This returns a set of all
+ the elements in set a, removing the elements that are also in set b.
+ The original sets are not modified during this operation. The result set is a Clone()
+ of this Set containing the elements from the operation.
+
+ A set of elements.
+ A set containing the elements from this set with the elements in a removed.
+
+
+
+ Performs an "exclusive-or" of the two sets, keeping only the elements that
+ are in one of the sets, but not in both. The original sets are not modified
+ during this operation. The result set is a Clone() of this set containing
+ the elements from the exclusive-or operation.
+
+ A set of elements.
+ A set containing the result of a ^ b.
+
+
+
+ Performs CopyTo when called trhough non-generic ISet (ICollection) interface
+
+
+
+
+
+
+ Performs Union when called trhough non-generic ISet interface
+
+
+
+
+
+
+ Performs Minus when called trhough non-generic ISet interface
+
+
+
+
+
+
+ Performs Intersect when called trhough non-generic ISet interface
+
+
+
+
+
+
+ Performs ExclusiveOr when called trhough non-generic ISet interface
+
+
+
+
+
+
+ Returns if this set contains no elements.
+
+
+
+
+ The number of elements contained in this collection.
+
+
+
+
+ Returns an object that can be used to synchronize use of the Set across threads.
+
+
+
+
+ Returns an object that can be used to synchronize the Set between threads.
+
+
+
+
+ Indicates that the given instance is read-only
+
+
+
+
+ Implements a Set based on a sorted tree. This gives good performance for operations on very
+ large data-sets, though not as good - asymptotically - as a HashedSet. However, iteration
+ occurs in order. Elements that you put into this type of collection must implement IComparable,
+ and they must actually be comparable. You can't mix string and int values, for example.
+
+
+
+
+ Creates a new set instance based on a sorted tree.
+
+
+
+
+ Creates a new set instance based on a sorted tree.
+
+ The to use for sorting.
+
+
+
+ Creates a new set instance based on a sorted tree and
+ initializes it based on a collection of elements.
+
+ A collection of elements that defines the initial set contents.
+
+
+
+ Creates a new set instance based on a sorted tree and
+ initializes it based on a collection of elements.
+
+ A collection of elements that defines the initial set contents.
+
+
+
+ Creates a new set instance based on a sorted tree and
+ initializes it based on a collection of elements.
+
+ A collection of elements that defines the initial set contents.
+ The to use for sorting.
+
+
+
+
Implements a thread-safe Set wrapper. The implementation is extremely conservative,
+ serializing critical sections to prevent possible deadlocks, and locking on everything.
+ The one exception is for enumeration, which is inherently not thread-safe. For this, you
+ have to lock the SyncRoot object for the duration of the enumeration.
+
+
+
+
+ Constructs a thread-safe Set wrapper.
+
+ The Set object that this object will wrap.
+
+
+
+ Adds the specified element to this set if it is not already present.
+
+ The object to add to the set.
+ is the object was added, if it was already present.
+
+
+
+ Adds all the elements in the specified collection to the set if they are not already present.
+
+ A collection of objects to add to the set.
+ is the set changed as a result of this operation, if not.
+
+
+
+ Removes all objects from the set.
+
+
+
+
+ Returns if this set contains the specified element.
+
+ The element to look for.
+ if this set contains the specified element, otherwise.
+
+
+
+ Returns if the set contains all the elements in the specified collection.
+
+ A collection of objects.
+ if the set contains all the elements in the specified collection, otherwise.
+
+
+
+ Removes the specified element from the set.
+
+ The element to be removed.
+ if the set contained the specified element, otherwise.
+
+
+
+ Remove all the specified elements from this set, if they exist in this set.
+
+ A collection of elements to remove.
+ if the set was modified as a result of this operation.
+
+
+
+ Retains only the elements in this set that are contained in the specified collection.
+
+ Collection that defines the set of elements to be retained.
+ if this set changed as a result of this operation.
+
+
+
+ Copies the elements in the Set to an array. The type of array needs
+ to be compatible with the objects in the Set, obviously.
+
+ An array that will be the target of the copy operation.
+ The zero-based index where copying will start.
+
+
+
+ Enumeration is, by definition, not thread-safe. Use a lock on the SyncRoot
+ to synchronize the entire enumeration process.
+
+
+
+
+
+ Returns a clone of the Set instance.
+
+ A clone of this object.
+
+
+
+ Performs CopyTo when called trhough non-generic ISet (ICollection) interface
+
+
+
+
+
+
+ Returns if this set contains no elements.
+
+
+
+
+ The number of elements contained in this collection.
+
+
+
+
+ Returns , indicating that this object is thread-safe. The exception to this
+ is enumeration, which is inherently not thread-safe. Use the SyncRoot object to
+ lock this object for the entire duration of the enumeration.
+
+
+
+
+ Returns an object that can be used to synchronize the Set between threads.
+
+
+
+
+ Indicates whether given instace is read-only or not
+
+
+
+
+
DictionarySet is an abstract class that supports the creation of new Set
+ types where the underlying data store is an IDictionary instance.
+
+
You can use any object that implements the IDictionary interface to hold set data.
+ You can define your own, or you can use one of the objects provided in the Framework.
+ The type of IDictionary you choose will affect both the performance and the behavior
+ of the Set using it.
+
+
To make a Set typed based on your own IDictionary, simply derive a
+ new class with a constructor that takes no parameters. Some Set implmentations
+ cannot be defined with a default constructor. If this is the case for your class,
+ you will need to override Clone() as well.
+
+
It is also standard practice that at least one of your constructors takes an ICollection or
+ an ISet as an argument.
+
+
+
+ A collection that contains no duplicate elements.
+
+
+ This class models the mathematical set abstraction, and is the base class for all
+ other set implementations. The order of elements in a set is dependant on
+ (a) the data-structure implementation, and (b) the implementation of the various
+ methods, and thus is not guaranteed.
+
+
+ None of the implementations in this library are guranteed to be thread-safe
+ in any way unless wrapped in a .
+
+
+ The following table summarizes the binary operators that are supported by the
+ type.
+
+
+
+ Operation
+ Description
+ Method
+ Operator
+
+
+ Union (OR)
+ Element included in result if it exists in either A OR B.
+ Union()
+ |
+
+
+ Intersection (AND)
+ Element included in result if it exists in both A AND B.
+ InterSect()
+ &
+
+
+ Exclusive Or (XOR)
+ Element included in result if it exists in one, but not both, of A and B.
+ ExclusiveOr()
+ ^
+
+
+ Minus (n/a)
+ Take all the elements in A. Now, if any of them exist in B, remove
+ them. Note that unlike the other operators, A - B is not the same as B - A.
+ Minus()
+ -
+
+
+
+
+
+
+ Performs a "union" of the two sets, where all the elements
+ in both sets are present. That is, the element is included if it is in either a or b.
+ Neither this set nor the input set are modified during the operation. The return value
+ is a clone of this set with the extra elements added in.
+
+ A collection of elements.
+ A new instance containing the union of this instance with the specified collection.
+ Neither of the input objects is modified by the union.
+
+
+
+ Performs a "union" of two sets, where all the elements
+ in both are present. That is, the element is included if it is in either a or b.
+ The return value is a clone of one of the sets (a if it is not ) with elements of the other set
+ added in. Neither of the input sets is modified by the operation.
+
+ A set of elements.
+ A set of elements.
+ A set containing the union of the input sets. if both sets are .
+
+
+
+ Performs a "union" of two sets, where all the elements
+ in both are present. That is, the element is included if it is in either a or b.
+ The return value is a clone of one of the sets (a if it is not ) with elements of the other set
+ added in. Neither of the input sets is modified by the operation.
+
+ A set of elements.
+ A set of elements.
+ A set containing the union of the input sets. if both sets are .
+
+
+
+ Performs an "intersection" of the two sets, where only the elements
+ that are present in both sets remain. That is, the element is included if it exists in
+ both sets. The Intersect() operation does not modify the input sets. It returns
+ a Clone() of this set with the appropriate elements removed.
+
+ A set of elements.
+ The intersection of this set with a.
+
+
+
+ Performs an "intersection" of the two sets, where only the elements
+ that are present in both sets remain. That is, the element is included only if it exists in
+ both a and b. Neither input object is modified by the operation.
+ The result object is a Clone() of one of the input objects (a if it is not ) containing the
+ elements from the intersect operation.
+
+ A set of elements.
+ A set of elements.
+ The intersection of the two input sets. if both sets are .
+
+
+
+ Performs an "intersection" of the two sets, where only the elements
+ that are present in both sets remain. That is, the element is included only if it exists in
+ both a and b. Neither input object is modified by the operation.
+ The result object is a Clone() of one of the input objects (a if it is not ) containing the
+ elements from the intersect operation.
+
+ A set of elements.
+ A set of elements.
+ The intersection of the two input sets. if both sets are .
+
+
+
+ Performs a "minus" of set b from set a. This returns a set of all
+ the elements in set a, removing the elements that are also in set b.
+ The original sets are not modified during this operation. The result set is a Clone()
+ of this Set containing the elements from the operation.
+
+ A set of elements.
+ A set containing the elements from this set with the elements in a removed.
+
+
+
+ Performs a "minus" of set b from set a. This returns a set of all
+ the elements in set a, removing the elements that are also in set b.
+ The original sets are not modified during this operation. The result set is a Clone()
+ of set a containing the elements from the operation.
+
+ A set of elements.
+ A set of elements.
+ A set containing A - B elements. if a is .
+
+
+
+ Performs a "minus" of set b from set a. This returns a set of all
+ the elements in set a, removing the elements that are also in set b.
+ The original sets are not modified during this operation. The result set is a Clone()
+ of set a containing the elements from the operation.
+
+ A set of elements.
+ A set of elements.
+ A set containing A - B elements. if a is .
+
+
+
+ Performs an "exclusive-or" of the two sets, keeping only the elements that
+ are in one of the sets, but not in both. The original sets are not modified
+ during this operation. The result set is a clone of this set containing
+ the elements from the exclusive-or operation.
+
+ A set of elements.
+ A set containing the result of a ^ b.
+
+
+
+ Performs an "exclusive-or" of the two sets, keeping only the elements that
+ are in one of the sets, but not in both. The original sets are not modified
+ during this operation. The result set is a clone of one of the sets
+ (a if it is not ) containing
+ the elements from the exclusive-or operation.
+
+ A set of elements.
+ A set of elements.
+ A set containing the result of a ^ b. if both sets are .
+
+
+
+ Performs an "exclusive-or" of the two sets, keeping only the elements that
+ are in one of the sets, but not in both. The original sets are not modified
+ during this operation. The result set is a clone of one of the sets
+ (a if it is not ) containing
+ the elements from the exclusive-or operation.
+
+ A set of elements.
+ A set of elements.
+ A set containing the result of a ^ b. if both sets are .
+
+
+
+ Adds the specified element to this set if it is not already present.
+
+ The object to add to the set.
+ is the object was added, if it was already present.
+
+
+
+ Adds all the elements in the specified collection to the set if they are not already present.
+
+ A collection of objects to add to the set.
+ is the set changed as a result of this operation, if not.
+
+
+
+ Removes all objects from the set.
+
+
+
+
+ Returns if this set contains the specified element.
+
+ The element to look for.
+ if this set contains the specified element, otherwise.
+
+
+
+ Returns if the set contains all the elements in the specified collection.
+
+ A collection of objects.
+ if the set contains all the elements in the specified collection, otherwise.
+
+
+
+ Removes the specified element from the set.
+
+ The element to be removed.
+ if the set contained the specified element, otherwise.
+
+
+
+ Remove all the specified elements from this set, if they exist in this set.
+
+ A collection of elements to remove.
+ if the set was modified as a result of this operation.
+
+
+
+ Retains only the elements in this set that are contained in the specified collection.
+
+ Collection that defines the set of elements to be retained.
+ if this set changed as a result of this operation.
+
+
+
+ Returns a clone of the set instance. This will work for derived set
+ classes if the derived class implements a constructor that takes no arguments.
+
+ A clone of this object.
+
+
+
+ Copies the elements in the set to an array. The type of array needs
+ to be compatible with the objects in the set, obviously.
+
+ An array that will be the target of the copy operation.
+ The zero-based index where copying will start.
+
+
+
+ Returns an enumerator that iterates through the set.
+
+
+ An object that can be used to iterate through the set.
+
+
+
+
+ Returns if this set contains no elements.
+
+
+
+
+ The number of elements currently contained in this collection.
+
+
+
+
+ Returns if the set is synchronized across threads. Note that
+ enumeration is inherently not thread-safe. Use the to lock the
+ object during enumeration.
+
+
+
+
+ An object that can be used to synchronize this collection to make it thread-safe.
+ When implementing this, if your object uses a base object, like an ,
+ or anything that has a , return that object instead
+ of .
+
+
+
+
+ Provides the storage for elements in the Set, stored as the key-set
+ of the IDictionary object. Set this object in the constructor
+ if you create your own Set class.
+
+
+
+
+ Adds the specified element to this set if it is not already present.
+
+ The object to add to the set.
+ is the object was added, if it was already present.
+
+
+
+ Adds all the elements in the specified collection to the set if they are not already present.
+
+ A collection of objects to add to the set.
+ is the set changed as a result of this operation, if not.
+
+
+
+ Removes all objects from the set.
+
+
+
+
+ Returns if this set contains the specified element.
+
+ The element to look for.
+ if this set contains the specified element, otherwise.
+
+
+
+ Returns if the set contains all the elements in the specified collection.
+
+ A collection of objects.
+ if the set contains all the elements in the specified collection, otherwise.
+
+
+
+ Removes the specified element from the set.
+
+ The element to be removed.
+ if the set contained the specified element, otherwise.
+
+
+
+ Remove all the specified elements from this set, if they exist in this set.
+
+ A collection of elements to remove.
+ if the set was modified as a result of this operation.
+
+
+
+ Retains only the elements in this set that are contained in the specified collection.
+
+ Collection that defines the set of elements to be retained.
+ if this set changed as a result of this operation.
+
+
+
+ Copies the elements in the Set to an array. The type of array needs
+ to be compatible with the objects in the Set, obviously.
+
+ An array that will be the target of the copy operation.
+ The zero-based index where copying will start.
+
+
+
+ Gets an enumerator for the elements in the Set.
+
+ An IEnumerator over the elements in the Set.
+
+
+
+ The placeholder object used as the value for the IDictionary instance.
+
+
+ There is a single instance of this object globally, used for all Sets.
+
+
+
+
+ Returns if this set contains no elements.
+
+
+
+
+ The number of elements contained in this collection.
+
+
+
+
+ None of the objects based on DictionarySet are synchronized. Use the
+ SyncRoot property instead.
+
+
+
+
+ Returns an object that can be used to synchronize the Set between threads.
+
+
+
+
+ Implements a Set based on a hash table. This will give the best lookup, add, and remove
+ performance for very large data-sets, but iteration will occur in no particular order.
+
+
+
+
+ Creates a new set instance based on a hash table.
+
+
+
+
+ Creates a new set instance based on a hash table and
+ initializes it based on a collection of elements.
+
+ A collection of elements that defines the initial set contents.
+
+
+
+ Implements a Set that automatically changes from a list to a hash table
+ when the size reaches a certain threshold. This is good if you are unsure about
+ whether you data-set will be tiny or huge. Because this uses a dual implementation,
+ iteration order is not guaranteed!
+
+
+
+
+ Creates a new set instance based on either a list or a hash table, depending on which
+ will be more efficient based on the data-set size.
+
+
+
+
+ Creates a new set instance based on either a list or a hash table, depending on which
+ will be more efficient based on the data-set size, and
+ initializes it based on a collection of elements.
+
+ A collection of elements that defines the initial set contents.
+
+
+
+
Implements an immutable (read-only) Set wrapper.
+
Although this is advertised as immutable, it really isn't. Anyone with access to the
+ basisSet can still change the data-set. So GetHashCode() is not implemented
+ for this Set, as is the case for all Set implementations in this library.
+ This design decision was based on the efficiency of not having to Clone() the
+ basisSet every time you wrap a mutable Set.
+
+
+
+
+ Constructs an immutable (read-only) Set wrapper.
+
+ The Set that is wrapped.
+
+
+
+ Adds the specified element to this set if it is not already present.
+
+ The object to add to the set.
+ is the object was added, if it was already present.
+
+
+
+ Adds all the elements in the specified collection to the set if they are not already present.
+
+ A collection of objects to add to the set.
+ is the set changed as a result of this operation, if not.
+
+
+
+ Removes all objects from the set.
+
+
+
+
+ Returns if this set contains the specified element.
+
+ The element to look for.
+ if this set contains the specified element, otherwise.
+
+
+
+ Returns if the set contains all the elements in the specified collection.
+
+ A collection of objects.
+ if the set contains all the elements in the specified collection, otherwise.
+
+
+
+ Removes the specified element from the set.
+
+ The element to be removed.
+ if the set contained the specified element, otherwise.
+
+
+
+ Remove all the specified elements from this set, if they exist in this set.
+
+ A collection of elements to remove.
+ if the set was modified as a result of this operation.
+
+
+
+ Retains only the elements in this set that are contained in the specified collection.
+
+ Collection that defines the set of elements to be retained.
+ if this set changed as a result of this operation.
+
+
+
+ Copies the elements in the Set to an array. The type of array needs
+ to be compatible with the objects in the Set, obviously.
+
+ An array that will be the target of the copy operation.
+ The zero-based index where copying will start.
+
+
+
+ Gets an enumerator for the elements in the Set.
+
+ An IEnumerator over the elements in the Set.
+
+
+
+ Returns a clone of the Set instance.
+
+ A clone of this object.
+
+
+
+ Performs a "union" of the two sets, where all the elements
+ in both sets are present. That is, the element is included if it is in either a or b.
+ Neither this set nor the input set are modified during the operation. The return value
+ is a Clone() of this set with the extra elements added in.
+
+ A collection of elements.
+ A new Set containing the union of this Set with the specified collection.
+ Neither of the input objects is modified by the union.
+
+
+
+ Performs an "intersection" of the two sets, where only the elements
+ that are present in both sets remain. That is, the element is included if it exists in
+ both sets. The Intersect() operation does not modify the input sets. It returns
+ a Clone() of this set with the appropriate elements removed.
+
+ A set of elements.
+ The intersection of this set with a.
+
+
+
+ Performs a "minus" of set b from set a. This returns a set of all
+ the elements in set a, removing the elements that are also in set b.
+ The original sets are not modified during this operation. The result set is a Clone()
+ of this Set containing the elements from the operation.
+
+ A set of elements.
+ A set containing the elements from this set with the elements in a removed.
+
+
+
+ Performs an "exclusive-or" of the two sets, keeping only the elements that
+ are in one of the sets, but not in both. The original sets are not modified
+ during this operation. The result set is a Clone() of this set containing
+ the elements from the exclusive-or operation.
+
+ A set of elements.
+ A set containing the result of a ^ b.
+
+
+
+ Returns if this set contains no elements.
+
+
+
+
+ The number of elements contained in this collection.
+
+
+
+
+ Returns an object that can be used to synchronize use of the Set across threads.
+
+
+
+
+ Returns an object that can be used to synchronize the Set between threads.
+
+
+
+
+ Implements a Set based on a list. Performance is much better for very small lists
+ than either HashedSet or SortedSet. However, performance degrades rapidly as
+ the data-set gets bigger. Use a HybridSet instead if you are not sure your data-set
+ will always remain very small. Iteration produces elements in the order they were added.
+ However, element order is not guaranteed to be maintained by the various Set
+ mathematical operators.
+
+
+
+
+ Creates a new set instance based on a list.
+
+
+
+
+ Creates a new set instance based on a list and
+ initializes it based on a collection of elements.
+
+ A collection of elements that defines the initial set contents.
+
+
+
+ Implements a set based on a sorted tree. This gives good performance for operations on very
+ large data-sets, though not as good - asymptotically - as a .
+ However, iteration occurs in order. Elements that you put into this type of collection must
+ implement , and they must actually be comparable. You can't mix
+ and values, for example.
+
+
+
+
+ Creates a new set instance based on a sorted tree.
+
+
+
+
+ Creates a new set instance based on a sorted tree.
+
+ The to use for sorting.
+
+
+
+ Creates a new set instance based on a sorted tree and
+ initializes it based on a collection of elements.
+
+ A collection of elements that defines the initial set contents.
+
+
+
+ Creates a new set instance based on a sorted tree and
+ initializes it based on a collection of elements.
+
+ A collection of elements that defines the initial set contents.
+ The to use for sorting.
+
+
+
+ Implements a thread-safe wrapper.
+
+
+ The implementation is extremely conservative, serializing critical sections
+ to prevent possible deadlocks, and locking on everything. The one exception
+ is for enumeration, which is inherently not thread-safe. For this, you have
+ to the object for the duration
+ of the enumeration.
+
+
+
+
+ Constructs a thread-safe wrapper.
+
+ The object that this object will wrap.
+
+
+
+ Adds the specified element to this set if it is not already present.
+
+ The object to add to the set.
+ is the object was added, if it was already present.
+
+
+
+ Adds all the elements in the specified collection to the set if they are not already present.
+
+ A collection of objects to add to the set.
+ is the set changed as a result of this operation, if not.
+
+
+
+ Removes all objects from the set.
+
+
+
+
+ Returns if this set contains the specified element.
+
+ The element to look for.
+ if this set contains the specified element, otherwise.
+
+
+
+ Returns if the set contains all the elements in the specified collection.
+
+ A collection of objects.
+ if the set contains all the elements in the specified collection, otherwise.
+
+
+
+ Removes the specified element from the set.
+
+ The element to be removed.
+ if the set contained the specified element, otherwise.
+
+
+
+ Remove all the specified elements from this set, if they exist in this set.
+
+ A collection of elements to remove.
+ if the set was modified as a result of this operation.
+
+
+
+ Retains only the elements in this set that are contained in the specified collection.
+
+ Collection that defines the set of elements to be retained.
+ if this set changed as a result of this operation.
+
+
+
+ Copies the elements in the set to an array. The type of array needs
+ to be compatible with the objects in the set, obviously.
+
+ An array that will be the target of the copy operation.
+ The zero-based index where copying will start.
+
+
+
+ Returns an enumerator that iterates through the set.
+
+
+ An object that can be used to iterate through the set.
+
+
+ Enumeration is, by definition, not thread-safe. Use a on the
+ to synchronize the entire enumeration process.
+
+
+
+
+ Returns a clone of this instance.
+
+ A clone of this object.
+
+
+
+ Returns if this set contains no elements.
+
+
+
+
+ The number of elements contained in this collection.
+
+
+
+
+ Returns , indicating that this object is thread-safe. The exception to this
+ is enumeration, which is inherently not thread-safe. Use the object to
+ lock this object for the entire duration of the enumeration.
+
+
+
+
+ Returns an object that can be used to synchronize the set between threads.
+
+
+
+
diff --git a/lib/NHibernate12/net/4.0/NHibernate.dll b/lib/NHibernate12/net/4.0/NHibernate.dll
new file mode 100644
index 00000000..19bc3f9e
Binary files /dev/null and b/lib/NHibernate12/net/4.0/NHibernate.dll differ
diff --git a/lib/NHibernate12/net/4.0/NHibernate.license.txt b/lib/NHibernate12/net/4.0/NHibernate.license.txt
new file mode 100644
index 00000000..8a88d148
--- /dev/null
+++ b/lib/NHibernate12/net/4.0/NHibernate.license.txt
@@ -0,0 +1,460 @@
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL. It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+ This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it. You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+ When we speak of free software, we are referring to freedom of use,
+not price. Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+ To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights. These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+ For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you. You must make sure that they, too, receive or can get the source
+code. If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it. And you must show them these terms so they know their rights.
+
+ We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+ To protect each distributor, we want to make it very clear that
+there is no warranty for the free library. Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+ Finally, software patents pose a constant threat to the existence of
+any free program. We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder. Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+ Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License. This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License. We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+ When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library. The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom. The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+ We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License. It also provides other free software developers Less
+of an advantage over competing non-free programs. These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries. However, the Lesser license provides advantages in certain
+special circumstances.
+
+ For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard. To achieve this, non-free programs must be
+allowed to use the library. A more frequent case is that a free
+library does the same job as widely used non-free libraries. In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+ In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software. For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+ Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+ The precise terms and conditions for copying, distribution and
+modification follow. Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library". The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+ GNU LESSER GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+ A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+ The "Library", below, refers to any such software library or work
+which has been distributed under these terms. A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language. (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+ "Source code" for a work means the preferred form of the work for
+making modifications to it. For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+ Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it). Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+ 1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+ You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+ 2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) The modified work must itself be a software library.
+
+ b) You must cause the files modified to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ c) You must cause the whole of the work to be licensed at no
+ charge to all third parties under the terms of this License.
+
+ d) If a facility in the modified Library refers to a function or a
+ table of data to be supplied by an application program that uses
+ the facility, other than as an argument passed when the facility
+ is invoked, then you must make a good faith effort to ensure that,
+ in the event an application does not supply such function or
+ table, the facility still operates, and performs whatever part of
+ its purpose remains meaningful.
+
+ (For example, a function in a library to compute square roots has
+ a purpose that is entirely well-defined independent of the
+ application. Therefore, Subsection 2d requires that any
+ application-supplied function or table used by this function must
+ be optional: if the application does not supply it, the square
+ root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library. To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License. (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.) Do not make any other change in
+these notices.
+
+ Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+ This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+ 4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+ If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library". Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+ However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library". The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+ When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library. The
+threshold for this to be true is not precisely defined by law.
+
+ If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work. (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+ Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+ 6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+ You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License. You must supply a copy of this License. If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License. Also, you must do one
+of these things:
+
+ a) Accompany the work with the complete corresponding
+ machine-readable source code for the Library including whatever
+ changes were used in the work (which must be distributed under
+ Sections 1 and 2 above); and, if the work is an executable linked
+ with the Library, with the complete machine-readable "work that
+ uses the Library", as object code and/or source code, so that the
+ user can modify the Library and then relink to produce a modified
+ executable containing the modified Library. (It is understood
+ that the user who changes the contents of definitions files in the
+ Library will not necessarily be able to recompile the application
+ to use the modified definitions.)
+
+ b) Use a suitable shared library mechanism for linking with the
+ Library. A suitable mechanism is one that (1) uses at run time a
+ copy of the library already present on the user's computer system,
+ rather than copying library functions into the executable, and (2)
+ will operate properly with a modified version of the library, if
+ the user installs one, as long as the modified version is
+ interface-compatible with the version that the work was made with.
+
+ c) Accompany the work with a written offer, valid for at
+ least three years, to give the same user the materials
+ specified in Subsection 6a, above, for a charge no more
+ than the cost of performing this distribution.
+
+ d) If distribution of the work is made by offering access to copy
+ from a designated place, offer equivalent access to copy the above
+ specified materials from the same place.
+
+ e) Verify that the user has already received a copy of these
+ materials or that you have already sent this user a copy.
+
+ For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it. However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+ It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system. Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+ 7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+ a) Accompany the combined library with a copy of the same work
+ based on the Library, uncombined with any other library
+ facilities. This must be distributed under the terms of the
+ Sections above.
+
+ b) Give prominent notice with the combined library of the fact
+ that part of it is a work based on the Library, and explaining
+ where to find the accompanying uncombined form of the same work.
+
+ 8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License. Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License. However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+ 9. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Library or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+ 10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+ 11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all. For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded. In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+ 13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation. If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+ 14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission. For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this. Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+ NO WARRANTY
+
+ 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
diff --git a/lib/NHibernate12/net/4.0/NHibernate.xml b/lib/NHibernate12/net/4.0/NHibernate.xml
new file mode 100644
index 00000000..39b0414c
--- /dev/null
+++ b/lib/NHibernate12/net/4.0/NHibernate.xml
@@ -0,0 +1,29887 @@
+
+
+
+ NHibernate
+
+
+
+
+ Expected row count. Valid only for batchable expectations.
+
+
+
+
+ Any exception that occurs in the O-R persistence layer.
+
+
+ Exceptions that occur in the database layer are left as native exceptions.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+
+
+ Initializes a new instance of the class.
+
+
+ The exception that is the cause of the current exception. If the innerException parameter
+ is not a null reference, the current exception is raised in a catch block that handles
+ the inner exception.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+ The exception that is the cause of the current exception. If the innerException parameter
+ is not a null reference, the current exception is raised in a catch block that handles
+ the inner exception.
+
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ CodeDOM-based bytecode provider.
+
+
+
+
+ Retrieve the delegate for this provider
+ capable of generating reflection optimization components.
+
+ The class to be reflected upon.
+ All property getters to be accessed via reflection.
+ All property setters to be accessed via reflection.
+ The reflection optimization delegate.
+
+
+
+ ctor
+
+ The target class
+ Array of setters
+ Array of getters
+
+
+
+ Set up the compiler options
+
+
+
+
+ Add an assembly to the list of ReferencedAssemblies
+ required to build the class
+
+
+
+
+
+ Build the generated code
+
+ Generated code
+ An instance of the generated class
+
+
+
+ Check if the property is public
+
+
+ If IsPublic==true I can directly set the property
+ If IsPublic==false I need to use the setter/getter
+
+
+
+
+
+
+ Generate the required code
+
+ C# code
+
+
+
+ Represents optimized entity property access.
+
+
+
+
+ Factory that generate object based on IReflectionOptimizer needed to replace the use
+ of reflection.
+
+
+ Used in and
+
+
+
+
+
+ Generate the IReflectionOptimizer object
+
+ The target class
+ Array of setters
+ Array of getters
+ if the generation fails
+
+
+
+ Represents reflection optimization for a particular class.
+
+
+
+
+ Represents optimized entity instantiation.
+
+
+
+
+ Perform instantiation of an instance of the underlying class.
+
+ The new instance.
+
+
+
+ Class constructor.
+
+
+
+
+ Generates a dynamic method which creates a new instance of
+ when invoked.
+
+
+
+
+ Generates a dynamic method on the given type.
+
+
+
+
+ Generates a dynamic method on the given type.
+
+
+
+
+
+ Emits an ldc.i4 opcode using the fastest available opcode choice.
+
+
+
+
+ Emits IL to unbox a value type and if null, create a new instance of the value type.
+
+
+ This does not work if the value type doesn't have a default constructor - we delegate
+ that to the ISetter.
+
+
+
+
+ Defines a new delegate type.
+
+
+
+
+ A implementation that returns
+ , disabling reflection optimization.
+
+
+
+
+ An item of cached data, timestamped with the time it was cached, when it was locked,
+ when it was unlocked
+
+
+
+
+ Summary description for ILockable.
+
+
+
+
+ Lock the item
+
+
+
+
+ Is this item visible to the timestamped transaction?
+
+
+
+
+
+
+ Don't overwite already cached items
+
+
+
+
+
+
+
+
+ The timestamp on the cached data
+
+
+
+
+ The actual cached data
+
+
+
+
+ Not a lock!
+
+
+
+
+ Represents any exception from an .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+
+
+ Initializes a new instance of the class.
+
+
+ The exception that is the cause of the current exception. If the innerException parameter
+ is not a null reference, the current exception is raised in a catch block that handles
+ the inner exception.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+ The exception that is the cause of the current exception. If the innerException parameter
+ is not a null reference, the current exception is raised in a catch block that handles
+ the inner exception.
+
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Factory class for creating an .
+
+
+
+
+ No providers implement transactional caching currently,
+ it was ported from Hibernate just for the sake of completeness.
+
+
+
+
+ Creates an from the parameters.
+
+ The name of the strategy that should use for the class.
+ The name of the class the strategy is being created for.
+ if the object being stored in the cache is mutable.
+ Used to retrieve the global cache region prefix.
+ Properties the cache provider can use to configure the cache.
+ An to use for this object in the .
+
+
+
+ Allows multiple entity classes / collection roles to be
+ stored in the same cache region. Also allows for composite
+ keys which do not properly implement equals()/hashCode().
+
+
+
+
+ Construct a new key for a collection or entity instance.
+ Note that an entity name should always be the root entity
+ name, not a subclass entity name.
+
+
+
+
+ A soft lock which supports concurrent locking,
+ timestamped with the time it was released
+
+
+ This class was named Lock in H2.1
+
+
+
+
+ Marker interface, denoting a client-visible "soft lock" on a cached item.
+
+
+
+
+ Increment the lock, setting the
+ new lock timeout
+
+
+
+
+ Decrement the lock, setting the unlock
+ timestamp if now unlocked
+
+
+
+
+
+ Can the timestamped transaction re-cache this
+ locked item now?
+
+
+
+
+ locks are not returned to the client!
+
+
+
+
+ Was this lock held concurrently by multiple
+ transactions?
+
+
+
+
+ Yes, this is a lock
+
+
+
+
+ A simple -based cache
+
+
+
+
+ Implementors define a caching algorithm.
+
+
+
+
+ All implementations must be threadsafe.
+
+
+ The key is the identifier of the object that is being cached and the
+ value is a .
+
+
+
+
+
+ Get the object from the Cache
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Remove an item from the Cache.
+
+ The Key of the Item in the Cache to remove.
+
+
+
+
+ Clear the Cache
+
+
+
+
+
+ Clean up.
+
+
+
+
+
+ If this is a clustered cache, lock the item
+
+ The Key of the Item in the Cache to lock.
+
+
+
+
+ If this is a clustered cache, unlock the item
+
+ The Key of the Item in the Cache to unlock.
+
+
+
+
+ Generate a timestamp
+
+
+
+
+
+ Get a reasonable "lock timeout"
+
+
+
+
+ Gets the name of the cache region
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Cache Provider plugin for NHibernate that is configured by using
+ hibernate.cache.provider_class="NHibernate.Cache.HashtableCacheProvider"
+
+
+
+
+ Support for pluggable caches
+
+
+
+
+ Configure the cache
+
+ the name of the cache region
+ configuration settings
+
+
+
+
+ generate a timestamp
+
+
+
+
+
+ Callback to perform any necessary initialization of the underlying cache implementation
+ during ISessionFactory construction.
+
+ current configuration settings
+
+
+
+ Callback to perform any necessary cleanup of the underlying cache implementation
+ during .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Implementors manage transactional access to cached data.
+
+
+
+ Transactions pass in a timestamp indicating transaction start time.
+
+
+ When used to cache entities and collections the key is the identifier of the
+ entity/collection and the value should be set to the
+ for an entity and the results of
+ for a collection.
+
+
+
+
+
+ Attempt to retrieve an object from the Cache
+
+ The key (id) of the object to get out of the Cache.
+ A timestamp prior to the transaction start time
+ The cached object or
+
+
+
+
+ Attempt to cache an object, after loading from the database
+
+ The key (id) of the object to put in the Cache.
+ The value
+ A timestamp prior to the transaction start time
+ the version number of the object we are putting
+ a Comparer to be used to compare version numbers
+ indicates that the cache should avoid a put if the item is already cached
+ if the object was successfully cached
+
+
+
+
+ We are going to attempt to update/delete the keyed object
+
+ The key
+
+
+ This method is used by "asynchronous" concurrency strategies.
+
+
+
+ Called after an item has become stale (before the transaction completes).
+
+
+
+ This method is used by "synchronous" concurrency strategies.
+
+
+
+ Called after an item has been updated (before the transaction completes),
+ instead of calling Evict().
+
+
+
+ This method is used by "synchronous" concurrency strategies.
+
+
+
+ Called after an item has been inserted (before the transaction completes), instead of calling Evict().
+
+
+
+ This method is used by "synchronous" concurrency strategies.
+
+
+
+ Called when we have finished the attempted update/delete (which may or
+ may not have been successful), after transaction completion.
+
+ The key
+ The soft lock
+
+ This method is used by "asynchronous" concurrency strategies.
+
+
+
+ Called after an item has been updated (after the transaction completes),
+ instead of calling Release().
+
+
+
+
+
+ This method is used by "asynchronous" concurrency strategies.
+
+
+
+ Called after an item has been inserted (after the transaction completes), instead of calling release().
+
+
+
+
+ This method is used by "asynchronous" concurrency strategies.
+
+
+
+ Evict an item from the cache immediately (without regard for transaction isolation).
+
+
+
+
+
+
+ Evict all items from the cache immediately.
+
+
+
+
+
+ Clean up all resources.
+
+
+
+
+
+ Gets the cache region name.
+
+
+
+
+ Gets or sets the for this strategy to use.
+
+ The for this strategy to use.
+
+
+
+ Defines the contract for caches capable of storing query results. These
+ caches should only concern themselves with storing the matching result ids.
+ The transactional semantics are necessarily less strict than the semantics
+ of an item cache.
+
+
+
+
+ Defines a factory for query cache instances. These factories are responsible for
+ creating individual QueryCache instances.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A cache provider placeholder used when caching is disabled.
+
+
+
+
+ Configure the cache
+
+ the name of the cache region
+ configuration settings
+
+
+
+
+ Generate a timestamp
+
+
+
+
+ Callback to perform any necessary initialization of the underlying cache implementation during SessionFactory
+ construction.
+
+ current configuration settings.
+
+
+
+ Callback to perform any necessary cleanup of the underlying cache implementation during SessionFactory.close().
+
+
+
+
+ Caches data that is sometimes updated without ever locking the cache.
+ If concurrent access to an item is possible, this concurrency strategy
+ makes no guarantee that the item returned from the cache is the latest
+ version available in the database. Configure your cache timeout accordingly!
+ This is an "asynchronous" concurrency strategy.
+ for a much stricter algorithm
+
+
+
+
+ Get the most recent version, if available.
+
+
+
+
+ Add an item to the cache
+
+
+
+
+ Do nothing
+
+
+
+
+ Invalidate the item
+
+
+
+
+ Invalidate the item
+
+
+
+
+ Do nothing
+
+
+
+
+ Invalidate the item (again, for safety).
+
+
+
+
+ Invalidate the item (again, for safety).
+
+
+
+
+ Do nothing
+
+
+
+
+ Gets the cache region name.
+
+
+
+
+ Initializes a new instance of the class.
+
+ the sesion factory for this query key, required to get the identifiers of entities that are used as values.
+ The query string.
+ The query parameters.
+ The filters.
+
+
+
+ Caches data that is never updated
+
+
+
+
+ Unsupported!
+
+
+
+
+ Unsupported!
+
+
+
+
+ Unsupported!
+
+
+
+
+ Do nothing.
+
+
+
+
+ Do nothing.
+
+
+
+
+ Do nothing.
+
+
+
+
+ Unsupported!
+
+
+
+
+ Gets the cache region name.
+
+
+
+
+ Caches data that is sometimes updated while maintaining the semantics of
+ "read committed" isolation level. If the database is set to "repeatable
+ read", this concurrency strategy almost maintains the semantics.
+ Repeatable read isolation is compromised in the case of concurrent writes.
+ This is an "asynchronous" concurrency strategy.
+
+
+ If this strategy is used in a cluster, the underlying cache implementation
+ must support distributed hard locks (which are held only momentarily). This
+ strategy also assumes that the underlying cache implementation does not do
+ asynchronous replication and that state has been fully replicated as soon
+ as the lock is released.
+ for a faster algorithm
+
+
+
+
+
+ Generate an id for a new lock. Uniqueness per cache instance is very
+ desirable but not absolutely critical. Must be called from one of the
+ synchronized methods of this class.
+
+
+
+
+
+ Do not return an item whose timestamp is later than the current
+ transaction timestamp. (Otherwise we might compromise repeatable
+ read unnecessarily.) Do not return an item which is soft-locked.
+ Always go straight to the database instead.
+
+
+ Note that since reading an item from that cache does not actually
+ go to the database, it is possible to see a kind of phantom read
+ due to the underlying row being updated after we have read it
+ from the cache. This would not be possible in a lock-based
+ implementation of repeatable read isolation. It is also possible
+ to overwrite changes made and committed by another transaction
+ after the current transaction read the item from the cache. This
+ problem would be caught by the update-time version-checking, if
+ the data is versioned or timestamped.
+
+
+
+
+ Stop any other transactions reading or writing this item to/from
+ the cache. Send them straight to the database instead. (The lock
+ does time out eventually.) This implementation tracks concurrent
+ locks by transactions which simultaneously attempt to write to an
+ item.
+
+
+
+
+ Do not add an item to the cache unless the current transaction
+ timestamp is later than the timestamp at which the item was
+ invalidated. (Otherwise, a stale item might be re-added if the
+ database is operating in repeatable read isolation mode.)
+
+ Whether the item was actually put into the cache
+
+
+
+ decrement a lock and put it back in the cache
+
+
+
+
+ Re-cache the updated state, if and only if there there are
+ no other concurrent soft locks. Release our lock.
+
+
+
+
+ Is the client's lock commensurate with the item in the cache?
+ If it is not, we know that the cache expired the original
+ lock.
+
+
+
+
+ Gets the cache region name.
+
+
+
+
+ The standard implementation of the Hibernate
+ interface. This implementation is very good at recognizing stale query
+ results and re-running queries when it detects this condition, recaching
+ the new results.
+
+
+
+
+ Standard Hibernate implementation of the IQueryCacheFactory interface. Returns
+ instances of .
+
+
+
+
+ Generates increasing identifiers (in a single application domain only).
+
+
+ Not valid across multiple application domains. Identifiers are not necessarily
+ strictly increasing, but usually are.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Tracks the timestamps of the most recent updates to particular tables. It is
+ important that the cache timeout of the underlying cache implementation be set
+ to a higher value than the timeouts of any of the query caches. In fact, we
+ recommend that the the underlying cache not be configured for expiry at all.
+ Note, in particular, that an LRU cache expiry policy is never appropriate.
+
+
+
+
+
+
+
+ Extracts the names of classes mapped in a given file,
+ and the names of the classes they extend.
+
+
+
+
+ Returns a collection of containing
+ information about all classes in this stream.
+
+ A validated representing
+ a mapping file.
+
+
+
+ Holds information about mapped classes found in the hbm.xml files.
+
+
+
+
+ Allows the application to specify properties and mapping documents to be used when creating
+ a .
+
+
+
+ Usually an application will create a single , build a single instance
+ of , and then instantiate objects in threads
+ servicing client requests.
+
+
+ The is meant only as an initialization-time object.
+ is immutable and does not retain any association back to the
+
+
+
+
+
+ The XML Namespace for the nhibernate-mapping
+
+
+
+
+ The XML Namespace for the nhibernate-configuration
+
+
+
+
+ Clear the internal state of the object.
+
+
+
+
+ Create a new Configuration object.
+
+
+
+
+ Get the mapping for a particular class
+
+
+
+
+ Get the mapping for a particular collection role
+
+ a collection role
+
+
+
+
+ Read mappings from a particular XML file. This method is equivalent
+ to .
+
+
+
+
+
+
+ Read mappings from a particular XML file.
+
+ a path to a file
+ This configuration object.
+
+
+
+ Read mappings from a . This method is equivalent to
+ .
+
+ an XML string
+ The name to use in error reporting. May be .
+ This configuration object.
+
+
+
+ Read mappings from a .
+
+ an XML string
+ This configuration object.
+
+
+
+ Read mappings from a URL.
+
+ a URL
+ This configuration object.
+
+
+
+ Read mappings from a URL.
+
+ a to read the mappings from.
+ This configuration object.
+
+
+
+ Read mappings from an .
+
+ A loaded that contains the mappings.
+ The name of the document, for error reporting purposes.
+ This configuration object.
+
+
+
+ Takes the validated XmlDocument and has the Binder do its work of
+ creating Mapping objects from the Mapping Xml.
+
+ The NamedXmlDocument that contains the validated mapping XML file.
+
+
+
+ Create a new to add classes and collection
+ mappings to.
+
+
+
+
+ Read mappings from a .
+
+ The stream containing XML
+ This Configuration object.
+
+ The passed in through the parameter
+ is not guaranteed to be cleaned up by this method. It is the caller's responsiblity to
+ ensure that is properly handled when this method
+ completes.
+
+
+
+
+ Read mappings from a .
+
+ The stream containing XML
+ The name of the stream to use in error reporting. May be .
+ This Configuration object.
+
+ The passed in through the parameter
+ is not guaranteed to be cleaned up by this method. It is the caller's responsiblity to
+ ensure that is properly handled when this method
+ completes.
+
+
+
+
+ Adds the mappings in the resource of the assembly.
+
+ The path to the resource file in the assembly.
+ The assembly that contains the resource file.
+ This configuration object.
+
+
+
+ Read a mapping from an embedded resource, using a convention.
+
+ The type to map.
+ This configuration object.
+
+ The convention is for class Foo.Bar.Foo to be mapped by
+ the resource named Foo.Bar.Foo.hbm.xml, embedded in
+ the class' assembly. If the mappings and classes are defined
+ in different assemblies or don't follow the naming convention,
+ this method cannot be used.
+
+
+
+
+ Adds all of the assembly's embedded resources whose names end with .hbm.xml.
+
+ The name of the assembly to load.
+ This configuration object.
+
+ The assembly must be loadable using . If this
+ condition is not satisfied, load the assembly manually and call
+ instead.
+
+
+
+
+ Adds all of the assembly's embedded resources whose names end with .hbm.xml.
+
+ The assembly.
+ This configuration object.
+
+
+
+ Read all mapping documents from a directory tree. Assume that any
+ file named *.hbm.xml is a mapping document.
+
+ a directory
+
+
+
+ Generate DDL for droping tables
+
+
+
+
+
+ Generate DDL for creating tables
+
+
+
+
+
+ This method may be called many times!!
+
+
+
+
+ Instantiate a new , using the properties and mappings in this
+ configuration. The will be immutable, so changes made to the
+ configuration after building the will not affect it.
+
+ An instance.
+
+
+
+ Set the default assembly to use for the mappings added to the configuration
+ afterwards.
+
+ The default assembly name.
+ This configuration instance.
+
+ This setting can be overridden for a mapping file by setting default-assembly
+ attribute of <hibernate-mapping> element.
+
+
+
+
+ Set the default namespace to use for the mappings added to the configuration
+ afterwards.
+
+ The default namespace.
+ This configuration instance.
+
+ This setting can be overridden for a mapping file by setting default-namespace
+ attribute of <hibernate-mapping> element.
+
+
+
+
+ Sets the default interceptor for use by all sessions.
+
+ The default interceptor.
+ This configuration instance.
+
+
+
+ Specify a completely new set of properties
+
+
+
+
+ Adds an of configuration properties. The
+ Key is the name of the Property and the Value is the
+ value of the Property.
+
+ An of configuration properties.
+
+ This object.
+
+
+
+
+ Sets the value of the configuration property.
+
+ The name of the property.
+ The value of the property.
+
+ This configuration object.
+
+
+
+
+ Gets the value of the configuration property.
+
+ The name of the property.
+ The configured value of the property, or if the property was not specified.
+
+
+
+ Configure NHibernate using the <hibernate-configuration> section
+ from the application config file, if found, or the file hibernate.cfg.xml
+ otherwise.
+
+ A configuration object initialized with the file.
+
+ To configure NHibernate explicitly using hibernate.cfg.xml, ignoring
+ the application configuration file, use this code:
+
+ configuration.Configure("path/to/hibernate.cfg.xml");
+
+
+
+
+
+ Configure NHibernate from an representing the root
+ <hibernate-configuration> element.
+
+ Configuration node
+ This Configuration object
+
+
+
+ Configure NHibernate using the file specified.
+
+ The location of the XML file to use to configure NHibernate.
+ A Configuration object initialized with the file.
+
+ Calling Configure(string) will overwrite the values set in app.config or web.config
+
+
+
+
+ Configure NHibernate using a resource contained in an Assembly.
+
+ The that contains the resource.
+ The name of the manifest resource being requested.
+ A Configuration object initialized from the manifest resource.
+
+ Calling Configure(Assembly, string) will overwrite the values set in app.config or web.config
+
+
+
+
+ Configure NHibernate using the specified XmlTextReader.
+
+ The that contains the Xml to configure NHibernate.
+ A Configuration object initialized with the file.
+
+ Calling Configure(XmlTextReader) will overwrite the values set in app.config or web.config
+
+
+
+
+ Set up a cache for an entity class
+
+
+
+
+ Set up a cache for a collection role
+
+
+
+
+ Create an object-oriented view of the configuration properties
+
+ A object initialized from the settings properties.
+
+
+
+ Set a custom naming strategy
+
+ the NamingStrategy to set
+
+
+
+
+ Load and validate the mappings in the against
+ the nhibernate-mapping-2.2 schema, without adding them to the configuration.
+
+
+ This method is made public to be usable from the unit tests. It is not intended
+ to be called by end users.
+
+ The XmlReader that contains the mapping.
+ The name of the document, for error reporting purposes.
+ NamedXmlDocument containing the validated XmlDocument built from the XmlReader.
+
+
+
+ Adds the Mappings in the after validating it
+ against the nhibernate-mapping-2.2 schema.
+
+ The XmlTextReader that contains the mapping.
+ This Configuration object.
+
+
+
+ Adds the Mappings in the after validating it
+ against the nhibernate-mapping-2.2 schema.
+
+ The XmlTextReader that contains the mapping.
+ The name of the document to use for error reporting. May be .
+ This Configuration object.
+
+
+
+ Allocate on first use as we are expensive in time/space
+
+
+
+ Allocate on first use as we are expensive in time/space
+
+
+
+ The class mappings
+
+
+
+
+ The collection mappings
+
+
+
+
+ The table mappings
+
+
+
+
+ The named queries
+
+
+
+
+ Gets or sets the to use.
+
+ The to use.
+
+
+
+ Gets or sets the that contains the configuration
+ properties and their values.
+
+
+ The that contains the configuration
+ properties and their values.
+
+
+
+
+ Get the query language imports
+
+
+
+
+
+ The named SQL queries
+
+
+
+
+ Naming strategy for tables and columns
+
+
+
+
+ Defines operations common to "compiled" mappings (ie. SessionFactory) and
+ "uncompiled" mappings (ie Configuration that are used by implementors of IType
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Summary description for ConfigurationSectionHandler.
+
+
+
+
+ The default
+
+ See for a better alternative
+
+
+
+ A set of rules for determining the physical column and table names given the information in the mapping
+ document. May be used to implement project-scoped naming standards for database objects.
+
+
+
+
+ Return a table name for an entity class
+
+ the fully-qualified class name
+ a table name
+
+
+
+ Return a column name for a property path expression
+
+ a property path
+ a column name
+
+
+
+ Alter the table name given in the mapping document
+
+ a table name
+ a table name
+
+
+
+ Alter the column name given in the mapping document
+
+ a column name
+ a column name
+
+
+
+ Return a table name for a collection
+
+ the fully-qualified name of the owning entity class
+ a property path
+ a table name
+
+
+
+ The singleton instance
+
+
+
+
+ Return the unqualified class name
+
+
+
+
+
+
+ Return the unqualified property name
+
+
+
+
+
+
+ Return the argument
+
+
+
+
+
+
+ Return the argument
+
+
+
+
+
+
+ Return the unqualified property name
+
+
+
+
+
+
+
+ Provides access to configuration information.
+
+
+ NHibernate has two property scopes:
+
+
+ Factory-level properties may be passed to the when it is
+ instantiated. Each instance might have different property values. If no properties are
+ specified, the factory gets them from Environment
+
+
+ System-level properties are shared by all factory instances and are always determined
+ by the properties
+
+
+ In NHibernate, <nhibernate> section in the application configuration file
+ corresponds to Java system-level properties; <hibernate-configuration>
+ section is considered to be the session-factory-level configuration. It is possible
+ to use the applicatoin configuration file (App.config) together with the NHibernate configuration
+ file (hibernate.cfg.xml) at the same time.
+
+
+
+
+ Used to find the .Net 2.0 named connection string
+
+
+
+
+ Issue warnings to user when any obsolete property names are used.
+
+
+
+
+
+
+ NHibernate version (informational).
+
+
+
+
+ Gets a copy of the configuration found in <nhibernate> section
+ of app.config/web.config.
+
+
+ This is the replacement for hibernate.properties
+
+
+
+
+ The bytecode provider to use.
+
+
+ This property is read from the <nhibernate> section
+ of the application configuration file by default. Since it is not
+ always convenient to configure NHibernate through the application
+ configuration file, it is also possible to set the property value
+ manually. This should only be done before a configuration object
+ is created, otherwise the change may not take effect.
+
+
+
+
+ Whether to enable the use of reflection optimizer
+
+
+ This property is read from the <nhibernate> section
+ of the application configuration file by default. Since it is not
+ always convenient to configure NHibernate through the application
+ configuration file, it is also possible to set the property value
+ manually. This should only be done before a configuration object
+ is created, otherwise the change may not take effect.
+
+
+
+
+ Converts a partial class name into a fully qualified one
+
+
+
+
+
+
+
+ Attempts to find a type by its full name. Throws a
+ using the provided in case of failure.
+
+ name of the class to find
+ Error message to use for
+ the in case of failure. Should contain
+ the {0} formatting placeholder.
+ A instance.
+
+ Thrown when there is an error loading the class.
+
+
+
+
+ Similar to , but handles short class names
+ by calling .
+
+
+
+
+
+
+
+
+ Called for all collections. parameter
+ was added in NH to allow for reflection related to generic types.
+
+
+
+
+ Called for arrays and primitive arrays
+
+
+
+
+ Called for Lists, arrays, primitive arrays
+ >
+
+
+
+ Called for Maps
+
+
+
+
+
+
+
+
+ Called for all collections
+
+
+
+
+ Summary description for ImprovedNamingStrategy.
+
+
+
+
+ The singleton instance
+
+
+
+
+ Return the unqualified class name, mixed case converted to underscores
+
+
+
+
+
+
+ Return the full property path with underscore seperators, mixed case converted to underscores
+
+
+
+
+
+
+ Convert mixed case to underscores
+
+
+
+
+
+
+ Convert mixed case to underscores
+
+
+
+
+
+
+ Return the full property path prefixed by the unqualified class name, with underscore seperators, mixed case converted to underscores
+
+
+
+
+
+
+
+ A collection of mappings from classes and collections to relational database tables.
+
+ Represents a single <hibernate-mapping> element.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Adds an import to allow for the full class name Namespace.Entity
+ to be referenced as Entity or some other name in HQL.
+
+ The name of the type that is being renamed.
+ The new name to use in HQL for the type.
+ Thrown when the rename already identifies another type.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The default namespace for persistent classes
+
+
+
+
+ The default assembly for persistent classes
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets or sets a boolean indicating if the Fully Qualified Type name should
+ automattically have an import added as the class name.
+
+ if the class name should be used as an import.
+
+ Auto-import is used to shorten the string used to refer to types to just their
+ unqualified name. So if the type MyAssembly.MyNamespace.MyClass, MyAssembly has
+ auto-import="false" then all use of it in HQL would need to be the fully qualified
+ version MyAssembly.MyNamespace.MyClass. If auto-import="true", the type could
+ be referred to in HQL as just MyClass.
+
+
+
+
+ Queues mapping files according to their dependency order.
+
+
+
+
+ Adds the specified document to the queue.
+
+
+
+
+ Gets a that can now be processed (i.e.
+ that doesn't depend on classes not yet processed).
+
+
+
+
+
+ Checks that no unprocessed documents remain in the queue.
+
+
+
+
+ Holds information about mapped classes found in an embedded resource
+
+
+
+
+ Gets the names of all classes outside this resource
+ needed by the classes in this resource.
+
+ An of
+
+
+
+ Settings that affect the behavior of NHibernate at runtime.
+
+
+
+
+ Reads configuration properties and configures a instance.
+
+
+
+
+ Provides callbacks from the to the persistent object. Persistent classes may
+ implement this interface but they are not required to.
+
+
+
+ , , and are intended to be used
+ to cascade saves and deletions of dependent objects. This is an alternative to declaring cascaded
+ operations in the mapping file.
+
+
+ may be used to initialize transient properties of the object from its persistent
+ state. It may not be used to load dependent objects since the interface
+ may not be invoked from inside this method.
+
+
+ A further intended usage of , , and
+ is to store a reference to the for later use.
+
+
+ If , , or return
+ , the operation is silently vetoed. If a
+ is thrown, the operation is vetoed and the exception is passed back to the application.
+
+
+ Note that is called after an identifier is assigned to the object, except when
+ identity key generation is used.
+
+
+
+
+
+ Called when an entity is saved
+
+ The session
+ If we should veto the save
+
+
+
+ Called when an entity is passed to .
+
+ The session
+ A value indicating whether the operation
+ should be vetoed or allowed to proceed.
+
+ This method is not called every time the object's state is
+ persisted during a flush.
+
+
+
+
+ Called when an entity is deleted
+
+ The session
+ A value indicating whether the operation
+ should be vetoed or allowed to proceed.
+
+
+
+ Called after an entity is loaded.
+
+
+ It is illegal to access the from inside this method..
+ However, the object may keep a reference to the session for later use
+
+ The session
+ The identifier
+
+
+
+ Veto the action
+
+
+
+
+ Accept the action
+
+
+
+
+ Implemented by persistent classes with invariants that must be checked before inserting
+ into or updating the database
+
+
+
+
+ Validate the state of the object before persisting it. If a violation occurs,
+ throw a . This method must not change the state of the object
+ by side-effect.
+
+
+
+
+ Thrown from when an invariant was violated. Some applications
+ might subclass this exception in order to provide more information about the violation
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+
+
+ Initializes a new instance of the class.
+
+
+ The exception that is the cause of the current exception. If the innerException parameter
+ is not a null reference, the current exception is raised in a catch block that handles
+ the inner exception.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+ The exception that is the cause of the current exception. If the innerException parameter
+ is not a null reference, the current exception is raised in a catch block that handles
+ the inner exception.
+
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ An unordered, unkeyed collection that can contain the same element
+ multiple times. The .NET collections API, has no Bag.
+ The interface closely resembles bag semantics,
+ however NHibernate for .NET 1.1 used so
+ is used to ensure the easiest transition
+ to generics.
+
+ The type of the element the bag should hold.
+ The underlying collection used is an
+
+
+
+ Base class for implementing .
+
+
+
+
+
+ Persistent collections are treated as value objects by NHibernate.
+ ie. they have no independent existence beyond the object holding
+ a reference to them. Unlike instances of entity classes, they are
+ automatically deleted when unreferenced and automatically become
+ persistent when held by a persistent object. Collections can be
+ passed between different objects (change "roles") and this might
+ cause their elements to move from one database table to another.
+
+
+ NHibernate "wraps" a collection in an instance of
+ . This mechanism is designed
+ to support tracking of changes to the collection's persistent
+ state and lazy instantiation of collection elements. The downside
+ is that only certain abstract collection types are supported and
+ any extra semantics are lost.
+
+
+ Applications should never use classes in this namespace
+ directly, unless extending the "framework" here.
+
+
+ Changes to structure of the collection are recorded by the
+ collection calling back to the session. Changes to mutable
+ elements (ie. composite elements) are discovered by cloning their
+ state when the collection is initialized and comparing at flush
+ time.
+
+
+
+
+
+ Clears out any Queued Additions.
+
+
+ After a Flush() the database is in synch with the in-memory
+ contents of the Collection. Since everything is in synch remove
+ any Queued Additions.
+
+
+
+
+ Return the user-visible collection (or array) instance
+
+
+ By default, the NHibernate wrapper is an acceptable collection for
+ the end user code to work with because it is interface compatible.
+ An NHibernate PersistentList is an IList, an NHibernate PersistentMap is an IDictionary
+ and those are the types user code is expecting.
+
+
+
+
+ Called just before reading any rows from the
+
+
+
+
+ Called after reading all rows from the
+
+
+ This should be overridden by sub collections that use temporary collections
+ to store values read from the db.
+
+
+
+
+ Disassociate this collection from the given session.
+
+
+ true if this was currently associated with the given session
+
+
+
+ Associate the collection with the given session.
+
+
+ false if the collection was already associated with the session
+
+
+
+ Read the state of the collection from a disassembled cached value.
+
+
+
+
+
+
+
+ Iterate all collection entries, during update of the database
+
+
+ An that gives access to all entries
+ in the collection.
+
+
+
+
+ Reads the row from the .
+
+
+ This method should be prepared to handle duplicate elements caused by fetching multiple collections,
+ or should be updated
+ to return for the collection type.
+
+ The IDataReader that contains the value of the Identifier
+ The persister for this Collection.
+ The descriptor providing result set column names
+ The owner of this Collection.
+ The object that was contained in the row.
+
+
+
+ Get the identifier of the given collection entry
+
+
+
+
+ Get the index of the given collection entry
+
+
+
+
+ Get the value of the given collection entry
+
+
+
+
+ Called before any elements are read into the collection,
+ allowing appropriate initializations to occur.
+
+ The for this persistent collection.
+
+
+
+ Does the current state exactly match the snapshot?
+
+ The to compare the elements of the Collection.
+
+ if the wrapped collection is different than the snapshot
+ of the collection or if one of the elements in the collection is
+ dirty.
+
+
+
+
+ Disassemble the collection, ready for the cache
+
+ The for this Collection.
+ The contents of the persistent collection in a cacheable form.
+
+
+
+ Gets a indicating if the rows for this collection
+ need to be recreated in the table.
+
+ The for this Collection.
+
+ by default since most collections can determine which rows need to be
+ individually updated/inserted/deleted. Currently only 's for many-to-many
+ need to be recreated.
+
+
+
+
+ Return a new snapshot of the current state of the collection
+
+
+
+
+ To be called internally by the session, forcing
+ immediate initalization.
+
+
+ This method is similar to , except that different exceptions are thrown.
+
+
+
+
+ Does an element exist at this entry in the collection?
+
+
+
+
+ Do we need to insert this element?
+
+
+
+
+ Do we need to update this element?
+
+
+
+
+ Get all the elements that need deleting
+
+
+
+
+ Is this the wrapper for the given underlying collection instance?
+
+ The collection to see if this IPersistentCollection is wrapping.
+
+ if the IPersistentCollection is wrappping the collection instance,
+ otherwise.
+
+
+
+
+ Called before inserting rows, to ensure that any surrogate keys are fully generated
+
+
+
+
+
+ Called after inserting a row, to fetch the natively generated id
+
+
+
+
+
+
+
+ Get all "orphaned" elements
+
+ The snapshot of the collection.
+ The persistent class whose objects
+ the collection is expected to contain.
+
+ An that contains all of the elements
+ that have been orphaned.
+
+
+
+
+ Get the snapshot value of the given collection entry
+
+
+
+
+ Called after initializing from cache
+
+
+
+
+ Clear the dirty flag, after flushing changes
+ to the database.
+
+
+
+
+ Mark the collection as dirty
+
+
+
+
+ The owning entity.
+
+
+ Note that the owner is only set during the flush
+ cycle, and when a new collection wrapper is created
+ while loading an entity.
+
+
+
+
+ Is the initialized collection empty?
+
+
+
+
+ Gets a indicating if the underlying collection is directly
+ accessable through code.
+
+
+ if we are not guaranteed that the NHibernate collection wrapper
+ is being used.
+
+
+ This is typically whenever a transient object that contains a collection is being
+ associated with an through or .
+ NHibernate can't guarantee that it will know about all operations that would cause NHibernate's collections
+ to call or .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Is the collection dirty? Note that this is only
+ reliable during the flush cycle, after the
+ collection elements are dirty checked against
+ the snapshot.
+
+
+
+
+ Called by any read-only method of the collection interface
+
+
+
+
+ Called by any writer method of the collection interface
+
+
+
+
+ Queue an addition if the peristent collection supports it
+
+
+ if the addition was queued up, if the persistent collection
+ doesn't support Queued Addition.
+
+
+
+
+ Queue additions
+
+
+
+
+ After reading all existing elements from the database,
+ add the queued elements to the underlying collection.
+
+ The to add.
+ The that
+ is currently loading the collection.
+
+ The default implementation is to throw an
+ because most collections do not support delayed addition. If the collection
+ does then override this method.
+
+
+
+
+ Clears out any Queued Additions.
+
+
+ After a Flush() the database is in synch with the in-memory
+ contents of the Collection. Since everything is in synch remove
+ any Queued Additions.
+
+
+
+
+ Not called by Hibernate, but used by non-NET serialization, eg. SOAP libraries.
+
+
+
+
+ Not called by Hibernate, but used by non-NET serialization, eg. SOAP libraries.
+
+
+
+
+
+ Return the user-visible collection (or array) instance
+
+
+ By default, the NHibernate wrapper is an acceptable collection for
+ the end user code to work with because it is interface compatible.
+ An NHibernate PersistentList is an IList, an NHibernate PersistentMap is an IDictionary
+ and those are the types user code is expecting.
+
+
+
+
+ Called just before reading any rows from the
+
+
+
+
+ Called after reading all rows from the
+
+
+ This should be overridden by sub collections that use temporary collections
+ to store values read from the db.
+
+
+
+
+ Initialize the collection, if possible, wrapping any exceptions
+ in a runtime exception
+
+ currently obsolete
+ if we cannot initialize
+
+
+
+ Mark the collection as initialized.
+
+
+
+
+ Disassociate this collection from the given session.
+
+
+ true if this was currently associated with the given session
+
+
+
+ Associate the collection with the given session.
+
+
+ false if the collection was already associated with the session
+
+
+
+ Read the state of the collection from a disassembled cached value.
+
+
+
+
+
+
+
+ Iterate all collection entries, during update of the database
+
+
+
+
+
+ Reads the row from the .
+
+ The IDataReader that contains the value of the Identifier
+ The persister for this Collection.
+ The descriptor providing result set column names
+ The owner of this Collection.
+ The object that was contained in the row.
+
+
+
+ Get the index of the given collection entry
+
+
+
+
+
+
+
+ Called before any elements are read into the collection,
+ allowing appropriate initializations to occur.
+
+
+
+
+
+ Does the current state exactly match the snapshot?
+
+
+
+
+
+
+ Return a new snapshot of the current state
+
+ The for this Collection.
+
+
+
+
+ Disassemble the collection, ready for the cache
+
+
+
+
+
+
+ Gets a indicating if the rows for this collection
+ need to be recreated in the table.
+
+ The for this Collection.
+
+ by default since most collections can determine which rows need to be
+ individually updated/inserted/deleted. Currently only 's for many-to-many
+ need to be recreated.
+
+
+
+
+
+
+
+
+
+
+
+ To be called internally by the session, forcing
+ immediate initalization.
+
+
+ This method is similar to , except that different exceptions are thrown.
+
+
+
+
+ Does an element exist at this entry in the collection?
+
+
+
+
+
+
+
+ Do we need to insert this element?
+
+
+
+
+
+
+
+
+ Do we need to update this element?
+
+
+
+
+
+
+
+
+ Get all the elements that need deleting
+
+
+
+
+ Is this the wrapper for the given underlying collection instance?
+
+
+
+
+
+
+ Gets the Snapshot from the current session the collection
+ is in.
+
+
+
+
+ Called before inserting rows, to ensure that any surrogate keys are fully generated
+
+
+
+
+
+ Called after inserting a row, to fetch the natively generated id
+
+
+
+
+
+
+
+ Get all "orphaned" elements
+
+
+
+
+ Is the initialized collection empty?
+
+
+
+
+ Is the collection currently connected to an open session?
+
+
+
+
+ Is this collection in a state that would allow us to "queue" additions?
+
+
+
+
+ Gets a indicating if the underlying collection is directly
+ accessable through code.
+
+
+ if we are not guaranteed that the NHibernate collection wrapper
+ is being used.
+
+
+ This is typically whenever a transient object that contains a collection is being
+ associated with an through or .
+ NHibernate can't guarantee that it will know about all operations that would cause NHibernate's collections
+ to call or .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Initializes an instance of the
+ in the .
+
+ The the bag is in.
+
+
+
+ Initializes an instance of the
+ that wraps an existing in the .
+
+ The the bag is in.
+ The to wrap.
+
+
+
+ Gets a indicating if this Bag needs to be recreated
+ in the database.
+
+ The for this Collection.
+
+ if this is a one-to-many bag, if this is not
+ a one-to-many bag. Since a bag is an unordered, unindexed collection
+ that permits duplicates it is not possible to determine what has changed in a
+ many-to-many so it is just recreated.
+
+
+
+
+ Counts the number of times that the occurs
+ in the .
+
+ The element to find in the list.
+ The to search.
+ The that can determine equality.
+
+ The number of occurrences of the element in the list.
+
+
+
+
+ Is this the wrapper for the given underlying bag instance?
+
+ The bag that might be wrapped.
+
+ if the is equal to the
+ wrapped collection by object reference.
+
+
+
+
+ Is the initialized GenericBag empty?
+
+ if the bag has a Count==0, otherwise.
+
+
+
+ Implements "bag" semantics more efficiently than by adding
+ a synthetic identifier column to the table.
+
+
+
+ The identifier is unique for all rows in the table, allowing very efficient
+ updates and deletes. The value of the identifier is never exposed to the
+ application.
+
+
+ Identifier bags may not be used for a many-to-one association. Furthermore,
+ there is no reason to use inverse="true".
+
+
+
+
+
+ Initializes this Bag from the cached values.
+
+ The CollectionPersister to use to reassemble the PersistentIdentifierBag.
+ The disassembled PersistentIdentifierBag.
+ The owner object.
+
+
+
+ A persistent wrapper for an
+
+ The type of the element the list should hold.
+ The underlying collection used is a
+
+
+
+ Initializes an instance of the
+ in the .
+
+ The the list is in.
+
+
+
+ Initializes an instance of the
+ that wraps an existing in the .
+
+ The the bag is in.
+ The to wrap.
+
+
+
+ Does the current state of the list exactly match the snapshot?
+
+ The to compare the elements of the Collection.
+
+ if the wrapped list is different than the snapshot
+ of the list or if one of the elements in the collection is
+ dirty.
+
+
+
+
+ Return a new snapshot of the current state.
+
+ The for this Collection.
+
+ A new that contains Deep Copies of the
+ Elements stored in this wrapped collection.
+
+
+
+
+ Get all "orphaned" elements.
+
+ The snapshot of the collection.
+ The type of the entities the collection
+ is supposed to contain.
+
+ An that contains all of the elements
+ that have been orphaned.
+
+
+
+
+ A persistent wrapper for a . Underlying
+ collection is a
+
+ The type of the keys in the IDictionary.
+ The type of the elements in the IDictionary.
+
+
+
+ Initializes an instance of the
+ in the .
+
+ The the map is in.
+
+
+
+ Initializes an instance of the
+ that wraps an existing in the
+ .
+
+ The the bag is in.
+ The to wrap.
+
+
+
+ .NET has no design equivalent for Java's Set so we are going to use the
+ Iesi.Collections library. This class is internal to NHibernate and shouldn't
+ be used by user code.
+
+
+ The code for the Iesi.Collections library was taken from the article
+ Add Support for "Set" Collections
+ to .NET that was written by JasonSmith.
+
+
+
+
+ The that NHibernate is wrapping.
+
+
+
+
+ A temporary list that holds the objects while the set is being
+ populated from the database.
+
+
+ This is necessary to ensure that the object being added to the set doesn't
+ have its and
+ methods called during the load process.
+
+
+
+
+ Returns a Hashtable where the Key & the Value are both a Copy of the
+ same object.
+
+
+
+
+
+
+ This constructor is NOT meant to be called from user code.
+
+
+
+
+ Creates a new PersistentGenericSet initialized to the values in the Map.
+ This constructor is NOT meant to be called from user code.
+
+
+ Only call this constructor if you consider the map initialized.
+
+
+
+
+ Initializes this PersistentGenericSet from the cached values.
+
+ The CollectionPersister to use to reassemble the set.
+ The disassembled set.
+ The owner object.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Set up the temporary List that will be used in the EndRead()
+ to fully create the set.
+
+
+
+
+ Takes the contents stored in the temporary list created during
+ that was populated during and writes it to the underlying
+ set.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A persistent wrapper for an array. lazy initialization is NOT supported
+
+
+
+
+ The that NHibernate is wrapping.
+
+
+
+
+ A temporary list that holds the objects while the PersistentArrayHolder is being
+ populated from the database.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Before is called the PersistentArrayHolder needs to setup
+ a temporary list to hold the objects.
+
+
+
+
+ Takes the contents stored in the temporary list created during
+ that was populated during and write it to the underlying
+ array.
+
+
+
+
+ Initializes this array holder from the cached values.
+
+ The CollectionPersister to use to reassemble the Array.
+ The disassembled Array.
+ The owner object.
+
+
+
+ Returns the user-visible portion of the NHibernate PersistentArrayHolder.
+
+
+ The array that contains the data, not the NHibernate wrapper.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ An unordered, unkeyed collection that can contain the same element
+ multiple times. The .NET collections API has no Bag class.
+ Most developers seem to use s to represent bag semantics,
+ so NHibernate follows this practice.
+
+
+
+
+ Counts the number of times that the occurs
+ in the .
+
+ The element to find in the list.
+ The to search.
+ The that can determine equality.
+
+ The number of occurrences of the element in the list.
+
+
+
+
+ Initializes this PersistentBag from the cached values.
+
+ The CollectionPersister to use to reassemble the PersistentBag.
+ The disassembled PersistentBag.
+ The owner object.
+
+
+
+ Gets a indicating if this PersistentBag needs to be recreated
+ in the database.
+
+
+
+ if this is a one-to-many Bag, if this is not
+ a one-to-many Bag. Since a Bag is an unordered, unindexed collection
+ that permits duplicates it is not possible to determine what has changed in a
+ many-to-many so it is just recreated.
+
+
+
+
+ Implements "bag" semantics more efficiently than a regular
+ by adding a synthetic identifier column to the table.
+
+
+
+ The identifier is unique for all rows in the table, allowing very efficient
+ updates and deletes. The value of the identifier is never exposed to the
+ application.
+
+
+ PersistentIdentifierBags may not be used for a many-to-one association. Furthermore,
+ there is no reason to use inverse="true".
+
+
+
+
+
+ Initializes this Bag from the cached values.
+
+ The CollectionPersister to use to reassemble the PersistentIdentifierBag.
+ The disassembled PersistentIdentifierBag.
+ The owner object.
+
+
+
+ A persistent wrapper for an
+
+
+ The underlying collection used in an .
+
+
+
+
+ Return a new snapshot of the current state.
+
+ The for this Collection.
+
+ A new that contains Deep Copies of the
+ Elements stored in this wrapped collection.
+
+
+
+
+ Does the current state of the list exactly match the snapshot?
+
+ The to compare the elements of the Collection.
+
+ if the wrapped list is different than the snapshot
+ of the list or if one of the elements in the collection is
+ dirty.
+
+
+
+
+ Initializes an instance of the
+ in the .
+
+ The the list is in.
+
+
+
+ Initializes an instance of the
+ that wraps an existing in the .
+
+ The the list is in.
+ The to wrap.
+
+
+
+
+
+
+ Initializes this PersistentList from the cached values.
+
+ The CollectionPersister to use to reassemble the PersistentList.
+ The disassembled PersistentList.
+ The owner object.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A persistent wrapper for a . Underlying collection
+ is a .
+
+
+
+
+ Construct an uninitialized PersistentMap.
+
+ The ISession the PersistentMap should be a part of.
+
+
+
+ Construct an initialized PersistentMap based off the values from the existing IDictionary.
+
+ The ISession the PersistentMap should be a part of.
+ The IDictionary that contains the initial values.
+
+
+
+ Initializes this PersistentMap from the cached values.
+
+ The CollectionPersister to use to reassemble the PersistentMap.
+ The disassembled PersistentMap.
+ The owner object.
+
+
+
+ .NET has no design equivalent for Java's Set so we are going to use the
+ Iesi.Collections library. This class is internal to NHibernate and shouldn't
+ be used by user code.
+
+
+ The code for the Iesi.Collections library was taken from the article
+ Add Support for "Set" Collections
+ to .NET that was written by JasonSmith.
+
+
+
+
+ The that NHibernate is wrapping.
+
+
+
+
+ A temporary list that holds the objects while the PersistentSet is being
+ populated from the database.
+
+
+ This is necessary to ensure that the object being added to the PersistentSet doesn't
+ have its' GetHashCode() and Equals() methods called during the load
+ process.
+
+
+
+
+ Returns a Hashtable where the Key & the Value are both a Copy of the
+ same object.
+
+
+
+
+
+
+ This constructor is NOT meant to be called from user code.
+
+
+
+
+ Creates a new PersistentSet initialized to the values in the Map.
+ This constructor is NOT meant to be called from user code.
+
+
+ Only call this constructor if you consider the map initialized.
+
+
+
+
+ Initializes this PersistentSet from the cached values.
+
+ The CollectionPersister to use to reassemble the PersistentSet.
+ The disassembled PersistentSet.
+ The owner object.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Set up the temporary List that will be used in the EndRead()
+ to fully create the set.
+
+
+
+
+ Takes the contents stored in the temporary list created during BeginRead()
+ that was populated during ReadFrom() and write it to the underlying
+ PersistentSet.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The base class for the ConnectionProvider.
+
+
+
+
+ A strategy for obtaining ADO.NET .
+
+
+ The IConnectionProvider interface is not intended to be exposed to the application.
+ Instead it is used internally by NHibernate to obtain .
+ Implementors should provide a public default constructor.
+
+
+
+
+ Initialize the connection provider from the given properties.
+
+ The connection provider settings
+
+
+
+ Dispose of a used
+
+ The to clean up.
+
+
+
+ Get an open .
+
+ An open .
+
+
+
+ Gets the this ConnectionProvider should use to
+ communicate with the .NET Data Provider
+
+
+ The to communicate with the .NET Data Provider.
+
+
+
+
+ Closes the .
+
+ The to clean up.
+
+
+
+ Configures the ConnectionProvider with the Driver and the ConnectionString.
+
+ An that contains the settings for this ConnectionProvider.
+
+ Thrown when a could not be found
+ in the settings parameter or the Driver Class could not be loaded.
+
+
+
+
+ Get the .NET 2.0 named connection string
+
+
+ Thrown when a was found
+ in the settings parameter but could not be found in the app.config
+
+
+
+
+ Configures the driver for the ConnectionProvider.
+
+ An that contains the settings for the Driver.
+
+ Thrown when the could not be
+ found in the settings parameter or there is a problem with creating
+ the .
+
+
+
+
+ Get an open .
+
+ An open .
+
+
+
+ A flag to indicate if Disose() has been called.
+
+
+
+
+ Finalizer that ensures the object is correctly disposed of.
+
+
+
+
+ Takes care of freeing the managed and unmanaged resources that
+ this class is responsible for.
+
+
+
+
+ Takes care of freeing the managed and unmanaged resources that
+ this class is responsible for.
+
+ Indicates if this ConnectionProvider is being Disposed of or Finalized.
+
+
+ If this ConnectionProvider is being Finalized (isDisposing==false) then make
+ sure not to call any methods that could potentially bring this
+ ConnectionProvider back to life.
+
+
+ If any subclasses manage resources that also need to be disposed of this method
+ should be overridden, but don't forget to call it in the override.
+
+
+
+
+
+ Gets the for the
+ to connect to the database.
+
+
+ The for the
+ to connect to the database.
+
+
+
+
+ Gets the that can create the object.
+
+
+ The that can create the .
+
+
+
+
+ Instanciates a connection provider given configuration properties.
+
+
+
+
+
+
+
+
+
+
+
+ A ConnectionProvider that uses an IDriver to create connections.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Closes and Disposes of the .
+
+ The to clean up.
+
+
+
+ Gets a new open through
+ the .
+
+
+ An Open .
+
+
+ If there is any problem creating or opening the .
+
+
+
+
+ An implementation of the IConnectionProvider that simply throws an exception when
+ a connection is requested.
+
+
+ This implementation indicates that the user is expected to supply an ADO.NET connection
+
+
+
+
+ Throws an if this method is called
+ because the user is responsible for closing s.
+
+ The to clean up.
+
+ Thrown when this method is called. User is responsible for closing
+ s.
+
+
+
+
+ Throws an if this method is called
+ because the user is responsible for creating s.
+
+
+ No value is returned because an is thrown.
+
+
+ Thrown when this method is called. User is responsible for creating
+ s.
+
+
+
+
+ Configures the ConnectionProvider with only the Driver class.
+
+
+
+ All other settings of the Connection are the responsibility of the User since they configured
+ NHibernate to use a Connection supplied by the User.
+
+
+
+
+ Provides a current session
+ for each .
+ Not recommended for .NET 2.0 web applications.
+
+
+
+
+ Extends the contract defined by
+ by providing methods to bind and unbind sessions to the current context.
+
+
+ The notion of a contextual session is managed by some external entity
+ (generally some form of interceptor like the HttpModule).
+ This external manager is responsible for scoping these contextual sessions
+ appropriately binding/unbinding them here for exposure to the application
+ through calls.
+
+
+
+
+ Defines the contract for implementations which know how to
+ scope the notion of a current session.
+
+
+
+ Implementations should adhere to the following:
+
+ contain a constructor accepting a single argument of type
+
+ should be thread safe
+ should be fully serializable
+
+
+
+ Implementors should be aware that they are also fully responsible for
+ cleanup of any generated current-sessions.
+
+
+ Note that there will be exactly one instance of the configured
+ ICurrentSessionContext implementation per .
+
+
+ It is recommended to inherit from the class
+ whenever possible as it simplifies the implementation and provides
+ single entry point with session binding support.
+
+
+
+
+
+ Retrieve the current session according to the scoping defined
+ by this implementation.
+
+ The current session.
+ Typically indicates an issue
+ locating or creating the current session.
+
+
+
+ Retrieve the current session according to the scoping defined
+ by this implementation.
+
+ The current session.
+ Indicates an issue
+ locating the current session.
+
+
+
+ Binds the specified session to the current context.
+
+
+
+
+ Returns whether there is a session bound to the current context.
+
+
+
+
+ Unbinds and returns the current session.
+
+
+
+ Gets or sets the currently bound session.
+
+
+
+ Get the dicitonary mapping session factory to its current session.
+
+
+
+
+ Set the map mapping session factory to its current session.
+
+
+
+
+ Gets or sets the currently bound session.
+
+
+
+
+ The key is the session factory and the value is the bound session.
+
+
+
+
+ The key is the session factory and the value is the bound session.
+
+
+
+
+ Provides a current session
+ for each .
+ Works only with Web Applications.
+
+
+
+
+ Provides a current session
+ for each thread using the [].
+ To avoid if there are two session factories in the same thread.
+
+
+
+ Gets or sets the currently bound session.
+
+
+
+ Provides a current session
+ for each . Works only with web applications.
+
+
+
+
+ Used to show a better debug display for dictionaries
+
+
+
+
+ ANSI-SQL substring
+ Documented in:
+ ANSI X3.135-1992
+ American National Standard for Information Systems - Database Language - SQL
+
+
+ Syntax:
+ ::=
+ SUBSTRING FROM < start position>
+ [ FOR ]
+ ]]>
+
+
+
+
+ Provides support routines for the HQL functions as used
+ in the various SQL Dialects
+
+ Provides an interface for supporting various HQL functions that are
+ translated to SQL. The Dialect and its sub-classes use this interface to
+ provide details required for processing of the function.
+
+
+
+
+ The function return type
+
+ The type of the first argument
+
+
+
+
+
+ Render the function call as SQL.
+
+ List of arguments
+
+ SQL fragment for the fuction.
+
+
+
+ Does this function have any arguments?
+
+
+
+
+ If there are no arguments, are parens required?
+
+
+
+
+ A SQLFunction implementation that emulates the ANSI SQL trim function
+ on dialects which do not support the full definition. However, this function
+ definition does assume the availability of ltrim, rtrim, and replace functions
+ which it uses in various combinations to emulate the desired ANSI trim()
+ functionality.
+
+
+
+
+
+
+
+
+
+
+ according to both the ANSI-SQL and EJB3 specs, trim can either take
+ exactly one parameter or a variable number of parameters between 1 and 4.
+ from the SQL spec:
+ ::=
+ TRIM
+
+ ::=
+ [ [ ] [ ] FROM ]
+
+ ::=
+ LEADING
+ | TRAILING
+ | BOTH
+ ]]>
+ If only trim specification is omitted, BOTH is assumed;
+ if trim character is omitted, space is assumed
+
+
+
+
+ ANSI-SQL style cast(foo as type) where the type is a NHibernate type
+
+
+
+
+ Emulation of locate() on Sybase
+
+
+
+
+ Initializes a new instance of the StandardSQLFunction class.
+
+ SQL function name.
+ Whether the function accepts an asterisk (*) in place of arguments
+
+
+
+ Initializes a new instance of the StandardSQLFunction class.
+
+ SQL function name.
+ True if accept asterisk like argument
+ Return type for the fuction.
+
+
+
+ Classic AVG sqlfunction that return types as it was done in Hibernate 3.1
+
+
+
+
+ Classic COUNT sqlfunction that return types as it was done in Hibernate 3.1
+
+
+
+
+ Classic SUM sqlfunction that return types as it was done in Hibernate 3.1
+
+
+
+
+ Summary description for NoArgSQLFunction.
+
+
+
+
+ Emulation of coalesce() on Oracle, using multiple nvl() calls
+
+
+
+
+ Emulation of locate() on PostgreSQL
+
+
+
+
+ Represents HQL functions that can have different representations in different SQL dialects.
+ E.g. in HQL we can define function concat(?1, ?2) to concatenate two strings
+ p1 and p2. Target SQL function will be dialect-specific, e.g. (?1 || ?2) for
+ Oracle, concat(?1, ?2) for MySql, (?1 + ?2) for MS SQL.
+ Each dialect will define a template as a string (exactly like above) marking function
+ parameters with '?' followed by parameter's index (first index is 1).
+
+
+
+
+ Applies the template to passed in arguments.
+
+ args function arguments
+ generated SQL function call
+
+
+
+
+ Provides a standard implementation that supports the majority of the HQL
+ functions that are translated to SQL.
+
+
+ The Dialect and its sub-classes use this class to provide details required
+ for processing of the associated function.
+
+
+
+
+ Initializes a new instance of the StandardSQLFunction class.
+
+ SQL function name.
+
+
+
+ Initializes a new instance of the StandardSQLFunction class.
+
+ SQL function name.
+ Return type for the fuction.
+
+
+
+ Support for slightly more general templating than StandardSQLFunction,
+ with an unlimited number of arguments.
+
+
+
+
+ An SQL dialect for DB2 on iSeries OS/400.
+
+
+ The DB2400Dialect defaults the following configuration properties:
+
+
+ Property
+ Default Value
+
+
+ hibernate.connection.driver_class
+
+
+
+
+
+
+
+ An SQL dialect for DB2.
+
+
+ The DB2Dialect defaults the following configuration properties:
+
+
+ Property
+ Default Value
+
+
+ hibernate.connection.driver_class
+
+
+
+
+
+
+
+ Represents a dialect of SQL implemented by a particular RDBMS. Sublcasses
+ implement NHibernate compatibility with different systems.
+
+
+ Subclasses should provide a public default constructor that Register()
+ a set of type mappings and default Hibernate properties.
+
+
+
+
+
+
+
+
+
+
+ Characters used for quoting sql identifiers
+
+
+
+
+
+
+
+
+
+
+ The base constructor for Dialect.
+
+
+ Every subclass should override this and call Register() with every except
+ , , , ,
+ , .
+
+
+ The Default properties for this Dialect should also be set - such as whether or not to use outer-joins
+ and what the batch size should be.
+
+
+
+
+
+ Get the name of the database type associated with the given
+ ,
+
+ The SqlType
+ The database type name used by ddl.
+
+
+
+ Get the name of the database type associated with the given
+ .
+
+ The SqlType
+ The length of the SqlType
+ The database type name used by ddl.
+
+
+
+
+
+
+
+
+
+
+ Subclasses register a typename for the given type code and maximum
+ column length. $1 in the type name will be replaced by the column
+ length (if appropriate)
+
+ The typecode
+ Maximum length of database type
+ The database type name
+
+
+
+ Suclasses register a typename for the given type code. $1 in the
+ typename will be replaced by the column length (if appropriate).
+
+ The typecode
+ The database type name
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The syntax used to drop a foreign key constraint from a table.
+
+ The name of the foreign key constraint to drop.
+
+ The SQL string to drop the foreign key constraint.
+
+
+
+
+ The syntax used to add a primary key constraint to a table
+
+
+
+
+
+ The syntax used to drop a primary key constraint from a table.
+
+ The name of the primary key constraint to drop.
+
+ The SQL string to drop the primary key constraint.
+
+
+
+
+ The syntax used to drop an index constraint from a table.
+
+ The name of the index constraint to drop.
+
+ The SQL string to drop the primary key constraint.
+
+
+
+
+ Generate SQL to get the identifier of an inserted row.
+ If the returned value is not null, the caller will prepare a statement from it,
+ set SQL parameters just as it would for insertSQL, and execute it as a query
+ which is expected to return the identifier of the inserted row.
+ If the returned value is null, the caller will execute insertSQL as an update
+ and then execute IdentitySelectString as a query.
+ The default implementation (in this class) returns .
+
+ a parameterized SQL statement to insert a row into a table.
+ The column for which the identity generator was specified.
+ The name of the table the row is being inserted in.
+ a SQL statement that has the same effect as insertSQL
+ and also gets the identifier of the inserted row.
+ Return if this dialect doesn't support this feature.
+
+
+
+
+ The syntax that returns the identity value of the last insert, if native
+ key generation is supported
+
+
+
+
+ The syntax that fetches the next value of a sequence, if sequences are supported.
+
+ The name of the sequence
+
+
+
+
+ The syntax used to create a sequence, if sequences are supported
+
+
+
+
+
+
+ The syntax used to drop a sequence, if sequences are supported
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Create an JoinFragment for this dialect
+
+
+
+
+
+ Create an CaseFragment for this dialect
+
+
+
+
+
+ Add a LIMIT clause to the given SQL SELECT
+
+ A Query in the form of a SqlString.
+ Offset of the first row is not zero
+ A new SqlString that contains the LIMIT clause.
+
+
+
+ Add a LIMIT clause to the given SQL SELECT
+
+ A Query in the form of a SqlString.
+ Offset of the first row to be returned by the query (zero-based)
+ Maximum number of rows to be returned by the query
+ A new SqlString that contains the LIMIT clause.
+
+
+
+ Return SQL needed to drop the named table. May (and should) use
+ some form of "if exists" clause, and cascade constraints.
+
+
+
+
+
+
+ Checks to see if the name has been quoted.
+
+ The name to check if it is quoted
+ true if name is already quoted.
+
+ The default implementation is to compare the first character
+ to Dialect.OpenQuote and the last char to Dialect.CloseQuote
+
+
+
+
+ Unquotes and unescapes an already quoted name
+
+ Quoted string
+ Unquoted string
+
+
+ This method checks the string quoted to see if it is
+ quoted. If the string quoted is already enclosed in the OpenQuote
+ and CloseQuote then those chars are removed.
+
+
+ After the OpenQuote and CloseQuote have been cleaned from the string quoted
+ then any chars in the string quoted that have been escaped by doubling them
+ up are changed back to a single version.
+
+
+ The following quoted values return these results
+ "quoted" = quoted
+ "quote""d" = quote"d
+ quote""d = quote"d
+
+
+ If this implementation is not sufficient for your Dialect then it needs to be overridden.
+ MsSql2000Dialect is an example of where UnQuoting rules are different.
+
+
+
+
+
+ Unquotes an array of Quoted Names.
+
+ strings to Unquote
+ an array of unquoted strings.
+
+ This use UnQuote(string) for each string in the quoted array so
+ it should not need to be overridden - only UnQuote(string) needs
+ to be overridden unless this implementation is not sufficient.
+
+
+
+
+ Quotes a name.
+
+ The string that needs to be Quoted.
+ A QuotedName
+
+
+ This method assumes that the name is not already Quoted. So if the name passed
+ in is "name then it will return """name". It escapes the first char
+ - the " with "" and encloses the escaped string with OpenQuote and CloseQuote.
+
+
+
+
+
+ Quotes a name for being used as a aliasname
+
+ Original implementation calls
+ Name of the alias
+ A Quoted name in the format of OpenQuote + aliasName + CloseQuote
+
+
+ If the aliasName is already enclosed in the OpenQuote and CloseQuote then this
+ method will return the aliasName that was passed in without going through any
+ Quoting process. So if aliasName is passed in already Quoted make sure that
+ you have escaped all of the chars according to your DataBase's specifications.
+
+
+
+
+
+ Quotes a name for being used as a columnname
+
+ Original implementation calls
+ Name of the column
+ A Quoted name in the format of OpenQuote + columnName + CloseQuote
+
+
+ If the columnName is already enclosed in the OpenQuote and CloseQuote then this
+ method will return the columnName that was passed in without going through any
+ Quoting process. So if columnName is passed in already Quoted make sure that
+ you have escaped all of the chars according to your DataBase's specifications.
+
+
+
+
+
+ Quotes a name for being used as a tablename
+
+ Name of the table
+ A Quoted name in the format of OpenQuote + tableName + CloseQuote
+
+
+ If the tableName is already enclosed in the OpenQuote and CloseQuote then this
+ method will return the tableName that was passed in without going through any
+ Quoting process. So if tableName is passed in already Quoted make sure that
+ you have escaped all of the chars according to your DataBase's specifications.
+
+
+
+
+
+ Quotes a name for being used as a schemaname
+
+ Name of the schema
+ A Quoted name in the format of OpenQuote + schemaName + CloseQuote
+
+
+ If the schemaName is already enclosed in the OpenQuote and CloseQuote then this
+ method will return the schemaName that was passed in without going through any
+ Quoting process. So if schemaName is passed in already Quoted make sure that
+ you have escaped all of the chars according to your DataBase's specifications.
+
+
+
+
+
+ Does this dialect support the ALTER TABLE syntax?
+
+
+
+
+ Do we need to drop constraints before dropping tables in the dialect?
+
+
+
+
+ Do we need to qualify index names with the schema name?
+
+
+
+
+ How we seperate the queries when we use multiply queries.
+
+
+
+
+ Retrieves the FOR UPDATE syntax specific to this dialect
+
+ The appropriate FOR UPDATE clause string.
+
+
+
+ Retrieves the FOR UPDATE NOWAIT syntax specific to this dialect
+
+ The appropriate FOR UPDATE NOWAIT clause string.
+
+
+
+ Does this dialect support subselects?
+
+
+
+
+ Does this dialect support the UNIQUE column syntax?
+
+
+
+
+ The syntax used to add a column to a table. Note this is deprecated
+
+
+
+
+ The keyword used to specify a nullable column
+
+
+
+
+ Does this dialect support identity column key generation?
+
+
+
+
+ Does this dialect support sequences?
+
+
+
+
+ The keyword used to specify an identity column, if native key generation is supported
+
+
+
+
+ The keyword used to insert a generated value into an identity column (or null)
+
+
+
+
+ The keyword used to insert a row without specifying any column values
+
+
+
+
+ Retrieve a set of default Hibernate properties for this database.
+
+
+
+
+ Completely optional cascading drop clause
+
+
+
+
+ The name of the SQL function that transforms a string to lowercase
+
+
+
+
+ Does this Dialect have some kind of LIMIT syntax?
+
+ False, unless overridden.
+
+
+
+ Does this Dialect support an offset?
+
+
+
+
+ Can parameters be used for a statement containing a LIMIT?
+
+
+
+
+ Does the LIMIT clause specify arguments in the "reverse" order
+ limit, offset instead of offset, limit?
+
+ False, unless overridden.
+ Inheritors should return true if the correct order is limit, offset
+
+
+
+ Does the LIMIT clause come at the start of the
+ SELECT statement rather than at the end?
+
+ false, unless overridden
+
+
+
+ Does the LIMIT clause take a "maximum" row number
+ instead of a total number of returned rows?
+
+ false, unless overridden
+
+
+
+ The opening quote for a quoted identifier.
+
+
+
+
+ The closing quote for a quoted identifier.
+
+
+
+
+ Whether this dialect has an identity clause added to the data type or a
+ completely seperate identity data type.
+
+
+
+
+ Aggregate SQL functions as defined in general. This is
+ a case-insensitive hashtable!
+
+
+ The results of this method should be integrated with the
+ specialization's data.
+
+
+
+
+ Does the dialect support the syntax 'drop table if exists NAME'
+
+
+
+
+ Does the dialect support the syntax 'drop table NAME if exists'
+
+
+
+
+ Gives the best resolution that the database can use for storing
+ date/time values, in ticks.
+
+
+
+ For example, if the database can store values with 100-nanosecond
+ precision, this property is equal to 1L. If the database can only
+ store values with 1-millisecond precision, this property is equal
+ to 10000L (number of ticks in a millisecond).
+
+
+ Used in TimestampType.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Add a LIMIT clause to the given SQL SELECT
+
+ A Query in the form of a SqlString.
+ Offset of the first row is not zero
+ A new SqlString that contains the LIMIT clause.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Summary description for FirebirdDialect.
+
+
+ The FirebirdDialect defaults the following configuration properties:
+
+
+ Property
+ Default Value
+
+
+ hibernate.connection.driver_class
+
+
+
+
+
+
+
+ Add a FIRST x [SKIP] y clause to the given SQL SELECT
+
+ A Query in the form of a SqlString.
+ Maximum number of rows to be returned by the query
+ Offset of the first row to process in the result set
+ A new SqlString that contains the FIRST clause.
+
+
+
+
+
+
+ A generic SQL dialect which may or may not work on any actual databases
+
+
+
+
+
+
+
+
+
+
+ Summary description for InformixDialect.
+
+
+ The InformixDialect defaults the following configuration properties:
+
+
+ Property
+ Default Value
+
+
+ hibernate.connection.driver_class
+
+
+
+
+
+
+
+
+
+
+ The syntax that returns the identity value of the last insert, if native
+ key generation is supported
+
+
+
+
+
+
+
+ The keyword used to specify an identity column, if native key generation is supported
+
+
+
+
+ Whether this dialect have an Identity clause added to the data type or a
+ completely seperate identity data type
+
+
+
+
+ An SQL dialect for IngresSQL.
+
+
+ The IngresDialect defaults the following configuration properties:
+
+
+ Property
+ Default Value
+
+
+ hibernate.use_outer_join
+
+
+
+ hibernate.connection.driver_class
+
+
+
+
+
+
+
+ An SQL dialect compatible with Microsoft SQL Server 2000.
+
+
+ The MsSql2000Dialect defaults the following configuration properties:
+
+
+ Property
+ Default Value
+
+
+ hibernate.use_outer_join
+
+
+
+ hibernate.connection.driver_class
+
+
+
+ hibernate.prepare_sql
+
+
+
+
+
+
+
+
+
+
+ Generates the string to drop the table using SQL Server syntax.
+
+ The name of the table to drop.
+ The SQL with the inserted.
+
+
+
+
+
+
+ Add a LIMIT (TOP) clause to the given SQL SELECT
+
+ A Query in the form of a SqlString.
+ Maximum number of rows to be returned by the query
+ Offset of the first row to process in the result set
+ A new SqlString that contains the LIMIT clause.
+
+
+
+
+
+
+
+
+ MsSql does not require the OpenQuote to be escaped as long as the first char
+ is an OpenQuote.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Does this Dialect have some kind of LIMIT syntax?
+
+ True, we'll use the SELECT TOP nn syntax.
+
+
+
+ Does this Dialect support an offset?
+
+
+
+
+ Can parameters be used for a statement containing a LIMIT?
+
+
+
+
+ Does the LIMIT clause take a "maximum" row number
+ instead of a total number of returned rows?
+
+ false, unless overridden
+
+
+
+ Add a LIMIT clause to the given SQL SELECT
+
+ The to base the limit query off of.
+ Offset of the first row to be returned by the query (zero-based)
+ Maximum number of rows to be returned by the query
+ A new with the LIMIT clause applied.
+
+ The LIMIT SQL will look like
+
+
+ SELECT TOP last (columns) FROM (
+ SELECT ROW_NUMBER() OVER(ORDER BY __hibernate_sort_expr_1__ {sort direction 1} [, __hibernate_sort_expr_2__ {sort direction 2}, ...]) as row, (query.columns) FROM (
+ {original select query part}, {sort field 1} as __hibernate_sort_expr_1__ [, {sort field 2} as __hibernate_sort_expr_2__, ...]
+ {remainder of original query minus the order by clause}
+ ) query
+ ) page WHERE page.row > offset
+
+
+
+ Note that we need to add explicitly specify the columns, because we need to be able to use them
+ in a paged subselect. NH-1155
+
+
+
+
+ Sql Server 2005 supports a query statement that provides LIMIT
+ functionality.
+
+ true
+
+
+
+ Sql Server 2005 supports a query statement that provides LIMIT
+ functionality with an offset.
+
+ true
+
+
+
+ Sql Server 2005 supports a query statement that provides LIMIT
+ functionality with an offset.
+
+ false
+
+
+
+ An SQL dialect compatible with Microsoft SQL Server 7.
+
+
+ There have been no test run with this because the NHibernate team does not
+ have a machine with Sql 7 installed on it. But there have been users using
+ Ms Sql 7 with NHibernate. As issues with Ms Sql 7 and NHibernate become known
+ this Dialect will be updated.
+
+
+
+
+ Uses @@identity to get the Id value.
+
+
+ There is a well known problem with @@identity and triggers that insert into
+ rows into other tables that also use an identity column. The only way I know
+ of to get around this problem is to upgrade your database server to Ms Sql 2000.
+
+
+
+
+ A dialect for SQL Server Everywhere (SQL Server CE).
+
+
+
+
+ A SQL dialect for MySQL
+
+
+ The MySQLDialect defaults the following configuration properties:
+
+
+ Property
+ Default Value
+
+
+ hibernate.use_outer_join
+
+
+
+ hibernate.connection.driver_class
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Create the SQL string to drop a foreign key constraint.
+
+ The name of the foreign key to drop.
+ The SQL string to drop the foreign key constraint.
+
+
+
+ Create the SQL string to drop a primary key constraint.
+
+ The name of the primary key to drop.
+ The SQL string to drop the primary key constraint.
+
+
+
+ Create the SQL string to drop an index.
+
+ The name of the index to drop.
+ The SQL string to drop the index constraint.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ It's a immature version, it just work.
+ An SQL dialect for Oracle 9
+
+
+ The Oracle9Dialect defaults the following configuration properties:
+
+
+ Property
+ Default Value
+
+
+ hibernate.use_outer_join
+
+
+
+ hibernate.connection.driver_class
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ An SQL dialect for Oracle, compatible with Oracle 8.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ An SQL dialect for PostgreSQL 8.1 and above.
+
+
+
+ PostgreSQL 8.1 supports FOR UPDATE ... NOWAIT syntax.
+
+
+ PostgreSQL supports Identity column using the "SERIAL" type.
+ Serial type is a "virtual" type that will automatically:
+
+
+ Create a sequence named tablename_colname_seq.
+ Set the default value of this column to the next value of the
+ sequence. (using function nextval('tablename_colname_seq'))
+ Add a "NOT NULL" constraint to this column.
+ Set the sequence as "owned by" the table.
+
+
+ To insert the next value of the sequence into the serial column,
+ exclude the column from the list of columns
+ in the INSERT statement or use the DEFAULT key word.
+
+
+ If the table or the column is dropped, the sequence is dropped too.
+
+
+
+
+
+
+ An SQL dialect for PostgreSQL.
+
+
+ The PostgreSQLDialect defaults the following configuration properties:
+
+
+ Property
+ Default Value
+
+
+ hibernate.use_outer_join
+
+
+
+ hibernate.connection.driver_class
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Offset of the first row to process in the result set is non-zero
+
+
+
+
+
+
+
+
+
+
+ PostgreSQL 8.1 and above defined the fuction lastval() that returns the
+ value of the last sequence that nextval() was used on in the current session.
+ Call lastval() if nextval() has not yet been called in the current
+ session throw an exception.
+
+ not used
+ not used
+
+
+
+
+ PostgreSQL supports Identity column using the "SERIAL" type.
+
+
+
+
+ PostgreSQL doesn't have type in identity column.
+
+
+ To create an identity column it uses the SQL syntax
+ CREATE TABLE tablename (colname SERIAL); or
+ CREATE TABLE tablename (colname BIGSERIAL);
+
+
+
+
+ PostgreSQL supports serial and serial4 type for 4 bytes integer auto increment column.
+ bigserial or serial8 can be used for 8 bytes integer auto increment column.
+ This dialect uses serial
+
+
+
+
+ The sql syntax to insert a row without specifying any column in PostgreSQL is
+ INSERT INTO table DEFAULT VALUES;
+
+
+
+
+ An SQL dialect for PostgreSQL 8.2 and above.
+
+
+ PostgreSQL 8.2 supports DROP TABLE IF EXISTS tablename
+ and DROP SEQUENCE IF EXISTS sequencename syntax.
+ See for more information.
+
+
+
+
+ A SQL dialect for SQLite.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This is a subclass of SybaseDialect for sybase 11 databases (specifically tested against 11.9.2). 11.9.2 does not support ANSI JOINs
+ therefore we have to provide a special join fragment for left/right joins (*= and =* respectively).
+
+
+
+
+ An SQL dialect compatible with Sybase.
+
+
+
+ This dialect probably will not work with schema-export. If anyone out there
+ can fill in the ctor with DbTypes to Strings that would be helpful.
+
+ The SybaseDialect defaults the following configuration properties:
+
+
+ Property
+ Default Value
+
+
+ hibernate.use_outer_join
+
+
+
+ hibernate.connection.driver_class
+
+
+
+ hibernate.prepare_sql
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Sybase does not support quoted aliases, this function thus returns
+ aliasName as is.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This class is basically a port of the hibernate 3.2 Sybase 11 join fragment. It usees concepts from that join fragment and the Oracle join fragment in NHibernate
+
+
+
+
+ Represents a SQL JOIN
+
+
+
+
+ An SQL dialect for Sybase Adaptive Server Anywhere 9.0
+
+
+
+ This dialect probably will not work with schema-export. If anyone out there
+ can fill in the ctor with DbTypes to Strings that would be helpful.
+
+ The SybaseAnywhereDialect defaults the following configuration properties:
+
+
+ Property
+ Default Value
+
+
+ hibernate.use_outer_join
+
+
+
+ hibernate.connection.driver_class
+
+
+
+ hibernate.prepare_sql
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ASA does not require to drop constraint before dropping tables, and DROP statement
+ syntax used by Hibernate to drop constraint is not compatible with ASA, so disable it.
+ Comments matchs SybaseAnywhereDialect from Hibernate-3.1 src
+
+
+
+
+ This class maps a DbType to names.
+
+
+ Associations may be marked with a capacity. Calling the Get()
+ method with a type and actual size n will return the associated
+ name with smallest capacity >= n, if available and an unmarked
+ default type otherwise.
+ Eg, setting
+
+ Names.Put(DbType, "TEXT" );
+ Names.Put(DbType, 255, "VARCHAR($1)" );
+ Names.Put(DbType, 65534, "LONGVARCHAR($1)" );
+
+ will give you back the following:
+
+ Names.Get(DbType) // --> "TEXT" (default)
+ Names.Get(DbType,100) // --> "VARCHAR(100)" (100 is in [0:255])
+ Names.Get(DbType,1000) // --> "LONGVARCHAR(1000)" (100 is in [256:65534])
+ Names.Get(DbType,100000) // --> "TEXT" (default)
+
+ On the other hand, simply putting
+
+ Names.Put(DbType, "VARCHAR($1)" );
+
+ would result in
+
+ Names.Get(DbType) // --> "VARCHAR($1)" (will cause trouble)
+ Names.Get(DbType,100) // --> "VARCHAR(100)"
+ Names.Get(DbType,1000) // --> "VARCHAR(1000)"
+ Names.Get(DbType,10000) // --> "VARCHAR(10000)"
+
+
+
+
+
+ Constructor.
+
+ String to be replaced by actual size/length in type names
+
+
+
+ Get default type name for specified type
+
+ the type key
+ the default type name associated with the specified key
+
+
+
+ Get the type name specified type and size
+
+ the type key
+ the (maximum) type size/length
+
+ The associated name with smallest capacity >= size if available and the
+ default type name otherwise
+
+
+
+
+ Set a type name for specified type key and capacity
+
+ the type key
+ the (maximum) type size/length
+ The associated name
+
+
+
+
+
+
+
+
+
+
+ The ASAClientDriver Driver provides a database driver for Adaptive Server Anywhere 9.0.
+
+
+
+
+ Base class for the implementation of IDriver
+
+
+
+
+ A strategy for describing how NHibernate should interact with the different .NET Data
+ Providers.
+
+
+
+ The IDriver interface is not intended to be exposed to the application.
+ Instead it is used internally by NHibernate to obtain connection objects, command objects, and
+ to generate and prepare IDbCommands. Implementors should provide a
+ public default constructor.
+
+
+ This is the interface to implement, or you can inherit from
+ if you have an ADO.NET data provider that NHibernate does not have built in support for.
+ To use the driver, NHibernate property hibernate.connection.driver_class should be
+ set to the assembly-qualified name of the driver class.
+
+
+ key="hibernate.connection.driver_class"
+ value="FullyQualifiedClassName, AssemblyName"
+
+
+
+
+
+ Configure the driver using .
+
+
+
+
+ Creates an uninitialized IDbConnection object for the specific Driver
+
+
+
+
+ Generates an IDbCommand from the SqlString according to the requirements of the DataProvider.
+
+ The of the command to generate.
+ The SqlString that contains the SQL.
+ The types of the parameters to generate for the command.
+ An IDbCommand with the CommandText and Parameters fully set.
+
+
+
+ Prepare the by calling .
+ May be a no-op if the driver does not support preparing commands, or for any other reason.
+
+
+
+
+
+ Create an instance of according to the configuration
+ and the capabilities of the driver
+
+ The connection manager for the batcher.
+
+
+
+
+ Does this Driver support having more than 1 open IDataReader with
+ the same IDbConnection.
+
+
+
+ A value of indicates that an exception would be thrown if NHibernate
+ attempted to have 2 IDataReaders open using the same IDbConnection. NHibernate
+ (since this version is a close to straight port of Hibernate) relies on the
+ ability to recursively open 2 IDataReaders. If the Driver does not support it
+ then NHibernate will read the values from the IDataReader into an .
+
+
+ A value of will result in greater performance because an IDataReader can be used
+ instead of the . So if the Driver supports it then make sure
+ it is set to .
+
+
+
+
+
+ Can we issue several select queries in a single query, and get
+ several result sets back?
+
+
+
+
+ Change the parameterName into the correct format IDbCommand.CommandText
+ for the ConnectionProvider
+
+ The unformatted name of the parameter
+ A parameter formatted for an IDbCommand.CommandText
+
+
+
+ Changes the parameterName into the correct format for an IDbParameter
+ for the Driver.
+
+
+ For SqlServerConnectionProvider it will change id to @id
+
+ The unformatted name of the parameter
+ A parameter formatted for an IDbParameter.
+
+
+
+ Create an instance of according to the configuration
+ and the capabilities of the driver
+
+
+ By default, .Net doesn't have any batching capabilities, drivers that does have
+ batching support need to override this method and return their own batcher.
+
+
+
+
+ Generates an IDbDataParameter for the IDbCommand. It does not add the IDbDataParameter to the IDbCommand's
+ Parameter collection.
+
+ The IDbCommand to use to create the IDbDataParameter.
+ The name to set for IDbDataParameter.Name
+ The SqlType to set for IDbDataParameter.
+ An IDbDataParameter ready to be added to an IDbCommand.
+
+
+
+ Does this Driver require the use of a Named Prefix in the SQL statement.
+
+
+ For example, SqlClient requires select * from simple where simple_id = @simple_id
+ If this is false, like with the OleDb provider, then it is assumed that
+ the ? can be a placeholder for the parameter in the SQL statement.
+
+
+
+
+ Does this Driver require the use of the Named Prefix when trying
+ to reference the Parameter in the Command's Parameter collection.
+
+
+ This is really only useful when the UseNamedPrefixInSql == true. When this is true the
+ code will look like:
+ IDbParameter param = cmd.Parameters["@paramName"]
+ if this is false the code will be
+ IDbParameter param = cmd.Parameters["paramName"].
+
+
+
+
+ The Named Prefix for parameters.
+
+
+ Sql Server uses "@" and Oracle uses ":".
+
+
+
+
+ Does this Driver support IDbCommand.Prepare().
+
+
+
+ A value of indicates that an exception would be thrown or the
+ company that produces the Driver we are wrapping does not recommend using
+ IDbCommand.Prepare().
+
+
+ A value of indicates that calling IDbCommand.Prepare() will function
+ fine on this Driver.
+
+
+
+
+
+ Initializes a new instance of with
+ type names that are loaded from the specified assembly.
+
+ Assembly to load the types from.
+ Connection type name.
+ Command type name.
+
+
+
+ Initializes a new instance of the class.
+
+
+ Thrown when the ASA.Data.AseClient assembly is not and can not be loaded.
+
+
+
+
+ iAnywhere.Data.AsaClient uses named parameters in the sql.
+
+ - Sybase uses String.Empty in the sql.
+
+
+
+ iAnywhere.Data.AsaClient use the string.Empty to locate parameters in sql.
+
+
+
+
+ A NHibernate Driver for using the IBM.Data.DB2.iSeries DataProvider.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Thrown when the IBM.Data.DB2.iSeries assembly can not be loaded.
+
+
+
+
+ A NHibernate Driver for using the IBM.Data.DB2 DataProvider.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Thrown when the IBM.Data.DB2 assembly can not be loaded.
+
+
+
+
+ A NHibernate Driver for using the Firebird data provider located in
+ FirebirdSql.Data.FirebirdClient assembly.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Thrown when the FirebirdSql.Data.Firebird assembly can not be loaded.
+
+
+
+
+ A NHibernate Driver for using the FirebirdSql.Data.Firebird DataProvider.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Thrown when the FirebirdSql.Data.Firebird assembly can not be loaded.
+
+
+
+
+ A NHibernate Driver for using the Ingres DataProvider
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Provides a database driver for MySQL.
+
+
+
+ In order to use this driver you must have the assembly MySql.Data.dll available for
+ NHibernate to load, including its dependencies (ICSharpCode.SharpZipLib.dll is required by
+ the assembly MySql.Data.dll as of the time of this writing).
+
+
+ Please check the product's website
+ for any updates and/or documentation regarding MySQL.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Thrown when the MySql.Data assembly can not be loaded.
+
+
+
+
+ MySql.Data uses named parameters in the sql.
+
+ - MySql uses ? in the sql.
+
+
+
+
+
+
+ MySql.Data use the ? to locate parameters in sql.
+
+ ? is used to locate parameters in sql.
+
+
+
+ The MySql.Data driver does NOT support more than 1 open IDataReader
+ with only 1 IDbConnection.
+
+ - it is not supported.
+
+
+
+ MySql.Data does not support preparing of commands.
+
+ - it is not supported.
+
+ With the Gamma MySql.Data provider it is throwing an exception with the
+ message "Expected End of data packet" when a select command is prepared.
+
+
+
+
+ Some Data Providers (ie - SqlClient) do not support Multiple Active Result Sets (MARS).
+ NHibernate relies on being able to create MARS to read Components and entities inside
+ of Collections.
+
+
+ This is a completely off-line DataReader - the underlying IDataReader that was used to create
+ this has been closed and no connections to the Db exists.
+
+
+
+
+ Creates a NDataReader from a
+
+ The to get the records from the Database.
+ if we are loading the in the middle of reading it.
+
+ NHibernate attempts to not have to read the contents of an into memory until it absolutely
+ has to. What that means is that it might have processed some records from the and will
+ pick up the midstream so that the underlying can be closed
+ so a new one can be opened.
+
+
+
+
+ Sets the values that can be cached back to null and sets the
+ index of the cached column to -1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Takes care of freeing the managed and unmanaged resources that
+ this class is responsible for.
+
+
+ There are not any unmanaged resources or any disposable managed
+ resources that this class is holding onto. It is in here
+ to comply with the interface.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Stores a Result from a DataReader in memory.
+
+
+
+
+ Initializes a new instance of the NResult class.
+
+ The IDataReader to populate the Result with.
+
+ if the is already positioned on the record
+ to start reading from.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ An implementation of that will work with either an
+ returned by Execute or with an
+ whose contents have been read into a .
+
+
+
+ This allows NHibernate to use the underlying for as long as
+ possible without the need to read everything into the .
+
+
+ The consumer of the returned from does
+ not need to know the underlying reader and can use it the same even if it switches from an
+ to in the middle of its use.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying IDataReader to use.
+
+
+
+ Initializes a new instance of the NHybridDataReader class.
+
+ The underlying IDataReader to use.
+ if the contents of the IDataReader should be read into memory right away.
+
+
+
+ Reads all of the contents into memory because another
+ needs to be opened.
+
+
+ This will result in a no op if the reader is closed or is already in memory.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A flag to indicate if Disose() has been called.
+
+
+
+
+ Finalizer that ensures the object is correctly disposed of.
+
+
+
+
+ Takes care of freeing the managed and unmanaged resources that
+ this class is responsible for.
+
+
+
+
+ Takes care of freeing the managed and unmanaged resources that
+ this class is responsible for.
+
+ Indicates if this NHybridDataReader is being Disposed of or Finalized.
+
+ If this NHybridDataReader is being Finalized (isDisposing==false) then make sure not
+ to call any methods that could potentially bring this NHybridDataReader back to life.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets if the object is in the middle of reading a Result.
+
+ if NextResult and Read have been called on the .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The PostgreSQL data provider provides a database driver for PostgreSQL.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Thrown when the Npgsql assembly can not be loaded.
+
+
+
+
+ A NHibernate Driver for using the Odbc DataProvider
+
+
+ Always look for a native .NET DataProvider before using the Odbc DataProvider.
+
+
+
+
+ A NHibernate Driver for using the OleDb DataProvider
+
+
+ Always look for a native .NET DataProvider before using the OleDb DataProvider.
+
+
+
+
+ OLE DB provider does not support multiple open data readers
+
+
+
+
+ A NHibernate Driver for using the Oracle DataProvider.
+
+
+
+
+ A NHibernate Driver for using the Oracle.DataAccess DataProvider
+
+
+ Code was contributed by James Mills
+ on the NHibernate forums in this
+ post.
+
+
+
+
+ Initializes a new instance of .
+
+
+ Thrown when the Oracle.DataAccess assembly can not be loaded.
+
+
+
+
+ Create an instance of according to the configuration
+ and the capabilities of the driver
+
+
+ By default, .Net doesn't have any batching capabilities, drivers that does have
+ batching support need to override this method and return their own batcher.
+
+
+
+
+ This adds logic to ensure that a DbType.Boolean parameter is not created since
+ ODP.NET doesn't support it.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A NHibernate Driver for using the SqlClient DataProvider
+
+
+
+
+ Creates an uninitialized object for
+ the SqlClientDriver.
+
+ An unitialized object.
+
+
+
+ Creates an uninitialized object for
+ the SqlClientDriver.
+
+ An unitialized object.
+
+
+
+ Create an instance of according to the configuration
+ and the capabilities of the driver
+
+
+ By default, .Net doesn't have any batching capabilities, drivers that does have
+ batching support need to override this method and return their own batcher.
+
+
+
+
+ MsSql requires the use of a Named Prefix in the SQL statement.
+
+
+ because MsSql uses "@".
+
+
+
+
+ MsSql requires the use of a Named Prefix in the Parameter.
+
+
+ because MsSql uses "@".
+
+
+
+
+ The Named Prefix for parameters.
+
+
+ Sql Server uses "@".
+
+
+
+
+ The SqlClient driver does NOT support more than 1 open IDataReader
+ with only 1 IDbConnection.
+
+ - it is not supported.
+
+ MS SQL Server 2000 (and 7) throws an exception when multiple IDataReaders are
+ attempted to be opened. When SQL Server 2005 comes out a new driver will be
+ created for it because SQL Server 2005 is supposed to support it.
+
+
+
+
+ NHibernate driver for the System.Data.SQLite data provider for .NET 2.0.
+
+
+
+ In order to use this driver you must have the System.Data.SQLite.dll assembly available
+ for NHibernate to load. This assembly includes the SQLite.dll or SQLite3.dll libraries.
+
+
+ You can get the System.Data.SQLite.dll assembly from http://sourceforge.net/projects/sqlite-dotnet2.
+
+
+
+
+
+ Initializes a new instance of .
+
+
+ Thrown when the SQLite.NET assembly can not be loaded.
+
+
+
+
+ NHibernate driver for the SQLite.NET data provider.
+
+ In order to use this Driver you must have the SQLite.NET.dll Assembly available for NHibernate to load it.
+ You must also have the SQLite.dll and SQLite3.dll libraries.
+
+
+
+
+
+ Initializes a new instance of .
+
+
+ Thrown when the SQLite.NET assembly can not be loaded.
+
+
+
+
+ A NHibernate driver for Microsoft SQL Server CE data provider
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ MsSql requires the use of a Named Prefix in the SQL statement.
+
+
+ because MsSql uses "@".
+
+
+
+
+ MsSql requires the use of a Named Prefix in the Parameter.
+
+
+ because MsSql uses "@".
+
+
+
+
+ The Named Prefix for parameters.
+
+
+ Sql Server uses "@".
+
+
+
+
+ The SqlClient driver does NOT support more than 1 open IDataReader
+ with only 1 IDbConnection.
+
+ - it is not supported.
+
+ Ms Sql 2000 (and 7) throws an Exception when multiple DataReaders are
+ attempted to be Opened. When Yukon comes out a new Driver will be
+ created for Yukon because it is supposed to support it.
+
+
+
+
+ The SybaseClientDriver Driver provides a database driver for Sybase.
+
+
+ It has been reported to work with the .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Thrown when the Sybase.Data.AseClient assembly can not be loaded.
+
+
+
+
+ Sybase.Data.AseClient uses named parameters in the sql.
+
+ - Sybase uses @ in the sql.
+
+
+
+
+
+
+ Sybase.Data.AseClient use the @ to locate parameters in sql.
+
+ @ is used to locate parameters in sql.
+
+
+
+ The single available method
+ is responsible for parsing a query string and recognizing tokens in
+ relation to parameters (either named, ejb3-style, or ordinal) and
+ providing callbacks about such recognitions.
+
+
+
+
+ Performs the actual parsing and tokenizing of the query string making appropriate
+ callbacks to the given recognizer upon recognition of the various tokens.
+
+
+ Note that currently, this only knows how to deal with a single output
+ parameter (for callable statements). If we later add support for
+ multiple output params, this, obviously, needs to change.
+
+ The string to be parsed/tokenized.
+ The thing which handles recognition events.
+
+
+
+
+ Defines a sequence of elements that are currently
+ eligible for batch fetching.
+
+
+ Even though this is a map, we only use the keys. A map was chosen in
+ order to utilize a to maintain sequencing
+ as well as uniqueness.
+
+
+
+
+ A map of subselect-fetch descriptors
+ keyed by the against which the descriptor is
+ registered.
+
+
+
+
+ The owning persistence context.
+
+
+
+
+ Constructs a queue for the given context.
+
+ The owning persistence context.
+
+
+
+ Clears all entries from this fetch queue.
+
+
+
+
+ Retrieve the fetch descriptor associated with the given entity key.
+
+ The entity key for which to locate any defined subselect fetch.
+ The fetch descriptor; may return null if no subselect fetch queued for
+ this entity key.
+
+
+
+ Adds a subselect fetch decriptor for the given entity key.
+
+ The entity for which to register the subselect fetch.
+ The fetch descriptor.
+
+
+
+ After evicting or deleting an entity, we don't need to
+ know the query that was used to load it anymore (don't
+ call this after loading the entity, since we might still
+ need to load its collections)
+
+
+
+
+ Clears all pending subselect fetches from the queue.
+
+
+ Called after flushing.
+
+
+
+
+ If an EntityKey represents a batch loadable entity, add
+ it to the queue.
+
+
+ Note that the contract here is such that any key passed in should
+ previously have been been checked for existence within the
+ ; failure to do so may cause the
+ referenced entity to be included in a batch even though it is
+ already associated with the .
+
+
+
+
+ After evicting or deleting or loading an entity, we don't
+ need to batch fetch it anymore, remove it from the queue
+ if necessary
+
+
+
+
+ Get a batch of uninitialized collection keys for a given role
+
+ The persister for the collection role.
+ A key that must be included in the batch fetch
+ the maximum number of keys to return
+ an array of collection keys, of length batchSize (padded with nulls)
+
+
+
+ Get a batch of unloaded identifiers for this class, using a slightly
+ complex algorithm that tries to grab keys registered immediately after
+ the given key.
+
+ The persister for the entities being loaded.
+ The identifier of the entity currently demanding load.
+ The maximum number of keys to return
+ an array of identifiers, of length batchSize (possibly padded with nulls)
+
+
+
+ The types of children to cascade to
+
+
+
+
+ A cascade point that occurs just after the insertion of the parent
+ entity and just before deletion
+
+
+
+
+ A cascade point that occurs just before the insertion of the parent entity
+ and just after deletion
+
+
+
+
+ A cascade point that occurs just after the insertion of the parent entity
+ and just before deletion, inside a collection
+
+
+
+
+ A cascade point that occurs just after the update of the parent entity
+
+
+
+
+ A cascade point that occurs just after eviction of the parent entity from the
+ session cache
+
+
+
+
+ A cascade point that occurs just after locking a transient parent entity into the session cache
+
+
+
+
+ A cascade point that occurs just after copying from a transient parent entity into the object in the session cache
+
+
+
+
+ Summary description for Cascades.
+
+
+
+
+ Cascade an action to the child or children
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Cascade an action from the parent object to all its children.
+
+
+
+
+
+
+
+
+
+
+ Cascade to the collection elements
+
+
+
+
+
+
+
+
+
+
+
+
+ A session action that may be cascaded from parent entity to its children
+
+
+
+
+
+
+
+ Cascade the action to the child object
+
+
+
+
+ The children to whom we should cascade.
+
+
+
+
+ Do we need to handle orphan delete for this action?
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Should the given action be cascaded?
+
+
+
+
+
+
+ Save / Delete / Update / Evict / Lock / Replicate + delete orphans
+
+
+
+
+ Save / Delete / Update / Evict / Lock / Replicate
+
+
+
+
+ Save / Update / Lock / Replicate
+
+
+
+
+ Delete
+
+
+
+
+ Delete + delete orphans
+
+
+
+
+ No Cascades
+
+
+
+
+ Do we delete orphans automatically?
+
+
+
+
+ A strategy for determining if an identifier value is an identifier of a new
+ transient instance or a previously persistent transient instance. The strategy
+ is determined by the Unsaved-Value attribute in the mapping file.
+
+
+
+
+
+
+
+ Assume the transient instance is newly instantiated if its identifier is null or
+ equal to Value
+
+
+
+
+
+ Does the given identifier belong to a new instance
+
+
+
+
+ Always assume the transient instance is newly instantiated
+
+
+
+
+ Never assume that transient instance is newly instantiated
+
+
+
+
+ Assume the transient instance is newly instantiated if the identifier
+ is null.
+
+
+
+
+ A strategy for determining if a version value is an version of
+ a new transient instance or a previously persistent transient instance.
+ The strategy is determined by the Unsaved-Value attribute in the mapping file.
+
+
+
+
+
+
+
+ Assume the transient instance is newly instantiated if its version is null or
+ equal to Value
+
+
+
+
+
+ Does the given identifier belong to a new instance
+
+
+
+
+ Assume the transient instance is newly instantiated if the version
+ is null, otherwise assume it is a detached instance.
+
+
+
+
+ Assume the transient instance is newly instantiated if the version
+ is null, otherwise defer to the identifier unsaved-value.
+
+
+
+
+ Assume the transient instance is newly instantiated if the identifier
+ is null.
+
+
+
+
+ A globally unique identifier of an instance, consisting of the user-visible identifier
+ and the identifier space (eg. tablename)
+
+
+
+
+ Construct a unique identifier for an entity class instance
+
+
+
+
+
+
+
+
+
+ The user-visible identifier
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A FilterDefinition defines the global attributes of a dynamic filter. This
+ information includes its name as well as its defined parameters (name and type).
+
+
+
+
+ Set the named parameter's value list for this filter.
+
+ The name of the filter for which this configuration is in effect.
+ The default filter condition.
+ A dictionary storing the NHibernate type
+ of each parameter under its name.
+
+
+
+ Retreive the type of the named parameter defined for this filter.
+
+ The name of the filter parameter for which to return the type.
+ The type of the named parameter.
+
+
+
+ Get the name of the filter this configuration defines.
+
+ The filter name for this configuration.
+
+
+
+ Get a set of the parameters defined by this configuration.
+
+ The parameters named by this configuration.
+
+
+
+ Manages s and s
+ for an .
+
+
+
+ Abstracts ADO.NET batching to maintain the illusion that a single logical batch
+ exists for the whole session, even when batching is disabled.
+ Provides transparent IDbCommand caching.
+
+
+ This will be useful once ADO.NET gets support for batching. Until that point
+ no code exists that will do batching, but this will provide a good point to do
+ error checking and making sure the correct number of rows were affected.
+
+
+
+
+
+ Get an for using in loading / querying.
+
+ The to convert to an .
+ The of the command.
+ The SqlTypes of parameters
+ in .
+
+ An that is ready to be executed.
+
+
+
+ If not explicitly released by , it will be
+ released when the session is closed or disconnected.
+
+
+ This does NOT add anything to the batch - it only creates the IDbCommand and
+ does NOT cause the batch to execute...
+
+
+
+
+
+ Get a non-batchable an to use for inserting / deleting / updating.
+ Must be explicitly released by CloseCommand()
+
+ The to convert to an .
+ The of the command.
+ The SqlTypes of parameters
+ in .
+
+ An that is ready to have the parameter values set
+ and then executed.
+
+
+
+
+ Close a opened using PrepareCommand()
+
+ The to ensure is closed.
+ The to ensure is closed.
+
+
+
+ Get a batchable to use for inserting / deleting / updating
+ (might be called many times before a single call to ExecuteBatch()
+
+
+ After setting parameters, call AddToBatch() - do not execute the statement
+ explicitly.
+
+ The to convert to an .
+ The of the command.
+ The SqlTypes of parameters
+ in .
+
+
+
+
+ Add an insert / delete / update to the current batch (might be called multiple times
+ for a single PrepareBatchStatement())
+
+ Determines whether the number of rows affected by query is correct.
+
+
+
+ Execute the batch
+
+
+
+
+ Close any query statements that were left lying around
+
+
+ Use this method instead of Dispose if the
+ can be used again.
+
+
+
+
+ Gets an by calling ExecuteReader on the .
+
+ The to execute to get the .
+ The from the .
+
+ The Batcher is responsible for ensuring that all of the Drivers rules for how many open
+ s it can have are followed.
+
+
+
+
+ Executes the .
+
+ The to execute.
+ The number of rows affected.
+
+ The Batcher is responsible for ensuring that all of the Drivers rules for how many open
+ s it can have are followed.
+
+
+
+
+ Must be called when an exception occurs.
+
+
+
+
+
+ Cancel the current query statement
+
+
+
+
+ Gets the value indicating whether there are any open resources
+ managed by this batcher (IDbCommands or IDataReaders).
+
+
+
+
+ Defines a complete "snapshot" of a particular collection.
+
+
+
+
+ Gets the identifier of the Entity that owns this Collection.
+
+
+
+
+ Gets the role that identifies this Collection.
+
+
+
+
+ Gets the snapshot copy of the Collection's elements.
+
+
+ In most cases this is the same collection type as the one being snapshotted.
+ ie - the snapshot of an IList will return an IList.
+
+
+
+
+ Gets a indicating if the collection was at one time
+ associated with an Entity and then later dereferenced during a Flush().
+
+
+
+
+ Defines the internal contract between the ISessionFactory and other parts of NHibernate
+ such as implementors of IType.
+
+
+
+
+ Creates ISessions.
+
+
+
+ Usually an application has a single SessionFactory. Threads servicing client requests
+ obtain ISessions from the factory. Implementors must be threadsafe.
+
+
+ ISessionFactorys are immutable. The behaviour of a SessionFactory
+ is controlled by properties supplied at configuration time.
+ These properties are defined on Environment
+
+
+
+
+
+ Open a ISession on the given connection
+
+ A connection provided by the application
+ A session
+
+ Note that the second-level cache will be disabled if you
+ supply a ADO.NET connection. NHibernate will not be able to track
+ any statements you might have executed in the same transaction.
+ Consider implementing your own .
+
+
+
+
+ Create database connection and open a ISession on it, specifying an interceptor
+
+ A session-scoped interceptor
+ A session
+
+
+
+ Open a ISession on the given connection, specifying an interceptor
+
+ A connection provided by the application
+ A session-scoped interceptor
+ A session
+
+ Note that the second-level cache will be disabled if you
+ supply a ADO.NET connection. NHibernate will not be able to track
+ any statements you might have executed in the same transaction.
+ Consider implementing your own .
+
+
+
+
+ Create a database connection and open a ISession on it
+
+
+
+
+
+ Create a new databinder.
+
+
+
+
+
+ Get the ClassMetadata associated with the given entity class
+
+
+
+
+
+
+ Get the CollectionMetadata associated with the named collection role
+
+
+
+
+
+
+ Get all ClassMetadata as a IDictionary from Type
+ to metadata object
+
+
+
+
+
+ Get all CollectionMetadata as a IDictionary from role name
+ to metadata object
+
+
+
+
+
+ Destroy this SessionFactory and release all resources
+ connection pools, etc). It is the responsibility of the application
+ to ensure that there are no open Sessions before calling
+ close().
+
+
+
+
+ Evict all entries from the process-level cache. This method occurs outside
+ of any transaction; it performs an immediate "hard" remove, so does not respect
+ any transaction isolation semantics of the usage strategy. Use with care.
+
+
+
+
+
+ Evict an entry from the process-level cache. This method occurs outside
+ of any transaction; it performs an immediate "hard" remove, so does not respect
+ any transaction isolation semantics of the usage strategy. Use with care.
+
+
+
+
+
+
+ Evict all entries from the process-level cache. This method occurs outside
+ of any transaction; it performs an immediate "hard" remove, so does not respect
+ any transaction isolation semantics of the usage strategy. Use with care.
+
+
+
+
+
+ Evict an entry from the process-level cache. This method occurs outside
+ of any transaction; it performs an immediate "hard" remove, so does not respect
+ any transaction isolation semantics of the usage strategy. Use with care.
+
+
+
+
+
+
+ Evict any query result sets cached in the default query cache region.
+
+
+
+
+ Evict any query result sets cached in the named query cache region.
+
+
+
+
+
+ Obtain the definition of a filter by name.
+
+ The name of the filter for which to obtain the definition.
+ The filter definition.
+
+
+
+ Obtains the current session.
+
+
+
+ The definition of what exactly "current" means is controlled by the
+ implementation configured for use.
+
+
+ The current session.
+ Indicates an issue locating a suitable current session.
+
+
+
+ Get the used.
+
+
+
+
+ Get the SQL Dialect
+
+
+
+
+ Obtain a set of the names of all filters defined on this SessionFactory.
+
+ The set of filter names.
+
+
+
+ This collections allows external libraries
+ to add their own configuration to the NHibernate session factory.
+ This is needed in such cases where the library is tightly coupled to NHibernate, such
+ as the case of NHibernate Search
+
+
+
+
+ Get the persister for a class
+
+
+
+
+ Get the persister for the named class
+
+ The name of the class that is persisted.
+ The for the class.
+ If no can be found.
+
+
+
+ Get the persister for the named class
+
+ The name of the class that is persisted.
+ Whether to throw an exception if the class is not found,
+ or just return
+ The for the class.
+ If no can be found
+ and throwIfNotFound is true.
+
+
+
+ Get the persister object for a collection role
+
+
+
+
+
+
+ Get the return types of a query
+
+
+
+
+
+
+ Get the names of all persistent classes that implement/extend the given interface/class
+
+
+
+
+
+
+ Get a class name, using query language imports
+
+
+
+
+
+
+ Get a particular named query cache, or the default cache
+
+ the name of the cache region, or null for the default
+ query cache
+ the existing cache, or a newly created cache if none by that
+ region name
+
+
+
+ Obtain an ADO.NET connection
+
+
+
+
+
+ Release an ADO.NET connection
+
+
+
+
+
+ Get the identifier generator for the hierarchy
+
+
+
+
+ Open a session conforming to the given parameters. For use mainly by
+ implementations.
+
+ The external ADO.NET connection to use, if any (i.e., optional).
+ The release mode for managed database connections.
+ An appropriate session.
+
+
+
+
+ Is outerjoin fetching enabled?
+
+
+
+
+ Are scrollable ResultSets supported?
+
+
+
+
+ Is PreparedStatement.getGeneratedKeys supported (Java-specific?)
+
+
+
+
+ Get the database schema specified in hibernate.default_schema
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Maximum depth of outer join fetching
+
+
+
+
+ Are we logging SQL to the console?
+
+
+
+
+ Get the default query cache
+
+
+
+
+ Is query caching enabled?
+
+
+
+
+ Gets the IsolationLevel an IDbTransaction should be set to.
+
+
+ This is only applicable to manually controlled NHibernate Transactions.
+
+
+
+
+ Gets a boolean indicating if the sql statement should be prepared. The value
+ is calculated from hibernate.adonet.batch_size if the value exists and greater than 0.
+
+
+
+
+ Gets the ICurrentSessionContext instance attached to this session factory.
+
+
+
+
+ Defines the internal contract between the Session and other parts of Hibernate
+ such as implementors of Type or ClassPersister
+
+
+
+
+ The main runtime interface between a Java application and Hibernate. This is the central
+ API class abstracting the notion of a persistence service.
+
+
+
+ The lifecycle of a ISession is bounded by the beginning and end of a logical
+ transaction. (Long transactions might span several database transactions.)
+
+
+ The main function of the ISession is to offer create, find and delete operations
+ for instances of mapped entity classes. Instances may exist in one of two states:
+
+ transient: not associated with any ISession
+ persistent: associated with a ISession
+
+
+
+ Transient instances may be made persistent by calling Save(), Insert(),
+ or Update(). Persistent instances may be made transient by calling Delete().
+ Any instance returned by a Find(), Iterate(), Load(), or Create
+ method is persistent.
+
+
+ Save() results in an SQL INSERT, Delete()
+ in an SQL DELETE and Update() in an SQL UPDATE. Changes to
+ persistent instances are deteced at flush time and also result in an SQL
+ UPDATE.
+
+
+ It is not intended that implementors be threadsafe. Instead each thread/transaction should obtain
+ its own instance from an ISessionFactory.
+
+
+ A ISession instance is serializable if its persistent classes are serializable
+
+
+ A typical transaction should use the following idiom:
+
+ ISession sess = factory.OpenSession();
+ ITransaction tx;
+ try {
+ tx = sess.BeginTransaction();
+ //do some work
+ ...
+ tx.Commit();
+ } catch (Exception e) {
+ if (tx != null) tx.Rollback();
+ throw;
+ } finally {
+ sess.Close();
+ }
+
+
+
+ If the ISession throws an exception, the transaction must be rolled back and the session
+ discarded. The internal state of the ISession might not be consistent with the database
+ after the exception occurs.
+
+
+
+
+
+
+ Force the ISession to flush.
+
+
+ Must be called at the end of a unit of work, before commiting the transaction and closing
+ the session (Transaction.Commit() calls this method). Flushing if the process
+ of synchronising the underlying persistent store with persistable state held in memory.
+
+
+
+
+ Disconnect the ISession from the current ADO.NET connection.
+
+
+ If the connection was obtained by Hibernate, close it or return it to the connection
+ pool. Otherwise return it to the application. This is used by applications which require
+ long transactions.
+
+ The connection provided by the application or
+
+
+
+ Obtain a new ADO.NET connection.
+
+
+ This is used by applications which require long transactions
+
+
+
+
+ Reconnect to the given ADO.NET connection.
+
+ This is used by applications which require long transactions
+ An ADO.NET connection
+
+
+
+ End the ISession by disconnecting from the ADO.NET connection and cleaning up.
+
+
+ It is not strictly necessary to Close() the ISession but you must
+ at least Disconnect() it.
+
+ The connection provided by the application or
+
+
+
+ Cancel execution of the current query.
+
+
+ May be called from one thread to stop execution of a query in another thread.
+ Use with care!
+
+
+
+
+ Does this ISession contain any changes which must be
+ synchronized with the database? Would any SQL be executed if
+ we flushed this session?
+
+
+
+
+ Return the identifier of an entity instance cached by the ISession
+
+
+ Throws an exception if the instance is transient or associated with a different
+ ISession
+
+ a persistent instance
+ the identifier
+
+
+
+ Is this instance associated with this Session?
+
+ an instance of a persistent class
+ true if the given instance is associated with this Session
+
+
+
+ Remove this instance from the session cache.
+
+
+ Changes to the instance will not be synchronized with the database.
+ This operation cascades to associated instances if the association is mapped
+ with cascade="all" or cascade="all-delete-orphan".
+
+ a persistent instance
+
+
+
+ Return the persistent instance of the given entity class with the given identifier,
+ obtaining the specified lock mode.
+
+ A persistent class
+ A valid identifier of an existing persistent instance of the class
+ The lock level
+ the persistent instance
+
+
+
+ Return the persistent instance of the given entity class with the given identifier,
+ assuming that the instance exists.
+
+
+ You should not use this method to determine if an instance exists (use a query or
+ instead). Use this only to retrieve an instance
+ that you assume exists, where non-existence would be an actual error.
+
+ A persistent class
+ A valid identifier of an existing persistent instance of the class
+ The persistent instance or proxy
+
+
+
+ Return the persistent instance of the given entity class with the given identifier,
+ obtaining the specified lock mode.
+
+ A persistent class
+ A valid identifier of an existing persistent instance of the class
+ The lock level
+ the persistent instance
+
+
+
+ Return the persistent instance of the given entity class with the given identifier,
+ assuming that the instance exists.
+
+
+ You should not use this method to determine if an instance exists (use a query or
+ instead). Use this only to retrieve an instance that you
+ assume exists, where non-existence would be an actual error.
+
+ A persistent class
+ A valid identifier of an existing persistent instance of the class
+ The persistent instance or proxy
+
+
+
+ Read the persistent state associated with the given identifier into the given transient
+ instance.
+
+ An "empty" instance of the persistent class
+ A valid identifier of an existing persistent instance of the class
+
+
+
+ Persist all reachable transient objects, reusing the current identifier
+ values. Note that this will not trigger the Interceptor of the Session.
+
+
+
+
+
+
+ Persist the given transient instance, first assigning a generated identifier.
+
+
+ Save will use the current value of the identifier property if the Assigned
+ generator is used.
+
+ A transient instance of a persistent class
+ The generated identifier
+
+
+
+ Persist the given transient instance, using the given identifier.
+
+ A transient instance of a persistent class
+ An unused valid identifier
+
+
+
+ Either Save() or Update() the given instance, depending upon the value of
+ its identifier property.
+
+
+ By default the instance is always saved. This behaviour may be adjusted by specifying
+ an unsaved-value attribute of the identifier property mapping
+
+ A transient instance containing new or updated state
+
+
+
+ Update the persistent instance with the identifier of the given transient instance.
+
+
+ If there is a persistent instance with the same identifier, an exception is thrown. If
+ the given transient instance has a identifier, an exception will be thrown.
+
+ A transient instance containing updated state
+
+
+
+ Update the persistent state associated with the given identifier.
+
+
+ An exception is thrown if there is a persistent instance with the same identifier
+ in the current session.
+
+ A transient instance containing updated state
+ Identifier of persistent instance
+
+
+
+ Copy the state of the given object onto the persistent object with the same
+ identifier. If there is no persistent instance currently associated with
+ the session, it will be loaded. Return the persistent instance. If the
+ given instance is unsaved or does not exist in the database, save it and
+ return it as a newly persistent instance. Otherwise, the given instance
+ does not become associated with the session.
+
+ a transient instance with state to be copied
+ an updated persistent instance
+
+
+
+ Copy the state of the given object onto the persistent object with the
+ given identifier. If there is no persistent instance currently associated
+ with the session, it will be loaded. Return the persistent instance. If
+ there is no database row with the given identifier, save the given instance
+ and return it as a newly persistent instance. Otherwise, the given instance
+ does not become associated with the session.
+
+ a persistent or transient instance with state to be copied
+ the identifier of the instance to copy to
+ an updated persistent instance
+
+
+
+ Remove a persistent instance from the datastore.
+
+
+ The argument may be an instance associated with the receiving ISession or a
+ transient instance with an identifier associated with existing persistent state.
+
+ The instance to be removed
+
+
+
+ Execute a query
+
+ A query expressed in Hibernate's query language
+ A distinct list of instances
+ See for implications of cache usage.
+
+
+
+ Execute a query, binding a value to a "?" parameter in the query string.
+
+ The query string
+ A value to be bound to a "?" placeholder
+ The Hibernate type of the value
+ A distinct list of instances
+ See for implications of cache usage.
+
+
+
+ Execute a query, binding an array of values to a "?" parameters in the query string.
+
+ The query string
+ An array of values to be bound to the "?" placeholders
+ An array of Hibernate types of the values
+ A distinct list of instances
+ See for implications of cache usage.
+
+
+
+ Execute a query and return the results in an interator.
+
+
+
+ If the query has multiple return values, values will be returned in an array of
+ type object[].
+
+
+ Entities returned as results are initialized on demand. The first SQL query returns
+ identifiers only. So Enumerator() is usually a less efficient way to retrieve
+ object than Find().
+
+
+ The query string
+ An enumerator
+
+
+
+ Execute a query and return the results in an interator,
+ binding a value to a "?" parameter in the query string.
+
+
+
+ If the query has multiple return values, values will be returned in an array of
+ type object[].
+
+
+ Entities returned as results are initialized on demand. The first SQL query returns
+ identifiers only. So Enumerator() is usually a less efficient way to retrieve
+ object than Find().
+
+
+ The query string
+ A value to be written to a "?" placeholder in the query string
+ The hibernate type of the value
+ An enumerator
+
+
+
+ Execute a query and return the results in an interator,
+ binding the values to "?"s parameters in the query string.
+
+
+
+ If the query has multiple return values, values will be returned in an array of
+ type object[].
+
+
+ Entities returned as results are initialized on demand. The first SQL query returns
+ identifiers only. So Enumerator() is usually a less efficient way to retrieve
+ object than Find().
+
+
+ The query string
+ A list of values to be written to "?" placeholders in the query
+ A list of hibernate types of the values
+ An enumerator
+
+
+
+ Apply a filter to a persistent collection.
+
+
+ A filter is a Hibernate query that may refer to this, the collection element.
+ Filters allow efficient access to very large lazy collections. (Executing the filter
+ does not initialize the collection.)
+
+ A persistent collection to filter
+ A filter query string
+ The resulting collection
+
+
+
+ Apply a filter to a persistent collection, binding the given parameter to a "?" placeholder
+
+
+ A filter is a Hibernate query that may refer to this, the collection element.
+ Filters allow efficient access to very large lazy collections. (Executing the filter
+ does not initialize the collection.)
+
+ A persistent collection to filter
+ A filter query string
+ A value to be written to a "?" placeholder in the query
+ The hibernate type of value
+ A collection
+
+
+
+ Apply a filter to a persistent collection, binding the given parameters to "?" placeholders.
+
+
+ A filter is a Hibernate query that may refer to this, the collection element.
+ Filters allow efficient access to very large lazy collections. (Executing the filter
+ does not initialize the collection.)
+
+ A persistent collection to filter
+ A filter query string
+ The values to be written to "?" placeholders in the query
+ The hibernate types of the values
+ A collection
+
+
+
+ Delete all objects returned by the query.
+
+ The query string
+ Returns the number of objects deleted.
+
+
+
+ Delete all objects returned by the query.
+
+ The query string
+ A value to be written to a "?" placeholer in the query
+ The hibernate type of value.
+ The number of instances deleted
+
+
+
+ Delete all objects returned by the query.
+
+ The query string
+ A list of values to be written to "?" placeholders in the query
+ A list of Hibernate types of the values
+ The number of instances deleted
+
+
+
+ Obtain the specified lock level upon the given object.
+
+ A persistent instance
+ The lock level
+
+
+
+ Re-read the state of the given instance from the underlying database.
+
+
+
+ It is inadvisable to use this to implement long-running sessions that span many
+ business tasks. This method is, however, useful in certain special circumstances.
+
+
+ For example,
+
+ Where a database trigger alters the object state upon insert or update
+ After executing direct SQL (eg. a mass update) in the same session
+ After inserting a Blob or Clob
+
+
+
+ A persistent instance
+
+
+
+ Re-read the state of the given instance from the underlying database, with
+ the given LockMode.
+
+
+ It is inadvisable to use this to implement long-running sessions that span many
+ business tasks. This method is, however, useful in certain special circumstances.
+
+ a persistent or transient instance
+ the lock mode to use
+
+
+
+ Determine the current lock mode of the given object
+
+ A persistent instance
+ The current lock mode
+
+
+
+ Begin a unit of work and return the associated ITransaction object.
+
+
+ If a new underlying transaction is required, begin the transaction. Otherwise
+ continue the new work in the context of the existing underlying transaction.
+ The class of the returned object is determined by
+ the property hibernate.transaction_factory
+
+ A transaction instance
+
+
+
+ Begin a transaction with the specified isolationLevel
+
+ Isolation level for the new transaction
+ A transaction instance having the specified isolation level
+
+
+
+ Creates a new Criteria for the entity class.
+
+ The class to Query
+ An ICriteria object
+
+
+
+ Creates a new Criteria for the entity class with a specific alias
+
+ The class to Query
+ The alias of the entity
+ An ICriteria object
+
+
+
+ Create a new instance of Query for the given query string
+
+ A hibernate query string
+ The query
+
+
+
+ Create a new instance of Query for the given collection and filter string
+
+ A persistent collection
+ A hibernate query
+ A query
+
+
+
+ Obtain an instance of for a named query string defined in the
+ mapping file.
+
+ The name of a query defined externally.
+ An from a named query string.
+
+ The query can be either in HQL or SQL format.
+
+
+
+
+ Create a new instance of IQuery for the given SQL string.
+
+ a query expressed in SQL
+ a table alias that appears inside {} in the SQL string
+ the returned persistent class
+ An from the SQL string
+
+
+
+ Create a new instance of for the given SQL string.
+
+ a query expressed in SQL
+ an array of table aliases that appear inside {} in the SQL string
+ the returned persistent classes
+ An from the SQL string
+
+
+
+ Create a new instance of for the given SQL query string.
+
+
+
+
+
+
+ Completely clear the session. Evict all loaded instances and cancel all pending
+ saves, updates and deletions. Do not close open enumerables or instances of
+ ScrollableResults.
+
+
+
+
+ Return the persistent instance of the given entity class with the given identifier, or null
+ if there is no such persistent instance. (If the instance, or a proxy for the instance, is
+ already associated with the session, return that instance or proxy.)
+
+ a persistent class
+ an identifier
+ a persistent instance or null
+
+
+
+ Return the persistent instance of the given entity class with the given identifier, or null
+ if there is no such persistent instance. Obtain the specified lock mode if the instance
+ exists.
+
+ a persistent class
+ an identifier
+ the lock mode
+ a persistent instance or null
+
+
+
+ Strongly-typed version of
+
+
+
+
+ Strongly-typed version of
+
+
+
+
+ Enable the named filter for this current session.
+
+ The name of the filter to be enabled.
+ The Filter instance representing the enabled fiter.
+
+
+
+ Retrieve a currently enabled filter by name.
+
+ The name of the filter to be retrieved.
+ The Filter instance representing the enabled fiter.
+
+
+
+ Disable the named filter for the current session.
+
+ The name of the filter to be disabled.
+
+
+
+ Create a multi query, a query that can send several
+ queries to the server, and return all their results in a single
+ call.
+
+
+ An that can return
+ a list of all the results of all the queries.
+ Note that each query result is itself usually a list.
+
+
+
+
+ Gets the session implementation.
+
+
+ This method is provided in order to get the NHibernate implementation of the session from wrapper implementions.
+ Implementors of the interface should return the NHibernate implementation of this method.
+
+
+ An NHibernate implementation of the interface
+
+
+
+
+ Determines at which points Hibernate automatically flushes the session.
+
+
+ For a readonly session, it is reasonable to set the flush mode to FlushMode.Never
+ at the start of the session (in order to achieve some extra performance).
+
+
+
+
+ Get the that created this instance.
+
+
+
+
+ Gets the ADO.NET connection.
+
+
+ Applications are responsible for calling commit/rollback upon the connection before
+ closing the ISession.
+
+
+
+
+ Is the ISession still open?
+
+
+
+
+ Is the ISession currently connected?
+
+
+
+
+ Get the current Unit of Work and return the associated ITransaction object.
+
+
+
+
+ Get the pre-flush identifier of the collection
+
+
+
+
+
+
+ Get the snapshot of the pre-flush collection state
+
+
+
+
+ Get the object for an array
+
+
+
+
+ Register a object for an array
+
+
+
+
+ Initialize the collection (if not already initialized)
+
+
+
+
+
+
+ Is this the "inverse" end of a bidirectional association?
+
+
+
+
+
+
+ new in h2.1 and no javadoc
+
+
+
+
+
+
+
+
+ new in h2.1 and no javadoc
+
+
+
+
+ new in h2.1 and no javadoc
+
+
+
+
+ new in h2.1 and no javadoc
+
+
+
+
+ new in h2.1 and no javadoc
+
+
+
+
+ Gets the NHibernate collection wrapper from the ISession.
+
+
+
+
+
+ A NHibernate wrapped collection.
+
+
+
+
+ Load an instance without checking if it was deleted. If it does not exist and isn't nullable, throw an exception.
+ This method may create a new proxy or return an existing proxy.
+
+ The to load.
+ The identifier of the object in the database.
+ Allow null instance
+ When enabled, the object is eagerly fetched.
+
+ A proxy of the object or an instance of the object if the persistentClass does not have a proxy.
+
+ No object could be found with that id.
+
+
+
+ Load an instance immediately. Do not return a proxy.
+
+
+
+
+
+
+
+ Load an instance by a unique key that is not the primary key.
+
+
+
+
+
+
+
+
+ After actually deleting a row, record the fact that the instance no longer exists on the
+ database (needed for identity-column key generation)
+
+
+
+
+
+ Execute a Find() query
+
+
+
+
+
+
+
+ Strongly-typed version of
+
+
+
+
+ Strongly-typed version of
+
+
+
+
+ Execute an Iterate() query
+
+
+
+
+
+
+
+ Strongly-typed version of
+
+
+
+
+ Execute a filter
+
+
+
+
+ Execute a filter (strongly-typed version).
+
+
+
+
+ Collection from a filter
+
+
+
+
+ Strongly-typed version of
+
+
+
+
+ Get the IEntityPersister for an object
+
+
+
+
+
+
+ Add an uninitialized instance of an entity class, as a placeholder to ensure object identity.
+ Must be called before PostHydrate()
+
+
+
+
+ Register the "hydrated" state of an entity instance, after the first step of 2-phase loading
+
+
+
+
+ Perform the second step of 2-phase load (ie. fully initialize the entity instance)
+
+
+
+
+ Get the entity instance associated with the given EntityKey
+
+
+
+
+ Return the existing proxy associated with the given EntityKey, or the second
+ argument (the entity associated with the key) if no proxy exists.
+
+ The to see if it should be Proxied.
+ The that identifies the entity.
+
+ Returns a the Proxy for the class or the parameter impl.
+
+
+
+ Return the existing proxy associated with the given object. (Slower than the form above)
+
+
+
+
+ Notify the session that an NHibernate transaction has begun.
+
+
+
+
+ Notify the session that the transaction is about to complete
+
+
+
+
+ Notify the session that the transaction completed, so we no longer own the old locks.
+ (Also we shold release cache softlocks). May be called multiple times during the transaction
+ completion process.
+
+
+
+
+ Return the identifier of the persistent object, or null if transient
+
+
+
+
+ Return the identifer of the persistent or transient object, or throw
+ an exception if the instance is "unsaved"
+
+
+
+
+ Instantiate the entity class, initializing with the given identifier
+
+
+
+
+ Set the lock mode of the entity to the given lock mode
+
+
+
+
+ Get the current version of the entity
+
+
+
+
+ Get the lock mode of the entity
+
+
+
+
+ Execute an SQL Query
+
+
+
+
+ Strongly-typed version of
+
+
+
+
+ new in 2.1 no javadoc
+
+
+
+
+
+ new in 2.1 no javadoc
+
+
+
+
+
+
+
+ new in 2.1 no javadoc
+
+
+
+
+
+
+
+ Retrieve the representation of the given entity.
+
+ The entity for which to locate the EntityEntry.
+ The EntityEntry for the given entity.
+
+
+
+ Retreive the currently set value for a filter parameter.
+
+ The filter parameter name in the format
+ {FILTER_NAME.PARAMETER_NAME}.
+ The filter parameter value.
+
+
+
+ Retreive the type for a given filter parrameter.
+
+ The filter parameter name in the format
+ {FILTER_NAME.PARAMETER_NAME}.
+ The filter parameter type.
+
+
+
+ System time before the start of the transaction
+
+
+
+
+
+ Get the creating SessionFactoryImplementor
+
+
+
+
+
+ Get the prepared statement Batcher for this session
+
+
+
+
+ Return the currently enabled filters. The filter map is keyed by filter
+ name, with values corresponding to the {@link org.hibernate.impl.FilterImpl}
+ instance.
+
+ The currently enabled filters.
+
+
+
+ Get the aliased columns of the owning entity which are to
+ be used in the join
+
+
+
+
+ Get the columns of the owning entity which are to
+ be used in the join
+
+
+
+
+ Get the aliased columns of the owning entity which are to
+ be used in the join
+
+
+
+
+ Get the columns of the owning entity which are to
+ be used in the join
+
+
+
+
+ Get the columns of the associated table which are to
+ be used in the join
+
+
+
+
+ Container for data that is used during the NHibernate query/load process.
+
+
+
+
+ Initializes an instance of the class.
+
+ An array of objects for the parameters.
+ An array of objects for the parameters.
+
+
+
+ Initializes an instance of the class.
+
+ An array of objects for the parameters.
+ An array of objects for the parameters.
+ An that is parameter name keyed to a value.
+ An that is hql alias keyed to a LockMode value.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Ensure the Types and Values are the same length.
+
+
+ If the Lengths of and
+ are not equal.
+
+
+
+
+
+
+
+ Gets or sets an that contains the named
+ parameter as the key and the as the value.
+
+ An of named parameters.
+
+
+
+ Gets or sets an array of objects that is stored at the index
+ of the Parameter.
+
+
+
+
+ Gets or sets an array of objects that is stored at the index
+ of the Parameter.
+
+
+
+
+ Gets or sets the for the Query.
+
+
+
+
+ Gets or sets an that contains the alias name of the
+ object from hql as the key and the as the value.
+
+ An of lock modes.
+
+
+
+ Information to determine how to run an IDbCommand and what
+ records to return from the IDataReader.
+
+
+
+
+ Indicates that the no value has been set on the Property.
+
+
+
+
+ Gets or Sets the Index of the First Row to Select
+
+ The Index of the First Rows to Select
+ Defaults to 0 unless specifically set.
+
+
+
+ Gets or Sets the Maximum Number of Rows to Select
+
+ The Maximum Number of Rows to Select
+ Defaults to NoValue unless specifically set.
+
+
+
+ Gets or Sets the Timeout of the Query
+
+ The Query Timeout
+ Defaults to NoValue unless specifically set.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Return an IdentifierValue for the specified unsaved-value. If none is specified,
+ guess the unsaved value by instantiating a test instance of the class and
+ reading it's id property, or if that is not possible, using the java default
+ value for the type
+
+
+
+
+ An enum of the different ways a value might be "included".
+
+
+ This is really an expanded true/false notion with Partial being the
+ expansion. Partial deals with components in the cases where
+ parts of the referenced component might define inclusion, but the
+ component overall does not.
+
+
+
+
+ Utility methods for managing versions and timestamps
+
+
+
+
+ Increment the given version number
+
+ The value of the current version.
+ The of the versioned property.
+ The current .
+ Returns the next value for the version.
+
+
+
+ Create an initial version number
+
+ The of the versioned property.
+ The current .
+ A seed value to initialize the versioned property with.
+
+
+
+ Seed the given instance state snapshot with an initial version number
+
+ An array of objects that contains a snapshot of a persistent object.
+ The index of the version property in the fields parameter.
+ The of the versioned property.
+ Force the version to initialize
+ The current session, if any.
+ if the version property needs to be seeded with an initial value.
+
+
+
+ Gets the value of the version.
+
+ An array of objects that contains a snapshot of a persistent object.
+ The index of the version property in the fields parameter.
+ The of the versioned property.
+ The value of the version.
+
+
+
+ Sets the value of the version.
+
+ An array of objects that contains a snapshot of a persistent object.
+ The value the version should be set to in the fields parameter.
+ The index of the version property in the fields parameter.
+ The of the versioned property.
+
+
+
+ Set the version number of the given instance state snapshot
+
+ An array of objects that contains a snapshot of a persistent object.
+ The value the version should be set to in the fields parameter.
+ The that is responsible for persisting the values of the fields parameter.
+
+
+
+ Get the version number of the given instance state snapshot
+
+ An array of objects that contains a snapshot of a persistent object.
+ The that is responsible for persisting the values of the fields parameter.
+
+ The value of the version contained in the fields parameter or null if the
+ Entity is not versioned.
+
+
+
+
+ Do we need to increment the version number, given the dirty properties?
+
+
+
+
+ Converts the given SQLException into NHibernate's ADOException hierarchy, as well as performing
+ appropriate logging.
+
+
+ The exception to convert.
+ An optional error message.
+ The converted ADOException.
+
+
+
+ Base class for implementations.
+
+
+
+
+ An object-oriented representation of a query criterion that may be used as a constraint
+ in a query.
+
+
+ Built-in criterion types are provided by the Expression factory class.
+ This interface might be implemented by application classes but, more commonly, application
+ criterion types would extend AbstractCriterion.
+
+
+
+
+ Render a SqlString fragment for the expression.
+
+ A SqlString that contains a valid Sql fragment.
+
+
+
+ Return typed values for all parameters in the rendered SQL fragment
+
+ An array of TypedValues for the Expression.
+
+
+
+ Gets a string representation of the .
+
+
+ A String that shows the contents of the .
+
+
+ This is not a well formed Sql fragment. It is useful for logging what the
+ looks like.
+
+
+
+
+ Render a SqlString for the expression.
+
+ A SqlString that contains a valid Sql fragment.
+
+
+
+ Return typed values for all parameters in the rendered SQL fragment
+
+ An array of TypedValues for the Expression.
+
+
+
+ See here for details:
+ http://steve.emxsoftware.com/NET/Overloading+the++and++operators
+
+
+
+
+ See here for details:
+ http://steve.emxsoftware.com/NET/Overloading+the++and++operators
+
+
+
+
+ See here for details:
+ http://steve.emxsoftware.com/NET/Overloading+the++and++operators
+
+
+
+
+ See here for details:
+ http://steve.emxsoftware.com/NET/Overloading+the++and++operators
+
+
+
+
+ An Aggregation
+
+
+
+
+ A single-column projection that may be aliased
+
+
+
+
+ Render the SQL Fragment.
+
+
+
+
+
+
+
+
+ Render the SQL Fragment to be used in the Group By Clause.
+
+
+
+
+
+
+
+ Return types for a particular user-visible alias
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Get the SQL select clause column aliases for a particular user-visible alias
+
+
+
+
+
+
+ Get the SQL select clause column aliases for a particular user-visible alias
+
+
+
+
+
+
+
+ Get the user-visible aliases for this projection (ie. the ones that will be passed to the ResultTransformer)
+
+
+
+
+ Does this projection specify grouping attributes?
+
+
+
+
+ An that combines two s
+ with an and between them.
+
+
+
+
+ An that combines two s
+ with a operator (either "and" or "or") between them.
+
+
+
+
+ Initialize a new instance of the class that
+ combines two other s.
+
+ The to use in the Left Hand Side.
+ The to use in the Right Hand Side.
+
+
+
+ Combines the for the Left Hand Side and the
+ Right Hand Side of the Expression into one array.
+
+ An arry of s.
+
+
+
+ Converts the LogicalExpression to a .
+
+ A well formed SqlString for the Where clause.
+ The SqlString will be enclosed by ( and ).
+
+
+
+ Gets a string representation of the LogicalExpression.
+
+
+ The String contains the LeftHandSide.ToString() and the RightHandSide.ToString()
+ joined by the Op.
+
+
+ This is not a well formed Sql fragment. It is useful for logging what Expressions
+ are being combined.
+
+
+
+
+ Gets the that will be on the Left Hand Side of the Op.
+
+
+
+
+ Gets the that will be on the Right Hand Side of the Op.
+
+
+
+
+ Get the Sql operator to put between the two s.
+
+
+
+
+ Initializes a new instance of the class
+ that combines two .
+
+ The to use as the left hand side.
+ The to use as the right hand side.
+
+
+
+ Get the Sql operator to put between the two s.
+
+ The string "and"
+
+
+
+ An that represents a "between" constraint.
+
+
+
+
+ Initialize a new instance of the class for
+ the named Property.
+
+ The name of the Property of the Class.
+ The low value for the BetweenExpression.
+ The high value for the BetweenExpression.
+
+
+
+
+
+
+ An that Junctions together multiple
+ s with an and
+
+
+
+
+ A sequence of logical s combined by some associative
+ logical operator.
+
+
+
+
+ Adds an to the list of s
+ to junction together.
+
+ The to add.
+
+ This instance.
+
+
+
+
+ Get the Sql operator to put between multiple s.
+
+
+
+
+ The corresponding to an instance with no added
+ subcriteria.
+
+
+
+
+ Get the Sql operator to put between multiple s.
+
+ The string " and "
+
+
+
+ A Count
+
+
+
+
+ Some applications need to create criteria queries in "detached
+ mode", where the Hibernate session is not available. This class
+ may be instantiated anywhere, and then a ICriteria
+ may be obtained by passing a session to
+ GetExecutableCriteria(). All methods have the
+ same semantics and behavior as the corresponding methods of the
+ ICriteria interface.
+
+
+
+
+ Get an executable instance of Criteria,
+ to actually run the query.
+
+
+
+ An that Junctions together multiple
+ s with an or
+
+
+
+
+ Get the Sql operator to put between multiple s.
+
+ The string " or "
+
+
+
+ An that represents an "equal" constraint.
+
+
+
+
+ The base class for an that compares a single Property
+ to a value.
+
+
+
+
+ Initialize a new instance of the class for a named
+ Property and its value.
+
+ The name of the Property in the class.
+ The value for the Property.
+
+
+
+ Converts the SimpleExpression to a .
+
+ A SqlString that contains a valid Sql fragment.
+
+
+
+
+
+
+ Gets the named Property for the Expression.
+
+ A string that is the name of the Property.
+
+
+
+ Gets the Value for the Expression.
+
+ An object that is the value for the Expression.
+
+
+
+ Get the Sql operator to use for the specific
+ subclass of .
+
+
+
+
+ Initialize a new instance of the class for a named
+ Property and its value.
+
+ The name of the Property in the class.
+ The value for the Property.
+ Use case-insensitive comparison
+
+
+
+ Initialize a new instance of the class for a named
+ Property and its value.
+
+ The name of the Property in the class.
+ The value for the Property.
+
+
+
+ Get the Sql operator to use for the .
+
+ The string " = "
+
+
+
+ An that represents an "equal" constraint
+ between two properties.
+
+
+
+
+ Superclass for an that represents a
+ constraint between two properties (with SQL binary operators).
+
+
+
+
+ Initialize a new instance of the class
+ that compares two mapped properties.
+
+ The name of the Property to use as the left hand side.
+ The name of the Property to use as the right hand side.
+
+
+
+
+
+
+ Get the Sql operator to use for the property expression.
+
+
+
+
+ Initializes a new instance of the class
+ that compares two mapped properties using an "equal" constraint.
+
+ The name of the Property to use as the left hand side.
+ The name of the Property to use as the right hand side.
+
+
+
+ Get the Sql operator to use for the .
+
+ The string " = "
+
+
+
+ Support for Query By Example.
+
+
+
+
+ Set the for this .
+
+ The to determine which properties to include.
+ This instance.
+
+ This should be used when a custom has
+ been implemented. Otherwise use the methods
+ or to set the
+ to the s built into NHibernate.
+
+
+
+
+ Set the for this
+ to exclude zero-valued properties.
+
+
+
+
+ Set the for this
+ to exclude no properties.
+
+
+
+
+ Use the "like" operator for all string-valued properties with
+ the specified .
+
+
+ The to convert the string to the pattern
+ for the like comparison.
+
+
+
+
+ Use the "like" operator for all string-valued properties.
+
+
+ The default is MatchMode.Exact.
+
+
+
+
+ Exclude a particular named property
+
+ The name of the property to exclude.
+
+
+
+ Create a new instance, which includes all non-null properties
+ by default
+
+
+ A new instance of .
+
+
+
+ Initialize a new instance of the class for a particular
+ entity.
+
+ The that the Example is being built from.
+ The the Example should use.
+
+
+
+ Determines if the property should be included in the Query.
+
+ The value of the property.
+ The name of the property.
+ The of the property.
+
+ if the Property should be included, if
+ the Property should not be a part of the Query.
+
+
+
+
+ Adds a based on the value
+ and type parameters to the in the
+ list parameter.
+
+ The value of the Property.
+ The of the Property.
+ The to add the to.
+
+ This method will add objects to the list parameter.
+
+
+
+
+ A strategy for choosing property values for inclusion in the query criteria
+
+
+
+
+ Determine if the Property should be included.
+
+ The value of the property that is being checked for inclusion.
+ The name of the property that is being checked for inclusion.
+ The of the property.
+
+ if the Property should be included in the Query,
+ otherwise.
+
+
+
+
+ Implementation of that includes all
+ properties regardless of value.
+
+
+
+
+ Implementation of that includes the
+ properties that are not and do not have an
+ returned by propertyValue.ToString().
+
+
+ This selector is not present in H2.1. It may be useful if nullable types
+ are used for some properties.
+
+
+
+
+ The Expression namespace may be used by applications as a framework for building
+ new kinds of . However, it is intended that most applications will
+ simply use the built-in criterion types via the static factory methods of this class.
+
+
+
+
+ Apply an "equal" constraint to the identifier property
+
+
+ ICriterion
+
+
+
+ Apply an "equal" constraint to the named property
+
+ The name of the Property in the class.
+ The value for the Property.
+ An .
+
+
+
+ Apply a "like" constraint to the named property
+
+ The name of the Property in the class.
+ The value for the Property.
+ A .
+
+
+
+ A case-insensitive "like", similar to Postgres "ilike" operator
+
+ The name of the Property in the class.
+ The value for the Property.
+ An .
+
+
+
+ Apply a "greater than" constraint to the named property
+
+ The name of the Property in the class.
+ The value for the Property.
+ A .
+
+
+
+ Apply a "less than" constraint to the named property
+
+ The name of the Property in the class.
+ The value for the Property.
+ A .
+
+
+
+ Apply a "less than or equal" constraint to the named property
+
+ The name of the Property in the class.
+ The value for the Property.
+ A .
+
+
+
+ Apply a "greater than or equal" constraint to the named property
+
+ The name of the Property in the class.
+ The value for the Property.
+ A .
+
+
+
+ Apply a "between" constraint to the named property
+
+ The name of the Property in the class.
+ The low value for the Property.
+ The high value for the Property.
+ A .
+
+
+
+ Apply an "in" constraint to the named property
+
+ The name of the Property in the class.
+ An array of values.
+ An .
+
+
+
+ Apply an "in" constraint to the named property
+
+ The name of the Property in the class.
+ An ICollection of values.
+ An .
+
+
+
+ Apply an "in" constraint to the named property. This is the generic equivalent
+ of , renamed to avoid ambiguity.
+
+ The name of the Property in the class.
+ An
+ of values.
+ An .
+
+
+
+ Apply an "is null" constraint to the named property
+
+ The name of the Property in the class.
+ A .
+
+
+
+ Apply an "equal" constraint to two properties
+
+ The lhs Property Name
+ The rhs Property Name
+ A .
+
+
+
+ Apply an "not equal" constraint to two properties
+
+ The lhs Property Name
+ The rhs Property Name
+ A .
+
+
+
+ Apply a "greater than" constraint to two properties
+
+ The lhs Property Name
+ The rhs Property Name
+ A .
+
+
+
+ Apply a "greater than or equal" constraint to two properties
+
+ The lhs Property Name
+ The rhs Property Name
+ A .
+
+
+
+ Apply a "less than" constraint to two properties
+
+ The lhs Property Name
+ The rhs Property Name
+ A .
+
+
+
+ Apply a "less than or equal" constraint to two properties
+
+ The lhs Property Name
+ The rhs Property Name
+ A .
+
+
+
+ Apply an "is not null" constraint to the named property
+
+ The name of the Property in the class.
+ A .
+
+
+
+ Apply an "is not empty" constraint to the named property
+
+ The name of the Property in the class.
+ A .
+
+
+
+ Apply an "is not empty" constraint to the named property
+
+ The name of the Property in the class.
+ A .
+
+
+
+ Return the conjuction of two expressions
+
+ The Expression to use as the Left Hand Side.
+ The Expression to use as the Right Hand Side.
+ An .
+
+
+
+ Return the disjuction of two expressions
+
+ The Expression to use as the Left Hand Side.
+ The Expression to use as the Right Hand Side.
+ An .
+
+
+
+ Return the negation of an expression
+
+ The Expression to negate.
+ A .
+
+
+
+ Apply a constraint expressed in SQL, with the given SQL parameters
+
+
+
+
+
+
+
+
+ Apply a constraint expressed in SQL, with the given SQL parameter
+
+
+
+
+
+
+
+
+ Apply a constraint expressed in SQL, with the given SQL parameter
+
+
+
+
+ Apply a constraint expressed in SQL
+
+
+
+
+
+
+ Apply a constraint expressed in SQL
+
+
+
+
+
+
+ Group expressions together in a single conjunction (A and B and C...)
+
+
+
+
+ Group expressions together in a single disjunction (A or B or C...)
+
+
+
+
+ Apply an "equals" constraint to each property in the key set of a IDictionary
+
+ a dictionary from property names to values
+
+
+
+
+ An that represents an "greater than or equal" constraint.
+
+
+
+
+ Initialize a new instance of the class for a named
+ Property and its value.
+
+ The name of the Property in the class.
+ The value for the Property.
+
+
+
+ Get the Sql operator to use for the .
+
+ The string " >= "
+
+
+
+ An that represents an "greater than or equal" constraint
+ between two properties.
+
+
+
+
+ Initializes a new instance of the class
+ that compares two mapped properties using an "greater than or equal" constraint.
+
+ The name of the Property to use as the left hand side.
+ The name of the Property to use as the right hand side.
+
+
+
+ Get the Sql operator to use for the .
+
+ The string " < "
+
+
+
+ An that represents an "greater than" constraint.
+
+
+
+
+ Initialize a new instance of the class for a named
+ Property and its value.
+
+ The name of the Property in the class.
+ The value for the Property.
+
+
+
+ Get the Sql operator to use for the .
+
+ The string " > "
+
+
+
+ An that represents an "greater than" constraint
+ between two properties.
+
+
+
+
+ Initializes a new instance of the class
+ that compares two mapped properties using an "greater than" constraint.
+
+ The name of the Property to use as the left hand side.
+ The name of the Property to use as the right hand side.
+
+
+
+ Get the Sql operator to use for the .
+
+ The string " < "
+
+
+
+ An identifier constraint
+
+
+
+
+ An that constrains the property
+ to a specified list of values.
+
+
+ InExpression - should only be used with a Single Value column - no multicolumn properties...
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ An that represents an "like" constraint
+ that is not case sensitive.
+
+
+
+
+ Initialize a new instance of the
+ class for a named Property and its value.
+
+ The name of the Property in the class.
+ The value for the Property.
+
+
+
+
+
+
+ An that represents empty association constraint.
+
+
+
+
+ An that represents non-empty association constraint.
+
+
+
+
+ An that represents an "less than or equal" constraint.
+
+
+
+
+ Initialize a new instance of the class for a named
+ Property and its value.
+
+ The name of the Property in the class.
+ The value for the Property.
+
+
+
+ Get the Sql operator to use for the .
+
+ The string " <= "
+
+
+
+ An that represents an "less than or equal" constraint
+ between two properties.
+
+
+
+
+ Initializes a new instance of the class
+ that compares two mapped properties using an "less than or equal" constraint.
+
+ The name of the Property to use as the left hand side.
+ The name of the Property to use as the right hand side.
+
+
+
+ Get the Sql operator to use for the .
+
+ The string " <= "
+
+
+
+ An that represents an "like" constraint.
+
+
+ The case sensitivity depends on the database settings for string
+ comparisons. Use if the
+ string comparison should not be case sensitive.
+
+
+
+
+ Initialize a new instance of the class for a named
+ Property and its value.
+
+ The name of the Property in the class.
+ The value for the Property.
+
+
+
+ Get the Sql operator to use for the .
+
+ The string " like "
+
+
+
+ An that represents an "less than" constraint.
+
+
+
+
+ Initialize a new instance of the class for a named
+ Property and its value.
+
+ The name of the Property in the class.
+ The value for the Property.
+
+
+
+ Get the Sql operator to use for the .
+
+ The string " < "
+
+
+
+ An that represents an "less than" constraint
+ between two properties.
+
+
+
+
+ Initializes a new instance of the class
+ that compares two mapped properties using an "less than" constraint.
+
+ The name of the Property to use as the left hand side.
+ The name of the Property to use as the right hand side.
+
+
+
+ Get the Sql operator to use for the .
+
+ The string " < "
+
+
+
+ Represents an strategy for matching strings using "like".
+
+
+
+
+ Initialize a new instance of the class.
+
+ The code that identifies the match mode.
+ The friendly name of the match mode.
+
+ The parameter intCode is used as the key of
+ to store instances and to ensure only instance of a particular
+ is created.
+
+
+
+
+ The string representation of the .
+
+ The friendly name used to describe the .
+
+
+
+ Convert the pattern, by appending/prepending "%"
+
+ The string to convert to the appropriate match pattern.
+
+ A that contains a "%" in the appropriate place
+ for the Match Strategy.
+
+
+
+
+ Match the entire string to the pattern
+
+
+
+
+ Match the start of the string to the pattern
+
+
+
+
+ Match the end of the string to the pattern
+
+
+
+
+ Match the pattern anywhere in the string
+
+
+
+
+ The that matches the entire string to the pattern.
+
+
+
+
+ Initialize a new instance of the class.
+
+
+
+
+ Converts the string to the Exact MatchMode.
+
+ The string to convert to the appropriate match pattern.
+ The pattern exactly the same as it was passed in.
+
+
+
+ The that matches the start of the string to the pattern.
+
+
+
+
+ Initialize a new instance of the class.
+
+
+
+
+ Converts the string to the Start MatchMode.
+
+ The string to convert to the appropriate match pattern.
+ The pattern with a "%" appended at the end.
+
+
+
+ The that matches the end of the string to the pattern.
+
+
+
+
+ Initialize a new instance of the class.
+
+
+
+
+ Converts the string to the End MatchMode.
+
+ The string to convert to the appropriate match pattern.
+ The pattern with a "%" appended at the beginning.
+
+
+
+ The that exactly matches the string
+ by appending "%" to the beginning and end.
+
+
+
+
+ Initialize a new instance of the class.
+
+
+
+
+ Converts the string to the Exact MatchMode.
+
+ The string to convert to the appropriate match pattern.
+ The pattern with a "%" appended at the beginning and the end.
+
+
+
+ An that negates another .
+
+
+
+
+ Initialize a new instance of the class for an
+
+
+ The to negate.
+
+
+
+ An that represents "not null" constraint.
+
+
+
+
+ Initialize a new instance of the class for a named
+ Property that should not be null.
+
+ The name of the Property in the class.
+
+
+
+ An that represents "null" constraint.
+
+
+
+
+ Initialize a new instance of the class for a named
+ Property that should be null.
+
+ The name of the Property in the class.
+
+
+
+
+
+
+ Represents an order imposed upon a
+ result set.
+
+
+
+
+ Constructor for Order.
+
+
+
+
+
+
+ Render the SQL fragment
+
+
+
+
+ Ascending order
+
+
+
+
+
+
+ Descending order
+
+
+
+
+
+
+ An that combines two s with an
+ "or" between them.
+
+
+
+
+ Initialize a new instance of the class for
+ two s.
+
+ The to use as the left hand side.
+ The to use as the right hand side.
+
+
+
+ Get the Sql operator to put between the two s.
+
+ Returns "or"
+
+
+
+ The criterion package may be used by applications as a framework for building
+ new kinds of Projection. However, it is intended that most applications will
+ simply use the built-in projection types via the static factory methods of this class.
+
+ The factory methods that take an alias allow the projected value to be referred to by
+ criterion and order instances.
+
+
+
+
+ Create a distinct projection from a projection
+
+
+
+
+
+
+ Create a new projection list
+
+
+
+
+
+ The query row count, ie. count(*)
+
+
+
+
+
+ A property value count
+
+
+
+
+
+
+ A distinct property value count
+
+
+
+
+
+
+ A property maximum value
+
+
+
+
+
+
+ A property minimum value
+
+
+
+
+
+
+ A property average value
+
+
+
+
+
+
+ A property value sum
+
+
+
+
+
+
+ A SQL projection, a typed select clause fragment
+
+
+
+
+
+
+
+
+ A grouping SQL projection, specifying both select clause and group by clause fragments
+
+
+
+
+
+
+
+
+
+ A grouping property value
+
+
+
+
+
+
+ A projected property value
+
+
+
+
+
+
+ A projected identifier value
+
+
+
+
+
+ Assign an alias to a projection, by wrapping it
+
+
+
+
+
+
+
+ A factory for property-specific AbstractCriterion and projection instances
+
+
+
+
+ A property value, or grouped property value
+
+
+
+
+ Get a component attribute of this property
+
+
+
+
+ A comparison between a property value in the outer query and the
+ result of a subquery
+
+
+
+
+ A comparison between a constant value and the the result of a subquery
+
+
+
+
+ An that creates a SQLExpression.
+ The string {alias} will be replaced by the alias of the root entity.
+
+
+ This allows for database specific Expressions at the cost of needing to
+ write a correct .
+
+
+
+
+
+
+
+ A SQL fragment. The string {alias} will be replaced by the alias of the root entity.
+
+
+
+
+ Factory class for AbstractCriterion instances that represent
+ involving subqueries.
+ Expression
+ Projection
+ AbstractCriterion
+
+
+
+
+ Generates translators which uses the older hand-written parser to perform the translation.
+
+
+
+
+ Facade for generation of
+ and instances.
+
+
+
+
+ Construct a instance
+ capable of translating an HQL query string.
+
+ The query string to be translated
+ Currently enabled filters
+ The session factory
+ An appropriate translator.
+
+
+
+ Construct a instance capable of
+ translating an HQL filter string.
+
+ The query string to be translated
+ Currently enabled filters
+ The session factory
+ An appropriate translator.
+
+
+
+ Parses the hibernate query into its constituent clauses.
+
+
+
+
+ A parser is a state machine that accepts a string of tokens,
+ bounded by start() and end() and modifies a QueryTranslator. Parsers
+ are NOT intended to be threadsafe. They SHOULD be reuseable
+ for more than one token stream.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Parses the from clause of a hibernate query, looking for tables and
+ aliases for the SQL query.
+
+
+
+
+
+
+
+ FromPathExpressionParser
+
+
+
+
+ Parses an expression of the form foo.bar.baz and builds up an expression
+ involving two less table joins than there are path components.
+
+
+
+
+
+
+
+
+
+ NOTE: we avoid joining to the next table if the named property is just the foreign key value
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Parses the GROUP BY clause of an aggregate query
+
+
+
+
+
+
+
+ Parses the having clause of a hibernate query and translates it to an
+ SQL having clause.
+
+
+
+ Parses the where clause of a hibernate query and translates it to an
+ SQL where clause.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Parses the ORDER BY clause of a query
+
+
+
+
+
+
+
+
+
+
+
+
+
+ HQL lexical analyzer (not really a parser)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ An instance of QueryTranslator translates a Hibernate query string to SQL.
+
+
+
+
+ Abstract superclass of object loading (and querying) strategies.
+
+
+
+ This class implements useful common functionality that concrete loaders would delegate to.
+ It is not intended that this functionality would be directly accessed by client code (Hence,
+ all methods of this class are declared protected or private.) This class relies heavily upon the
+ interface, which is the contract between this class and
+ s that may be loaded by it.
+
+
+ The present implementation is able to load any number of columns of entities and at most
+ one collection role per query.
+
+
+
+
+
+ What lock mode does this load entities with?
+
+ A Collection of lock modes specified dynamically via the Query Interface
+
+
+
+
+ Append FOR UPDATE OF clause, if necessary. This
+ empty superclass implementation merely returns its first
+ argument.
+
+
+
+
+ Does this query return objects that might be already cached by
+ the session, whose lock mode may need upgrading.
+
+
+
+
+
+ Modify the SQL, adding lock hints and comments, if necessary
+
+
+
+
+ Execute an SQL query and attempt to instantiate instances of the class mapped by the given
+ persister from each row of the DataReader. If an object is supplied, will attempt to
+ initialize that object. If a collection is supplied, attempt to initialize that collection.
+
+
+
+
+ Loads a single row from the result set. This is the processing used from the
+ ScrollableResults where no collection fetches were encountered.
+
+ The result set from which to do the load.
+ The session from which the request originated.
+ The query parameters specified by the user.
+ Should proxies be generated
+ The loaded "row".
+
+
+
+
+ Read any collection elements contained in a single row of the result set
+
+
+
+
+ Get the actual object that is returned in the user-visible result list.
+
+
+ This empty implementation merely returns its first argument. This is
+ overridden by some subclasses.
+
+
+
+
+ For missing objects associated by one-to-one with another object in the
+ result set, register the fact that the the object is missing with the
+ session.
+
+
+
+
+ Read one collection element from the current row of the ADO.NET result set
+
+
+
+
+ If this is a collection initializer, we need to tell the session that a collection
+ is being initilized, to account for the possibility of the collection having
+ no elements (hence no rows in the result set).
+
+
+
+
+ Read a row of EntityKeys from the IDataReader into the given array.
+
+
+ Warning: this method is side-effecty. If an id is given, don't bother going
+ to the IDataReader
+
+
+
+
+
+
+
+
+
+
+ Check the version of the object in the IDataReader against
+ the object version in the session cache, throwing an exception
+ if the vesrion numbers are different.
+
+
+
+
+
+
+
+
+
+
+
+ Resolve any ids for currently loaded objects, duplications within the IDataReader,
+ etc. Instanciate empty objects to be initialized from the IDataReader. Return an
+ array of objects (a row of results) and an array of booleans (by side-effect) that determine
+ wheter the corresponding object should be initialized
+
+
+
+
+ The entity instance is already in the session cache
+
+
+
+
+ The entity instance is not in the session cache
+
+
+
+
+ Hydrate the state of an object from the SQL IDataReader, into
+ an array of "hydrated" values (do not resolve associations yet),
+ and pass the hydrated state to the session.
+
+
+
+
+ Determine the concrete class of an instance for the IDataReader
+
+
+
+
+ Unmarshall the fields of a persistent instance from a result set,
+ without resolving associations or collections
+
+
+
+
+
+
+
+
+
+
+
+ Advance the cursor to the first required row of the IDataReader
+
+
+
+
+
+
+ Should we pre-process the SQL string, adding a dialect-specific
+ LIMIT clause.
+
+
+
+
+
+
+
+ Bind positional parameter values to the IDbCommand
+ (these are parameters specified by ?).
+
+
+
+
+
+
+
+
+
+ Obtain an IDbCommand with all parameters pre-bound. Bind positional parameters,
+ named parameters, and limit parameters.
+
+
+ Creates an IDbCommand object and populates it with the values necessary to execute it against the
+ database to Load an Entity.
+
+ The to use for the IDbCommand.
+ TODO: find out where this is used...
+ The SessionImpl this Command is being prepared in.
+ A CommandWrapper wrapping an IDbCommand that is ready to be executed.
+
+
+
+ Some dialect-specific LIMIT clauses require the maximum last row number,
+ others require the maximum returned row count.
+
+
+
+
+ Bind parameters needed by the dialect-specific LIMIT clause
+
+ The number of parameters bound
+
+
+
+ Limits the number of rows returned by the Sql query if necessary.
+
+ The IDbCommand to limit.
+ The RowSelection that contains the MaxResults info.
+ TODO: This does not apply to ADO.NET at all
+
+
+
+ Fetch a IDbCommand, call SetMaxRows and then execute it,
+ advance to the first result and return an SQL IDataReader
+
+ The to execute.
+ The to apply to the and .
+ The to load in.
+ An IDataReader advanced to the first record in RowSelection.
+
+
+
+ Bind named parameters to the IDbCommand
+
+ The that contains the parameters.
+ The named parameters (key) and the values to set.
+ The this Loader is using.
+
+
+
+
+ Called by subclasses that load entities
+
+
+
+
+ Called by subclasses that batch load entities
+
+
+
+
+ Called by subclasses that load collections
+
+
+
+
+ Called by wrappers that batch initialize collections
+
+
+
+
+ Called by subclasses that batch initialize collections
+
+
+
+
+ Return the query results, using the query cache, called
+ by subclasses that implement cacheable queries
+
+
+
+
+
+
+
+
+
+ Actually execute a query, ignoring the query cache
+
+
+
+
+
+
+
+ Calculate and cache select-clause suffixes. Must be
+ called by subclasses after instantiation.
+
+
+
+ of
+
+
+
+ The SqlString to be called; implemented by all subclasses
+
+
+
+ The setter was added so that class inheriting from Loader could write a
+ value using the Property instead of directly to the field.
+
+
+ The scope is protected internal because the needs to
+ be able to get the SqlString of the when
+ it is parsing a subquery.
+
+
+
+
+
+ An array of persisters of entity classes contained in each row of results;
+ implemented by all subclasses
+
+
+ The setter was added so that classes inheriting from Loader could write a
+ value using the Property instead of directly to the field.
+
+
+
+
+ An array of indexes of the entity that owns a one-to-one association
+ to the entity at the given index (-1 if there is no "owner")
+
+
+
+
+ An (optional) persister for a collection to be initialized; only collection loaders
+ return a non-null value
+
+
+
+
+ Get the index of the entity that owns the collection, or -1
+ if there is no owner in the query results (i.e. in the case of a
+ collection initializer) or no collection.
+
+
+
+
+ Return false is this loader is a batch entity loader
+
+
+
+
+ Get the SQL table aliases of entities whose
+ associations are subselect-loadable, returning
+ null if this loader does not support subselect
+ loading
+
+
+
+
+ Get the result set descriptor
+
+
+
+
+ Utility method that generates 0_, 1_ suffixes. Subclasses don't
+ necessarily need to use this algorithm, but it is intended that
+ they will in most cases.
+
+
+
+
+ Specialized interface for filters.
+
+
+
+
+ Defines the constract of an HQL->SQL translator.
+
+
+
+
+ Compile a "normal" query. This method may be called multiple times. Subsequent invocations are no-ops.
+
+ Defined query substitutions.
+ Does this represent a shallow (scalar or entity-id) select?
+ There was a problem parsing the query string.
+ There was a problem querying defined mappings.
+
+
+
+ Perform a list operation given the underlying query definition.
+
+ The session owning this query.
+ The query bind parameters.
+ The query list results.
+
+
+
+
+ Perform a bulk update/delete operation given the underlying query defintion.
+
+ The query bind parameters.
+ The session owning this query.
+ The number of entities updated or deleted.
+
+
+
+
+ Returns the column names in the generated SQL.
+
+ the column names in the generated SQL.
+
+
+
+ Information about any parameters encountered during translation.
+
+
+
+
+ The set of query spaces (table names) that the query referrs to.
+
+
+
+
+ The SQL string generated by the translator.
+
+
+
+
+ The HQL string processed by the translator.
+
+
+
+
+ Returns the filters enabled for this query translator.
+
+ Filters enabled for this query execution.
+
+
+
+ Returns an array of Types represented in the query result.
+
+ Query return types.
+
+
+
+ Returns an array of HQL aliases
+
+ Returns an array of HQL aliases
+
+
+
+ Does the translated query contain collection fetches?
+
+ True if the query does contain collection fetched; false otherwise.
+
+
+
+ Compile a filter. This method may be called multiple
+ times. Subsequent invocations are no-ops.
+
+ the role name of the collection used as the basis for the filter.
+ Defined query substitutions.
+ Does this represent a shallow (scalar or entity-id) select?
+
+
+
+ Construct a query translator
+
+
+
+
+ Compile a subquery
+
+
+
+
+
+ Compile a "normal" query. This method may be called multiple
+ times. Subsequent invocations are no-ops.
+
+
+
+
+ Compile a filter. This method may be called multiple
+ times. Subsequent invocations are no-ops.
+
+
+
+
+ Compile the query (generate the SQL).
+
+
+
+
+ WARNING: side-effecty
+
+
+
+ Used for collection filters
+
+
+
+
+
+
+ Persisters for the return values of a Find style query
+
+
+ The Persisters stored by QueryTranslator have to be . The
+ setter will attempt to cast the ILoadable array passed in into an
+ IQueryable array.
+
+
+
+
+ Types of the return values of an Enumerate() style query.
+ Return an array of s.
+
+
+
+
+
+
+
+ Is this query called by Scroll() or Iterate()?
+
+ true if it is, false if it is called by find() or list()
+
+
+
+
+
+
+
+
+
+ Parsers the select clause of a hibernate query, looking
+ for a table (well, really class) alias.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Wraps SessionFactoryImpl, adding more lookup behaviors and encapsulating some of the error handling.
+
+
+
+
+ Provides utility methods for generating HQL / SQL names.
+ Shared by both the 'classic' and 'new' query translators.
+
+
+
+
+ A problem occurred translating a Hibernate query to SQL due to invalid query syntax, etc.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+ The exception that is the cause of the current exception. If the innerException parameter
+ is not a null reference, the current exception is raised in a catch block that handles
+ the inner exception.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+ The query that contains the error.
+
+
+
+ Initializes a new instance of the class.
+
+
+ The exception that is the cause of the current exception. If the innerException parameter
+ is not a null reference, the current exception is raised in a catch block that handles
+ the inner exception.
+
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Sets the serialization info for after
+ getting the info from the base Exception.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Gets or sets the of HQL that caused the Exception.
+
+
+
+
+ Gets a message that describes the current .
+
+ The error message that explains the reason for this exception including the HQL.
+
+
+
+ Handle Hibernate "implicit" polymorphism, by translating the query string into
+ several "concrete" queries against mapped classes.
+
+
+
+
+
+
+
+
+ An that returns the current identifier
+ assigned to an instance.
+
+
+
+ This id generation strategy is specified in the mapping file as
+ <generator class="assigned" />
+
+
+
+
+
+ The general contract between a class that generates unique
+ identifiers and the .
+
+
+
+ It is not intended that this interface ever be exposed to the
+ application. It is intended that users implement this interface
+ to provide custom identifier generation strategies.
+
+
+ Implementors should provide a public default constructor.
+
+
+ Implementations that accept configuration parameters should also
+ implement .
+
+
+ Implementors must be threadsafe.
+
+
+
+
+
+ Generate a new identifier
+
+ The this id is being generated in.
+ The entity for which the id is being generated.
+ The new identifier
+
+
+
+
+
+
+ Generates a new identifier by getting the value of the identifier
+ for the obj parameter.
+
+ The this id is being generated in.
+ The entity for which the id is being generated.
+ The value that was assigned to the mapped id's property.
+
+ Thrown when a is passed in as the obj or
+ if the identifier of obj is null.
+
+
+
+
+ An that returns a Int64 constructed from the system
+ time and a counter value. Not safe for use in a clustser!
+
+
+
+
+ An that uses the value of
+ the id property of an associated object
+
+
+
+ This id generation strategy is specified in the mapping file as
+
+ <generator class="foreign">
+ <param name="property">AssociatedObject</param>
+ </generator>
+
+
+ The mapping parameter property is required.
+
+
+
+
+ An IdentiferGenerator that supports "configuration".
+
+
+
+
+ Configure this instance, given the values of parameters
+ specified by the user as <param> elements.
+ This method is called just once, followed by instantiation.
+
+ The the identifier should be.
+ An of Param values that are keyed by parameter name.
+ The to help with Configuration.
+
+
+
+ Generates an identifer from the value of a Property.
+
+ The this id is being generated in.
+ The entity for which the id is being generated.
+
+ The identifier value from the associated object or
+ if the session
+ already contains obj.
+
+
+
+
+ Configures the ForeignGenerator by reading the value of property
+ from the parms parameter.
+
+ The the identifier should be.
+ An of Param values that are keyed by parameter name.
+ The to help with Configuration.
+
+ Thrown if the key property is not found in the parms parameter.
+
+
+
+
+ An that generates values
+ using a strategy suggested Jimmy Nilsson's
+ article
+ on informit.com.
+
+
+
+ This id generation strategy is specified in the mapping file as
+ <generator class="guid.comb" />
+
+
+ The comb algorithm is designed to make the use of GUIDs as Primary Keys, Foreign Keys,
+ and Indexes nearly as efficient as ints.
+
+
+ This code was contributed by Donald Mull.
+
+
+
+
+
+ Generate a new using the comb algorithm.
+
+ The this id is being generated in.
+ The entity for which the id is being generated.
+ The new identifier as a .
+
+
+
+ Generate a new using the comb algorithm.
+
+
+
+
+ An that generates values
+ using Guid.NewGuid().
+
+
+
+ This id generation strategy is specified in the mapping file as
+ <generator class="guid" />
+
+
+
+
+
+ Generate a new for the identifier.
+
+ The this id is being generated in.
+ The entity for which the id is being generated.
+ The new identifier as a .
+
+
+
+ Thrown by implementation class when ID generation fails
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+ The exception that is the cause of the current exception. If the innerException parameter
+ is not a null reference, the current exception is raised in a catch block that handles
+ the inner exception.
+
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Factory methods for IdentifierGenerator framework.
+
+
+
The built in strategies for identifier generation in NHibernate are:
+
+
+ strategy
+ Implementation of strategy
+
+
+ assigned
+
+
+
+ counter
+
+
+
+ foreign
+
+
+
+ guid
+
+
+
+ guid.comb
+
+
+
+ hilo
+
+
+
+ identity
+
+
+
+ native
+
+ Chooses between ,
+ , and based on the
+ 's capabilities.
+
+
+
+ seqhilo
+
+
+
+ sequence
+
+
+
+ uuid.hex
+
+
+
+ uuid.string
+
+
+
+
+
+
+
+ Gets the value of the identifier from the and
+ ensures it is the correct .
+
+ The to read the identifier value from.
+ The the value should be converted to.
+ The the value is retrieved in.
+
+ The value for the identifier.
+
+
+ Thrown if there is any problem getting the value from the
+ or with converting it to the .
+
+
+
+
+ An where the key is the strategy and
+ the value is the for the strategy.
+
+
+
+
+ When this is returned by Generate() it indicates that the object
+ has already been saved.
+
+
+ String.Empty
+
+
+
+
+ When this is return
+
+
+
+
+ Initializes the static fields in .
+
+
+
+
+ Creates an from the named strategy.
+
+
+ The name of the generator to create. This can be one of the NHibernate abbreviations (ie - native,
+ sequence, guid.comb, etc...), a full class name if the Type is in the NHibernate assembly, or
+ a full type name if the strategy is in an external assembly.
+
+ The that the retured identifier should be.
+ An of <param> values from the mapping.
+ The to help with Configuration.
+
+ An instantiated and configured .
+
+
+ Thrown if there are any exceptions while creating the .
+
+
+
+
+ Create the correct boxed for the identifier.
+
+ The value of the new identifier.
+ The the identifier should be.
+
+ The identifier value converted to the .
+
+
+ The type parameter must be an , ,
+ or .
+
+
+
+
+ An that indicates to the that identity
+ (ie. identity/autoincrement column) key generation should be used.
+
+
+
+ This id generation strategy is specified in the mapping file as
+ <generator class="identity" />
+ or if the database natively supports identity columns
+ <generator class="native" />
+
+
+ This indicates to NHibernate that the database generates the id when
+ the entity is inserted.
+
+
+
+
+
+ The IdentityGenerator for autoincrement/identity key generation.
+
+
+ The this id is being generated in.
+ The entity the id is being generated for.
+
+ IdentityColumnIndicator Indicates to the Session that identity (i.e. identity/autoincrement column)
+ key generation should be used.
+
+
+
+
+ An IIdentifierGenerator that returns a Int64, constructed by
+ counting from the maximum primary key value at startup. Not safe for use in a
+ cluster!
+
+
+
+ java author Gavin King, .NET port Mark Holden
+
+
+ Mapping parameters supported, but not usually needed: table, column.
+
+
+
+
+
+ An that requires creation of database objects
+ All s that also implement
+ An have access to a special mapping parameter: schema
+
+
+
+
+ The SQL required to create the underlying database objects
+
+ The to help with creating the sql.
+
+ An array of objects that contain the sql to create the
+ necessary database objects.
+
+
+
+
+ The SQL required to remove the underlying database objects
+
+ The to help with creating the sql.
+
+ A that will drop the database objects.
+
+
+
+
+ Return a key unique to the underlying database objects.
+
+
+ A key unique to the underlying database objects.
+
+
+ Prevents us from trying to create/remove them multiple times
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ An that generates Int64 values using an
+ oracle-style sequence. A higher performance algorithm is
+ .
+
+
+
+ This id generation strategy is specified in the mapping file as
+
+ <generator class="sequence">
+ <param name="sequence">uid_sequence</param>
+ <param name="schema">db_schema</param>
+ </generator>
+
+
+
+ The sequence parameter is required while the schema is optional.
+
+
+
+
+
+ The name of the sequence parameter.
+
+
+
+
+ The name of the schema parameter.
+
+
+
+
+ Configures the SequenceGenerator by reading the value of sequence and
+ schema from the parms parameter.
+
+ The the identifier should be.
+ An of Param values that are keyed by parameter name.
+ The to help with Configuration.
+
+
+
+ Generate an , , or
+ for the identifier by using a database sequence.
+
+ The this id is being generated in.
+ The entity for which the id is being generated.
+ The new identifier as a , , or .
+
+
+
+ The SQL required to create the database objects for a SequenceGenerator.
+
+ The to help with creating the sql.
+
+ An array of objects that contain the Dialect specific sql to
+ create the necessary database objects for the SequenceGenerator.
+
+
+
+
+ The SQL required to remove the underlying database objects for a SequenceGenerator.
+
+ The to help with creating the sql.
+
+ A that will drop the database objects for the SequenceGenerator.
+
+
+
+
+ Return a key unique to the underlying database objects for a SequenceGenerator.
+
+
+ The configured sequence name.
+
+
+
+
+ An that combines a hi/lo algorithm with an underlying
+ oracle-style sequence that generates hi values.
+
+
+
+ This id generation strategy is specified in the mapping file as
+
+ <generator class="seqhilo">
+ <param name="sequence">uid_sequence</param>
+ <param name="max_lo">max_lo_value</param>
+ <param name="schema">db_schema</param>
+ </generator>
+
+
+
+ The sequence parameter is required, the max_lo and schema are optional.
+
+
+ The user may specify a max_lo value to determine how often new hi values are
+ fetched. If sequences are not avaliable, TableHiLoGenerator might be an
+ alternative.
+
+
+
+
+
+ The name of the maximum low value parameter.
+
+
+
+
+ Configures the SequenceHiLoGenerator by reading the value of sequence, max_lo,
+ and schema from the parms parameter.
+
+ The the identifier should be.
+ An of Param values that are keyed by parameter name.
+ The to help with Configuration.
+
+
+
+ Generate an , , or
+ for the identifier by using a database sequence.
+
+ The this id is being generated in.
+ The entity for which the id is being generated.
+ The new identifier as a , , or .
+
+
+
+ An that uses a database table to store the last
+ generated value.
+
+
+
+ It is not intended that applications use this strategy directly. However,
+ it may be used to build other (efficient) strategies. The return type is
+ System.Int32
+
+
+ The hi value MUST be fetched in a seperate transaction to the ISession
+ transaction so the generator must be able to obtain a new connection and commit it.
+ Hence this implementation may not be used when the user is supplying connections.
+
+
+ The mapping parameters table and column are required.
+
+
+
+
+
+ The name of the column parameter.
+
+
+
+
+ The name of the table parameter.
+
+
+
+
+ The name of the schema parameter.
+
+
+
+
+ Configures the TableGenerator by reading the value of table,
+ column, and schema from the parms parameter.
+
+ The the identifier should be.
+ An of Param values that are keyed by parameter name.
+ The to help with Configuration.
+
+
+
+ Generate a , , or
+ for the identifier by selecting and updating a value in a table.
+
+ The this id is being generated in.
+ The entity for which the id is being generated.
+ The new identifier as a , , or .
+
+
+
+ The SQL required to create the database objects for a TableGenerator.
+
+ The to help with creating the sql.
+
+ An array of objects that contain the Dialect specific sql to
+ create the necessary database objects and to create the first value as 1
+ for the TableGenerator.
+
+
+
+
+ The SQL required to remove the underlying database objects for a TableGenerator.
+
+ The to help with creating the sql.
+
+ A that will drop the database objects for the TableGenerator.
+
+
+
+
+ Return a key unique to the underlying database objects for a TableGenerator.
+
+
+ The configured table name.
+
+
+
+
+ An that returns an Int64, constructed using
+ a hi/lo algorithm.
+
+
+
+ This id generation strategy is specified in the mapping file as
+
+ <generator class="hilo">
+ <param name="table">table</param>
+ <param name="column">id_column</param>
+ <param name="max_lo">max_lo_value</param>
+ <param name="schema">db_schema</param>
+ </generator>
+
+
+
+ The table and column parameters are required, the max_lo and
+ schema are optional.
+
+
+ The hi value MUST be fecthed in a seperate transaction to the ISession
+ transaction so the generator must be able to obtain a new connection and
+ commit it. Hence this implementation may not be used when the user is supplying
+ connections. In that case a would be a
+ better choice (where supported).
+
+
+
+
+
+ The name of the max lo parameter.
+
+
+
+
+ Configures the TableHiLoGenerator by reading the value of table,
+ column, max_lo, and schema from the parms parameter.
+
+ The the identifier should be.
+ An of Param values that are keyed by parameter name.
+ The to help with Configuration.
+
+
+
+ Generate a , , or
+ for the identifier by selecting and updating a value in a table.
+
+ The this id is being generated in.
+ The entity for which the id is being generated.
+ The new identifier as a , , or .
+
+
+
+ An that returns a string of length
+ 32, 36, or 38 depending on the configuration.
+
+
+
+ This id generation strategy is specified in the mapping file as
+
+ <generator class="uuid.hex">
+ <param name="format">format_string</param>
+ <param name="seperator">seperator_string</param>
+ </generator>
+
+
+
+ The format and seperator parameters are optional.
+
+
+ The identifier string will consist of only hex digits. Optionally, the identifier string
+ may be generated with enclosing characters and seperators between each component
+ of the UUID. If there are seperators then the string length will be 36. If a format
+ that has enclosing brackets is used, then the string length will be 38.
+
+
+ format is either
+ "N" (xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx),
+ "D" (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx),
+ "B" ({xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}),
+ or "P" ((xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)). These formats are described in
+ the Guid.ToString(String) method.
+ If no format is specified the default is "N".
+
+
+ seperator is the char that will replace the "-" if specified. If no value is
+ configured then the default seperator for the format will be used. If the format "D", "B", or
+ "P" is specified, then the seperator will replace the "-". If the format is "N" then this
+ parameter will be ignored.
+
+
+ This class is based on
+
+
+
+
+
+ Generate a new for the identifier using the "uuid.hex" algorithm.
+
+ The this id is being generated in.
+ The entity for which the id is being generated.
+ The new identifier as a .
+
+
+
+ Configures the UUIDHexGenerator by reading the value of format and
+ seperator from the parms parameter.
+
+ The the identifier should be.
+ An of Param values that are keyed by parameter name.
+ The to help with Configuration.
+
+
+
+ An that returns a string of length
+ 16.
+
+
+
+ This id generation strategy is specified in the mapping file as
+ <generator class="uuid.string" />
+
+
+ The identifier string will NOT consist of only alphanumeric characters. Use
+ this only if you don't mind unreadable identifiers.
+
+
+ This impelementation was known to be incompatible with Postgres.
+
+
+
+
+
+ Generate a new for the identifier using the "uuid.string" algorithm.
+
+ The this id is being generated in.
+ The entity for which the id is being generated.
+ The new identifier as a .
+
+
+
+ Abstract implementation of the IQuery interface.
+
+
+
+
+ An object-oriented representation of a NHibernate query.
+
+
+ An IQuery instance is obtained by calling ISession.CreateQuery(). This interface
+ exposes some extra functionality beyond that provided by ISession.Iterate() and
+ ISession.Find();
+
+
+ A particulare page of the result set may be selected by calling
+ SetMaxResults(), SetFirstResult(). The generated sql
+ depends on the capabilities of the . Some
+ Dialects are for databases that have built in paging (LIMIT) and those capabilities
+ will be used to limit the number of records returned by the sql statement.
+ If the database does not support LIMITs then all of the records will be returned,
+ but the objects created will be limited to the specific results requested.
+
+ Named query parameters may be used
+
+
+ Named query parameters are tokens of the form :name in the query string. A value is bound
+ to the Int32 parameter :foo by calling
+
+ SetParameter("foo", foo, NHibernateUtil.Int32);
+
+ for example. A name may appear multiple times in the query string.
+
+
+ Unnamed parameters ? are also supported. To bind a value to an unnamed
+ parameter use a Set method that accepts an Int32 positional argument - numbered from
+ zero.
+
+
+ You may not mix and match unnamed parameters and named parameters in the same query.
+
+
+ Queries are executed by calling List() or Iterate(). A query
+ may be re-executed by subsequent invocations. Its lifespan is, however, bounded by the lifespan
+ of the ISession that created it.
+
+
+ Implementors are not intended to be threadsafe.
+
+
+
+
+
+ Return the query results as an . If the query contains multiple results
+ per row, the results are returned in an instance of object[].
+
+
+
+ Entities returned as results are initialized on demand. The first SQL query returns
+ identifiers only.
+
+
+ This is a good strategy to use if you expect a high number of the objects
+ returned to be already loaded in the or in the 2nd level cache.
+
+
+
+
+
+ Strongly-typed version of .
+
+
+
+
+
+
+ Return the query results as an . If the query contains multiple results per row,
+ the results are returned in an instance of object[].
+
+ The filled with the results.
+
+ This is a good strategy to use if you expect few of the objects being returned are already loaded
+ or if you want to fill the 2nd level cache.
+
+
+
+
+ Return the query results an place them into the .
+
+ The to place the results in.
+
+
+
+ Strongly-typed version of .
+
+
+
+
+ Convenience method to return a single instance that matches
+ the query, or null if the query returns no results.
+
+ the single result or
+
+ Thrown when there is more than one matching result.
+
+
+
+
+ Strongly-typed version of .
+
+
+
+
+ Set the maximum number of rows to retrieve.
+
+ The maximum number of rows to retreive.
+
+
+
+ Sets the first row to retrieve.
+
+ The first row to retreive.
+
+
+
+ Enable caching of this query result set.
+
+ Should the query results be cacheable?
+
+
+ Set the name of the cache region.
+ The name of a query cache region, or
+ for the default query cache
+
+
+ Should the query force a refresh of the specified query cache region?
+ This is particularly useful in cases where underlying data may have been
+ updated via a seperate process (i.e., not modified through Hibernate) and
+ allows the application to selectively refresh the query cache regions
+ based on its knowledge of those events.
+ Should the query result in a forceable refresh of
+ the query cache?
+
+
+
+ The timeout for the underlying ADO query
+
+
+
+
+
+ Set the lockmode for the objects idententified by the
+ given alias that appears in the FROM clause.
+
+ alias a query alias, or this for a collection filter
+
+
+
+
+ Bind a value to an indexed parameter.
+
+ Postion of the parameter in the query, numbered from 0
+ The possibly null parameter value
+ The Hibernate type
+
+
+
+ Bind a value to a named query parameter
+
+ The name of the parameter
+ The possibly null parameter value
+ The NHibernate .
+
+
+
+ Bind a value to an indexed parameter, guessing the Hibernate type from
+ the class of the given object.
+
+ The position of the parameter in the query, numbered from 0
+ The non-null parameter value
+
+
+
+ Bind a value to a named query parameter, guessing the NHibernate
+ from the class of the given object.
+
+ The name of the parameter
+ The non-null parameter value
+
+
+
+ Bind multiple values to a named query parameter. This is useful for binding a list
+ of values to an expression such as foo.bar in (:value_list)
+
+ The name of the parameter
+ A collection of values to list
+ The Hibernate type of the values
+
+
+
+ Bind multiple values to a named query parameter, guessing the Hibernate
+ type from the class of the first object in the collection. This is useful for binding a list
+ of values to an expression such as foo.bar in (:value_list)
+
+ The name of the parameter
+ A collection of values to list
+
+
+
+ Bind the property values of the given object to named parameters of the query,
+ matching property names with parameter names and mapping property types to
+ Hibernate types using heuristics.
+
+ Any PONO
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a array to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a array.
+
+
+
+ Bind an instance of a array to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a array.
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ A non-null instance of a .
+ The name of the parameter
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a mapped persistent class to an indexed parameter.
+
+ Position of the parameter in the query string, numbered from 0
+ A non-null instance of a persistent class
+
+
+
+ Bind an instance of a mapped persistent class to a named parameter.
+
+ The name of the parameter
+ A non-null instance of a persistent class
+
+
+
+ Bind an instance of a persistent enumeration class to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a persistent enumeration
+
+
+
+ Bind an instance of a persistent enumeration class to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a persistent enumeration
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ An instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ An instance of a .
+
+
+
+ Override the current session flush mode, just for this query.
+
+
+
+
+ Set a strategy for handling the query results. This can be used to change
+ "shape" of the query result.
+
+
+
+
+ The query string
+
+
+
+
+ The Hibernate types of the query result set.
+
+
+
+
+ The names of all named parameters of the query
+
+ The parameter names, in no particular order
+
+
+
+ Guesses the from the param's value.
+
+ The object to guess the of.
+ An for the object.
+
+ Thrown when the param is null because the
+ can't be guess from a null value.
+
+
+
+
+ Guesses the from the .
+
+ The to guess the of.
+ An for the .
+
+ Thrown when the clazz is null because the
+ can't be guess from a null type.
+
+
+
+
+ Abstract superclass of algorithms that walk a tree of property values
+ of an entity, and perform specific functionality for collections,
+ components and associated entities.
+
+
+
+
+ Dispatch each property value to .
+
+
+
+
+
+
+ Visit a property value. Dispatch to the correct handler
+ for the property type.
+
+
+
+
+
+
+
+ Walk the tree starting from the given entity.
+
+
+
+
+
+
+ Visit a collection. Default superclass implementation is a no-op.
+
+
+
+
+
+
+
+ Visit a many-to-one or one-to-one associated entity. Default
+ superclass implementation is a no-op.
+
+
+
+
+
+
+
+ Manages prepared statements and batching. Class exists to enforce separation of concerns
+
+
+
+
+ Initializes a new instance of the class.
+
+ The owning this batcher.
+
+
+
+ Prepares the for execution in the database.
+
+
+ This takes care of hooking the up to an
+ and if one exists. It will call Prepare if the Driver
+ supports preparing commands.
+
+
+
+
+ Ensures that the Driver's rules for Multiple Open DataReaders are being followed.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Adds the expected row count into the batch.
+
+ The number of rows expected to be affected by the query.
+
+ If Batching is not supported, then this is when the Command should be executed. If Batching
+ is supported then it should hold of on executing the batch until explicitly told to.
+
+
+
+
+ A flag to indicate if Disose() has been called.
+
+
+
+
+ Finalizer that ensures the object is correctly disposed of.
+
+
+
+
+ Takes care of freeing the managed and unmanaged resources that
+ this class is responsible for.
+
+
+
+
+ Takes care of freeing the managed and unmanaged resources that
+ this class is responsible for.
+
+ Indicates if this BatcherImpl is being Disposed of or Finalized.
+
+ If this BatcherImpl is being Finalized (isDisposing==false) then make sure not
+ to call any methods that could potentially bring this BatcherImpl back to life.
+
+
+
+
+ Gets the current that is contained for this Batch
+
+ The current .
+
+
+
+ Gets the the Batcher was
+ created in.
+
+
+ The the Batcher was
+ created in.
+
+
+
+
+ Gets the for this batcher.
+
+
+
+
+ A cached instance of a persistent class
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ We need an entry to tell us all about the current state
+ of a collection with respect to its persistent state
+
+
+
+
+ Indicates that the Collection can still be reached by an Entity
+ that exist in the .
+
+
+ It is also used to ensure that the Collection is not shared between
+ two Entities.
+
+
+
+
+ Indicates that the Collection has been processed and is ready
+ to have its state synchronized with the database.
+
+
+
+
+ Indicates that a Collection needs to be updated.
+
+
+ A Collection needs to be updated whenever the contents of the Collection
+ have been changed.
+
+
+
+
+ Indicates that a Collection has old elements that need to be removed.
+
+
+ A Collection needs to have removals performed whenever its role changes or
+ the key changes and it has a loadedPersister - ie - it was loaded by NHibernate.
+
+
+
+
+ Indicates that a Collection needs to be recreated.
+
+
+ A Collection needs to be recreated whenever its role changes
+ or the owner changes.
+
+
+
+
+ If we instantiate a collection during the
+ process, we must ignore it for the rest of the flush.
+
+
+
+
+ The that is currently responsible
+ for the Collection.
+
+
+ This is set when NHibernate is updating a reachable or an
+ unreachable collection.
+
+
+
+
+ The when the Collection was loaded.
+
+
+ This can be if the Collection was not loaded by NHibernate and
+ was passed in along with a transient object.
+
+
+
+
+ The identifier of the Entity that is the owner of this Collection
+ during the load or post flush.
+
+
+
+ session-start/post-flush persistent state
+
+
+ allow the snapshot to be serialized
+
+
+
+ Initializes a new instance of .
+
+
+ The CollectionEntry is for a Collection that is not dirty and
+ has already been initialized.
+
+
+
+
+ Initializes a new instance of for collections just loaded from the database.
+
+ The that persists this Collection type.
+ The identifier of the Entity that is the owner of this Collection.
+ A boolean indicating whether to ignore the collection during current (or next) flush.
+
+
+
+ Initializes a new instance of for initialized detached collections.
+
+ The from another .
+ The that created this .
+
+ This takes an from another and
+ creates an entry for it in this by copying the values from the
+ cs parameter.
+
+
+
+
+ Prepares this CollectionEntry for the Flush process.
+
+ The that this CollectionEntry will be responsible for flushing.
+
+
+
+ Updates the CollectionEntry to reflect that the
+ has been initialized.
+
+ The initialized that this Entry is for.
+
+
+
+ Updates the CollectionEntry to reflect that it is has been successfully flushed to the database.
+
+ The that was flushed.
+
+ Called after a successful flush.
+
+
+
+
+ Sets the information in this CollectionEntry that is specific to the
+ .
+
+
+ The that is
+ responsible for the Collection.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Manages the database connection and transaction for an .
+
+
+ This class corresponds to ConnectionManager and JDBCContext in Hibernate,
+ combined.
+
+
+
+
+ Implementation of the interface
+
+
+
+
+ Criteria is a simplified API for retrieving entities by composing
+ objects.
+
+
+
+ Using criteria is a very convenient approach for functionality like "search" screens
+ where there is a variable number of conditions to be placed upon the result set.
+
+
+ The Session is a factory for ICriteria. Expression instances are usually obtained via
+ the factory methods on . eg:
+
+
+ IList cats = session.CreateCriteria(typeof(Cat))
+ .Add( Expression.Like("name", "Iz%") )
+ .Add( Expression.Gt( "weight", minWeight ) )
+ .AddOrder( Order.Asc("age") )
+ .List();
+
+ You may navigate associations using or .
+
+ IList cats = session.CreateCriteria(typeof(Cat))
+ .CreateCriteria("kittens")
+ .Add( Expression.like("name", "Iz%") )
+ .List();
+
+
+ Hibernate's query language is much more general and should be used for non-simple cases.
+
+
+ This is an experimental API.
+
+
+
+
+
+ Set a limit upon the number of objects to be retrieved
+
+
+
+
+
+ Set the first result to be retrieved
+
+
+
+
+
+ Set a timeout for the underlying ADO.NET query
+
+
+
+
+
+
+ Add an Expression to constrain the results to be retrieved.
+
+
+
+
+
+
+ An an Order to the result set
+
+
+
+
+
+ Get the results
+
+
+
+
+
+ Get the results and fill the
+
+ The list to fill with the results.
+
+
+
+ Strongly-typed version of .
+
+
+
+
+ Strongly-typed version of .
+
+
+
+
+ Convenience method to return a single instance that matches
+ the query, or null if the query returns no results.
+
+ the single result or
+
+ If there is more than one matching result
+
+
+
+
+ Specify an association fetching strategy. Currently, only
+ one-to-many and one-to-one associations are supported.
+
+ A dot seperated property path.
+ The Fetch mode.
+
+
+
+
+ Join an association, assigning an alias to the joined entity
+
+
+
+
+
+
+
+ Join an association using the specified join-type, assigning an alias to the joined
+ association
+
+
+
+ The type of join to use.
+ this (for method chaining)
+
+
+
+ Create a new , "rooted" at the associated entity
+
+
+
+
+
+
+ Create a new , "rooted" at the associated entity,
+ assigning the given alias
+
+
+
+
+
+
+
+ Create a new , "rooted" at the associated entity,
+ assigning the given alias and using the specified join type.
+
+ A dot-separated property path
+ The alias to assign to the joined association (for later reference).
+ The type of join to use.
+ The created "sub criteria"
+
+
+
+ Create a new , "rooted" at the associated entity,
+ using the specified join type.
+
+ A dot-seperated property path
+ The type of join to use
+ The created "sub criteria"
+
+
+
+ Set a strategy for handling the query results. This determines the
+ "shape" of the query result set.
+
+
+
+
+
+
+
+
+
+ Set the lock mode of the current entity
+
+ the lock mode
+
+
+
+
+ Set the lock mode of the aliased entity
+
+ an alias
+ the lock mode
+
+
+
+
+ Enable caching of this query result set
+
+
+
+
+
+
+ Set the name of the cache region.
+
+ the name of a query cache region, or
+ for the default query cache
+
+
+
+
+ Used to specify that the query results will be a projection (scalar in
+ nature). Implicitly specifies the projection result transformer.
+
+ The projection representing the overall "shape" of the
+ query results.
+ This instance (for method chaining)
+
+
+ The individual components contained within the given
+ determines the overall "shape" of the query result.
+
+
+
+
+
+ Get the alias of the entity encapsulated by this criteria instance.
+
+ The alias for the encapsulated entity.
+
+
+
+ Expose the batch functionality in ADO.Net 2.0
+ Microsoft in its wisdom decided to make my life hard and mark it internal.
+ Through the use of Reflection and some delegates magic, I opened up the functionality.
+
+ Observable performance benefits are 50%+ when used, so it is really worth it.
+
+
+
+
+ Append a command to the batch
+
+
+
+
+
+ Executes the batch
+
+
+ This seems to be returning the total number of affected rows in all queries
+
+
+
+
+ Return the batch command to be executed
+
+
+
+
+ The number of commands batched in this instance
+
+
+
+
+ Append a command to the batch
+
+
+
+
+
+ This is required because SqlClient.SqlCommandSet will throw if
+ the command has no parameters.
+
+
+
+
+
+ Executes the batch
+
+
+ This seems to be returning the total number of affected rows in all queries
+
+
+
+
+ Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
+
+ 2
+
+
+
+ Return the batch command to be executed
+
+
+
+
+ The number of commands batched in this instance
+
+
+
+
+ A Visitor that determines if a dirty collection was found.
+
+
+
+
+ Reason for dirty collection
+
+
+
+ If it is a new application-instantiated collection, return true (does not occur anymore!)
+
+
+
+
+ If it is a component, recurse.
+
+
+
+
+ If it is a wrapped collection, ask the collection entry.
+
+
+
+
+
+
+
+ Gets a indicating if a dirty collection was found.
+
+ if a dirty collection was found.
+
+
+
+ We need an entry to tell us all about the current state
+ of an object with respect to its persistent state
+
+
+
+
+ Initializes a new instance of EntityEntry.
+
+ The current of the Entity.
+ The snapshot of the Entity's state when it was loaded.
+ The identifier of the Entity in the database.
+ The version of the Entity.
+ The for the Entity.
+ A boolean indicating if the Entity exists in the database.
+ The that is responsible for this Entity.
+
+
+
+ After actually updating the database, update the snapshot information,
+ and escalate the lock mode.
+
+
+
+
+ Gets or sets the current of the Entity.
+
+ The of the Entity.
+
+
+
+ Gets or sets the of this Entity with respect to its
+ persistence in the database.
+
+ The of this Entity.
+
+
+
+ Gets or sets the identifier of the Entity in the database.
+
+ The identifier of the Entity in the database if one has been assigned.
+ This might be when the is
+ and the database generates the id.
+
+
+
+ Gets or sets the snapshot of the Entity when it was loaded from the database.
+
+ The snapshot of the Entity.
+
+ There will only be a value when the Entity was loaded in the current Session.
+
+
+
+
+ Gets or sets the snapshot of the Entity when it was marked as being ready for deletion.
+
+ The snapshot of the Entity.
+ This will be if the Entity is not being deleted.
+
+
+
+ Gets or sets a indicating if this Entity exists in the database.
+
+ if it is already in the database.
+
+ It can also be if it does not exists in the database yet and the
+ is .
+
+
+
+
+ Gets or sets the version of the Entity.
+
+ The version of the Entity.
+
+
+
+ Gets or sets the that is responsible for this Entity.
+
+ The that is reponsible for this Entity.
+
+
+
+ Gets the Fully Qualified Name of the class this Entity is an instance of.
+
+ The Fully Qualified Name of the class this Entity is an instance of.
+
+
+
+
+
+
+
+
+ Provides an wrapper over the results of an .
+
+
+ This is the IteratorImpl in H2.0.3
+
+
+
+
+ Create an wrapper over an .
+
+ The to enumerate over.
+ The used to create the .
+ The to use to load objects.
+ The s contained in the .
+ The names of the columns in the .
+ The that should be applied to the .
+ Instantiator of the result holder (used for "select new SomeClass(...)" queries).
+
+ The should already be positioned on the first record in .
+
+
+
+
+ Returns an enumerator that can iterate through the query results.
+
+
+ An that can be used to iterate through the query results.
+
+
+
+
+ Advances the enumerator to the next element of the query results.
+
+
+ if the enumerator was successfully advanced to the next query results
+ ; if the enumerator has passed the end of the query results.
+
+
+
+
+
+
+
+ A flag to indicate if Disose() has been called.
+
+
+
+
+ Finalizer that ensures the object is correctly disposed of.
+
+
+
+
+ Takes care of freeing the managed and unmanaged resources that
+ this class is responsible for.
+
+
+
+
+ Takes care of freeing the managed and unmanaged resources that
+ this class is responsible for.
+
+ Indicates if this EnumerableImpl is being Disposed of or Finalized.
+
+ The command is closed and the reader is disposed. This allows other ADO.NET
+ related actions to occur without needing to move all the way through the
+ EnumerableImpl.
+
+
+
+
+ Gets the current element in the query results.
+
+
+ The current element in the query results which is either an object or
+ an object array.
+
+
+ If the only returns one type of Entity then an object will
+ be returned. If this is a multi-column resultset then an object array will be
+ returned.
+
+
+
+
+ Evict any collections referenced by the object from the ISession cache.
+
+
+ This will NOT pick up any collections that were dereferenced, so
+ they will be deleted (suboptimal but not exactly incorrect).
+
+
+
+
+
+
+
+
+ Type definition of Filter. Filter defines the user's view into enabled dynamic filters,
+ allowing them to set filter parameter values.
+
+
+
+
+ Set the named parameter's value list for this filter.
+
+ The parameter's name.
+ The values to be applied.
+ This FilterImpl instance (for method chaining).
+
+
+
+ Set the named parameter's value list for this filter. Used
+ in conjunction with IN-style filter criteria.
+
+ The parameter's name.
+ The values to be expanded into an SQL IN list.
+ This FilterImpl instance (for method chaining).
+
+
+
+ Set the named parameter's value list for this filter. Used
+ in conjunction with IN-style filter criteria.
+
+ The parameter's name.
+ The values to be expanded into an SQL IN list.
+ This FilterImpl instance (for method chaining).
+
+
+
+ Perform validation of the filter state. This is used to verify the
+ state of the filter after its enablement and before its use.
+
+
+
+
+
+ Get the name of this filter.
+
+ This filter's name.
+
+
+
+ Get the filter definition containing additional information about the
+ filter (such as default-condition and expected parameter names/types).
+
+ The filter definition
+
+
+
+ Set the named parameter's value for this filter.
+
+ The parameter's name.
+ The value to be applied.
+ This FilterImpl instance (for method chaining).
+
+
+
+ Set the named parameter's value list for this filter. Used
+ in conjunction with IN-style filter criteria.
+
+ The parameter's name.
+ The values to be expanded into an SQL IN list.
+ This FilterImpl instance (for method chaining).
+
+
+
+ Set the named parameter's value list for this filter. Used
+ in conjunction with IN-style filter criteria.
+
+ The parameter's name.
+ The values to be expanded into an SQL IN list.
+ This FilterImpl instance (for method chaining).
+
+
+
+ Perform validation of the filter state. This is used to verify the
+ state of the filter after its enablement and before its use.
+
+
+
+
+
+ Get the name of this filter.
+
+
+
+
+ An action that can Execute during a
+ Flush.
+
+
+
+
+
+
+
+
+
+ Execute the action required to write changes to the database.
+
+
+
+
+ Called after the Transaction has been completed.
+
+
+
+ Actions should make sure that the Cache is notified about
+ what just happened.
+
+
+
+
+ Does the executable have an AfterTransactionCompletion process
+
+
+
+
+ The spaces (tables) that are affectd by this Executable action.
+
+
+ This is used to determine if the ISession needs to be flushed before
+ a query is executed so stale data is not returned.
+
+
+
+
+ Helper methods for rendering log messages and exception messages
+
+
+
+
+ Generate small message that can be used in traces and exception messages.
+
+ The to create the string from.
+ The identifier of the object.
+ A descriptive in the format of [classname#id]
+
+
+
+ Generate small message that can be used in traces and exception messages.
+
+ The for the class in question.
+ The identifier of the object.
+ The .
+ A descriptive in the format of [classname#id]
+
+
+
+ Generate small message that can be used in traces and exception messages.
+
+ The for the class in question.
+ The identifier of the object.
+ The .
+ The NHibernate type of the identifier.
+ A descriptive in the format of [classname#id]
+
+
+
+ Generate small message that can be used in traces and exception messages.
+
+ The for the class in question
+ The id
+ A descriptive in the form [FooBar#id]
+
+
+
+ Generate small message that can be used in traces and exception messages.
+
+ The for the class in question
+ A descriptive in the form [FooBar]
+
+
+
+ Generate small message that can be used in traces and exception messages.
+
+ The for the class in question
+ The id
+ A descriptive in the form [collectionrole#id]
+
+
+
+ When implemented by a class, disassembles the object into a cacheable representation.
+ The value to disassemble.The sesionThe disassembled, deep cloned state of the object
+
+
+
+ When implemented by a class, reconstructs the object from its
+ cached "disassembled" state.
+ The disassembled state from the cacheThe sessiontThe parent Entity objectThe assembled object.
+
+
+
+ Combines sevaral queries into a single database call
+
+
+
+
+ Get all the
+
+
+
+
+ Add the specified HQL query to the multi query
+
+
+
+
+ Add the specified HQL query to the multi query
+
+
+
+
+ Add a named query to the multi query
+
+
+
+
+ Enable caching of this query result set.
+
+ Should the query results be cacheable?
+
+
+ Set the name of the cache region.
+ The name of a query cache region, or
+ for the default query cache
+
+
+ Should the query force a refresh of the specified query cache region?
+ This is particularly useful in cases where underlying data may have been
+ updated via a seperate process (i.e., not modified through Hibernate) and
+ allows the application to selectively refresh the query cache regions
+ based on its knowledge of those events.
+ Should the query result in a forceable refresh of
+ the query cache?
+
+
+
+ The timeout for the underlying ADO query
+
+
+
+
+
+ Bind a value to a named query parameter
+
+ The name of the parameter
+ The possibly null parameter value
+ The NHibernate .
+
+
+
+ Bind a value to a named query parameter, guessing the NHibernate
+ from the class of the given object.
+
+ The name of the parameter
+ The non-null parameter value
+
+
+
+ Bind multiple values to a named query parameter. This is useful for binding a list
+ of values to an expression such as foo.bar in (:value_list)
+
+ The name of the parameter
+ A collection of values to list
+ The Hibernate type of the values
+
+
+
+ Bind multiple values to a named query parameter, guessing the Hibernate
+ type from the class of the first object in the collection. This is useful for binding a list
+ of values to an expression such as foo.bar in (:value_list)
+
+ The name of the parameter
+ A collection of values to list
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a array to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a array.
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ A non-null instance of a .
+ The name of the parameter
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a mapped persistent class to a named parameter.
+
+ The name of the parameter
+ A non-null instance of a persistent class
+
+
+
+ Bind an instance of a persistent enumeration class to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a persistent enumeration
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Override the current session flush mode, just for this query.
+
+
+
+
+ Set a strategy for handling the query results. This can be used to change
+ "shape" of the query result.
+
+
+
+
+ Return the query results of all the queries
+
+
+
+
+ An implementation of the
+ interface that does no batching.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The for this batcher.
+
+
+
+ Executes the current and compares the row Count
+ to the expectedRowCount.
+
+
+ The expected number of rows affected by the query. A value of less than 0
+ indicates that the number of rows to expect is unknown or should not be a factor.
+
+
+ Thrown when there is an expected number of rows to be affected and the
+ actual number of rows is different.
+
+
+
+
+ This Batcher implementation does not support batching so this is a no-op call. The
+ actual execution of the is run in the AddToBatch
+ method.
+
+
+
+
+
+ When a transient entity is passed to , we must inspect all its collections and
+ 1. associate any uninitialized PersistentCollections with this session
+ 2. associate any initialized PersistentCollections with this session, using the
+ existing snapshot
+ 3. throw an exception for each "new" collection
+
+
+
+
+ Abstract superclass of visitors that reattach collections
+
+
+
+
+ Reassociates uninitialized Proxies with the Session.
+
+
+
+
+ When an entity is passed to Update(), we must inspect all its collections and
+ 1. associate any uninitialized PersistentCollections with this session
+ 2. associate any initialized PersistentCollections with this session, using the existing snapshot
+ 3. execute a collection removal (SQL DELETE) for each null collection property or "new" collection
+
+
+
+
+ When an entity is passed to Update(), all its collections must be
+ inspected and:
+
+
+
+ Associate any uninitialized PersistentCollections with this Session.
+
+
+
+
+ Associate any initialized PersistentCollections with this Session, using the
+ existing snapshot.
+
+
+
+
+ Execute a collection removal (SQL DELETE) for each null collection property
+ or "new" collection.
+
+
+
+
+
+
+
+ Summary description for OracleDataClientBatchingBatcher.
+ By Tomer Avissar
+
+
+
+
+
+
+ an actual entity object, not a proxy!
+
+
+
+
+ Implementation of the interface for collection filters.
+
+
+
+
+
+
+
+
+
+
+
+
+ The base class for a scheduled action to perform on a Collection during a
+ flush.
+
+
+
+
+ Initializes a new instance of .
+
+ The that is responsible for the persisting the Collection.
+ The identifier of the Collection owner.
+ The that the Action is occuring in.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets the that is responsible for persisting the Collection.
+
+
+
+
+ Gets the identifier of the Collection owner.
+
+
+
+
+ Gets the the action is executing in.
+
+
+
+
+
+
+
+ A scheduled recreation of the Collection in the database.
+
+
+
+
+ Initializes a new instance of .
+
+ The to recreate.
+ The that is responsible for the persisting the Collection.
+ The identifier of the Collection owner.
+ The that the Action is occuring in.
+
+
+
+
+
+
+ A scheduled removal of the Collection from the database.
+
+
+ This Collection is not represented in the database anymore.
+
+
+
+
+ Initializes a new instance of .
+
+ The that is being removed.
+ The that is responsible for the persisting the Collection.
+ The identifier of the Collection owner.
+ Indicates if the Collection was empty when it was loaded.
+ The that the Action is occuring in.
+
+
+
+
+
+
+ A scheduled update of the Collection in the database.
+
+
+ Entities in the Collection or the contents of the Collection have been modified
+ and the database should be updated accordingly.
+
+
+
+
+ Initializes a new instance of .
+
+ The to update.
+ The that is responsible for the persisting the Collection.
+ The identifier of the Collection owner.
+ Indicates if the Collection was empty when it was loaded.
+ The that the Action is occuring in.
+
+
+
+
+
+
+ A scheduled deletion of an object.
+
+
+
+
+ The base class for a scheduled action to perform on an entity during a
+ flush.
+
+
+
+
+ Initializes a new instance of .
+
+ The that the Action is occuring in.
+ The identifier of the object.
+ The actual object instance.
+ The that is responsible for the persisting the object.
+
+
+
+
+
+ Not supported for a non-collection entity
+
+
+
+ Called when the Transaction this action occurred in has completed.
+
+
+
+
+
+ Execute the action using the .
+
+
+
+
+ Gets the the action is executing in.
+
+
+
+
+ Gets the identifier of the object.
+
+
+
+
+ Gets the that is responsible for persisting the object.
+
+
+
+
+ Gets the object that is having the scheduled action performed against it.
+
+
+
+
+
+
+
+
+
+
+
+
+ Initializes a new instance of .
+
+ The identifier of the object.
+ The version of the object being deleted.
+ The actual object instance.
+ The that is responsible for the persisting the object.
+ The that the Action is occuring in.
+
+
+
+
+
+
+
+
+
+ Summary description for ScheduledIdentityInsertion.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A scheduled insertion of an object.
+
+
+
+
+ Initializes a new instance of .
+
+ The identifier of the object.
+ An object array that contains the state of the object being inserted.
+ The actual object instance.
+ The version of the object instance.
+ The that is responsible for the persisting the object.
+ The that the Action is occuring in.
+
+
+
+
+
+
+
+
+
+ A scheduled update of an object.
+
+
+
+
+ Initializes a new instance of .
+
+ The identifier of the object.
+ An array of objects that contains the value of each Property.
+ An array that contains the indexes of the dirty Properties.
+ Whether the object contains a dirty collection.
+
+ The current version of the object.
+ The version the object should be after update.
+ The actual object instance.
+ The that is responsible for the persisting the object.
+ The that the Action is occuring in.
+
+
+
+
+
+
+
+
+
+ Concrete implementation of a SessionFactory.
+
+
+ Has the following responsibilities:
+
+
+ Caches configuration settings (immutably)
+
+ Caches "compiled" mappings - ie.
+ and
+
+
+ Caches "compiled" queries (memory sensitive cache)
+
+
+ Manages PreparedStatements/IDbCommands - how true in NH?
+
+
+ Delegates IDbConnection management to the
+
+
+ Factory for instances of
+
+
+
+ This class must appear immutable to clients, even if it does all kinds of caching
+ and pooling under the covers. It is crucial that the class is not only thread safe
+ , but also highly concurrent. Synchronization must be used extremely sparingly.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets the hql query identified by the name.
+
+ The name of that identifies the query.
+
+ A hql query or if the named
+ query does not exist.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Return the names of all persistent (mapped) classes that extend or implement the
+ given class or interface, accounting for implicit/explicit polymorphism settings
+ and excluding mapped subclasses/joined-subclasses of other classes in the result.
+
+
+
+
+
+
+ Added to solve a problem with SessionImpl.Find( CriteriaImpl ),
+ see the comment there for an explanation.
+
+
+
+
+
+
+
+
+
+
+
+
+ Closes the session factory, releasing all held resources.
+
+ cleans up used cache regions and "stops" the cache provider.
+ close the ADO.NET connection
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets the ICurrentSessionContext instance attached to this session factory.
+
+
+
+
+ A class that can be used as a Key in a Hashtable for
+ a Query Cache.
+
+
+
+
+ A class that can be used as a Key in a Hashtable for
+ a Query Cache.
+
+
+
+
+ Resolves lookups and deserialization.
+
+
+
+ This is used heavily be Deserialization. Currently a SessionFactory is not really serialized.
+ All that is serialized is it's name and uid. During Deserializaiton the serialized SessionFactory
+ is converted to the one contained in this object. So if you are serializing across AppDomains
+ you should make sure that "name" is specified for the SessionFactory in the hbm.xml file and that the
+ other AppDomain has a configured SessionFactory with the same name. If
+ you are serializing in the same AppDomain then there will be no problem because the uid will
+ be in this object.
+
+
+ TODO: verify that the AppDomain statements are correct.
+
+
+
+
+
+
+
+
+ Adds an Instance of the SessionFactory to the local "cache".
+
+ The identifier of the ISessionFactory.
+ The name of the ISessionFactory.
+ The ISessionFactory.
+ The configured properties for the ISessionFactory.
+
+
+
+ Removes the Instance of the SessionFactory from the local "cache".
+
+ The identifier of the ISessionFactory.
+ The name of the ISessionFactory.
+ The configured properties for the ISessionFactory.
+
+
+
+ Returns a Named Instance of the SessionFactory from the local "cache" identified by name.
+
+ The name of the ISessionFactory.
+ An instantiated ISessionFactory.
+
+
+
+ Returns an Instance of the SessionFactory from the local "cache" identified by UUID.
+
+ The identifier of the ISessionFactory.
+ An instantiated ISessionFactory.
+
+
+
+ Concrete implementation of a Session, also the central, organizing component
+ of Hibernate's internal implementation.
+
+
+ Exposes two interfaces: ISession itself, to the application and ISessionImplementor
+ to other components of hibernate. This is where the hard stuff is...
+ NOT THREADSAFE
+
+
+
+
+ Indicates if the Session has been closed.
+
+
+ (by default) if the Session is Open and can be used,
+ if the Session has had the methods Close() or
+ Dispose() invoked.
+
+
+
+ An with the as the key
+ and an as the value.
+
+
+
+
+ An with the as the key
+ and an as the value.
+
+
+
+
+ An with the as the key
+ and an as the value.
+
+
+
+
+ An with the as the key
+ and an as the value.
+
+
+
+
+ An with the as the key
+ and an as the value.
+
+
+
+
+ An with the as the key
+ and an as the value.
+
+
+
+
+ An of objects of the deleted entities.
+
+
+
+
+ Constructor used to recreate the Session during the deserialization.
+
+
+
+
+ This is needed because we have to do some checking before the serialization process
+ begins. I don't know how to add logic in ISerializable.GetObjectData and have .net
+ write all of the serializable fields out.
+
+
+
+
+ Verify the ISession can be serialized and write the fields to the Serializer.
+
+
+
+
+ The fields are marked with [NonSerializable] as just a point of reference. This method
+ has complete control and what is serialized and those attributes are ignored. However,
+ this method should be in synch with the attributes for easy readability.
+
+
+
+
+ Once the entire object graph has been deserialized then we can hook the
+ collections, proxies, and entities back up to the ISession.
+
+
+
+
+
+
+
+
+ Ensure that the locks are downgraded to
+ and that all of the softlocks in the have
+ been released.
+
+
+
+
+ Mark the Session as being closed and Clear out the HashTables of
+ entities and proxies along with the Identity Maps for entries, array
+ holders, collections, and nullifiables.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Save a transient object. An id is generated, assigned to the object and returned
+
+
+
+
+
+
+ Save a transient object with a manually assigned ID
+
+
+
+
+
+
+ If the parameter value is an unitialized proxy then it will be reassociated
+ with the session.
+
+ A persistable object, proxy, persistent collection or null
+
+ when an uninitialized proxy was passed into this method, otherwise.
+
+
+
+
+ associate a proxy that was instantiated by another session with this session
+
+
+
+
+
+
+ Return null if the argument is an "unsaved" entity (ie. one with no existing database row),
+ or the input argument otherwise. This is how Hibernate avoids foreign key constraint violations.
+
+
+
+
+
+
+
+
+
+ determine if the object already exists in the database, using a "best guess"
+
+
+
+
+
+
+
+
+ Delete a persistent object
+
+
+
+
+
+ Checks to see if there are any Properties that should not be null
+ are references to null or to a transient object.
+
+ An object array of values that should be validated.
+ The that describes which values can be null.
+ A indicating if this is an Update operation.
+
+ Thrown when a non-nullable property contains a value that would
+ persist the value of null to the database.
+
+
+
+
+ Reattach a detached (disassociated) initialized or uninitialized collection wrapper
+
+
+
+
+
+
+ Used only by Replicate
+
+
+
+
+
+
+
+
+
+ Retrieve a list of persistent objects using a Hibernate query
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Obtain an instance of for a named query string defined in the
+ mapping file.
+
+ The name of a query defined externally.
+ An fro a named query string.
+
+ The query can be either in hql or sql format.
+
+
+
+
+ Give the interceptor an opportunity to override the default instantiation
+
+
+
+
+
+
+
+ detect in-memory changes, determine if the changes are to tables
+ named in the query and, if so, complete execution the flush
+
+
+
+
+
+
+ If the existing proxy is insufficiently "narrow" (derived), instantiate a
+ new proxy and overwrite the registration of the old one. This breaks == and
+ occurs only for "class" proxies rather than "interface" proxies.
+
+
+
+
+
+
+
+
+
+ Grab the existing proxy for an instance, if one exists.
+ (otherwise return the instance)
+
+
+
+
+
+
+
+
+ Create a "temporary" entry for a newly instantiated entity. The entity is
+ uninitialized, but we need the mapping from id to instance in order to guarantee
+ uniqueness.
+
+
+
+
+
+
+
+ Add the "hydrated state" (an array) of an uninitialized entity to the session.
+ We don't try to resolve any associations yet, because there might be other entities
+ waiting to be read from the ADO datareader we are currently processing
+
+
+
+
+
+
+
+
+
+ Load the data for the object with the specified id into a newly created object.
+ Do NOT return a proxy.
+
+
+
+
+ Return the object with the specified id or throw exception if no row with that id exists. Defer the load,
+ return a new proxy or return an existing proxy if possible. Do not check if the object was deleted.
+
+
+
+
+ Load the data for the object with the specified id into the supplied
+ instance. A new key will be assigned to the object. If there is an
+ existing uninitialized proxy, this will break identity equals as far
+ as the application is concerned.
+
+
+
+
+ Load the data for the object with the specified id into a newly created
+ object. A new key will be assigned to the object. If the class supports
+ lazy initialization, return a proxy instead, leaving the real work for
+ later. This should return an existing proxy where appropriate.
+
+ The of the object to load.
+ The identifier of the object in the database.
+
+ A boolean indicating if NHiberate should check if the object has or has not been deleted.
+
+ A boolean indicating if it is allowed to return a Proxy instead of an instance of the .
+
+ An loaded instance of the object or a proxy of the object is proxies are allowed.
+
+
+ If the parameter checkDeleted is it is possible to return an object that has
+ been deleted by the user in this . If the parameter checkDeleted is
+ and the object has been deleted then an will be
+ thrown.
+
+
+
+
+ Load the data for the object with the specified id into a newly created object
+ using "for update", if supported. A new key will be assigned to the object.
+ This method always hits the db, and does not create proxies. It should return
+ an existing proxy where appropriate.
+
+
+
+
+
+
+
+
+
+ Load the data for the object with the specified id into a newly created object
+ using "for update", if supported. A new key will be assigned to the object.
+ This should return an existing proxy where appropriate.
+
+ If the object does not exist in the database, an exception is thrown.
+
+
+
+
+
+
+ Thrown when the object with the specified id does not exist in the database.
+
+
+
+
+ Load the data for the object with the specified id into a newly created object
+ using "for update", if supported. A new key will be assigned to the object.
+ This should return an existing proxy where appropriate.
+
+ If the object does not exist in the database, null is returned.
+
+
+
+
+
+
+
+
+ Actually do all the hard work of loading up an object
+
+
+
+
+
+
+
+
+ 1. see if it is already loaded
+ 2. see if it is cached
+ 3. actually go to the database
+
+
+
+
+ After processing a JDBC result set, we "resolve" all the associations
+ between the entities which were instantiated and had their state
+ "hydrated" into an array
+
+
+
+
+
+
+
+
+ This can be called from commit() or at the start of a Find() method.
+
+ Perform all the necessary SQL statements in a sensible order, to allow
+ users to repect foreign key constraints:
+
+ Inserts, in the order they were performed
+ Updates
+ Deletion of collection elements
+ Insertion of collection elements
+ Deletes, in the order they were performed
+
+
+
+ Go through all the persistent objects and look for collections they might be
+ holding. If they had a nonpersistable collection, substitute a persistable one
+
+
+
+
+ Execute all SQL and second-level cache updates, in a
+ special order so that foreign-key constraints cannot
+ be violated:
+
+
Inserts, in the order they were performed
+
Updates
+
Deletion of collection elements
+
Insertion of collection elements
+
Deletes, in the order they were performed
+
+
+
+
+ 1. detect any dirty entities
+ 2. schedule any entity updates
+ 3. search out any reachable collections
+
+
+
+
+ Process cascade save/update at the start of a flush to discover
+ any newly referenced entity that must be passed to
+ and also apply orphan delete
+
+
+
+
+ Not for internal use
+
+
+
+
+
+
+ Get the id value for an object that is actually associated with the session.
+ This is a bit stricter than GetEntityIdentifierIfNotUnsaved().
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Used by OneToOneType and ManyToOneType to determine what id value
+ should be used for an object that may or may not be associated with
+ the session. This does a "best guess" using any/all info available
+ to use (not just the EntityEntry).
+
+
+
+
+
+
+ process any unreferenced collections and then inspect all known collections,
+ scheduling creates/removes/updates
+
+
+
+
+ 1. Recreate the collection key -> collection map
+ 2. rebuild the collection entries
+ 3. call Interceptor.postFlush()
+
+
+
+
+ Initialize the flags of the CollectionEntry, including the
+ dirty check.
+
+
+
+
+ Initialize the role of the collection.
+ The CollectionEntry.reached stuff is just to detect any silly users who set up
+ circular or shared references between/to collections.
+
+
+
+
+
+
+
+ record the fact that this collection was dereferenced
+
+
+
+
+
+ 1. record the collection role that this collection is referenced by
+ 2. decide if the collection needs deleting/creating/updating (but
+ don't actually schedule the action yet)
+
+
+
+
+
+
+ add a collection we just loaded up (still needs initializing)
+
+
+
+
+
+
+
+ add a collection we just pulled out of the cache (does not need initializing)
+
+
+
+
+
+
+
+ Add a new collection (i.e. a newly created one, just instantiated by
+ the application, with no database state or snapshot)
+
+
+
+
+
+
+ Add an (initialized) collection that was created by another session and passed
+ into update() (i.e. one with a snapshot and existing state on the database)
+
+
+
+
+
+
+
+
+
+
+
+
+
+ associate a holder with an array - called after loading an array
+
+
+
+
+
+ called by a collection that wants to initialize itself
+
+
+
+
+
+
+
+
+
+ A flag to indicate if Dispose() has been called.
+
+
+
+
+ Finalizer that ensures the object is correctly disposed of.
+
+
+
+
+ Just in case the user forgot to Commit() or Close()
+
+
+
+
+ Takes care of freeing the managed and unmanaged resources that
+ this class is responsible for.
+
+ Indicates if this Session is being Disposed of or Finalized.
+
+ If this Session is being Finalized (isDisposing==false) then make sure not
+ to call any methods that could potentially bring this Session back to life.
+
+
+
+
+ 1. determine the collection role of the given collection (this may require a flush, if the collection is recorded as unreferenced)
+ 2. obtain a compiled filter query
+ 3. autoflush if necessary
+
+
+
+
+
+
+
+
+
+ Get the collection entry for a collection passed to filter,
+ which might be a collection wrapper, an array, or an unwrapped
+ collection. Return if there is no entry.
+
+
+
+
+
+
+ remove any hard references to the entity that are held by the infrastructure
+ (references held by application or other persistant instances are okay)
+
+
+
+
+
+ Evict collections from the factory-level cache
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Instantiate a collection wrapper (called when loading an object)
+
+
+
+
+
+
+
+
+ Try to initialize a Collection from the cache.
+
+
+
+
+
+ if the collection was initialized from the cache, otherwise .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets if the ISession is connected.
+
+
+ if the ISession is connected.
+
+
+ An ISession is considered connected if there is an (regardless
+ of its state) or if it the field connect is true. Meaning that it will connect
+ at the next operation that requires a connection.
+
+
+
+
+ Summary description for SqlClientBatchingBatcher.
+
+
+
+
+ Expose the batch functionality in ADO.Net 2.0
+ Microsoft in its wisdom decided to make my life hard and mark it internal.
+ Through the use of Reflection and some delegates magic, I opened up the functionality.
+
+ Observable performance benefits are 50%+ when used, so it is really worth it.
+
+
+
+
+ Append a command to the batch
+
+
+
+
+
+ This is required because SqlClient.SqlCommandSet will throw if
+ the command has no parameters.
+
+
+
+
+
+ Executes the batch
+
+
+ This seems to be returning the total number of affected rows in all queries
+
+
+
+
+ Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
+
+ 2
+
+
+
+ Return the batch command to be executed
+
+
+
+
+ The number of commands batched in this instance
+
+
+
+
+ Implements SQL query passthrough
+
+
+ An example mapping is:
+
+ <sql-query-name name="mySqlQuery">
+ <return alias="person" class="eg.Person" />
+ SELECT {person}.NAME AS {person.name}, {person}.AGE AS {person.age}, {person}.SEX AS {person.sex}
+ FROM PERSON {person} WHERE {person}.NAME LIKE 'Hiber%'
+ </sql-query-name>
+
+
+
+
+
+ Declare a "root" entity, without specifying an alias
+
+
+
+
+ Declare a "root" entity
+
+
+
+
+ Declare a "root" entity, specifying a lock mode
+
+
+
+
+ Declare a "root" entity, without specifying an alias
+
+
+
+
+ Declare a "root" entity
+
+
+
+
+ Declare a "root" entity, specifying a lock mode
+
+
+
+
+ Declare a "joined" entity
+
+
+
+
+ Declare a "joined" entity, specifying a lock mode
+
+
+
+
+ Declare a scalar query result
+
+
+
+
+ Use a predefined named ResultSetMapping
+
+
+
+
+ Represents the status of an entity with respect to
+ this session. These statuses are for internal
+ book-keeping only and are not intended to represent
+ any notion that is visible to the application.
+
+
+
+
+ The Entity is snapshotted in the Session with the same state as the database
+ (called Managed in H3).
+
+
+
+
+ The Entity is in the Session and has been marked for deletion but not
+ deleted from the database yet.
+
+
+
+
+ The Entity has been deleted from database.
+
+
+
+
+ The Entity is in the process of being loaded.
+
+
+
+
+ The Entity is in the process of being saved.
+
+
+
+
+ Wrap collections in a NHibernate collection wrapper.
+
+
+
+
+ Walker for collections of values and many-to-many associations
+
+
+
+
+ Superclass of walkers for collection initializers
+
+
+
+
+
+
+
+ Add on association (one-to-one, many-to-one, or a collection) to a list
+ of associations to be fetched by outerjoin (if necessary)
+
+
+
+
+ Add on association (one-to-one, many-to-one, or a collection) to a list
+ of associations to be fetched by outerjoin
+
+
+
+
+ For an entity class, return a list of associations to be fetched by outerjoin
+
+
+
+
+ For a collection role, return a list of associations to be fetched by outerjoin
+
+
+
+
+ For a collection role, return a list of associations to be fetched by outerjoin
+
+
+
+
+ For an entity class, add to a list of associations to be fetched
+ by outerjoin
+
+
+
+
+ For a component, add to a list of associations to be fetched by outerjoin
+
+
+
+
+ For a composite element, add to a list of associations to be fetched by outerjoin
+
+
+
+
+ Extend the path by the given property name
+
+
+
+
+ Get the join type (inner, outer, etc) or -1 if the
+ association should not be joined. Override on
+ subclasses.
+
+
+
+
+ Use an inner join if it is a non-null association and this
+ is the "first" join in a series
+
+
+
+
+ Does the mapping, and Hibernate default semantics, specify that
+ this association should be fetched by outer joining
+
+
+
+
+ Override on subclasses to enable or suppress joining
+ of certain association types
+
+
+
+
+ Used to detect circularities in the joined graph, note that
+ this method is side-effecty
+
+
+
+
+ Used to detect circularities in the joined graph, note that
+ this method is side-effecty
+
+
+
+
+ Should we join this association?
+
+
+
+
+ Generate a sequence of LEFT OUTER JOIN clauses for the given associations.
+
+
+
+
+ Count the number of instances of IJoinable which are actually
+ also instances of ILoadable, or are one-to-many associations
+
+
+
+
+ Count the number of instances of which
+ are actually also instances of
+ which are being fetched by outer join
+
+
+
+
+ Get the order by string required for collection fetching
+
+
+
+
+ Render the where condition for a (batch) load by identifier / collection key
+
+
+
+
+ Generate a select list of columns containing all properties of the entity classes
+
+
+
+
+ Uniquely identifier a foreign key, so that we don't
+ join it more than once, and create circularities
+
+
+
+
+ We can use an inner join for first many-to-many association
+
+
+
+
+ Superclass for loaders that initialize collections
+
+
+
+
+
+
+ Implements logic for walking a tree of associated classes.
+
+
+ Generates an SQL select string containing all properties of those classes.
+ Tablse are joined using an ANSI-style left outer join.
+
+
+
+
+ An interface for collection loaders
+
+
+
+
+ Initialize the given collection
+
+
+
+
+
+
+ "Batch" loads collections, using multiple foreign key values in the SQL Where clause
+
+
+
+
+ Walker for one-to-many associations
+
+
+
+
+
+ Loads one-to-many associations
+
+
+ The collection persister must implement .
+ For other collections, create a customized subclass of .
+
+
+
+
+ Implements subselect fetching for a one to many association
+
+
+
+
+ A for queries.
+
+
+
+
+ The superclass deliberately excludes collections
+
+
+
+
+ Don't bother with the discriminator, unless overridden by subclass
+
+
+
+
+ Use the discriminator, to narrow the select to instances
+ of the queried subclass, also applying any filters.
+
+
+
+
+ A Loader for queries.
+
+
+ Note that criteria
+ queries are more like multi-object Load()s than like HQL queries.
+
+
+
+
+ Get the names of the columns constrained
+ by this criterion.
+
+
+
+
+ Get the aliases of the columns constrained
+ by this criterion (for use in ORDER BY clause).
+
+
+
+
+ Get the a typed value for the given property value.
+
+
+
+
+ that uses columnnames instead of generated aliases.
+ Aliases can still be overwritten via <return-property>
+
+
+
+
+ Type definition of CollectionAliases.
+
+
+
+
+ Returns the suffixed result-set column-aliases for columns making
+ up the key for this collection (i.e., its FK to its owner).
+
+ The key result-set column aliases.
+
+
+
+ Returns the suffixed result-set column-aliases for the collumns
+ making up the collection's index (map or list).
+
+ The index result-set column aliases.
+
+
+
+ Returns the suffixed result-set column-aliases for the columns
+ making up the collection's elements.
+
+ The element result-set column aliases.
+
+
+
+ Returns the suffixed result-set column-aliases for the column
+ defining the collection's identifier (if any).
+
+ The identifier result-set column aliases.
+
+
+
+ Returns the suffix used to unique the column aliases for this
+ particular alias set.
+
+ The uniqued column alias suffix.
+
+
+
+ Returns the suffixed result-set column-aliases for columns making up the key for this collection (i.e., its FK to
+ its owner).
+
+ The key result-set column aliases.
+
+
+
+ Returns the suffixed result-set column-aliases for the collumns making up the collection's index (map or list).
+
+ The index result-set column aliases.
+
+
+
+ Returns the suffixed result-set column-aliases for the columns making up the collection's elements.
+
+ The element result-set column aliases.
+
+
+
+ Returns the suffixed result-set column-aliases for the column defining the collection's identifier (if any).
+
+ The identifier result-set column aliases.
+
+
+
+ Returns the suffix used to unique the column aliases for this particular alias set.
+
+ The uniqued column alias suffix.
+
+
+
+ that chooses the column names over the alias names.
+
+
+
+
+ EntityAliases which handles the logic of selecting user provided aliases (via return-property),
+ before using the default aliases.
+
+
+
+
+ Metadata describing the SQL result set column aliases
+ for a particular entity
+
+
+
+
+ The result set column aliases for the property columns of a subclass
+
+
+
+
+ The result set column aliases for the primary key columns
+
+
+
+
+ The result set column aliases for the discriminator columns
+
+
+
+
+ The result set column aliases for the version columns
+
+
+
+
+ The result set column aliases for the property columns
+
+
+
+
+ The result set column alias for the Oracle row id
+
+
+
+
+ Calculate and cache select-clause suffixes.
+
+
+
+
+ Optional, may return
+
+
+
+ Substitues JDBC parameter placeholders (?) for all encountered
+ parameter specifications. It also tracks the positions of these
+ parameter specifications within the query string. This accounts for
+ ordinal-params, named-params, and ejb3-positional-params.
+
+ @param sqlString The query string.
+ @return The SQL query with parameter substitution complete.
+
+
+
+ Represents a return defined as part of a native sql query which
+ names a collection role in the form {classname}.{collectionrole}; it
+ is used in defining a custom sql query for loading an entity's
+ collection in non-fetching scenarios (i.e., loading the collection
+ itself as the "root" of the result).
+
+
+
+
+ Represents the base information for a return defined as part of
+ a native sql query.
+
+
+
+
+ Returns the class owning the collection.
+
+
+
+
+ Returns the name of the property representing the collection from the .
+
+
+
+
+ Represents a return defined as part of a native sql query which
+ names a fetched role.
+
+
+
+
+ Represents a return defined as part of a native sql query which
+ names a "root" entity. A root entity means it is explicitly a
+ "column" in the result, as opposed to a fetched relationship or role.
+
+
+
+
+ Abstract superclass for entity loaders that use outer joins
+
+
+
+
+
+
+
+ Load an entity instance. If OptionalObject is supplied, load the entity
+ state into the given (uninitialized) object
+
+
+
+
+ "Batch" loads entities, using multiple primary key values in the
+ SQL where clause.
+
+
+
+
+ A walker for loaders that fetch entities
+
+
+
+
+ Disable outer join fetching if this loader obtains an
+ upgrade lock mode
+
+
+
+
+ Load an entity using outerjoin fetching to fetch associated entities.
+
+
+ The must implement . For other entities,
+ create a customized subclass of .
+
+
+
+
+ CollectionAliases which handles the logic of selecting user provided aliases (via return-property),
+ before using the default aliases.
+
+
+
+
+ Returns the suffixed result-set column-aliases for columns making up the key for this collection (i.e., its FK to
+ its owner).
+
+
+
+
+ Returns the suffixed result-set column-aliases for the collumns making up the collection's index (map or list).
+
+
+
+
+ Returns the suffixed result-set column-aliases for the columns making up the collection's elements.
+
+
+
+
+ Returns the suffixed result-set column-aliases for the column defining the collection's identifier (if any).
+
+
+
+
+ Returns the suffix used to unique the column aliases for this particular alias set.
+
+
+
+
+ Get the position of the join with the given alias in the
+ list of joins
+
+
+
+
+ Operations to create/drop the mapping element in the database.
+
+
+
+
+ When implemented by a class, generates the SQL string to create
+ the mapping element in the database.
+
+ The to use for SQL rules.
+
+
+
+ A string that contains the SQL to create an object.
+
+
+
+
+ When implemented by a class, generates the SQL string to drop
+ the mapping element from the database.
+
+ The to use for SQL rules.
+
+
+ A string that contains the SQL to drop an object.
+
+
+
+
+ Gets called by NHibernate to pass the configured type parameters to
+ the implementation.
+
+
+
+
+ A NHibernate any type.
+
+
+ Polymorphic association to one of several tables.
+
+
+
+
+ Any value that maps to columns.
+
+
+
+
+ Represents an identifying key of a table: the value for primary key
+ of an entity, or a foreign key of a collection or join table or
+ joined subclass table.
+
+
+ Author: Gavin King
+
+
+
+
+ A value is anything that is persisted by value, instead of
+ by reference. It is essentially a Hibernate IType, together
+ with zero or more columns. Values are wrapped by things with
+ higher level semantics, for example properties, collections,
+ classes.
+
+
+
+
+
+
+
+
+
+ Determines if the Value is part of a valid mapping.
+
+ The to validate.
+
+ if the Value is part of a valid mapping,
+ otherwise.
+
+
+
+ Mainly used to make sure that Value maps to the correct number
+ of columns.
+
+
+
+
+ Gets the number of columns that this value spans in the table.
+
+
+
+
+ Gets an of objects
+ that this value is stored in.
+
+
+
+
+ Gets the to read/write the Values.
+
+
+
+
+ Gets the this Value is stored in.
+
+
+
+
+ Gets a indicating if this Value is unique.
+
+
+
+
+ Gets a indicating if this Value can have
+ null values.
+
+
+
+
+ Gets a indicating if this is a SimpleValue
+ that does not involve foreign keys.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Get or set the identifier type
+
+
+
+
+
+
+
+ Get or set the metatype
+
+
+
+
+ An array has a primary key consisting of the key columns + index column
+
+
+
+
+ A list has a primary key consisting of the key columns + index column
+
+
+
+
+ Indexed collections include IList, IDictionary, Arrays
+ and primitive Arrays.
+
+
+
+
+ Base class that stores the mapping information for <array>, <bag>,
+ <id-bag>, <list>, <map>, and <set>
+ collections.
+
+
+ Subclasses are responsible for the specialization required for the particular
+ collection style.
+
+
+
+
+ Any mapping with an outer-join attribute
+
+
+
+
+ Defines mapping elements to which filters may be applied.
+
+
+
+
+ Gets or sets a indicating if this is a
+ mapping for a generic collection.
+
+
+ if a collection from the System.Collections.Generic namespace
+ should be used, if a collection from the System.Collections
+ namespace should be used.
+
+
+ This has no affect on any versions of the .net framework before .net-2.0.
+
+
+
+
+ Gets or sets an array of that contains the arguments
+ needed to construct an instance of a closed type.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The that contains this list mapping.
+
+
+
+ Gets the appropriate that is
+ specialized for this list mapping.
+
+
+
+
+ A bag permits duplicates, so it has no primary key
+
+
+
+
+ Initializes a new instance of the class.
+
+ The that contains this bag mapping.
+
+
+
+
+
+ Should we create an index on the key columns?
+
+
+
+ Gets the appropriate that is
+ specialized for this bag mapping.
+
+
+
+
+ Represents the mapping to a column in a database.
+
+
+
+
+
+
+
+ Gets the name of this Column in quoted form if it is necessary.
+
+
+ The that knows how to quote
+ the column name.
+
+
+ The column name in a form that is safe to use inside of a SQL statement.
+ Quoted if it needs to be, not quoted if it does not need to be.
+
+
+
+ For any column name, generate an alias that is unique
+ to that column name, and also 10 characters or less
+ in length.
+
+
+
+ Gets an Alias for the column name.
+
+ The that contains the rules for Aliasing.
+ A string to use as the suffix for the Alias.
+
+ A string that can be used as the alias for this Column.
+
+
+
+
+ Initializes a new instance of .
+
+ The NHibernate that reads from and writes to the column.
+ The index of the column in the .
+
+
+
+ Gets the of the column based on the .
+
+
+
+ The of the column based on the .
+
+
+
+
+ Gets the name of the data type for the column.
+
+ The to use to get the valid data types.
+
+
+ The name of the data type for the column.
+
+
+ If the mapping file contains a value of the attribute sql-type this will
+ return the string contained in that attribute. Otherwise it will use the
+ typename from the of the object.
+
+
+
+
+ Determines if this instance of and a specified object,
+ which must be a Column can be considered the same.
+
+ An that should be a .
+
+ if the name of this Column and the other Column are the same,
+ otherwise .
+
+
+
+
+ Determines if this instance of and the specified Column
+ can be considered the same.
+
+ A to compare to this Column.
+
+ if the name of this Column and the other Column are the same,
+ otherwise .
+
+
+
+
+ Returns the hash code for this instance.
+
+ The value of Name.GetHashCode().
+
+
+
+ Gets or sets the length of the datatype in the database.
+
+ The length of the datatype in the database.
+
+
+
+ Gets or sets the NHibernate of the column.
+
+
+ The NHibernate of the column.
+
+
+
+
+ Gets or sets the name of the column in the database.
+
+
+ The name of the column in the database. The get does
+ not return a Quoted column name.
+
+
+
+ If a value is passed in that is wrapped by ` then
+ NHibernate will Quote the column whenever SQL is generated
+ for it. How the column is quoted depends on the Dialect.
+
+
+ The value returned by the getter is not Quoted. To get the
+ column name in quoted form use .
+
+
+
+
+
+ Gets or sets if the column can have null values in it.
+
+ if the column can have a null value in it.
+
+
+
+ Gets or sets the index of the column in the .
+
+
+ The index of the column in the .
+
+
+
+
+ Gets or sets if the column contains unique values.
+
+ if the column contains unique values.
+
+
+
+ Gets or sets the sql data type name of the column.
+
+
+ The sql data type name of the column.
+
+
+ This is usually read from the sql-type attribute.
+
+
+
+
+ Gets or sets if the column needs to be quoted in SQL statements.
+
+ if the column is quoted.
+
+
+
+ Gets or sets whether the column is unique.
+
+
+
+
+ Gets or sets a check constraint on the column
+
+
+
+
+ Do we have a check constraint?
+
+
+
+
+ The mapping for a component, composite element, composite identifier,
+ etc.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Base class for relational constraints in the database.
+
+
+
+
+ Adds the to the of
+ Columns that are part of the constraint.
+
+ The to include in the Constraint.
+
+
+
+ Generates the SQL string to drop this Constraint in the database.
+
+ The to use for SQL rules.
+
+
+ A string that contains the SQL to drop this Constraint.
+
+
+
+
+ Generates the SQL string to create this Constraint in the database.
+
+ The to use for SQL rules.
+
+
+
+ A string that contains the SQL to create this Constraint.
+
+
+
+
+ When implemented by a class, generates the SQL string to create the named
+ Constraint in the database.
+
+ The to use for SQL rules.
+ The name to use as the identifier of the constraint in the database.
+
+
+ A string that contains the SQL to create the named Constraint.
+
+
+
+
+ Gets or sets the Name used to identify the constraint in the database.
+
+ The Name used to identify the constraint in the database.
+
+
+
+ Gets an of objects that are part of the constraint.
+
+
+ An of objects that are part of the constraint.
+
+
+
+
+ Gets the number of columns that this Constraint contains.
+
+
+ The number of columns that this Constraint contains.
+
+
+
+
+ Gets or sets the this Constraint is in.
+
+
+ The this Constraint is in.
+
+
+
+
+ A Foreign Key constraint in the database.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Generates the SQL string to create the named Foreign Key Constraint in the database.
+
+ The to use for SQL rules.
+ The name to use as the identifier of the constraint in the database.
+
+
+ A string that contains the SQL to create the named Foreign Key Constraint.
+
+
+
+
+ Get the SQL string to drop this Constraint in the database.
+
+ The to use for SQL rules.
+
+
+ A string that contains the SQL to drop this Constraint.
+
+
+
+
+ Gets or sets the that the Foreign Key is referencing.
+
+ The the Foreign Key is referencing.
+
+ Thrown when the number of columns in this Foreign Key is not the same
+ amount of columns as the Primary Key in the ReferencedTable.
+
+
+
+
+ Gets or sets the that this Foreign Key is referencing.
+
+
+ The that this Foreign Key is referencing.
+
+
+
+
+ A formula is a derived column value.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ An PersistentIdentifierBag has a primary key consistenting of just
+ the identifier column.
+
+
+
+
+ A collection with a synthetic "identifier" column.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ An Index in the database.
+
+
+
+
+ Generates the SQL string to create this Index in the database.
+
+ The to use for SQL rules.
+
+
+
+ A string that contains the SQL to create this Index.
+
+
+
+
+ Generates the SQL string to drop this Index in the database.
+
+ The to use for SQL rules.
+
+
+ A string that contains the SQL to drop this Index.
+
+
+
+
+ Adds the to the of
+ Columns that are part of the Index.
+
+ The to include in the Index.
+
+
+
+ Gets or sets the this Index is in.
+
+
+ The this Index is in.
+
+
+
+
+ Gets an of objects that are
+ part of the Index.
+
+
+ An of objects that are
+ part of the Index.
+
+
+
+
+ Gets or sets the Name used to identify the Index in the database.
+
+ The Name used to identify the Index in the database.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A simple-point association (ie. a reference to another entity).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A map has a primary key consisting of the key columns
+ + index columns.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The that contains this map mapping.
+
+
+
+ Gets the appropriate that is
+ specialized for this list mapping.
+
+
+
+
+ A meta attribute is a named value or values.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A mapping for a one-to-many association.
+
+
+
+
+
+
+
+
+
+ No foreign key element for a one-to-many
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A mapping for a one-to-one association.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Base class for the mapped by <class> and a
+ that is mapped by <subclass> or
+ <joined-subclass>.
+
+
+
+
+
+
+
+
+
+
+ Adds a to the class hierarchy.
+
+ The to add to the hierarchy.
+
+
+
+ Change the property definition or add a new property definition
+
+ The to add.
+
+
+
+ Adds a that is implemented by a subclass.
+
+ The implemented by a subclass.
+
+
+
+ Adds a that a subclass is stored in.
+
+ The the subclass is stored in.
+
+
+
+ Creates the for the
+ this type is persisted in.
+
+ The that is used to Alias columns.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Given a property path, locate the appropriate referenceable property reference.
+
+
+ A referenceable property is a property which can be a target of a foreign-key
+ mapping (an identifier or explicitly named in a property-ref).
+
+ The property path to resolve into a property reference.
+ The property reference (never null).
+ If the property could not be found.
+
+
+
+ Gets or Sets if the Insert Sql is built dynamically.
+
+ if the Sql is built at runtime.
+
+ The value of this is set by the dynamic-insert attribute.
+
+
+
+
+ Gets or Sets if the Update Sql is built dynamically.
+
+ if the Sql is built at runtime.
+
+ The value of this is set by the dynamic-update attribute.
+
+
+
+
+ Gets or Sets the value to use as the discriminator for the Class.
+
+
+ A value that distinguishes this subclass in the database.
+
+
+ The value of this is set by the discriminator-value attribute. Each <subclass>
+ in a heirarchy must define a unique discriminator-value. The default value
+ is the class name if no value is supplied.
+
+
+
+
+ Gets a boolean indicating if this PersistentClass has any subclasses.
+
+ if this PeristentClass has any subclasses.
+
+
+
+ Gets the number of subclasses that inherit either directly or indirectly.
+
+ The number of subclasses that inherit from this PersistentClass.
+
+
+
+ Gets the Collection of Subclasses for this PersistentClass.
+
+
+ It will recursively go through Subclasses so that if a Subclass has Subclasses
+ it will pick those up also.
+
+
+
+
+ Gets an of objects
+ that directly inherit from this PersistentClass.
+
+
+ An of objects
+ that directly inherit from this PersistentClass.
+
+
+
+
+ Gets or Sets the that this class is stored in.
+
+ The this class is stored in.
+
+ The value of this is set by the table attribute.
+
+
+
+
+ Gets an of objects.
+
+
+ An of objects.
+
+
+
+
+ Gets the that is being mapped.
+
+ The that is being mapped.
+
+ The value of this is set by the name attribute on the <class>
+ element.
+
+
+
+
+ Gets the fully qualified name of the type being persisted.
+
+ The fully qualified name of the type being persisted.
+
+
+
+ When implemented by a class, gets or set a boolean indicating
+ if the mapped class has properties that can be changed.
+
+ if the object is mutable.
+
+ The value of this is set by the mutable attribute.
+
+
+
+
+ When implemented by a class, gets a boolean indicating
+ if the mapped class has a Property for the id.
+
+ if there is a Property for the id.
+
+
+
+ When implemented by a class, gets or sets the
+ that is used as the id.
+
+
+ The that is used as the id.
+
+
+
+
+ When implemented by a class, gets or sets the
+ that contains information about the identifier.
+
+ The that contains information about the identifier.
+
+
+
+ When implemented by a class, gets or sets the
+ that is used as the version.
+
+ The that is used as the version.
+
+
+
+ When implemented by a class, gets or sets the
+ that contains information about the discriminator.
+
+ The that contains information about the discriminator.
+
+
+
+ When implemented by a class, gets a boolean indicating if this
+ mapped class is inherited from another.
+
+
+ if this class is a subclass or joined-subclass
+ that inherited from another class.
+
+
+
+
+ When implemented by a class, gets or sets if the mapped class has subclasses or is
+ a subclass.
+
+
+ if the mapped class has subclasses or is a subclass.
+
+
+
+
+ When implemented by a class, gets a boolean indicating if the mapped class
+ has a version property.
+
+ if there is a <version> property.
+
+
+
+ When implemented by a class, gets or sets the CacheConcurrencyStrategy
+ to use to read/write instances of the persistent class to the Cache.
+
+ The CacheConcurrencyStrategy used with the Cache.
+
+
+
+ When implemented by a class, gets or sets the
+ that this mapped class is extending.
+
+
+ The that this mapped class is extending.
+
+
+
+
+ When implemented by a class, gets or sets a boolean indicating if
+ explicit polymorphism should be used in Queries.
+
+
+ if only classes queried on should be returned,
+ if any class in the heirarchy should implicitly be returned.
+
+ The value of this is set by the polymorphism attribute.
+
+
+
+
+ When implemented by a class, gets an
+ of objects that this mapped class contains.
+
+
+ An of objects that
+ this mapped class contains.
+
+
+ This is all of the properties of this mapped class and each mapped class that
+ it is inheriting from.
+
+
+
+
+ When implemented by a class, gets an
+ of objects that this mapped class reads from
+ and writes to.
+
+
+ An of objects that
+ this mapped class reads from and writes to.
+
+
+ This is all of the tables of this mapped class and each mapped class that
+ it is inheriting from.
+
+
+
+
+ Gets an of objects that
+ this mapped class contains and that all of its subclasses contain.
+
+
+ An of objects that
+ this mapped class contains and that all of its subclasses contain.
+
+
+
+
+ Gets an of all of the objects that the
+ subclass finds its information in.
+
+ An of objects.
+ It adds the TableClosureCollection and the subclassTables into the ICollection.
+
+
+
+ Gets or sets the to use as a Proxy.
+
+ The to use as a Proxy.
+
+ The value of this is set by the proxy attribute.
+
+
+
+
+ Gets or sets a boolean indicating if only values in the discriminator column that
+ are mapped will be included in the sql.
+
+ if the mapped discriminator values should be forced.
+
+ The value of this is set by the force attribute on the discriminator element.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ When implemented by a class, gets or sets a boolean indicating if the identifier is
+ embedded in the class.
+
+ if the class identifies itself.
+
+ An embedded identifier is true when using a composite-id specifying
+ properties of the class as the key-property instead of using a class
+ as the composite-id.
+
+
+
+
+ When implemented by a class, gets or sets the of the Persister.
+
+
+
+
+ When implemented by a class, gets the of the class
+ that is mapped in the class element.
+
+
+ The of the class that is mapped in the class element.
+
+
+
+
+ When implemented by a class, gets the of the class
+ that is mapped in the class element.
+
+
+ The of the class that is mapped in the class element.
+
+
+
+
+ When implemented by a class, gets or sets the
+ that contains information about the Key.
+
+ The that contains information about the Key.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ When implemented by a class, gets or sets the sql string that should
+ be a part of the where clause.
+
+
+ The sql string that should be a part of the where clause.
+
+
+ The value of this is set by the where attribute.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Build a collection of properties which are "referenceable".
+
+
+ See for a discussion of "referenceable".
+
+
+
+
+ A Primary Key constraint in the database.
+
+
+
+
+ Generates the SQL string to create the Primary Key Constraint in the database.
+
+ The to use for SQL rules.
+
+
+ A string that contains the SQL to create the Primary Key Constraint.
+
+
+
+
+ Generates the SQL string to create the named Primary Key Constraint in the database.
+
+ The to use for SQL rules.
+ The name to use as the identifier of the constraint in the database.
+
+
+ A string that contains the SQL to create the named Primary Key Constraint.
+
+
+
+
+ Get the SQL string to drop this Constraint in the database.
+
+ The to use for SQL rules.
+
+
+ A string that contains the SQL to drop this Constraint.
+
+
+
+
+ A primitive array has a primary key consisting
+ of the key columns + index column.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Mapping for a property of a .NET class (entity
+ or component).
+
+
+
+
+ Gets the number of columns this property uses in the db.
+
+
+
+
+ Gets an of s.
+
+
+
+
+ Gets or Sets the name of the Property in the class.
+
+
+
+
+
+
+
+ Indicates whether given properties are generated by the database and, if
+ so, at what time(s) they are generated.
+
+
+
+
+ Values for this property are never generated by the database.
+
+
+
+
+ Values for this property are generated by the database on insert.
+
+
+
+
+ Values for this property are generated by the database on both insert and update.
+
+
+
+
+ Declaration of a System.Type mapped with the <class> element that
+ is the root class of a table-per-sublcass, or table-per-concrete-class
+ inheritance heirarchy.
+
+
+
+
+ The default name of the column for the Identifier
+
+ id is the default column name for the Identifier.
+
+
+
+ The default name of the column for the Discriminator
+
+ class is the default column name for the Discriminator.
+
+
+
+ Adds a to the class hierarchy.
+
+ The to add to the hierarchy.
+
+ When a is added this mapped class has the property
+ set to .
+
+
+
+
+
+
+
+
+
+
+ Gets or sets the that is used as the id.
+
+
+ The that is used as the id.
+
+
+
+
+ Gets or sets the that contains information about the identifier.
+
+ The that contains information about the identifier.
+
+
+
+ Gets a boolean indicating if the mapped class has a Property for the id.
+
+ if there is a Property for the id.
+
+
+
+ Gets or sets the that contains information about the discriminator.
+
+ The that contains information about the discriminator.
+
+
+
+ Gets a boolean indicating if this mapped class is inherited from another.
+
+
+ because this is the root mapped class.
+
+
+
+
+ Gets or sets if the mapped class has subclasses.
+
+
+ if the mapped class has subclasses.
+
+
+
+
+ Gets the of the class that is mapped in the class element.
+
+
+ this since this is the root mapped class.
+
+
+
+
+ Gets an of objects that this mapped class contains.
+
+
+ An of objects that
+ this mapped class contains.
+
+
+
+
+ Gets an of objects that this
+ mapped class reads from and writes to.
+
+
+ An of objects that
+ this mapped class reads from and writes to.
+
+
+ There is only one in the since
+ this is the root class.
+
+
+
+
+ Gets or sets a boolean indicating if explicit polymorphism should be used in Queries.
+
+
+ if only classes queried on should be returned,
+ if any class in the heirarchy should implicitly be returned.
+
+
+
+
+ Gets or sets the that is used as the version.
+
+ The that is used as the version.
+
+
+
+ Gets a boolean indicating if the mapped class has a version property.
+
+ if there is a Property for a version.
+
+
+
+ Gets or sets the CacheConcurrencyStrategy
+ to use to read/write instances of the persistent class to the Cache.
+
+ The CacheConcurrencyStrategy used with the Cache.
+
+
+
+ Gets or sets the cache region name.
+
+ The region name used with the Cache.
+
+
+
+ Gets or set a boolean indicating if the mapped class has properties that can be changed.
+
+ if the object is mutable.
+
+
+
+ Gets or sets a boolean indicating if the identifier is
+ embedded in the class.
+
+ if the class identifies itself.
+
+ An embedded identifier is true when using a composite-id specifying
+ properties of the class as the key-property instead of using a class
+ as the composite-id.
+
+
+
+
+ Gets or sets the of the Persister.
+
+ The of the Persister.
+
+
+
+ Gets the of the class
+ that is mapped in the class element.
+
+
+ The of the class this mapped class.
+
+
+
+
+ Gets or sets the that this mapped class is extending.
+
+
+ since this is the root class.
+
+
+ Thrown when the setter is called. The Superclass can not be set on the
+ RootClass, only the Subclass can have a Superclass set.
+
+
+
+
+ Gets or sets the that contains information about the Key.
+
+ The that contains information about the Key.
+
+
+
+ Gets or sets a boolean indicating if only values in the discriminator column that
+ are mapped will be included in the sql.
+
+ if the mapped discriminator values should be forced.
+
+
+
+ Gets or sets the sql string that should be a part of the where clause.
+
+
+ The sql string that should be a part of the where clause.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A Set with no nullable element columns will have a primary
+ key consisting of all table columns (ie - key columns +
+ element columns).
+
+
+
+
+ Declaration of a System.Type mapped with the <subclass> or
+ <joined-subclass> element.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The that is the superclass.
+
+
+
+ Add the to this PersistentClass.
+
+ The to add.
+
+ This also adds the to the Superclass' collection
+ of Subclass Properties.
+
+
+
+
+ Adds a that is implemented by a subclass.
+
+ The implemented by a subclass.
+
+ This also adds the to the Superclass' collection
+ of Subclass Properties.
+
+
+
+
+ Adds a that a subclass is stored in.
+
+ The the subclass is stored in.
+
+ This also adds the to the Superclass' collection
+ of Subclass Tables.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets or sets the CacheConcurrencyStrategy
+ to use to read/write instances of the persistent class to the Cache.
+
+ The CacheConcurrencyStrategy used with the Cache.
+
+
+
+ Gets the of the class that is mapped in the class element.
+
+
+ The of the Superclass that is mapped in the class element.
+
+
+
+
+ Gets or sets the that this mapped class is extending.
+
+
+ The that this mapped class is extending.
+
+
+
+
+
+
+
+
+
+ Gets or sets the that is used as the id.
+
+
+ The from the Superclass that is used as the id.
+
+
+
+
+ Gets or sets the that contains information about the identifier.
+
+ The from the Superclass that contains information about the identifier.
+
+
+
+ Gets a boolean indicating if the mapped class has a Property for the id.
+
+ if in the Superclass there is a Property for the id.
+
+
+
+ Gets or sets the that contains information about the discriminator.
+
+ The from the Superclass that contains information about the discriminator.
+
+
+
+ Gets or set a boolean indicating if the mapped class has properties that can be changed.
+
+ if the Superclass is mutable.
+
+
+
+ Gets a boolean indicating if this mapped class is inherited from another.
+
+
+ because this is a Subclass.
+
+
+
+
+ Gets or sets if the mapped class is a subclass.
+
+
+ since this mapped class is a subclass.
+
+
+ The setter should not be used to set the value to anything but .
+
+
+
+
+ Gets or Sets the that this class is stored in.
+
+ The this class is stored in.
+
+ This also adds the to the Superclass' collection
+ of Subclass Tables.
+
+
+
+
+ Gets an of objects that this mapped class contains.
+
+
+ An of objects that
+ this mapped class contains.
+
+
+ This is all of the properties of this mapped class and each mapped class that
+ it is inheriting from.
+
+
+
+
+ Gets an of objects that this
+ mapped class reads from and writes to.
+
+
+ An of objects that
+ this mapped class reads from and writes to.
+
+
+ This is all of the tables of this mapped class and each mapped class that
+ it is inheriting from.
+
+
+
+
+ Gets a boolean indicating if the mapped class has a version property.
+
+ if for the Superclass there is a Property for a version.
+
+
+
+ Gets or sets the that is used as the version.
+
+ The from the Superclass that is used as the version.
+
+
+
+ Gets or sets a boolean indicating if the identifier is
+ embedded in the class.
+
+ if the Superclass has an embedded identifier.
+
+ An embedded identifier is true when using a composite-id specifying
+ properties of the class as the key-property instead of using a class
+ as the composite-id.
+
+
+
+
+ Gets the of the class
+ that is mapped in the class element.
+
+
+ The of the Superclass that is mapped in the class element.
+
+
+
+
+ Gets or sets the that contains information about the Key.
+
+ The that contains information about the Key.
+
+
+
+ Gets or sets a boolean indicating if explicit polymorphism should be used in Queries.
+
+
+ The value of the Superclasses IsExplicitPolymorphism property.
+
+
+
+
+ Gets the sql string that should be a part of the where clause.
+
+
+ The sql string that should be a part of the where clause.
+
+
+ Thrown when the setter is called. The where clause can not be set on the
+ Subclass, only the RootClass.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Represents a Table in a database that an object gets mapped against.
+
+
+
+
+ Initializes a new instance of .
+
+
+
+
+ Gets the schema qualified name of the Table.
+
+ The that knows how to Quote the Table name.
+ The name of the table qualified with the schema if one is specified.
+
+
+
+ Gets the schema qualified name of the Table using the specified qualifier
+
+ The that knows how to Quote the Table name.
+ The Qualifier to use when accessing the table.
+ A String representing the Qualified name.
+ If this were used with MSSQL it would return a dbo.table_name.
+
+
+
+ Gets the name of this Table in quoted form if it is necessary.
+
+
+ The that knows how to quote the Table name.
+
+
+ The Table name in a form that is safe to use inside of a SQL statement.
+ Quoted if it needs to be, not quoted if it does not need to be.
+
+
+
+
+ Gets the schema for this table in quoted form if it is necessary.
+
+
+ The that knows how to quote the table name.
+
+
+ The schema name for this table in a form that is safe to use inside
+ of a SQL statement. Quoted if it needs to be, not quoted if it does not need to be.
+
+
+
+
+ Gets the at the specified index.
+
+ The index of the Column to get.
+
+ The at the specified index.
+
+
+
+
+ Adds the to the of
+ Columns that are part of the Table.
+
+ The to include in the Table.
+
+
+
+
+
+
+
+
+
+
+
+
+ Generates the SQL string to create this Table in the database.
+
+ The to use for SQL rules.
+
+
+
+ A string that contains the SQL to create this Table, Primary Key Constraints
+ , and Unique Key Constraints.
+
+
+
+
+ Generates the SQL string to drop this Table in the database.
+
+ The to use for SQL rules.
+
+
+ A string that contains the SQL to drop this Table and to cascade the drop to
+ the constraints if the database supports it.
+
+
+
+
+ Gets the identified by the name.
+
+ The name of the to get.
+
+ The identified by the name. If the
+ identified by the name does not exist then it is created.
+
+
+
+
+ Gets the identified by the name.
+
+ The name of the to get.
+
+ The identified by the name. If the
+ identified by the name does not exist then it is created.
+
+
+
+
+ Create a for the columns in the Table.
+
+
+ An of objects.
+
+
+ A for the columns in the Table.
+
+
+ This does not necessarily create a , if
+ one already exists for the columns then it will return an
+ existing .
+
+
+
+
+ Generates a unique string for an of
+ objects.
+
+ An of objects.
+
+ An unique string for the objects.
+
+
+
+
+ Sets the Identifier of the Table.
+
+ The that represents the Identifier.
+
+
+
+
+
+
+
+
+
+ Gets or sets the name of the Table in the database.
+
+
+ The name of the Table in the database. The get does
+ not return a Quoted Table name.
+
+
+
+ If a value is passed in that is wrapped by ` then
+ NHibernate will Quote the Table whenever SQL is generated
+ for it. How the Table is quoted depends on the Dialect.
+
+
+ The value returned by the getter is not Quoted. To get the
+ column name in quoted form use .
+
+
+
+
+
+ Gets the number of columns that this Table contains.
+
+
+ The number of columns that this Table contains.
+
+
+
+
+ Gets an of objects that
+ are part of the Table.
+
+
+ An of objects that are
+ part of the Table.
+
+
+
+
+ Gets an of objects that
+ are part of the Table.
+
+
+ An of objects that are
+ part of the Table.
+
+
+
+
+ Gets an of objects that
+ are part of the Table.
+
+
+ An of objects that are
+ part of the Table.
+
+
+
+
+ Gets an of objects that
+ are part of the Table.
+
+
+ An of objects that are
+ part of the Table.
+
+
+
+
+ Gets or sets the of the Table.
+
+ The of the Table.
+
+
+
+ Gets or sets the schema the table is in.
+
+
+ The schema the table is in or if no schema is specified.
+
+
+
+
+ Gets the unique number of the Table.
+
+ The unique number of the Table.
+
+
+
+ Gets or sets if the column needs to be quoted in SQL statements.
+
+ if the column is quoted.
+
+
+
+ An Unique Key constraint in the database.
+
+
+
+
+ Generates the SQL string to create the Unique Key Constraint in the database.
+
+ The to use for SQL rules.
+
+ A string that contains the SQL to create the Unique Key Constraint.
+
+
+
+
+ Generates the SQL string to create the Unique Key Constraint in the database.
+
+ The to use for SQL rules.
+
+
+
+ A string that contains the SQL to create the Unique Key Constraint.
+
+
+
+
+ Get the SQL string to drop this Constraint in the database.
+
+ The to use for SQL rules.
+
+
+ A string that contains the SQL to drop this Constraint.
+
+
+
+
+ Exposes entity class metadata to the application
+
+
+
+
+ Create a class instance initialized with the given identifier
+
+
+
+
+
+
+ Get the type of a particular (named) property
+
+
+
+
+
+
+ Get the value of a particular (named) property
+
+
+
+
+
+
+
+ Set the value of a particular (named) property
+
+
+
+
+
+
+
+ Return the values of the mapped properties of the object
+
+
+
+
+
+ Set the given values to the mapped properties of the given object
+
+
+
+
+
+
+ Get the identifier of an instance (throw an exception if no identifier property)
+
+
+
+
+
+
+ Set the identifier of an instance (or do nothing if no identifier property)
+
+
+
+
+
+
+ Get the version number (or timestamp) from the object's version property
+ (or return null if not versioned)
+
+
+
+
+
+
+ The persistent class
+
+
+
+
+ The name of the identifier property (or return null)
+
+
+
+
+ The names of the class' persistent properties
+
+
+
+
+ The identifier Hibernate type
+
+
+
+
+ The Hibernate types of the classes properties
+
+
+
+
+ Does the class implement the ILifecycle interface?
+
+
+
+
+ Does the class implement the IValidatable inteface?
+
+
+
+
+ Does the class support dynamic proxies?
+
+
+
+
+ Are instances of this class mutable?
+
+
+
+
+ Are instances of this class versioned by a timestamp or version number column?
+
+
+
+
+ Gets the index of the version property
+
+
+
+
+ Get the nullability of the class' persistent properties
+
+
+
+
+ Does the class have an identifier property?
+
+
+
+
+ Exposes collection metadata to the application
+
+
+
+
+ The collection key type
+
+
+
+
+ The collection element type
+
+
+
+
+ The collection index type (or null if the collection has no index)
+
+
+
+
+ Is the collection indexed?
+
+
+
+
+ The name of this collection role
+
+
+
+
+ Is the collection an array?
+
+
+
+
+ Is the collection a primitive array?
+
+
+
+
+ Is the collection lazily initialized?
+
+
+
+
+ Summary description for AbstractCollectionPersister.
+
+
+
+
+ A collection role that may be queried or loaded by outer join.
+
+
+
+
+ Abstraction of all mappings that define properties: entities, collection elements.
+
+
+
+
+ Given a component path expression, get the type of the property
+
+
+
+
+
+
+ Given a query alias and a property path, return the qualified column name
+
+
+
+
+
+
+
+ Get the type of the thing containing the properties
+
+
+
+
+ Anything that can be loaded by outer join - namely persisters for classes or collections.
+
+
+
+
+ All columns to select, when loading.
+
+
+
+
+ Get the where clause part of any joins (optional operation)
+
+
+
+
+
+
+
+
+ Get the from clause part of any joins (optional operation)
+
+
+
+
+
+
+
+
+ Get the where clause filter, given a query alias and considering enabled session filters
+
+
+
+
+ Very, very, very ugly...
+
+ Does this persister "consume" entity column aliases in the result
+ set?
+
+
+
+ Very, very, very ugly...
+
+ Does this persister "consume" collection column aliases in the result
+ set?
+
+
+
+ An identifying name; a class name or collection role name.
+
+
+
+
+ The table to join to.
+
+
+
+
+ The columns to join on.
+
+
+
+
+ Is this instance actually a ICollectionPersister?
+
+
+
+
+ Is this instance actually a many-to-many association?
+
+
+
+
+
A strategy for persisting a collection role. Defines a contract between
+ the persistence strategy and the actual persistent collection framework
+ and session. Does not define operations that are required for querying
+ collections, or loading by outer join.
+
+ Implements persistence of a collection instance while the instance is
+ referenced in a particular role.
+
+ This class is highly coupled to the
+ hierarchy, since double dispatch is used to load and update collection
+ elements.
+
+
+ May be considered an immutable view of the mapping object
+
+
+
+
+ Initialize the given collection with the given key
+
+
+
+
+
+
+ Read the key from a row of the
+
+
+
+
+ Read the element from a row of the
+
+
+
+
+ Read the index from a row of the
+
+
+
+
+ Read the identifier from a row of the
+
+
+
+
+ Completely remove the persistent state of the collection
+
+
+
+
+
+
+ (Re)create the collection's persistent state
+
+
+
+
+
+
+
+ Delete the persistent state of any elements that were removed from the collection
+
+
+
+
+
+
+
+ Update the persistent state of any elements that were modified
+
+
+
+
+
+
+
+ Insert the persistent state of any new collection elements
+
+
+
+
+
+
+
+ Generates the collection's key column aliases, based on the given
+ suffix.
+
+ The suffix to use in the key column alias generation.
+ The key column aliases.
+
+
+
+ Generates the collection's index column aliases, based on the given
+ suffix.
+
+ The suffix to use in the index column alias generation.
+ The index column aliases, or null if not indexed.
+
+
+
+ Generates the collection's element column aliases, based on the given
+ suffix.
+
+ The suffix to use in the element column alias generation.
+ The element column aliases.
+
+
+
+ Generates the collection's identifier column aliases, based on the given
+ suffix.
+
+ The suffix to use in the identifier column alias generation.
+ The identifier column aliases.
+
+
+
+ Get the cache
+
+
+
+
+ Is this collection role cacheable
+
+
+
+
+ Get the associated IType
+
+
+
+
+ Get the "key" type (the type of the foreign key)
+
+
+
+
+ Get the "index" type for a list or map (optional operation)
+
+
+
+
+ Get the "element" type
+
+
+
+
+ Return the element class of an array, or null otherwise
+
+
+
+
+ Is this an array or primitive values?
+
+
+
+
+ Is this an array?
+
+
+
+
+ Is this a one-to-many association?
+
+
+
+
+ Is this an "indexed" collection? (list or map)
+
+
+
+
+ Is this collection lazyily initialized?
+
+
+
+
+ Is this collection "inverse", so state changes are not propogated to the database.
+
+
+
+
+ Get the name of this collection role (the fully qualified class name, extended by a "property path")
+
+
+
+
+ Get the entity class that "owns" this collection
+
+
+
+
+ Get the surrogate key generation strategy (optional operation)
+
+
+
+
+ Get the type of the surrogate key
+
+
+
+
+ Does this collection implement "orphan delete"?
+
+
+
+
+ Is this an ordered collection? (An ordered collection is
+ ordered by the initialization operation, not by sorting
+ that happens in memory, as in the case of a sorted collection.)
+
+
+
+
+ Get the "space" that holds the persistent state
+
+
+
+
+ Generate a list of collection index and element columns
+
+
+
+
+ Get the names of the collection element columns (or the primary
+ key columns in the case of a one-to-many association),
+ aliased by the given table alias
+
+
+
+
+ Get the extra where clause filter SQL
+
+
+
+
+
+
+ Get the order by SQL
+
+
+
+
+
+
+ Get the order-by to be applied at the target table of a many to many
+
+ The alias for the many-to-many target table
+ Appropriate order-by fragment or empty string.
+
+
+
+ Get the names of the collection index columns if this is an indexed collection (optional operation)
+
+
+
+
+ Get the names of the collection element columns (or the primary key columns in the case of a one-to-many association)
+
+
+
+
+ Does this collection role have a where clause filter?
+
+
+
+
+ Get the persister of the element class, if this is a
+ collection of entities (optional operation). Note that
+ for a one-to-many association, the returned persister
+ must be OuterJoinLoadable.
+
+
+
+
+ Should we load this collection role by outer joining?
+
+
+
+
+ Reads the Element from the IDataReader. The IDataReader will probably only contain
+ the id of the Element.
+
+ See ReadElementIdentifier for an explanation of why this method will be depreciated.
+
+
+
+ Gets just the Identifier of the Element for the Collection.
+
+
+
+
+
+
+ This was created in addition to ReadElement because ADO.NET does not allow
+ for 2 IDataReaders to be open against a single IDbConnection at one time.
+
+ When a Collection is loaded it was recursively opening IDbDataReaders to resolve
+ the Element for the Collection while the IDbDataReader was open that contained the
+ record for the Collection.
+
+
+
+
+ Return the element class of an array, or null otherwise
+
+
+
+
+ Get the name of this collection role (the fully qualified class name,
+ extended by a "property path")
+
+
+
+
+ Collection persister for collections of values and many-to-many associations.
+
+
+
+
+ Generate the SQL DELETE that deletes all rows
+
+
+
+
+
+ Generate the SQL INSERT that creates a new row
+
+
+
+
+
+ Generate the SQL UPDATE that updates a row
+
+
+
+
+
+ Generate the SQL DELETE that deletes a particular row
+
+
+
+
+
+ Create the
+
+
+
+
+ Summary description for CollectionPropertyMapping.
+
+
+
+
+ The names of all the collection properties.
+
+
+
+
+ Summary description for CompositeElementPropertyMapping.
+
+
+
+
+ Base implementation of a PropertyMapping.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Summary description for ElementPropertyMapping.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Summary description for OneToManyPersister.
+
+
+
+
+ Generate the SQL UPDATE that updates all the foreign keys to null
+
+
+
+
+
+ Generate the SQL UPDATE that updates a foreign key to a value
+
+
+
+
+
+ Not needed for one-to-many association
+
+
+
+
+
+ Generate the SQL UPDATE that updates a particular row's foreign
+ key to null
+
+
+
+
+
+ Create the
+
+
+
+
+ Superclass for built-in mapping strategies. Implements functionalty common to both mapping
+ strategies
+
+
+ May be considered an immutable view of the mapping object
+
+
+
+
+ A ClassPersister that may be loaded by outer join using
+ the OuterJoinLoader hierarchy and may be an element
+ of a one-to-many association.
+
+
+
+
+ Implemented by ClassPersister that uses Loader. There are several optional
+ operations used only by loaders that inherit OuterJoinLoader
+
+
+
+
+ Concrete IEntityPersisters implement mapping and persistence logic for a particular class.
+
+
+ Implementors must be threadsafe (preferrably immutable) and must provide a constructor of type
+ (PersistentClass, SessionFactoryImplementor)
+
+
+
+
+ Finish the initialization of this object, once all ClassPersisters have been
+ instantiated. Called only once, before any other method.
+
+
+
+
+ Create a new proxy instance
+
+
+
+
+
+
+
+ Is this a new transient instance?
+
+
+
+
+
+
+ Set the given values to the mapped properties of the given object
+
+
+
+
+
+
+ Return the values of the mapped properties of the object
+
+
+
+
+
+
+ Set the value of a particular property
+
+
+
+
+
+
+
+ Get the value of a particular property
+
+
+
+
+
+
+
+ Get the value of a particular property
+
+
+
+
+
+
+
+ Get the type of a particular property
+
+
+
+
+
+
+ Compare two snapshots of the state of an instance to determine if the persistent state
+ was modified
+
+
+
+
+
+ or the indices of the dirty properties
+
+
+
+ Compare the state of an instance to the current database state
+
+
+
+
+
+ return or the indicies of the modified properties
+
+
+
+ Get the identifier of an instance ( throw an exception if no identifier property)
+
+
+
+
+
+
+ Set the identifier of an instance (or do nothing if no identifier property)
+
+ The object to set the Id property on.
+ The value to set the Id property to.
+
+
+
+ Get the version number (or timestamp) from the object's version property (or return null if not versioned)
+
+
+
+
+
+
+ Create a class instance initialized with the given identifier
+
+
+
+
+
+
+ Load an insatance of the persistent class.
+
+
+
+
+
+
+
+
+
+ Do a version check (optional operation)
+
+
+
+
+
+
+
+
+
+ Persist an instance
+
+
+
+
+
+
+
+
+ Persist an instance, using a natively generated identifier (optional operation)
+
+
+
+
+
+
+
+
+ Delete a persistent instance
+
+
+
+
+
+
+
+
+ Update a persistent instance
+
+ The id.
+ The fields.
+ The dirty fields.
+ if set to [has dirty collection].
+ The old fields.
+ The old version.
+ The obj.
+ The session.
+
+
+
+ Get the current database state of the object, in a "hydrated" form, without resolving identifiers
+
+
+
+
+ if select-before-update is not enabled or not supported
+
+
+
+ Get the current version of the object, or return null if there is no row for
+ the given identifier. In the case of unversioned data, return any object
+ if the row exists.
+
+
+
+
+
+
+
+
+
+
+ NHibernate-specific feature, not present in H2.1
+
+
+
+ Determines whether the specified entity is an instance of the class
+ managed by this persister.
+
+ The entity.
+
+ if the specified entity is an instance; otherwise, .
+
+
+
+
+ Perform a select to retrieve the values of any generated properties
+ back from the database, injecting these generated values into the
+ given entity as well as writing this state to the persistence context.
+
+
+ Note, that because we update the persistence context here, callers
+ need to take care that they have already written the initial snapshot
+ to the persistence context before calling this method.
+
+ The entity's id value.
+ The entity for which to get the state.
+ The entity state (at the time of Save).
+ The session.
+
+
+
+ Perform a select to retrieve the values of any generated properties
+ back from the database, injecting these generated values into the
+ given entity as well as writing this state to the persistence context.
+
+
+ Note, that because we update the persistence context here, callers
+ need to take care that they have already written the initial snapshot
+ to the persistence context before calling this method.
+
+ The entity's id value.
+ The entity for which to get the state.
+ The entity state (at the time of Save).
+ The session.
+
+
+
+ Returns an object that identifies the space in which identifiers of this class hierarchy
+ are unique. eg. a table name, etc.
+
+
+
+
+ Returns an array of objects that identifies spaces in which properties of this class
+ instance are persisted. eg. table names.
+
+
+
+
+
+ The persistent class
+
+
+
+
+ The classname of the persistent class (used only for messages)
+
+
+
+
+ Does the class implement the ILifecycle inteface?
+
+
+
+
+ Does the class implement the IValidatable interface?
+
+
+
+
+ Does this class support dynamic proxies?
+
+
+
+
+ Get the proxy interface that instances of this concrete class will be cast to
+
+
+
+
+ Do instances of this class contain collections?
+
+
+
+
+ Does this class declare any cascading save/update/deletes?
+
+
+
+
+ Are instances of this class mutable?
+
+
+
+
+ Is the identifier assigned before the insert by an IDGenerator or is it returned
+ by the Insert() method?
+
+
+ This determines which form of Insert() will be called.
+
+
+
+
+ Does the class have a property holding the identifier value?
+
+
+
+
+ Gets if the Type has a Property for the <id> or uses a <composite-id>
+ to store the id.
+
+ true if there is a Identifier Property or Composite Identifier.
+
+
+
+ Are instances of this class versioned by a timestamp or version number column?
+
+
+
+
+ Get the type of versioning (optional operation)
+
+
+
+
+ Which property holds the version number? (optional operation)
+
+
+
+
+ Return the IIdentifierGenerator for the class
+
+
+
+
+ Get the Hibernate types of the class properties
+
+
+
+
+ Get the names of the class properties - doesn't have to be the names of the actual
+ .NET properties (used for XML generation only)
+
+
+
+
+ Gets if the Property is updatable
+
+ if the Property's value can be updated.
+
+ This is for formula columns and if the user sets the update attribute on the <property> element.
+
+
+
+
+ Properties that may be dirty (and thus should be dirty-checked). These
+ include all updatable properties and some associations.
+
+
+
+
+ Get the nullability of the properties of this class
+
+
+
+
+ Gets if the Property is insertable.
+
+ if the Property's value can be inserted.
+
+ This is for formula columns and if the user sets the insert attribute on the <property> element.
+
+
+
+
+ Get the "versionability" of the properties of this class (is the property optimistic-locked)
+
+ if the property is optimistic-locked; otherwise, .
+
+
+
+ Get the cascade styles of the properties (optional operation)
+
+
+
+
+ Get the identifier type
+
+
+
+
+ Get the name of the indentifier property (or return null) - need not return the
+ name of an actual .NET property
+
+
+
+
+ Should we always invalidate the cache instead of recaching updated state
+
+
+
+
+ Does this class have a cache?
+
+
+
+
+ Get the cache (optional operation)
+
+
+
+
+ Get the user-visible metadata for the class (optional operation)
+
+
+
+
+ Is batch loading enabled?
+
+
+
+
+ Returns an array of objects that identify spaces in which properties of this class are persisted,
+ for instances of this class and its subclasses.
+
+
+
+
+ The session factory this instance is associated with.
+
+
+
+
+ Does this entity contain a version property that is defined
+ to be database generated?
+
+
+
+
+ Does this entity define any properties as being database-generated on insert?
+
+
+
+
+ Does this entity define any properties as being database-generated on update?
+
+
+
+
+ Get the concrete subclass corresponding to the given discriminator value
+
+
+
+
+ Get the result set aliases used for the identifier columns, given a suffix
+
+
+
+
+ Get the result set aliases used for the property columns, given a suffix (properties of this class, only).
+
+
+
+
+ Get the result set column names mapped for this property (properties of this class, only).
+
+
+
+
+ Get the alias used for the discriminator column, given a suffix
+
+
+
+
+ Does the persistent class have subclasses?
+
+
+
+
+ The discriminator type
+
+
+
+
+ Get the names of columns used to persist the identifier
+
+
+
+
+ Get the name of the column used as a discriminator
+
+
+
+
+ Does this entity own any collections which are fetchable by subselect?
+
+
+
+
+ How many properties are there, for this class and all subclasses? (optional operation)
+
+
+
+
+
+ May this property be fetched using an SQL outerjoin?
+
+
+
+
+
+
+ Get the cascade style of this (subclass closure) property
+
+
+
+
+ Is this property defined on a subclass of the mapped class?
+
+
+
+
+
+
+ Get an array of the types of all properties of all subclasses (optional operation)
+
+
+
+
+
+
+ Get the name of the numbered property of the class or a subclass
+ (optional operation)
+
+
+
+
+
+
+ Is the numbered property of the class of subclass nullable?
+
+
+
+
+ Return the column names used to persist all properties of all sublasses of the persistent class
+ (optional operation)
+
+
+
+
+ Return the table name used to persist the numbered property of
+ the class or a subclass
+ (optional operation)
+
+
+
+
+ Given the number of a property of a subclass, and a table alias, return the aliased column names
+ (optional operation)
+
+
+
+
+
+
+
+ Get the main from table fragment, given a query alias (optional operation)
+
+
+
+
+
+
+ Generate a list of collection index and element columns
+
+
+
+
+
+
+
+ Get the column names for the given property path
+
+
+
+
+ Get the table name for the given property path
+
+
+
+
+ Extends the generic ILoadable contract to add operations required by HQL
+
+
+
+
+ Get the where clause fragment, give a query alias
+
+ SQL alias to use for column names in the returned query
+
+
+
+
+
+
+ Given a query alias and an identifying suffix, render the intentifier select fragment.
+
+
+
+
+
+
+
+ Given a query alias and an identifying suffix, render the property select fragment.
+
+
+
+
+
+
+
+ Is this class mapped as a subclass of another class?
+
+
+
+
+ Is this class explicit polymorphism only?
+
+
+
+
+ The class that this class is mapped as a subclass of - not necessarily the direct superclass
+
+
+
+
+ The discriminator value for this particular concrete subclass, as a string that may be
+ embedded in a select statement
+
+
+
+
+ The discriminator value for this particular concrete subclass (the value in the hbm)
+
+
+
+
+ Describes a class that may be loaded via a unique key.
+
+
+
+
+ Load an instance of the persistent class, by a unique key other than the primary key.
+
+
+
+
+
+
+
+
+ Get the property number of the unique key property
+
+
+
+
+ A class persister that supports queries expressed in the platform native SQL dialect.
+
+
+
+
+ Returns the column alias names used to persist/query the numbered property of the class or a subclass (optional operation).
+
+
+
+
+
+
+
+ All columns to select, when loading.
+
+
+
+
+ Get the type
+
+
+
+
+ Set the given values to the mapped properties of the given object
+
+
+ Use the access optimizer if available
+
+
+
+
+ Return the values of the mapped properties of the object
+
+
+ Uses the access optimizer, if available.
+
+
+
+
+ Get the value of the numbered property
+
+
+
+
+
+
+
+ Set the value of the numbered property
+
+
+
+
+
+
+
+ Determine if the given field values are dirty.
+
+
+
+
+
+
+
+
+
+ Determine if the given field values are dirty.
+
+
+
+
+
+
+
+
+
+ Return a new instance initialized with the given identifier.
+
+
+
+
+
+
+ Returns the SQL used to get the Identity value from the last insert.
+
+ This is not a NHibernate Command because the SQL contains no parameters.
+
+
+
+ Must be called by subclasses, at the end of their constructors
+
+
+
+
+
+ Retrieve the version number
+
+
+
+
+
+
+
+ Do a version check
+
+
+
+
+ Generate the SQL that selects the version number by id
+
+
+
+
+
+ Transform the array of property indexes to an array of booleans
+
+
+
+
+ Get the column names for the numbered property of this class
+
+
+
+
+ Decide which tables need to be updated
+
+
+
+
+ Persist an object, using a natively generated identifier
+
+
+
+
+ Warning:
+ When there are duplicated property names in the subclasses
+ of the class, this method may return the wrong table
+ number for the duplicated subclass property (note that
+ SingleTableEntityPersister defines an overloaded form
+ which takes the entity name.
+
+
+
+
+ Load an instance using the appropriate loader (as determined by
+
+
+
+
+ Delete an object.
+
+
+
+
+ Persist an object
+
+
+
+
+ Determines whether the specified entity is an instance of the class
+ managed by this persister.
+
+ The entity.
+
+ if the specified entity is an instance; otherwise, .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The queries that delete rows by id (and version)
+
+
+
+
+ The queries that insert rows with a given id
+
+
+
+
+ The query that insert a row into the root table, letting the database generate an id
+
+
+
+
+ The queries that update rows by id (and version)
+
+
+
+
+ A IEntityPersister implementing the normalized "table-per-subclass" mapping strategy
+
+
+
+
+ Generate the SQL that pessimistic locks a row by id (and version)
+
+ An existing SqlString to copy for then new SqlString.
+
+ A new SqlString
+
+ The parameter sqlString does not get modified. It is Cloned to make a new SqlString.
+ If the parametersqlString is null a new one will be created.
+
+
+
+
+ Constructs the NormalizedEntityPerister for the PersistentClass.
+
+ The PeristentClass to create the EntityPersister for.
+ The configured .
+ The SessionFactory that this EntityPersister will be stored in.
+ The mapping used to retrieve type information.
+
+
+
+ Create a new one dimensional array sorted in the Reverse order of the original array.
+
+ The original array.
+ A new array in the reverse order of the original array.
+
+
+
+ Create a new two dimensional array sorted in the Reverse order of the original array. The
+ second dimension is not reversed.
+
+ The original array.
+ A new array in the reverse order of the original array.
+
+
+
+ Find the Index of the table name from a list of table names.
+
+ The name of the table to find.
+ The array of table names
+ The Index of the table in the array.
+ Thrown when the tableName specified can't be found
+
+
+
+ Constants from interface.
+
+
+
+
+ Default implementation of the ClassPersister interface. Implements the
+ "table-per-class hierarchy" mapping strategy for an entity class.
+
+
+
+
+ Generate the SQL that selects a row by id using FOR UPDATE
+
+
+
+
+
+ Generate the SQL that selects a row by id using FOR UPDATE NOWAIT
+
+
+
+
+
+ Generates an SqlString that selects a row by id
+
+ SQL containing FOR UPDATE clauses
+ to append at the end of the query (optional)
+
+
+
+
+ Generate the SQL that updates a row by id, excluding subclasses
+
+
+
+
+
+
+ Generates the SQL that pessimistically locks a row by id (and version)
+
+ An existing SqlString to copy for then new SqlString.
+
+ A new SqlString
+
+ The parameter sqlString does not get modified. It is Cloned to make a new SqlString.
+ If the parametersqlString is null a new one will be created.
+
+
+
+
+
+
+
+
+
+
+ Factory for IEntityPersister and ICollectionPersister instances.
+
+
+
+
+ Creates a built in Entity Persister or a custom Persister.
+
+
+
+
+ Creates a specific Persister - could be a built in or custom persister.
+
+
+
+
+ An for a Property get.
+
+
+
+
+ Gets values of a particular mapped property.
+
+
+
+
+ When implemented by a class, gets the value of the Property/Field from the object.
+
+ The object to get the Property/Field value from.
+
+ The value of the Property for the target.
+
+
+ Thrown when there is a problem getting the value from the target.
+
+
+
+
+ When implemented by a class, gets the that the Property/Field returns.
+
+ The that the Property returns.
+
+
+
+ When implemented by a class, gets the name of the Property.
+
+ The name of the Property or .
+
+ This is an optional operation - if the is not
+ for a Property get then is an acceptable value to return.
+
+
+
+
+ When implemented by a class, gets the for the get
+ accessor of the property.
+
+
+ This is an optional operation - if the is not
+ for a property get then is an acceptable value to return.
+ It is used by the proxies to determine which getter to intercept for the
+ identifier property.
+
+
+
+
+ An that can emit IL to get the property value.
+
+
+
+
+ Emit IL to get the property value from the object on top of the stack.
+
+
+
+
+ Initializes a new instance of .
+
+ The that contains the Property get.
+ The for reflection.
+ The name of the Property.
+
+
+
+ Gets the value of the Property from the object.
+
+ The object to get the Property value from.
+
+ The value of the Property for the target.
+
+
+
+
+ Gets the that the Property returns.
+
+ The that the Property returns.
+
+
+
+ Gets the name of the Property.
+
+ The name of the Property.
+
+
+
+ Gets the for the Property.
+
+
+ The for the Property.
+
+
+
+
+ Accesses mapped property values via a get/set pair, which may be nonpublic.
+ The default (and recommended strategy).
+
+
+
+
+ Abstracts the notion of a "property". Defines a strategy for accessing the
+ value of a mapped property.
+
+
+
+
+ When implemented by a class, create a "getter" for the mapped property.
+
+ The to find the Property in.
+ The name of the mapped Property to get.
+
+ The to use to get the value of the Property from an
+ instance of the .
+
+ Thrown when a Property specified by the propertyName could not
+ be found in the .
+
+
+
+
+ When implemented by a class, create a "setter" for the mapped property.
+
+ The to find the Property in.
+ The name of the mapped Property to set.
+
+ The to use to set the value of the Property on an
+ instance of the .
+
+
+ Thrown when a Property specified by the propertyName could not
+ be found in the .
+
+
+
+
+ Create a for the mapped property.
+
+ The to find the Property in.
+ The name of the mapped Property to get.
+
+ The to use to get the value of the Property from an
+ instance of the .
+
+ Thrown when a Property specified by the propertyName could not
+ be found in the .
+
+
+
+
+ Create a for the mapped property.
+
+ The to find the Property in.
+ The name of the mapped Property to get.
+
+ The to use to set the value of the Property on an
+ instance of the .
+
+
+ Thrown when a Property specified by the propertyName could not
+ be found in the .
+
+
+
+
+ Helper method to find the Property get.
+
+ The to find the Property in.
+ The name of the mapped Property to get.
+
+ The for the Property get or
+ if the Property could not be found.
+
+
+
+
+ Helper method to find the Property set.
+
+ The to find the Property in.
+ The name of the mapped Property to set.
+
+ The for the Property set or
+ if the Property could not be found.
+
+
+
+
+ An for a Property set.
+
+
+
+
+ Sets values of a particular mapped property.
+
+
+
+
+ When implemented by a class, sets the value of the Property/Field on the object.
+
+ The object to set the Property value in.
+ The value to set the Property to.
+
+ Thrown when there is a problem setting the value in the target.
+
+
+
+
+ When implemented by a class, gets the name of the Property.
+
+ The name of the Property or .
+
+ This is an optional operation - if it is not implemented then
+ is an acceptable value to return.
+
+
+
+
+ When implemented by a class, gets the for the set
+ accessor of the property.
+
+
+ This is an optional operation - if the is not
+ for a property set then is an acceptable value to return.
+ It is used by the proxies to determine which setter to intercept for the
+ identifier property.
+
+
+
+
+ An that can emit IL to set the property value.
+
+
+
+
+ Emit IL to set the property of an object to the value. The object
+ is loaded onto the stack first, then the value, then this method
+ is called.
+
+
+
+
+ Initializes a new instance of .
+
+ The that contains the Property set.
+ The for reflection.
+ The name of the mapped Property.
+
+
+
+ Sets the value of the Property on the object.
+
+ The object to set the Property value in.
+ The value to set the Property to.
+
+ Thrown when there is a problem setting the value in the target.
+
+
+
+
+ Gets the name of the mapped Property.
+
+ The name of the mapped Property or .
+
+
+
+ Gets the for the mapped Property.
+
+ The for the mapped Property.
+
+
+
+ Implementation of for fields that are the
+ camelCase version of the PropertyName
+
+
+
+
+ A Strategy for converting a mapped property name to a Field name.
+
+
+
+
+ When implemented by a class, converts the Property's name into a Field name
+
+ The name of the mapped property.
+ The name of the Field.
+
+
+
+ Converts the Property's name into a Field name by making the first character
+ lower case.
+
+ The name of the mapped property.
+ The name of the Field in CamelCase format.
+
+
+
+ Implementation of for fields that are prefixed with
+ an underscore and the PropertyName is changed to camelCase.
+
+
+
+
+ Converts the Property's name into a Field name by making the first character
+ of the propertyName lowercase and prefixing it with an underscore.
+
+ The name of the mapped property.
+ The name of the Field in CamelCase format prefixed with an underscore.
+
+
+
+ Access the mapped property by using a Field to get and set the value.
+
+
+ The is useful when you expose getter and setters
+ for a Property, but they have extra code in them that shouldn't be executed when NHibernate
+ is setting or getting the values for loads or saves.
+
+
+
+
+ Initializes a new instance of .
+
+
+
+
+ Initializes a new instance of .
+
+ The to use.
+
+
+
+ Create a to get the value of the mapped Property
+ through a Field.
+
+ The to find the Property in.
+ The name of the mapped Property to get.
+
+ The to use to get the value of the Property from an
+ instance of the .
+
+ Thrown when a Field specified by the propertyName could not
+ be found in the .
+
+
+
+
+ Create a to set the value of the mapped Property
+ through a Field.
+
+ The to find the mapped Property in.
+ The name of the mapped Property to set.
+
+ The to use to set the value of the Property on an
+ instance of the .
+
+
+ Thrown when a Field for the Property specified by the propertyName using the
+ could not be found in the .
+
+
+
+
+ Helper method to find the Field.
+
+ The to find the Field in.
+ The name of the Field to find.
+
+ The for the field.
+
+
+ Thrown when a field could not be found.
+
+
+
+
+ Converts the mapped property's name into a Field using
+ the if one exists.
+
+ The name of the Property.
+ The name of the Field.
+
+
+
+ Gets the used to convert the name of the
+ mapped Property in the hbm.xml file to the name of the field in the class.
+
+ The or .
+
+
+
+ An that uses a Field instead of the Property get.
+
+
+
+
+ Initializes a new instance of .
+
+ The that contains the field to use for the Property get.
+ The for reflection.
+ The name of the Field.
+
+
+
+ Gets the value of the Field from the object.
+
+ The object to get the Field value from.
+
+ The value of the Field for the target.
+
+
+
+
+ Gets the that the Field returns.
+
+ The that the Field returns.
+
+
+
+ Gets the name of the Property.
+
+ since this is a Field - not a Property.
+
+
+
+ Gets the for the Property.
+
+ since this is a Field - not a Property.
+
+
+
+ An that uses a Field instead of the Property set.
+
+
+
+
+ Initializes a new instance of .
+
+ The that contains the Field to use for the Property set.
+ The for reflection.
+ The name of the Field.
+
+
+
+ Sets the value of the Field on the object.
+
+ The object to set the Field value in.
+ The value to set the Field to.
+
+ Thrown when there is a problem setting the value in the target.
+
+
+
+
+ Gets the name of the Property.
+
+ since this is a Field - not a Property.
+
+
+
+ Gets the for the Property.
+
+ since this is a Field - not a Property.
+
+
+
+ Implementation of for fields that are
+ the PropertyName in all LowerCase characters.
+
+
+
+
+ Converts the Property's name into a Field name by making the all characters
+ of the propertyName lowercase.
+
+ The name of the mapped property.
+ The name of the Field in lowercase.
+
+
+
+ Implementation of for fields that are prefixed with
+ an underscore and the PropertyName is changed to lower case.
+
+
+
+
+ Converts the Property's name into a Field name by making the all characters
+ of the propertyName lowercase and prefixing it with an underscore.
+
+ The name of the mapped property.
+ The name of the Field in lowercase prefixed with an underscore.
+
+
+
+ Access the mapped property through a Property get to get the value
+ and go directly to the Field to set the value.
+
+
+ This is most useful because Classes can provider a get for the Property
+ that is the <id> but tell NHibernate there is no setter for the Property
+ so the value should be written directly to the field.
+
+
+
+
+ Initializes a new instance of .
+
+ The to use.
+
+
+
+ Creates an to get the value from the Property.
+
+ The to find the Property in.
+ The name of the mapped Property to get.
+
+ The to use to get the value of the Property from an
+ instance of the .
+
+ Thrown when a Property specified by the propertyName could not
+ be found in the .
+
+
+
+
+ Create a to set the value of the mapped Property
+ through a Field.
+
+ The to find the mapped Property in.
+ The name of the mapped Property to set.
+
+ The to use to set the value of the Property on an
+ instance of the .
+
+
+ Thrown when a Field for the Property specified by the propertyName using the
+ could not be found in the .
+
+
+
+
+ Converts the Property's name into a Field name by making the first character
+ of the propertyName uppercase and prefixing it with the letter 'm'.
+
+ The name of the mapped property.
+ The name of the Field in PascalCase format prefixed with an 'm'.
+
+
+
+ Implementation of for fields that are prefixed with
+ an m_ and the first character in PropertyName capitalized.
+
+
+
+
+ Converts the Property's name into a Field name by making the first character
+ of the propertyName uppercase and prefixing it with the letter 'm'
+ and an underscore.
+
+ The name of the mapped property.
+ The name of the Field in PascalCase format prefixed with an 'm' and an underscore.
+
+
+
+ Implementation of for fields that are prefixed with
+ an _ and the first character in PropertyName capitalized.
+
+
+
+
+ Converts the Property's name into a Field name by making the first character
+ of the propertyName uppercase and prefixing it with an underscore.
+
+ The name of the mapped property.
+ The name of the Field in PascalCase format prefixed with an underscore.
+
+
+
+ Factory for creating the various PropertyAccessor strategies.
+
+
+
+
+ Initializes the static members in .
+
+
+
+
+ Gets or creates the specified by the type.
+
+
+ The specified by the type.
+
+
+ The built in ways of accessing the values of Properties in your domain class are:
+
+
+
+ Access Method
+ How NHibernate accesses the Mapped Class.
+
+
+ property
+
+ The name attribute is the name of the Property. This is the
+ default implementation.
+
+
+
+ field
+
+ The name attribute is the name of the field. If you have any Properties
+ in the Mapped Class those will be bypassed and NHibernate will go straight to the
+ field. This is a good option if your setters have business rules attached to them
+ or if you don't want to expose a field through a Getter & Setter.
+
+
+
+ nosetter
+
+ The name attribute is the name of the Property. NHibernate will use the
+ Property's get method to retreive the value and will use the field
+ to set the value. This is a good option for <id> Properties because this access method
+ allow's users of the Class to get the value of the Id but not set the value.
+
+
+
+ Assembly Qualified Name
+
+ If NHibernate's built in s are not what is needed for your
+ situation then you are free to build your own. Provide an Assembly Qualified Name so that
+ NHibernate can call Activator.CreateInstance(AssemblyQualifiedName) to create it.
+
+
+
+
+ In order for the nosetter to know the name of the field to access NHibernate needs to know
+ what the naming strategy is. The following naming strategies are built into NHibernate:
+
+
+
+ Naming Strategy
+ How NHibernate converts the value of the name attribute to a field name.
+
+
+ camelcase
+
+ The name attribute should be changed to CamelCase to find the field.
+ <property name="Foo" ... > finds a field foo.
+
+
+
+ camelcase-underscore
+
+ The name attribute should be changed to CamelCase and prefixed with
+ an underscore to find the field.
+ <property name="Foo" ... > finds a field _foo.
+
+
+
+ pascalcase-underscore
+
+ The name attribute should be prefixed with an underscore
+ to find the field.
+ <property name="Foo" ... > finds a field _Foo.
+
+
+
+ pascalcase-m-underscore
+
+ The name attribute should be prefixed with an 'm' and underscore
+ to find the field.
+ <property name="Foo" ... > finds a field m_Foo.
+
+
+
+ pascalcase-m
+
+ The name attribute should be prefixed with an 'm'.
+ <property name="Foo" ... > finds a field mFoo.
+
+
+
+ lowercase
+
+ The name attribute should be changed to lowercase to find the field.
+ <property name="FooBar" ... > finds a field foobar.
+
+
+
+ lowercase-underscore
+
+ The name attribute should be changed to lowercase and prefixed with
+ and underscore to find the field.
+ <property name="FooBar" ... > finds a field _foobar.
+
+
+
+
+ The naming strategy can also be appended at the end of the field access method. Where
+ this could be useful is a scenario where you do expose a get and set method in the Domain Class
+ but NHibernate should only use the fields.
+
+
+ With a naming strategy and a get/set for the Property available the user of the Domain Class
+ could write an Hql statement from Foo as foo where foo.SomeProperty = 'a'. If no naming
+ strategy was specified the Hql statement whould have to be from Foo as foo where foo._someProperty
+ (assuming CamelCase with an underscore field naming strategy is used).
+
+
+
+
+
+ A for use with the Castle Dynamic Class Generator.
+
+
+
+
+ Provides the base functionallity to Handle Member calls into a dynamically
+ generated NHibernate Proxy.
+
+
+ This could be an extension point later if the .net framework ever gets a Proxy
+ class that is similar to the java.lang.reflect.Proxy or if a library similar
+ to cglib was made in .net.
+
+
+
+
+ If this is returned by Invoke then the subclass needs to Invoke the
+ method call against the object that is being proxied.
+
+
+
+
+ Create a LazyInitializer to handle all of the Methods/Properties that are called
+ on the Proxy.
+
+ The Class to Proxy.
+ The Id of the Object we are Proxying.
+
+
+ The ISession this Proxy is in.
+
+
+
+ Perform an ImmediateLoad of the actual object for the Proxy.
+
+
+ Thrown when the Proxy has no Session or the Session is closed or disconnected.
+
+
+
+
+ Adds all of the information into the SerializationInfo that is needed to
+ reconstruct the proxy during deserialization or to replace the proxy
+ with the instantiated target.
+
+
+ This will only be called if the Dynamic Proxy generator does not handle serialization
+ itself or delegates calls to the method GetObjectData to the LazyInitializer.
+
+
+
+
+ Invokes the method if this is something that the LazyInitializer can handle
+ without the underlying proxied object being instantiated.
+
+ The name of the method/property to Invoke.
+ The arguments to pass the method/property.
+ The proxy object that the method is being invoked on.
+
+ The result of the Invoke if the underlying proxied object is not needed. If the
+ underlying proxied object is needed then it returns the result
+ which indicates that the Proxy will need to forward to the real implementation.
+
+
+
+
+ Return the Underlying Persistent Object, initializing if necessary.
+
+ The Persistent Object this proxy is Proxying.
+
+
+
+ Return the Underlying Persistent Object in a given , or null.
+
+ The Session to get the object from.
+ The Persistent Object this proxy is Proxying, or .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Initializes a new object.
+
+ The Class to Proxy.
+ The Id of the Object we are Proxying.
+
+
+ The ISession this Proxy is in.
+
+
+
+ Invoke the actual Property/Method using the Proxy or instantiate the actual
+ object and use it when the Proxy can't handle the method.
+
+ The from the generated Castle.DynamicProxy.
+ The parameters for the Method/Property
+ The result just like the actual object was called.
+
+
+
+ Called immediately after instantiation
+
+
+
+
+
+
+
+
+ Create a new proxy
+
+ The id value for the proxy to be generated.
+ The session to which the generated proxy will be
+ associated.
+ The generated proxy.
+ Indicates problems generating
+ requested proxy.
+
+
+
+ Build a proxy using the Castle.DynamicProxy library.
+
+ The value for the Id.
+ The Session the proxy is in.
+ A fully built INHibernateProxy.
+
+
+
+ A marker interface so NHibernate can know if it is dealing with
+ an object that is a Proxy.
+
+
+
+ This interface should not be implemented by anything other than
+ the Dynamically generated Proxy. If it is implemented by a class then
+ NHibernate will think that class is a Proxy and will not work.
+
+
+ It has to be public scope because
+ the Proxies are created in a seperate DLL than NHibernate.
+
+
+
+
+
+ NHibernateProxyHelper provides convenience methods for working with
+ objects that might be instances of Classes or the Proxied version of
+ the Class.
+
+
+
+
+ Gets the that is used by the Proxy.
+
+ The Proxy object
+
+ A reference to that contains the details
+ of the Proxied object.
+
+
+
+
+ Convenience method to figure out the underlying type for the object regardless of it
+ is a Proxied object or the real object.
+
+ The object to get the type of.
+ The Underlying Type for the object regardless of if it is a Proxy.
+
+
+
+ Get the true, underlying class of a proxied persistent class. This operation
+ will NOT initialize the proxy and thus may return an incorrect result.
+
+ a persistable object or proxy
+ guessed class of the instance
+
+ This method is approximate match for Session.bestGuessEntityName in H3.2
+
+
+
+
+ Validates whether can be specified as the base class
+ (or an interface) for a dynamically-generated proxy.
+
+
+ A collection of errors, if any, or if none were found.
+
+ The type to validate.
+
+
+
+ Aliases tables and fields for Sql Statements.
+
+
+ Several methods of this class take an additional
+ parameter, while their Java counterparts
+ do not. The dialect is used to correctly quote and unquote identifiers.
+ Java versions do the quoting and unquoting themselves and fail to
+ consider dialect-specific rules, such as escaping closing brackets in
+ identifiers on MS SQL 2000.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Represents an SQL case when ... then ... end as ...
+
+ This class looks StringHelper.SqlParameter safe...
+
+
+
+ Represents an SQL case when ... then ... end as ...
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ An ANSI-style Join.
+
+
+
+
+
+
+
+ Sets the op
+
+ The op to set
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Represents an SQL decode(pkvalue, key1, 1, key2, 2, ..., 0)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Represents an SQL for update of ... nowait statement
+
+
+
+
+ Represents an ... in (...) expression
+
+
+
+
+ Add a value to the value list. Value may be a string,
+ a , or one of special values
+ or .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Builds a SqlString from the internal data.
+
+ A valid SqlString that can be converted into an IDbCommand
+
+
+
+
+
+
+ An Oracle-style (theta) Join
+
+
+
+
+ This method is a bit of a hack, and assumes
+ that the column on the "right" side of the
+ join appears on the "left" side of the
+ operator, which is extremely wierd if this
+ was a normal join condition, but is natural
+ for a filter.
+
+
+
+
+ A placeholder for an ADO.NET parameter in an .
+
+
+
+
+ Used as a placeholder when parsing HQL or SQL queries.
+
+
+
+
+ Generates an array of parameters for the given SqlTypes.
+
+ The number of parameters to generate.
+ An array of objects
+
+
+
+ Determines wether this instance and the specified object
+ are of the same type and have the same values.
+
+ An object to compare to this instance.
+
+ if the object equals the current instance.
+
+
+
+
+ Gets a hash code for the parameter.
+
+
+ An value for the hash code.
+
+
+
+
+ Summary description for QueryJoinFragment.
+
+
+
+
+ Summary description for QuerySelect.
+
+
+
+
+ Certain databases don't like spaces around these operators.
+
+
+ This needs to contain both a plain string and a
+ SqlString version of the operator because the portions in
+ the WHERE clause will come in as SqlStrings since there
+ might be parameters, other portions of the clause come in
+ as strings since there are no parameters.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Adds a string containing a valid "order by" sql statement
+ to this QuerySelect
+
+ The "order by" sql statement.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Represents part of an SQL SELECT clause
+
+
+
+
+ The base class for all of the SqlBuilders.
+
+
+
+
+ Converts the ColumnNames and ColumnValues to a WhereFragment
+
+ The names of the Columns to Add to the WhereFragment
+ A SqlString that contains the WhereFragment
+ This just calls the overloaded ToWhereFragment() with the operator as " = " and the tableAlias null.
+
+
+
+ Converts the ColumnNames and ColumnValues to a WhereFragment
+
+ The Alias for the Table.
+ The names of the Columns to Add to the WhereFragment
+ A SqlString that contains the WhereFragment
+ This defaults the op to " = "
+
+
+
+ Converts the ColumnNames and ColumnValues to a WhereFragment
+
+ The names of the Columns to Add to the WhereFragment
+ The operator to use between the names & values. For example " = " or "!="
+ A SqlString that contains the WhereFragment
+
+
+
+ Converts the ColumnNames and ColumnValues to a WhereFragment
+
+ The Alias for the Table.
+ The names of the Columns to Add to the WhereFragment
+ The operator to use between the names & values. For example " = " or "!="
+ A SqlString that contains the WhereFragment
+
+
+
+ A class that builds an DELETE sql statement.
+
+
+
+
+ Sets the IdentityColumn for the DELETE sql to use.
+
+ An array of the column names for the Property
+ The IType of the Identity Property.
+ The SqlDeleteBuilder.
+
+
+
+ Sets the VersionColumn for the DELETE sql to use.
+
+ An array of the column names for the Property
+ The IVersionType of the Version Property.
+ The SqlDeleteBuilder.
+
+
+
+ Adds the columns for the Type to the WhereFragment
+
+ The names of the columns to add.
+ The IType of the property.
+ The operator to put between the column name and value.
+ The SqlDeleteBuilder
+
+
+
+ Adds a string to the WhereFragement
+
+ A well formed sql statement with no parameters.
+ The SqlDeleteBuilder
+
+
+
+
+
+
+ A class that builds an INSERT sql statement.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Adds the Property's columns to the INSERT sql
+
+ An array of the column names for the Property
+ The IType of the property.
+ The SqlInsertBuilder.
+
+
+
+ Add a column with a specific value to the INSERT sql
+
+ The name of the Column to add.
+ The value to set for the column.
+ The NHibernateType to use to convert the value to a sql string.
+ The SqlInsertBuilder.
+
+
+
+ Add a column with a specific value to the INSERT sql
+
+ The name of the Column to add.
+ A valid sql string to set as the value of the column.
+ The SqlInsertBuilder.
+
+
+
+
+
+
+ Builds a SELECT SQL statement.
+
+
+
+
+ Sets the text that should appear after the FROM
+
+ The fromClause to set
+ The SqlSelectBuilder
+
+
+
+ Sets the text that should appear after the FROM
+
+ The name of the Table to get the data from
+ The Alias to use for the table name.
+ The SqlSelectBuilder
+
+
+
+ Sets the text that should appear after the FROM
+
+ The fromClause in a SqlString
+ The SqlSelectBuilder
+
+
+
+ Sets the text that should appear after the ORDER BY.
+
+ The orderByClause to set
+ The SqlSelectBuilder
+
+
+
+ Sets the text that should appear after the GROUP BY.
+
+ The groupByClause to set
+ The SqlSelectBuilder
+
+
+
+ Sets the SqlString for the OUTER JOINs.
+
+
+ All of the Sql needs to be included in the SELECT. No OUTER JOINS will automatically be
+ added.
+
+ The outerJoinsAfterFrom to set
+ The outerJoinsAfterWhere to set
+ The SqlSelectBuilder
+
+
+
+ Sets the text for the SELECT
+
+ The selectClause to set
+ The SqlSelectBuilder
+
+
+
+ Sets the criteria to use for the WHERE. It joins all of the columnNames together with an AND.
+
+
+ The names of the columns
+ The Hibernate Type
+ The SqlSelectBuilder
+
+
+
+ Sets the prebuilt SqlString to the Where clause
+
+ The SqlString that contains the sql and parameters to add to the WHERE
+ This SqlSelectBuilder
+
+
+
+
+
+
+ Summary description for SqlSimpleSelectBuilder.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Adds a columnName to the SELECT fragment.
+
+ The name of the column to add.
+ The SqlSimpleSelectBuilder
+
+
+
+ Adds a columnName and its Alias to the SELECT fragment.
+
+ The name of the column to add.
+ The alias to use for the column
+ The SqlSimpleSelectBuilder
+
+
+
+ Adds an array of columnNames to the SELECT fragment.
+
+ The names of the columns to add.
+ The SqlSimpleSelectBuilder
+
+
+
+ Adds an array of columnNames with their Aliases to the SELECT fragment.
+
+ The names of the columns to add.
+ The aliases to use for the columns
+ The SqlSimpleSelectBuilder
+
+
+
+ Gets the Alias that should be used for the column
+
+ The name of the column to get the Alias for.
+ The Alias if one exists, null otherwise
+
+
+
+ Sets the IdentityColumn for the SELECT sql to use.
+
+ An array of the column names for the Property
+ The IType of the Identity Property.
+ The SqlSimpleSelectBuilder.
+
+
+
+ Sets the VersionColumn for the SELECT sql to use.
+
+ An array of the column names for the Property
+ The IVersionType of the Version Property.
+ The SqlSimpleSelectBuilder.
+
+
+
+ Sets the For Update Fragment to the Select Command
+
+ The fragment to set.
+ The SqlSimpleSelectBuilder
+
+
+
+ Set the Order By fragment of the Select Command
+
+ The OrderBy fragment. It should include the SQL "ORDER BY"
+ The SqlSimpleSelectBuilder
+
+
+
+ Adds the columns for the Type to the WhereFragment
+
+ The names of the columns to add.
+ The IType of the property.
+ The operator to put between the column name and value.
+ The SqlSimpleSelectBuilder
+
+
+
+
+
+
+ This is a non-modifiable SQL statement that is ready to be prepared
+ and sent to the Database for execution.
+
+
+
+ If you need to modify this object pass it to a SqlStringBuilder and
+ get a new object back from it.
+
+
+
+
+
+ Appends the SqlString parameter to the end of the current SqlString to create a
+ new SqlString object.
+
+ The SqlString to append.
+ A new SqlString object.
+
+ A SqlString object is immutable so this returns a new SqlString. If multiple Appends
+ are called it is better to use the SqlStringBuilder.
+
+
+
+
+ Appends the string parameter to the end of the current SqlString to create a
+ new SqlString object.
+
+ The string to append.
+ A new SqlString object.
+
+ A SqlString object is immutable so this returns a new SqlString. If multiple Appends
+ are called it is better to use the SqlStringBuilder.
+
+
+
+
+ Compacts the SqlString into the fewest parts possible.
+
+ A new SqlString.
+
+ Combines all SqlParts that are strings and next to each other into
+ one SqlPart.
+
+
+
+
+ Determines whether the end of this instance matches the specified String.
+
+ A string to seek at the end.
+ if the end of this instance matches value; otherwise,
+
+
+
+ Replaces all occurrences of a specified in this instance,
+ with another specified .
+
+ A String to be replaced.
+ A String to replace all occurrences of oldValue.
+
+ A new SqlString with oldValue replaced by the newValue. The new SqlString is
+ in the compacted form.
+
+
+
+
+ Determines whether the beginning of this SqlString matches the specified System.String,
+ using case-insensitive comparison.
+
+ The System.String to seek
+ true if the SqlString starts with the value.
+
+
+
+ Retrieves a substring from this instance. The substring starts at a specified character position.
+
+ The starting character position of a substring in this instance.
+
+ A new SqlString to the substring that begins at startIndex in this instance.
+
+
+ If the startIndex is greater than the length of the SqlString then is returned.
+
+
+
+
+ Returns the index of the first occurence of , case-insensitive.
+
+ Text to look for in the . Must be in lower
+ case.
+
+ The text must be located entirely in a string part of the .
+ Searching for "a ? b" in an consisting of
+ "a ", Parameter, " b" will result in no matches.
+
+ The index of the first occurence of , or -1
+ if not found.
+
+
+
+ Removes all occurrences of white space characters from the beginning and end of this instance.
+
+
+ A new SqlString equivalent to this instance after white space characters
+ are removed from the beginning and end.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns the SqlString in a string where it looks like
+ SELECT col1, col2 FROM table WHERE col1 = ?
+
+
+ The question mark is used as the indicator of a parameter because at
+ this point we are not using the specific provider so we don't know
+ how that provider wants our parameters formatted.
+
+ A provider-neutral version of the CommandText
+
+
+
+ Returns substring of this SqlString starting with the specified
+ . If the text is not found, returns an
+ empty, not-null SqlString.
+
+
+ The method performs case-insensitive comparison, so the
+ passed should be in lower case.
+
+
+
+
+ Parse SQL in and create a SqlString representing it.
+
+
+ Parameter marks in single quotes will be correctly skipped, but otherwise the
+ lexer is very simple and will not parse double quotes or escape sequences
+ correctly, for example.
+
+
+
+
+ Gets the number of SqlParts contained in this SqlString.
+
+ The number of SqlParts contained in this SqlString.
+
+
+
+ The SqlStringBuilder is used to construct a SqlString.
+
+
+
+ The SqlString is a nonmutable class so it can't have sql parts added
+ to it. Instead this class should be used to generate a new SqlString.
+ The SqlStringBuilder is to SqlString what the StringBuilder is to
+ a String.
+
+
+ This is different from the original version of SqlString because this does not
+ hold the sql string in the form of "column1=@column1" instead it uses an array to
+ build the sql statement such that
+ object[0] = "column1="
+ object[1] = ref to column1 parameter
+
+
+ What this allows us to do is to delay the generating of the parameter for the sql
+ until the very end - making testing dialect indifferent. Right now all of our test
+ to make sure the correct sql is getting built are specific to MsSql2000Dialect.
+
+
+
+
+
+ Create an empty StringBuilder with the default capacity.
+
+
+
+
+ Create a StringBuilder with a specific capacity.
+
+ The number of parts expected.
+
+
+
+ Create a StringBuilder to modify the SqlString
+
+ The SqlString to modify.
+
+
+
+ Adds the preformatted sql to the SqlString that is being built.
+
+ The string to add.
+ This SqlStringBuilder
+
+
+
+ Adds the Parameter to the SqlString that is being built.
+ The correct operator should be added before the Add(Parameter) is called
+ because there will be no operator ( such as "=" ) placed between the last Add call
+ and this Add call.
+
+ The Parameter to add.
+ This SqlStringBuilder
+
+
+
+ Attempts to discover what type of object this is and calls the appropriate
+ method.
+
+ The part to add when it is not known if it is a Parameter, String, or SqlString.
+ This SqlStringBuilder.
+ Thrown when the part is not a Parameter, String, or SqlString.
+
+
+
+ Adds an existing SqlString to this SqlStringBuilder. It does NOT add any
+ prefix, postfix, operator, or wrap around this. It is equivalent to just
+ adding a string.
+
+ The SqlString to add to this SqlStringBuilder
+ This SqlStringBuilder
+ This calls the overloaded Add(sqlString, null, null, null, false)
+
+
+
+ Adds an existing SqlString to this SqlStringBuilder
+
+ The SqlString to add to this SqlStringBuilder
+ String to put at the beginning of the combined SqlString.
+ How these Statements should be junctioned "AND" or "OR"
+ String to put at the end of the combined SqlString.
+ This SqlStringBuilder
+
+ This calls the overloaded Add method with an array of SqlStrings and wrapStatment=false
+ so it will not be wrapped with a "(" and ")"
+
+
+
+
+ Adds existing SqlStrings to this SqlStringBuilder
+
+ The SqlStrings to combine.
+ String to put at the beginning of the combined SqlString.
+ How these SqlStrings should be junctioned "AND" or "OR"
+ String to put at the end of the combined SqlStrings.
+ This SqlStringBuilder
+ This calls the overloaded Add method with wrapStatement=true
+
+
+
+ Adds existing SqlStrings to this SqlStringBuilder
+
+ The SqlStrings to combine.
+ String to put at the beginning of the combined SqlStrings.
+ How these SqlStrings should be junctioned "AND" or "OR"
+ String to put at the end of the combined SqlStrings.
+ Wrap each SqlStrings with "(" and ")"
+ This SqlStringBuilder
+
+
+
+ Insert a string containing sql into the SqlStringBuilder at the specified index.
+
+ The zero-based index at which the sql should be inserted.
+ The string containing sql to insert.
+ This SqlStringBuilder
+
+
+
+ Insert a Parameter into the SqlStringBuilder at the specified index.
+
+ The zero-based index at which the Parameter should be inserted.
+ The Parameter to insert.
+ This SqlStringBuilder
+
+
+
+ Removes the string or Parameter at the specified index.
+
+ The zero-based index of the item to remove.
+ This SqlStringBuilder
+
+
+
+ Converts the mutable SqlStringBuilder into the immutable SqlString.
+
+ The SqlString that was built.
+
+
+
+ Gets the number of SqlParts in this SqlStringBuilder.
+
+
+ The number of SqlParts in this SqlStringBuilder.
+
+
+
+
+ Gets or Sets the element at the index
+
+ Returns a string or Parameter.
+
+
+
+
+ A class that builds an UPDATE sql statement.
+
+
+
+
+
+
+
+
+
+
+
+ Add a column with a specific value to the INSERT sql
+
+ The name of the Column to add.
+ The value to set for the column.
+ The NHibernateType to use to convert the value to a sql string.
+ The SqlUpdateBuilder.
+
+
+
+ Add a column with a specific value to the INSERT sql
+
+ The name of the Column to add.
+ A valid sql string to set as the value of the column.
+ The SqlUpdateBuilder.
+
+
+
+ Adds columns with a specific value to the INSERT sql
+
+ The names of the Column sto add.
+ A valid sql string to set as the value of the column.
+ The SqlUpdateBuilder.
+
+
+
+ Adds the Property's columns to the UPDATE sql
+
+ An array of the column names for the Property
+ The IType of the property.
+ The SqlUpdateBuilder.
+
+
+
+ Sets the IdentityColumn for the UPDATE sql to use.
+
+ An array of the column names for the Property
+ The IType of the Identity Property.
+ The SqlUpdateBuilder.
+
+
+
+ Sets the VersionColumn for the UPDATE sql to use.
+
+ An array of the column names for the Property
+ The IVersionType of the Version Property.
+ The SqlUpdateBuilder.
+
+
+
+ Adds the columns for the Type to the WhereFragment
+
+ The names of the columns to add.
+ The IType of the property.
+ The operator to put between the column name and value.
+ The SqlUpdateBuilder
+
+
+
+ Adds a string to the WhereFragement
+
+ A well formed sql string with no parameters.
+ The SqlUpdateBuilder
+
+
+
+
+
+
+ Given an SQL SELECT statement, parse it to extract clauses starting with
+ FROM, up to and not including ORDER BY (known collectively
+ as a subselect clause).
+
+
+
+
+ Contains the subselect clause as it is being built.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parts of an to extract the subselect clause from.
+
+
+
+ Looks for a FROM clause in the
+ and adds the clause to the result if found.
+
+ A or a .
+ if the part contained a FROM clause,
+ otherwise.
+
+
+
+ Returns the subselect clause of the statement
+ being processed.
+
+ An containing
+ the subselect clause of the original SELECT
+ statement.
+
+
+
+ Allows us to construct SQL WHERE fragments
+
+
+
+
+ Describes the details of a with the
+ information required to to generate an .
+
+
+ This can store the length of the string that the can hold.
+ If no value is provided for the length then the Driver is responsible for
+ setting the properties on the correctly.
+
+
+
+
+ This is the base class that adds information to the
+ for the and
+ to use.
+
+
+
+ The uses the SqlType to get enough
+ information to create an .
+
+
+ The use the SqlType to convert the
+ to the appropriate sql type for SchemaExport.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The length of the string the should hold.
+
+
+
+ Describes the details of a with the
+ information required to generate an .
+
+
+ This can store the length of the string that the can hold.
+ If no value is provided for the length then the Driver is responsible for
+ setting the properties on the correctly.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The length of the string the should hold.
+
+
+
+ Describes the details of a that is stored in
+ a BLOB column with the information required to generate
+ an .
+
+
+
+ This can store the length of the binary data that the can hold.
+ If no value is provided for the length then the Driver is responsible for
+ setting the properties on the correctly.
+
+
+ This is only needed by DataProviders (SqlClient) that need to specify a Size for the
+ IDbDataParameter. Most DataProvider(Oralce) don't need to set the Size so a
+ BinarySqlType would work just fine.
+
+
+
+
+
+ Describes the details of a with the
+ information required to to generate an .
+
+
+ This can store the binary data that the can hold.
+ If no value is provided for the length then the Driver is responsible for
+ setting the properties on the correctly.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The length of the binary data the should hold
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ SqlTypeFactory provides Singleton access to the SqlTypes.
+
+
+
+
+ Describes the details of a that is stored in
+ a CLOB column with the information required to generate
+ an .
+
+
+
+ This can store the length of the binary data that the can hold.
+ If no value is provided for the length then the Driver is responsible for
+ setting the properties on the correctly.
+
+
+ This is only needed by DataProviders (SqlClient) that need to specify a Size for the
+ IDbDataParameter. Most DataProvider(Oralce) don't need to set the Size so a
+ StringSqlType would work just fine.
+
+
+
+
+
+ Describes the details of a with the
+ information required to generate an .
+
+
+ This can store the length of the string that the can hold.
+ If no value is provided for the length then the Driver is responsible for
+ setting the properties on the correctly.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The length of the string the should hold.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The length of the string the should hold.
+
+
+
+ Describes the details of a with the
+ information required to to generate an .
+
+
+ This can store the length of the string that the can hold.
+ If no value is provided for the length then the Driver is responsible for
+ setting the properties on the correctly.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The length of the string the should hold.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Generates ddl to export table schema for a configured Configuration to the database
+
+
+ This Class can be used directly or the command line wrapper NHibernate.Tool.hbm2ddl.exe can be
+ used when a dll can not be directly used.
+
+
+
+
+ Create a schema exported for a given Configuration
+
+ The NHibernate Configuration to generate the schema from.
+
+
+
+ Create a schema exporter for the given Configuration, with the given
+ database connection properties
+
+ The NHibernate Configuration to generate the schema from.
+ The Properties to use when connecting to the Database.
+
+
+
+ Set the output filename. The generated script will be written to this file
+
+ The name of the file to output the ddl to.
+ The SchemaExport object.
+
+
+
+ Set the end of statement delimiter
+
+ The end of statement delimiter.
+ The SchemaExport object.
+
+
+
+ Run the schema creation script
+
+ if the ddl should be outputted in the Console.
+ if the ddl should be executed against the Database.
+
+ This is a convenience method that calls and sets
+ the justDrop parameter to false and the format parameter to true.
+
+
+
+
+ Run the drop schema script
+
+ if the ddl should be outputted in the Console.
+ if the ddl should be executed against the Database.
+
+ This is a convenience method that calls and sets
+ the justDrop and format parameter to true.
+
+
+
+
+ Executes the Export of the Schema in the given connection
+
+ if the ddl should be outputted in the Console.
+ if the ddl should be executed against the Database.
+ if only the ddl to drop the Database objects should be executed.
+ if the ddl should be nicely formatted instead of one statement per line.
+
+ The connection to use when executing the commands when export is .
+ Must be an opened connection. The method doesn't close the connection.
+
+ The writer used to output the generated schema
+
+ This method allows for both the drop and create ddl script to be executed.
+ This overload is provided mainly to enable use of in memory databases.
+ It does NOT close the given connection!
+
+
+
+
+ Executes the Export of the Schema.
+
+ if the ddl should be outputted in the Console.
+ if the ddl should be executed against the Database.
+ if only the ddl to drop the Database objects should be executed.
+ if the ddl should be nicely formatted instead of one statement per line.
+
+ This method allows for both the drop and create ddl script to be executed.
+
+
+
+
+ Format an SQL statement using simple rules
+
+ The string containing the sql to format.
+ A string that contains formatted sql.
+
+ The simple rules to used when formatting are:
+
+
+ Insert a newline after each comma
+
+
+ Indent three spaces after each inserted newline
+
+
+
+ If the statement contains single/double quotes return unchanged because
+ it is too complex and could be broken by simple formatting.
+
+
+
+
+
+
+
+ An abstract factory for ITransaction instances.
+
+
+
+
+ Configure from the given properties
+
+
+
+
+
+ Create a new transaction and return it without starting it.
+
+
+
+
+ Wraps an ADO.NET to implement
+ the interface.
+
+
+
+
+ Allows the application to define units of work, while maintaining abstraction from the
+ underlying transaction implementation
+
+
+ A transaction is associated with a ISession and is usually instanciated by a call to
+ ISession.BeginTransaction(). A single session might span multiple transactions since
+ the notion of a session (a conversation between the application and the datastore) is of
+ coarser granularity than the notion of a transaction. However, it is intended that there be
+ at most one uncommitted ITransaction associated with a particular ISession
+ at a time. Implementors are not intended to be threadsafe.
+
+
+
+
+ Begin the transaction with the default isolation level.
+
+
+
+
+ Begin the transaction with the specified isolation level.
+
+ Isolation level of the transaction
+
+
+
+ Flush the associated ISession and end the unit of work.
+
+
+ This method will commit the underlying transaction if and only if the transaction
+ was initiated by this object.
+
+
+
+
+ Force the underlying transaction to roll back.
+
+
+
+
+ Enlist the in the current Transaction.
+
+ The to enlist.
+
+ It is okay for this to be a no op implementation.
+
+
+
+
+ Is the transaction in progress
+
+
+
+
+ Was the transaction rolled back or set to rollback only?
+
+
+
+
+ Was the transaction successfully committed?
+
+
+ This method could return even after successful invocation of Commit()
+
+
+
+
+ Initializes a new instance of the class.
+
+ The the Transaction is for.
+
+
+
+ Enlist the in the current .
+
+ The to enlist in this Transaction.
+
+
+ This takes care of making sure the 's Transaction property
+ contains the correct or if there is no
+ Transaction for the ISession - ie BeginTransaction() not called.
+
+
+ This method may be called even when the transaction is disposed.
+
+
+
+
+
+ Begins the on the
+ used by the .
+
+
+ Thrown if there is any problems encountered while trying to create
+ the .
+
+
+
+
+ Commits the by flushing the
+ and committing the .
+
+
+ Thrown if there is any exception while trying to call Commit() on
+ the underlying .
+
+
+
+
+ Rolls back the by calling the method Rollback
+ on the underlying .
+
+
+ Thrown if there is any exception while trying to call Rollback() on
+ the underlying .
+
+
+
+
+ A flag to indicate if Disose() has been called.
+
+
+
+
+ Finalizer that ensures the object is correctly disposed of.
+
+
+
+
+ Takes care of freeing the managed and unmanaged resources that
+ this class is responsible for.
+
+
+
+
+ Takes care of freeing the managed and unmanaged resources that
+ this class is responsible for.
+
+ Indicates if this AdoTransaction is being Disposed of or Finalized.
+
+ If this AdoTransaction is being Finalized (isDisposing==false) then make sure not
+ to call any methods that could potentially bring this AdoTransaction back to life.
+
+
+
+
+ Gets a indicating if the transaction was rolled back.
+
+
+ if the had Rollback called
+ without any exceptions.
+
+
+
+
+ Gets a indicating if the transaction was committed.
+
+
+ if the had Commit called
+ without any exceptions.
+
+
+
+
+ Implementors define a strategy for transforming criteria query
+ results into the actual application-visible query result list.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Result transformer that allows to transform a result to
+ a user specified class which will be populated via setter
+ methods or fields matching the alias names.
+
+
+
+ IList resultWithAliasedBean = s.CreateCriteria(typeof(Enrollment))
+ .CreateAlias("Student", "st")
+ .CreateAlias("Course", "co")
+ .SetProjection( Projections.ProjectionList()
+ .Add( Projections.Property("co.Description"), "CourseDescription" )
+ )
+ .SetResultTransformer( new AliasToBeanResultTransformer(typeof(StudentDTO)) )
+ .List();
+
+ StudentDTO dto = (StudentDTO)resultWithAliasedBean[0];
+
+
+
+
+
+ Each row of results is a map () from alias to values/entities
+
+
+
+
+ Creates a resulttransformer that will inject aliased values into instances
+ of via property methods or fields.
+
+
+
+
+ Represents a defined entity identifier property within the Hibernate
+ runtime-metamodel.
+
+
+ Author: Steve Ebersole
+
+
+
+
+ Defines the basic contract of a Property within the runtime metamodel.
+
+
+ Author: Steve Ebersole
+
+
+
+
+ Constructor for Property instances.
+
+ The name by which the property can be referenced within its owner.
+ The node name to use for XML-based representation of this property.
+ The Hibernate Type of this property.
+
+
+
+ Construct a non-virtual identifier property.
+
+ The name of the property representing the identifier within
+ its owning entity.
+ The node name to use for XML-based representation of this
+ property.
+ The Hibernate Type for the identifier property.
+ Is this an embedded identifier.
+ The value which, if found as the value on the identifier
+ property, represents new (i.e., un-saved) instances of the owning entity.
+ The generator to use for id value generation.
+
+
+
+ Construct a virtual IdentifierProperty.
+
+ The Hibernate Type for the identifier property.
+ Is this an embedded identifier.
+ The value which, if found as the value on the identifier
+ property, represents new (i.e., un-saved) instances of the owning entity.
+ The generator to use for id value generation.
+
+
+
+ Responsible for generation of runtime metamodel representations.
+ Makes distinction between identifier, version, and other (standard) properties.
+
+
+ Author: Steve Ebersole
+
+
+
+
+ Generates an IdentifierProperty representation of the for a given entity mapping.
+
+ The mapping definition of the entity.
+ The identifier value generator to use for this identifier.
+ The appropriate IdentifierProperty definition.
+
+
+
+ Generates a VersionProperty representation for an entity mapping given its
+ version mapping Property.
+
+ The version mapping Property.
+ Is property lazy loading currently available.
+ The appropriate VersionProperty definition.
+
+
+
+ Generate a "standard" (i.e., non-identifier and non-version) based on the given
+ mapped property.
+
+ The mapped property.
+ Is property lazy loading currently available.
+ The appropriate StandardProperty definition.
+
+
+
+ Represents a basic property within the Hibernate runtime-metamodel.
+
+
+ Author: Steve Ebersole
+
+
+
+
+ Constructs StandardProperty instances.
+
+ The name by which the property can be referenced within
+ its owner.
+ The node name to use for XML-based representation of this
+ property.
+ The Hibernate Type of this property.
+ Should this property be handled lazily?
+ Is this property an insertable value?
+ Is this property an updateable value?
+ Is this property generated in the database on insert?
+ Is this property generated in the database on update?
+ Is this property a nullable value?
+ Is this property a checkable value?
+ Is this property a versionable value?
+ The cascade style for this property's value.
+
+
+
+ Represents a version property within the Hibernate runtime-metamodel.
+
+
+ Author: Steve Ebersole
+
+
+
+
+ Constructs VersionProperty instances.
+
+ The name by which the property can be referenced within
+ its owner.
+ The node name to use for XML-based representation of this
+ property.
+ The Hibernate Type of this property.
+ Should this property be handled lazily?
+ Is this property an insertable value?
+ Is this property an updateable value?
+ Is this property generated in the database on insert?
+ Is this property generated in the database on update?
+ Is this property a nullable value?
+ Is this property a checkable value?
+ Is this property a versionable value?
+ The cascade style for this property's value.
+ The value which, if found as the value of
+ this (i.e., the version) property, represents new (i.e., un-saved)
+ instances of the owning entity.
+
+
+
+ The base implementation of the interface.
+ Mapping of the built in Type hierarchy.
+
+
+
+
+ Defines a mapping from a .NET to a SQL datatype.
+ This interface is intended to be implemented by applications that need custom types.
+
+ Implementors should usually be immutable and MUST definately be threadsafe.
+
+
+
+
+ When implemented by a class, returns the SqlTypes for the columns mapped by this IType.
+ The that uses this IType.An array of s.
+
+
+
+ When implemented by a class, returns how many columns are used to persist this type.
+ The that uses this IType.The number of columns this IType spans.MappingException
+
+
+
+ When implemented by a class, compare two instances of the class mapped by this
+ IType for persistence "equality" - ie. Equality of persistent state.
+ The left hand side object.The right hand side object.True if the two objects contain the same values.
+
+
+
+ Get a hashcode, consistent with persistence "equality"
+
+
+
+
+ When implemented by a class, should the parent be considered dirty,
+ given both the old and current field or element value?
+ The old valueThe current valueThe true if the field is dirty
+
+
+
+ When implemented by a class, gets an instance of the object mapped by
+ this IType from the .
+ The that contains the values
+ The names of the columns in the that contain the
+ value to populate the IType with.
+ The object mapped by this IType.
+ Implementors should handle possibility of null values.
+
+
+
+
+ When implemented by a class, gets an instance of the object
+ mapped by this IType from the .
+ The that contains the valuesThe name of the column in the that contains the
+ value to populate the IType with.The object mapped by this IType.
+ Implementations should handle possibility of null values.
+ This method might be called if the IType is known to be a single-column type.
+
+
+
+
+ When implemented by a class, puts the value/values from the mapped
+ class into the .
+ The to put the values into.The object that contains the values.The index of the to start writing the values to.Indicates which columns are to be set.
+ Implementors should handle possibility of null values.
+ A multi-column type should be written to parameters starting from .
+
+
+
+
+ When implemented by a class, puts the value/values from the mapped
+ class into the .
+
+ The to put the values into.
+ The object that contains the values.
+ The index of the to start writing the values to.
+
+ Implementors should handle possibility of null values.
+ A multi-column type should be written to parameters starting from .
+
+
+
+
+ When implemented by a class, a representation of the value to be
+ embedded in an XML element
+ The object that contains the values.An Xml formatted string.
+
+
+
+ Parse the XML representation of an instance
+ an instance of the type
+
+
+
+ When implemented by a class, returns a deep copy of the persistent
+ state, stopping at entities and at collections.
+ A Collection element or Entity fieldA deep copy of the object.
+
+
+
+ When implemented by a class, retrives an instance of the mapped class,
+ or the identifier of an entity or collection from a .
+ The that contains the values.
+ The names of the columns in the that contain the
+ value to populate the IType with.
+ the sessionThe parent EntityAn identifier or actual object mapped by this IType.
+
+ This is useful for 2-phase property initialization - the second phase is a call to
+ ResolveIdentifier()
+
+
+ Most implementors of this method will just pass the call to NullSafeGet().
+
+
+
+
+
+ When implemented by a class, maps identifiers to Entities or Collections.
+ An identifier or value returned by Hydrate()The sessionThe parent EntityThe Entity or Collection referenced by this Identifier.
+ This is the second phase of 2-phase property initialization.
+
+
+
+
+ Given a hydrated, but unresolved value, return a value that may be used to
+ reconstruct property-ref associations.
+
+
+
+
+
+
+
+ Determines whether the specified value is represented as in the database.
+
+ The value, may be .
+
+ if the specified value is represented as in the database;
+ otherwise, .
+
+
+
+
+ When implemented by a class, gets a value indicating if the implementor is castable to an an
+ true if this is an AssociationThis does not necessarily imply that the type actually represents an association.
+
+
+
+ When implemented by a class, gets a value indicating if the implementor is a collection type
+ true if this is a .
+
+
+
+ When implemented by a class, gets a value indicating if the implementor
+ is an .
+ true if this is an
+ If true, the implementation must be castable to .
+ A component type may own collections or associations and hence must provide certain extra functionality.
+
+
+
+
+ When implemented by a class, gets a value indicating if the implementor
+ extends
+ true if this is an
+
+
+
+
+
+
+ When implemented by a class, gets the returned
+ by the NullSafeGet() methods.
+
+ The from the .NET framework.
+
+ This is used to establish the class of an array of this Itype
+
+
+
+
+ When implemented by a class, gets the abbreviated name of the type.
+ The NHibernate type name.
+
+
+
+ When implemented by a class, gets the value indicating if the objects
+ of this IType are mutable.
+ true if the objects mapped by this IType are mutable.
+ With respect to the referencing object...
+ Entities and Collections are considered immutable because they manage their own internal state.
+
+
+
+
+ When implemented by a class, gets whether or not this IType contains
+ s that implement well-behaived Equals() method.
+ true if a well-behaived Equals() is implemented.
+
+ Strickly, if this method returns true then x.Equals(y) implies
+ IType.Equals(x, y) and also IType.Equals(x, y) implies that
+ probably x.Equals(y)
+
+
+ In the default implementations s are assumed to have
+ HaveNiceEquals==true and s are assumed to have
+ HaveNiceEquals==false.
+
+
+ This code doesn't look like it is used anywhere internally because I did a search
+ on ".HasNiceEquals" and found no results. So it looks like it is used for a description
+ of the IType only.
+
+
+
+
+
+ Disassembles the object into a cacheable representation.
+
+ The value to disassemble.
+ The is not used by this method.
+ The disassembled, deep cloned state of the object
+
+ This method calls DeepCopy if the value is not null.
+
+
+
+
+ Reconstructs the object from its cached "disassembled" state.
+
+ The disassembled state from the cache
+ The is not used by this method.
+ The parent Entity object is not used by this method
+ The assembled object.
+
+ This method calls DeepCopy if the value is not null.
+
+
+
+
+ Should the parent be considered dirty, given both the old and current
+ field or element value?
+
+ The old value
+ The current value
+ The is not used by this method.
+ true if the field is dirty
+ This method uses IType.Equals(object, object) to determine the value of IsDirty.
+
+
+
+ Retrives an instance of the mapped class, or the identifier of an entity
+ or collection from a .
+
+ The that contains the values.
+
+ The names of the columns in the that contain the
+ value to populate the IType with.
+
+ the session
+ The parent Entity
+ An identifier or actual object mapped by this IType.
+
+ This method uses the IType.NullSafeGet(IDataReader, string[], ISessionImplementor, object) method
+ to Hydrate this .
+
+
+
+
+ Maps identifiers to Entities or Collections.
+
+ An identifier or value returned by Hydrate()
+ The is not used by this method.
+ The parent Entity is not used by this method.
+ The value.
+
+ There is nothing done in this method other than return the value parameter passed in.
+
+
+
+
+ Says whether the value has been modified
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ When implemented by a class, returns a deep copy of the persistent
+ state, stopping at entities and at collections.
+ A Collection element or Entity fieldA deep copy of the object.
+
+
+
+ When implemented by a class, returns the SqlTypes for the columns mapped by this IType.
+ The that uses this IType.An array of s.
+
+
+
+ When implemented by a class, returns how many columns are used to persist this type.
+ The that uses this IType.The number of columns this IType spans.MappingException
+
+
+
+ When implemented by a class, compare two instances of the class mapped by this
+ IType for persistence "equality" - ie. Equality of persistent state.
+ The left hand side object.The right hand side object.True if the two objects contain the same values.
+
+
+
+ Determines whether the specified value is represented as in the database.
+
+ The value, may be .
+
+ if the specified value is ; otherwise, .
+
+
+
+
+
+
+
+
+
+
+ When implemented by a class, puts the value/values from the mapped
+ class into the .
+ The to put the values into.The object that contains the values.The index of the to start writing the values to.Indicates which columns are to be set.
+ Implementors should handle possibility of null values.
+ A multi-column type should be written to parameters starting from .
+
+
+
+
+ When implemented by a class, puts the value/values from the mapped
+ class into the .
+
+ The to put the values into.
+ The object that contains the values.
+ The index of the to start writing the values to.
+
+ Implementors should handle possibility of null values.
+ A multi-column type should be written to parameters starting from .
+
+
+
+
+ When implemented by a class, a representation of the value to be
+ embedded in an XML element
+ The object that contains the values.An Xml formatted string.
+
+
+
+ Parse the XML representation of an instance
+ an instance of the type
+
+
+
+ Gets a value indicating if the is an .
+
+ false - by default an is not an .
+
+
+
+ Gets a value indicating if the is a .
+
+ false - by default an is not a .
+
+
+
+ Gets a value indicating if the is an .
+
+ false - by default an is not an .
+
+
+
+ Gets a value indicating if the is a .
+
+ false - by default an is not a .
+
+
+
+ Gets a value indicating if the implementation is an "object" type
+
+ false - by default an is not a "object" type.
+
+
+
+ When implemented by a class, gets the value indicating if the objects
+ of this IType are mutable.
+ true if the objects mapped by this IType are mutable.
+ With respect to the referencing object...
+ Entities and Collections are considered immutable because they manage their own internal state.
+
+
+
+
+ When implemented by a class, gets the abbreviated name of the type.
+ The NHibernate type name.
+
+
+
+ When implemented by a class, gets whether or not this IType contains
+ s that implement well-behaived Equals() method.
+ true if a well-behaived Equals() is implemented.
+
+ Strickly, if this method returns true then x.Equals(y) implies
+ IType.Equals(x, y) and also IType.Equals(x, y) implies that
+ probably x.Equals(y)
+
+
+ In the default implementations s are assumed to have
+ HaveNiceEquals==true and s are assumed to have
+ HaveNiceEquals==false.
+
+
+ This code doesn't look like it is used anywhere internally because I did a search
+ on ".HasNiceEquals" and found no results. So it looks like it is used for a description
+ of the IType only.
+
+
+
+
+
+ When implemented by a class, gets the returned
+ by the NullSafeGet() methods.
+
+ The from the .NET framework.
+
+ This is used to establish the class of an array of this Itype
+
+
+
+
+ Maps a Property
+ to a DbType.AnsiStringFixedLength column.
+
+
+
+
+ Common base class for and .
+
+
+
+
+ Superclass of types.
+
+
+
+
+ Superclass of nullable immutable types.
+
+
+
+
+ Superclass of single-column nullable types.
+
+
+ Maps the Property to a single column that is capable of storing nulls in it. If a .net Struct is
+ used it will be created with its unitialized value and then on Update the uninitialized value of
+ the Struct will be written to the column - not .
+
+
+
+
+ Initialize a new instance of the NullableType class using a
+ .
+
+ The underlying .
+ This is used when the Property is mapped to a single column.
+
+
+
+ When implemented by a class, put the value from the mapped
+ Property into to the .
+
+ The to put the value into.
+ The object that contains the value.
+ The index of the to start writing the values to.
+
+ Implementors do not need to handle possibility of null values because this will
+ only be called from after
+ it has checked for nulls.
+
+
+
+
+ When implemented by a class, gets the object in the
+ for the Property.
+
+ The that contains the value.
+ The index of the field to get the value from.
+ An object with the value from the database.
+
+
+
+ When implemented by a class, gets the object in the
+ for the Property.
+
+ The that contains the value.
+ The name of the field to get the value from.
+ An object with the value from the database.
+
+ Most implementors just call the
+ overload of this method.
+
+
+
+
+ A representation of the value to be embedded in an XML element
+
+ The object that contains the values.
+
+ An Xml formatted string.
+
+
+
+ When implemented by a class, a representation of the value to be
+ embedded in an XML element
+ The object that contains the values.An Xml formatted string.
+
+
+ This implementation forwards the call to if the parameter
+ value is not null.
+
+
+ It has been "sealed" because the Types inheriting from
+ do not need and should not override this method. All of their implementation
+ should be in .
+
+
+
+
+
+ Parse the XML representation of an instance
+
+ XML string to parse, guaranteed to be non-empty
+
+
+
+
+ Parse the XML representation of an instance
+ an instance of the type
+
+
+ This implementation forwards the call to if the parameter
+ value is not empty.
+
+
+ It has been "sealed" because the Types inheriting from
+ do not need and should not override this method. All of their implementation
+ should be in .
+
+
+
+
+
+ When implemented by a class, puts the value/values from the mapped
+ class into the .
+
+ The to put the values into.
+ The object that contains the values.
+ The index of the to start writing the values to.
+
+ Implementors should handle possibility of null values.
+ A multi-column type should be written to parameters starting from .
+
+
+
+ This implemenation forwards the call to .
+
+
+ It has been "sealed" because the Types inheriting from
+ do not need to and should not override this method. All of their implementation
+ should be in .
+
+
+
+
+
+ Puts the value from the mapped class into the .
+
+ The to put the values into.
+ The object that contains the values.
+ The index of the to write the value to.
+
+
+ This method checks to see if value is null, if it is then the value of
+ is written to the .
+
+
+ If the value is not null, then the method
+ is called and that method is responsible for setting the value.
+
+
+
+
+
+ When implemented by a class, gets an instance of the object mapped by
+ this IType from the .
+ The that contains the values
+ The names of the columns in the that contain the
+ value to populate the IType with.
+ The object mapped by this IType.
+ Implementors should handle possibility of null values.
+
+
+ This has been sealed because no other class should override it. This
+ method calls for a single value.
+ It only takes the first name from the string[] names parameter - that is a
+ safe thing to do because a Nullable Type only has one field.
+
+
+
+
+ Extracts the values of the fields from the DataReader
+
+ The DataReader positioned on the correct record
+ An array of field names.
+ The value off the field from the DataReader
+
+ In this class this just ends up passing the first name to the NullSafeGet method
+ that takes a string, not a string[].
+
+ I don't know why this method is in here - it doesn't look like anybody that inherits
+ from NullableType overrides this...
+
+ TODO: determine if this is needed
+
+
+
+
+ Gets the value of the field from the .
+
+ The positioned on the correct record.
+ The name of the field to get the value from.
+ The value of the field.
+
+
+ This method checks to see if value is null, if it is then the null is returned
+ from this method.
+
+
+ If the value is not null, then the method
+ is called and that method is responsible for retreiving the value.
+
+
+
+
+
+ When implemented by a class, gets an instance of the object
+ mapped by this IType from the .
+ The that contains the valuesThe name of the column in the that contains the
+ value to populate the IType with.The object mapped by this IType.
+ Implementations should handle possibility of null values.
+ This method might be called if the IType is known to be a single-column type.
+
+
+
+ This implemenation forwards the call to .
+
+
+ It has been "sealed" because the Types inheriting from
+ do not need to and should not override this method. All of their implementation
+ should be in .
+
+
+
+
+
+ When implemented by a class, returns the SqlTypes for the columns mapped by this IType.
+ The that uses this IType.An array of s.
+
+
+ This implemenation forwards the call to .
+
+
+ It has been "sealed" because the Types inheriting from
+ do not need to and should not override this method because they map to a single
+ column. All of their implementation should be in .
+
+
+
+
+
+ Returns the number of columns spanned by this
+
+ A always returns 1.
+
+ This has the hard coding of 1 in there because, by definition of this class,
+ a NullableType can only map to one column in a table.
+
+
+
+
+ When implemented by a class, returns a deep copy of the persistent state.
+
+ The value to deep copy.
+ A deep copy of the object.
+
+ Most of the built in NullableTypes will just return the same object
+ passed into it.
+
+
+
+
+ When implemented by a class, returns a deep copy of the persistent
+ state, stopping at entities and at collections.
+ A Collection element or Entity fieldA deep copy of the object.
+
+
+ This implemenation forwards the call to if the parameter
+ value is not null.
+
+
+ It has been "sealed" because the Types inheriting from
+ do not need and should not override this method. All of their implementation
+ should be in .
+
+
+
+
+
+ Determines whether the specified is equal to this
+ .
+
+ The to compare with this NullableType.
+ true if the SqlType and Name properties are the same.
+
+
+
+ Serves as a hash function for the ,
+ suitable for use in hashing algorithms and data structures like a hash table.
+
+
+ A hash code that is based on the 's
+ hash code and the 's hash code.
+
+
+
+ Gets the underlying for
+ the column mapped by this .
+
+ The underlying .
+
+ This implementation should be suitable for all subclasses unless they need to
+ do some special things to get the value. There are no built in s
+ that override this Property.
+
+
+
+
+ Initialize a new instance of the ImmutableType class using a
+ .
+
+ The underlying .
+
+
+
+ Returns a deep copy of the persistent state.
+
+ The value to deep copy.
+ A deep copy of the object.
+
+ A is considered immutable because a boxed version
+ of the is being stored by NHibernate. So any changes
+ made to it would require the to be unboxed and
+ then reboxed.
+
+
+
+
+ Gets the value indicating if this IType is mutable.
+
+ false - an is not mutable.
+
+ This has been "sealed" because any subclasses are expected to be immutable. If
+ the type is mutable then they should inherit from .
+
+
+
+
+ Gets whether or not this IType contains
+ s that implement well-behaived Equals() method.
+
+
+ true - it is assumed that a ImmutableType implements a
+ well-behaived Equals().
+
+
+ There is no concrete rule that s implement
+ a well-behaived Equals(). If the does
+ not implement the Equals() then set this to .
+
+
+
+
+ An that may appear as an SQL literal
+
+
+
+
+ When implemented by a class, return a representation
+ of the value, suitable for embedding in an SQL statement
+
+ The object to convert to a string for the SQL statement.
+ A string that containts a well formed SQL Statement.
+
+
+
+ Initialize a new instance of the ValueTypeType class using a
+ .
+
+ The underlying .
+
+
+
+ Compare two instances of the class mapped by this
+ IType for persistence "equality" - ie. Equality of persistent state.
+
+ The left hand side object.
+ The right hand side object.
+ True if the two objects contain the same values.
+
+
+
+ A representation of the value to be embedded in an XML element
+
+ The object that contains the values.
+
+ An Xml formatted string.
+
+ This just calls so if there is
+ a possibility of this PrimitiveType having any characters
+ that need to be encoded then this method should be overridden.
+
+ TODO: figure out if this is used to build Xml strings or will have encoding
+ done automattically.
+
+
+
+
+ When implemented by a class, return a representation
+ of the value, suitable for embedding in an SQL statement
+
+ The object to convert to a string for the SQL statement.
+ A string that containts a well formed SQL Statement.
+
+
+
+ An IType that may be used for a discriminator column.
+
+
+ This interface contains no new methods but does require that an
+ that will be used in a discriminator column must implement
+ both the and interfaces.
+
+
+
+
+ An that may be used as an identifier.
+
+
+
+
+ When implemented by a class, converts the xml string from the
+ mapping file to the .NET object.
+
+ The value of discriminator-value or unsaved-value attribute.
+ The string converted to the object.
+
+ This method needs to be able to handle any string. It should not just
+ call System.Type.Parse without verifying that it is a parsable value
+ for the System.Type.
+
+
+
+
+ Maps a Property
+ to a column.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Handles "any" mappings and the old deprecated "object" type.
+
+
+ The identifierType is any NHibernate IType that can be serailized by default.
+ For example, you can specify the identifierType as an Int32 or a custom identifier
+ type that you built. The identifierType matches to one or many columns.
+
+ The metaType maps to a single column. By default it stores the name of the Type
+ that the Identifier identifies.
+
+ For example, we can store a link to any table. It will have the results
+ class_name id_col1
+ ========================================
+ Simple, AssemblyName 5
+ DiffClass, AssemblyName 5
+ Simple, AssemblyName 4
+
+ You can also provide you own type that might map the name of the class to a table
+ with a giant switch statemet or a good naming convention for your class->table. The
+ data stored might look like
+ class_name id_col1
+ ========================================
+ simple_table 5
+ diff_table 5
+ simple_table 4
+
+
+
+
+
+ Enables other Component-like types to hold collections and have cascades, etc.
+
+
+
+
+ Get the values of the component properties of
+ a component instance
+
+
+
+
+ Optional Operation
+
+
+
+
+ Optional operation
+
+
+
+ Get the types of the component properties
+
+
+ Get the names of the component properties
+
+
+
+ Optional operation
+
+ nullability of component properties
+
+
+
+ An that represents some kind of association between entities.
+
+
+
+
+ Get the "persister" for this association - a class or collection persister
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Get the "filtering" SQL fragment that is applied in the
+ SQL on clause, in addition to the usual join condition.
+
+
+
+
+ When implemented by a class, gets the type of foreign key directionality
+ of this association.
+
+ The of this association.
+
+
+
+ Is the primary key of the owning entity table
+ to be used in the join?
+
+
+
+
+ Get the name of the property in the owning entity
+ that provides the join key (null if the identifier)
+
+
+
+
+ The name of a unique property of the associated entity
+ that provides the join key (null if the identifier of
+ an entity, or key of a collection)
+
+
+
+
+ Do we dirty check this association, even when there are
+ no columns to be updated.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Not really relevant to AnyType, since it cannot be "joined"
+
+
+
+
+ An that maps an collection
+ to the database.
+
+
+
+
+ The base class for an that maps collections
+ to the database.
+
+
+
+
+ Initializes a new instance of a class for
+ a specific role.
+
+ The role the persistent collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+
+
+
+ Returns a reference to the elements in the collection.
+
+ The object that holds the ICollection.
+ An ICollection of the Elements(classes) in the Collection.
+
+ By default the parameter collection is just cast to an ICollection. Collections
+ such as Maps and Sets should override this so that the Elements are returned - not a
+ DictionaryEntry.
+
+
+
+
+ Wraps a collection from System.Collections or Iesi.Collections inside one of the
+ NHibernate collections.
+
+ The for the collection to be a part of.
+ The unwrapped collection.
+
+ A subclass of that wraps the non NHibernate collection.
+
+
+
+
+ Get the key value from the owning entity instance, usually the identifier, but might be some
+ other unique key, in the case of property-ref
+
+
+
+
+ Instantiate an empty instance of the "underlying" collection (not a wrapper)
+
+
+
+
+ We always need to dirty check the collection because we sometimes
+ need to incremement version number of owner and also because of
+ how assemble/disassemble is implemented for uks
+
+
+
+
+ Initializes a new instance of a class for
+ a specific role.
+
+ The role the persistent collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+ The of the element contained in the array.
+
+ This creates a bag that is non-generic.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Wraps a in a .
+
+ The for the collection to be a part of.
+ The unwrapped array.
+
+ An that wraps the non NHibernate .
+
+
+
+
+ The for the element.
+
+
+
+
+
+
+
+ An that maps an collection
+ using bag semantics to the database.
+
+
+
+
+ Initializes a new instance of a class for
+ a specific role.
+
+ The role the persistent collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+
+
+
+ Instantiates a new for the bag.
+
+ The current for the bag.
+
+ A new .
+
+
+
+ Wraps an in a NHibernate .
+
+ The for the collection to be a part of.
+ The unwrapped .
+
+ An that wraps the non NHibernate .
+
+
+
+
+
+
+
+ Maps a System.Byte[] Property to an column that can store a BLOB.
+
+
+ This is only needed by DataProviders (SqlClient) that need to specify a Size for the
+ IDbDataParameter. Most DataProvider(Oralce) don't need to set the Size so a BinaryType
+ would work just fine.
+
+
+
+
+ BinaryType.
+
+
+
+
+ Superclass for mutable nullable types.
+
+
+
+
+ Initialize a new instance of the MutableType class using a
+ .
+
+ The underlying .
+
+
+
+ Gets the value indicating if this IType is mutable.
+
+ true - a is mutable.
+
+ This has been "sealed" because any subclasses are expected to be mutable. If
+ the type is immutable then they should inherit from .
+
+
+
+
+ Gets whether or not this IType contains
+ s that implement well-behaived Equals() method.
+
+
+ false - it is assumed that a MutableType does not implement a
+ well-behaved Equals().
+
+
+ There is no concrete rule that s don't implement
+ a well-behaved Equals(). If the does implement
+ the Equals() then set this to .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Maps a Property
+ to a column.
+
+
+
+
+ Initialize a new instance of the BooleanType
+
+ This is used when the Property is mapped to a native boolean type.
+
+
+
+ Initialize a new instance of the BooleanType class using a
+ .
+
+ The underlying .
+
+ This is used when the Property is mapped to a string column
+ that stores true or false as a string.
+
+
+
+
+ Maps a property
+ to a column.
+
+
+
+
+ An that may be used to version data.
+
+
+
+
+ When implemented by a class, increments the version.
+
+ The current version
+ The current session, if available.
+ an instance of the that has been incremented.
+
+
+
+ When implemented by a class, gets an initial version.
+
+ The current session, if available.
+ Returns an instance of the
+
+
+
+ When implemented by a class, converts the xml string from the
+ mapping file to the .NET object.
+
+ The value of discriminator-value or unsaved-value attribute.
+ The string converted to the object.
+
+ This method needs to be able to handle any string. It should not just
+ call System.Type.Parse without verifying that it is a parsable value
+ for the System.Type.
+
+
+
+
+ Get a comparator for the version numbers
+
+
+
+
+ Maps a Property
+ to a column.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Maps a Property
+ to a DbType.StringFixedLength column.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Use the access optimizer if available
+
+
+
+
+ Use the access optimizer if available
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This method does not populate the component parent
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Summary description for CompositeCustomType.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Maps a Property
+ to a column.
+
+
+ CultureInfoType stores the culture name (not the Culture ID) of the
+ in the DB.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A custom type for mapping user-written classes that implement
+ .
+
+
+
+
+
+
+ Adapts IUserType to the generic IType interface.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Maps a Property to a column that
+ stores date & time down to the accuracy of a second.
+
+
+ This only stores down to a second, so if you are looking for the most accurate
+ date and time storage your provider can give you use the .
+ or the
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Maps the Year, Month, and Day of a Property to a
+ column
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Maps a Property
+ to a column.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Maps a Property
+ to a column.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Handles "dynamic" components, represented as <map>s
+
+
+
+
+ A reference to an entity class
+
+
+
+
+ Converts the id contained in the to an object.
+
+ The that contains the query results.
+ A string array of column names that contain the id.
+ The this is occurring in.
+ The object that this Entity will be a part of.
+
+ An instance of the object or if the identifer was null.
+
+
+
+
+ Resolves the identifier to the actual object.
+
+
+
+
+ Resolve an identifier or unique key value
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ When implemented by a class, gets the type of foreign key directionality
+ of this association.
+
+ The of this association.
+
+
+
+ Is the foreign key the primary key of the table?
+
+
+
+
+ Maps a to a
+ DbType.String.
+
+
+ If your database should store the
+ using the named values in the enum instead of the underlying values
+ then subclass this .
+
+
+ All that needs to be done is to provide a default constructor that
+ NHibernate can use to create the specific type. For example, if
+ you had an enum defined as.
+
+
+
+ public enum MyEnum
+ {
+ On,
+ Off,
+ Dimmed
+ }
+
+
+
+ all that needs to be written for your enum string type is:
+
+
+
+ public class MyEnumStringType : NHibernate.Type.EnumStringType
+ {
+ public MyEnumStringType()
+ : base( typeof( MyEnum ) )
+ {
+ }
+ }
+
+
+
+ The mapping would look like:
+
+
+
+ ...
+ <property name="Status" type="MyEnumStringType, AssemblyContaining" />
+ ...
+
+
+
+ The TestFixture that shows the working code can be seen
+ in NHibernate.Test.TypesTest.EnumStringTypeFixture.cs
+ , NHibernate.Test.TypesTest.EnumStringClass.cs
+ , and NHibernate.Test.TypesTest.EnumStringClass.hbm.xml
+
+
+
+
+
+ Hardcoding of 255 for the maximum length
+ of the Enum name that will be saved to the db.
+
+
+ 255 because that matches the default length that hbm2ddl will
+ use to create the column.
+
+
+
+
+ Initializes a new instance of .
+
+ The of the Enum.
+
+
+
+ Initializes a new instance of .
+
+ The of the Enum.
+ The length of the string that can be written to the column.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This appends enumstring - to the beginning of the underlying
+ enums name so that could still be stored
+ using the underlying value through the
+ also.
+
+
+
+
+ Represents directionality of the foreign key constraint
+
+
+
+
+
+
+
+ Should we cascade at this cascade point?
+
+
+
+
+ A foreign key from child to parent
+
+
+
+
+ A foreign key from parent to child
+
+
+
+
+ An that maps an collection
+ to the database using bag semantics.
+
+
+
+
+ Initializes a new instance of a class for
+ a specific role.
+
+ The role the persistent collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+
+
+
+ Instantiates a new for the bag.
+
+ The current for the bag.
+ The current for the bag.
+
+
+
+ Wraps an in a .
+
+ The for the collection to be a part of.
+ The unwrapped .
+
+ An that wraps the non NHibernate .
+
+
+
+
+ An that maps an collection
+ using bag semantics with an identifier to the database.
+
+
+
+
+ Initializes a new instance of a class for
+ a specific role.
+
+ The role the persistent collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+
+
+
+ Instantiates a new for the identifier bag.
+
+ The current for the identifier bag.
+
+
+
+
+
+ Wraps an in a .
+
+ The for the collection to be a part of.
+ The unwrapped .
+
+ An that wraps the non NHibernate .
+
+
+
+
+
+
+
+ An that maps an collection
+ to the database using list semantics.
+
+
+
+
+ An that maps an collection
+ using list semantics to the database.
+
+
+
+
+ Initializes a new instance of a class for
+ a specific role.
+
+ The role the persistent collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+
+
+
+ Instantiates a new for the bag.
+
+ The current for the bag.
+
+ A new .
+
+
+
+ Wraps an exist in a NHibernate .
+
+ The for the collection to be a part of.
+ The unwrapped .
+
+ An that wraps the non NHibernate .
+
+
+
+
+
+
+
+ Initializes a new instance of a class for
+ a specific role.
+
+ The role the persistent collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+
+
+
+ Instantiates a new for the list.
+
+ The current for the list.
+ The current for the list.
+
+
+
+ Wraps an in a .
+
+ The for the collection to be a part of.
+ The unwrapped .
+
+ An that wraps the non NHibernate .
+
+
+
+
+ An that maps an collection
+ to the database.
+
+
+
+
+ An that maps an collection
+ to the database.
+
+
+
+
+ Initializes a new instance of a class for
+ a specific role.
+
+ The role the persistent collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+
+
+
+ Instantiates a new for the map.
+
+ The current for the map.
+
+
+
+
+
+
+
+
+
+
+
+
+ Wraps an in a .
+
+ The for the collection to be a part of.
+ The unwrapped .
+
+ An that wraps the non NHibernate .
+
+
+
+
+
+
+
+ Initializes a new instance of a class for
+ a specific role.
+
+ The role the persistent collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+
+
+
+ Instantiates a new for the map.
+
+ The current for the map.
+
+
+
+
+
+ Wraps an in a .
+
+ The for the collection to be a part of.
+ The unwrapped .
+
+ An that wraps the
+ non NHibernate .
+
+
+
+
+ An that maps an collection
+ to the database.
+
+
+
+
+ An that maps an collection
+ to the database.
+
+
+
+
+ Initializes a new instance of a class for
+ a specific role.
+
+ The role the persistent collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+
+
+
+ Instantiates a new for the set.
+
+ The current for the set.
+
+
+
+
+
+ Wraps an in a .
+
+ The for the collection to be a part of.
+ The unwrapped .
+
+ An that wraps the non NHibernate .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Initializes a new instance of a class for
+ a specific role.
+
+ The role the persistent collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+
+
+
+ Instantiates a new for the set.
+
+ The current for the set.
+ The current for the set.
+
+
+
+ Wraps an in a .
+
+ The for the collection to be a part of.
+ The unwrapped .
+
+ An that wraps the non NHibernate .
+
+
+
+
+ An that maps a sorted collection
+ to the database.
+
+
+
+
+ Initializes a new instance of a class for
+ a specific role.
+
+ The role the persistent collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+ The to use to compare
+ set elements.
+
+
+
+ Maps a Property
+ to a column.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Maps a Property
+ to a column.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Maps a Property
+ to a column.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Maps a Property
+ to a column.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A many-to-one association to an entity
+
+
+
+
+ Hydrates the Identifier from .
+
+ The that contains the query results.
+ A string array of column names to read from.
+ The this is occuring in.
+ The object that this Entity will be a part of.
+
+ An instantiated object that used as the identifier of the type.
+
+
+
+
+ A one-to-one association to an entity
+
+
+
+
+ We don't need to dirty check one-to-one because of how
+ assemble/disassemble is implemented and because a one-to-one
+ association is never dirty
+
+
+
+
+ A implemented using a collection that maintains
+ the order in which elements are inserted into it.
+
+
+
+
+ Initializes a new instance of a class.
+
+ The role the persistent collection is in.
+
+
+
+
+ A implemented using a collection that maintains
+ the order in which elements are inserted into it.
+
+
+
+
+ Initializes a new instance of a class
+
+ The role the persistent collection is in.
+
+
+
+
+ PersistentEnumType
+
+
+
+
+
+
+
+
+
+
+ Determines what the NHibernate SqlType should be based on the
+ values contain in the Enum
+
+ The Enumeration class to get the values from.
+ The SqlType for this EnumClass
+
+
+
+ Gets an instance of the Enum
+
+ The underlying value of an item in the Enum.
+
+ An instance of the Enum set to the code value.
+
+
+
+
+ Gets the correct value for the Enum.
+
+ The value to convert.
+ A boxed version of the code converted to the correct type.
+
+ This handles situations where the DataProvider returns the value of the Enum
+ from the db in the wrong underlying type. It uses to
+ convert it to the correct type.
+
+
+
+
+
+
+
+ Maps a Property
+ to a column.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Maps an instance of a that has the
+ to a column.
+
+
+
+ The SerializableType should be used when you know that Bytes are
+ not going to be greater than 8,000.
+
+
+ The base class is because the data is stored in
+ a byte[]. The System.Array does not have a nice "equals" method so we must
+ do a custom implementation.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Thrown when a property cannot be serialized/deserialized
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+ The exception that is the cause of the current exception. If the innerException parameter
+ is not a null reference, the current exception is raised in a catch block that handles
+ the inner exception.
+
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Maps a Property to an
+ column.
+
+
+ Verify through your database's documentation if there is a column type that
+ matches up with the capabilities of
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Extends the to provide sorting.
+
+
+
+
+ Initializes a new instance of a class for
+ a specific role using the to do the sorting.
+
+ The role the persistent collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+ The to use for the sorting.
+
+
+
+ Extends the to provide sorting.
+
+
+
+
+ Initializes a new instance of a class for
+ a specific role using the to do the sorting.
+
+ The role the persistent collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+ The to use for the sorting.
+
+
+
+ Maps a Property to an
+ column that can store a CLOB.
+
+
+ This is only needed by DataProviders (SqlClient) that need to specify a Size for the
+ IDbDataParameter. Most DataProvider(Oralce) don't need to set the Size so a StringType
+ would work just fine.
+
+
+
+
+ Maps a to a column.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Maps a Property to an column
+ that stores the DateTime using the Ticks property.
+
+
+ This is the recommended way to "timestamp" a column. The System.DateTime.Ticks
+ is accurate to 100-nanosecond intervals.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Maps a Property to an column
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This is almost the exact same type as the DateTime except it can be used
+ in the version column, stores it to the accuracy the database supports,
+ and will default to the value of DateTime.Now if the value is null.
+
+
+
+ The value stored in the database depends on what your data provider is capable
+ of storing. So there is a possibility that the DateTime you save will not be
+ the same DateTime you get back when you check DateTime.Equals(DateTime) because
+ they will have their milliseconds off.
+
+
+ For example - SQL Server 2000 is only accurate to 3.33 milliseconds. So if
+ NHibernate writes a value of 01/01/98 23:59:59.995 to the Prepared Command, MsSql
+ will store it as 1998-01-01 23:59:59.997.
+
+
+ Please review the documentation of your Database server.
+
+
+
+
+
+ Sets the value of this Type in the IDbCommand.
+
+ The IDbCommand to add the Type's value to.
+ The value of the Type.
+ The index of the IDataParameter in the IDbCommand.
+
+ No null values will be written to the IDbCommand for this Type.
+
+
+
+
+ Maps a Property to an DateTime column that only stores the
+ Hours, Minutes, and Seconds of the DateTime as significant.
+
+
+
+ This defaults the Date to "1753-01-01" - that should not matter because
+ using this Type indicates that you don't care about the Date portion of the DateTime.
+
+
+ A more appropriate choice to store the duration/time is the .
+ The underlying tends to be handled diffently by different
+ DataProviders.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Maps a to a 1 char column
+ that stores a 'T'/'F' to indicate true/false.
+
+
+ If you are using schema-export to generate your tables then you need
+ to set the column attributes: length=1 or sql-type="char(1)".
+
+ This needs to be done because in Java's JDBC there is a type for CHAR and
+ in ADO.NET there is not one specifically for char, so you need to tell schema
+ export to create a char(1) column.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Used internally to obtain instances of IType.
+
+
+ Applications should use static methods and constants on NHibernate.NHibernateUtil if the default
+ IType is good enough. For example, the TypeFactory should only be used when the String needs
+ to have a length of 300 instead of 255. At this point NHibernate.String does not get you the
+ correct IType. Instead use TypeFactory.GetString(300) and keep a local variable that holds
+ a reference to the IType.
+
+
+
+
+
+
+
+ Gets the classification of the Type based on the string.
+
+ The name of the Type to get the classification for.
+ The Type of Classification
+
+ This parses through the string and makes the assumption that no class
+ name and no assembly name will contain the "(".
+
+ If it finds
+ the "(" and then finds a "," afterwards then it is a
+ TypeClassification.PrecisionScale.
+
+
+ If it finds the "("
+ and doesn't find a "," afterwards, then it is a
+ TypeClassification.Length.
+
+
+ If it doesn't find the "(" then it assumes that it is a
+ TypeClassification.Plain.
+
+
+
+
+
+ Given the name of a Hibernate type such as Decimal, Decimal(19,0)
+ , Int32, or even NHibernate.Type.DecimalType, NHibernate.Type.DecimalType(19,0),
+ NHibernate.Type.Int32Type, then return an instance of NHibernate.Type.IType
+
+ The name of the type.
+ The instance of the IType that the string represents.
+
+ This method will return null if the name is not found in the basicNameMap.
+
+
+
+
+ Uses heuristics to deduce a NHibernate type given a string naming the
+ type.
+
+
+ An instance of NHibernate.Type.IType
+
+ When looking for the NHibernate type it will look in the cache of the Basic types first.
+ If it doesn't find it in the cache then it uses the typeName to get a reference to the
+ Class (Type in .NET). Once we get the reference to the .NET class we check to see if it
+ implements IType, ICompositeUserType, IUserType, ILifecycle (Association), or
+ IPersistentEnum. If none of those are implemented then we will serialize the Type to the
+ database using NHibernate.Type.SerializableType(typeName)
+
+
+
+
+ Uses heuristics to deduce a NHibernate type given a string naming the
+ type.
+
+ the type name
+ parameters for the type
+ An instance of NHibernate.Type.IType
+
+
+
+
+
+
+
+
+
+
+ Gets the BinaryType with the specified length.
+
+ The length of the data to store in the database.
+ A BinaryType
+
+ In addition to returning the BinaryType it will also ensure that it has
+ been added to the basicNameMap with the keys Byte[](length) and
+ NHibernate.Type.BinaryType(length).
+
+
+
+
+ Gets the SerializableType for the specified Type
+
+ The Type that will be Serialized to the database.
+ A SerializableType
+
+
+ In addition to returning the SerializableType it will also ensure that it has
+ been added to the basicNameMap with the keys Type.FullName (the result
+ of IType.Name and Type.AssemblyQualifiedName. This is different
+ from the other items put in the basicNameMap because it is uses the AQN and the
+ FQN as opposed to the short name used in the maps and the FQN.
+
+
+ Since this method calls the method
+ GetSerializableType(System.Type, Int32)
+ with the default length, those keys will also be added.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A one-to-one association type for the given class and cascade style.
+
+
+
+
+ A many-to-one association type for the given class and cascade style.
+
+
+
+
+
+
+ A many-to-one association type for the given class and cascade style.
+
+
+
+
+ A many-to-one association type for the given class and cascade style.
+
+
+
+
+ Creates a new for an .
+
+ The role the collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+ The to use to create the array.
+
+ An for the specified role.
+
+
+
+
+ Creates a new for an .
+
+ The role the collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+
+ A for the specified role.
+
+
+
+
+ Creates a new for an
+ with bag semantics.
+
+ The role the collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+
+ A for the specified role.
+
+
+
+
+ Creates a new for an
+ with id-bag semantics.
+
+ The role the collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+
+ A for the specified role.
+
+
+
+
+ Creates a new for an .
+
+ The role the collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+
+ A for the specified role.
+
+
+
+
+ Creates a new for an .
+
+ The role the collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+
+ A for the specified role.
+
+
+
+
+ Creates a new for an
+ that is sorted by an .
+
+ The role the collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+ The that does the sorting.
+
+ A for the specified role.
+
+
+
+
+ Creates a new for an
+ that maintains insertion order of elements.
+
+ The role the collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+
+ A for the specified role.
+
+
+
+
+ Creates a new for an
+ that is sorted by an .
+
+ The role the collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+ The that does the sorting.
+
+ A for the specified role.
+
+
+
+
+ Creates a new for an
+ with bag semantics.
+
+ The role the collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+
+ The to use to create the
+ with.
+
+
+ A for the specified role.
+
+
+
+
+ Creates a new for an
+ with identifier
+ bag semantics.
+
+ The role the collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+
+ The to use to create the
+ with.
+
+
+ A for the specified role.
+
+
+
+
+ Creates a new for an
+ with list
+ semantics.
+
+ The role the collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+
+ The to use to create the
+ with.
+
+
+ A for the specified role.
+
+
+
+
+ Creates a new for an
+ .
+
+ The role the collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+
+ The to use as the TKey to create the
+ with.
+
+
+ The to use as the TValue to create the
+ with.
+
+
+ A for the specified role.
+
+
+
+
+ Creates a new for an .
+
+ The role the collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+ The type of the set elements.
+ A for the specified role.
+
+
+
+ Creates a new for a sorted .
+
+ The role the collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+ The to use for the set.
+ The type of the elements in the set.
+ A for the specified role.
+
+
+
+ Deep copy values in the first array into the second
+
+
+
+
+ Determine if any of the given field values are dirty,
+ returning an array containing indexes of
+ the dirty fields or null if no fields are dirty.
+
+
+
+
+ Determine if any of the given field values are modified,
+ returning an array containing indexes of
+ the dirty fields or null if no fields are modified.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Maps the Assembly Qualified Name of a to a
+ column.
+
+
+
+
+
+
+
+ Initialize a new instance of the TypeType class using a
+ .
+
+ The underlying .
+
+
+
+ Gets the in the for the Property.
+
+ The that contains the value.
+ The index of the field to get the value from.
+ The from the database.
+
+ Thrown when the value in the database can not be loaded as a
+
+
+
+
+ Gets the in the for the Property.
+
+ The that contains the value.
+ The name of the field to get the value from.
+ The from the database.
+
+ This just calls gets the index of the name in the IDataReader
+ and calls the overloaded version
+ (IDataReader, Int32).
+
+
+ Thrown when the value in the database can not be loaded as a
+
+
+
+
+ Puts the Assembly Qualified Name of the
+ Property into to the .
+
+ The to put the value into.
+ The that contains the value.
+ The index of the to start writing the value to.
+
+ This uses the method of the
+ object to do the work.
+
+
+
+
+ A representation of the value to be embedded in an XML element
+
+ The that contains the values.
+
+ An Xml formatted string that contains the Assembly Qualified Name.
+
+
+
+
+
+
+
+
+
+
+
+ Gets the that will be returned
+ by the NullSafeGet() methods.
+
+
+ A from the .NET framework.
+
+
+
+
+
+
+
+ Maps a Property
+ to a column.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Maps a Property
+ to a column.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Maps a Property
+ to a column.
+
+
+
+
+
+
+
+ Maps a to a 1 char column
+ that stores a 'Y'/'N' to indicate true/false.
+
+
+ If you are using schema-export to generate your tables then you need
+ to set the column attributes: length=1 or sql-type="char(1)".
+
+ This needs to be done because in Java's JDBC there is a type for CHAR and
+ in ADO.NET there is not one specifically for char, so you need to tell schema
+ export to create a char(1) column.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A UserType that may be dereferenced in a query.
+ This interface allows a custom type to define "properties".
+ These need not necessarily correspond to physical .NET style properties.
+
+ A ICompositeUserType may be used in almost every way
+ that a component may be used. It may even contain many-to-one
+ associations.
+
+ Implementors must be immutable and must declare a public
+ default constructor.
+
+ Unlike UserType, cacheability does not depend upon
+ serializability. Instead, Assemble() and
+ Disassemble() provide conversion to/from a cacheable
+ representation.
+
+
+
+
+ Get the value of a property
+
+ an instance of class mapped by this "type"
+
+ the property value
+
+
+
+ Set the value of a property
+
+ an instance of class mapped by this "type"
+
+ the value to set
+
+
+
+ Compare two instances of the class mapped by this type for persistence
+ "equality", ie. equality of persistent state.
+
+
+
+
+
+
+
+ Get a hashcode for the instance, consistent with persistence "equality"
+
+
+
+
+ Retrieve an instance of the mapped class from a IDataReader. Implementors
+ should handle possibility of null values.
+
+ IDataReader
+ the column names
+
+ the containing entity
+
+
+
+
+ Write an instance of the mapped class to a prepared statement.
+ Implementors should handle possibility of null values.
+ A multi-column type should be written to parameters starting from index.
+
+
+
+
+
+
+
+
+ Return a deep copy of the persistent state, stopping at entities and at collections.
+
+ generally a collection element or entity field
+
+
+
+
+ Transform the object into its cacheable representation.
+ At the very least this method should perform a deep copy.
+ That may not be enough for some implementations, method should perform a deep copy. That may not be enough for some implementations, however; for example, associations must be cached as identifier values. (optional operation)
+
+ the object to be cached
+
+
+
+
+
+ Reconstruct an object from the cacheable representation.
+ At the very least this method should perform a deep copy. (optional operation)
+
+ the object to be cached
+
+
+
+
+
+
+ During merge, replace the existing (target) value in the entity we are merging to
+ with a new (original) value from the detached entity we are merging. For immutable
+ objects, or null values, it is safe to simply return the first parameter. For
+ mutable objects, it is safe to return a copy of the first parameter. However, since
+ composite user types often define component values, it might make sense to recursively
+ replace component values in the target object.
+
+
+
+
+ Get the "property names" that may be used in a query.
+
+
+
+
+ Get the corresponding "property types"
+
+
+
+
+ The class returned by NullSafeGet().
+
+
+
+
+ Are objects of this type mutable?
+
+
+
+
+ A custom type that may function as an identifier or discriminator
+ type, or may be marshalled to and from an XML document.
+
+
+
+
+ The inteface to be implemented by user-defined types.
+
+
+
+ The inteface abstracts user code from future changes to the inteface,
+ simplifies the implementation of custom types and hides certain "internal interfaces from
+ user code.
+
+
+ Implemenators must be immutable and must declare a public default constructor.
+
+
+ The actual class mapped by a IUserType may be just about anything. However, if it is to
+ be cacheble by a persistent cache, it must be serializable.
+
+
+ Alternatively, custom types could implement directly or extend one of the
+ abstract classes in NHibernate.Type. This approach risks future incompatible changes
+ to classes or intefaces in the package.
+
+
+
+
+
+ Compare two instances of the class mapped by this type for persistent "equality"
+ ie. equality of persistent state
+
+
+
+
+
+
+
+ Get a hashcode for the instance, consistent with persistence "equality"
+
+
+
+
+ Retrieve an instance of the mapped class from a JDBC resultset.
+ Implementors should handle possibility of null values.
+
+ a IDataReader
+ column names
+ the containing entity
+
+ HibernateException
+
+
+
+ Write an instance of the mapped class to a prepared statement.
+ Implementors should handle possibility of null values.
+ A multi-column type should be written to parameters starting from index.
+
+ a IDbCommand
+ the object to write
+ command parameter index
+ HibernateException
+
+
+
+ Return a deep copy of the persistent state, stopping at entities and at collections.
+
+ generally a collection element or entity field
+ a copy
+
+
+
+ During merge, replace the existing () value in the entity
+ we are merging to with a new () value from the detached
+ entity we are merging. For immutable objects, or null values, it is safe to simply
+ return the first parameter. For mutable objects, it is safe to return a copy of the
+ first parameter. For objects with component values, it might make sense to
+ recursively replace component values.
+
+ the value from the detached entity being merged
+ the value in the managed entity
+ the managed entity
+ the value to be merged
+
+
+
+ Reconstruct an object from the cacheable representation. At the very least this
+ method should perform a deep copy if the type is mutable. (optional operation)
+
+ the object to be cached
+ the owner of the cached object
+ a reconstructed object from the cachable representation
+
+
+
+ Transform the object into its cacheable representation. At the very least this
+ method should perform a deep copy if the type is mutable. That may not be enough
+ for some implementations, however; for example, associations must be cached as
+ identifier values. (optional operation)
+
+ the object to be cached
+ a cacheable representation of the object
+
+
+
+ The SQL types for the columns mapped by this type.
+
+
+
+
+ The type returned by NullSafeGet()
+
+
+
+
+ Are objects of this type mutable?
+
+
+
+
+ Parse a string representation of this value, as it appears
+ in an XML document.
+
+
+
+
+ Return an SQL literal representation of the value
+
+
+
+
+ A custom type with certain not- values represented as
+ in the database.
+
+ Implementing this interface is useful if a property of the type
+ is used in a class with dynamic-update or dynamic-insert
+ set to .
+
+
+
+
+ Determines whether the specified value is represented as in the database.
+
+ The value, may be .
+
+ if the specified value is represented as in the database;
+ otherwise, .
+
+
+
+
+ Support for parameterizable types. A UserType or CustomUserType may be
+ made parameterizable by implementing this interface. Parameters for a
+ type may be set by using a nested type element for the property element
+
+
+
+
+ Gets called by Hibernate to pass the configured type parameters to
+ the implementation.
+
+
+
+
+ Instantiate an uninitialized instance of the collection wrapper
+
+
+
+
+ Wrap an instance of a collection
+
+
+
+
+ Return an over the elements of this collection - the passed collection
+ instance may or may not be a wrapper
+
+
+
+
+ Optional operation. Does the collection contain the entity instance?
+
+
+
+
+ Optional operation. Return the index of the entity in the collection.
+
+
+
+
+ Replace the elements of a collection with the elements of another collection
+
+
+
+
+ Instantiate an empty instance of the "underlying" collection (not a wrapper)
+
+
+
+
+ A user type that may be used for a version property.
+
+
+
+
+ Generate an initial version.
+
+ The session from which this request originates. May be
+ null; currently this only happens during startup when trying to determine
+ the "unsaved value" of entities.
+ an instance of the type
+
+
+
+ Increment the version.
+
+ The session from which this request originates.
+ the current version
+ an instance of the type
+
+
+
+ Helper class that contains common array functions and
+ data structures used through out NHibernate.
+
+
+
+
+ Sets item at position to .
+ Expands the list by adding values, if needed.
+
+
+
+
+ Computes a hash code for .
+
+ The hash code is computed as the sum of hash codes of
+ individual elements, so that the value is independent of the
+ collection iteration order.
+
+
+
+
+ Creates a that uses case-insensitive string comparison
+ associated with invariant culture.
+
+
+ This is different from the method in
+ in that the latter uses the current culture and is thus vulnerable to the "Turkish I" problem.
+
+
+
+
+ Creates a that uses case-insensitive string comparison
+ associated with invariant culture.
+
+
+ This is different from the method in
+ in that the latter uses the current culture and is thus vulnerable to the "Turkish I" problem.
+
+
+
+
+ A read-only dictionary that is always empty and permits lookup by key.
+
+
+
+
+ Utility class implementing ToString for collections. All ToString
+ overloads call element.ToString().
+
+
+ To print collections of entities or typed values, use
+ .
+
+
+
+
+
+
+
+ An where keys are compared by object identity, rather than equals.
+
+ All external users of this class need to have no knowledge of the IdentityKey - it is all
+ hidden by this class.
+
+
+
+ Do NOT use a System.Value type as the key for this Hashtable - only classes. See
+ the google thread
+ about why using System.Value is a bad thing.
+
+
+ If I understand it correctly, the first call to get an object defined by a DateTime("2003-01-01")
+ would box the DateTime and return the identity key for the box. If you were to get that Key and
+ unbox it into a DateTime struct, then the next time you passed it in as the Key the IdentityMap
+ would box it again (into a different box) and it would have a different IdentityKey - so you would
+ not get the same value for the same DateTime value.
+
+
+
+
+
+ Create a new instance of the IdentityMap that has no
+ iteration order.
+
+ A new IdentityMap based on a Hashtable.
+
+
+
+ Create a new instance of the IdentityMap that has an
+ iteration order of the order the objects were added
+ to the Map.
+
+ A new IdentityMap based on ListDictionary.
+
+
+
+ Return the Dictionary Entries (as instances of DictionaryEntry in a collection
+ that is safe from concurrent modification). Ie - we may safely add new instances
+ to the underlying IDictionary during enumeration of the Values.
+
+ The IDictionary to get the enumeration safe list.
+ A Collection of DictionaryEntries
+
+
+
+ Create the IdentityMap class with the correct class for the IDictionary.
+ Unsorted = Hashtable
+ Sorted = ListDictionary
+
+ A class that implements the IDictionary for storing the objects.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Verifies that we are not using a System.ValueType as the Key in the Dictionary
+
+ The object that will be the key.
+ An object that is safe to be a key.
+ Thrown when the obj is a System.ValueType
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns the Keys used in this IdentityMap
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Provides a snapshot VIEW in the form of a List of the contents of the IdentityMap.
+ You can safely iterate over this VIEW and modify the actual IdentityMap because the
+ VIEW is a copy of the contents, not a reference to the existing Map.
+
+ Contains a copy (not that actual instance stored) of the DictionaryEntries in a List.
+
+
+
+
+ Compares two objects for Equality using "==" instead of Object.Equals
+
+
+ Only for use in IdentityMap.
+
+
+
+
+ Performs a null safe comparison using "==" instead of Object.Equals()
+
+ First object to compare.
+ Second object to compare.
+
+ This is Lazy collection safe since it uses ==, unlike Object.Equals()
+ which currently causes NHibernate to load up the collection. This behaivior of
+ Collections is likely to change because Java's collections override Equals() and
+ .net's collections don't. So in .net there is no need to override Equals() and
+ GetHashCode() on the NHibernate Collection implementations.
+
+
+ Unlike the standard IComparer interface this will not return a 1 or -1
+ to indicate which is Greater Than or Less Than. It always returns -1 to
+ indicate the two are not Equal.
+
+
+
+
+ Combines multiple objects implementing into one.
+
+
+
+
+ Creates an IEnumerable object from multiple IEnumerables.
+
+ The IEnumerables to join together.
+
+
+
+
+
+
+
+
+
+
+
+
+ A flag to indicate if Disose() has been called.
+
+
+
+
+ Finalizer that ensures the object is correctly disposed of.
+
+
+
+
+ Takes care of freeing the managed and unmanaged resources that
+ this class is responsible for.
+
+
+
+
+ Takes care of freeing the managed and unmanaged resources that
+ this class is responsible for.
+
+ Indicates if this JoinedEnumerable is being Disposed of or Finalized.
+
+ The command is closed and the reader is disposed. This allows other ADO.NET
+ related actions to occur without needing to move all the way through the
+ EnumerableImpl.
+
+
+
+
+
+
+
+ Summary description for ObjectUtils.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Extracts a set of param child nodes from the specified node
+ <param name="theName" value="theValue"/>
+
+ Parent element.
+ null if no parameters are found
+
+
+
+ Helper class for Reflection related code.
+
+
+
+
+ Determine if the specified overrides the
+ implementation of Equals from
+
+ The to reflect.
+ if any type in the hierarchy overrides Equals(object).
+
+
+
+ Determine if the specified overrides the
+ implementation of GetHashCode from
+
+ The to reflect.
+ if any type in the hierarchy overrides GetHashCode().
+
+
+
+ Finds the for the property in the .
+
+ The to find the property in.
+ The name of the Property to find.
+ The name of the property access strategy.
+ The to get the value of the Property.
+
+ This one takes a propertyAccessor name as we might know the correct strategy by now so we avoid Exceptions which are costly
+
+
+
+
+ Get the NHibernate for the named property of the .
+
+ The to find the Property in.
+ The name of the property/field to find in the class.
+ The name of the property accessor for the property.
+
+ The NHibernate for the named property.
+
+
+
+
+ Get the for the named property of a type.
+
+ The to find the property in.
+ The name of the property/field to find in the class.
+ The name of the property accessor for the property.
+ The for the named property.
+
+
+
+ Returns a reference to the Type.
+
+ The name of the class or a fully qualified name.
+ The Type for the Class.
+
+
+
+ Returns a from an already loaded Assembly or an
+ Assembly that is loaded with a partial name.
+
+ An .
+ if an exception should be thrown
+ in case of an error, otherwise.
+
+ A object that represents the specified type,
+ or if the type cannot be loaded.
+
+
+ Attempts to get a reference to the type from an already loaded assembly. If the
+ type cannot be found then the assembly is loaded using
+ .
+
+
+
+
+ Returns the value of the static field of .
+
+ The .
+ The name of the field in the .
+ The value contained in the field, or if the type or the field does not exist.
+
+
+
+ Gets the default no arg constructor for the .
+
+ The to find the constructor for.
+
+ The for the no argument constructor, or if the
+ type is an abstract class.
+
+
+ Thrown when there is a problem calling the method GetConstructor on .
+
+
+
+
+ Finds the constructor that takes the parameters.
+
+ The to find the constructor in.
+ The objects to use to find the appropriate constructor.
+
+ An that can be used to create the type with
+ the specified parameters.
+
+
+ Thrown when no constructor with the correct signature can be found.
+
+
+
+
+ Determines if the is a non creatable class.
+
+ The to check.
+ if the is an Abstract Class or an Interface.
+
+
+
+ A map of objects whose mapping entries are sequenced based on the order in which they were
+ added. This data structure has fast O(1) search time, deletion time, and insertion time
+
+
+ This class is not thread safe.
+
+
+
+
+ Construct an empty sentinel used to hold the head (sentinel.next) and the tail (sentinal.prev)
+ of the list. The sentinal has a key and value
+
+
+
+
+
+ Sentinel used to hold the head and tail of the list of entries
+
+
+
+
+ Map of keys to entries
+
+
+
+
+ Holds the number of modifications that have occurred to the map, excluding modifications
+ made through a collection view's iterator.
+
+
+
+
+ Construct a new sequenced hash map with default initial size and load factor
+
+
+
+
+ Construct a new sequenced hash map with the specified initial size and default load factor
+
+ the initial size for the hash table
+
+
+
+ Construct a new sequenced hash map with the specified initial size and load factor
+
+ the initial size for the hashtable
+ the load factor for the hash table
+
+
+
+ Construct a new sequenced hash map with the specified initial size, hash code provider
+ and comparer
+
+ the initial size for the hashtable
+
+
+
+
+
+ Creates an empty Hashtable with the default initial capacity and using the default load factor,
+ the specified hash code provider and the specified comparer
+
+
+
+
+
+
+ Creates an empty Hashtable with the default initial capacity and using the default load factor,
+ the specified hash code provider and the specified comparer
+
+ the initial size for the hashtable
+ the load factor for the hash table
+
+
+
+
+
+ Removes an internal entry from the linked list. THis does not remove it from the underlying
+ map.
+
+
+
+
+
+ Inserts a new internal entry to the tail of the linked list. This does not add the
+ entry to the underlying map.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Remove the Entry identified by the Key if it exists.
+
+ The Key to remove.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Return only the Key of the DictionaryEntry
+
+
+
+
+ Return only the Value of the DictionaryEntry
+
+
+
+
+ Return the full DictionaryEntry
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Just a façade for calling string.Split()
+ We don't use our StringTokenizer because string.Split() is
+ more efficient (but it only works when we don't want to retrieve the delimiters)
+
+ separators for the tokens of the list
+ the string that will be broken into tokens
+
+
+
+
+ Splits the String using the StringTokenizer.
+
+ separators for the tokens of the list
+ the string that will be broken into tokens
+ true to include the seperators in the tokens.
+
+
+ This is more powerful than Split because you have the option of including or
+ not including the seperators in the tokens.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Takes a fully qualified type name and returns the full name of the
+ Class - includes namespaces.
+
+
+
+
+
+
+ Takes a fully qualifed type name (can include the assembly) and just returns
+ the name of the Class.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Converts a in the format of "true", "t", "false", or "f" to
+ a .
+
+ The string to convert.
+
+ The value converted to a .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Counts the unquoted instances of the character.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Generate a nice alias for the given class name or collection role
+ name and unique integer. Subclasses do not have to use
+ aliases of this form.
+
+ an alias of the form foo1_
+
+
+
+ Returns the interned string equal to if there is one, or
+ otherwise.
+
+ A
+ A
+
+
+
+ A StringTokenizer java like object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Count of elements in the collection. Unreliable!
+
+
+
+
+ Wraps exceptions that occur during ADO.NET calls.
+
+
+ Exceptions thrown by various ADO.NET providers are not derived from
+ a common base class (SQLException in Java), so
+ is used instead in NHibernate.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+ The exception that is the cause of the current exception. If the innerException parameter
+ is not a null reference, the current exception is raised in a catch block that handles
+ the inner exception.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Indicates failure of an assertion: a possible bug in NHibernate
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+ The exception that is the cause of the current exception. If the innerException parameter
+ is not a null reference, the current exception is raised in a catch block that handles
+ the inner exception.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ The exception that is the cause of the current exception. If the innerException parameter
+ is not a null reference, the current exception is raised in a catch block that handles
+ the inner exception.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+ The exception that is the cause of the current exception. If the innerException parameter
+ is not a null reference, the current exception is raised in a catch block that handles
+ the inner exception.
+
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Contains static declarations from Criteria interface in Hibernate.
+
+
+
+
+ The alias that refers to the "root" entity of the criteria query.
+
+
+
+
+ Each row of results is an IDictionary from alias to entity instance
+
+
+
+
+ Each row of results is an instance of the root entity
+
+
+
+
+ Each row of results is a distinct instance of the root entity
+
+
+
+
+ An exception that usually occurs at configuration time, rather than runtime, as a result of
+ something screwy in the O-R mappings
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+
+
+ Initializes a new instance of the class.
+
+
+ The exception that is the cause of the current exception. If the innerException parameter
+ is not a null reference, the current exception is raised in a catch block that handles
+ the inner exception.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+ The exception that is the cause of the current exception. If the innerException parameter
+ is not a null reference, the current exception is raised in a catch block that handles
+ the inner exception.
+
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+ The name of the duplicate object
+ The type of the duplicate object
+
+
+
+ Initializes a new instance of the class.
+
+ The name of the duplicate object
+ The type of the duplicate object
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ The type of the duplicated object
+
+
+
+
+ The name of the duplicated object
+
+
+
+
+ Allows user code to inspect and/or change property values before they are written and after they
+ are read from the database
+
+
+
+ There might be a single instance of IInterceptor for a SessionFactory, or a new
+ instance might be specified for each ISession. Whichever approach is used, the interceptor
+ must be serializable if the ISession is to be serializable. This means that SessionFactory
+ -scoped interceptors should implement ReadResolve().
+
+
+ The ISession may not be invoked from a callback (nor may a callback cause a collection or
+ proxy to be lazily initialized).
+
+
+
+
+
+ Called just before an object is initialized
+
+
+
+
+
+
+
+ The interceptor may change the state, which will be propagated to the persistent
+ object. Note that when this method is called, entity will be an empty
+ uninitialized instance of the class.
+ if the user modified the state in any way
+
+
+
+ Called when an object is detected to be dirty, during a flush.
+
+
+
+
+
+
+
+
+ The interceptor may modify the detected currentState, which will be propagated to
+ both the database and the persistent object. Note that all flushes end in an actual
+ synchronization with the database, in which as the new currentState will be propagated
+ to the object, but not necessarily (immediately) to the database. It is strongly recommended
+ that the interceptor not modify the previousState.
+
+ if the user modified the currentState in any way
+
+
+
+ Called before an object is saved
+
+
+
+
+
+
+
+ The interceptor may modify the state, which will be used for the SQL INSERT
+ and propagated to the persistent object
+
+ if the user modified the state in any way
+
+
+
+ Called before an object is deleted
+
+
+
+
+
+
+
+ It is not recommended that the interceptor modify the state.
+
+
+
+
+ Called before a flush
+
+ The entities
+
+
+
+ Called after a flush that actually ends in execution of the SQL statements required to
+ synchronize in-memory state with the database.
+
+ The entitites
+
+
+
+ Called when a transient entity is passed to SaveOrUpdate.
+
+
+ The return value determines if the object is saved
+
+ - the entity is passed to Save(), resulting in an INSERT
+ - the entity is passed to Update(), resulting in an UPDATE
+ - Hibernate uses the unsaved-value mapping to determine if the object is unsaved
+
+
+ A transient entity
+
+
+
+
+ Called from Flush(). The return value determines whether the entity is updated
+
+
+
+ an array of property indicies - the entity is dirty
+ an empty array - the entity is not dirty
+ - use Hibernate's default dirty-checking algorithm
+
+
+ A persistent entity
+
+
+
+
+
+ An array of dirty property indicies or to choose default behavior
+
+
+
+ Instantiate the entity class. Return to indicate that Hibernate should use the default
+ constructor of the class
+
+ A mapped type
+ The identifier of the new instance
+ An instance of the class, or to choose default behaviour
+
+
+
+ Called when a NHibernate transaction is begun via the NHibernate
+ API. Will not be called if transactions are being controlled via some other mechanism.
+
+
+
+
+ Called before a transaction is committed (but not before rollback).
+
+
+
+
+ Called after a transaction is committed or rolled back.
+
+
+
+
+ Called when a session-scoped (and only session scoped) interceptor is attached
+ to a session
+
+
+
+
+ Represents a fetching strategy.
+
+
+ This is used together with the API to specify
+ runtime fetching strategies.
+
+ For Hql queries, use the FETCH keyword instead.
+
+
+
+
+
+ Default to the setting configured in the mapping file.
+
+
+
+
+ Fetch eagerly, using a separate select. Equivalent to
+ fetch="select" (and outer-join="false")
+
+
+
+
+ Fetch using an outer join. Equivalent to
+ fetch="join" (and outer-join="true")
+
+
+
+
+ Represents a flushing strategy.
+
+
+ The flush process synchronizes database state with session state by detecting state
+ changes and executing SQL statements
+
+
+
+
+ Special value for unspecified flush mode (like in Java).
+
+
+
+
+ The ISession is never flushed unless Flush() is explicitly
+ called by the application. This mode is very efficient for read only
+ transactions
+
+
+
+
+ The ISession is flushed when Transaction.Commit() is called
+
+
+
+
+ The ISession is sometimes flushed before query execution in order to
+ ensure that queries never return stale state. This is the default flush mode.
+
+
+
+
+ Provides XML marshalling for classes registered with a SessionFactory
+
+
+
+ Hibernate defines a generic XML format that may be used to represent any class
+ (hibernate-generic.dtd). The user configures an XSLT stylesheet for marshalling
+ data from this generic format to an application and/or user readable format. By default,
+ Hibernate will use hibernate-default.xslt which maps data to a useful human-
+ readable format.
+
+
+ The property hibernate.xml.output_stylesheet specifies a user-written stylesheet.
+ Hibernate will attempt to load the stylesheet from the classpath first and if not found,
+ will attempt to load it as a file
+
+
+ It is not intended that implementors be threadsafe
+
+
+
+
+
+ Add an object to the output document.
+
+ A transient or persistent instance
+ Databinder
+
+
+
+ Add a collection of objects to the output document
+
+ A collection of transient or persistent instance
+ Databinder
+
+
+
+ Output the generic XML representation of the bound objects
+
+ Generic Xml representation
+
+
+
+ Output the generic XML Representation of the bound objects
+ to a XmlDocument
+
+ A generic Xml tree
+
+
+
+ Output the custom XML representation of the bound objects
+
+ Custom Xml representation
+
+
+
+ Output the custom XML representation of the bound objects as
+ an XmlDocument
+
+ A custom Xml Tree
+
+
+
+ Controls whether bound objects (and their associated objects) that are lazily instanciated
+ are explicityl initialized or left as they are
+
+ True to explicitly initilize lazy objects, false to leave them in the state they are in
+
+
+
+ Thrown if Hibernate can't instantiate an entity or component class at runtime.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+ The exception that is the cause of the current exception. If the innerException parameter
+ is not a null reference, the current exception is raised in a catch block that handles
+ the inner exception.
+
+ The that NHibernate was trying to instantiate.
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Sets the serialization info for after
+ getting the info from the base Exception.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Gets the that NHibernate was trying to instantiate.
+
+
+
+
+ Gets a message that describes the current .
+
+
+ The error message that explains the reason for this exception and the Type that
+ was trying to be instantiated.
+
+
+
+
+ Thrown when an invalid type is specified as a proxy for a class.
+ The exception is also thrown when a class is specified as lazy,
+ but cannot be used as a proxy for itself.
+
+
+
+
+ A problem occurred trying to lazily initialize a collection or proxy (for example the session
+ was closed) or iterate query results.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+
+
+ Initializes a new instance of the class.
+
+
+ The exception that is the cause of the current exception. If the innerException parameter
+ is not a null reference, the current exception is raised in a catch block that handles
+ the inner exception.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+ The exception that is the cause of the current exception. If the innerException parameter
+ is not a null reference, the current exception is raised in a catch block that handles
+ the inner exception.
+
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Instances represent a lock mode for a row of a relational database table.
+
+
+ It is not intended that users spend much time worrying about locking since Hibernate
+ usually obtains exactly the right lock level automatically. Some "advanced" users may
+ wish to explicitly specify lock levels.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Is this lock mode more restrictive than the given lock mode?
+
+
+
+
+
+ Is this lock mode less restrictive than the given lock mode?
+
+
+
+
+
+ No lock required.
+
+
+ If an object is requested with this lock mode, a Read lock
+ might be obtained if necessary.
+
+
+
+
+ A shared lock.
+
+
+ Objects are loaded in Read mode by default
+
+
+
+
+ An upgrade lock.
+
+
+ Objects loaded in this lock mode are materialized using an
+ SQL SELECT ... FOR UPDATE
+
+
+
+
+ Attempty to obtain an upgrade lock, using an Oracle-style
+ SELECT ... FOR UPGRADE NOWAIT.
+
+
+ The semantics of this lock mode, once obtained, are the same as Upgrade
+
+
+
+
+ A Write lock is obtained when an object is updated or inserted.
+
+
+ This is not a valid mode for Load() or Lock().
+
+
+
+
+ Provides access to the full range of NHibernate built-in types.
+ IType instances may be used to bind values to query parameters.
+ Also a factory for new Blobs and Clobs.
+
+
+
+
+ NHibernate Ansi String type
+
+
+
+
+ NHibernate binary type
+
+
+
+
+ NHibernate binary blob type
+
+
+
+
+ NHibernate boolean type
+
+
+
+
+ NHibernate byte type
+
+
+
+
+ NHibernate character type
+
+
+
+
+ NHibernate Culture Info type
+
+
+
+
+ NHibernate date type
+
+
+
+
+ NHibernate date type
+
+
+
+
+ NHibernate decimal type
+
+
+
+
+ NHibernate double type
+
+
+
+
+ NHibernate Guid type.
+
+
+
+
+ NHibernate System.Int16 (short in C#) type
+
+
+
+
+ NHibernate System.Int32 (int in C#) type
+
+
+
+
+ NHibernate System.Int64 (long in C#) type
+
+
+
+
+ NHibernate System.SByte type
+
+
+
+
+ NHibernate System.UInt16 (ushort in C#) type
+
+
+
+
+ NHibernate System.UInt32 (uint in C#) type
+
+
+
+
+ NHibernate System.UInt64 (ulong in C#) type
+
+
+
+
+ NHIbernate System.Single (float in C#) Type
+
+
+
+
+ NHibernate String type
+
+
+
+
+ NHibernate string clob type
+
+
+
+
+ NHibernate Time type
+
+
+
+
+ NHibernate Ticks type
+
+
+
+
+ NHibernate Ticks type
+
+
+
+
+ NHibernate Timestamp type
+
+
+
+
+ NHibernate TrueFalse type
+
+
+
+
+ NHibernate YesNo type
+
+
+
+
+ NHibernate class type
+
+
+
+
+ NHibernate serializable type
+
+
+
+
+ NHibernate System.Object type
+
+
+
+
+ Cannot be instantiated.
+
+
+
+
+ A NHibernate persistent enum type
+
+
+
+
+
+
+ A NHibernate serializable type
+
+
+
+
+
+
+ A NHibernate serializable type
+
+ a type mapping to a single column
+ the entity identifier type
+
+
+
+
+ A NHibernate persistent object (entity) type
+
+ a mapped entity class
+
+
+
+
+ A NHibernate persistent object (entity) type
+
+ a mapped entity class
+
+
+
+
+ A NHibernate custom type
+
+ a class that implements UserType
+
+
+
+
+ Force initialization of a proxy or persistent collection.
+
+ a persistable object, proxy, persistent collection or null
+ if we can't initialize the proxy at this time, eg. the Session was closed
+
+
+
+ Is the proxy or persistent collection initialized?
+
+ a persistable object, proxy, persistent collection or null
+ true if the argument is already initialized, or is not a proxy or collection
+
+
+
+ Get the true, underlying class of a proxied persistent class. This operation
+ will initialize a proxy by side-effect.
+
+ a persistable object or proxy
+ the true class of the instance
+
+
+
+ Close an obtained from an
+ returned by NHibernate immediately, instead of waiting until the session is
+ closed or disconnected.
+
+
+
+
+ Close an returned by NHibernate immediately,
+ instead of waiting until the session is closed or disconnected.
+
+
+
+
+ This exception is thrown when an operation would
+ break session-scoped identity. This occurs if the
+ user tries to associate two different instances of
+ the same class with a particular identifier,
+ in the scope of a single .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+ The identifier of the object that caused the exception.
+ The of the object attempted to be loaded.
+
+
+
+ Initializes a new instance of the class.
+
+ The identifier of the object that caused the exception.
+ The of the object attempted to be loaded.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Sets the serialization info for after
+ getting the info from the base Exception.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Thrown when the application calls IQuery.UniqueResult()
+ and the query returned more than one result. Unlike all other NHibernate
+ exceptions, this one is recoverable!
+
+
+
+
+ Initializes a new instance of the class.
+
+ The number of items in the result.
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Thrown when the user tries to pass a deleted object to the ISession.
+
+
+
+
+ Thrown when Hibernate could not resolve an object by id, especially when
+ loading an association.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The identifier of the object that caused the exception.
+ The of the object attempted to be loaded.
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+ The identifier of the object that caused the exception.
+ The of the object attempted to be loaded.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Thrown when ISession.Load() fails to select a row with
+ the given primary key (identifier value). This exception might not
+ be thrown when Load() is called, even if there was no
+ row on the database, because Load() returns a proxy if
+ possible. Applications should use ISession.Get() to test if
+ a row exists in the database.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The identifier of the object that was attempting to be loaded.
+ The that NHibernate was trying to find a row for in the database.
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Thrown when the user passes a persistent instance to a ISession method that expects a
+ transient instance
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ A problem occurred accessing a property of an instance of a persistent class by reflection
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+ The exception that is the cause of the current exception. If the innerException parameter
+ is not a null reference, the current exception is raised in a catch block that handles
+ the inner exception.
+
+ A indicating if this was a "setter" operation.
+ The that NHibernate was trying find the Property or Field in.
+ The mapped property name that was trying to be accessed.
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Sets the serialization info for after
+ getting the info from the base Exception.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Gets the that NHibernate was trying find the Property or Field in.
+
+
+
+
+ Gets a message that describes the current .
+
+
+ The error message that explains the reason for this exception and
+ information about the mapped property and its usage.
+
+
+
+
+ Indicates that an expected getter or setter method could not be found on a class
+
+
+
+
+ Initializes a new instance of the class,
+ used when a property get/set accessor is missing.
+
+ The that is missing the property
+ The name of the missing property
+ The type of the missing accessor
+ ("getter" or "setter")
+
+
+
+ Initializes a new instance of the class,
+ used when a field is missing.
+
+ The that is missing the field
+ The name of the missing property
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+ The that NHibernate was trying to access.
+ The name of the Property that was being get/set.
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Sets the serialization info for after
+ getting the info from the base Exception.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Represents a replication strategy
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Throw an exception when a row already exists
+
+
+
+
+
+
+
+
+
+ Ignore replicated entities when a row already exists
+
+
+
+
+
+
+
+
+
+ Overwrite existing rows when a row already exists
+
+
+
+
+
+
+
+
+
+ When a row already exists, choose the latest version
+
+
+
+
+
+
+
+
+
+ Thrown when a version number check failed, indicating that the
+ contained stale data (when using long transactions with
+ versioning).
+
+
+
+
+ Initializes a new instance of the class.
+
+ The that NHibernate was trying to update in the database.
+ The identifier of the object that is stale.
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Sets the serialization info for after
+ getting the info from the base Exception.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Gets the that NHibernate was trying to update in the database.
+
+
+
+
+ Gets the identifier of the object that is stale.
+
+
+
+
+ Gets a message that describes the current .
+
+ The error message that explains the reason for this exception.
+
+
+
+ Indicated that a transaction could not be begun, committed, or rolled back
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+ The exception that is the cause of the current exception. If the innerException parameter
+ is not a null reference, the current exception is raised in a catch block that handles
+ the inner exception.
+
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Throw when the user passes a transient instance to a ISession method that expects
+ a persistent instance
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Thrown when ISession.Load() selects a row with the given primary key (identifier value)
+ but the row's discriminator value specifies a different subclass from the one requested
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+ The identifier of the object that was being loaded.
+ The that NHibernate was told to load.
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Sets the serialization info for after
+ getting the info from the base Exception.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Gets the identifier of the object that was being loaded.
+
+
+
+
+ Gets the that NHibernate was told to load.
+
+
+
+
+ Gets a message that describes the current .
+
+ The error message that explains the reason for this exception.
+
+
+
diff --git a/lib/NHibernate12/net/4.0/log4net.dll b/lib/NHibernate12/net/4.0/log4net.dll
new file mode 100644
index 00000000..ffc57e11
Binary files /dev/null and b/lib/NHibernate12/net/4.0/log4net.dll differ
diff --git a/lib/NHibernate12/net/4.0/log4net.xml b/lib/NHibernate12/net/4.0/log4net.xml
new file mode 100644
index 00000000..fab7af26
--- /dev/null
+++ b/lib/NHibernate12/net/4.0/log4net.xml
@@ -0,0 +1,28655 @@
+
+
+
+ log4net
+
+
+
+
+ Appender that logs to a database.
+
+
+
+ appends logging events to a table within a
+ database. The appender can be configured to specify the connection
+ string by setting the property.
+ The connection type (provider) can be specified by setting the
+ property. For more information on database connection strings for
+ your specific database see http://www.connectionstrings.com/.
+
+
+ Records are written into the database either using a prepared
+ statement or a stored procedure. The property
+ is set to (System.Data.CommandType.Text) to specify a prepared statement
+ or to (System.Data.CommandType.StoredProcedure) to specify a stored
+ procedure.
+
+
+ The prepared statement text or the name of the stored procedure
+ must be set in the property.
+
+
+ The prepared statement or stored procedure can take a number
+ of parameters. Parameters are added using the
+ method. This adds a single to the
+ ordered list of parameters. The
+ type may be subclassed if required to provide database specific
+ functionality. The specifies
+ the parameter name, database type, size, and how the value should
+ be generated using a .
+
+
+
+ An example of a SQL Server table that could be logged to:
+
+ CREATE TABLE [dbo].[Log] (
+ [ID] [int] IDENTITY (1, 1) NOT NULL ,
+ [Date] [datetime] NOT NULL ,
+ [Thread] [varchar] (255) NOT NULL ,
+ [Level] [varchar] (20) NOT NULL ,
+ [Logger] [varchar] (255) NOT NULL ,
+ [Message] [varchar] (4000) NOT NULL
+ ) ON [PRIMARY]
+
+
+
+ An example configuration to log to the above table:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Julian Biddle
+ Nicko Cadell
+ Gert Driesen
+ Lance Nehring
+
+
+
+ Abstract base class implementation of that
+ buffers events in a fixed size buffer.
+
+
+
+ This base class should be used by appenders that need to buffer a
+ number of events before logging them. For example the
+ buffers events and then submits the entire contents of the buffer to
+ the underlying database in one go.
+
+
+ Subclasses should override the
+ method to deliver the buffered events.
+
+ The BufferingAppenderSkeleton maintains a fixed size cyclic
+ buffer of events. The size of the buffer is set using
+ the property.
+
+ A is used to inspect
+ each event as it arrives in the appender. If the
+ triggers, then the current buffer is sent immediately
+ (see ). Otherwise the event
+ is stored in the buffer. For example, an evaluator can be used to
+ deliver the events immediately when an ERROR event arrives.
+
+
+ The buffering appender can be configured in a mode.
+ By default the appender is NOT lossy. When the buffer is full all
+ the buffered events are sent with .
+ If the property is set to true then the
+ buffer will not be sent when it is full, and new events arriving
+ in the appender will overwrite the oldest event in the buffer.
+ In lossy mode the buffer will only be sent when the
+ triggers. This can be useful behavior when you need to know about
+ ERROR events but not about events with a lower level, configure an
+ evaluator that will trigger when an ERROR event arrives, the whole
+ buffer will be sent which gives a history of events leading up to
+ the ERROR event.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Abstract base class implementation of .
+
+
+
+ This class provides the code for common functionality, such
+ as support for threshold filtering and support for general filters.
+
+
+ Appenders can also implement the interface. Therefore
+ they would require that the method
+ be called after the appenders properties have been configured.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Implement this interface for your own strategies for printing log statements.
+
+
+
+ Implementors should consider extending the
+ class which provides a default implementation of this interface.
+
+
+ Appenders can also implement the interface. Therefore
+ they would require that the method
+ be called after the appenders properties have been configured.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Closes the appender and releases resources.
+
+
+
+ Releases any resources allocated within the appender such as file handles,
+ network connections, etc.
+
+
+ It is a programming error to append to a closed appender.
+
+
+
+
+
+ Log the logging event in Appender specific way.
+
+ The event to log
+
+
+ This method is called to log a message into this appender.
+
+
+
+
+
+ Gets or sets the name of this appender.
+
+ The name of the appender.
+
+ The name uniquely identifies the appender.
+
+
+
+
+ Interface for appenders that support bulk logging.
+
+
+
+ This interface extends the interface to
+ support bulk logging of objects. Appenders
+ should only implement this interface if they can bulk log efficiently.
+
+
+ Nicko Cadell
+
+
+
+ Log the array of logging events in Appender specific way.
+
+ The events to log
+
+
+ This method is called to log an array of events into this appender.
+
+
+
+
+
+ Interface used to delay activate a configured object.
+
+
+
+ This allows an object to defer activation of its options until all
+ options have been set. This is required for components which have
+ related options that remain ambiguous until all are set.
+
+
+ If a component implements this interface then the method
+ must be called by the container after its all the configured properties have been set
+ and before the component can be used.
+
+
+ Nicko Cadell
+
+
+
+ Activate the options that were previously set with calls to properties.
+
+
+
+ This allows an object to defer activation of its options until all
+ options have been set. This is required for components which have
+ related options that remain ambiguous until all are set.
+
+
+ If a component implements this interface then this method must be called
+ after its properties have been set before the component can be used.
+
+
+
+
+
+ Initial buffer size
+
+
+
+
+ Maximum buffer size before it is recycled
+
+
+
+
+ Default constructor
+
+
+ Empty default constructor
+
+
+
+
+ Finalizes this appender by calling the implementation's
+ method.
+
+
+
+ If this appender has not been closed then the Finalize method
+ will call .
+
+
+
+
+
+ Initialize the appender based on the options set
+
+
+
+ This is part of the delayed object
+ activation scheme. The method must
+ be called on this object after the configuration properties have
+ been set. Until is called this
+ object is in an undefined state and must not be used.
+
+
+ If any of the configuration properties are modified then
+ must be called again.
+
+
+
+
+
+ Closes the appender and release resources.
+
+
+
+ Release any resources allocated within the appender such as file handles,
+ network connections, etc.
+
+
+ It is a programming error to append to a closed appender.
+
+
+ This method cannot be overridden by subclasses. This method
+ delegates the closing of the appender to the
+ method which must be overridden in the subclass.
+
+
+
+
+
+ Performs threshold checks and invokes filters before
+ delegating actual logging to the subclasses specific
+ method.
+
+ The event to log.
+
+
+ This method cannot be overridden by derived classes. A
+ derived class should override the method
+ which is called by this method.
+
+
+ The implementation of this method is as follows:
+
+
+
+
+
+ Checks that the severity of the
+ is greater than or equal to the of this
+ appender.
+
+
+
+ Checks that the chain accepts the
+ .
+
+
+
+
+ Calls and checks that
+ it returns true.
+
+
+
+
+ If all of the above steps succeed then the
+ will be passed to the abstract method.
+
+
+
+
+
+ Performs threshold checks and invokes filters before
+ delegating actual logging to the subclasses specific
+ method.
+
+ The array of events to log.
+
+
+ This method cannot be overridden by derived classes. A
+ derived class should override the method
+ which is called by this method.
+
+
+ The implementation of this method is as follows:
+
+
+
+
+
+ Checks that the severity of the
+ is greater than or equal to the of this
+ appender.
+
+
+
+ Checks that the chain accepts the
+ .
+
+
+
+
+ Calls and checks that
+ it returns true.
+
+
+
+
+ If all of the above steps succeed then the
+ will be passed to the method.
+
+
+
+
+
+ Test if the logging event should we output by this appender
+
+ the event to test
+ true if the event should be output, false if the event should be ignored
+
+
+ This method checks the logging event against the threshold level set
+ on this appender and also against the filters specified on this
+ appender.
+
+
+ The implementation of this method is as follows:
+
+
+
+
+
+ Checks that the severity of the
+ is greater than or equal to the of this
+ appender.
+
+
+
+ Checks that the chain accepts the
+ .
+
+
+
+
+
+
+
+
+ Adds a filter to the end of the filter chain.
+
+ the filter to add to this appender
+
+
+ The Filters are organized in a linked list.
+
+
+ Setting this property causes the new filter to be pushed onto the
+ back of the filter chain.
+
+
+
+
+
+ Clears the filter list for this appender.
+
+
+
+ Clears the filter list for this appender.
+
+
+
+
+
+ Checks if the message level is below this appender's threshold.
+
+ to test against.
+
+
+ If there is no threshold set, then the return value is always true.
+
+
+
+ true if the meets the
+ requirements of this appender.
+
+
+
+
+ Is called when the appender is closed. Derived classes should override
+ this method if resources need to be released.
+
+
+
+ Releases any resources allocated within the appender such as file handles,
+ network connections, etc.
+
+
+ It is a programming error to append to a closed appender.
+
+
+
+
+
+ Subclasses of should implement this method
+ to perform actual logging.
+
+ The event to append.
+
+
+ A subclass must implement this method to perform
+ logging of the .
+
+ This method will be called by
+ if all the conditions listed for that method are met.
+
+
+ To restrict the logging of events in the appender
+ override the method.
+
+
+
+
+
+ Append a bulk array of logging events.
+
+ the array of logging events
+
+
+ This base class implementation calls the
+ method for each element in the bulk array.
+
+
+ A sub class that can better process a bulk array of events should
+ override this method in addition to .
+
+
+
+
+
+ Called before as a precondition.
+
+
+
+ This method is called by
+ before the call to the abstract method.
+
+
+ This method can be overridden in a subclass to extend the checks
+ made before the event is passed to the method.
+
+
+ A subclass should ensure that they delegate this call to
+ this base class if it is overridden.
+
+
+ true if the call to should proceed.
+
+
+
+ Renders the to a string.
+
+ The event to render.
+ The event rendered as a string.
+
+
+ Helper method to render a to
+ a string. This appender must have a
+ set to render the to
+ a string.
+
+ If there is exception data in the logging event and
+ the layout does not process the exception, this method
+ will append the exception text to the rendered string.
+
+
+ Where possible use the alternative version of this method
+ .
+ That method streams the rendering onto an existing Writer
+ which can give better performance if the caller already has
+ a open and ready for writing.
+
+
+
+
+
+ Renders the to a string.
+
+ The event to render.
+ The TextWriter to write the formatted event to
+
+
+ Helper method to render a to
+ a string. This appender must have a
+ set to render the to
+ a string.
+
+ If there is exception data in the logging event and
+ the layout does not process the exception, this method
+ will append the exception text to the rendered string.
+
+
+ Use this method in preference to
+ where possible. If, however, the caller needs to render the event
+ to a string then does
+ provide an efficient mechanism for doing so.
+
+
+
+
+
+ The layout of this appender.
+
+
+ See for more information.
+
+
+
+
+ The name of this appender.
+
+
+ See for more information.
+
+
+
+
+ The level threshold of this appender.
+
+
+
+ There is no level threshold filtering by default.
+
+
+ See for more information.
+
+
+
+
+
+ It is assumed and enforced that errorHandler is never null.
+
+
+
+ It is assumed and enforced that errorHandler is never null.
+
+
+ See for more information.
+
+
+
+
+
+ The first filter in the filter chain.
+
+
+
+ Set to null initially.
+
+
+ See for more information.
+
+
+
+
+
+ The last filter in the filter chain.
+
+
+ See for more information.
+
+
+
+
+ Flag indicating if this appender is closed.
+
+
+ See for more information.
+
+
+
+
+ The guard prevents an appender from repeatedly calling its own DoAppend method
+
+
+
+
+ StringWriter used to render events
+
+
+
+
+ Gets or sets the threshold of this appender.
+
+
+ The threshold of the appender.
+
+
+
+ All log events with lower level than the threshold level are ignored
+ by the appender.
+
+
+ In configuration files this option is specified by setting the
+ value of the option to a level
+ string, such as "DEBUG", "INFO" and so on.
+
+
+
+
+
+ Gets or sets the for this appender.
+
+ The of the appender
+
+
+ The provides a default
+ implementation for the property.
+
+
+
+
+
+ The filter chain.
+
+ The head of the filter chain filter chain.
+
+
+ Returns the head Filter. The Filters are organized in a linked list
+ and so all Filters on this Appender are available through the result.
+
+
+
+
+
+ Gets or sets the for this appender.
+
+ The layout of the appender.
+
+
+ See for more information.
+
+
+
+
+
+
+ Gets or sets the name of this appender.
+
+ The name of the appender.
+
+
+ The name uniquely identifies the appender.
+
+
+
+
+
+ Tests if this appender requires a to be set.
+
+
+
+ In the rather exceptional case, where the appender
+ implementation admits a layout but can also work without it,
+ then the appender should return true.
+
+
+ This default implementation always returns true.
+
+
+
+ true if the appender requires a layout object, otherwise false.
+
+
+
+
+ The default buffer size.
+
+
+ The default size of the cyclic buffer used to store events.
+ This is set to 512 by default.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ Protected default constructor to allow subclassing.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ the events passed through this appender must be
+ fixed by the time that they arrive in the derived class' SendBuffer method.
+
+
+ Protected constructor to allow subclassing.
+
+
+ The should be set if the subclass
+ expects the events delivered to be fixed even if the
+ is set to zero, i.e. when no buffering occurs.
+
+
+
+
+
+ Flush the currently buffered events
+
+
+
+ Flushes any events that have been buffered.
+
+
+ If the appender is buffering in mode then the contents
+ of the buffer will NOT be flushed to the appender.
+
+
+
+
+
+ Flush the currently buffered events
+
+ set to true to flush the buffer of lossy events
+
+
+ Flushes events that have been buffered. If is
+ false then events will only be flushed if this buffer is non-lossy mode.
+
+
+ If the appender is buffering in mode then the contents
+ of the buffer will only be flushed if is true.
+ In this case the contents of the buffer will be tested against the
+ and if triggering will be output. All other buffered
+ events will be discarded.
+
+
+ If is true then the buffer will always
+ be emptied by calling this method.
+
+
+
+
+
+ Initialize the appender based on the options set
+
+
+
+ This is part of the delayed object
+ activation scheme. The method must
+ be called on this object after the configuration properties have
+ been set. Until is called this
+ object is in an undefined state and must not be used.
+
+
+ If any of the configuration properties are modified then
+ must be called again.
+
+
+
+
+
+ Close this appender instance.
+
+
+
+ Close this appender instance. If this appender is marked
+ as not then the remaining events in
+ the buffer must be sent when the appender is closed.
+
+
+
+
+
+ This method is called by the method.
+
+ the event to log
+
+
+ Stores the in the cyclic buffer.
+
+
+ The buffer will be sent (i.e. passed to the
+ method) if one of the following conditions is met:
+
+
+
+ The cyclic buffer is full and this appender is
+ marked as not lossy (see )
+
+
+ An is set and
+ it is triggered for the
+ specified.
+
+
+
+ Before the event is stored in the buffer it is fixed
+ (see ) to ensure that
+ any data referenced by the event will be valid when the buffer
+ is processed.
+
+
+
+
+
+ Sends the contents of the buffer.
+
+ The first logging event.
+ The buffer containing the events that need to be send.
+
+
+ The subclass must override .
+
+
+
+
+
+ Sends the events.
+
+ The events that need to be send.
+
+
+ The subclass must override this method to process the buffered events.
+
+
+
+
+
+ The size of the cyclic buffer used to hold the logging events.
+
+
+ Set to by default.
+
+
+
+
+ The cyclic buffer used to store the logging events.
+
+
+
+
+ The triggering event evaluator that causes the buffer to be sent immediately.
+
+
+ The object that is used to determine if an event causes the entire
+ buffer to be sent immediately. This field can be null, which
+ indicates that event triggering is not to be done. The evaluator
+ can be set using the property. If this appender
+ has the ( property) set to
+ true then an must be set.
+
+
+
+
+ Indicates if the appender should overwrite events in the cyclic buffer
+ when it becomes full, or if the buffer should be flushed when the
+ buffer is full.
+
+
+ If this field is set to true then an must
+ be set.
+
+
+
+
+ The triggering event evaluator filters discarded events.
+
+
+ The object that is used to determine if an event that is discarded should
+ really be discarded or if it should be sent to the appenders.
+ This field can be null, which indicates that all discarded events will
+ be discarded.
+
+
+
+
+ Value indicating which fields in the event should be fixed
+
+
+ By default all fields are fixed
+
+
+
+
+ The events delivered to the subclass must be fixed.
+
+
+
+
+ Gets or sets a value that indicates whether the appender is lossy.
+
+
+ true if the appender is lossy, otherwise false. The default is false.
+
+
+
+ This appender uses a buffer to store logging events before
+ delivering them. A triggering event causes the whole buffer
+ to be send to the remote sink. If the buffer overruns before
+ a triggering event then logging events could be lost. Set
+ to false to prevent logging events
+ from being lost.
+
+ If is set to true then an
+ must be specified.
+
+
+
+
+ Gets or sets the size of the cyclic buffer used to hold the
+ logging events.
+
+
+ The size of the cyclic buffer used to hold the logging events.
+
+
+
+ The option takes a positive integer
+ representing the maximum number of logging events to collect in
+ a cyclic buffer. When the is reached,
+ oldest events are deleted as new events are added to the
+ buffer. By default the size of the cyclic buffer is 512 events.
+
+
+ If the is set to a value less than
+ or equal to 1 then no buffering will occur. The logging event
+ will be delivered synchronously (depending on the
+ and properties). Otherwise the event will
+ be buffered.
+
+
+
+
+
+ Gets or sets the that causes the
+ buffer to be sent immediately.
+
+
+ The that causes the buffer to be
+ sent immediately.
+
+
+
+ The evaluator will be called for each event that is appended to this
+ appender. If the evaluator triggers then the current buffer will
+ immediately be sent (see ).
+
+ If is set to true then an
+ must be specified.
+
+
+
+
+ Gets or sets the value of the to use.
+
+
+ The value of the to use.
+
+
+
+ The evaluator will be called for each event that is discarded from this
+ appender. If the evaluator triggers then the current buffer will immediately
+ be sent (see ).
+
+
+
+
+
+ Gets or sets a value indicating if only part of the logging event data
+ should be fixed.
+
+
+ true if the appender should only fix part of the logging event
+ data, otherwise false. The default is false.
+
+
+
+ Setting this property to true will cause only part of the
+ event data to be fixed and serialized. This will improve performance.
+
+
+ See for more information.
+
+
+
+
+
+ Gets or sets a the fields that will be fixed in the event
+
+
+ The event fields that will be fixed before the event is buffered
+
+
+
+ The logging event needs to have certain thread specific values
+ captured before it can be buffered. See
+ for details.
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Public default constructor to initialize a new instance of this class.
+
+
+
+
+ Initialize the appender based on the options set
+
+
+
+ This is part of the delayed object
+ activation scheme. The method must
+ be called on this object after the configuration properties have
+ been set. Until is called this
+ object is in an undefined state and must not be used.
+
+
+ If any of the configuration properties are modified then
+ must be called again.
+
+
+
+
+
+ Override the parent method to close the database
+
+
+
+ Closes the database command and database connection.
+
+
+
+
+
+ Inserts the events into the database.
+
+ The events to insert into the database.
+
+
+ Insert all the events specified in the
+ array into the database.
+
+
+
+
+
+ Adds a parameter to the command.
+
+ The parameter to add to the command.
+
+
+ Adds a parameter to the ordered list of command parameters.
+
+
+
+
+
+ Writes the events to the database using the transaction specified.
+
+ The transaction that the events will be executed under.
+ The array of events to insert into the database.
+
+
+ The transaction argument can be null if the appender has been
+ configured not to use transactions. See
+ property for more information.
+
+
+
+
+
+ Formats the log message into database statement text.
+
+ The event being logged.
+
+ This method can be overridden by subclasses to provide
+ more control over the format of the database statement.
+
+
+ Text that can be passed to a .
+
+
+
+
+ Connects to the database.
+
+
+
+
+ Retrieves the class type of the ADO.NET provider.
+
+
+
+ Gets the Type of the ADO.NET provider to use to connect to the
+ database. This method resolves the type specified in the
+ property.
+
+
+ Subclasses can override this method to return a different type
+ if necessary.
+
+
+ The of the ADO.NET provider
+
+
+
+ Prepares the database command and initialize the parameters.
+
+
+
+
+ Flag to indicate if we are using a command object
+
+
+
+ Set to true when the appender is to use a prepared
+ statement or stored procedure to insert into the database.
+
+
+
+
+
+ The list of objects.
+
+
+
+ The list of objects.
+
+
+
+
+
+ The security context to use for privileged calls
+
+
+
+
+ The that will be used
+ to insert logging events into a database.
+
+
+
+
+ The database command.
+
+
+
+
+ Database connection string.
+
+
+
+
+ String type name of the type name.
+
+
+
+
+ The text of the command.
+
+
+
+
+ The command type.
+
+
+
+
+ Indicates whether to use transactions when writing to the database.
+
+
+
+
+ Indicates whether to use transactions when writing to the database.
+
+
+
+
+ Gets or sets the database connection string that is used to connect to
+ the database.
+
+
+ The database connection string used to connect to the database.
+
+
+
+ The connections string is specific to the connection type.
+ See for more information.
+
+
+ Connection string for MS Access via ODBC:
+ "DSN=MS Access Database;UID=admin;PWD=;SystemDB=C:\data\System.mdw;SafeTransactions = 0;FIL=MS Access;DriverID = 25;DBQ=C:\data\train33.mdb"
+
+ Another connection string for MS Access via ODBC:
+ "Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\Work\cvs_root\log4net-1.2\access.mdb;UID=;PWD=;"
+
+ Connection string for MS Access via OLE DB:
+ "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Work\cvs_root\log4net-1.2\access.mdb;User Id=;Password=;"
+
+
+
+
+ Gets or sets the type name of the connection
+ that should be created.
+
+
+ The type name of the connection.
+
+
+
+ The type name of the ADO.NET provider to use.
+
+
+ The default is to use the OLE DB provider.
+
+
+ Use the OLE DB Provider. This is the default value.
+ System.Data.OleDb.OleDbConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ Use the MS SQL Server Provider.
+ System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ Use the ODBC Provider.
+ Microsoft.Data.Odbc.OdbcConnection,Microsoft.Data.Odbc,version=1.0.3300.0,publicKeyToken=b77a5c561934e089,culture=neutral
+ This is an optional package that you can download from
+ http://msdn.microsoft.com/downloads
+ search for ODBC .NET Data Provider.
+
+ Use the Oracle Provider.
+ System.Data.OracleClient.OracleConnection, System.Data.OracleClient, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+ This is an optional package that you can download from
+ http://msdn.microsoft.com/downloads
+ search for .NET Managed Provider for Oracle.
+
+
+
+
+ Gets or sets the command text that is used to insert logging events
+ into the database.
+
+
+ The command text used to insert logging events into the database.
+
+
+
+ Either the text of the prepared statement or the
+ name of the stored procedure to execute to write into
+ the database.
+
+
+ The property determines if
+ this text is a prepared statement or a stored procedure.
+
+
+
+
+
+ Gets or sets the command type to execute.
+
+
+ The command type to execute.
+
+
+
+ This value may be either (System.Data.CommandType.Text) to specify
+ that the is a prepared statement to execute,
+ or (System.Data.CommandType.StoredProcedure) to specify that the
+ property is the name of a stored procedure
+ to execute.
+
+
+ The default value is (System.Data.CommandType.Text).
+
+
+
+
+
+ Should transactions be used to insert logging events in the database.
+
+
+ true if transactions should be used to insert logging events in
+ the database, otherwise false. The default value is true.
+
+
+
+ Gets or sets a value that indicates whether transactions should be used
+ to insert logging events in the database.
+
+
+ When set a single transaction will be used to insert the buffered events
+ into the database. Otherwise each event will be inserted without using
+ an explicit transaction.
+
+
+
+
+
+ Gets or sets the used to call the NetSend method.
+
+
+ The used to call the NetSend method.
+
+
+
+ Unless a specified here for this appender
+ the is queried for the
+ security context to use. The default behavior is to use the security context
+ of the current thread.
+
+
+
+
+
+ Should this appender try to reconnect to the database on error.
+
+
+ true if the appender should try to reconnect to the database after an
+ error has occurred, otherwise false. The default value is false,
+ i.e. not to try to reconnect.
+
+
+
+ The default behaviour is for the appender not to try to reconnect to the
+ database if an error occurs. Subsequent logging events are discarded.
+
+
+ To force the appender to attempt to reconnect to the database set this
+ property to true.
+
+
+ When the appender attempts to connect to the database there may be a
+ delay of up to the connection timeout specified in the connection string.
+ This delay will block the calling application's thread.
+ Until the connection can be reestablished this potential delay may occur multiple times.
+
+
+
+
+
+ Gets or sets the underlying .
+
+
+ The underlying .
+
+
+ creates a to insert
+ logging events into a database. Classes deriving from
+ can use this property to get or set this . Use the
+ underlying returned from if
+ you require access beyond that which provides.
+
+
+
+
+ Parameter type used by the .
+
+
+
+ This class provides the basic database parameter properties
+ as defined by the interface.
+
+ This type can be subclassed to provide database specific
+ functionality. The two methods that are called externally are
+ and .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Default constructor for the AdoNetAppenderParameter class.
+
+
+
+
+ Prepare the specified database command object.
+
+ The command to prepare.
+
+
+ Prepares the database command object by adding
+ this parameter to its collection of parameters.
+
+
+
+
+
+ Renders the logging event and set the parameter value in the command.
+
+ The command containing the parameter.
+ The event to be rendered.
+
+
+ Renders the logging event using this parameters layout
+ object. Sets the value of the parameter on the command object.
+
+
+
+
+
+ The name of this parameter.
+
+
+
+
+ The database type for this parameter.
+
+
+
+
+ Flag to infer type rather than use the DbType
+
+
+
+
+ The precision for this parameter.
+
+
+
+
+ The scale for this parameter.
+
+
+
+
+ The size for this parameter.
+
+
+
+
+ The to use to render the
+ logging event into an object for this parameter.
+
+
+
+
+ Gets or sets the name of this parameter.
+
+
+ The name of this parameter.
+
+
+
+ The name of this parameter. The parameter name
+ must match up to a named parameter to the SQL stored procedure
+ or prepared statement.
+
+
+
+
+
+ Gets or sets the database type for this parameter.
+
+
+ The database type for this parameter.
+
+
+
+ The database type for this parameter. This property should
+ be set to the database type from the
+ enumeration. See .
+
+
+ This property is optional. If not specified the ADO.NET provider
+ will attempt to infer the type from the value.
+
+
+
+
+
+
+ Gets or sets the precision for this parameter.
+
+
+ The precision for this parameter.
+
+
+
+ The maximum number of digits used to represent the Value.
+
+
+ This property is optional. If not specified the ADO.NET provider
+ will attempt to infer the precision from the value.
+
+
+
+
+
+
+ Gets or sets the scale for this parameter.
+
+
+ The scale for this parameter.
+
+
+
+ The number of decimal places to which Value is resolved.
+
+
+ This property is optional. If not specified the ADO.NET provider
+ will attempt to infer the scale from the value.
+
+
+
+
+
+
+ Gets or sets the size for this parameter.
+
+
+ The size for this parameter.
+
+
+
+ The maximum size, in bytes, of the data within the column.
+
+
+ This property is optional. If not specified the ADO.NET provider
+ will attempt to infer the size from the value.
+
+
+
+
+
+
+ Gets or sets the to use to
+ render the logging event into an object for this
+ parameter.
+
+
+ The used to render the
+ logging event into an object for this parameter.
+
+
+
+ The that renders the value for this
+ parameter.
+
+
+ The can be used to adapt
+ any into a
+ for use in the property.
+
+
+
+
+
+ Appends logging events to the terminal using ANSI color escape sequences.
+
+
+
+ AnsiColorTerminalAppender appends log events to the standard output stream
+ or the error output stream using a layout specified by the
+ user. It also allows the color of a specific level of message to be set.
+
+
+ This appender expects the terminal to understand the VT100 control set
+ in order to interpret the color codes. If the terminal or console does not
+ understand the control codes the behavior is not defined.
+
+
+ By default, all output is written to the console's standard output stream.
+ The property can be set to direct the output to the
+ error stream.
+
+
+ NOTE: This appender writes each message to the System.Console.Out or
+ System.Console.Error that is set at the time the event is appended.
+ Therefore it is possible to programmatically redirect the output of this appender
+ (for example NUnit does this to capture program output). While this is the desired
+ behavior of this appender it may have security implications in your application.
+
+
+ When configuring the ANSI colored terminal appender, a mapping should be
+ specified to map a logging level to a color. For example:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The Level is the standard log4net logging level and ForeColor and BackColor can be any
+ of the following values:
+
+ Blue
+ Green
+ Red
+ White
+ Yellow
+ Purple
+ Cyan
+
+ These color values cannot be combined together to make new colors.
+
+
+ The attributes can be any combination of the following:
+
+ Brightforeground is brighter
+ Dimforeground is dimmer
+ Underscoremessage is underlined
+ Blinkforeground is blinking (does not work on all terminals)
+ Reverseforeground and background are reversed
+ Hiddenoutput is hidden
+ Strikethroughmessage has a line through it
+
+ While any of these attributes may be combined together not all combinations
+ work well together, for example setting both Bright and Dim attributes makes
+ no sense.
+
+
+ Patrick Wagstrom
+ Nicko Cadell
+
+
+
+ The to use when writing to the Console
+ standard output stream.
+
+
+
+ The to use when writing to the Console
+ standard output stream.
+
+
+
+
+
+ The to use when writing to the Console
+ standard error output stream.
+
+
+
+ The to use when writing to the Console
+ standard error output stream.
+
+
+
+
+
+ Ansi code to reset terminal
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ The instance of the class is set up to write
+ to the standard output stream.
+
+
+
+
+ Add a mapping of level to color
+
+ The mapping to add
+
+
+ Add a mapping to this appender.
+ Each mapping defines the foreground and background colours
+ for a level.
+
+
+
+
+
+ This method is called by the method.
+
+ The event to log.
+
+
+ Writes the event to the console.
+
+
+ The format of the output will depend on the appender's layout.
+
+
+
+
+
+ Initialize the options for this appender
+
+
+
+ Initialize the level to color mappings set on this appender.
+
+
+
+
+
+ Flag to write output to the error stream rather than the standard output stream
+
+
+
+
+ Mapping from level object to color value
+
+
+
+
+ Target is the value of the console output stream.
+
+
+ Target is the value of the console output stream.
+ This is either "Console.Out" or "Console.Error".
+
+
+
+ Target is the value of the console output stream.
+ This is either "Console.Out" or "Console.Error".
+
+
+
+
+
+ This appender requires a to be set.
+
+ true
+
+
+ This appender requires a to be set.
+
+
+
+
+
+ The enum of possible display attributes
+
+
+
+ The following flags can be combined together to
+ form the ANSI color attributes.
+
+
+
+
+
+
+ text is bright
+
+
+
+
+ text is dim
+
+
+
+
+ text is underlined
+
+
+
+
+ text is blinking
+
+
+ Not all terminals support this attribute
+
+
+
+
+ text and background colors are reversed
+
+
+
+
+ text is hidden
+
+
+
+
+ text is displayed with a strikethrough
+
+
+
+
+ The enum of possible foreground or background color values for
+ use with the color mapping method
+
+
+
+ The output can be in one for the following ANSI colors.
+
+
+
+
+
+
+ color is black
+
+
+
+
+ color is red
+
+
+
+
+ color is green
+
+
+
+
+ color is yellow
+
+
+
+
+ color is blue
+
+
+
+
+ color is magenta
+
+
+
+
+ color is cyan
+
+
+
+
+ color is white
+
+
+
+
+ A class to act as a mapping between the level that a logging call is made at and
+ the color it should be displayed as.
+
+
+
+ Defines the mapping between a level and the color it should be displayed in.
+
+
+
+
+
+ An entry in the
+
+
+
+ This is an abstract base class for types that are stored in the
+ object.
+
+
+ Nicko Cadell
+
+
+
+ Default protected constructor
+
+
+
+ Default protected constructor
+
+
+
+
+
+ Initialize any options defined on this entry
+
+
+
+ Should be overridden by any classes that need to initialise based on their options
+
+
+
+
+
+ The level that is the key for this mapping
+
+
+ The that is the key for this mapping
+
+
+
+ Get or set the that is the key for this
+ mapping subclass.
+
+
+
+
+
+ Initialize the options for the object
+
+
+
+ Combine the and together
+ and append the attributes.
+
+
+
+
+
+ The mapped foreground color for the specified level
+
+
+
+ Required property.
+ The mapped foreground color for the specified level
+
+
+
+
+
+ The mapped background color for the specified level
+
+
+
+ Required property.
+ The mapped background color for the specified level
+
+
+
+
+
+ The color attributes for the specified level
+
+
+
+ Required property.
+ The color attributes for the specified level
+
+
+
+
+
+ The combined , and
+ suitable for setting the ansi terminal color.
+
+
+
+
+ A strongly-typed collection of objects.
+
+ Nicko Cadell
+
+
+
+ Creates a read-only wrapper for a AppenderCollection instance.
+
+ list to create a readonly wrapper arround
+
+ An AppenderCollection wrapper that is read-only.
+
+
+
+
+ An empty readonly static AppenderCollection
+
+
+
+
+ Initializes a new instance of the AppenderCollection class
+ that is empty and has the default initial capacity.
+
+
+
+
+ Initializes a new instance of the AppenderCollection class
+ that has the specified initial capacity.
+
+
+ The number of elements that the new AppenderCollection is initially capable of storing.
+
+
+
+
+ Initializes a new instance of the AppenderCollection class
+ that contains elements copied from the specified AppenderCollection.
+
+ The AppenderCollection whose elements are copied to the new collection.
+
+
+
+ Initializes a new instance of the AppenderCollection class
+ that contains elements copied from the specified array.
+
+ The array whose elements are copied to the new list.
+
+
+
+ Initializes a new instance of the AppenderCollection class
+ that contains elements copied from the specified collection.
+
+ The collection whose elements are copied to the new list.
+
+
+
+ Allow subclasses to avoid our default constructors
+
+
+
+
+
+
+ Copies the entire AppenderCollection to a one-dimensional
+ array.
+
+ The one-dimensional array to copy to.
+
+
+
+ Copies the entire AppenderCollection to a one-dimensional
+ array, starting at the specified index of the target array.
+
+ The one-dimensional array to copy to.
+ The zero-based index in at which copying begins.
+
+
+
+ Adds a to the end of the AppenderCollection.
+
+ The to be added to the end of the AppenderCollection.
+ The index at which the value has been added.
+
+
+
+ Removes all elements from the AppenderCollection.
+
+
+
+
+ Creates a shallow copy of the .
+
+ A new with a shallow copy of the collection data.
+
+
+
+ Determines whether a given is in the AppenderCollection.
+
+ The to check for.
+ true if is found in the AppenderCollection; otherwise, false.
+
+
+
+ Returns the zero-based index of the first occurrence of a
+ in the AppenderCollection.
+
+ The to locate in the AppenderCollection.
+
+ The zero-based index of the first occurrence of
+ in the entire AppenderCollection, if found; otherwise, -1.
+
+
+
+
+ Inserts an element into the AppenderCollection at the specified index.
+
+ The zero-based index at which should be inserted.
+ The to insert.
+
+ is less than zero
+ -or-
+ is equal to or greater than .
+
+
+
+
+ Removes the first occurrence of a specific from the AppenderCollection.
+
+ The to remove from the AppenderCollection.
+
+ The specified was not found in the AppenderCollection.
+
+
+
+
+ Removes the element at the specified index of the AppenderCollection.
+
+ The zero-based index of the element to remove.
+
+ is less than zero
+ -or-
+ is equal to or greater than .
+
+
+
+
+ Returns an enumerator that can iterate through the AppenderCollection.
+
+ An for the entire AppenderCollection.
+
+
+
+ Adds the elements of another AppenderCollection to the current AppenderCollection.
+
+ The AppenderCollection whose elements should be added to the end of the current AppenderCollection.
+ The new of the AppenderCollection.
+
+
+
+ Adds the elements of a array to the current AppenderCollection.
+
+ The array whose elements should be added to the end of the AppenderCollection.
+ The new of the AppenderCollection.
+
+
+
+ Adds the elements of a collection to the current AppenderCollection.
+
+ The collection whose elements should be added to the end of the AppenderCollection.
+ The new of the AppenderCollection.
+
+
+
+ Sets the capacity to the actual number of elements.
+
+
+
+
+ Return the collection elements as an array
+
+ the array
+
+
+
+ is less than zero
+ -or-
+ is equal to or greater than .
+
+
+
+
+ is less than zero
+ -or-
+ is equal to or greater than .
+
+
+
+
+ Gets the number of elements actually contained in the AppenderCollection.
+
+
+
+
+ Gets a value indicating whether access to the collection is synchronized (thread-safe).
+
+ true if access to the ICollection is synchronized (thread-safe); otherwise, false.
+
+
+
+ Gets an object that can be used to synchronize access to the collection.
+
+
+
+
+ Gets or sets the at the specified index.
+
+ The zero-based index of the element to get or set.
+
+ is less than zero
+ -or-
+ is equal to or greater than .
+
+
+
+
+ Gets a value indicating whether the collection has a fixed size.
+
+ true if the collection has a fixed size; otherwise, false. The default is false
+
+
+
+ Gets a value indicating whether the IList is read-only.
+
+ true if the collection is read-only; otherwise, false. The default is false
+
+
+
+ Gets or sets the number of elements the AppenderCollection can contain.
+
+
+
+
+ Supports type-safe iteration over a .
+
+
+
+
+
+ Advances the enumerator to the next element in the collection.
+
+
+ true if the enumerator was successfully advanced to the next element;
+ false if the enumerator has passed the end of the collection.
+
+
+ The collection was modified after the enumerator was created.
+
+
+
+
+ Sets the enumerator to its initial position, before the first element in the collection.
+
+
+
+
+ Gets the current element in the collection.
+
+
+
+
+ Type visible only to our subclasses
+ Used to access protected constructor
+
+
+
+
+
+ A value
+
+
+
+
+ Supports simple iteration over a .
+
+
+
+
+
+ Initializes a new instance of the Enumerator class.
+
+
+
+
+
+ Advances the enumerator to the next element in the collection.
+
+
+ true if the enumerator was successfully advanced to the next element;
+ false if the enumerator has passed the end of the collection.
+
+
+ The collection was modified after the enumerator was created.
+
+
+
+
+ Sets the enumerator to its initial position, before the first element in the collection.
+
+
+
+
+ Gets the current element in the collection.
+
+
+
+
+
+
+
+
+ Appends log events to the ASP.NET system.
+
+
+
+
+ Diagnostic information and tracing messages that you specify are appended to the output
+ of the page that is sent to the requesting browser. Optionally, you can view this information
+ from a separate trace viewer (Trace.axd) that displays trace information for every page in a
+ given application.
+
+
+ Trace statements are processed and displayed only when tracing is enabled. You can control
+ whether tracing is displayed to a page, to the trace viewer, or both.
+
+
+ The logging event is passed to the or
+ method depending on the level of the logging event.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ Default constructor.
+
+
+
+
+
+ Write the logging event to the ASP.NET trace
+
+ the event to log
+
+
+ Write the logging event to the ASP.NET trace
+ HttpContext.Current.Trace
+ ().
+
+
+
+
+
+ This appender requires a to be set.
+
+ true
+
+
+ This appender requires a to be set.
+
+
+
+
+
+ Buffers events and then forwards them to attached appenders.
+
+
+
+ The events are buffered in this appender until conditions are
+ met to allow the appender to deliver the events to the attached
+ appenders. See for the
+ conditions that cause the buffer to be sent.
+
+ The forwarding appender can be used to specify different
+ thresholds and filters for the same appender at different locations
+ within the hierarchy.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Interface for attaching appenders to objects.
+
+
+
+ Interface for attaching, removing and retrieving appenders.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Attaches an appender.
+
+ The appender to add.
+
+
+ Add the specified appender. The implementation may
+ choose to allow or deny duplicate appenders.
+
+
+
+
+
+ Gets an attached appender with the specified name.
+
+ The name of the appender to get.
+
+ The appender with the name specified, or null if no appender with the
+ specified name is found.
+
+
+
+ Returns an attached appender with the specified.
+ If no appender with the specified name is found null will be
+ returned.
+
+
+
+
+
+ Removes all attached appenders.
+
+
+
+ Removes and closes all attached appenders
+
+
+
+
+
+ Removes the specified appender from the list of attached appenders.
+
+ The appender to remove.
+ The appender removed from the list
+
+
+ The appender removed is not closed.
+ If you are discarding the appender you must call
+ on the appender removed.
+
+
+
+
+
+ Removes the appender with the specified name from the list of appenders.
+
+ The name of the appender to remove.
+ The appender removed from the list
+
+
+ The appender removed is not closed.
+ If you are discarding the appender you must call
+ on the appender removed.
+
+
+
+
+
+ Gets all attached appenders.
+
+
+ A collection of attached appenders.
+
+
+
+ Gets a collection of attached appenders.
+ If there are no attached appenders the
+ implementation should return an empty
+ collection rather than null.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ Default constructor.
+
+
+
+
+
+ Closes the appender and releases resources.
+
+
+
+ Releases any resources allocated within the appender such as file handles,
+ network connections, etc.
+
+
+ It is a programming error to append to a closed appender.
+
+
+
+
+
+ Send the events.
+
+ The events that need to be send.
+
+
+ Forwards the events to the attached appenders.
+
+
+
+
+
+ Adds an to the list of appenders of this
+ instance.
+
+ The to add to this appender.
+
+
+ If the specified is already in the list of
+ appenders, then it won't be added again.
+
+
+
+
+
+ Looks for the appender with the specified name.
+
+ The name of the appender to lookup.
+
+ The appender with the specified name, or null.
+
+
+
+ Get the named appender attached to this buffering appender.
+
+
+
+
+
+ Removes all previously added appenders from this appender.
+
+
+
+ This is useful when re-reading configuration information.
+
+
+
+
+
+ Removes the specified appender from the list of appenders.
+
+ The appender to remove.
+ The appender removed from the list
+
+ The appender removed is not closed.
+ If you are discarding the appender you must call
+ on the appender removed.
+
+
+
+
+ Removes the appender with the specified name from the list of appenders.
+
+ The name of the appender to remove.
+ The appender removed from the list
+
+ The appender removed is not closed.
+ If you are discarding the appender you must call
+ on the appender removed.
+
+
+
+
+ Implementation of the interface
+
+
+
+
+ Gets the appenders contained in this appender as an
+ .
+
+
+ If no appenders can be found, then an
+ is returned.
+
+
+ A collection of the appenders in this appender.
+
+
+
+
+ Appends logging events to the console.
+
+
+
+ ColoredConsoleAppender appends log events to the standard output stream
+ or the error output stream using a layout specified by the
+ user. It also allows the color of a specific type of message to be set.
+
+
+ By default, all output is written to the console's standard output stream.
+ The property can be set to direct the output to the
+ error stream.
+
+
+ NOTE: This appender writes directly to the application's attached console
+ not to the System.Console.Out or System.Console.ErrorTextWriter.
+ The System.Console.Out and System.Console.Error streams can be
+ programmatically redirected (for example NUnit does this to capture program output).
+ This appender will ignore these redirections because it needs to use Win32
+ API calls to colorize the output. To respect these redirections the
+ must be used.
+
+
+ When configuring the colored console appender, mapping should be
+ specified to map a logging level to a color. For example:
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The Level is the standard log4net logging level and ForeColor and BackColor can be any
+ combination of the following values:
+
+ Blue
+ Green
+ Red
+ White
+ Yellow
+ Purple
+ Cyan
+ HighIntensity
+
+
+
+ Rick Hobbs
+ Nicko Cadell
+
+
+
+ The to use when writing to the Console
+ standard output stream.
+
+
+
+ The to use when writing to the Console
+ standard output stream.
+
+
+
+
+
+ The to use when writing to the Console
+ standard error output stream.
+
+
+
+ The to use when writing to the Console
+ standard error output stream.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ The instance of the class is set up to write
+ to the standard output stream.
+
+
+
+
+ Initializes a new instance of the class
+ with the specified layout.
+
+ the layout to use for this appender
+
+ The instance of the class is set up to write
+ to the standard output stream.
+
+
+
+
+ Initializes a new instance of the class
+ with the specified layout.
+
+ the layout to use for this appender
+ flag set to true to write to the console error stream
+
+ When is set to true, output is written to
+ the standard error output stream. Otherwise, output is written to the standard
+ output stream.
+
+
+
+
+ Add a mapping of level to color - done by the config file
+
+ The mapping to add
+
+
+ Add a mapping to this appender.
+ Each mapping defines the foreground and background colors
+ for a level.
+
+
+
+
+
+ This method is called by the method.
+
+ The event to log.
+
+
+ Writes the event to the console.
+
+
+ The format of the output will depend on the appender's layout.
+
+
+
+
+
+ Initialize the options for this appender
+
+
+
+ Initialize the level to color mappings set on this appender.
+
+
+
+
+
+ Flag to write output to the error stream rather than the standard output stream
+
+
+
+
+ Mapping from level object to color value
+
+
+
+
+ The console output stream writer to write to
+
+
+
+ This writer is not thread safe.
+
+
+
+
+
+ Target is the value of the console output stream.
+ This is either "Console.Out" or "Console.Error".
+
+
+ Target is the value of the console output stream.
+ This is either "Console.Out" or "Console.Error".
+
+
+
+ Target is the value of the console output stream.
+ This is either "Console.Out" or "Console.Error".
+
+
+
+
+
+ This appender requires a to be set.
+
+ true
+
+
+ This appender requires a to be set.
+
+
+
+
+
+ The enum of possible color values for use with the color mapping method
+
+
+
+ The following flags can be combined together to
+ form the colors.
+
+
+
+
+
+
+ color is blue
+
+
+
+
+ color is green
+
+
+
+
+ color is red
+
+
+
+
+ color is white
+
+
+
+
+ color is yellow
+
+
+
+
+ color is purple
+
+
+
+
+ color is cyan
+
+
+
+
+ color is intensified
+
+
+
+
+ A class to act as a mapping between the level that a logging call is made at and
+ the color it should be displayed as.
+
+
+
+ Defines the mapping between a level and the color it should be displayed in.
+
+
+
+
+
+ Initialize the options for the object
+
+
+
+ Combine the and together.
+
+
+
+
+
+ The mapped foreground color for the specified level
+
+
+
+ Required property.
+ The mapped foreground color for the specified level.
+
+
+
+
+
+ The mapped background color for the specified level
+
+
+
+ Required property.
+ The mapped background color for the specified level.
+
+
+
+
+
+ The combined and suitable for
+ setting the console color.
+
+
+
+
+ Appends logging events to the console.
+
+
+
+ ConsoleAppender appends log events to the standard output stream
+ or the error output stream using a layout specified by the
+ user.
+
+
+ By default, all output is written to the console's standard output stream.
+ The property can be set to direct the output to the
+ error stream.
+
+
+ NOTE: This appender writes each message to the System.Console.Out or
+ System.Console.Error that is set at the time the event is appended.
+ Therefore it is possible to programmatically redirect the output of this appender
+ (for example NUnit does this to capture program output). While this is the desired
+ behavior of this appender it may have security implications in your application.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ The to use when writing to the Console
+ standard output stream.
+
+
+
+ The to use when writing to the Console
+ standard output stream.
+
+
+
+
+
+ The to use when writing to the Console
+ standard error output stream.
+
+
+
+ The to use when writing to the Console
+ standard error output stream.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ The instance of the class is set up to write
+ to the standard output stream.
+
+
+
+
+ Initializes a new instance of the class
+ with the specified layout.
+
+ the layout to use for this appender
+
+ The instance of the class is set up to write
+ to the standard output stream.
+
+
+
+
+ Initializes a new instance of the class
+ with the specified layout.
+
+ the layout to use for this appender
+ flag set to true to write to the console error stream
+
+ When is set to true, output is written to
+ the standard error output stream. Otherwise, output is written to the standard
+ output stream.
+
+
+
+
+ This method is called by the method.
+
+ The event to log.
+
+
+ Writes the event to the console.
+
+
+ The format of the output will depend on the appender's layout.
+
+
+
+
+
+ Target is the value of the console output stream.
+ This is either "Console.Out" or "Console.Error".
+
+
+ Target is the value of the console output stream.
+ This is either "Console.Out" or "Console.Error".
+
+
+
+ Target is the value of the console output stream.
+ This is either "Console.Out" or "Console.Error".
+
+
+
+
+
+ This appender requires a to be set.
+
+ true
+
+
+ This appender requires a to be set.
+
+
+
+
+
+ Appends log events to the system.
+
+
+
+ The application configuration file can be used to control what listeners
+ are actually used. See the MSDN documentation for the
+ class for details on configuring the
+ debug system.
+
+
+ Events are written using the
+ method. The event's logger name is passed as the value for the category name to the Write method.
+
+
+ Nicko Cadell
+
+
+
+ Initializes a new instance of the .
+
+
+
+ Default constructor.
+
+
+
+
+
+ Initializes a new instance of the
+ with a specified layout.
+
+ The layout to use with this appender.
+
+
+ Obsolete constructor.
+
+
+
+
+
+ Writes the logging event to the system.
+
+ The event to log.
+
+
+ Writes the logging event to the system.
+ If is true then the
+ is called.
+
+
+
+
+
+ Immediate flush means that the underlying writer or output stream
+ will be flushed at the end of each append operation.
+
+
+
+ Immediate flush is slower but ensures that each append request is
+ actually written. If is set to
+ false, then there is a good chance that the last few
+ logs events are not actually written to persistent media if and
+ when the application crashes.
+
+
+ The default value is true.
+
+
+
+
+ Gets or sets a value that indicates whether the appender will
+ flush at the end of each write.
+
+
+ The default behavior is to flush at the end of each
+ write. If the option is set tofalse, then the underlying
+ stream can defer writing to physical medium to a later time.
+
+
+ Avoiding the flush operation at the end of each append results
+ in a performance gain of 10 to 20 percent. However, there is safety
+ trade-off involved in skipping flushing. Indeed, when flushing is
+ skipped, then it is likely that the last few log events will not
+ be recorded on disk when the application exits. This is a high
+ price to pay even for a 20% performance gain.
+
+
+
+
+
+ This appender requires a to be set.
+
+ true
+
+
+ This appender requires a to be set.
+
+
+
+
+
+ Writes events to the system event log.
+
+
+
+ The EventID of the event log entry can be
+ set using the EventLogEventID property ()
+ on the .
+
+
+ There is a limit of 32K characters for an event log message
+
+
+ When configuring the EventLogAppender a mapping can be
+ specified to map a logging level to an event log entry type. For example:
+
+
+ <mapping>
+ <level value="ERROR" />
+ <eventLogEntryType value="Error" />
+ </mapping>
+ <mapping>
+ <level value="DEBUG" />
+ <eventLogEntryType value="Information" />
+ </mapping>
+
+
+ The Level is the standard log4net logging level and eventLogEntryType can be any value
+ from the enum, i.e.:
+
+ Erroran error event
+ Warninga warning event
+ Informationan informational event
+
+
+
+ Aspi Havewala
+ Douglas de la Torre
+ Nicko Cadell
+ Gert Driesen
+ Thomas Voss
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ Default constructor.
+
+
+
+
+
+ Initializes a new instance of the class
+ with the specified .
+
+ The to use with this appender.
+
+
+ Obsolete constructor.
+
+
+
+
+
+ Add a mapping of level to - done by the config file
+
+ The mapping to add
+
+
+ Add a mapping to this appender.
+ Each mapping defines the event log entry type for a level.
+
+
+
+
+
+ Initialize the appender based on the options set
+
+
+
+ This is part of the delayed object
+ activation scheme. The method must
+ be called on this object after the configuration properties have
+ been set. Until is called this
+ object is in an undefined state and must not be used.
+
+
+ If any of the configuration properties are modified then
+ must be called again.
+
+
+
+
+
+ Create an event log source
+
+
+ Uses different API calls under NET_2_0
+
+
+
+
+ This method is called by the
+ method.
+
+ the event to log
+
+ Writes the event to the system event log using the
+ .
+
+ If the event has an EventID property (see )
+ set then this integer will be used as the event log event id.
+
+
+ There is a limit of 32K characters for an event log message
+
+
+
+
+
+ Get the equivalent for a
+
+ the Level to convert to an EventLogEntryType
+ The equivalent for a
+
+ Because there are fewer applicable
+ values to use in logging levels than there are in the
+ this is a one way mapping. There is
+ a loss of information during the conversion.
+
+
+
+
+ The log name is the section in the event logs where the messages
+ are stored.
+
+
+
+
+ Name of the application to use when logging. This appears in the
+ application column of the event log named by .
+
+
+
+
+ The name of the machine which holds the event log. This is
+ currently only allowed to be '.' i.e. the current machine.
+
+
+
+
+ Mapping from level object to EventLogEntryType
+
+
+
+
+ The security context to use for privileged calls
+
+
+
+
+ The name of the log where messages will be stored.
+
+
+ The string name of the log where messages will be stored.
+
+
+ This is the name of the log as it appears in the Event Viewer
+ tree. The default value is to log into the Application
+ log, this is where most applications write their events. However
+ if you need a separate log for your application (or applications)
+ then you should set the appropriately.
+ This should not be used to distinguish your event log messages
+ from those of other applications, the
+ property should be used to distinguish events. This property should be
+ used to group together events into a single log.
+
+
+
+
+
+ Property used to set the Application name. This appears in the
+ event logs when logging.
+
+
+ The string used to distinguish events from different sources.
+
+
+ Sets the event log source property.
+
+
+
+
+ This property is used to return the name of the computer to use
+ when accessing the event logs. Currently, this is the current
+ computer, denoted by a dot "."
+
+
+ The string name of the machine holding the event log that
+ will be logged into.
+
+
+ This property cannot be changed. It is currently set to '.'
+ i.e. the local machine. This may be changed in future.
+
+
+
+
+ Gets or sets the used to write to the EventLog.
+
+
+ The used to write to the EventLog.
+
+
+
+ The system security context used to write to the EventLog.
+
+
+ Unless a specified here for this appender
+ the is queried for the
+ security context to use. The default behavior is to use the security context
+ of the current thread.
+
+
+
+
+
+ This appender requires a to be set.
+
+ true
+
+
+ This appender requires a to be set.
+
+
+
+
+
+ A class to act as a mapping between the level that a logging call is made at and
+ the color it should be displayed as.
+
+
+
+ Defines the mapping between a level and its event log entry type.
+
+
+
+
+
+ The for this entry
+
+
+
+ Required property.
+ The for this entry
+
+
+
+
+
+ Appends logging events to a file.
+
+
+
+ Logging events are sent to the file specified by
+ the property.
+
+
+ The file can be opened in either append or overwrite mode
+ by specifying the property.
+ If the file path is relative it is taken as relative from
+ the application base directory. The file encoding can be
+ specified by setting the property.
+
+
+ The layout's and
+ values will be written each time the file is opened and closed
+ respectively. If the property is
+ then the file may contain multiple copies of the header and footer.
+
+
+ This appender will first try to open the file for writing when
+ is called. This will typically be during configuration.
+ If the file cannot be opened for writing the appender will attempt
+ to open the file again each time a message is logged to the appender.
+ If the file cannot be opened for writing when a message is logged then
+ the message will be discarded by this appender.
+
+
+ The supports pluggable file locking models via
+ the property.
+ The default behavior, implemented by
+ is to obtain an exclusive write lock on the file until this appender is closed.
+ The alternative model, , only holds a
+ write lock while the appender is writing a logging event.
+
+
+ Nicko Cadell
+ Gert Driesen
+ Rodrigo B. de Oliveira
+ Douglas de la Torre
+ Niall Daley
+
+
+
+ Sends logging events to a .
+
+
+
+ An Appender that writes to a .
+
+
+ This appender may be used stand alone if initialized with an appropriate
+ writer, however it is typically used as a base class for an appender that
+ can open a to write to.
+
+
+ Nicko Cadell
+ Gert Driesen
+ Douglas de la Torre
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ Default constructor.
+
+
+
+
+
+ Initializes a new instance of the class and
+ sets the output destination to a new initialized
+ with the specified .
+
+ The layout to use with this appender.
+ The to output to.
+
+
+ Obsolete constructor.
+
+
+
+
+
+ Initializes a new instance of the class and sets
+ the output destination to the specified .
+
+ The layout to use with this appender
+ The to output to
+
+ The must have been previously opened.
+
+
+
+ Obsolete constructor.
+
+
+
+
+
+ This method determines if there is a sense in attempting to append.
+
+
+
+ This method checked if an output target has been set and if a
+ layout has been set.
+
+
+ false if any of the preconditions fail.
+
+
+
+ This method is called by the
+ method.
+
+ The event to log.
+
+
+ Writes a log statement to the output stream if the output stream exists
+ and is writable.
+
+
+ The format of the output will depend on the appender's layout.
+
+
+
+
+
+ This method is called by the
+ method.
+
+ The array of events to log.
+
+
+ This method writes all the bulk logged events to the output writer
+ before flushing the stream.
+
+
+
+
+
+ Close this appender instance. The underlying stream or writer is also closed.
+
+
+ Closed appenders cannot be reused.
+
+
+
+
+ Writes the footer and closes the underlying .
+
+
+
+ Writes the footer and closes the underlying .
+
+
+
+
+
+ Closes the underlying .
+
+
+
+ Closes the underlying .
+
+
+
+
+
+ Clears internal references to the underlying
+ and other variables.
+
+
+
+ Subclasses can override this method for an alternate closing behavior.
+
+
+
+
+
+ Writes a footer as produced by the embedded layout's property.
+
+
+
+ Writes a footer as produced by the embedded layout's property.
+
+
+
+
+
+ Writes a header produced by the embedded layout's property.
+
+
+
+ Writes a header produced by the embedded layout's property.
+
+
+
+
+
+ Called to allow a subclass to lazily initialize the writer
+
+
+
+ This method is called when an event is logged and the or
+ have not been set. This allows a subclass to
+ attempt to initialize the writer multiple times.
+
+
+
+
+
+ This is the where logging events
+ will be written to.
+
+
+
+
+ Immediate flush means that the underlying
+ or output stream will be flushed at the end of each append operation.
+
+
+
+ Immediate flush is slower but ensures that each append request is
+ actually written. If is set to
+ false, then there is a good chance that the last few
+ logging events are not actually persisted if and when the application
+ crashes.
+
+
+ The default value is true.
+
+
+
+
+
+ Gets or set whether the appender will flush at the end
+ of each append operation.
+
+
+
+ The default behavior is to flush at the end of each
+ append operation.
+
+
+ If this option is set to false, then the underlying
+ stream can defer persisting the logging event to a later
+ time.
+
+
+
+ Avoiding the flush operation at the end of each append results in
+ a performance gain of 10 to 20 percent. However, there is safety
+ trade-off involved in skipping flushing. Indeed, when flushing is
+ skipped, then it is likely that the last few log events will not
+ be recorded on disk when the application exits. This is a high
+ price to pay even for a 20% performance gain.
+
+
+
+
+ Sets the where the log output will go.
+
+
+
+ The specified must be open and writable.
+
+
+ The will be closed when the appender
+ instance is closed.
+
+
+ Note: Logging to an unopened will fail.
+
+
+
+
+
+ Gets or set the and the underlying
+ , if any, for this appender.
+
+
+ The for this appender.
+
+
+
+
+ This appender requires a to be set.
+
+ true
+
+
+ This appender requires a to be set.
+
+
+
+
+
+ Gets or sets the where logging events
+ will be written to.
+
+
+ The where logging events are written.
+
+
+
+ This is the where logging events
+ will be written to.
+
+
+
+
+
+ Default constructor
+
+
+
+ Default constructor
+
+
+
+
+
+ Construct a new appender using the layout, file and append mode.
+
+ the layout to use with this appender
+ the full path to the file to write to
+ flag to indicate if the file should be appended to
+
+
+ Obsolete constructor.
+
+
+
+
+
+ Construct a new appender using the layout and file specified.
+ The file will be appended to.
+
+ the layout to use with this appender
+ the full path to the file to write to
+
+
+ Obsolete constructor.
+
+
+
+
+
+ Activate the options on the file appender.
+
+
+
+ This is part of the delayed object
+ activation scheme. The method must
+ be called on this object after the configuration properties have
+ been set. Until is called this
+ object is in an undefined state and must not be used.
+
+
+ If any of the configuration properties are modified then
+ must be called again.
+
+
+ This will cause the file to be opened.
+
+
+
+
+
+ Closes any previously opened file and calls the parent's .
+
+
+
+ Resets the filename and the file stream.
+
+
+
+
+
+ Called to initialize the file writer
+
+
+
+ Will be called for each logged message until the file is
+ successfully opened.
+
+
+
+
+
+ This method is called by the
+ method.
+
+ The event to log.
+
+
+ Writes a log statement to the output stream if the output stream exists
+ and is writable.
+
+
+ The format of the output will depend on the appender's layout.
+
+
+
+
+
+ This method is called by the
+ method.
+
+ The array of events to log.
+
+
+ Acquires the output file locks once before writing all the events to
+ the stream.
+
+
+
+
+
+ Writes a footer as produced by the embedded layout's property.
+
+
+
+ Writes a footer as produced by the embedded layout's property.
+
+
+
+
+
+ Writes a header produced by the embedded layout's property.
+
+
+
+ Writes a header produced by the embedded layout's property.
+
+
+
+
+
+ Closes the underlying .
+
+
+
+ Closes the underlying .
+
+
+
+
+
+ Closes the previously opened file.
+
+
+
+ Writes the to the file and then
+ closes the file.
+
+
+
+
+
+ Sets and opens the file where the log output will go. The specified file must be writable.
+
+ The path to the log file. Must be a fully qualified path.
+ If true will append to fileName. Otherwise will truncate fileName
+
+
+ Calls but guarantees not to throw an exception.
+ Errors are passed to the .
+
+
+
+
+
+ Sets and opens the file where the log output will go. The specified file must be writable.
+
+ The path to the log file. Must be a fully qualified path.
+ If true will append to fileName. Otherwise will truncate fileName
+
+
+ If there was already an opened file, then the previous file
+ is closed first.
+
+
+ This method will ensure that the directory structure
+ for the specified exists.
+
+
+
+
+
+ Sets the quiet writer used for file output
+
+ the file stream that has been opened for writing
+
+
+ This implementation of creates a
+ over the and passes it to the
+ method.
+
+
+ This method can be overridden by sub classes that want to wrap the
+ in some way, for example to encrypt the output
+ data using a System.Security.Cryptography.CryptoStream.
+
+
+
+
+
+ Sets the quiet writer being used.
+
+ the writer over the file stream that has been opened for writing
+
+
+ This method can be overridden by sub classes that want to
+ wrap the in some way.
+
+
+
+
+
+ Convert a path into a fully qualified path.
+
+ The path to convert.
+ The fully qualified path.
+
+
+ Converts the path specified to a fully
+ qualified path. If the path is relative it is
+ taken as relative from the application base
+ directory.
+
+
+
+
+
+ Flag to indicate if we should append to the file
+ or overwrite the file. The default is to append.
+
+
+
+
+ The name of the log file.
+
+
+
+
+ The encoding to use for the file stream.
+
+
+
+
+ The security context to use for privileged calls
+
+
+
+
+ The stream to log to. Has added locking semantics
+
+
+
+
+ The locking model to use
+
+
+
+
+ Gets or sets the path to the file that logging will be written to.
+
+
+ The path to the file that logging will be written to.
+
+
+
+ If the path is relative it is taken as relative from
+ the application base directory.
+
+
+
+
+
+ Gets or sets a flag that indicates whether the file should be
+ appended to or overwritten.
+
+
+ Indicates whether the file should be appended to or overwritten.
+
+
+
+ If the value is set to false then the file will be overwritten, if
+ it is set to true then the file will be appended to.
+
+ The default value is true.
+
+
+
+
+ Gets or sets used to write to the file.
+
+
+ The used to write to the file.
+
+
+
+ The default encoding set is
+ which is the encoding for the system's current ANSI code page.
+
+
+
+
+
+ Gets or sets the used to write to the file.
+
+
+ The used to write to the file.
+
+
+
+ Unless a specified here for this appender
+ the is queried for the
+ security context to use. The default behavior is to use the security context
+ of the current thread.
+
+
+
+
+
+ Gets or sets the used to handle locking of the file.
+
+
+ The used to lock the file.
+
+
+
+ Gets or sets the used to handle locking of the file.
+
+
+ There are two built in locking models, and .
+ The former locks the file from the start of logging to the end and the
+ later lock only for the minimal amount of time when logging each message.
+
+
+ The default locking model is the .
+
+
+
+
+
+ Write only that uses the
+ to manage access to an underlying resource.
+
+
+
+
+ True asynchronous writes are not supported, the implementation forces a synchronous write.
+
+
+
+
+ Exception base type for log4net.
+
+
+
+ This type extends . It
+ does not add any new functionality but does differentiate the
+ type of exception being thrown.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Constructor
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+
+ Constructor
+
+ A message to include with the exception.
+
+
+ Initializes a new instance of the class with
+ the specified message.
+
+
+
+
+
+ Constructor
+
+ A message to include with the exception.
+ A nested exception to include.
+
+
+ Initializes a new instance of the class
+ with the specified message and inner exception.
+
+
+
+
+
+ Serialization constructor
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+
+
+
+ Locking model base class
+
+
+
+ Base class for the locking models available to the derived loggers.
+
+
+
+
+
+ Open the output file
+
+ The filename to use
+ Whether to append to the file, or overwrite
+ The encoding to use
+
+
+ Open the file specified and prepare for logging.
+ No writes will be made until is called.
+ Must be called before any calls to ,
+ and .
+
+
+
+
+
+ Close the file
+
+
+
+ Close the file. No further writes will be made.
+
+
+
+
+
+ Acquire the lock on the file
+
+ A stream that is ready to be written to.
+
+
+ Acquire the lock on the file in preparation for writing to it.
+ Return a stream pointing to the file.
+ must be called to release the lock on the output file.
+
+
+
+
+
+ Release the lock on the file
+
+
+
+ Release the lock on the file. No further writes will be made to the
+ stream until is called again.
+
+
+
+
+
+ Gets or sets the for this LockingModel
+
+
+ The for this LockingModel
+
+
+
+ The file appender this locking model is attached to and working on
+ behalf of.
+
+
+ The file appender is used to locate the security context and the error handler to use.
+
+
+ The value of this property will be set before is
+ called.
+
+
+
+
+
+ Hold an exclusive lock on the output file
+
+
+
+ Open the file once for writing and hold it open until is called.
+ Maintains an exclusive lock on the file during this time.
+
+
+
+
+
+ Open the file specified and prepare for logging.
+
+ The filename to use
+ Whether to append to the file, or overwrite
+ The encoding to use
+
+
+ Open the file specified and prepare for logging.
+ No writes will be made until is called.
+ Must be called before any calls to ,
+ and .
+
+
+
+
+
+ Close the file
+
+
+
+ Close the file. No further writes will be made.
+
+
+
+
+
+ Acquire the lock on the file
+
+ A stream that is ready to be written to.
+
+
+ Does nothing. The lock is already taken
+
+
+
+
+
+ Release the lock on the file
+
+
+
+ Does nothing. The lock will be released when the file is closed.
+
+
+
+
+
+ Acquires the file lock for each write
+
+
+
+ Opens the file once for each / cycle,
+ thus holding the lock for the minimal amount of time. This method of locking
+ is considerably slower than but allows
+ other processes to move/delete the log file whilst logging continues.
+
+
+
+
+
+ Prepares to open the file when the first message is logged.
+
+ The filename to use
+ Whether to append to the file, or overwrite
+ The encoding to use
+
+
+ Open the file specified and prepare for logging.
+ No writes will be made until is called.
+ Must be called before any calls to ,
+ and .
+
+
+
+
+
+ Close the file
+
+
+
+ Close the file. No further writes will be made.
+
+
+
+
+
+ Acquire the lock on the file
+
+ A stream that is ready to be written to.
+
+
+ Acquire the lock on the file in preparation for writing to it.
+ Return a stream pointing to the file.
+ must be called to release the lock on the output file.
+
+
+
+
+
+ Release the lock on the file
+
+
+
+ Release the lock on the file. No further writes will be made to the
+ stream until is called again.
+
+
+
+
+
+ This appender forwards logging events to attached appenders.
+
+
+
+ The forwarding appender can be used to specify different thresholds
+ and filters for the same appender at different locations within the hierarchy.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ Default constructor.
+
+
+
+
+
+ Closes the appender and releases resources.
+
+
+
+ Releases any resources allocated within the appender such as file handles,
+ network connections, etc.
+
+
+ It is a programming error to append to a closed appender.
+
+
+
+
+
+ Forward the logging event to the attached appenders
+
+ The event to log.
+
+
+ Delivers the logging event to all the attached appenders.
+
+
+
+
+
+ Forward the logging events to the attached appenders
+
+ The array of events to log.
+
+
+ Delivers the logging events to all the attached appenders.
+
+
+
+
+
+ Adds an to the list of appenders of this
+ instance.
+
+ The to add to this appender.
+
+
+ If the specified is already in the list of
+ appenders, then it won't be added again.
+
+
+
+
+
+ Looks for the appender with the specified name.
+
+ The name of the appender to lookup.
+
+ The appender with the specified name, or null.
+
+
+
+ Get the named appender attached to this appender.
+
+
+
+
+
+ Removes all previously added appenders from this appender.
+
+
+
+ This is useful when re-reading configuration information.
+
+
+
+
+
+ Removes the specified appender from the list of appenders.
+
+ The appender to remove.
+ The appender removed from the list
+
+ The appender removed is not closed.
+ If you are discarding the appender you must call
+ on the appender removed.
+
+
+
+
+ Removes the appender with the specified name from the list of appenders.
+
+ The name of the appender to remove.
+ The appender removed from the list
+
+ The appender removed is not closed.
+ If you are discarding the appender you must call
+ on the appender removed.
+
+
+
+
+ Implementation of the interface
+
+
+
+
+ Gets the appenders contained in this appender as an
+ .
+
+
+ If no appenders can be found, then an
+ is returned.
+
+
+ A collection of the appenders in this appender.
+
+
+
+
+ Logs events to a local syslog service.
+
+
+
+ This appender uses the POSIX libc library functions openlog, syslog, and closelog.
+ If these functions are not available on the local system then this appender will not work!
+
+
+ The functions openlog, syslog, and closelog are specified in SUSv2 and
+ POSIX 1003.1-2001 standards. These are used to log messages to the local syslog service.
+
+
+ This appender talks to a local syslog service. If you need to log to a remote syslog
+ daemon and you cannot configure your local syslog service to do this you may be
+ able to use the to log via UDP.
+
+
+ Syslog messages must have a facility and and a severity. The severity
+ is derived from the Level of the logging event.
+ The facility must be chosen from the set of defined syslog
+ values. The facilities list is predefined
+ and cannot be extended.
+
+
+ An identifier is specified with each log message. This can be specified
+ by setting the property. The identity (also know
+ as the tag) must not contain white space. The default value for the
+ identity is the application name (from ).
+
+
+ Rob Lyon
+ Nicko Cadell
+
+
+
+ Initializes a new instance of the class.
+
+
+ This instance of the class is set up to write
+ to a local syslog service.
+
+
+
+
+ Add a mapping of level to severity
+
+ The mapping to add
+
+
+ Adds a to this appender.
+
+
+
+
+
+ Initialize the appender based on the options set.
+
+
+
+ This is part of the delayed object
+ activation scheme. The method must
+ be called on this object after the configuration properties have
+ been set. Until is called this
+ object is in an undefined state and must not be used.
+
+
+ If any of the configuration properties are modified then
+ must be called again.
+
+
+
+
+
+ This method is called by the method.
+
+ The event to log.
+
+
+ Writes the event to a remote syslog daemon.
+
+
+ The format of the output will depend on the appender's layout.
+
+
+
+
+
+ Close the syslog when the appender is closed
+
+
+
+ Close the syslog when the appender is closed
+
+
+
+
+
+ Translates a log4net level to a syslog severity.
+
+ A log4net level.
+ A syslog severity.
+
+
+ Translates a log4net level to a syslog severity.
+
+
+
+
+
+ Generate a syslog priority.
+
+ The syslog facility.
+ The syslog severity.
+ A syslog priority.
+
+
+
+ The facility. The default facility is .
+
+
+
+
+ The message identity
+
+
+
+
+ Marshaled handle to the identity string. We have to hold on to the
+ string as the openlog and syslog APIs just hold the
+ pointer to the ident and dereference it for each log message.
+
+
+
+
+ Mapping from level object to syslog severity
+
+
+
+
+ Open connection to system logger.
+
+
+
+
+ Generate a log message.
+
+
+
+ The libc syslog method takes a format string and a variable argument list similar
+ to the classic printf function. As this type of vararg list is not supported
+ by C# we need to specify the arguments explicitly. Here we have specified the
+ format string with a single message argument. The caller must set the format
+ string to "%s".
+
+
+
+
+
+ Close descriptor used to write to system logger.
+
+
+
+
+ Message identity
+
+
+
+ An identifier is specified with each log message. This can be specified
+ by setting the property. The identity (also know
+ as the tag) must not contain white space. The default value for the
+ identity is the application name (from ).
+
+
+
+
+
+ Syslog facility
+
+
+ Set to one of the values. The list of
+ facilities is predefined and cannot be extended. The default value
+ is .
+
+
+
+
+ This appender requires a to be set.
+
+ true
+
+
+ This appender requires a to be set.
+
+
+
+
+
+ syslog severities
+
+
+
+ The log4net Level maps to a syslog severity using the
+ method and the
+ class. The severity is set on .
+
+
+
+
+
+ system is unusable
+
+
+
+
+ action must be taken immediately
+
+
+
+
+ critical conditions
+
+
+
+
+ error conditions
+
+
+
+
+ warning conditions
+
+
+
+
+ normal but significant condition
+
+
+
+
+ informational
+
+
+
+
+ debug-level messages
+
+
+
+
+ syslog facilities
+
+
+
+ The syslog facility defines which subsystem the logging comes from.
+ This is set on the property.
+
+
+
+
+
+ kernel messages
+
+
+
+
+ random user-level messages
+
+
+
+
+ mail system
+
+
+
+
+ system daemons
+
+
+
+
+ security/authorization messages
+
+
+
+
+ messages generated internally by syslogd
+
+
+
+
+ line printer subsystem
+
+
+
+
+ network news subsystem
+
+
+
+
+ UUCP subsystem
+
+
+
+
+ clock (cron/at) daemon
+
+
+
+
+ security/authorization messages (private)
+
+
+
+
+ ftp daemon
+
+
+
+
+ NTP subsystem
+
+
+
+
+ log audit
+
+
+
+
+ log alert
+
+
+
+
+ clock daemon
+
+
+
+
+ reserved for local use
+
+
+
+
+ reserved for local use
+
+
+
+
+ reserved for local use
+
+
+
+
+ reserved for local use
+
+
+
+
+ reserved for local use
+
+
+
+
+ reserved for local use
+
+
+
+
+ reserved for local use
+
+
+
+
+ reserved for local use
+
+
+
+
+ A class to act as a mapping between the level that a logging call is made at and
+ the syslog severity that is should be logged at.
+
+
+
+ A class to act as a mapping between the level that a logging call is made at and
+ the syslog severity that is should be logged at.
+
+
+
+
+
+ The mapped syslog severity for the specified level
+
+
+
+ Required property.
+ The mapped syslog severity for the specified level
+
+
+
+
+
+ Stores logging events in an array.
+
+
+
+ The memory appender stores all the logging events
+ that are appended in an in-memory array.
+
+
+ Use the method to get
+ the current list of events that have been appended.
+
+
+ Use the method to clear the
+ current list of events.
+
+
+ Julian Biddle
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ Default constructor.
+
+
+
+
+
+ Gets the events that have been logged.
+
+ The events that have been logged
+
+
+ Gets the events that have been logged.
+
+
+
+
+
+ This method is called by the method.
+
+ the event to log
+
+ Stores the in the events list.
+
+
+
+
+ Clear the list of events
+
+
+ Clear the list of events
+
+
+
+
+ The list of events that have been appended.
+
+
+
+
+ Value indicating which fields in the event should be fixed
+
+
+ By default all fields are fixed
+
+
+
+
+ Gets or sets a value indicating whether only part of the logging event
+ data should be fixed.
+
+
+ true if the appender should only fix part of the logging event
+ data, otherwise false. The default is false.
+
+
+
+ Setting this property to true will cause only part of the event
+ data to be fixed and stored in the appender, hereby improving performance.
+
+
+ See for more information.
+
+
+
+
+
+ Gets or sets the fields that will be fixed in the event
+
+
+
+ The logging event needs to have certain thread specific values
+ captured before it can be buffered. See
+ for details.
+
+
+
+
+
+ Logs entries by sending network messages using the
+ native function.
+
+
+
+ You can send messages only to names that are active
+ on the network. If you send the message to a user name,
+ that user must be logged on and running the Messenger
+ service to receive the message.
+
+
+ The receiver will get a top most window displaying the
+ messages one at a time, therefore this appender should
+ not be used to deliver a high volume of messages.
+
+
+ The following table lists some possible uses for this appender :
+
+
+
+
+ Action
+ Property Value(s)
+
+
+ Send a message to a user account on the local machine
+
+
+ = <name of the local machine>
+
+
+ = <user name>
+
+
+
+
+ Send a message to a user account on a remote machine
+
+
+ = <name of the remote machine>
+
+
+ = <user name>
+
+
+
+
+ Send a message to a domain user account
+
+
+ = <name of a domain controller | uninitialized>
+
+
+ = <user name>
+
+
+
+
+ Send a message to all the names in a workgroup or domain
+
+
+ = <workgroup name | domain name>*
+
+
+
+
+ Send a message from the local machine to a remote machine
+
+
+ = <name of the local machine | uninitialized>
+
+
+ = <name of the remote machine>
+
+
+
+
+
+
+ Note : security restrictions apply for sending
+ network messages, see
+ for more information.
+
+
+
+
+ An example configuration section to log information
+ using this appender from the local machine, named
+ LOCAL_PC, to machine OPERATOR_PC :
+
+
+
+
+
+
+
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ The DNS or NetBIOS name of the server on which the function is to execute.
+
+
+
+
+ The sender of the network message.
+
+
+
+
+ The message alias to which the message should be sent.
+
+
+
+
+ The security context to use for privileged calls
+
+
+
+
+ Initializes the appender.
+
+
+ The default constructor initializes all fields to their default values.
+
+
+
+
+ Initialize the appender based on the options set.
+
+
+
+ This is part of the delayed object
+ activation scheme. The method must
+ be called on this object after the configuration properties have
+ been set. Until is called this
+ object is in an undefined state and must not be used.
+
+
+ If any of the configuration properties are modified then
+ must be called again.
+
+
+ The appender will be ignored if no was specified.
+
+
+ The required property was not specified.
+
+
+
+ This method is called by the method.
+
+ The event to log.
+
+
+ Sends the event using a network message.
+
+
+
+
+
+ Sends a buffer of information to a registered message alias.
+
+ The DNS or NetBIOS name of the server on which the function is to execute.
+ The message alias to which the message buffer should be sent
+ The originator of the message.
+ The message text.
+ The length, in bytes, of the message text.
+
+
+ The following restrictions apply for sending network messages:
+
+
+
+
+ Platform
+ Requirements
+
+
+ Windows NT
+
+
+ No special group membership is required to send a network message.
+
+
+ Admin, Accounts, Print, or Server Operator group membership is required to
+ successfully send a network message on a remote server.
+
+
+
+
+ Windows 2000 or later
+
+
+ If you send a message on a domain controller that is running Active Directory,
+ access is allowed or denied based on the access control list (ACL) for the securable
+ object. The default ACL permits only Domain Admins and Account Operators to send a network message.
+
+
+ On a member server or workstation, only Administrators and Server Operators can send a network message.
+
+
+
+
+
+
+ For more information see Security Requirements for the Network Management Functions.
+
+
+
+
+ If the function succeeds, the return value is zero.
+
+
+
+
+
+ Gets or sets the sender of the message.
+
+
+ The sender of the message.
+
+
+ If this property is not specified, the message is sent from the local computer.
+
+
+
+
+ Gets or sets the message alias to which the message should be sent.
+
+
+ The recipient of the message.
+
+
+ This property should always be specified in order to send a message.
+
+
+
+
+ Gets or sets the DNS or NetBIOS name of the remote server on which the function is to execute.
+
+
+ DNS or NetBIOS name of the remote server on which the function is to execute.
+
+
+
+ For Windows NT 4.0 and earlier, the string should begin with \\.
+
+
+ If this property is not specified, the local computer is used.
+
+
+
+
+
+ Gets or sets the used to call the NetSend method.
+
+
+ The used to call the NetSend method.
+
+
+
+ Unless a specified here for this appender
+ the is queried for the
+ security context to use. The default behavior is to use the security context
+ of the current thread.
+
+
+
+
+
+ This appender requires a to be set.
+
+ true
+
+
+ This appender requires a to be set.
+
+
+
+
+
+ Appends log events to the OutputDebugString system.
+
+
+
+ OutputDebugStringAppender appends log events to the
+ OutputDebugString system.
+
+
+ The string is passed to the native OutputDebugString
+ function.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ Default constructor.
+
+
+
+
+
+ Write the logging event to the output debug string API
+
+ the event to log
+
+
+ Write the logging event to the output debug string API
+
+
+
+
+
+ Stub for OutputDebugString native method
+
+ the string to output
+
+
+ Stub for OutputDebugString native method
+
+
+
+
+
+ This appender requires a to be set.
+
+ true
+
+
+ This appender requires a to be set.
+
+
+
+
+
+ Logs events to a remote syslog daemon.
+
+
+
+ The BSD syslog protocol is used to remotely log to
+ a syslog daemon. The syslogd listens for for messages
+ on UDP port 514.
+
+
+ The syslog UDP protocol is not authenticated. Most syslog daemons
+ do not accept remote log messages because of the security implications.
+ You may be able to use the LocalSyslogAppender to talk to a local
+ syslog service.
+
+
+ There is an RFC 3164 that claims to document the BSD Syslog Protocol.
+ This RFC can be seen here: http://www.faqs.org/rfcs/rfc3164.html.
+ This appender generates what the RFC calls an "Original Device Message",
+ i.e. does not include the TIMESTAMP or HOSTNAME fields. By observation
+ this format of message will be accepted by all current syslog daemon
+ implementations. The daemon will attach the current time and the source
+ hostname or IP address to any messages received.
+
+
+ Syslog messages must have a facility and and a severity. The severity
+ is derived from the Level of the logging event.
+ The facility must be chosen from the set of defined syslog
+ values. The facilities list is predefined
+ and cannot be extended.
+
+
+ An identifier is specified with each log message. This can be specified
+ by setting the property. The identity (also know
+ as the tag) must not contain white space. The default value for the
+ identity is the application name (from ).
+
+
+ Rob Lyon
+ Nicko Cadell
+
+
+
+ Sends logging events as connectionless UDP datagrams to a remote host or a
+ multicast group using an .
+
+
+
+ UDP guarantees neither that messages arrive, nor that they arrive in the correct order.
+
+
+ To view the logging results, a custom application can be developed that listens for logging
+ events.
+
+
+ When decoding events send via this appender remember to use the same encoding
+ to decode the events as was used to send the events. See the
+ property to specify the encoding to use.
+
+
+
+ This example shows how to log receive logging events that are sent
+ on IP address 244.0.0.1 and port 8080 to the console. The event is
+ encoded in the packet as a unicode string and it is decoded as such.
+
+ IPEndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any, 0);
+ UdpClient udpClient;
+ byte[] buffer;
+ string loggingEvent;
+
+ try
+ {
+ udpClient = new UdpClient(8080);
+
+ while(true)
+ {
+ buffer = udpClient.Receive(ref remoteEndPoint);
+ loggingEvent = System.Text.Encoding.Unicode.GetString(buffer);
+ Console.WriteLine(loggingEvent);
+ }
+ }
+ catch(Exception e)
+ {
+ Console.WriteLine(e.ToString());
+ }
+
+
+ Dim remoteEndPoint as IPEndPoint
+ Dim udpClient as UdpClient
+ Dim buffer as Byte()
+ Dim loggingEvent as String
+
+ Try
+ remoteEndPoint = new IPEndPoint(IPAddress.Any, 0)
+ udpClient = new UdpClient(8080)
+
+ While True
+ buffer = udpClient.Receive(ByRef remoteEndPoint)
+ loggingEvent = System.Text.Encoding.Unicode.GetString(buffer)
+ Console.WriteLine(loggingEvent)
+ Wend
+ Catch e As Exception
+ Console.WriteLine(e.ToString())
+ End Try
+
+
+ An example configuration section to log information using this appender to the
+ IP 224.0.0.1 on port 8080:
+
+
+
+
+
+
+
+
+
+ Gert Driesen
+ Nicko Cadell
+
+
+
+ Initializes a new instance of the class.
+
+
+ The default constructor initializes all fields to their default values.
+
+
+
+
+ Initialize the appender based on the options set.
+
+
+
+ This is part of the delayed object
+ activation scheme. The method must
+ be called on this object after the configuration properties have
+ been set. Until is called this
+ object is in an undefined state and must not be used.
+
+
+ If any of the configuration properties are modified then
+ must be called again.
+
+
+ The appender will be ignored if no was specified or
+ an invalid remote or local TCP port number was specified.
+
+
+ The required property was not specified.
+ The TCP port number assigned to or is less than or greater than .
+
+
+
+ This method is called by the method.
+
+ The event to log.
+
+
+ Sends the event using an UDP datagram.
+
+
+ Exceptions are passed to the .
+
+
+
+
+
+ Closes the UDP connection and releases all resources associated with
+ this instance.
+
+
+
+ Disables the underlying and releases all managed
+ and unmanaged resources associated with the .
+
+
+
+
+
+ Initializes the underlying connection.
+
+
+
+ The underlying is initialized and binds to the
+ port number from which you intend to communicate.
+
+
+ Exceptions are passed to the .
+
+
+
+
+
+ The IP address of the remote host or multicast group to which
+ the logging event will be sent.
+
+
+
+
+ The TCP port number of the remote host or multicast group to
+ which the logging event will be sent.
+
+
+
+
+ The cached remote endpoint to which the logging events will be sent.
+
+
+
+
+ The TCP port number from which the will communicate.
+
+
+
+
+ The instance that will be used for sending the
+ logging events.
+
+
+
+
+ The encoding to use for the packet.
+
+
+
+
+ Gets or sets the IP address of the remote host or multicast group to which
+ the underlying should sent the logging event.
+
+
+ The IP address of the remote host or multicast group to which the logging event
+ will be sent.
+
+
+
+ Multicast addresses are identified by IP class D addresses (in the range 224.0.0.0 to
+ 239.255.255.255). Multicast packets can pass across different networks through routers, so
+ it is possible to use multicasts in an Internet scenario as long as your network provider
+ supports multicasting.
+
+
+ Hosts that want to receive particular multicast messages must register their interest by joining
+ the multicast group. Multicast messages are not sent to networks where no host has joined
+ the multicast group. Class D IP addresses are used for multicast groups, to differentiate
+ them from normal host addresses, allowing nodes to easily detect if a message is of interest.
+
+
+ Static multicast addresses that are needed globally are assigned by IANA. A few examples are listed in the table below:
+
+
+
+
+ IP Address
+ Description
+
+
+ 224.0.0.1
+
+
+ Sends a message to all system on the subnet.
+
+
+
+
+ 224.0.0.2
+
+
+ Sends a message to all routers on the subnet.
+
+
+
+
+ 224.0.0.12
+
+
+ The DHCP server answers messages on the IP address 224.0.0.12, but only on a subnet.
+
+
+
+
+
+
+ A complete list of actually reserved multicast addresses and their owners in the ranges
+ defined by RFC 3171 can be found at the IANA web site.
+
+
+ The address range 239.0.0.0 to 239.255.255.255 is reserved for administrative scope-relative
+ addresses. These addresses can be reused with other local groups. Routers are typically
+ configured with filters to prevent multicast traffic in this range from flowing outside
+ of the local network.
+
+
+
+
+
+ Gets or sets the TCP port number of the remote host or multicast group to which
+ the underlying should sent the logging event.
+
+
+ An integer value in the range to
+ indicating the TCP port number of the remote host or multicast group to which the logging event
+ will be sent.
+
+
+ The underlying will send messages to this TCP port number
+ on the remote host or multicast group.
+
+ The value specified is less than or greater than .
+
+
+
+ Gets or sets the TCP port number from which the underlying will communicate.
+
+
+ An integer value in the range to
+ indicating the TCP port number from which the underlying will communicate.
+
+
+
+ The underlying will bind to this port for sending messages.
+
+
+ Setting the value to 0 (the default) will cause the udp client not to bind to
+ a local port.
+
+
+ The value specified is less than or greater than .
+
+
+
+ Gets or sets used to write the packets.
+
+
+ The used to write the packets.
+
+
+
+ The used to write the packets.
+
+
+
+
+
+ Gets or sets the underlying .
+
+
+ The underlying .
+
+
+ creates a to send logging events
+ over a network. Classes deriving from can use this
+ property to get or set this . Use the underlying
+ returned from if you require access beyond that which
+ provides.
+
+
+
+
+ Gets or sets the cached remote endpoint to which the logging events should be sent.
+
+
+ The cached remote endpoint to which the logging events will be sent.
+
+
+ The method will initialize the remote endpoint
+ with the values of the and
+ properties.
+
+
+
+
+ This appender requires a to be set.
+
+ true
+
+
+ This appender requires a to be set.
+
+
+
+
+
+ Syslog port 514
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ This instance of the class is set up to write
+ to a remote syslog daemon.
+
+
+
+
+ Add a mapping of level to severity
+
+ The mapping to add
+
+
+ Add a mapping to this appender.
+
+
+
+
+
+ This method is called by the method.
+
+ The event to log.
+
+
+ Writes the event to a remote syslog daemon.
+
+
+ The format of the output will depend on the appender's layout.
+
+
+
+
+
+ Initialize the options for this appender
+
+
+
+ Initialize the level to syslog severity mappings set on this appender.
+
+
+
+
+
+ Translates a log4net level to a syslog severity.
+
+ A log4net level.
+ A syslog severity.
+
+
+ Translates a log4net level to a syslog severity.
+
+
+
+
+
+ Generate a syslog priority.
+
+ The syslog facility.
+ The syslog severity.
+ A syslog priority.
+
+
+ Generate a syslog priority.
+
+
+
+
+
+ The facility. The default facility is .
+
+
+
+
+ The message identity
+
+
+
+
+ Mapping from level object to syslog severity
+
+
+
+
+ Message identity
+
+
+
+ An identifier is specified with each log message. This can be specified
+ by setting the property. The identity (also know
+ as the tag) must not contain white space. The default value for the
+ identity is the application name (from ).
+
+
+
+
+
+ Syslog facility
+
+
+ Set to one of the values. The list of
+ facilities is predefined and cannot be extended. The default value
+ is .
+
+
+
+
+ syslog severities
+
+
+
+ The syslog severities.
+
+
+
+
+
+ system is unusable
+
+
+
+
+ action must be taken immediately
+
+
+
+
+ critical conditions
+
+
+
+
+ error conditions
+
+
+
+
+ warning conditions
+
+
+
+
+ normal but significant condition
+
+
+
+
+ informational
+
+
+
+
+ debug-level messages
+
+
+
+
+ syslog facilities
+
+
+
+ The syslog facilities
+
+
+
+
+
+ kernel messages
+
+
+
+
+ random user-level messages
+
+
+
+
+ mail system
+
+
+
+
+ system daemons
+
+
+
+
+ security/authorization messages
+
+
+
+
+ messages generated internally by syslogd
+
+
+
+
+ line printer subsystem
+
+
+
+
+ network news subsystem
+
+
+
+
+ UUCP subsystem
+
+
+
+
+ clock (cron/at) daemon
+
+
+
+
+ security/authorization messages (private)
+
+
+
+
+ ftp daemon
+
+
+
+
+ NTP subsystem
+
+
+
+
+ log audit
+
+
+
+
+ log alert
+
+
+
+
+ clock daemon
+
+
+
+
+ reserved for local use
+
+
+
+
+ reserved for local use
+
+
+
+
+ reserved for local use
+
+
+
+
+ reserved for local use
+
+
+
+
+ reserved for local use
+
+
+
+
+ reserved for local use
+
+
+
+
+ reserved for local use
+
+
+
+
+ reserved for local use
+
+
+
+
+ A class to act as a mapping between the level that a logging call is made at and
+ the syslog severity that is should be logged at.
+
+
+
+ A class to act as a mapping between the level that a logging call is made at and
+ the syslog severity that is should be logged at.
+
+
+
+
+
+ The mapped syslog severity for the specified level
+
+
+
+ Required property.
+ The mapped syslog severity for the specified level
+
+
+
+
+
+ Delivers logging events to a remote logging sink.
+
+
+
+ This Appender is designed to deliver events to a remote sink.
+ That is any object that implements the
+ interface. It delivers the events using .NET remoting. The
+ object to deliver events to is specified by setting the
+ appenders property.
+
+ The RemotingAppender buffers events before sending them. This allows it to
+ make more efficient use of the remoting infrastructure.
+
+ Once the buffer is full the events are still not sent immediately.
+ They are scheduled to be sent using a pool thread. The effect is that
+ the send occurs asynchronously. This is very important for a
+ number of non obvious reasons. The remoting infrastructure will
+ flow thread local variables (stored in the ),
+ if they are marked as , across the
+ remoting boundary. If the server is not contactable then
+ the remoting infrastructure will clear the
+ objects from the . To prevent a logging failure from
+ having side effects on the calling application the remoting call must be made
+ from a separate thread to the one used by the application. A
+ thread is used for this. If no thread is available then
+ the events will block in the thread pool manager until a thread is available.
+
+ Because the events are sent asynchronously using pool threads it is possible to close
+ this appender before all the queued events have been sent.
+ When closing the appender attempts to wait until all the queued events have been sent, but
+ this will timeout after 30 seconds regardless.
+
+ If this appender is being closed because the
+ event has fired it may not be possible to send all the queued events. During process
+ exit the runtime limits the time that a
+ event handler is allowed to run for. If the runtime terminates the threads before
+ the queued events have been sent then they will be lost. To ensure that all events
+ are sent the appender must be closed before the application exits. See
+ for details on how to shutdown
+ log4net programmatically.
+
+
+ Nicko Cadell
+ Gert Driesen
+ Daniel Cazzulino
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ Default constructor.
+
+
+
+
+
+ Initialize the appender based on the options set
+
+
+
+ This is part of the delayed object
+ activation scheme. The method must
+ be called on this object after the configuration properties have
+ been set. Until is called this
+ object is in an undefined state and must not be used.
+
+
+ If any of the configuration properties are modified then
+ must be called again.
+
+
+
+
+
+ Send the contents of the buffer to the remote sink.
+
+
+ The events are not sent immediately. They are scheduled to be sent
+ using a pool thread. The effect is that the send occurs asynchronously.
+ This is very important for a number of non obvious reasons. The remoting
+ infrastructure will flow thread local variables (stored in the ),
+ if they are marked as , across the
+ remoting boundary. If the server is not contactable then
+ the remoting infrastructure will clear the
+ objects from the . To prevent a logging failure from
+ having side effects on the calling application the remoting call must be made
+ from a separate thread to the one used by the application. A
+ thread is used for this. If no thread is available then
+ the events will block in the thread pool manager until a thread is available.
+
+ The events to send.
+
+
+
+ Override base class close.
+
+
+
+ This method waits while there are queued work items. The events are
+ sent asynchronously using work items. These items
+ will be sent once a thread pool thread is available to send them, therefore
+ it is possible to close the appender before all the queued events have been
+ sent.
+
+ This method attempts to wait until all the queued events have been sent, but this
+ method will timeout after 30 seconds regardless.
+
+ If the appender is being closed because the
+ event has fired it may not be possible to send all the queued events. During process
+ exit the runtime limits the time that a
+ event handler is allowed to run for.
+
+
+
+
+ A work item is being queued into the thread pool
+
+
+
+
+ A work item from the thread pool has completed
+
+
+
+
+ Send the contents of the buffer to the remote sink.
+
+
+ This method is designed to be used with the .
+ This method expects to be passed an array of
+ objects in the state param.
+
+ the logging events to send
+
+
+
+ The URL of the remote sink.
+
+
+
+
+ The local proxy (.NET remoting) for the remote logging sink.
+
+
+
+
+ The number of queued callbacks currently waiting or executing
+
+
+
+
+ Event used to signal when there are no queued work items
+
+
+ This event is set when there are no queued work items. In this
+ state it is safe to close the appender.
+
+
+
+
+ Gets or sets the URL of the well-known object that will accept
+ the logging events.
+
+
+ The well-known URL of the remote sink.
+
+
+
+ The URL of the remoting sink that will accept logging events.
+ The sink must implement the
+ interface.
+
+
+
+
+
+ Interface used to deliver objects to a remote sink.
+
+
+ This interface must be implemented by a remoting sink
+ if the is to be used
+ to deliver logging events to the sink.
+
+
+
+
+ Delivers logging events to the remote sink
+
+ Array of events to log.
+
+
+ Delivers logging events to the remote sink
+
+
+
+
+
+ Appender that rolls log files based on size or date or both.
+
+
+
+ RollingFileAppender can roll log files based on size or date or both
+ depending on the setting of the property.
+ When set to the log file will be rolled
+ once its size exceeds the .
+ When set to the log file will be rolled
+ once the date boundary specified in the property
+ is crossed.
+ When set to the log file will be
+ rolled once the date boundary specified in the property
+ is crossed, but within a date boundary the file will also be rolled
+ once its size exceeds the .
+ When set to the log file will be rolled when
+ the appender is configured. This effectively means that the log file can be
+ rolled once per program execution.
+
+
+ A of few additional optional features have been added:
+
+ Attach date pattern for current log file
+ Backup number increments for newer files
+ Infinite number of backups by file size
+
+
+
+
+
+ For large or infinite numbers of backup files a
+ greater than zero is highly recommended, otherwise all the backup files need
+ to be renamed each time a new backup is created.
+
+
+ When Date/Time based rolling is used setting
+ to will reduce the number of file renamings to few or none.
+
+
+
+
+
+ Changing or without clearing
+ the log file directory of backup files will cause unexpected and unwanted side effects.
+
+
+
+
+ If Date/Time based rolling is enabled this appender will attempt to roll existing files
+ in the directory without a Date/Time tag based on the last write date of the base log file.
+ The appender only rolls the log file when a message is logged. If Date/Time based rolling
+ is enabled then the appender will not roll the log file at the Date/Time boundary but
+ at the point when the next message is logged after the boundary has been crossed.
+
+
+
+ The extends the and
+ has the same behavior when opening the log file.
+ The appender will first try to open the file for writing when
+ is called. This will typically be during configuration.
+ If the file cannot be opened for writing the appender will attempt
+ to open the file again each time a message is logged to the appender.
+ If the file cannot be opened for writing when a message is logged then
+ the message will be discarded by this appender.
+
+
+ When rolling a backup file necessitates deleting an older backup file the
+ file to be deleted is moved to a temporary name before being deleted.
+
+
+
+
+ A maximum number of backup files when rolling on date/time boundaries is not supported.
+
+
+
+ Nicko Cadell
+ Gert Driesen
+ Aspi Havewala
+ Douglas de la Torre
+ Edward Smit
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ Default constructor.
+
+
+
+
+
+ Sets the quiet writer being used.
+
+
+ This method can be overridden by sub classes.
+
+ the writer to set
+
+
+
+ Write out a logging event.
+
+ the event to write to file.
+
+
+ Handles append time behavior for RollingFileAppender. This checks
+ if a roll over either by date (checked first) or time (checked second)
+ is need and then appends to the file last.
+
+
+
+
+
+ Write out an array of logging events.
+
+ the events to write to file.
+
+
+ Handles append time behavior for RollingFileAppender. This checks
+ if a roll over either by date (checked first) or time (checked second)
+ is need and then appends to the file last.
+
+
+
+
+
+ Performs any required rolling before outputting the next event
+
+
+
+ Handles append time behavior for RollingFileAppender. This checks
+ if a roll over either by date (checked first) or time (checked second)
+ is need and then appends to the file last.
+
+
+
+
+
+ Creates and opens the file for logging. If
+ is false then the fully qualified name is determined and used.
+
+ the name of the file to open
+ true to append to existing file
+
+ This method will ensure that the directory structure
+ for the specified exists.
+
+
+
+
+ Get the current output file name
+
+ the base file name
+ the output file name
+
+ The output file name is based on the base fileName specified.
+ If is set then the output
+ file name is the same as the base file passed in. Otherwise
+ the output file depends on the date pattern, on the count
+ direction or both.
+
+
+
+
+ Determines curSizeRollBackups (only within the current roll point)
+
+
+
+
+ Generates a wildcard pattern that can be used to find all files
+ that are similar to the base file name.
+
+
+
+
+
+
+ Builds a list of filenames for all files matching the base filename plus a file
+ pattern.
+
+
+
+
+
+
+ Initiates a roll over if needed for crossing a date boundary since the last run.
+
+
+
+
+ Initializes based on existing conditions at time of .
+
+
+
+ Initializes based on existing conditions at time of .
+ The following is done
+
+ determine curSizeRollBackups (only within the current roll point)
+ initiates a roll over if needed for crossing a date boundary since the last run.
+
+
+
+
+
+
+ Does the work of bumping the 'current' file counter higher
+ to the highest count when an incremental file name is seen.
+ The highest count is either the first file (when count direction
+ is greater than 0) or the last file (when count direction less than 0).
+ In either case, we want to know the highest count that is present.
+
+
+
+
+
+
+ Takes a list of files and a base file name, and looks for
+ 'incremented' versions of the base file. Bumps the max
+ count up to the highest count seen.
+
+
+
+
+
+
+ Calculates the RollPoint for the datePattern supplied.
+
+ the date pattern to calculate the check period for
+ The RollPoint that is most accurate for the date pattern supplied
+
+ Essentially the date pattern is examined to determine what the
+ most suitable roll point is. The roll point chosen is the roll point
+ with the smallest period that can be detected using the date pattern
+ supplied. i.e. if the date pattern only outputs the year, month, day
+ and hour then the smallest roll point that can be detected would be
+ and hourly roll point as minutes could not be detected.
+
+
+
+
+ Initialize the appender based on the options set
+
+
+
+ This is part of the delayed object
+ activation scheme. The method must
+ be called on this object after the configuration properties have
+ been set. Until is called this
+ object is in an undefined state and must not be used.
+
+
+ If any of the configuration properties are modified then
+ must be called again.
+
+
+ Sets initial conditions including date/time roll over information, first check,
+ scheduledFilename, and calls to initialize
+ the current number of backups.
+
+
+
+
+
+ Rollover the file(s) to date/time tagged file(s).
+
+ set to true if the file to be rolled is currently open
+
+
+ Rollover the file(s) to date/time tagged file(s).
+ Resets curSizeRollBackups.
+ If fileIsOpen is set then the new file is opened (through SafeOpenFile).
+
+
+
+
+
+ Renames file to file .
+
+ Name of existing file to roll.
+ New name for file.
+
+
+ Renames file to file . It
+ also checks for existence of target file and deletes if it does.
+
+
+
+
+
+ Test if a file exists at a specified path
+
+ the path to the file
+ true if the file exists
+
+
+ Test if a file exists at a specified path
+
+
+
+
+
+ Deletes the specified file if it exists.
+
+ The file to delete.
+
+
+ Delete a file if is exists.
+ The file is first moved to a new filename then deleted.
+ This allows the file to be removed even when it cannot
+ be deleted, but it still can be moved.
+
+
+
+
+
+ Implements file roll base on file size.
+
+
+
+ If the maximum number of size based backups is reached
+ (curSizeRollBackups == maxSizeRollBackups) then the oldest
+ file is deleted -- its index determined by the sign of countDirection.
+ If countDirection < 0, then files
+ {File.1, ..., File.curSizeRollBackups -1}
+ are renamed to {File.2, ...,
+ File.curSizeRollBackups}. Moreover, File is
+ renamed File.1 and closed.
+
+
+ A new file is created to receive further log output.
+
+
+ If maxSizeRollBackups is equal to zero, then the
+ File is truncated with no backup files created.
+
+
+ If maxSizeRollBackups < 0, then File is
+ renamed if needed and no files are deleted.
+
+
+
+
+
+ Implements file roll.
+
+ the base name to rename
+
+
+ If the maximum number of size based backups is reached
+ (curSizeRollBackups == maxSizeRollBackups) then the oldest
+ file is deleted -- its index determined by the sign of countDirection.
+ If countDirection < 0, then files
+ {File.1, ..., File.curSizeRollBackups -1}
+ are renamed to {File.2, ...,
+ File.curSizeRollBackups}.
+
+
+ If maxSizeRollBackups is equal to zero, then the
+ File is truncated with no backup files created.
+
+
+ If maxSizeRollBackups < 0, then File is
+ renamed if needed and no files are deleted.
+
+
+ This is called by to rename the files.
+
+
+
+
+
+ Get the start time of the next window for the current rollpoint
+
+ the current date
+ the type of roll point we are working with
+ the start time for the next roll point an interval after the currentDateTime date
+
+
+ Returns the date of the next roll point after the currentDateTime date passed to the method.
+
+
+ The basic strategy is to subtract the time parts that are less significant
+ than the rollpoint from the current time. This should roll the time back to
+ the start of the time window for the current rollpoint. Then we add 1 window
+ worth of time and get the start time of the next window for the rollpoint.
+
+
+
+
+
+ This object supplies the current date/time. Allows test code to plug in
+ a method to control this class when testing date/time based rolling.
+
+
+
+
+ The date pattern. By default, the pattern is set to ".yyyy-MM-dd"
+ meaning daily rollover.
+
+
+
+
+ The actual formatted filename that is currently being written to
+ or will be the file transferred to on roll over
+ (based on staticLogFileName).
+
+
+
+
+ The timestamp when we shall next recompute the filename.
+
+
+
+
+ Holds date of last roll over
+
+
+
+
+ The type of rolling done
+
+
+
+
+ The default maximum file size is 10MB
+
+
+
+
+ There is zero backup files by default
+
+
+
+
+ How many sized based backups have been made so far
+
+
+
+
+ The rolling file count direction.
+
+
+
+
+ The rolling mode used in this appender.
+
+
+
+
+ Cache flag set if we are rolling by date.
+
+
+
+
+ Cache flag set if we are rolling by size.
+
+
+
+
+ Value indicating whether to always log to the same file.
+
+
+
+
+ FileName provided in configuration. Used for rolling properly
+
+
+
+
+ The 1st of January 1970 in UTC
+
+
+
+
+ Gets or sets the date pattern to be used for generating file names
+ when rolling over on date.
+
+
+ The date pattern to be used for generating file names when rolling
+ over on date.
+
+
+
+ Takes a string in the same format as expected by
+ .
+
+
+ This property determines the rollover schedule when rolling over
+ on date.
+
+
+
+
+
+ Gets or sets the maximum number of backup files that are kept before
+ the oldest is erased.
+
+
+ The maximum number of backup files that are kept before the oldest is
+ erased.
+
+
+
+ If set to zero, then there will be no backup files and the log file
+ will be truncated when it reaches .
+
+
+ If a negative number is supplied then no deletions will be made. Note
+ that this could result in very slow performance as a large number of
+ files are rolled over unless is used.
+
+
+ The maximum applies to each time based group of files and
+ not the total.
+
+
+
+
+
+ Gets or sets the maximum size that the output file is allowed to reach
+ before being rolled over to backup files.
+
+
+ The maximum size in bytes that the output file is allowed to reach before being
+ rolled over to backup files.
+
+
+
+ This property is equivalent to except
+ that it is required for differentiating the setter taking a
+ argument from the setter taking a
+ argument.
+
+
+ The default maximum file size is 10MB (10*1024*1024).
+
+
+
+
+
+ Gets or sets the maximum size that the output file is allowed to reach
+ before being rolled over to backup files.
+
+
+ The maximum size that the output file is allowed to reach before being
+ rolled over to backup files.
+
+
+
+ This property allows you to specify the maximum size with the
+ suffixes "KB", "MB" or "GB" so that the size is interpreted being
+ expressed respectively in kilobytes, megabytes or gigabytes.
+
+
+ For example, the value "10KB" will be interpreted as 10240 bytes.
+
+
+ The default maximum file size is 10MB.
+
+
+ If you have the option to set the maximum file size programmatically
+ consider using the property instead as this
+ allows you to set the size in bytes as a .
+
+
+
+
+
+ Gets or sets the rolling file count direction.
+
+
+ The rolling file count direction.
+
+
+
+ Indicates if the current file is the lowest numbered file or the
+ highest numbered file.
+
+
+ By default newer files have lower numbers ( < 0),
+ i.e. log.1 is most recent, log.5 is the 5th backup, etc...
+
+
+ >= 0 does the opposite i.e.
+ log.1 is the first backup made, log.5 is the 5th backup made, etc.
+ For infinite backups use >= 0 to reduce
+ rollover costs.
+
+ The default file count direction is -1.
+
+
+
+
+ Gets or sets the rolling style.
+
+ The rolling style.
+
+
+ The default rolling style is .
+
+
+ When set to this appender's
+ property is set to false, otherwise
+ the appender would append to a single file rather than rolling
+ the file each time it is opened.
+
+
+
+
+
+ Gets or sets a value indicating whether to always log to
+ the same file.
+
+
+ true if always should be logged to the same file, otherwise false.
+
+
+
+ By default file.log is always the current file. Optionally
+ file.log.yyyy-mm-dd for current formatted datePattern can by the currently
+ logging file (or file.log.curSizeRollBackup or even
+ file.log.yyyy-mm-dd.curSizeRollBackup).
+
+
+ This will make time based rollovers with a large number of backups
+ much faster as the appender it won't have to rename all the backups!
+
+
+
+
+
+ Style of rolling to use
+
+
+
+ Style of rolling to use
+
+
+
+
+
+ Roll files once per program execution
+
+
+
+ Roll files once per program execution.
+ Well really once each time this appender is
+ configured.
+
+
+ Setting this option also sets AppendToFile to
+ false on the RollingFileAppender, otherwise
+ this appender would just be a normal file appender.
+
+
+
+
+
+ Roll files based only on the size of the file
+
+
+
+
+ Roll files based only on the date
+
+
+
+
+ Roll files based on both the size and date of the file
+
+
+
+
+ The code assumes that the following 'time' constants are in a increasing sequence.
+
+
+
+ The code assumes that the following 'time' constants are in a increasing sequence.
+
+
+
+
+
+ Roll the log not based on the date
+
+
+
+
+ Roll the log for each minute
+
+
+
+
+ Roll the log for each hour
+
+
+
+
+ Roll the log twice a day (midday and midnight)
+
+
+
+
+ Roll the log each day (midnight)
+
+
+
+
+ Roll the log each week
+
+
+
+
+ Roll the log each month
+
+
+
+
+ This interface is used to supply Date/Time information to the .
+
+
+ This interface is used to supply Date/Time information to the .
+ Used primarily to allow test classes to plug themselves in so they can
+ supply test date/times.
+
+
+
+
+ Gets the current time.
+
+ The current time.
+
+
+ Gets the current time.
+
+
+
+
+
+ Default implementation of that returns the current time.
+
+
+
+
+ Gets the current time.
+
+ The current time.
+
+
+ Gets the current time.
+
+
+
+
+
+ Send an e-mail when a specific logging event occurs, typically on errors
+ or fatal errors.
+
+
+
+ The number of logging events delivered in this e-mail depend on
+ the value of option. The
+ keeps only the last
+ logging events in its
+ cyclic buffer. This keeps memory requirements at a reasonable level while
+ still delivering useful application context.
+
+
+ Authentication and setting the server Port are only available on the MS .NET 1.1 runtime.
+ For these features to be enabled you need to ensure that you are using a version of
+ the log4net assembly that is built against the MS .NET 1.1 framework and that you are
+ running the your application on the MS .NET 1.1 runtime. On all other platforms only sending
+ unauthenticated messages to a server listening on port 25 (the default) is supported.
+
+
+ Authentication is supported by setting the property to
+ either or .
+ If using authentication then the
+ and properties must also be set.
+
+
+ To set the SMTP server port use the property. The default port is 25.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Default constructor
+
+
+
+ Default constructor
+
+
+
+
+
+ Sends the contents of the cyclic buffer as an e-mail message.
+
+ The logging events to send.
+
+
+
+ Send the email message
+
+ the body text to include in the mail
+
+
+
+ Gets or sets a semicolon-delimited list of recipient e-mail addresses.
+
+
+ A semicolon-delimited list of e-mail addresses.
+
+
+
+ A semicolon-delimited list of recipient e-mail addresses.
+
+
+
+
+
+ Gets or sets the e-mail address of the sender.
+
+
+ The e-mail address of the sender.
+
+
+
+ The e-mail address of the sender.
+
+
+
+
+
+ Gets or sets the subject line of the e-mail message.
+
+
+ The subject line of the e-mail message.
+
+
+
+ The subject line of the e-mail message.
+
+
+
+
+
+ Gets or sets the name of the SMTP relay mail server to use to send
+ the e-mail messages.
+
+
+ The name of the e-mail relay server. If SmtpServer is not set, the
+ name of the local SMTP server is used.
+
+
+
+ The name of the e-mail relay server. If SmtpServer is not set, the
+ name of the local SMTP server is used.
+
+
+
+
+
+ Obsolete
+
+
+ Use the BufferingAppenderSkeleton Fix methods instead
+
+
+
+ Obsolete property.
+
+
+
+
+
+ The mode to use to authentication with the SMTP server
+
+
+ Authentication is only available on the MS .NET 1.1 runtime.
+
+ Valid Authentication mode values are: ,
+ , and .
+ The default value is . When using
+ you must specify the
+ and to use to authenticate.
+ When using the Windows credentials for the current
+ thread, if impersonating, or the process will be used to authenticate.
+
+
+
+
+
+ The username to use to authenticate with the SMTP server
+
+
+ Authentication is only available on the MS .NET 1.1 runtime.
+
+ A and must be specified when
+ is set to ,
+ otherwise the username will be ignored.
+
+
+
+
+
+ The password to use to authenticate with the SMTP server
+
+
+ Authentication is only available on the MS .NET 1.1 runtime.
+
+ A and must be specified when
+ is set to ,
+ otherwise the password will be ignored.
+
+
+
+
+
+ The port on which the SMTP server is listening
+
+
+ Server Port is only available on the MS .NET 1.1 runtime.
+
+ The port on which the SMTP server is listening. The default
+ port is 25. The Port can only be changed when running on
+ the MS .NET 1.1 runtime.
+
+
+
+
+
+ Gets or sets the priority of the e-mail message
+
+
+ One of the values.
+
+
+
+ Sets the priority of the e-mails generated by this
+ appender. The default priority is .
+
+
+ If you are using this appender to report errors then
+ you may want to set the priority to .
+
+
+
+
+
+ This appender requires a to be set.
+
+ true
+
+
+ This appender requires a to be set.
+
+
+
+
+
+ Values for the property.
+
+
+
+ SMTP authentication modes.
+
+
+
+
+
+ No authentication
+
+
+
+
+ Basic authentication.
+
+
+ Requires a username and password to be supplied
+
+
+
+
+ Integrated authentication
+
+
+ Uses the Windows credentials from the current thread or process to authenticate.
+
+
+
+
+ Send an email when a specific logging event occurs, typically on errors
+ or fatal errors. Rather than sending via smtp it writes a file into the
+ directory specified by . This allows services such
+ as the IIS SMTP agent to manage sending the messages.
+
+
+
+ The configuration for this appender is identical to that of the SMTPAppender,
+ except that instead of specifying the SMTPAppender.SMTPHost you specify
+ .
+
+
+ The number of logging events delivered in this e-mail depend on
+ the value of option. The
+ keeps only the last
+ logging events in its
+ cyclic buffer. This keeps memory requirements at a reasonable level while
+ still delivering useful application context.
+
+
+ Niall Daley
+ Nicko Cadell
+
+
+
+ Default constructor
+
+
+
+ Default constructor
+
+
+
+
+
+ Sends the contents of the cyclic buffer as an e-mail message.
+
+ The logging events to send.
+
+
+ Sends the contents of the cyclic buffer as an e-mail message.
+
+
+
+
+
+ Activate the options on this appender.
+
+
+
+ This is part of the delayed object
+ activation scheme. The method must
+ be called on this object after the configuration properties have
+ been set. Until is called this
+ object is in an undefined state and must not be used.
+
+
+ If any of the configuration properties are modified then
+ must be called again.
+
+
+
+
+
+ Convert a path into a fully qualified path.
+
+ The path to convert.
+ The fully qualified path.
+
+
+ Converts the path specified to a fully
+ qualified path. If the path is relative it is
+ taken as relative from the application base
+ directory.
+
+
+
+
+
+ The security context to use for privileged calls
+
+
+
+
+ Gets or sets a semicolon-delimited list of recipient e-mail addresses.
+
+
+ A semicolon-delimited list of e-mail addresses.
+
+
+
+ A semicolon-delimited list of e-mail addresses.
+
+
+
+
+
+ Gets or sets the e-mail address of the sender.
+
+
+ The e-mail address of the sender.
+
+
+
+ The e-mail address of the sender.
+
+
+
+
+
+ Gets or sets the subject line of the e-mail message.
+
+
+ The subject line of the e-mail message.
+
+
+
+ The subject line of the e-mail message.
+
+
+
+
+
+ Gets or sets the path to write the messages to.
+
+
+
+ Gets or sets the path to write the messages to. This should be the same
+ as that used by the agent sending the messages.
+
+
+
+
+
+ Gets or sets the used to write to the pickup directory.
+
+
+ The used to write to the pickup directory.
+
+
+
+ Unless a specified here for this appender
+ the is queried for the
+ security context to use. The default behavior is to use the security context
+ of the current thread.
+
+
+
+
+
+ This appender requires a to be set.
+
+ true
+
+
+ This appender requires a to be set.
+
+
+
+
+
+ Appender that allows clients to connect via Telnet to receive log messages
+
+
+
+ The TelnetAppender accepts socket connections and streams logging messages
+ back to the client.
+ The output is provided in a telnet-friendly way so that a log can be monitored
+ over a TCP/IP socket.
+ This allows simple remote monitoring of application logging.
+
+
+ The default is 23 (the telnet port).
+
+
+ Keith Long
+ Nicko Cadell
+
+
+
+ Default constructor
+
+
+
+ Default constructor
+
+
+
+
+
+ Overrides the parent method to close the socket handler
+
+
+
+ Closes all the outstanding connections.
+
+
+
+
+
+ Initialize the appender based on the options set.
+
+
+
+ This is part of the delayed object
+ activation scheme. The method must
+ be called on this object after the configuration properties have
+ been set. Until is called this
+ object is in an undefined state and must not be used.
+
+
+ If any of the configuration properties are modified then
+ must be called again.
+
+
+ Create the socket handler and wait for connections
+
+
+
+
+
+ Writes the logging event to each connected client.
+
+ The event to log.
+
+
+ Writes the logging event to each connected client.
+
+
+
+
+
+ Gets or sets the TCP port number on which this will listen for connections.
+
+
+ An integer value in the range to
+ indicating the TCP port number on which this will listen for connections.
+
+
+
+ The default value is 23 (the telnet port).
+
+
+ The value specified is less than
+ or greater than .
+
+
+
+ This appender requires a to be set.
+
+ true
+
+
+ This appender requires a to be set.
+
+
+
+
+
+ Helper class to manage connected clients
+
+
+
+ The SocketHandler class is used to accept connections from
+ clients. It is threaded so that clients can connect/disconnect
+ asynchronously.
+
+
+
+
+
+ Opens a new server port on
+
+ the local port to listen on for connections
+
+
+ Creates a socket handler on the specified local server port.
+
+
+
+
+
+ Sends a string message to each of the connected clients
+
+ the text to send
+
+
+ Sends a string message to each of the connected clients
+
+
+
+
+
+ Add a client to the internal clients list
+
+ client to add
+
+
+
+ Remove a client from the internal clients list
+
+ client to remove
+
+
+
+ Callback used to accept a connection on the server socket
+
+ The result of the asynchronous operation
+
+
+ On connection adds to the list of connections
+ if there are two many open connections you will be disconnected
+
+
+
+
+
+ Close all network connections
+
+
+
+ Make sure we close all network connections
+
+
+
+
+
+ Test if this handler has active connections
+
+
+ true if this handler has active connections
+
+
+
+ This property will be true while this handler has
+ active connections, that is at least one connection that
+ the handler will attempt to send a message to.
+
+
+
+
+
+ Class that represents a client connected to this handler
+
+
+
+ Class that represents a client connected to this handler
+
+
+
+
+
+ Create this for the specified
+
+ the client's socket
+
+
+ Opens a stream writer on the socket.
+
+
+
+
+
+ Write a string to the client
+
+ string to send
+
+
+ Write a string to the client
+
+
+
+
+
+ Cleanup the clients connection
+
+
+
+ Close the socket connection.
+
+
+
+
+
+ Appends log events to the system.
+
+
+
+ The application configuration file can be used to control what listeners
+ are actually used. See the MSDN documentation for the
+ class for details on configuring the
+ trace system.
+
+
+ Events are written using the System.Diagnostics.Trace.Write(string,string)
+ method. The event's logger name is passed as the value for the category name to the Write method.
+
+
+ Compact Framework
+ The Compact Framework does not support the
+ class for any operation except Assert. When using the Compact Framework this
+ appender will write to the system rather than
+ the Trace system. This appender will therefore behave like the .
+
+
+ Douglas de la Torre
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Initializes a new instance of the .
+
+
+
+ Default constructor.
+
+
+
+
+
+ Initializes a new instance of the
+ with a specified layout.
+
+ The layout to use with this appender.
+
+
+ Obsolete constructor.
+
+
+
+
+
+ Writes the logging event to the system.
+
+ The event to log.
+
+
+ Writes the logging event to the system.
+
+
+
+
+
+ Immediate flush means that the underlying writer or output stream
+ will be flushed at the end of each append operation.
+
+
+
+ Immediate flush is slower but ensures that each append request is
+ actually written. If is set to
+ false, then there is a good chance that the last few
+ logs events are not actually written to persistent media if and
+ when the application crashes.
+
+
+ The default value is true.
+
+
+
+
+ Gets or sets a value that indicates whether the appender will
+ flush at the end of each write.
+
+
+ The default behavior is to flush at the end of each
+ write. If the option is set tofalse, then the underlying
+ stream can defer writing to physical medium to a later time.
+
+
+ Avoiding the flush operation at the end of each append results
+ in a performance gain of 10 to 20 percent. However, there is safety
+ trade-off involved in skipping flushing. Indeed, when flushing is
+ skipped, then it is likely that the last few log events will not
+ be recorded on disk when the application exits. This is a high
+ price to pay even for a 20% performance gain.
+
+
+
+
+
+ This appender requires a to be set.
+
+ true
+
+
+ This appender requires a to be set.
+
+
+
+
+
+ Assembly level attribute that specifies a domain to alias to this assembly's repository.
+
+
+
+ AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute.
+
+
+ An assembly's logger repository is defined by its ,
+ however this can be overridden by an assembly loaded before the target assembly.
+
+
+ An assembly can alias another assembly's domain to its repository by
+ specifying this attribute with the name of the target domain.
+
+
+ This attribute can only be specified on the assembly and may be used
+ as many times as necessary to alias all the required domains.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Assembly level attribute that specifies a repository to alias to this assembly's repository.
+
+
+
+ An assembly's logger repository is defined by its ,
+ however this can be overridden by an assembly loaded before the target assembly.
+
+
+ An assembly can alias another assembly's repository to its repository by
+ specifying this attribute with the name of the target repository.
+
+
+ This attribute can only be specified on the assembly and may be used
+ as many times as necessary to alias all the required repositories.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Initializes a new instance of the class with
+ the specified repository to alias to this assembly's repository.
+
+ The repository to alias to this assemby's repository.
+
+
+ Initializes a new instance of the class with
+ the specified repository to alias to this assembly's repository.
+
+
+
+
+
+ Gets or sets the repository to alias to this assemby's repository.
+
+
+ The repository to alias to this assemby's repository.
+
+
+
+ The name of the repository to alias to this assemby's repository.
+
+
+
+
+
+ Initializes a new instance of the class with
+ the specified domain to alias to this assembly's repository.
+
+ The domain to alias to this assemby's repository.
+
+
+ Obsolete. Use instead of .
+
+
+
+
+
+ Use this class to quickly configure a .
+
+
+
+ Allows very simple programmatic configuration of log4net.
+
+
+ Only one appender can be configured using this configurator.
+ The appender is set at the root of the hierarchy and all logging
+ events will be delivered to that appender.
+
+
+ Appenders can also implement the interface. Therefore
+ they would require that the method
+ be called after the appenders properties have been configured.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ Uses a private access modifier to prevent instantiation of this class.
+
+
+
+
+
+ Initializes the log4net system with a default configuration.
+
+
+
+ Initializes the log4net logging system using a
+ that will write to Console.Out. The log messages are
+ formatted using the layout object
+ with the
+ layout style.
+
+
+
+
+
+ Initializes the log4net system using the specified appender.
+
+ The appender to use to log all logging events.
+
+
+ Initializes the log4net system using the specified appender.
+
+
+
+
+
+ Initializes the with a default configuration.
+
+ The repository to configure.
+
+
+ Initializes the specified repository using a
+ that will write to Console.Out. The log messages are
+ formatted using the layout object
+ with the
+ layout style.
+
+
+
+
+
+ Initializes the using the specified appender.
+
+ The repository to configure.
+ The appender to use to log all logging events.
+
+
+ Initializes the using the specified appender.
+
+
+
+
+
+ Base class for all log4net configuration attributes.
+
+
+ This is an abstract class that must be extended by
+ specific configurators. This attribute allows the
+ configurator to be parameterized by an assembly level
+ attribute.
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Constructor used by subclasses.
+
+ the ordering priority for this configurator
+
+
+ The is used to order the configurator
+ attributes before they are invoked. Higher priority configurators are executed
+ before lower priority ones.
+
+
+
+
+
+ Configures the for the specified assembly.
+
+ The assembly that this attribute was defined on.
+ The repository to configure.
+
+
+ Abstract method implemented by a subclass. When this method is called
+ the subclass should configure the .
+
+
+
+
+
+ Compare this instance to another ConfiguratorAttribute
+
+ the object to compare to
+ see
+
+
+ Compares the priorities of the two instances.
+ Sorts by priority in descending order. Objects with the same priority are
+ randomly ordered.
+
+
+
+
+
+ Assembly level attribute that specifies the logging domain for the assembly.
+
+
+
+ DomainAttribute is obsolete. Use RepositoryAttribute instead of DomainAttribute.
+
+
+ Assemblies are mapped to logging domains. Each domain has its own
+ logging repository. This attribute specified on the assembly controls
+ the configuration of the domain. The property specifies the name
+ of the domain that this assembly is a part of. The
+ specifies the type of the repository objects to create for the domain. If
+ this attribute is not specified and a is not specified
+ then the assembly will be part of the default shared logging domain.
+
+
+ This attribute can only be specified on the assembly and may only be used
+ once per assembly.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Assembly level attribute that specifies the logging repository for the assembly.
+
+
+
+ Assemblies are mapped to logging repository. This attribute specified
+ on the assembly controls
+ the configuration of the repository. The property specifies the name
+ of the repository that this assembly is a part of. The
+ specifies the type of the object
+ to create for the assembly. If this attribute is not specified or a
+ is not specified then the assembly will be part of the default shared logging repository.
+
+
+ This attribute can only be specified on the assembly and may only be used
+ once per assembly.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ Default constructor.
+
+
+
+
+
+ Initialize a new instance of the class
+ with the name of the repository.
+
+ The name of the repository.
+
+
+ Initialize the attribute with the name for the assembly's repository.
+
+
+
+
+
+ Gets or sets the name of the logging repository.
+
+
+ The string name to use as the name of the repository associated with this
+ assembly.
+
+
+
+ This value does not have to be unique. Several assemblies can share the
+ same repository. They will share the logging configuration of the repository.
+
+
+
+
+
+ Gets or sets the type of repository to create for this assembly.
+
+
+ The type of repository to create for this assembly.
+
+
+
+ The type of the repository to create for the assembly.
+ The type must implement the
+ interface.
+
+
+ This will be the type of repository created when
+ the repository is created. If multiple assemblies reference the
+ same repository then the repository is only created once using the
+ of the first assembly to call into the
+ repository.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ Obsolete. Use RepositoryAttribute instead of DomainAttribute.
+
+
+
+
+
+ Initialize a new instance of the class
+ with the name of the domain.
+
+ The name of the domain.
+
+
+ Obsolete. Use RepositoryAttribute instead of DomainAttribute.
+
+
+
+
+
+ Use this class to initialize the log4net environment using an Xml tree.
+
+
+
+ DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator.
+
+
+ Configures a using an Xml tree.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Private constructor
+
+
+
+
+ Automatically configures the log4net system based on the
+ application's configuration settings.
+
+
+
+ DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator.
+
+ Each application has a configuration file. This has the
+ same name as the application with '.config' appended.
+ This file is XML and calling this function prompts the
+ configurator to look in that file for a section called
+ log4net that contains the configuration data.
+
+
+
+
+ Automatically configures the using settings
+ stored in the application's configuration file.
+
+
+
+ DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator.
+
+ Each application has a configuration file. This has the
+ same name as the application with '.config' appended.
+ This file is XML and calling this function prompts the
+ configurator to look in that file for a section called
+ log4net that contains the configuration data.
+
+ The repository to configure.
+
+
+
+ Configures log4net using a log4net element
+
+
+
+ DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator.
+
+ Loads the log4net configuration from the XML element
+ supplied as .
+
+ The element to parse.
+
+
+
+ Configures the using the specified XML
+ element.
+
+
+
+ DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator.
+
+ Loads the log4net configuration from the XML element
+ supplied as .
+
+ The repository to configure.
+ The element to parse.
+
+
+
+ Configures log4net using the specified configuration file.
+
+ The XML file to load the configuration from.
+
+
+ DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator.
+
+
+ The configuration file must be valid XML. It must contain
+ at least one element called log4net that holds
+ the log4net configuration data.
+
+
+ The log4net configuration file can possible be specified in the application's
+ configuration file (either MyAppName.exe.config for a
+ normal application on Web.config for an ASP.NET application).
+
+
+ The following example configures log4net using a configuration file, of which the
+ location is stored in the application's configuration file :
+
+
+ using log4net.Config;
+ using System.IO;
+ using System.Configuration;
+
+ ...
+
+ DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"]));
+
+
+ In the .config file, the path to the log4net can be specified like this :
+
+
+
+
+
+
+
+
+
+
+
+
+ Configures log4net using the specified configuration file.
+
+ A stream to load the XML configuration from.
+
+
+ DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator.
+
+
+ The configuration data must be valid XML. It must contain
+ at least one element called log4net that holds
+ the log4net configuration data.
+
+
+ Note that this method will NOT close the stream parameter.
+
+
+
+
+
+ Configures the using the specified configuration
+ file.
+
+ The repository to configure.
+ The XML file to load the configuration from.
+
+
+ DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator.
+
+
+ The configuration file must be valid XML. It must contain
+ at least one element called log4net that holds
+ the configuration data.
+
+
+ The log4net configuration file can possible be specified in the application's
+ configuration file (either MyAppName.exe.config for a
+ normal application on Web.config for an ASP.NET application).
+
+
+ The following example configures log4net using a configuration file, of which the
+ location is stored in the application's configuration file :
+
+
+ using log4net.Config;
+ using System.IO;
+ using System.Configuration;
+
+ ...
+
+ DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"]));
+
+
+ In the .config file, the path to the log4net can be specified like this :
+
+
+
+
+
+
+
+
+
+
+
+
+ Configures the using the specified configuration
+ file.
+
+ The repository to configure.
+ The stream to load the XML configuration from.
+
+
+ DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator.
+
+
+ The configuration data must be valid XML. It must contain
+ at least one element called log4net that holds
+ the configuration data.
+
+
+ Note that this method will NOT close the stream parameter.
+
+
+
+
+
+ Configures log4net using the file specified, monitors the file for changes
+ and reloads the configuration if a change is detected.
+
+ The XML file to load the configuration from.
+
+
+ DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator.
+
+
+ The configuration file must be valid XML. It must contain
+ at least one element called log4net that holds
+ the configuration data.
+
+
+ The configuration file will be monitored using a
+ and depends on the behavior of that class.
+
+
+ For more information on how to configure log4net using
+ a separate configuration file, see .
+
+
+
+
+
+
+ Configures the using the file specified,
+ monitors the file for changes and reloads the configuration if a change
+ is detected.
+
+ The repository to configure.
+ The XML file to load the configuration from.
+
+
+ DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator.
+
+
+ The configuration file must be valid XML. It must contain
+ at least one element called log4net that holds
+ the configuration data.
+
+
+ The configuration file will be monitored using a
+ and depends on the behavior of that class.
+
+
+ For more information on how to configure log4net using
+ a separate configuration file, see .
+
+
+
+
+
+
+ Assembly level attribute to configure the .
+
+
+
+ AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute.
+
+
+ This attribute may only be used at the assembly scope and can only
+ be used once per assembly.
+
+
+ Use this attribute to configure the
+ without calling one of the
+ methods.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Assembly level attribute to configure the .
+
+
+
+ This attribute may only be used at the assembly scope and can only
+ be used once per assembly.
+
+
+ Use this attribute to configure the
+ without calling one of the
+ methods.
+
+
+ If neither of the or
+ properties are set the configuration is loaded from the application's .config file.
+ If set the property takes priority over the
+ property. The property
+ specifies a path to a file to load the config from. The path is relative to the
+ application's base directory; .
+ The property is used as a postfix to the assembly file name.
+ The config file must be located in the application's base directory; .
+ For example in a console application setting the to
+ config has the same effect as not specifying the or
+ properties.
+
+
+ The property can be set to cause the
+ to watch the configuration file for changes.
+
+
+
+ Log4net will only look for assembly level configuration attributes once.
+ When using the log4net assembly level attributes to control the configuration
+ of log4net you must ensure that the first call to any of the
+ methods is made from the assembly with the configuration
+ attributes.
+
+
+ If you cannot guarantee the order in which log4net calls will be made from
+ different assemblies you must use programmatic configuration instead, i.e.
+ call the method directly.
+
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Default constructor
+
+
+
+ Default constructor
+
+
+
+
+
+ Configures the for the specified assembly.
+
+ The assembly that this attribute was defined on.
+ The repository to configure.
+
+
+ Configure the repository using the .
+ The specified must extend the
+ class otherwise the will not be able to
+ configure it.
+
+
+ The does not extend .
+
+
+
+ Attempt to load configuration from the local file system
+
+ The assembly that this attribute was defined on.
+ The repository to configure.
+
+
+
+ Configure the specified repository using a
+
+ The repository to configure.
+ the FileInfo pointing to the config file
+
+
+
+ Attempt to load configuration from a URI
+
+ The assembly that this attribute was defined on.
+ The repository to configure.
+
+
+
+ Gets or sets the filename of the configuration file.
+
+
+ The filename of the configuration file.
+
+
+
+ If specified, this is the name of the configuration file to use with
+ the . This file path is relative to the
+ application base directory ().
+
+
+ The takes priority over the .
+
+
+
+
+
+ Gets or sets the extension of the configuration file.
+
+
+ The extension of the configuration file.
+
+
+
+ If specified this is the extension for the configuration file.
+ The path to the config file is built by using the application
+ base directory (),
+ the assembly file name and the config file extension.
+
+
+ If the is set to MyExt then
+ possible config file names would be: MyConsoleApp.exe.MyExt or
+ MyClassLibrary.dll.MyExt.
+
+
+ The takes priority over the .
+
+
+
+
+
+ Gets or sets a value indicating whether to watch the configuration file.
+
+
+ true if the configuration should be watched, false otherwise.
+
+
+
+ If this flag is specified and set to true then the framework
+ will watch the configuration file and will reload the config each time
+ the file is modified.
+
+
+ The config file can only be watched if it is loaded from local disk.
+ In a No-Touch (Smart Client) deployment where the application is downloaded
+ from a web server the config file may not reside on the local disk
+ and therefore it may not be able to watch it.
+
+
+ Watching configuration is not supported on the SSCLI.
+
+
+
+
+
+ Class to register for the log4net section of the configuration file
+
+
+ The log4net section of the configuration file needs to have a section
+ handler registered. This is the section handler used. It simply returns
+ the XML element that is the root of the section.
+
+
+ Example of registering the log4net section handler :
+
+
+
+
+
+
+ log4net configuration XML goes here
+
+
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ Default constructor.
+
+
+
+
+
+ Parses the configuration section.
+
+ The configuration settings in a corresponding parent configuration section.
+ The configuration context when called from the ASP.NET configuration system. Otherwise, this parameter is reserved and is a null reference.
+ The for the log4net section.
+ The for the log4net section.
+
+
+ Returns the containing the configuration data,
+
+
+
+
+
+ Assembly level attribute that specifies a plugin to attach to
+ the repository.
+
+
+
+ Specifies the type of a plugin to create and attach to the
+ assembly's repository. The plugin type must implement the
+ interface.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Interface used to create plugins.
+
+
+
+ Interface used to create a plugin.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Creates the plugin object.
+
+ the new plugin instance
+
+
+ Create and return a new plugin instance.
+
+
+
+
+
+ Initializes a new instance of the class
+ with the specified type.
+
+ The type name of plugin to create.
+
+
+ Create the attribute with the plugin type specified.
+
+
+ Where possible use the constructor that takes a .
+
+
+
+
+
+ Initializes a new instance of the class
+ with the specified type.
+
+ The type of plugin to create.
+
+
+ Create the attribute with the plugin type specified.
+
+
+
+
+
+ Creates the plugin object defined by this attribute.
+
+
+
+ Creates the instance of the object as
+ specified by this attribute.
+
+
+ The plugin object.
+
+
+
+ Returns a representation of the properties of this object.
+
+
+
+ Overrides base class method to
+ return a representation of the properties of this object.
+
+
+ A representation of the properties of this object
+
+
+
+ Gets or sets the type for the plugin.
+
+
+ The type for the plugin.
+
+
+
+ The type for the plugin.
+
+
+
+
+
+ Gets or sets the type name for the plugin.
+
+
+ The type name for the plugin.
+
+
+
+ The type name for the plugin.
+
+
+ Where possible use the property instead.
+
+
+
+
+
+ Assembly level attribute to configure the .
+
+
+
+ This attribute may only be used at the assembly scope and can only
+ be used once per assembly.
+
+
+ Use this attribute to configure the
+ without calling one of the
+ methods.
+
+
+ Nicko Cadell
+
+
+
+ Construct provider attribute with type specified
+
+ the type of the provider to use
+
+
+ The provider specified must subclass the
+ class.
+
+
+
+
+
+ Configures the SecurityContextProvider
+
+ The assembly that this attribute was defined on.
+ The repository to configure.
+
+
+ Creates a provider instance from the specified.
+ Sets this as the default security context provider .
+
+
+
+
+
+ Gets or sets the type of the provider to use.
+
+
+ the type of the provider to use.
+
+
+
+ The provider specified must subclass the
+ class.
+
+
+
+
+
+ Use this class to initialize the log4net environment using an Xml tree.
+
+
+
+ Configures a using an Xml tree.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Private constructor
+
+
+
+
+ Automatically configures the log4net system based on the
+ application's configuration settings.
+
+
+
+ Each application has a configuration file. This has the
+ same name as the application with '.config' appended.
+ This file is XML and calling this function prompts the
+ configurator to look in that file for a section called
+ log4net that contains the configuration data.
+
+
+ To use this method to configure log4net you must specify
+ the section
+ handler for the log4net configuration section. See the
+ for an example.
+
+
+
+
+
+
+ Automatically configures the using settings
+ stored in the application's configuration file.
+
+
+
+ Each application has a configuration file. This has the
+ same name as the application with '.config' appended.
+ This file is XML and calling this function prompts the
+ configurator to look in that file for a section called
+ log4net that contains the configuration data.
+
+
+ To use this method to configure log4net you must specify
+ the section
+ handler for the log4net configuration section. See the
+ for an example.
+
+
+ The repository to configure.
+
+
+
+ Configures log4net using a log4net element
+
+
+
+ Loads the log4net configuration from the XML element
+ supplied as .
+
+
+ The element to parse.
+
+
+
+ Configures the using the specified XML
+ element.
+
+
+ Loads the log4net configuration from the XML element
+ supplied as .
+
+ The repository to configure.
+ The element to parse.
+
+
+
+ Configures log4net using the specified configuration file.
+
+ The XML file to load the configuration from.
+
+
+ The configuration file must be valid XML. It must contain
+ at least one element called log4net that holds
+ the log4net configuration data.
+
+
+ The log4net configuration file can possible be specified in the application's
+ configuration file (either MyAppName.exe.config for a
+ normal application on Web.config for an ASP.NET application).
+
+
+ The first element matching <configuration> will be read as the
+ configuration. If this file is also a .NET .config file then you must specify
+ a configuration section for the log4net element otherwise .NET will
+ complain. Set the type for the section handler to , for example:
+
+
+
+
+
+
+
+ The following example configures log4net using a configuration file, of which the
+ location is stored in the application's configuration file :
+
+
+ using log4net.Config;
+ using System.IO;
+ using System.Configuration;
+
+ ...
+
+ XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"]));
+
+
+ In the .config file, the path to the log4net can be specified like this :
+
+
+
+
+
+
+
+
+
+
+
+
+ Configures log4net using the specified configuration URI.
+
+ A URI to load the XML configuration from.
+
+
+ The configuration data must be valid XML. It must contain
+ at least one element called log4net that holds
+ the log4net configuration data.
+
+
+ The must support the URI scheme specified.
+
+
+
+
+
+ Configures log4net using the specified configuration data stream.
+
+ A stream to load the XML configuration from.
+
+
+ The configuration data must be valid XML. It must contain
+ at least one element called log4net that holds
+ the log4net configuration data.
+
+
+ Note that this method will NOT close the stream parameter.
+
+
+
+
+
+ Configures the using the specified configuration
+ file.
+
+ The repository to configure.
+ The XML file to load the configuration from.
+
+
+ The configuration file must be valid XML. It must contain
+ at least one element called log4net that holds
+ the configuration data.
+
+
+ The log4net configuration file can possible be specified in the application's
+ configuration file (either MyAppName.exe.config for a
+ normal application on Web.config for an ASP.NET application).
+
+
+ The first element matching <configuration> will be read as the
+ configuration. If this file is also a .NET .config file then you must specify
+ a configuration section for the log4net element otherwise .NET will
+ complain. Set the type for the section handler to , for example:
+
+
+
+
+
+
+
+ The following example configures log4net using a configuration file, of which the
+ location is stored in the application's configuration file :
+
+
+ using log4net.Config;
+ using System.IO;
+ using System.Configuration;
+
+ ...
+
+ XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"]));
+
+
+ In the .config file, the path to the log4net can be specified like this :
+
+
+
+
+
+
+
+
+
+
+
+
+ Configures the using the specified configuration
+ URI.
+
+ The repository to configure.
+ A URI to load the XML configuration from.
+
+
+ The configuration data must be valid XML. It must contain
+ at least one element called log4net that holds
+ the configuration data.
+
+
+ The must support the URI scheme specified.
+
+
+
+
+
+ Configures the using the specified configuration
+ file.
+
+ The repository to configure.
+ The stream to load the XML configuration from.
+
+
+ The configuration data must be valid XML. It must contain
+ at least one element called log4net that holds
+ the configuration data.
+
+
+ Note that this method will NOT close the stream parameter.
+
+
+
+
+
+ Configures log4net using the file specified, monitors the file for changes
+ and reloads the configuration if a change is detected.
+
+ The XML file to load the configuration from.
+
+
+ The configuration file must be valid XML. It must contain
+ at least one element called log4net that holds
+ the configuration data.
+
+
+ The configuration file will be monitored using a
+ and depends on the behavior of that class.
+
+
+ For more information on how to configure log4net using
+ a separate configuration file, see .
+
+
+
+
+
+
+ Configures the using the file specified,
+ monitors the file for changes and reloads the configuration if a change
+ is detected.
+
+ The repository to configure.
+ The XML file to load the configuration from.
+
+
+ The configuration file must be valid XML. It must contain
+ at least one element called log4net that holds
+ the configuration data.
+
+
+ The configuration file will be monitored using a
+ and depends on the behavior of that class.
+
+
+ For more information on how to configure log4net using
+ a separate configuration file, see .
+
+
+
+
+
+
+ Configures the specified repository using a log4net element.
+
+ The hierarchy to configure.
+ The element to parse.
+
+
+ Loads the log4net configuration from the XML element
+ supplied as .
+
+
+ This method is ultimately called by one of the Configure methods
+ to load the configuration from an .
+
+
+
+
+
+ Class used to watch config files.
+
+
+
+ Uses the to monitor
+ changes to a specified file. Because multiple change notifications
+ may be raised when the file is modified, a timer is used to
+ compress the notifications into a single event. The timer
+ waits for time before delivering
+ the event notification. If any further
+ change notifications arrive while the timer is waiting it
+ is reset and waits again for to
+ elapse.
+
+
+
+
+
+ The default amount of time to wait after receiving notification
+ before reloading the config file.
+
+
+
+
+ Watch a specified config file used to configure a repository
+
+ The repository to configure.
+ The configuration file to watch.
+
+
+ Watch a specified config file used to configure a repository
+
+
+
+
+
+ Holds the FileInfo used to configure the XmlConfigurator
+
+
+
+
+ Holds the repository being configured.
+
+
+
+
+ The timer used to compress the notification events.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The repository to configure.
+ The configuration file to watch.
+
+
+ Initializes a new instance of the class.
+
+
+
+
+
+ Event handler used by .
+
+ The firing the event.
+ The argument indicates the file that caused the event to be fired.
+
+
+ This handler reloads the configuration from the file when the event is fired.
+
+
+
+
+
+ Event handler used by .
+
+ The firing the event.
+ The argument indicates the file that caused the event to be fired.
+
+
+ This handler reloads the configuration from the file when the event is fired.
+
+
+
+
+
+ Called by the timer when the configuration has been updated.
+
+ null
+
+
+
+ The implementation of the interface suitable
+ for use with the compact framework
+
+
+
+ This implementation is a simple
+ mapping between repository name and
+ object.
+
+
+ The .NET Compact Framework 1.0 does not support retrieving assembly
+ level attributes therefore unlike the DefaultRepositorySelector
+ this selector does not examine the calling assembly for attributes.
+
+
+ Nicko Cadell
+
+
+
+ Interface used by the to select the .
+
+
+
+ The uses a
+ to specify the policy for selecting the correct
+ to return to the caller.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Gets the for the specified assembly.
+
+ The assembly to use to lookup to the
+ The for the assembly.
+
+
+ Gets the for the specified assembly.
+
+
+ How the association between and
+ is made is not defined. The implementation may choose any method for
+ this association. The results of this method must be repeatable, i.e.
+ when called again with the same arguments the result must be the
+ save value.
+
+
+
+
+
+ Gets the named .
+
+ The name to use to lookup to the .
+ The named
+
+ Lookup a named . This is the repository created by
+ calling .
+
+
+
+
+ Creates a new repository for the assembly specified.
+
+ The assembly to use to create the domain to associate with the .
+ The type of repository to create, must implement .
+ The repository created.
+
+
+ The created will be associated with the domain
+ specified such that a call to with the
+ same assembly specified will return the same repository instance.
+
+
+ How the association between and
+ is made is not defined. The implementation may choose any method for
+ this association.
+
+
+
+
+
+ Creates a new repository with the name specified.
+
+ The name to associate with the .
+ The type of repository to create, must implement .
+ The repository created.
+
+
+ The created will be associated with the name
+ specified such that a call to with the
+ same name will return the same repository instance.
+
+
+
+
+
+ Test if a named repository exists
+
+ the named repository to check
+ true if the repository exists
+
+
+ Test if a named repository exists. Use
+ to create a new repository and to retrieve
+ a repository.
+
+
+
+
+
+ Gets an array of all currently defined repositories.
+
+
+ An array of the instances created by
+ this .
+
+
+ Gets an array of all of the repositories created by this selector.
+
+
+
+
+
+ Event to notify that a logger repository has been created.
+
+
+ Event to notify that a logger repository has been created.
+
+
+
+ Event raised when a new repository is created.
+ The event source will be this selector. The event args will
+ be a which
+ holds the newly created .
+
+
+
+
+
+ Create a new repository selector
+
+ the type of the repositories to create, must implement
+
+
+ Create an new compact repository selector.
+ The default type for repositories must be specified,
+ an appropriate value would be .
+
+
+ throw if is null
+ throw if does not implement
+
+
+
+ Get the for the specified assembly
+
+ not used
+ The default
+
+
+ The argument is not used. This selector does not create a
+ separate repository for each assembly.
+
+
+ As a named repository is not specified the default repository is
+ returned. The default repository is named log4net-default-repository.
+
+
+
+
+
+ Get the named
+
+ the name of the repository to lookup
+ The named
+
+
+ Get the named . The default
+ repository is log4net-default-repository. Other repositories
+ must be created using the .
+ If the named repository does not exist an exception is thrown.
+
+
+ throw if is null
+ throw if the does not exist
+
+
+
+ Create a new repository for the assembly specified
+
+ not used
+ the type of repository to create, must implement
+ the repository created
+
+
+ The argument is not used. This selector does not create a
+ separate repository for each assembly.
+
+
+ If the is null then the
+ default repository type specified to the constructor is used.
+
+
+ As a named repository is not specified the default repository is
+ returned. The default repository is named log4net-default-repository.
+
+
+
+
+
+ Create a new repository for the repository specified
+
+ the repository to associate with the
+ the type of repository to create, must implement .
+ If this param is null then the default repository type is used.
+ the repository created
+
+
+ The created will be associated with the repository
+ specified such that a call to with the
+ same repository specified will return the same repository instance.
+
+
+ If the named repository already exists an exception will be thrown.
+
+
+ If is null then the default
+ repository type specified to the constructor is used.
+
+
+ throw if is null
+ throw if the already exists
+
+
+
+ Test if a named repository exists
+
+ the named repository to check
+ true if the repository exists
+
+
+ Test if a named repository exists. Use
+ to create a new repository and to retrieve
+ a repository.
+
+
+
+
+
+ Gets a list of objects
+
+ an array of all known objects
+
+
+ Gets an array of all of the repositories created by this selector.
+
+
+
+
+
+ Notify the registered listeners that the repository has been created
+
+ The repository that has been created
+
+
+ Raises the LoggerRepositoryCreatedEvent
+ event.
+
+
+
+
+
+ Event to notify that a logger repository has been created.
+
+
+ Event to notify that a logger repository has been created.
+
+
+
+ Event raised when a new repository is created.
+ The event source will be this selector. The event args will
+ be a which
+ holds the newly created .
+
+
+
+
+
+ The default implementation of the interface.
+
+
+
+ Uses attributes defined on the calling assembly to determine how to
+ configure the hierarchy for the repository.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Creates a new repository selector.
+
+ The type of the repositories to create, must implement
+
+
+ Create an new repository selector.
+ The default type for repositories must be specified,
+ an appropriate value would be .
+
+
+ is .
+ does not implement .
+
+
+
+ Gets the for the specified assembly.
+
+ The assembly use to lookup the .
+
+
+ The type of the created and the repository
+ to create can be overridden by specifying the
+ attribute on the .
+
+
+ The default values are to use the
+ implementation of the interface and to use the
+ as the name of the repository.
+
+
+ The created will be automatically configured using
+ any attributes defined on
+ the .
+
+
+ The for the assembly
+ is .
+
+
+
+ Gets the for the specified repository.
+
+ The repository to use to lookup the .
+ The for the specified repository.
+
+
+ Returns the named repository. If is null
+ a is thrown. If the repository
+ does not exist a is thrown.
+
+
+ Use to create a repository.
+
+
+ is .
+ does not exist.
+
+
+
+ Create a new repository for the assembly specified
+
+ the assembly to use to create the repository to associate with the .
+ The type of repository to create, must implement .
+ The repository created.
+
+
+ The created will be associated with the repository
+ specified such that a call to with the
+ same assembly specified will return the same repository instance.
+
+
+ The type of the created and
+ the repository to create can be overridden by specifying the
+ attribute on the
+ . The default values are to use the
+ implementation of the
+ interface and to use the
+ as the name of the repository.
+
+
+ The created will be automatically
+ configured using any
+ attributes defined on the .
+
+
+ If a repository for the already exists
+ that repository will be returned. An error will not be raised and that
+ repository may be of a different type to that specified in .
+ Also the attribute on the
+ assembly may be used to override the repository type specified in
+ .
+
+
+ is .
+
+
+
+ Creates a new repository for the assembly specified.
+
+ the assembly to use to create the repository to associate with the .
+ The type of repository to create, must implement .
+ The name to assign to the created repository
+ Set to true to read and apply the assembly attributes
+ The repository created.
+
+
+ The created will be associated with the repository
+ specified such that a call to with the
+ same assembly specified will return the same repository instance.
+
+
+ The type of the created and
+ the repository to create can be overridden by specifying the
+ attribute on the
+ . The default values are to use the
+ implementation of the
+ interface and to use the
+ as the name of the repository.
+
+
+ The created will be automatically
+ configured using any
+ attributes defined on the .
+
+
+ If a repository for the already exists
+ that repository will be returned. An error will not be raised and that
+ repository may be of a different type to that specified in .
+ Also the attribute on the
+ assembly may be used to override the repository type specified in
+ .
+
+
+ is .
+
+
+
+ Creates a new repository for the specified repository.
+
+ The repository to associate with the .
+ The type of repository to create, must implement .
+ If this param is then the default repository type is used.
+ The new repository.
+
+
+ The created will be associated with the repository
+ specified such that a call to with the
+ same repository specified will return the same repository instance.
+
+
+ is .
+ already exists.
+
+
+
+ Test if a named repository exists
+
+ the named repository to check
+ true if the repository exists
+
+
+ Test if a named repository exists. Use
+ to create a new repository and to retrieve
+ a repository.
+
+
+
+
+
+ Gets a list of objects
+
+ an array of all known objects
+
+
+ Gets an array of all of the repositories created by this selector.
+
+
+
+
+
+ Aliases a repository to an existing repository.
+
+ The repository to alias.
+ The repository that the repository is aliased to.
+
+
+ The repository specified will be aliased to the repository when created.
+ The repository must not already exist.
+
+
+ When the repository is created it must utilize the same repository type as
+ the repository it is aliased to, otherwise the aliasing will fail.
+
+
+
+ is .
+ -or-
+ is .
+
+
+
+
+ Notifies the registered listeners that the repository has been created.
+
+ The repository that has been created.
+
+
+ Raises the event.
+
+
+
+
+
+ Gets the repository name and repository type for the specified assembly.
+
+ The assembly that has a .
+ in/out param to hold the repository name to use for the assembly, caller should set this to the default value before calling.
+ in/out param to hold the type of the repository to create for the assembly, caller should set this to the default value before calling.
+ is .
+
+
+
+ Configures the repository using information from the assembly.
+
+ The assembly containing
+ attributes which define the configuration for the repository.
+ The repository to configure.
+
+ is .
+ -or-
+ is .
+
+
+
+
+ Loads the attribute defined plugins on the assembly.
+
+ The assembly that contains the attributes.
+ The repository to add the plugins to.
+
+ is .
+ -or-
+ is .
+
+
+
+
+ Loads the attribute defined aliases on the assembly.
+
+ The assembly that contains the attributes.
+ The repository to alias to.
+
+ is .
+ -or-
+ is .
+
+
+
+
+ Event to notify that a logger repository has been created.
+
+
+ Event to notify that a logger repository has been created.
+
+
+
+ Event raised when a new repository is created.
+ The event source will be this selector. The event args will
+ be a which
+ holds the newly created .
+
+
+
+
+
+ Defined error codes that can be passed to the method.
+
+
+
+ Values passed to the method.
+
+
+ Nicko Cadell
+
+
+
+ A general error
+
+
+
+
+ Error while writing output
+
+
+
+
+ Failed to flush file
+
+
+
+
+ Failed to close file
+
+
+
+
+ Unable to open output file
+
+
+
+
+ No layout specified
+
+
+
+
+ Failed to parse address
+
+
+
+
+ Appenders may delegate their error handling to an .
+
+
+
+ Error handling is a particularly tedious to get right because by
+ definition errors are hard to predict and to reproduce.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Handles the error and information about the error condition is passed as
+ a parameter.
+
+ The message associated with the error.
+ The that was thrown when the error occurred.
+ The error code associated with the error.
+
+
+ Handles the error and information about the error condition is passed as
+ a parameter.
+
+
+
+
+
+ Prints the error message passed as a parameter.
+
+ The message associated with the error.
+ The that was thrown when the error occurred.
+
+
+ See .
+
+
+
+
+
+ Prints the error message passed as a parameter.
+
+ The message associated with the error.
+
+
+ See .
+
+
+
+
+
+ Interface for objects that require fixing.
+
+
+
+ Interface that indicates that the object requires fixing before it
+ can be taken outside the context of the appender's
+ method.
+
+
+ When objects that implement this interface are stored
+ in the context properties maps
+ and
+ are fixed
+ (see ) the
+ method will be called.
+
+
+ Nicko Cadell
+
+
+
+ Get a portable version of this object
+
+ the portable instance of this object
+
+
+ Get a portable instance object that represents the current
+ state of this object. The portable object can be stored
+ and logged from any thread with identical results.
+
+
+
+
+
+ Interface that all loggers implement
+
+
+
+ This interface supports logging events and testing if a level
+ is enabled for logging.
+
+
+ These methods will not throw exceptions. Note to implementor, ensure
+ that the implementation of these methods cannot allow an exception
+ to be thrown to the caller.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ This generic form is intended to be used by wrappers.
+
+ The declaring type of the method that is
+ the stack boundary into the logging system for this call.
+ The level of the message to be logged.
+ The message object to log.
+ the exception to log, including its stack trace. Pass null to not log an exception.
+
+
+ Generates a logging event for the specified using
+ the and .
+
+
+
+
+
+ This is the most generic printing method that is intended to be used
+ by wrappers.
+
+ The event being logged.
+
+
+ Logs the specified logging event through this logger.
+
+
+
+
+
+ Checks if this logger is enabled for a given passed as parameter.
+
+ The level to check.
+
+ true if this logger is enabled for level, otherwise false.
+
+
+
+ Test if this logger is going to log events of the specified .
+
+
+
+
+
+ Gets the name of the logger.
+
+
+ The name of the logger.
+
+
+
+ The name of this logger
+
+
+
+
+
+ Gets the where this
+ Logger instance is attached to.
+
+
+ The that this logger belongs to.
+
+
+
+ Gets the where this
+ Logger instance is attached to.
+
+
+
+
+
+ Base interface for all wrappers
+
+
+
+ Base interface for all wrappers.
+
+
+ All wrappers must implement this interface.
+
+
+ Nicko Cadell
+
+
+
+ Get the implementation behind this wrapper object.
+
+
+ The object that in implementing this object.
+
+
+
+ The object that in implementing this
+ object. The Logger object may not
+ be the same object as this object because of logger decorators.
+ This gets the actual underlying objects that is used to process
+ the log events.
+
+
+
+
+
+ Delegate used to handle logger repository creation event notifications
+
+ The which created the repository.
+ The event args
+ that holds the instance that has been created.
+
+
+ Delegate used to handle logger repository creation event notifications.
+
+
+
+
+
+ Provides data for the event.
+
+
+
+ A
+ event is raised every time a is created.
+
+
+
+
+
+ The created
+
+
+
+
+ Construct instance using specified
+
+ the that has been created
+
+
+ Construct instance using specified
+
+
+
+
+
+ The that has been created
+
+
+ The that has been created
+
+
+
+ The that has been created
+
+
+
+
+
+ Test if an triggers an action
+
+
+
+ Implementations of this interface allow certain appenders to decide
+ when to perform an appender specific action.
+
+
+ The action or behavior triggered is defined by the implementation.
+
+
+ Nicko Cadell
+
+
+
+ Test if this event triggers the action
+
+ The event to check
+ true if this event triggers the action, otherwise false
+
+
+ Return true if this event triggers the action
+
+
+
+
+
+ Defines the default set of levels recognized by the system.
+
+
+
+ Each has an associated .
+
+
+ Levels have a numeric that defines the relative
+ ordering between levels. Two Levels with the same
+ are deemed to be equivalent.
+
+
+ The levels that are recognized by log4net are set for each
+ and each repository can have different levels defined. The levels are stored
+ in the on the repository. Levels are
+ looked up by name from the .
+
+
+ When logging at level INFO the actual level used is not but
+ the value of LoggerRepository.LevelMap["INFO"]. The default value for this is
+ , but this can be changed by reconfiguring the level map.
+
+
+ Each level has a in addition to its . The
+ is the string that is written into the output log. By default
+ the display name is the same as the level name, but this can be used to alias levels
+ or to localize the log output.
+
+
+ Some of the predefined levels recognized by the system are:
+
+
+
+ .
+
+
+ .
+
+
+ .
+
+
+ .
+
+
+ .
+
+
+ .
+
+
+ .
+
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Constructor
+
+ Integer value for this level, higher values represent more severe levels.
+ The string name of this level.
+ The display name for this level. This may be localized or otherwise different from the name
+
+
+ Initializes a new instance of the class with
+ the specified level name and value.
+
+
+
+
+
+ Constructor
+
+ Integer value for this level, higher values represent more severe levels.
+ The string name of this level.
+
+
+ Initializes a new instance of the class with
+ the specified level name and value.
+
+
+
+
+
+ Returns the representation of the current
+ .
+
+
+ A representation of the current .
+
+
+
+ Returns the level .
+
+
+
+
+
+ Compares levels.
+
+ The object to compare against.
+ true if the objects are equal.
+
+
+ Compares the levels of instances, and
+ defers to base class if the target object is not a
+ instance.
+
+
+
+
+
+ Returns a hash code
+
+ A hash code for the current .
+
+
+ Returns a hash code suitable for use in hashing algorithms and data
+ structures like a hash table.
+
+
+ Returns the hash code of the level .
+
+
+
+
+
+ Compares this instance to a specified object and returns an
+ indication of their relative values.
+
+ A instance or to compare with this instance.
+
+ A 32-bit signed integer that indicates the relative order of the
+ values compared. The return value has these meanings:
+
+
+ Value
+ Meaning
+
+
+ Less than zero
+ This instance is less than .
+
+
+ Zero
+ This instance is equal to .
+
+
+ Greater than zero
+
+ This instance is greater than .
+ -or-
+ is .
+
+
+
+
+
+
+ must be an instance of
+ or ; otherwise, an exception is thrown.
+
+
+ is not a .
+
+
+
+ Returns a value indicating whether a specified
+ is greater than another specified .
+
+ A
+ A
+
+ true if is greater than
+ ; otherwise, false.
+
+
+
+ Compares two levels.
+
+
+
+
+
+ Returns a value indicating whether a specified
+ is less than another specified .
+
+ A
+ A
+
+ true if is less than
+ ; otherwise, false.
+
+
+
+ Compares two levels.
+
+
+
+
+
+ Returns a value indicating whether a specified
+ is greater than or equal to another specified .
+
+ A
+ A
+
+ true if is greater than or equal to
+ ; otherwise, false.
+
+
+
+ Compares two levels.
+
+
+
+
+
+ Returns a value indicating whether a specified
+ is less than or equal to another specified .
+
+ A
+ A
+
+ true if is less than or equal to
+ ; otherwise, false.
+
+
+
+ Compares two levels.
+
+
+
+
+
+ Returns a value indicating whether two specified
+ objects have the same value.
+
+ A or .
+ A or .
+
+ true if the value of is the same as the
+ value of ; otherwise, false.
+
+
+
+ Compares two levels.
+
+
+
+
+
+ Returns a value indicating whether two specified
+ objects have different values.
+
+ A or .
+ A or .
+
+ true if the value of is different from
+ the value of ; otherwise, false.
+
+
+
+ Compares two levels.
+
+
+
+
+
+ Compares two specified instances.
+
+ The first to compare.
+ The second to compare.
+
+ A 32-bit signed integer that indicates the relative order of the
+ two values compared. The return value has these meanings:
+
+
+ Value
+ Meaning
+
+
+ Less than zero
+ is less than .
+
+
+ Zero
+ is equal to .
+
+
+ Greater than zero
+ is greater than .
+
+
+
+
+
+ Compares two levels.
+
+
+
+
+
+ The level designates a higher level than all the rest.
+
+
+
+
+ The level designates very severe error events.
+ System unusable, emergencies.
+
+
+
+
+ The level designates very severe error events
+ that will presumably lead the application to abort.
+
+
+
+
+ The level designates very severe error events.
+ Take immediate action, alerts.
+
+
+
+
+ The level designates very severe error events.
+ Critical condition, critical.
+
+
+
+
+ The level designates very severe error events.
+
+
+
+
+ The level designates error events that might
+ still allow the application to continue running.
+
+
+
+
+ The level designates potentially harmful
+ situations.
+
+
+
+
+ The level designates informational messages
+ that highlight the progress of the application at the highest level.
+
+
+
+
+ The level designates informational messages that
+ highlight the progress of the application at coarse-grained level.
+
+
+
+
+ The level designates fine-grained informational
+ events that are most useful to debug an application.
+
+
+
+
+ The level designates fine-grained informational
+ events that are most useful to debug an application.
+
+
+
+
+ The level designates fine-grained informational
+ events that are most useful to debug an application.
+
+
+
+
+ The level designates fine-grained informational
+ events that are most useful to debug an application.
+
+
+
+
+ The level designates fine-grained informational
+ events that are most useful to debug an application.
+
+
+
+
+ The level designates fine-grained informational
+ events that are most useful to debug an application.
+
+
+
+
+ The level designates the lowest level possible.
+
+
+
+
+ Gets the name of this level.
+
+
+ The name of this level.
+
+
+
+ Gets the name of this level.
+
+
+
+
+
+ Gets the value of this level.
+
+
+ The value of this level.
+
+
+
+ Gets the value of this level.
+
+
+
+
+
+ Gets the display name of this level.
+
+
+ The display name of this level.
+
+
+
+ Gets the display name of this level.
+
+
+
+
+
+ A strongly-typed collection of objects.
+
+ Nicko Cadell
+
+
+
+ Creates a read-only wrapper for a LevelCollection instance.
+
+ list to create a readonly wrapper arround
+
+ A LevelCollection wrapper that is read-only.
+
+
+
+
+ Initializes a new instance of the LevelCollection class
+ that is empty and has the default initial capacity.
+
+
+
+
+ Initializes a new instance of the LevelCollection class
+ that has the specified initial capacity.
+
+
+ The number of elements that the new LevelCollection is initially capable of storing.
+
+
+
+
+ Initializes a new instance of the LevelCollection class
+ that contains elements copied from the specified LevelCollection.
+
+ The LevelCollection whose elements are copied to the new collection.
+
+
+
+ Initializes a new instance of the LevelCollection class
+ that contains elements copied from the specified array.
+
+ The array whose elements are copied to the new list.
+
+
+
+ Initializes a new instance of the LevelCollection class
+ that contains elements copied from the specified collection.
+
+ The collection whose elements are copied to the new list.
+
+
+
+ Allow subclasses to avoid our default constructors
+
+
+
+
+
+ Copies the entire LevelCollection to a one-dimensional
+ array.
+
+ The one-dimensional array to copy to.
+
+
+
+ Copies the entire LevelCollection to a one-dimensional
+ array, starting at the specified index of the target array.
+
+ The one-dimensional array to copy to.
+ The zero-based index in at which copying begins.
+
+
+
+ Adds a to the end of the LevelCollection.
+
+ The to be added to the end of the LevelCollection.
+ The index at which the value has been added.
+
+
+
+ Removes all elements from the LevelCollection.
+
+
+
+
+ Creates a shallow copy of the .
+
+ A new with a shallow copy of the collection data.
+
+
+
+ Determines whether a given is in the LevelCollection.
+
+ The to check for.
+ true if is found in the LevelCollection; otherwise, false.
+
+
+
+ Returns the zero-based index of the first occurrence of a
+ in the LevelCollection.
+
+ The to locate in the LevelCollection.
+
+ The zero-based index of the first occurrence of
+ in the entire LevelCollection, if found; otherwise, -1.
+
+
+
+
+ Inserts an element into the LevelCollection at the specified index.
+
+ The zero-based index at which should be inserted.
+ The to insert.
+
+ is less than zero
+ -or-
+ is equal to or greater than .
+
+
+
+
+ Removes the first occurrence of a specific from the LevelCollection.
+
+ The to remove from the LevelCollection.
+
+ The specified was not found in the LevelCollection.
+
+
+
+
+ Removes the element at the specified index of the LevelCollection.
+
+ The zero-based index of the element to remove.
+
+ is less than zero
+ -or-
+ is equal to or greater than .
+
+
+
+
+ Returns an enumerator that can iterate through the LevelCollection.
+
+ An for the entire LevelCollection.
+
+
+
+ Adds the elements of another LevelCollection to the current LevelCollection.
+
+ The LevelCollection whose elements should be added to the end of the current LevelCollection.
+ The new of the LevelCollection.
+
+
+
+ Adds the elements of a array to the current LevelCollection.
+
+ The array whose elements should be added to the end of the LevelCollection.
+ The new of the LevelCollection.
+
+
+
+ Adds the elements of a collection to the current LevelCollection.
+
+ The collection whose elements should be added to the end of the LevelCollection.
+ The new of the LevelCollection.
+
+
+
+ Sets the capacity to the actual number of elements.
+
+
+
+
+ is less than zero
+ -or-
+ is equal to or greater than .
+
+
+
+
+ is less than zero
+ -or-
+ is equal to or greater than .
+
+
+
+
+ Gets the number of elements actually contained in the LevelCollection.
+
+
+
+
+ Gets a value indicating whether access to the collection is synchronized (thread-safe).
+
+ true if access to the ICollection is synchronized (thread-safe); otherwise, false.
+
+
+
+ Gets an object that can be used to synchronize access to the collection.
+
+
+
+
+ Gets or sets the at the specified index.
+
+ The zero-based index of the element to get or set.
+
+ is less than zero
+ -or-
+ is equal to or greater than .
+
+
+
+
+ Gets a value indicating whether the collection has a fixed size.
+
+ true if the collection has a fixed size; otherwise, false. The default is false
+
+
+
+ Gets a value indicating whether the IList is read-only.
+
+ true if the collection is read-only; otherwise, false. The default is false
+
+
+
+ Gets or sets the number of elements the LevelCollection can contain.
+
+
+
+
+ Supports type-safe iteration over a .
+
+
+
+
+ Advances the enumerator to the next element in the collection.
+
+
+ true if the enumerator was successfully advanced to the next element;
+ false if the enumerator has passed the end of the collection.
+
+
+ The collection was modified after the enumerator was created.
+
+
+
+
+ Sets the enumerator to its initial position, before the first element in the collection.
+
+
+
+
+ Gets the current element in the collection.
+
+
+
+
+ Type visible only to our subclasses
+ Used to access protected constructor
+
+
+
+
+ A value
+
+
+
+
+ Supports simple iteration over a .
+
+
+
+
+ Initializes a new instance of the Enumerator class.
+
+
+
+
+
+ Advances the enumerator to the next element in the collection.
+
+
+ true if the enumerator was successfully advanced to the next element;
+ false if the enumerator has passed the end of the collection.
+
+
+ The collection was modified after the enumerator was created.
+
+
+
+
+ Sets the enumerator to its initial position, before the first element in the collection.
+
+
+
+
+ Gets the current element in the collection.
+
+
+
+
+ An evaluator that triggers at a threshold level
+
+
+
+ This evaluator will trigger if the level of the event
+ passed to
+ is equal to or greater than the
+ level.
+
+
+ Nicko Cadell
+
+
+
+ The threshold for triggering
+
+
+
+
+ Create a new evaluator using the threshold.
+
+
+
+ Create a new evaluator using the threshold.
+
+
+ This evaluator will trigger if the level of the event
+ passed to
+ is equal to or greater than the
+ level.
+
+
+
+
+
+ Create a new evaluator using the specified threshold.
+
+ the threshold to trigger at
+
+
+ Create a new evaluator using the specified threshold.
+
+
+ This evaluator will trigger if the level of the event
+ passed to
+ is equal to or greater than the
+ level.
+
+
+
+
+
+ Is this the triggering event?
+
+ The event to check
+ This method returns true, if the event level
+ is equal or higher than the .
+ Otherwise it returns false
+
+
+ This evaluator will trigger if the level of the event
+ passed to
+ is equal to or greater than the
+ level.
+
+
+
+
+
+ the threshold to trigger at
+
+
+ The that will cause this evaluator to trigger
+
+
+
+ This evaluator will trigger if the level of the event
+ passed to
+ is equal to or greater than the
+ level.
+
+
+
+
+
+ Mapping between string name and Level object
+
+
+
+ Mapping between string name and object.
+ This mapping is held separately for each .
+ The level name is case insensitive.
+
+
+ Nicko Cadell
+
+
+
+ Mapping from level name to Level object. The
+ level name is case insensitive
+
+
+
+
+ Construct the level map
+
+
+
+ Construct the level map.
+
+
+
+
+
+ Clear the internal maps of all levels
+
+
+
+ Clear the internal maps of all levels
+
+
+
+
+
+ Create a new Level and add it to the map
+
+ the string to display for the Level
+ the level value to give to the Level
+
+
+ Create a new Level and add it to the map
+
+
+
+
+
+
+ Create a new Level and add it to the map
+
+ the string to display for the Level
+ the level value to give to the Level
+ the display name to give to the Level
+
+
+ Create a new Level and add it to the map
+
+
+
+
+
+ Add a Level to the map
+
+ the Level to add
+
+
+ Add a Level to the map
+
+
+
+
+
+ Lookup a named level from the map
+
+ the name of the level to lookup is taken from this level.
+ If the level is not set on the map then this level is added
+ the level in the map with the name specified
+
+
+ Lookup a named level from the map. The name of the level to lookup is taken
+ from the property of the
+ argument.
+
+
+ If no level with the specified name is found then the
+ argument is added to the level map
+ and returned.
+
+
+
+
+
+ Lookup a by name
+
+ The name of the Level to lookup
+ a Level from the map with the name specified
+
+
+ Returns the from the
+ map with the name specified. If the no level is
+ found then null is returned.
+
+
+
+
+
+ Return all possible levels as a list of Level objects.
+
+ all possible levels as a list of Level objects
+
+
+ Return all possible levels as a list of Level objects.
+
+
+
+
+
+ The internal representation of caller location information.
+
+
+
+ This class uses the System.Diagnostics.StackTrace class to generate
+ a call stack. The caller's information is then extracted from this stack.
+
+
+ The System.Diagnostics.StackTrace class is not supported on the
+ .NET Compact Framework 1.0 therefore caller location information is not
+ available on that framework.
+
+
+ The System.Diagnostics.StackTrace class has this to say about Release builds:
+
+
+ "StackTrace information will be most informative with Debug build configurations.
+ By default, Debug builds include debug symbols, while Release builds do not. The
+ debug symbols contain most of the file, method name, line number, and column
+ information used in constructing StackFrame and StackTrace objects. StackTrace
+ might not report as many method calls as expected, due to code transformations
+ that occur during optimization."
+
+
+ This means that in a Release build the caller information may be incomplete or may
+ not exist at all! Therefore caller location information cannot be relied upon in a Release build.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ When location information is not available the constant
+ NA is returned. Current value of this string
+ constant is ?.
+
+
+
+
+ Constructor
+
+ The declaring type of the method that is
+ the stack boundary into the logging system for this call.
+
+
+ Initializes a new instance of the
+ class based on the current thread.
+
+
+
+
+
+ Constructor
+
+ The fully qualified class name.
+ The method name.
+ The file name.
+ The line number of the method within the file.
+
+
+ Initializes a new instance of the
+ class with the specified data.
+
+
+
+
+
+ Gets the fully qualified class name of the caller making the logging
+ request.
+
+
+ The fully qualified class name of the caller making the logging
+ request.
+
+
+
+ Gets the fully qualified class name of the caller making the logging
+ request.
+
+
+
+
+
+ Gets the file name of the caller.
+
+
+ The file name of the caller.
+
+
+
+ Gets the file name of the caller.
+
+
+
+
+
+ Gets the line number of the caller.
+
+
+ The line number of the caller.
+
+
+
+ Gets the line number of the caller.
+
+
+
+
+
+ Gets the method name of the caller.
+
+
+ The method name of the caller.
+
+
+
+ Gets the method name of the caller.
+
+
+
+
+
+ Gets all available caller information
+
+
+ All available caller information, in the format
+ fully.qualified.classname.of.caller.methodName(Filename:line)
+
+
+
+ Gets all available caller information, in the format
+ fully.qualified.classname.of.caller.methodName(Filename:line)
+
+
+
+
+
+ Static manager that controls the creation of repositories
+
+
+
+ Static manager that controls the creation of repositories
+
+
+ This class is used by the wrapper managers (e.g. )
+ to provide access to the objects.
+
+
+ This manager also holds the that is used to
+ lookup and create repositories. The selector can be set either programmatically using
+ the property, or by setting the log4net.RepositorySelector
+ AppSetting in the applications config file to the fully qualified type name of the
+ selector to use.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Private constructor to prevent instances. Only static methods should be used.
+
+
+
+ Private constructor to prevent instances. Only static methods should be used.
+
+
+
+
+
+ Hook the shutdown event
+
+
+
+ On the full .NET runtime, the static constructor hooks up the
+ AppDomain.ProcessExit and AppDomain.DomainUnload> events.
+ These are used to shutdown the log4net system as the application exits.
+
+
+
+
+
+ Register for ProcessExit and DomainUnload events on the AppDomain
+
+
+
+ This needs to be in a separate method because the events make
+ a LinkDemand for the ControlAppDomain SecurityPermission. Because
+ this is a LinkDemand it is demanded at JIT time. Therefore we cannot
+ catch the exception in the method itself, we have to catch it in the
+ caller.
+
+
+
+
+
+ Return the default instance.
+
+ the repository to lookup in
+ Return the default instance
+
+
+ Gets the for the repository specified
+ by the argument.
+
+
+
+
+
+ Returns the default instance.
+
+ The assembly to use to lookup the repository.
+ The default instance.
+
+
+
+ Return the default instance.
+
+ the repository to lookup in
+ Return the default instance
+
+
+ Gets the for the repository specified
+ by the argument.
+
+
+
+
+
+ Returns the default instance.
+
+ The assembly to use to lookup the repository.
+ The default instance.
+
+
+ Returns the default instance.
+
+
+
+
+
+ Returns the named logger if it exists.
+
+ The repository to lookup in.
+ The fully qualified logger name to look for.
+
+ The logger found, or null if the named logger does not exist in the
+ specified repository.
+
+
+
+ If the named logger exists (in the specified repository) then it
+ returns a reference to the logger, otherwise it returns
+ null.
+
+
+
+
+
+ Returns the named logger if it exists.
+
+ The assembly to use to lookup the repository.
+ The fully qualified logger name to look for.
+
+ The logger found, or null if the named logger does not exist in the
+ specified assembly's repository.
+
+
+
+ If the named logger exists (in the specified assembly's repository) then it
+ returns a reference to the logger, otherwise it returns
+ null.
+
+
+
+
+
+ Returns all the currently defined loggers in the specified repository.
+
+ The repository to lookup in.
+ All the defined loggers.
+
+
+ The root logger is not included in the returned array.
+
+
+
+
+
+ Returns all the currently defined loggers in the specified assembly's repository.
+
+ The assembly to use to lookup the repository.
+ All the defined loggers.
+
+
+ The root logger is not included in the returned array.
+
+
+
+
+
+ Retrieves or creates a named logger.
+
+ The repository to lookup in.
+ The name of the logger to retrieve.
+ The logger with the name specified.
+
+
+ Retrieves a logger named as the
+ parameter. If the named logger already exists, then the
+ existing instance will be returned. Otherwise, a new instance is
+ created.
+
+
+ By default, loggers do not have a set level but inherit
+ it from the hierarchy. This is one of the central features of
+ log4net.
+
+
+
+
+
+ Retrieves or creates a named logger.
+
+ The assembly to use to lookup the repository.
+ The name of the logger to retrieve.
+ The logger with the name specified.
+
+
+ Retrieves a logger named as the
+ parameter. If the named logger already exists, then the
+ existing instance will be returned. Otherwise, a new instance is
+ created.
+
+
+ By default, loggers do not have a set level but inherit
+ it from the hierarchy. This is one of the central features of
+ log4net.
+
+
+
+
+
+ Shorthand for .
+
+ The repository to lookup in.
+ The of which the fullname will be used as the name of the logger to retrieve.
+ The logger with the name specified.
+
+
+ Gets the logger for the fully qualified name of the type specified.
+
+
+
+
+
+ Shorthand for .
+
+ the assembly to use to lookup the repository
+ The of which the fullname will be used as the name of the logger to retrieve.
+ The logger with the name specified.
+
+
+ Gets the logger for the fully qualified name of the type specified.
+
+
+
+
+
+ Shuts down the log4net system.
+
+
+
+ Calling this method will safely close and remove all
+ appenders in all the loggers including root contained in all the
+ default repositories.
+
+
+ Some appenders need to be closed before the application exists.
+ Otherwise, pending logging events might be lost.
+
+
+ The shutdown method is careful to close nested
+ appenders before closing regular appenders. This is allows
+ configurations where a regular appender is attached to a logger
+ and again to a nested appender.
+
+
+
+
+
+ Shuts down the repository for the repository specified.
+
+ The repository to shutdown.
+
+
+ Calling this method will safely close and remove all
+ appenders in all the loggers including root contained in the
+ repository for the specified.
+
+
+ Some appenders need to be closed before the application exists.
+ Otherwise, pending logging events might be lost.
+
+
+ The shutdown method is careful to close nested
+ appenders before closing regular appenders. This is allows
+ configurations where a regular appender is attached to a logger
+ and again to a nested appender.
+
+
+
+
+
+ Shuts down the repository for the repository specified.
+
+ The assembly to use to lookup the repository.
+
+
+ Calling this method will safely close and remove all
+ appenders in all the loggers including root contained in the
+ repository for the repository. The repository is looked up using
+ the specified.
+
+
+ Some appenders need to be closed before the application exists.
+ Otherwise, pending logging events might be lost.
+
+
+ The shutdown method is careful to close nested
+ appenders before closing regular appenders. This is allows
+ configurations where a regular appender is attached to a logger
+ and again to a nested appender.
+
+
+
+
+
+ Resets all values contained in this repository instance to their defaults.
+
+ The repository to reset.
+
+
+ Resets all values contained in the repository instance to their
+ defaults. This removes all appenders from all loggers, sets
+ the level of all non-root loggers to null,
+ sets their additivity flag to true and sets the level
+ of the root logger to . Moreover,
+ message disabling is set its default "off" value.
+
+
+
+
+
+ Resets all values contained in this repository instance to their defaults.
+
+ The assembly to use to lookup the repository to reset.
+
+
+ Resets all values contained in the repository instance to their
+ defaults. This removes all appenders from all loggers, sets
+ the level of all non-root loggers to null,
+ sets their additivity flag to true and sets the level
+ of the root logger to . Moreover,
+ message disabling is set its default "off" value.
+
+
+
+
+
+ Creates a repository with the specified name.
+
+ The name of the repository, this must be unique amongst repositories.
+ The created for the repository.
+
+
+ CreateDomain is obsolete. Use CreateRepository instead of CreateDomain.
+
+
+ Creates the default type of which is a
+ object.
+
+
+ The name must be unique. Repositories cannot be redefined.
+ An will be thrown if the repository already exists.
+
+
+ The specified repository already exists.
+
+
+
+ Creates a repository with the specified name.
+
+ The name of the repository, this must be unique amongst repositories.
+ The created for the repository.
+
+
+ Creates the default type of which is a
+ object.
+
+
+ The name must be unique. Repositories cannot be redefined.
+ An will be thrown if the repository already exists.
+
+
+ The specified repository already exists.
+
+
+
+ Creates a repository with the specified name and repository type.
+
+ The name of the repository, this must be unique to the repository.
+ A that implements
+ and has a no arg constructor. An instance of this type will be created to act
+ as the for the repository specified.
+ The created for the repository.
+
+
+ CreateDomain is obsolete. Use CreateRepository instead of CreateDomain.
+
+
+ The name must be unique. Repositories cannot be redefined.
+ An Exception will be thrown if the repository already exists.
+
+
+ The specified repository already exists.
+
+
+
+ Creates a repository with the specified name and repository type.
+
+ The name of the repository, this must be unique to the repository.
+ A that implements
+ and has a no arg constructor. An instance of this type will be created to act
+ as the for the repository specified.
+ The created for the repository.
+
+
+ The name must be unique. Repositories cannot be redefined.
+ An Exception will be thrown if the repository already exists.
+
+
+ The specified repository already exists.
+
+
+
+ Creates a repository for the specified assembly and repository type.
+
+ The assembly to use to get the name of the repository.
+ A that implements
+ and has a no arg constructor. An instance of this type will be created to act
+ as the for the repository specified.
+ The created for the repository.
+
+
+ CreateDomain is obsolete. Use CreateRepository instead of CreateDomain.
+
+
+ The created will be associated with the repository
+ specified such that a call to with the
+ same assembly specified will return the same repository instance.
+
+
+
+
+
+ Creates a repository for the specified assembly and repository type.
+
+ The assembly to use to get the name of the repository.
+ A that implements
+ and has a no arg constructor. An instance of this type will be created to act
+ as the for the repository specified.
+ The created for the repository.
+
+
+ The created will be associated with the repository
+ specified such that a call to with the
+ same assembly specified will return the same repository instance.
+
+
+
+
+
+ Gets an array of all currently defined repositories.
+
+ An array of all the known objects.
+
+
+ Gets an array of all currently defined repositories.
+
+
+
+
+
+ Internal method to get pertinent version info.
+
+ A string of version info.
+
+
+
+ Called when the event fires
+
+ the that is exiting
+ null
+
+
+ Called when the event fires.
+
+
+ When the event is triggered the log4net system is .
+
+
+
+
+
+ Called when the event fires
+
+ the that is exiting
+ null
+
+
+ Called when the event fires.
+
+
+ When the event is triggered the log4net system is .
+
+
+
+
+
+ Initialize the default repository selector
+
+
+
+
+ Gets or sets the repository selector used by the .
+
+
+ The repository selector used by the .
+
+
+
+ The repository selector () is used by
+ the to create and select repositories
+ ().
+
+
+ The caller to supplies either a string name
+ or an assembly (if not supplied the assembly is inferred using
+ ).
+
+
+ This context is used by the selector to lookup a specific repository.
+
+
+ For the full .NET Framework, the default repository is DefaultRepositorySelector;
+ for the .NET Compact Framework CompactRepositorySelector is the default
+ repository.
+
+
+
+
+
+ Implementation of the interface.
+
+
+
+ This class should be used as the base for all wrapper implementations.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Constructs a new wrapper for the specified logger.
+
+ The logger to wrap.
+
+
+ Constructs a new wrapper for the specified logger.
+
+
+
+
+
+ The logger that this object is wrapping
+
+
+
+
+ Gets the implementation behind this wrapper object.
+
+
+ The object that this object is implementing.
+
+
+
+ The Logger object may not be the same object as this object
+ because of logger decorators.
+
+
+ This gets the actual underlying objects that is used to process
+ the log events.
+
+
+
+
+
+ Portable data structure used by
+
+
+
+ Portable data structure used by
+
+
+ Nicko Cadell
+
+
+
+ The logger name.
+
+
+
+ The logger name.
+
+
+
+
+
+ Level of logging event.
+
+
+
+ Level of logging event. Level cannot be Serializable
+ because it is a flyweight. Due to its special serialization it
+ cannot be declared final either.
+
+
+
+
+
+ The application supplied message.
+
+
+
+ The application supplied message of logging event.
+
+
+
+
+
+ The name of thread
+
+
+
+ The name of thread in which this logging event was generated
+
+
+
+
+
+ The time the event was logged
+
+
+
+ The TimeStamp is stored in the local time zone for this computer.
+
+
+
+
+
+ Location information for the caller.
+
+
+
+ Location information for the caller.
+
+
+
+
+
+ String representation of the user
+
+
+
+ String representation of the user's windows name,
+ like DOMAIN\username
+
+
+
+
+
+ String representation of the identity.
+
+
+
+ String representation of the current thread's principal identity.
+
+
+
+
+
+ The string representation of the exception
+
+
+
+ The string representation of the exception
+
+
+
+
+
+ String representation of the AppDomain.
+
+
+
+ String representation of the AppDomain.
+
+
+
+
+
+ Additional event specific properties
+
+
+
+ A logger or an appender may attach additional
+ properties to specific events. These properties
+ have a string key and an object value.
+
+
+
+
+
+ Flags passed to the property
+
+
+
+ Flags passed to the property
+
+
+ Nicko Cadell
+
+
+
+ Fix the MDC
+
+
+
+
+ Fix the NDC
+
+
+
+
+ Fix the rendered message
+
+
+
+
+ Fix the thread name
+
+
+
+
+ Fix the callers location information
+
+
+ CAUTION: Very slow to generate
+
+
+
+
+ Fix the callers windows user name
+
+
+ CAUTION: Slow to generate
+
+
+
+
+ Fix the domain friendly name
+
+
+
+
+ Fix the callers principal name
+
+
+ CAUTION: May be slow to generate
+
+
+
+
+ Fix the exception text
+
+
+
+
+ Fix the event properties
+
+
+
+
+ No fields fixed
+
+
+
+
+ All fields fixed
+
+
+
+
+ Partial fields fixed
+
+
+
+ This set of partial fields gives good performance. The following fields are fixed:
+
+
+
+
+
+
+
+
+
+
+
+
+ The internal representation of logging events.
+
+
+
+ When an affirmative decision is made to log then a
+ instance is created. This instance
+ is passed around to the different log4net components.
+
+
+ This class is of concern to those wishing to extend log4net.
+
+
+ Some of the values in instances of
+ are considered volatile, that is the values are correct at the
+ time the event is delivered to appenders, but will not be consistent
+ at any time afterwards. If an event is to be stored and then processed
+ at a later time these volatile values must be fixed by calling
+ . There is a performance penalty
+ for incurred by calling but it
+ is essential to maintaining data consistency.
+
+
+ Nicko Cadell
+ Gert Driesen
+ Douglas de la Torre
+ Daniel Cazzulino
+
+
+
+ The key into the Properties map for the host name value.
+
+
+
+
+ The key into the Properties map for the thread identity value.
+
+
+
+
+ The key into the Properties map for the user name value.
+
+
+
+
+ Initializes a new instance of the class
+ from the supplied parameters.
+
+ The declaring type of the method that is
+ the stack boundary into the logging system for this call.
+ The repository this event is logged in.
+ The name of the logger of this event.
+ The level of this event.
+ The message of this event.
+ The exception for this event.
+
+
+ Except , and ,
+ all fields of LoggingEvent are filled when actually needed. Call
+ to cache all data locally
+ to prevent inconsistencies.
+
+ This method is called by the log4net framework
+ to create a logging event.
+
+
+
+
+
+ Initializes a new instance of the class
+ using specific data.
+
+ The declaring type of the method that is
+ the stack boundary into the logging system for this call.
+ The repository this event is logged in.
+ Data used to initialize the logging event.
+ The fields in the struct that have already been fixed.
+
+
+ This constructor is provided to allow a
+ to be created independently of the log4net framework. This can
+ be useful if you require a custom serialization scheme.
+
+
+ Use the method to obtain an
+ instance of the class.
+
+
+ The parameter should be used to specify which fields in the
+ struct have been preset. Fields not specified in the
+ will be captured from the environment if requested or fixed.
+
+
+
+
+
+ Initializes a new instance of the class
+ using specific data.
+
+ The declaring type of the method that is
+ the stack boundary into the logging system for this call.
+ The repository this event is logged in.
+ Data used to initialize the logging event.
+
+
+ This constructor is provided to allow a
+ to be created independently of the log4net framework. This can
+ be useful if you require a custom serialization scheme.
+
+
+ Use the method to obtain an
+ instance of the class.
+
+
+ This constructor sets this objects flags to ,
+ this assumes that all the data relating to this event is passed in via the
+ parameter and no other data should be captured from the environment.
+
+
+
+
+
+ Initializes a new instance of the class
+ using specific data.
+
+ Data used to initialize the logging event.
+
+
+ This constructor is provided to allow a
+ to be created independently of the log4net framework. This can
+ be useful if you require a custom serialization scheme.
+
+
+ Use the method to obtain an
+ instance of the class.
+
+
+ This constructor sets this objects flags to ,
+ this assumes that all the data relating to this event is passed in via the
+ parameter and no other data should be captured from the environment.
+
+
+
+
+
+ Serialization constructor
+
+ The that holds the serialized object data.
+ The that contains contextual information about the source or destination.
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+
+
+
+ Ensure that the repository is set.
+
+ the value for the repository
+
+
+
+ Write the rendered message to a TextWriter
+
+ the writer to write the message to
+
+
+ Unlike the property this method
+ does store the message data in the internal cache. Therefore
+ if called only once this method should be faster than the
+ property, however if the message is
+ to be accessed multiple times then the property will be more efficient.
+
+
+
+
+
+ Serializes this object into the provided.
+
+ The to populate with data.
+ The destination for this serialization.
+
+
+ The data in this event must be fixed before it can be serialized.
+
+
+ The method must be called during the
+ method call if this event
+ is to be used outside that method.
+
+
+
+
+
+ Gets the portable data for this .
+
+ The for this event.
+
+
+ A new can be constructed using a
+ instance.
+
+
+ Does a fix of the data
+ in the logging event before returning the event data.
+
+
+
+
+
+ Gets the portable data for this .
+
+ The set of data to ensure is fixed in the LoggingEventData
+ The for this event.
+
+
+ A new can be constructed using a
+ instance.
+
+
+
+
+
+ Returns this event's exception's rendered using the
+ .
+
+
+ This event's exception's rendered using the .
+
+
+
+ Obsolete. Use instead.
+
+
+
+
+
+ Returns this event's exception's rendered using the
+ .
+
+
+ This event's exception's rendered using the .
+
+
+
+ Returns this event's exception's rendered using the
+ .
+
+
+
+
+
+ Fix instance fields that hold volatile data.
+
+
+
+ Some of the values in instances of
+ are considered volatile, that is the values are correct at the
+ time the event is delivered to appenders, but will not be consistent
+ at any time afterwards. If an event is to be stored and then processed
+ at a later time these volatile values must be fixed by calling
+ . There is a performance penalty
+ incurred by calling but it
+ is essential to maintaining data consistency.
+
+
+ Calling is equivalent to
+ calling passing the parameter
+ false.
+
+
+ See for more
+ information.
+
+
+
+
+
+ Fixes instance fields that hold volatile data.
+
+ Set to true to not fix data that takes a long time to fix.
+
+
+ Some of the values in instances of
+ are considered volatile, that is the values are correct at the
+ time the event is delivered to appenders, but will not be consistent
+ at any time afterwards. If an event is to be stored and then processed
+ at a later time these volatile values must be fixed by calling
+ . There is a performance penalty
+ for incurred by calling but it
+ is essential to maintaining data consistency.
+
+
+ The param controls the data that
+ is fixed. Some of the data that can be fixed takes a long time to
+ generate, therefore if you do not require those settings to be fixed
+ they can be ignored by setting the param
+ to true. This setting will ignore the
+ and settings.
+
+
+ Set to false to ensure that all
+ settings are fixed.
+
+
+
+
+
+ Fix the fields specified by the parameter
+
+ the fields to fix
+
+
+ Only fields specified in the will be fixed.
+ Fields will not be fixed if they have previously been fixed.
+ It is not possible to 'unfix' a field.
+
+
+
+
+
+ Lookup a composite property in this event
+
+ the key for the property to lookup
+ the value for the property
+
+
+ This event has composite properties that combine together properties from
+ several different contexts in the following order:
+
+
+ this events properties
+
+ This event has that can be set. These
+ properties are specific to this event only.
+
+
+
+ the thread properties
+
+ The that are set on the current
+ thread. These properties are shared by all events logged on this thread.
+
+
+
+ the global properties
+
+ The that are set globally. These
+ properties are shared by all the threads in the AppDomain.
+
+
+
+
+
+
+
+
+ Get all the composite properties in this event
+
+ the containing all the properties
+
+
+ See for details of the composite properties
+ stored by the event.
+
+
+ This method returns a single containing all the
+ properties defined for this event.
+
+
+
+
+
+ The internal logging event data.
+
+
+
+
+ The internal logging event data.
+
+
+
+
+ The internal logging event data.
+
+
+
+
+ The fully qualified Type of the calling
+ logger class in the stack frame (i.e. the declaring type of the method).
+
+
+
+
+ The application supplied message of logging event.
+
+
+
+
+ The exception that was thrown.
+
+
+ This is not serialized. The string representation
+ is serialized instead.
+
+
+
+
+ The repository that generated the logging event
+
+
+ This is not serialized.
+
+
+
+
+ The fix state for this event
+
+
+ These flags indicate which fields have been fixed.
+ Not serialized.
+
+
+
+
+ Indicated that the internal cache is updateable (ie not fixed)
+
+
+ This is a seperate flag to m_fixFlags as it allows incrementel fixing and simpler
+ changes in the caching strategy.
+
+
+
+
+ Gets the time when the current process started.
+
+
+ This is the time when this process started.
+
+
+
+ The TimeStamp is stored in the local time zone for this computer.
+
+
+ Tries to get the start time for the current process.
+ Failing that it returns the time of the first call to
+ this property.
+
+
+ Note that AppDomains may be loaded and unloaded within the
+ same process without the process terminating and therefore
+ without the process start time being reset.
+
+
+
+
+
+ Gets the of the logging event.
+
+
+ The of the logging event.
+
+
+
+ Gets the of the logging event.
+
+
+
+
+
+ Gets the time of the logging event.
+
+
+ The time of the logging event.
+
+
+
+ The TimeStamp is stored in the local time zone for this computer.
+
+
+
+
+
+ Gets the name of the logger that logged the event.
+
+
+ The name of the logger that logged the event.
+
+
+
+ Gets the name of the logger that logged the event.
+
+
+
+
+
+ Gets the location information for this logging event.
+
+
+ The location information for this logging event.
+
+
+
+ The collected information is cached for future use.
+
+
+ See the class for more information on
+ supported frameworks and the different behavior in Debug and
+ Release builds.
+
+
+
+
+
+ Gets the message object used to initialize this event.
+
+
+ The message object used to initialize this event.
+
+
+
+ Gets the message object used to initialize this event.
+ Note that this event may not have a valid message object.
+ If the event is serialized the message object will not
+ be transferred. To get the text of the message the
+ property must be used
+ not this property.
+
+
+ If there is no defined message object for this event then
+ null will be returned.
+
+
+
+
+
+ Gets the exception object used to initialize this event.
+
+
+ The exception object used to initialize this event.
+
+
+
+ Gets the exception object used to initialize this event.
+ Note that this event may not have a valid exception object.
+ If the event is serialized the exception object will not
+ be transferred. To get the text of the exception the
+ method must be used
+ not this property.
+
+
+ If there is no defined exception object for this event then
+ null will be returned.
+
+
+
+
+
+ The that this event was created in.
+
+
+
+ The that this event was created in.
+
+
+
+
+
+ Gets the message, rendered through the .
+
+
+ The message rendered through the .
+
+
+
+ The collected information is cached for future use.
+
+
+
+
+
+ Gets the name of the current thread.
+
+
+ The name of the current thread, or the thread ID when
+ the name is not available.
+
+
+
+ The collected information is cached for future use.
+
+
+
+
+
+ Gets the name of the current user.
+
+
+ The name of the current user, or NOT AVAILABLE when the
+ underlying runtime has no support for retrieving the name of the
+ current user.
+
+
+
+ Calls WindowsIdentity.GetCurrent().Name to get the name of
+ the current windows user.
+
+
+ To improve performance, we could cache the string representation of
+ the name, and reuse that as long as the identity stayed constant.
+ Once the identity changed, we would need to re-assign and re-render
+ the string.
+
+
+ However, the WindowsIdentity.GetCurrent() call seems to
+ return different objects every time, so the current implementation
+ doesn't do this type of caching.
+
+
+ Timing for these operations:
+
+
+
+ Method
+ Results
+
+
+ WindowsIdentity.GetCurrent()
+ 10000 loops, 00:00:00.2031250 seconds
+
+
+ WindowsIdentity.GetCurrent().Name
+ 10000 loops, 00:00:08.0468750 seconds
+
+
+
+ This means we could speed things up almost 40 times by caching the
+ value of the WindowsIdentity.GetCurrent().Name property, since
+ this takes (8.04-0.20) = 7.84375 seconds.
+
+
+
+
+
+ Gets the identity of the current thread principal.
+
+
+ The string name of the identity of the current thread principal.
+
+
+
+ Calls System.Threading.Thread.CurrentPrincipal.Identity.Name to get
+ the name of the current thread principal.
+
+
+
+
+
+ Gets the AppDomain friendly name.
+
+
+ The AppDomain friendly name.
+
+
+
+ Gets the AppDomain friendly name.
+
+
+
+
+
+ Additional event specific properties.
+
+
+ Additional event specific properties.
+
+
+
+ A logger or an appender may attach additional
+ properties to specific events. These properties
+ have a string key and an object value.
+
+
+ This property is for events that have been added directly to
+ this event. The aggregate properties (which include these
+ event properties) can be retrieved using
+ and .
+
+
+ Once the properties have been fixed this property
+ returns the combined cached properties. This ensures that updates to
+ this property are always reflected in the underlying storage. When
+ returning the combined properties there may be more keys in the
+ Dictionary than expected.
+
+
+
+
+
+ The fixed fields in this event
+
+
+ The set of fields that are fixed in this event
+
+
+
+ Fields will not be fixed if they have previously been fixed.
+ It is not possible to 'unfix' a field.
+
+
+
+
+
+ Implementation of wrapper interface.
+
+
+
+ This implementation of the interface
+ forwards to the held by the base class.
+
+
+ This logger has methods to allow the caller to log at the following
+ levels:
+
+
+
+ DEBUG
+
+ The and methods log messages
+ at the DEBUG level. That is the level with that name defined in the
+ repositories . The default value
+ for this level is . The
+ property tests if this level is enabled for logging.
+
+
+
+ INFO
+
+ The and methods log messages
+ at the INFO level. That is the level with that name defined in the
+ repositories . The default value
+ for this level is . The
+ property tests if this level is enabled for logging.
+
+
+
+ WARN
+
+ The and methods log messages
+ at the WARN level. That is the level with that name defined in the
+ repositories . The default value
+ for this level is . The
+ property tests if this level is enabled for logging.
+
+
+
+ ERROR
+
+ The and methods log messages
+ at the ERROR level. That is the level with that name defined in the
+ repositories . The default value
+ for this level is . The
+ property tests if this level is enabled for logging.
+
+
+
+ FATAL
+
+ The and methods log messages
+ at the FATAL level. That is the level with that name defined in the
+ repositories . The default value
+ for this level is . The
+ property tests if this level is enabled for logging.
+
+
+
+
+ The values for these levels and their semantic meanings can be changed by
+ configuring the for the repository.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ The ILog interface is use by application to log messages into
+ the log4net framework.
+
+
+
+ Use the to obtain logger instances
+ that implement this interface. The
+ static method is used to get logger instances.
+
+
+ This class contains methods for logging at different levels and also
+ has properties for determining if those logging levels are
+ enabled in the current configuration.
+
+
+ This interface can be implemented in different ways. This documentation
+ specifies reasonable behavior that a caller can expect from the actual
+ implementation, however different implementations reserve the right to
+ do things differently.
+
+
+ Simple example of logging messages
+
+ ILog log = LogManager.GetLogger("application-log");
+
+ log.Info("Application Start");
+ log.Debug("This is a debug message");
+
+ if (log.IsDebugEnabled)
+ {
+ log.Debug("This is another debug message");
+ }
+
+
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+ Log a message object with the level.
+
+ Log a message object with the level.
+
+ The message object to log.
+
+
+ This method first checks if this logger is DEBUG
+ enabled by comparing the level of this logger with the
+ level. If this logger is
+ DEBUG enabled, then it converts the message object
+ (passed as parameter) to a string by invoking the appropriate
+ . It then
+ proceeds to call all the registered appenders in this logger
+ and also higher in the hierarchy depending on the value of
+ the additivity flag.
+
+ WARNING Note that passing an
+ to this method will print the name of the
+ but no stack trace. To print a stack trace use the
+ form instead.
+
+
+
+
+
+
+
+ Log a message object with the level including
+ the stack trace of the passed
+ as a parameter.
+
+ The message object to log.
+ The exception to log, including its stack trace.
+
+
+ See the form for more detailed information.
+
+
+
+
+
+
+ Log a formatted string with the level.
+
+ Logs a formatted message string with the level.
+
+ A String containing zero or more format items
+ An Object array containing zero or more objects to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+
+ Logs a formatted message string with the level.
+
+ A String containing zero or more format items
+ An Object to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+
+ Logs a formatted message string with the level.
+
+ A String containing zero or more format items
+ An Object to format
+ An Object to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+
+ Logs a formatted message string with the level.
+
+ A String containing zero or more format items
+ An Object to format
+ An Object to format
+ An Object to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+
+ Logs a formatted message string with the level.
+
+ An that supplies culture-specific formatting information
+ A String containing zero or more format items
+ An Object array containing zero or more objects to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+ Log a message object with the level.
+
+ Logs a message object with the level.
+
+
+
+ This method first checks if this logger is INFO
+ enabled by comparing the level of this logger with the
+ level. If this logger is
+ INFO enabled, then it converts the message object
+ (passed as parameter) to a string by invoking the appropriate
+ . It then
+ proceeds to call all the registered appenders in this logger
+ and also higher in the hierarchy depending on the value of the
+ additivity flag.
+
+ WARNING Note that passing an
+ to this method will print the name of the
+ but no stack trace. To print a stack trace use the
+ form instead.
+
+
+ The message object to log.
+
+
+
+
+
+ Logs a message object with the INFO level including
+ the stack trace of the passed
+ as a parameter.
+
+ The message object to log.
+ The exception to log, including its stack trace.
+
+
+ See the form for more detailed information.
+
+
+
+
+
+
+ Log a formatted message string with the level.
+
+ Logs a formatted message string with the level.
+
+ A String containing zero or more format items
+ An Object array containing zero or more objects to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+
+ Logs a formatted message string with the level.
+
+ A String containing zero or more format items
+ An Object to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+
+ Logs a formatted message string with the level.
+
+ A String containing zero or more format items
+ An Object to format
+ An Object to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+
+ Logs a formatted message string with the level.
+
+ A String containing zero or more format items
+ An Object to format
+ An Object to format
+ An Object to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+
+ Logs a formatted message string with the level.
+
+ An that supplies culture-specific formatting information
+ A String containing zero or more format items
+ An Object array containing zero or more objects to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+ Log a message object with the level.
+
+ Log a message object with the level.
+
+
+
+ This method first checks if this logger is WARN
+ enabled by comparing the level of this logger with the
+ level. If this logger is
+ WARN enabled, then it converts the message object
+ (passed as parameter) to a string by invoking the appropriate
+ . It then
+ proceeds to call all the registered appenders in this logger
+ and also higher in the hierarchy depending on the value of the
+ additivity flag.
+
+ WARNING Note that passing an
+ to this method will print the name of the
+ but no stack trace. To print a stack trace use the
+ form instead.
+
+
+ The message object to log.
+
+
+
+
+
+ Log a message object with the level including
+ the stack trace of the passed
+ as a parameter.
+
+ The message object to log.
+ The exception to log, including its stack trace.
+
+
+ See the form for more detailed information.
+
+
+
+
+
+
+ Log a formatted message string with the level.
+
+ Logs a formatted message string with the level.
+
+ A String containing zero or more format items
+ An Object array containing zero or more objects to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+
+ Logs a formatted message string with the level.
+
+ A String containing zero or more format items
+ An Object to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+
+ Logs a formatted message string with the level.
+
+ A String containing zero or more format items
+ An Object to format
+ An Object to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+
+ Logs a formatted message string with the level.
+
+ A String containing zero or more format items
+ An Object to format
+ An Object to format
+ An Object to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+
+ Logs a formatted message string with the level.
+
+ An that supplies culture-specific formatting information
+ A String containing zero or more format items
+ An Object array containing zero or more objects to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+ Log a message object with the level.
+
+ Logs a message object with the level.
+
+ The message object to log.
+
+
+ This method first checks if this logger is ERROR
+ enabled by comparing the level of this logger with the
+ level. If this logger is
+ ERROR enabled, then it converts the message object
+ (passed as parameter) to a string by invoking the appropriate
+ . It then
+ proceeds to call all the registered appenders in this logger
+ and also higher in the hierarchy depending on the value of the
+ additivity flag.
+
+ WARNING Note that passing an
+ to this method will print the name of the
+ but no stack trace. To print a stack trace use the
+ form instead.
+
+
+
+
+
+
+
+ Log a message object with the level including
+ the stack trace of the passed
+ as a parameter.
+
+ The message object to log.
+ The exception to log, including its stack trace.
+
+
+ See the form for more detailed information.
+
+
+
+
+
+
+ Log a formatted message string with the level.
+
+ Logs a formatted message string with the level.
+
+ A String containing zero or more format items
+ An Object array containing zero or more objects to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+
+ Logs a formatted message string with the level.
+
+ A String containing zero or more format items
+ An Object to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+
+ Logs a formatted message string with the level.
+
+ A String containing zero or more format items
+ An Object to format
+ An Object to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+
+ Logs a formatted message string with the level.
+
+ A String containing zero or more format items
+ An Object to format
+ An Object to format
+ An Object to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+
+ Logs a formatted message string with the level.
+
+ An that supplies culture-specific formatting information
+ A String containing zero or more format items
+ An Object array containing zero or more objects to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+ Log a message object with the level.
+
+ Log a message object with the level.
+
+
+
+ This method first checks if this logger is FATAL
+ enabled by comparing the level of this logger with the
+ level. If this logger is
+ FATAL enabled, then it converts the message object
+ (passed as parameter) to a string by invoking the appropriate
+ . It then
+ proceeds to call all the registered appenders in this logger
+ and also higher in the hierarchy depending on the value of the
+ additivity flag.
+
+ WARNING Note that passing an
+ to this method will print the name of the
+ but no stack trace. To print a stack trace use the
+ form instead.
+
+
+ The message object to log.
+
+
+
+
+
+ Log a message object with the level including
+ the stack trace of the passed
+ as a parameter.
+
+ The message object to log.
+ The exception to log, including its stack trace.
+
+
+ See the form for more detailed information.
+
+
+
+
+
+
+ Log a formatted message string with the level.
+
+ Logs a formatted message string with the level.
+
+ A String containing zero or more format items
+ An Object array containing zero or more objects to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+
+ Logs a formatted message string with the level.
+
+ A String containing zero or more format items
+ An Object to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+
+ Logs a formatted message string with the level.
+
+ A String containing zero or more format items
+ An Object to format
+ An Object to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+
+ Logs a formatted message string with the level.
+
+ A String containing zero or more format items
+ An Object to format
+ An Object to format
+ An Object to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+
+ Logs a formatted message string with the level.
+
+ An that supplies culture-specific formatting information
+ A String containing zero or more format items
+ An Object array containing zero or more objects to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+
+ Checks if this logger is enabled for the level.
+
+
+ true if this logger is enabled for events, false otherwise.
+
+
+
+ This function is intended to lessen the computational cost of
+ disabled log debug statements.
+
+ For some ILog interface log, when you write:
+
+ log.Debug("This is entry number: " + i );
+
+
+ You incur the cost constructing the message, string construction and concatenation in
+ this case, regardless of whether the message is logged or not.
+
+
+ If you are worried about speed (who isn't), then you should write:
+
+
+ if (log.IsDebugEnabled)
+ {
+ log.Debug("This is entry number: " + i );
+ }
+
+
+ This way you will not incur the cost of parameter
+ construction if debugging is disabled for log. On
+ the other hand, if the log is debug enabled, you
+ will incur the cost of evaluating whether the logger is debug
+ enabled twice. Once in and once in
+ the . This is an insignificant overhead
+ since evaluating a logger takes about 1% of the time it
+ takes to actually log. This is the preferred style of logging.
+
+ Alternatively if your logger is available statically then the is debug
+ enabled state can be stored in a static variable like this:
+
+
+ private static readonly bool isDebugEnabled = log.IsDebugEnabled;
+
+
+ Then when you come to log you can write:
+
+
+ if (isDebugEnabled)
+ {
+ log.Debug("This is entry number: " + i );
+ }
+
+
+ This way the debug enabled state is only queried once
+ when the class is loaded. Using a private static readonly
+ variable is the most efficient because it is a run time constant
+ and can be heavily optimized by the JIT compiler.
+
+
+ Of course if you use a static readonly variable to
+ hold the enabled state of the logger then you cannot
+ change the enabled state at runtime to vary the logging
+ that is produced. You have to decide if you need absolute
+ speed or runtime flexibility.
+
+
+
+
+
+
+
+ Checks if this logger is enabled for the level.
+
+
+ true if this logger is enabled for events, false otherwise.
+
+
+ For more information see .
+
+
+
+
+
+
+
+ Checks if this logger is enabled for the level.
+
+
+ true if this logger is enabled for events, false otherwise.
+
+
+ For more information see .
+
+
+
+
+
+
+
+ Checks if this logger is enabled for the level.
+
+
+ true if this logger is enabled for events, false otherwise.
+
+
+ For more information see .
+
+
+
+
+
+
+
+ Checks if this logger is enabled for the level.
+
+
+ true if this logger is enabled for events, false otherwise.
+
+
+ For more information see .
+
+
+
+
+
+
+
+ Construct a new wrapper for the specified logger.
+
+ The logger to wrap.
+
+
+ Construct a new wrapper for the specified logger.
+
+
+
+
+
+ Virtual method called when the configuration of the repository changes
+
+ the repository holding the levels
+
+
+ Virtual method called when the configuration of the repository changes
+
+
+
+
+
+ Logs a message object with the DEBUG level.
+
+ The message object to log.
+
+
+ This method first checks if this logger is DEBUG
+ enabled by comparing the level of this logger with the
+ DEBUG level. If this logger is
+ DEBUG enabled, then it converts the message object
+ (passed as parameter) to a string by invoking the appropriate
+ . It then
+ proceeds to call all the registered appenders in this logger
+ and also higher in the hierarchy depending on the value of the
+ additivity flag.
+
+
+ WARNING Note that passing an
+ to this method will print the name of the
+ but no stack trace. To print a stack trace use the
+ form instead.
+
+
+
+
+
+ Logs a message object with the DEBUG level
+
+ The message object to log.
+ The exception to log, including its stack trace.
+
+
+ Logs a message object with the DEBUG level including
+ the stack trace of the passed
+ as a parameter.
+
+
+ See the form for more detailed information.
+
+
+
+
+
+
+ Logs a formatted message string with the DEBUG level.
+
+ A String containing zero or more format items
+ An Object array containing zero or more objects to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ The string is formatted using the
+ format provider. To specify a localized provider use the
+ method.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a formatted message string with the DEBUG level.
+
+ A String containing zero or more format items
+ An Object to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ The string is formatted using the
+ format provider. To specify a localized provider use the
+ method.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a formatted message string with the DEBUG level.
+
+ A String containing zero or more format items
+ An Object to format
+ An Object to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ The string is formatted using the
+ format provider. To specify a localized provider use the
+ method.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a formatted message string with the DEBUG level.
+
+ A String containing zero or more format items
+ An Object to format
+ An Object to format
+ An Object to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ The string is formatted using the
+ format provider. To specify a localized provider use the
+ method.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a formatted message string with the DEBUG level.
+
+ An that supplies culture-specific formatting information
+ A String containing zero or more format items
+ An Object array containing zero or more objects to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a message object with the INFO level.
+
+ The message object to log.
+
+
+ This method first checks if this logger is INFO
+ enabled by comparing the level of this logger with the
+ INFO level. If this logger is
+ INFO enabled, then it converts the message object
+ (passed as parameter) to a string by invoking the appropriate
+ . It then
+ proceeds to call all the registered appenders in this logger
+ and also higher in the hierarchy depending on the value of
+ the additivity flag.
+
+
+ WARNING Note that passing an
+ to this method will print the name of the
+ but no stack trace. To print a stack trace use the
+ form instead.
+
+
+
+
+
+ Logs a message object with the INFO level.
+
+ The message object to log.
+ The exception to log, including its stack trace.
+
+
+ Logs a message object with the INFO level including
+ the stack trace of the
+ passed as a parameter.
+
+
+ See the form for more detailed information.
+
+
+
+
+
+
+ Logs a formatted message string with the INFO level.
+
+ A String containing zero or more format items
+ An Object array containing zero or more objects to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ The string is formatted using the
+ format provider. To specify a localized provider use the
+ method.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a formatted message string with the INFO level.
+
+ A String containing zero or more format items
+ An Object to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ The string is formatted using the
+ format provider. To specify a localized provider use the
+ method.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a formatted message string with the INFO level.
+
+ A String containing zero or more format items
+ An Object to format
+ An Object to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ The string is formatted using the
+ format provider. To specify a localized provider use the
+ method.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a formatted message string with the INFO level.
+
+ A String containing zero or more format items
+ An Object to format
+ An Object to format
+ An Object to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ The string is formatted using the
+ format provider. To specify a localized provider use the
+ method.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a formatted message string with the INFO level.
+
+ An that supplies culture-specific formatting information
+ A String containing zero or more format items
+ An Object array containing zero or more objects to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a message object with the WARN level.
+
+ the message object to log
+
+
+ This method first checks if this logger is WARN
+ enabled by comparing the level of this logger with the
+ WARN level. If this logger is
+ WARN enabled, then it converts the message object
+ (passed as parameter) to a string by invoking the appropriate
+ . It then
+ proceeds to call all the registered appenders in this logger and
+ also higher in the hierarchy depending on the value of the
+ additivity flag.
+
+
+ WARNING Note that passing an to this
+ method will print the name of the but no
+ stack trace. To print a stack trace use the
+ form instead.
+
+
+
+
+
+ Logs a message object with the WARN level
+
+ The message object to log.
+ The exception to log, including its stack trace.
+
+
+ Logs a message object with the WARN level including
+ the stack trace of the
+ passed as a parameter.
+
+
+ See the form for more detailed information.
+
+
+
+
+
+
+ Logs a formatted message string with the WARN level.
+
+ A String containing zero or more format items
+ An Object array containing zero or more objects to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ The string is formatted using the
+ format provider. To specify a localized provider use the
+ method.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a formatted message string with the WARN level.
+
+ A String containing zero or more format items
+ An Object to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ The string is formatted using the
+ format provider. To specify a localized provider use the
+ method.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a formatted message string with the WARN level.
+
+ A String containing zero or more format items
+ An Object to format
+ An Object to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ The string is formatted using the
+ format provider. To specify a localized provider use the
+ method.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a formatted message string with the WARN level.
+
+ A String containing zero or more format items
+ An Object to format
+ An Object to format
+ An Object to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ The string is formatted using the
+ format provider. To specify a localized provider use the
+ method.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a formatted message string with the WARN level.
+
+ An that supplies culture-specific formatting information
+ A String containing zero or more format items
+ An Object array containing zero or more objects to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a message object with the ERROR level.
+
+ The message object to log.
+
+
+ This method first checks if this logger is ERROR
+ enabled by comparing the level of this logger with the
+ ERROR level. If this logger is
+ ERROR enabled, then it converts the message object
+ (passed as parameter) to a string by invoking the appropriate
+ . It then
+ proceeds to call all the registered appenders in this logger and
+ also higher in the hierarchy depending on the value of the
+ additivity flag.
+
+
+ WARNING Note that passing an to this
+ method will print the name of the but no
+ stack trace. To print a stack trace use the
+ form instead.
+
+
+
+
+
+ Logs a message object with the ERROR level
+
+ The message object to log.
+ The exception to log, including its stack trace.
+
+
+ Logs a message object with the ERROR level including
+ the stack trace of the
+ passed as a parameter.
+
+
+ See the form for more detailed information.
+
+
+
+
+
+
+ Logs a formatted message string with the ERROR level.
+
+ A String containing zero or more format items
+ An Object array containing zero or more objects to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ The string is formatted using the
+ format provider. To specify a localized provider use the
+ method.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a formatted message string with the ERROR level.
+
+ A String containing zero or more format items
+ An Object to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ The string is formatted using the
+ format provider. To specify a localized provider use the
+ method.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a formatted message string with the ERROR level.
+
+ A String containing zero or more format items
+ An Object to format
+ An Object to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ The string is formatted using the
+ format provider. To specify a localized provider use the
+ method.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a formatted message string with the ERROR level.
+
+ A String containing zero or more format items
+ An Object to format
+ An Object to format
+ An Object to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ The string is formatted using the
+ format provider. To specify a localized provider use the
+ method.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a formatted message string with the ERROR level.
+
+ An that supplies culture-specific formatting information
+ A String containing zero or more format items
+ An Object array containing zero or more objects to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a message object with the FATAL level.
+
+ The message object to log.
+
+
+ This method first checks if this logger is FATAL
+ enabled by comparing the level of this logger with the
+ FATAL level. If this logger is
+ FATAL enabled, then it converts the message object
+ (passed as parameter) to a string by invoking the appropriate
+ . It then
+ proceeds to call all the registered appenders in this logger and
+ also higher in the hierarchy depending on the value of the
+ additivity flag.
+
+
+ WARNING Note that passing an to this
+ method will print the name of the but no
+ stack trace. To print a stack trace use the
+ form instead.
+
+
+
+
+
+ Logs a message object with the FATAL level
+
+ The message object to log.
+ The exception to log, including its stack trace.
+
+
+ Logs a message object with the FATAL level including
+ the stack trace of the
+ passed as a parameter.
+
+
+ See the form for more detailed information.
+
+
+
+
+
+
+ Logs a formatted message string with the FATAL level.
+
+ A String containing zero or more format items
+ An Object array containing zero or more objects to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ The string is formatted using the
+ format provider. To specify a localized provider use the
+ method.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a formatted message string with the FATAL level.
+
+ A String containing zero or more format items
+ An Object to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ The string is formatted using the
+ format provider. To specify a localized provider use the
+ method.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a formatted message string with the FATAL level.
+
+ A String containing zero or more format items
+ An Object to format
+ An Object to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ The string is formatted using the
+ format provider. To specify a localized provider use the
+ method.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a formatted message string with the FATAL level.
+
+ A String containing zero or more format items
+ An Object to format
+ An Object to format
+ An Object to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ The string is formatted using the
+ format provider. To specify a localized provider use the
+ method.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a formatted message string with the FATAL level.
+
+ An that supplies culture-specific formatting information
+ A String containing zero or more format items
+ An Object array containing zero or more objects to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Event handler for the event
+
+ the repository
+ Empty
+
+
+
+ The fully qualified name of this declaring type not the type of any subclass.
+
+
+
+
+ Checks if this logger is enabled for the DEBUG
+ level.
+
+
+ true if this logger is enabled for DEBUG events,
+ false otherwise.
+
+
+
+ This function is intended to lessen the computational cost of
+ disabled log debug statements.
+
+
+ For some log Logger object, when you write:
+
+
+ log.Debug("This is entry number: " + i );
+
+
+ You incur the cost constructing the message, concatenation in
+ this case, regardless of whether the message is logged or not.
+
+
+ If you are worried about speed, then you should write:
+
+
+ if (log.IsDebugEnabled())
+ {
+ log.Debug("This is entry number: " + i );
+ }
+
+
+ This way you will not incur the cost of parameter
+ construction if debugging is disabled for log. On
+ the other hand, if the log is debug enabled, you
+ will incur the cost of evaluating whether the logger is debug
+ enabled twice. Once in IsDebugEnabled and once in
+ the Debug. This is an insignificant overhead
+ since evaluating a logger takes about 1% of the time it
+ takes to actually log.
+
+
+
+
+
+ Checks if this logger is enabled for the INFO level.
+
+
+ true if this logger is enabled for INFO events,
+ false otherwise.
+
+
+
+ See for more information and examples
+ of using this method.
+
+
+
+
+
+
+ Checks if this logger is enabled for the WARN level.
+
+
+ true if this logger is enabled for WARN events,
+ false otherwise.
+
+
+
+ See for more information and examples
+ of using this method.
+
+
+
+
+
+
+ Checks if this logger is enabled for the ERROR level.
+
+
+ true if this logger is enabled for ERROR events,
+ false otherwise.
+
+
+
+ See for more information and examples of using this method.
+
+
+
+
+
+
+ Checks if this logger is enabled for the FATAL level.
+
+
+ true if this logger is enabled for FATAL events,
+ false otherwise.
+
+
+
+ See for more information and examples of using this method.
+
+
+
+
+
+
+ A SecurityContext used by log4net when interacting with protected resources
+
+
+
+ A SecurityContext used by log4net when interacting with protected resources
+ for example with operating system services. This can be used to impersonate
+ a principal that has been granted privileges on the system resources.
+
+
+ Nicko Cadell
+
+
+
+ Impersonate this SecurityContext
+
+ State supplied by the caller
+ An instance that will
+ revoke the impersonation of this SecurityContext, or null
+
+
+ Impersonate this security context. Further calls on the current
+ thread should now be made in the security context provided
+ by this object. When the result
+ method is called the security
+ context of the thread should be reverted to the state it was in
+ before was called.
+
+
+
+
+
+ The providers default instances.
+
+
+
+ A configured component that interacts with potentially protected system
+ resources uses a to provide the elevated
+ privileges required. If the object has
+ been not been explicitly provided to the component then the component
+ will request one from this .
+
+
+ By default the is
+ an instance of which returns only
+ objects. This is a reasonable default
+ where the privileges required are not know by the system.
+
+
+ This default behavior can be overridden by subclassing the
+ and overriding the method to return
+ the desired objects. The default provider
+ can be replaced by programmatically setting the value of the
+ property.
+
+
+ An alternative is to use the log4net.Config.SecurityContextProviderAttribute
+ This attribute can be applied to an assembly in the same way as the
+ log4net.Config.XmlConfiguratorAttribute". The attribute takes
+ the type to use as the as an argument.
+
+
+ Nicko Cadell
+
+
+
+ The default provider
+
+
+
+
+ Protected default constructor to allow subclassing
+
+
+
+ Protected default constructor to allow subclassing
+
+
+
+
+
+ Create a SecurityContext for a consumer
+
+ The consumer requesting the SecurityContext
+ An impersonation context
+
+
+ The default implementation is to return a .
+
+
+ Subclasses should override this method to provide their own
+ behavior.
+
+
+
+
+
+ Gets or sets the default SecurityContextProvider
+
+
+ The default SecurityContextProvider
+
+
+
+ The default provider is used by configured components that
+ require a and have not had one
+ given to them.
+
+
+ By default this is an instance of
+ that returns objects.
+
+
+ The default provider can be set programmatically by setting
+ the value of this property to a sub class of
+ that has the desired behavior.
+
+
+
+
+
+ Delegate used to handle creation of new wrappers.
+
+ The logger to wrap in a wrapper.
+
+
+ Delegate used to handle creation of new wrappers. This delegate
+ is called from the
+ method to construct the wrapper for the specified logger.
+
+
+ The delegate to use is supplied to the
+ constructor.
+
+
+
+
+
+ Maps between logger objects and wrapper objects.
+
+
+
+ This class maintains a mapping between objects and
+ objects. Use the method to
+ lookup the for the specified .
+
+
+ New wrapper instances are created by the
+ method. The default behavior is for this method to delegate construction
+ of the wrapper to the delegate supplied
+ to the constructor. This allows specialization of the behavior without
+ requiring subclassing of this type.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Initializes a new instance of the
+
+ The handler to use to create the wrapper objects.
+
+
+ Initializes a new instance of the class with
+ the specified handler to create the wrapper objects.
+
+
+
+
+
+ Gets the wrapper object for the specified logger.
+
+ The wrapper object for the specified logger
+
+
+ If the logger is null then the corresponding wrapper is null.
+
+
+ Looks up the wrapper it it has previously been requested and
+ returns it. If the wrapper has never been requested before then
+ the virtual method is
+ called.
+
+
+
+
+
+ Creates the wrapper object for the specified logger.
+
+ The logger to wrap in a wrapper.
+ The wrapper object for the logger.
+
+
+ This implementation uses the
+ passed to the constructor to create the wrapper. This method
+ can be overridden in a subclass.
+
+
+
+
+
+ Called when a monitored repository shutdown event is received.
+
+ The that is shutting down
+
+
+ This method is called when a that this
+ is holding loggers for has signaled its shutdown
+ event . The default
+ behavior of this method is to release the references to the loggers
+ and their wrappers generated for this repository.
+
+
+
+
+
+ Event handler for repository shutdown event.
+
+ The sender of the event.
+ The event args.
+
+
+
+ Map of logger repositories to hashtables of ILogger to ILoggerWrapper mappings
+
+
+
+
+ The handler to use to create the extension wrapper objects.
+
+
+
+
+ Internal reference to the delegate used to register for repository shutdown events.
+
+
+
+
+ Gets the map of logger repositories.
+
+
+ Map of logger repositories.
+
+
+
+ Gets the hashtable that is keyed on . The
+ values are hashtables keyed on with the
+ value being the corresponding .
+
+
+
+
+
+ Formats a as "HH:mm:ss,fff".
+
+
+
+ Formats a in the format "HH:mm:ss,fff" for example, "15:49:37,459".
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Render a as a string.
+
+
+
+ Interface to abstract the rendering of a
+ instance into a string.
+
+
+ The method is used to render the
+ date to a text writer.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Formats the specified date as a string.
+
+ The date to format.
+ The writer to write to.
+
+
+ Format the as a string and write it
+ to the provided.
+
+
+
+
+
+ String constant used to specify AbsoluteTimeDateFormat in layouts. Current value is ABSOLUTE.
+
+
+
+
+ String constant used to specify DateTimeDateFormat in layouts. Current value is DATE.
+
+
+
+
+ String constant used to specify ISO8601DateFormat in layouts. Current value is ISO8601.
+
+
+
+
+ Renders the date into a string. Format is "HH:mm:ss".
+
+ The date to render into a string.
+ The string builder to write to.
+
+
+ Subclasses should override this method to render the date
+ into a string using a precision up to the second. This method
+ will be called at most once per second and the result will be
+ reused if it is needed again during the same second.
+
+
+
+
+
+ Renders the date into a string. Format is "HH:mm:ss,fff".
+
+ The date to render into a string.
+ The writer to write to.
+
+
+ Uses the method to generate the
+ time string up to the seconds and then appends the current
+ milliseconds. The results from are
+ cached and is called at most once
+ per second.
+
+
+ Sub classes should override
+ rather than .
+
+
+
+
+
+ Last stored time with precision up to the second.
+
+
+
+
+ Last stored time with precision up to the second, formatted
+ as a string.
+
+
+
+
+ Last stored time with precision up to the second, formatted
+ as a string.
+
+
+
+
+ Formats a as "dd MMM yyyy HH:mm:ss,fff"
+
+
+
+ Formats a in the format
+ "dd MMM yyyy HH:mm:ss,fff" for example,
+ "06 Nov 1994 15:49:37,459".
+
+
+ Nicko Cadell
+ Gert Driesen
+ Angelika Schnagl
+
+
+
+ Default constructor.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+
+ Formats the date without the milliseconds part
+
+ The date to format.
+ The string builder to write to.
+
+
+ Formats a DateTime in the format "dd MMM yyyy HH:mm:ss"
+ for example, "06 Nov 1994 15:49:37".
+
+
+ The base class will append the ",fff" milliseconds section.
+ This method will only be called at most once per second.
+
+
+
+
+
+ The format info for the invariant culture.
+
+
+
+
+ Formats the as "yyyy-MM-dd HH:mm:ss,fff".
+
+
+
+ Formats the specified as a string: "yyyy-MM-dd HH:mm:ss,fff".
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Default constructor
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+
+ Formats the date without the milliseconds part
+
+ The date to format.
+ The string builder to write to.
+
+
+ Formats the date specified as a string: "yyyy-MM-dd HH:mm:ss".
+
+
+ The base class will append the ",fff" milliseconds section.
+ This method will only be called at most once per second.
+
+
+
+
+
+ Formats the using the method.
+
+
+
+ Formats the using the method.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Constructor
+
+ The format string.
+
+
+ Initializes a new instance of the class
+ with the specified format string.
+
+
+ The format string must be compatible with the options
+ that can be supplied to .
+
+
+
+
+
+ Formats the date using .
+
+ The date to convert to a string.
+ The writer to write to.
+
+
+ Uses the date format string supplied to the constructor to call
+ the method to format the date.
+
+
+
+
+
+ The format string used to format the .
+
+
+
+ The format string must be compatible with the options
+ that can be supplied to .
+
+
+
+
+
+ This filter drops all .
+
+
+
+ You can add this filter to the end of a filter chain to
+ switch from the default "accept all unless instructed otherwise"
+ filtering behavior to a "deny all unless instructed otherwise"
+ behavior.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Subclass this type to implement customized logging event filtering
+
+
+
+ Users should extend this class to implement customized logging
+ event filtering. Note that and
+ , the parent class of all standard
+ appenders, have built-in filtering rules. It is suggested that you
+ first use and understand the built-in rules before rushing to write
+ your own custom filters.
+
+
+ This abstract class assumes and also imposes that filters be
+ organized in a linear chain. The
+ method of each filter is called sequentially, in the order of their
+ addition to the chain.
+
+
+ The method must return one
+ of the integer constants ,
+ or .
+
+
+ If the value is returned, then the log event is dropped
+ immediately without consulting with the remaining filters.
+
+
+ If the value is returned, then the next filter
+ in the chain is consulted. If there are no more filters in the
+ chain, then the log event is logged. Thus, in the presence of no
+ filters, the default behavior is to log all logging events.
+
+
+ If the value is returned, then the log
+ event is logged without consulting the remaining filters.
+
+
+ The philosophy of log4net filters is largely inspired from the
+ Linux ipchains.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Implement this interface to provide customized logging event filtering
+
+
+
+ Users should implement this interface to implement customized logging
+ event filtering. Note that and
+ , the parent class of all standard
+ appenders, have built-in filtering rules. It is suggested that you
+ first use and understand the built-in rules before rushing to write
+ your own custom filters.
+
+
+ This abstract class assumes and also imposes that filters be
+ organized in a linear chain. The
+ method of each filter is called sequentially, in the order of their
+ addition to the chain.
+
+
+ The method must return one
+ of the integer constants ,
+ or .
+
+
+ If the value is returned, then the log event is dropped
+ immediately without consulting with the remaining filters.
+
+
+ If the value is returned, then the next filter
+ in the chain is consulted. If there are no more filters in the
+ chain, then the log event is logged. Thus, in the presence of no
+ filters, the default behavior is to log all logging events.
+
+
+ If the value is returned, then the log
+ event is logged without consulting the remaining filters.
+
+
+ The philosophy of log4net filters is largely inspired from the
+ Linux ipchains.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Decide if the logging event should be logged through an appender.
+
+ The LoggingEvent to decide upon
+ The decision of the filter
+
+
+ If the decision is , then the event will be
+ dropped. If the decision is , then the next
+ filter, if any, will be invoked. If the decision is then
+ the event will be logged without consulting with other filters in
+ the chain.
+
+
+
+
+
+ Property to get and set the next filter
+
+
+ The next filter in the chain
+
+
+
+ Filters are typically composed into chains. This property allows the next filter in
+ the chain to be accessed.
+
+
+
+
+
+ Points to the next filter in the filter chain.
+
+
+
+ See for more information.
+
+
+
+
+
+ Initialize the filter with the options set
+
+
+
+ This is part of the delayed object
+ activation scheme. The method must
+ be called on this object after the configuration properties have
+ been set. Until is called this
+ object is in an undefined state and must not be used.
+
+
+ If any of the configuration properties are modified then
+ must be called again.
+
+
+ Typically filter's options become active immediately on set,
+ however this method must still be called.
+
+
+
+
+
+ Decide if the should be logged through an appender.
+
+ The to decide upon
+ The decision of the filter
+
+
+ If the decision is , then the event will be
+ dropped. If the decision is , then the next
+ filter, if any, will be invoked. If the decision is then
+ the event will be logged without consulting with other filters in
+ the chain.
+
+
+ This method is marked abstract and must be implemented
+ in a subclass.
+
+
+
+
+
+ Property to get and set the next filter
+
+
+ The next filter in the chain
+
+
+
+ Filters are typically composed into chains. This property allows the next filter in
+ the chain to be accessed.
+
+
+
+
+
+ Default constructor
+
+
+
+
+ Always returns the integer constant
+
+ the LoggingEvent to filter
+ Always returns
+
+
+ Ignores the event being logged and just returns
+ . This can be used to change the default filter
+ chain behavior from to . This filter
+ should only be used as the last filter in the chain
+ as any further filters will be ignored!
+
+
+
+
+
+ The return result from
+
+
+
+ The return result from
+
+
+
+
+
+ The log event must be dropped immediately without
+ consulting with the remaining filters, if any, in the chain.
+
+
+
+
+ This filter is neutral with respect to the log event.
+ The remaining filters, if any, should be consulted for a final decision.
+
+
+
+
+ The log event must be logged immediately without
+ consulting with the remaining filters, if any, in the chain.
+
+
+
+
+ This is a very simple filter based on matching.
+
+
+
+ The filter admits two options and
+ . If there is an exact match between the value
+ of the option and the of the
+ , then the method returns in
+ case the option value is set
+ to true, if it is false then
+ is returned. If the does not match then
+ the result will be .
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ flag to indicate if the filter should on a match
+
+
+
+
+ the to match against
+
+
+
+
+ Default constructor
+
+
+
+
+ Tests if the of the logging event matches that of the filter
+
+ the event to filter
+ see remarks
+
+
+ If the of the event matches the level of the
+ filter then the result of the function depends on the
+ value of . If it is true then
+ the function will return , it it is false then it
+ will return . If the does not match then
+ the result will be .
+
+
+
+
+
+ when matching
+
+
+
+ The property is a flag that determines
+ the behavior when a matching is found. If the
+ flag is set to true then the filter will the
+ logging event, otherwise it will the event.
+
+
+ The default is true i.e. to the event.
+
+
+
+
+
+ The that the filter will match
+
+
+
+ The level that this filter will attempt to match against the
+ level. If a match is found then
+ the result depends on the value of .
+
+
+
+
+
+ This is a simple filter based on matching.
+
+
+
+ The filter admits three options and
+ that determine the range of priorities that are matched, and
+ . If there is a match between the range
+ of priorities and the of the , then the
+ method returns in case the
+ option value is set to true, if it is false
+ then is returned. If there is no match, is returned.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Flag to indicate the behavior when matching a
+
+
+
+
+ the minimum value to match
+
+
+
+
+ the maximum value to match
+
+
+
+
+ Default constructor
+
+
+
+
+ Check if the event should be logged.
+
+ the logging event to check
+ see remarks
+
+
+ If the of the logging event is outside the range
+ matched by this filter then
+ is returned. If the is matched then the value of
+ is checked. If it is true then
+ is returned, otherwise
+ is returned.
+
+
+
+
+
+ when matching and
+
+
+
+ The property is a flag that determines
+ the behavior when a matching is found. If the
+ flag is set to true then the filter will the
+ logging event, otherwise it will the event.
+
+
+ The default is true i.e. to the event.
+
+
+
+
+
+ Set the minimum matched
+
+
+
+ The minimum level that this filter will attempt to match against the
+ level. If a match is found then
+ the result depends on the value of .
+
+
+
+
+
+ Sets the maximum matched
+
+
+
+ The maximum level that this filter will attempt to match against the
+ level. If a match is found then
+ the result depends on the value of .
+
+
+
+
+
+ Simple filter to match a string in the event's logger name.
+
+
+
+ The works very similar to the . It admits two
+ options and . If the
+ of the starts
+ with the value of the option, then the
+ method returns in
+ case the option value is set to true,
+ if it is false then is returned.
+
+
+ Daniel Cazzulino
+
+
+
+ Flag to indicate the behavior when we have a match
+
+
+
+
+ The logger name string to substring match against the event
+
+
+
+
+ Default constructor
+
+
+
+
+ Check if this filter should allow the event to be logged
+
+ the event being logged
+ see remarks
+
+
+ The rendered message is matched against the .
+ If the equals the beginning of
+ the incoming ()
+ then a match will have occurred. If no match occurs
+ this function will return
+ allowing other filters to check the event. If a match occurs then
+ the value of is checked. If it is
+ true then is returned otherwise
+ is returned.
+
+
+
+
+
+ when matching
+
+
+
+ The property is a flag that determines
+ the behavior when a matching is found. If the
+ flag is set to true then the filter will the
+ logging event, otherwise it will the event.
+
+
+ The default is true i.e. to the event.
+
+
+
+
+
+ The that the filter will match
+
+
+
+ This filter will attempt to match this value against logger name in
+ the following way. The match will be done against the beginning of the
+ logger name (using ). The match is
+ case sensitive. If a match is found then
+ the result depends on the value of .
+
+
+
+
+
+ Simple filter to match a keyed string in the
+
+
+
+ Simple filter to match a keyed string in the
+
+
+ As the MDC has been replaced with layered properties the
+ should be used instead.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Simple filter to match a string an event property
+
+
+
+ Simple filter to match a string in the value for a
+ specific event property
+
+
+ Nicko Cadell
+
+
+
+ Simple filter to match a string in the rendered message
+
+
+
+ Simple filter to match a string in the rendered message
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Flag to indicate the behavior when we have a match
+
+
+
+
+ The string to substring match against the message
+
+
+
+
+ A string regex to match
+
+
+
+
+ A regex object to match (generated from m_stringRegexToMatch)
+
+
+
+
+ Default constructor
+
+
+
+
+ Initialize and precompile the Regex if required
+
+
+
+ This is part of the delayed object
+ activation scheme. The method must
+ be called on this object after the configuration properties have
+ been set. Until is called this
+ object is in an undefined state and must not be used.
+
+
+ If any of the configuration properties are modified then
+ must be called again.
+
+
+
+
+
+ Check if this filter should allow the event to be logged
+
+ the event being logged
+ see remarks
+
+
+ The rendered message is matched against the .
+ If the occurs as a substring within
+ the message then a match will have occurred. If no match occurs
+ this function will return
+ allowing other filters to check the event. If a match occurs then
+ the value of is checked. If it is
+ true then is returned otherwise
+ is returned.
+
+
+
+
+
+ when matching or
+
+
+
+ The property is a flag that determines
+ the behavior when a matching is found. If the
+ flag is set to true then the filter will the
+ logging event, otherwise it will the event.
+
+
+ The default is true i.e. to the event.
+
+
+
+
+
+ Sets the static string to match
+
+
+
+ The string that will be substring matched against
+ the rendered message. If the message contains this
+ string then the filter will match. If a match is found then
+ the result depends on the value of .
+
+
+ One of or
+ must be specified.
+
+
+
+
+
+ Sets the regular expression to match
+
+
+
+ The regular expression pattern that will be matched against
+ the rendered message. If the message matches this
+ pattern then the filter will match. If a match is found then
+ the result depends on the value of .
+
+
+ One of or
+ must be specified.
+
+
+
+
+
+ The key to use to lookup the string from the event properties
+
+
+
+
+ Default constructor
+
+
+
+
+ Check if this filter should allow the event to be logged
+
+ the event being logged
+ see remarks
+
+
+ The event property for the is matched against
+ the .
+ If the occurs as a substring within
+ the property value then a match will have occurred. If no match occurs
+ this function will return
+ allowing other filters to check the event. If a match occurs then
+ the value of is checked. If it is
+ true then is returned otherwise
+ is returned.
+
+
+
+
+
+ The key to lookup in the event properties and then match against.
+
+
+
+ The key name to use to lookup in the properties map of the
+ . The match will be performed against
+ the value of this property if it exists.
+
+
+
+
+
+ Simple filter to match a string in the
+
+
+
+ Simple filter to match a string in the
+
+
+ As the MDC has been replaced with named stacks stored in the
+ properties collections the should
+ be used instead.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Default constructor
+
+
+
+ Sets the to "NDC".
+
+
+
+
+
+ Write the event appdomain name to the output
+
+
+
+ Writes the to the output writer.
+
+
+ Daniel Cazzulino
+ Nicko Cadell
+
+
+
+ Abstract class that provides the formatting functionality that
+ derived classes need.
+
+
+ Conversion specifiers in a conversion patterns are parsed to
+ individual PatternConverters. Each of which is responsible for
+ converting a logging event in a converter specific manner.
+
+ Nicko Cadell
+
+
+
+ Abstract class that provides the formatting functionality that
+ derived classes need.
+
+
+
+ Conversion specifiers in a conversion patterns are parsed to
+ individual PatternConverters. Each of which is responsible for
+ converting a logging event in a converter specific manner.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Initial buffer size
+
+
+
+
+ Maximum buffer size before it is recycled
+
+
+
+
+ Protected constructor
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+
+ Evaluate this pattern converter and write the output to a writer.
+
+ that will receive the formatted result.
+ The state object on which the pattern converter should be executed.
+
+
+ Derived pattern converters must override this method in order to
+ convert conversion specifiers in the appropriate way.
+
+
+
+
+
+ Set the next pattern converter in the chains
+
+ the pattern converter that should follow this converter in the chain
+ the next converter
+
+
+ The PatternConverter can merge with its neighbor during this method (or a sub class).
+ Therefore the return value may or may not be the value of the argument passed in.
+
+
+
+
+
+ Write the pattern converter to the writer with appropriate formatting
+
+ that will receive the formatted result.
+ The state object on which the pattern converter should be executed.
+
+
+ This method calls to allow the subclass to perform
+ appropriate conversion of the pattern converter. If formatting options have
+ been specified via the then this method will
+ apply those formattings before writing the output.
+
+
+
+
+
+ Fast space padding method.
+
+ to which the spaces will be appended.
+ The number of spaces to be padded.
+
+
+ Fast space padding method.
+
+
+
+
+
+ The option string to the converter
+
+
+
+
+ Write an dictionary to a
+
+ the writer to write to
+ a to use for object conversion
+ the value to write to the writer
+
+
+ Writes the to a writer in the form:
+
+
+ {key1=value1, key2=value2, key3=value3}
+
+
+ If the specified
+ is not null then it is used to render the key and value to text, otherwise
+ the object's ToString method is called.
+
+
+
+
+
+ Write an object to a
+
+ the writer to write to
+ a to use for object conversion
+ the value to write to the writer
+
+
+ Writes the Object to a writer. If the specified
+ is not null then it is used to render the object to text, otherwise
+ the object's ToString method is called.
+
+
+
+
+
+ Get the next pattern converter in the chain
+
+
+ the next pattern converter in the chain
+
+
+
+ Get the next pattern converter in the chain
+
+
+
+
+
+ Gets or sets the formatting info for this converter
+
+
+ The formatting info for this converter
+
+
+
+ Gets or sets the formatting info for this converter
+
+
+
+
+
+ Gets or sets the option value for this converter
+
+
+ The option for this converter
+
+
+
+ Gets or sets the option value for this converter
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Derived pattern converters must override this method in order to
+ convert conversion specifiers in the correct way.
+
+ that will receive the formatted result.
+ The on which the pattern converter should be executed.
+
+
+
+ Derived pattern converters must override this method in order to
+ convert conversion specifiers in the correct way.
+
+ that will receive the formatted result.
+ The state object on which the pattern converter should be executed.
+
+
+
+ Flag indicating if this converter handles exceptions
+
+
+ false if this converter handles exceptions
+
+
+
+
+ Flag indicating if this converter handles the logging event exception
+
+ false if this converter handles the logging event exception
+
+
+ If this converter handles the exception object contained within
+ , then this property should be set to
+ false. Otherwise, if the layout ignores the exception
+ object, then the property should be set to true.
+
+
+ Set this value to override a this default setting. The default
+ value is true, this converter does not handle the exception.
+
+
+
+
+
+ Write the event appdomain name to the output
+
+ that will receive the formatted result.
+ the event being logged
+
+
+ Writes the to the output .
+
+
+
+
+
+ Date pattern converter, uses a to format
+ the date of a .
+
+
+
+ Render the to the writer as a string.
+
+
+ The value of the determines
+ the formatting of the date. The following values are allowed:
+
+
+ Option value
+ Output
+
+
+ ISO8601
+
+ Uses the formatter.
+ Formats using the "yyyy-MM-dd HH:mm:ss,fff" pattern.
+
+
+
+ DATE
+
+ Uses the formatter.
+ Formats using the "dd MMM yyyy HH:mm:ss,fff" for example, "06 Nov 1994 15:49:37,459".
+
+
+
+ ABSOLUTE
+
+ Uses the formatter.
+ Formats using the "HH:mm:ss,yyyy" for example, "15:49:37,459".
+
+
+
+ other
+
+ Any other pattern string uses the formatter.
+ This formatter passes the pattern string to the
+ method.
+ For details on valid patterns see
+ DateTimeFormatInfo Class.
+
+
+
+
+
+ The is in the local time zone and is rendered in that zone.
+ To output the time in Universal time see .
+
+
+ Nicko Cadell
+
+
+
+ The used to render the date to a string
+
+
+
+ The used to render the date to a string
+
+
+
+
+
+ Initialize the converter pattern based on the property.
+
+
+
+ This is part of the delayed object
+ activation scheme. The method must
+ be called on this object after the configuration properties have
+ been set. Until is called this
+ object is in an undefined state and must not be used.
+
+
+ If any of the configuration properties are modified then
+ must be called again.
+
+
+
+
+
+ Convert the pattern into the rendered message
+
+ that will receive the formatted result.
+ the event being logged
+
+
+ Pass the to the
+ for it to render it to the writer.
+
+
+ The passed is in the local time zone.
+
+
+
+
+
+ Write the exception text to the output
+
+
+
+ If an exception object is stored in the logging event
+ it will be rendered into the pattern output with a
+ trailing newline.
+
+
+ If there is no exception then nothing will be output
+ and no trailing newline will be appended.
+ It is typical to put a newline before the exception
+ and to have the exception as the last data in the pattern.
+
+
+ Nicko Cadell
+
+
+
+ Default constructor
+
+
+
+
+ Write the exception text to the output
+
+ that will receive the formatted result.
+ the event being logged
+
+
+ If an exception object is stored in the logging event
+ it will be rendered into the pattern output with a
+ trailing newline.
+
+
+ If there is no exception then nothing will be output
+ and no trailing newline will be appended.
+ It is typical to put a newline before the exception
+ and to have the exception as the last data in the pattern.
+
+
+
+
+
+ Writes the caller location file name to the output
+
+
+
+ Writes the value of the for
+ the event to the output writer.
+
+
+ Nicko Cadell
+
+
+
+ Write the caller location file name to the output
+
+ that will receive the formatted result.
+ the event being logged
+
+
+ Writes the value of the for
+ the to the output .
+
+
+
+
+
+ Write the caller location info to the output
+
+
+
+ Writes the to the output writer.
+
+
+ Nicko Cadell
+
+
+
+ Write the caller location info to the output
+
+ that will receive the formatted result.
+ the event being logged
+
+
+ Writes the to the output writer.
+
+
+
+
+
+ Writes the event identity to the output
+
+
+
+ Writes the value of the to
+ the output writer.
+
+
+ Daniel Cazzulino
+ Nicko Cadell
+
+
+
+ Writes the event identity to the output
+
+ that will receive the formatted result.
+ the event being logged
+
+
+ Writes the value of the
+ to
+ the output .
+
+
+
+
+
+ Write the event level to the output
+
+
+
+ Writes the display name of the event
+ to the writer.
+
+
+ Nicko Cadell
+
+
+
+ Write the event level to the output
+
+ that will receive the formatted result.
+ the event being logged
+
+
+ Writes the of the
+ to the .
+
+
+
+
+
+ Write the caller location line number to the output
+
+
+
+ Writes the value of the for
+ the event to the output writer.
+
+
+ Nicko Cadell
+
+
+
+ Write the caller location line number to the output
+
+ that will receive the formatted result.
+ the event being logged
+
+
+ Writes the value of the for
+ the to the output .
+
+
+
+
+
+ Converter for logger name
+
+
+
+ Outputs the of the event.
+
+
+ Nicko Cadell
+
+
+
+ Converter to output and truncate '.' separated strings
+
+
+
+ This abstract class supports truncating a '.' separated string
+ to show a specified number of elements from the right hand side.
+ This is used to truncate class names that are fully qualified.
+
+
+ Subclasses should override the method to
+ return the fully qualified string.
+
+
+ Nicko Cadell
+
+
+
+ Initialize the converter
+
+
+
+ This is part of the delayed object
+ activation scheme. The method must
+ be called on this object after the configuration properties have
+ been set. Until is called this
+ object is in an undefined state and must not be used.
+
+
+ If any of the configuration properties are modified then
+ must be called again.
+
+
+
+
+
+ Get the fully qualified string data
+
+ the event being logged
+ the fully qualified name
+
+
+ Overridden by subclasses to get the fully qualified name before the
+ precision is applied to it.
+
+
+ Return the fully qualified '.' (dot/period) separated string.
+
+
+
+
+
+ Convert the pattern to the rendered message
+
+ that will receive the formatted result.
+ the event being logged
+
+ Render the to the precision
+ specified by the property.
+
+
+
+
+ Gets the fully qualified name of the logger
+
+ the event being logged
+ The fully qualified logger name
+
+
+ Returns the of the .
+
+
+
+
+
+ Writes the event message to the output
+
+
+
+ Uses the method
+ to write out the event message.
+
+
+ Nicko Cadell
+
+
+
+ Writes the event message to the output
+
+ that will receive the formatted result.
+ the event being logged
+
+
+ Uses the method
+ to write out the event message.
+
+
+
+
+
+ Write the method name to the output
+
+
+
+ Writes the caller location to
+ the output.
+
+
+ Nicko Cadell
+
+
+
+ Write the method name to the output
+
+ that will receive the formatted result.
+ the event being logged
+
+
+ Writes the caller location to
+ the output.
+
+
+
+
+
+ Converter to include event NDC
+
+
+
+ Outputs the value of the event property named NDC.
+
+
+ The should be used instead.
+
+
+ Nicko Cadell
+
+
+
+ Write the event NDC to the output
+
+ that will receive the formatted result.
+ the event being logged
+
+
+ As the thread context stacks are now stored in named event properties
+ this converter simply looks up the value of the NDC property.
+
+
+ The should be used instead.
+
+
+
+
+
+ Property pattern converter
+
+
+
+ Writes out the value of a named property. The property name
+ should be set in the
+ property.
+
+
+ If the is set to null
+ then all the properties are written as key value pairs.
+
+
+ Nicko Cadell
+
+
+
+ Write the property value to the output
+
+ that will receive the formatted result.
+ the event being logged
+
+
+ Writes out the value of a named property. The property name
+ should be set in the
+ property.
+
+
+ If the is set to null
+ then all the properties are written as key value pairs.
+
+
+
+
+
+ Converter to output the relative time of the event
+
+
+
+ Converter to output the time of the event relative to the start of the program.
+
+
+ Nicko Cadell
+
+
+
+ Write the relative time to the output
+
+ that will receive the formatted result.
+ the event being logged
+
+
+ Writes out the relative time of the event in milliseconds.
+ That is the number of milliseconds between the event
+ and the .
+
+
+
+
+
+ Helper method to get the time difference between two DateTime objects
+
+ start time (in the current local time zone)
+ end time (in the current local time zone)
+ the time difference in milliseconds
+
+
+
+ Converter to include event thread name
+
+
+
+ Writes the to the output.
+
+
+ Nicko Cadell
+
+
+
+ Write the ThreadName to the output
+
+ that will receive the formatted result.
+ the event being logged
+
+
+ Writes the to the .
+
+
+
+
+
+ Pattern converter for the class name
+
+
+
+ Outputs the of the event.
+
+
+ Nicko Cadell
+
+
+
+ Gets the fully qualified name of the class
+
+ the event being logged
+ The fully qualified type name for the caller location
+
+
+ Returns the of the .
+
+
+
+
+
+ Converter to include event user name
+
+ Douglas de la Torre
+ Nicko Cadell
+
+
+
+ Convert the pattern to the rendered message
+
+ that will receive the formatted result.
+ the event being logged
+
+
+
+ Write the TimeStamp to the output
+
+
+
+ Date pattern converter, uses a to format
+ the date of a .
+
+
+ Uses a to format the
+ in Universal time.
+
+
+ See the for details on the date pattern syntax.
+
+
+
+ Nicko Cadell
+
+
+
+ Write the TimeStamp to the output
+
+ that will receive the formatted result.
+ the event being logged
+
+
+ Pass the to the
+ for it to render it to the writer.
+
+
+ The passed is in the local time zone, this is converted
+ to Universal time before it is rendered.
+
+
+
+
+
+
+ A Layout that renders only the Exception text from the logging event
+
+
+
+ A Layout that renders only the Exception text from the logging event.
+
+
+ This Layout should only be used with appenders that utilize multiple
+ layouts (e.g. ).
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Extend this abstract class to create your own log layout format.
+
+
+
+ This is the base implementation of the
+ interface. Most layout objects should extend this class.
+
+
+
+
+
+ Subclasses must implement the
+ method.
+
+
+ Subclasses should set the in their default
+ constructor.
+
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Interface implemented by layout objects
+
+
+
+ An object is used to format a
+ as text. The method is called by an
+ appender to transform the into a string.
+
+
+ The layout can also supply and
+ text that is appender before any events and after all the events respectively.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Implement this method to create your own layout format.
+
+ The TextWriter to write the formatted event to
+ The event to format
+
+
+ This method is called by an appender to format
+ the as text and output to a writer.
+
+
+ If the caller does not have a and prefers the
+ event to be formatted as a then the following
+ code can be used to format the event into a .
+
+
+ StringWriter writer = new StringWriter();
+ Layout.Format(writer, loggingEvent);
+ string formattedEvent = writer.ToString();
+
+
+
+
+
+ The content type output by this layout.
+
+ The content type
+
+
+ The content type output by this layout.
+
+
+ This is a MIME type e.g. "text/plain".
+
+
+
+
+
+ The header for the layout format.
+
+ the layout header
+
+
+ The Header text will be appended before any logging events
+ are formatted and appended.
+
+
+
+
+
+ The footer for the layout format.
+
+ the layout footer
+
+
+ The Footer text will be appended after all the logging events
+ have been formatted and appended.
+
+
+
+
+
+ Flag indicating if this layout handle exceptions
+
+ false if this layout handles exceptions
+
+
+ If this layout handles the exception object contained within
+ , then the layout should return
+ false. Otherwise, if the layout ignores the exception
+ object, then the layout should return true.
+
+
+
+
+
+ The header text
+
+
+
+ See for more information.
+
+
+
+
+
+ The footer text
+
+
+
+ See for more information.
+
+
+
+
+
+ Flag indicating if this layout handles exceptions
+
+
+
+ false if this layout handles exceptions
+
+
+
+
+
+ Empty default constructor
+
+
+
+ Empty default constructor
+
+
+
+
+
+ Activate component options
+
+
+
+ This is part of the delayed object
+ activation scheme. The method must
+ be called on this object after the configuration properties have
+ been set. Until is called this
+ object is in an undefined state and must not be used.
+
+
+ If any of the configuration properties are modified then
+ must be called again.
+
+
+ This method must be implemented by the subclass.
+
+
+
+
+
+ Implement this method to create your own layout format.
+
+ The TextWriter to write the formatted event to
+ The event to format
+
+
+ This method is called by an appender to format
+ the as text.
+
+
+
+
+
+ The content type output by this layout.
+
+ The content type is "text/plain"
+
+
+ The content type output by this layout.
+
+
+ This base class uses the value "text/plain".
+ To change this value a subclass must override this
+ property.
+
+
+
+
+
+ The header for the layout format.
+
+ the layout header
+
+
+ The Header text will be appended before any logging events
+ are formatted and appended.
+
+
+
+
+
+ The footer for the layout format.
+
+ the layout footer
+
+
+ The Footer text will be appended after all the logging events
+ have been formatted and appended.
+
+
+
+
+
+ Flag indicating if this layout handles exceptions
+
+ false if this layout handles exceptions
+
+
+ If this layout handles the exception object contained within
+ , then the layout should return
+ false. Otherwise, if the layout ignores the exception
+ object, then the layout should return true.
+
+
+ Set this value to override a this default setting. The default
+ value is true, this layout does not handle the exception.
+
+
+
+
+
+ Default constructor
+
+
+
+ Constructs a ExceptionLayout
+
+
+
+
+
+ Activate component options
+
+
+
+ Part of the component activation
+ framework.
+
+
+ This method does nothing as options become effective immediately.
+
+
+
+
+
+ Gets the exception text from the logging event
+
+ The TextWriter to write the formatted event to
+ the event being logged
+
+
+ Write the exception string to the .
+ The exception string is retrieved from .
+
+
+
+
+
+ Interface for raw layout objects
+
+
+
+ Interface used to format a
+ to an object.
+
+
+ This interface should not be confused with the
+ interface. This interface is used in
+ only certain specialized situations where a raw object is
+ required rather than a formatted string. The
+ is not generally useful than this interface.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Implement this method to create your own layout format.
+
+ The event to format
+ returns the formatted event
+
+
+ Implement this method to create your own layout format.
+
+
+
+
+
+ Adapts any to a
+
+
+
+ Where an is required this adapter
+ allows a to be specified.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ The layout to adapt
+
+
+
+
+ Construct a new adapter
+
+ the layout to adapt
+
+
+ Create the adapter for the specified .
+
+
+
+
+
+ Format the logging event as an object.
+
+ The event to format
+ returns the formatted event
+
+
+ Format the logging event as an object.
+
+
+ Uses the object supplied to
+ the constructor to perform the formatting.
+
+
+
+
+
+ A flexible layout configurable with pattern string.
+
+
+
+ The goal of this class is to a
+ as a string. The results
+ depend on the conversion pattern.
+
+
+ The conversion pattern is closely related to the conversion
+ pattern of the printf function in C. A conversion pattern is
+ composed of literal text and format control expressions called
+ conversion specifiers.
+
+
+ You are free to insert any literal text within the conversion
+ pattern.
+
+
+ Each conversion specifier starts with a percent sign (%) and is
+ followed by optional format modifiers and a conversion
+ pattern name. The conversion pattern name specifies the type of
+ data, e.g. logger, level, date, thread name. The format
+ modifiers control such things as field width, padding, left and
+ right justification. The following is a simple example.
+
+
+ Let the conversion pattern be "%-5level [%thread]: %message%newline" and assume
+ that the log4net environment was set to use a PatternLayout. Then the
+ statements
+
+
+ ILog log = LogManager.GetLogger(typeof(TestApp));
+ log.Debug("Message 1");
+ log.Warn("Message 2");
+
+ would yield the output
+
+ DEBUG [main]: Message 1
+ WARN [main]: Message 2
+
+
+ Note that there is no explicit separator between text and
+ conversion specifiers. The pattern parser knows when it has reached
+ the end of a conversion specifier when it reads a conversion
+ character. In the example above the conversion specifier
+ %-5level means the level of the logging event should be left
+ justified to a width of five characters.
+
+
+ The recognized conversion pattern names are:
+
+
+
+ Conversion Pattern Name
+ Effect
+
+
+ a
+ Equivalent to appdomain
+
+
+ appdomain
+
+ Used to output the friendly name of the AppDomain where the
+ logging event was generated.
+
+
+
+ c
+ Equivalent to logger
+
+
+ C
+ Equivalent to type
+
+
+ class
+ Equivalent to type
+
+
+ d
+ Equivalent to date
+
+
+ date
+
+
+ Used to output the date of the logging event in the local time zone.
+ To output the date in universal time use the %utcdate pattern.
+ The date conversion
+ specifier may be followed by a date format specifier enclosed
+ between braces. For example, %date{HH:mm:ss,fff} or
+ %date{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is
+ given then ISO8601 format is
+ assumed ().
+
+
+ The date format specifier admits the same syntax as the
+ time pattern string of the .
+
+
+ For better results it is recommended to use the log4net date
+ formatters. These can be specified using one of the strings
+ "ABSOLUTE", "DATE" and "ISO8601" for specifying
+ ,
+ and respectively
+ . For example,
+ %date{ISO8601} or %date{ABSOLUTE}.
+
+
+ These dedicated date formatters perform significantly
+ better than .
+
+
+
+
+ exception
+
+
+ Used to output the exception passed in with the log message.
+
+
+ If an exception object is stored in the logging event
+ it will be rendered into the pattern output with a
+ trailing newline.
+ If there is no exception then nothing will be output
+ and no trailing newline will be appended.
+ It is typical to put a newline before the exception
+ and to have the exception as the last data in the pattern.
+
+
+
+
+ F
+ Equivalent to file
+
+
+ file
+
+
+ Used to output the file name where the logging request was
+ issued.
+
+
+ WARNING Generating caller location information is
+ extremely slow. Its use should be avoided unless execution speed
+ is not an issue.
+
+
+ See the note below on the availability of caller location information.
+
+
+
+
+ identity
+
+
+ Used to output the user name for the currently active user
+ (Principal.Identity.Name).
+
+
+ WARNING Generating caller information is
+ extremely slow. Its use should be avoided unless execution speed
+ is not an issue.
+
+
+
+
+ l
+ Equivalent to location
+
+
+ L
+ Equivalent to line
+
+
+ location
+
+
+ Used to output location information of the caller which generated
+ the logging event.
+
+
+ The location information depends on the CLI implementation but
+ usually consists of the fully qualified name of the calling
+ method followed by the callers source the file name and line
+ number between parentheses.
+
+
+ The location information can be very useful. However, its
+ generation is extremely slow. Its use should be avoided
+ unless execution speed is not an issue.
+
+
+ See the note below on the availability of caller location information.
+
+
+
+
+ level
+
+
+ Used to output the level of the logging event.
+
+
+
+
+ line
+
+
+ Used to output the line number from where the logging request
+ was issued.
+
+
+ WARNING Generating caller location information is
+ extremely slow. Its use should be avoided unless execution speed
+ is not an issue.
+
+
+ See the note below on the availability of caller location information.
+
+
+
+
+ logger
+
+
+ Used to output the logger of the logging event. The
+ logger conversion specifier can be optionally followed by
+ precision specifier, that is a decimal constant in
+ brackets.
+
+
+ If a precision specifier is given, then only the corresponding
+ number of right most components of the logger name will be
+ printed. By default the logger name is printed in full.
+
+
+ For example, for the logger name "a.b.c" the pattern
+ %logger{2} will output "b.c".
+
+
+
+
+ m
+ Equivalent to message
+
+
+ M
+ Equivalent to method
+
+
+ message
+
+
+ Used to output the application supplied message associated with
+ the logging event.
+
+
+
+
+ mdc
+
+
+ The MDC (old name for the ThreadContext.Properties) is now part of the
+ combined event properties. This pattern is supported for compatibility
+ but is equivalent to property.
+
+
+
+
+ method
+
+
+ Used to output the method name where the logging request was
+ issued.
+
+
+ WARNING Generating caller location information is
+ extremely slow. Its use should be avoided unless execution speed
+ is not an issue.
+
+
+ See the note below on the availability of caller location information.
+
+
+
+
+ n
+ Equivalent to newline
+
+
+ newline
+
+
+ Outputs the platform dependent line separator character or
+ characters.
+
+
+ This conversion pattern offers the same performance as using
+ non-portable line separator strings such as "\n", or "\r\n".
+ Thus, it is the preferred way of specifying a line separator.
+
+
+
+
+ ndc
+
+
+ Used to output the NDC (nested diagnostic context) associated
+ with the thread that generated the logging event.
+
+
+
+
+ p
+ Equivalent to level
+
+
+ P
+ Equivalent to property
+
+
+ properties
+ Equivalent to property
+
+
+ property
+
+
+ Used to output the an event specific property. The key to
+ lookup must be specified within braces and directly following the
+ pattern specifier, e.g. %property{user} would include the value
+ from the property that is keyed by the string 'user'. Each property value
+ that is to be included in the log must be specified separately.
+ Properties are added to events by loggers or appenders. By default
+ the log4net:HostName property is set to the name of machine on
+ which the event was originally logged.
+
+
+ If no key is specified, e.g. %property then all the keys and their
+ values are printed in a comma separated list.
+
+
+ The properties of an event are combined from a number of different
+ contexts. These are listed below in the order in which they are searched.
+
+
+
+ the event properties
+
+ The event has that can be set. These
+ properties are specific to this event only.
+
+
+
+ the thread properties
+
+ The that are set on the current
+ thread. These properties are shared by all events logged on this thread.
+
+
+
+ the global properties
+
+ The that are set globally. These
+ properties are shared by all the threads in the AppDomain.
+
+
+
+
+
+
+
+ r
+ Equivalent to timestamp
+
+
+ t
+ Equivalent to thread
+
+
+ timestamp
+
+
+ Used to output the number of milliseconds elapsed since the start
+ of the application until the creation of the logging event.
+
+
+
+
+ thread
+
+
+ Used to output the name of the thread that generated the
+ logging event. Uses the thread number if no name is available.
+
+
+
+
+ type
+
+
+ Used to output the fully qualified type name of the caller
+ issuing the logging request. This conversion specifier
+ can be optionally followed by precision specifier, that
+ is a decimal constant in brackets.
+
+
+ If a precision specifier is given, then only the corresponding
+ number of right most components of the class name will be
+ printed. By default the class name is output in fully qualified form.
+
+
+ For example, for the class name "log4net.Layout.PatternLayout", the
+ pattern %type{1} will output "PatternLayout".
+
+
+ WARNING Generating the caller class information is
+ slow. Thus, its use should be avoided unless execution speed is
+ not an issue.
+
+
+ See the note below on the availability of caller location information.
+
+
+
+
+ u
+ Equivalent to identity
+
+
+ username
+
+
+ Used to output the WindowsIdentity for the currently
+ active user.
+
+
+ WARNING Generating caller WindowsIdentity information is
+ extremely slow. Its use should be avoided unless execution speed
+ is not an issue.
+
+
+
+
+ utcdate
+
+
+ Used to output the date of the logging event in universal time.
+ The date conversion
+ specifier may be followed by a date format specifier enclosed
+ between braces. For example, %utcdate{HH:mm:ss,fff} or
+ %utcdate{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is
+ given then ISO8601 format is
+ assumed ().
+
+
+ The date format specifier admits the same syntax as the
+ time pattern string of the .
+
+
+ For better results it is recommended to use the log4net date
+ formatters. These can be specified using one of the strings
+ "ABSOLUTE", "DATE" and "ISO8601" for specifying
+ ,
+ and respectively
+ . For example,
+ %utcdate{ISO8601} or %utcdate{ABSOLUTE}.
+
+
+ These dedicated date formatters perform significantly
+ better than .
+
+
+
+
+ w
+ Equivalent to username
+
+
+ x
+ Equivalent to ndc
+
+
+ X
+ Equivalent to mdc
+
+
+ %
+
+
+ The sequence %% outputs a single percent sign.
+
+
+
+
+
+ The single letter patterns are deprecated in favor of the
+ longer more descriptive pattern names.
+
+
+ By default the relevant information is output as is. However,
+ with the aid of format modifiers it is possible to change the
+ minimum field width, the maximum field width and justification.
+
+
+ The optional format modifier is placed between the percent sign
+ and the conversion pattern name.
+
+
+ The first optional format modifier is the left justification
+ flag which is just the minus (-) character. Then comes the
+ optional minimum field width modifier. This is a decimal
+ constant that represents the minimum number of characters to
+ output. If the data item requires fewer characters, it is padded on
+ either the left or the right until the minimum width is
+ reached. The default is to pad on the left (right justify) but you
+ can specify right padding with the left justification flag. The
+ padding character is space. If the data item is larger than the
+ minimum field width, the field is expanded to accommodate the
+ data. The value is never truncated.
+
+
+ This behavior can be changed using the maximum field
+ width modifier which is designated by a period followed by a
+ decimal constant. If the data item is longer than the maximum
+ field, then the extra characters are removed from the
+ beginning of the data item and not from the end. For
+ example, it the maximum field width is eight and the data item is
+ ten characters long, then the first two characters of the data item
+ are dropped. This behavior deviates from the printf function in C
+ where truncation is done from the end.
+
+
+ Below are various format modifier examples for the logger
+ conversion specifier.
+
+
+
+
+
Format modifier
+
left justify
+
minimum width
+
maximum width
+
comment
+
+
+
%20logger
+
false
+
20
+
none
+
+
+ Left pad with spaces if the logger name is less than 20
+ characters long.
+
+
+
+
+
%-20logger
+
true
+
20
+
none
+
+
+ Right pad with spaces if the logger
+ name is less than 20 characters long.
+
+
+
+
+
%.30logger
+
NA
+
none
+
30
+
+
+ Truncate from the beginning if the logger
+ name is longer than 30 characters.
+
+
+
+
+
%20.30logger
+
false
+
20
+
30
+
+
+ Left pad with spaces if the logger name is shorter than 20
+ characters. However, if logger name is longer than 30 characters,
+ then truncate from the beginning.
+
+
+
+
+
%-20.30logger
+
true
+
20
+
30
+
+
+ Right pad with spaces if the logger name is shorter than 20
+ characters. However, if logger name is longer than 30 characters,
+ then truncate from the beginning.
+
+
DictionarySet is an abstract class that supports the creation of new Set
+ types where the underlying data store is an IDictionary instance.
+
+
You can use any object that implements the IDictionary interface to hold set data.
+ You can define your own, or you can use one of the objects provided in the Framework.
+ The type of IDictionary you choose will affect both the performance and the behavior
+ of the Set using it.
+
+
To make a Set typed based on your own IDictionary, simply derive a
+ new class with a constructor that takes no parameters. Some Set implmentations
+ cannot be defined with a default constructor. If this is the case for your class,
+ you will need to override Clone() as well.
+
+
It is also standard practice that at least one of your constructors takes an ICollection or
+ an ISet as an argument.
+
+
+
+
A collection that contains no duplicate elements. This class models the mathematical
+ Set abstraction, and is the base class for all other Set implementations.
+ The order of elements in a set is dependant on (a)the data-structure implementation, and
+ (b)the implementation of the various Set methods, and thus is not guaranteed.
+
+
None of the Set implementations in this library are guranteed to be thread-safe
+ in any way unless wrapped in a SynchronizedSet.
+
+
The following table summarizes the binary operators that are supported by the Set class.
+
+
+ Operation
+ Description
+ Method
+ Operator
+
+
+ Union (OR)
+ Element included in result if it exists in either A OR B.
+ Union()
+ |
+
+
+ Intersection (AND)
+ Element included in result if it exists in both A AND B.
+ InterSect()
+ &
+
+
+ Exclusive Or (XOR)
+ Element included in result if it exists in one, but not both, of A and B.
+ ExclusiveOr()
+ ^
+
+
+ Minus (n/a)
+ Take all the elements in A. Now, if any of them exist in B, remove
+ them. Note that unlike the other operators, A - B is not the same as B - A.
+ Minus()
+ -
+
+
+
+
+
+
+
A collection that contains no duplicate elements. This interface models the mathematical
+ Set abstraction.
+ The order of elements in a set is dependant on (a)the data-structure implementation, and
+ (b)the implementation of the various Set methods, and thus is not guaranteed.
+
+
None of the Set implementations in this library are guranteed to be thread-safe
+ in any way unless wrapped in a SynchronizedSet.
+
+
The following table summarizes the binary operators that are supported by the Set class.
+
+
+ Operation
+ Description
+ Method
+
+
+ Union (OR)
+ Element included in result if it exists in either A OR B.
+ Union()
+
+
+ Intersection (AND)
+ Element included in result if it exists in both A AND B.
+ InterSect()
+
+
+ Exclusive Or (XOR)
+ Element included in result if it exists in one, but not both, of A and B.
+ ExclusiveOr()
+
+
+ Minus (n/a)
+ Take all the elements in A. Now, if any of them exist in B, remove
+ them. Note that unlike the other operators, A - B is not the same as B - A.
+ Minus()
+
+
+
+
+
+
+ Performs a "union" of the two sets, where all the elements
+ in both sets are present. That is, the element is included if it is in either a or b.
+ Neither this set nor the input set are modified during the operation. The return value
+ is a Clone() of this set with the extra elements added in.
+
+ A collection of elements.
+ A new Set containing the union of this Set with the specified collection.
+ Neither of the input objects is modified by the union.
+
+
+
+ Performs an "intersection" of the two sets, where only the elements
+ that are present in both sets remain. That is, the element is included if it exists in
+ both sets. The Intersect() operation does not modify the input sets. It returns
+ a Clone() of this set with the appropriate elements removed.
+
+ A set of elements.
+ The intersection of this set with a.
+
+
+
+ Performs a "minus" of set b from set a. This returns a set of all
+ the elements in set a, removing the elements that are also in set b.
+ The original sets are not modified during this operation. The result set is a Clone()
+ of this Set containing the elements from the operation.
+
+ A set of elements.
+ A set containing the elements from this set with the elements in a removed.
+
+
+
+ Performs an "exclusive-or" of the two sets, keeping only the elements that
+ are in one of the sets, but not in both. The original sets are not modified
+ during this operation. The result set is a Clone() of this set containing
+ the elements from the exclusive-or operation.
+
+ A set of elements.
+ A set containing the result of a ^ b.
+
+
+
+ Returns if the set contains all the elements in the specified collection.
+
+ A collection of objects.
+ if the set contains all the elements in the specified collection, otherwise.
+
+
+
+ Adds the specified element to this set if it is not already present.
+
+ The object to add to the set.
+ is the object was added, if it was already present.
+
+
+
+ Adds all the elements in the specified collection to the set if they are not already present.
+
+ A collection of objects to add to the set.
+ is the set changed as a result of this operation, if not.
+
+
+
+ Remove all the specified elements from this set, if they exist in this set.
+
+ A collection of elements to remove.
+ if the set was modified as a result of this operation.
+
+
+
+ Retains only the elements in this set that are contained in the specified collection.
+
+ Collection that defines the set of elements to be retained.
+ if this set changed as a result of this operation.
+
+
+
+ Returns if this set contains no elements.
+
+
+
+
+
A collection that contains no duplicate elements. This interface models the mathematical
+ Set abstraction.
+ The order of elements in a set is dependant on (a)the data-structure implementation, and
+ (b)the implementation of the various Set methods, and thus is not guaranteed.
+
+
None of the Set implementations in this library are guranteed to be thread-safe
+ in any way unless wrapped in a SynchronizedSet.
+
+
The following table summarizes the binary operators that are supported by the Set class.
+
+
+ Operation
+ Description
+ Method
+
+
+ Union (OR)
+ Element included in result if it exists in either A OR B.
+ Union()
+
+
+ Intersection (AND)
+ Element included in result if it exists in both A AND B.
+ InterSect()
+
+
+ Exclusive Or (XOR)
+ Element included in result if it exists in one, but not both, of A and B.
+ ExclusiveOr()
+
+
+ Minus (n/a)
+ Take all the elements in A. Now, if any of them exist in B, remove
+ them. Note that unlike the other operators, A - B is not the same as B - A.
+ Minus()
+
+
+
+
+
+
+ Performs a "union" of the two sets, where all the elements
+ in both sets are present. That is, the element is included if it is in either a or b.
+ Neither this set nor the input set are modified during the operation. The return value
+ is a Clone() of this set with the extra elements added in.
+
+ A collection of elements.
+ A new Set containing the union of this Set with the specified collection.
+ Neither of the input objects is modified by the union.
+
+
+
+ Performs an "intersection" of the two sets, where only the elements
+ that are present in both sets remain. That is, the element is included if it exists in
+ both sets. The Intersect() operation does not modify the input sets. It returns
+ a Clone() of this set with the appropriate elements removed.
+
+ A set of elements.
+ The intersection of this set with a.
+
+
+
+ Performs a "minus" of set b from set a. This returns a set of all
+ the elements in set a, removing the elements that are also in set b.
+ The original sets are not modified during this operation. The result set is a Clone()
+ of this Set containing the elements from the operation.
+
+ A set of elements.
+ A set containing the elements from this set with the elements in a removed.
+
+
+
+ Performs an "exclusive-or" of the two sets, keeping only the elements that
+ are in one of the sets, but not in both. The original sets are not modified
+ during this operation. The result set is a Clone() of this set containing
+ the elements from the exclusive-or operation.
+
+ A set of elements.
+ A set containing the result of a ^ b.
+
+
+
+ Returns if this set contains the specified element.
+
+ The element to look for.
+ if this set contains the specified element, otherwise.
+
+
+
+ Returns if the set contains all the elements in the specified collection.
+
+ A collection of objects.
+ if the set contains all the elements in the specified collection, otherwise.
+
+
+
+ Adds the specified element to this set if it is not already present.
+
+ The object to add to the set.
+ is the object was added, if it was already present.
+
+
+
+ Adds all the elements in the specified collection to the set if they are not already present.
+
+ A collection of objects to add to the set.
+ is the set changed as a result of this operation, if not.
+
+
+
+ Removes the specified element from the set.
+
+ The element to be removed.
+ if the set contained the specified element, otherwise.
+
+
+
+ Remove all the specified elements from this set, if they exist in this set.
+
+ A collection of elements to remove.
+ if the set was modified as a result of this operation.
+
+
+
+ Retains only the elements in this set that are contained in the specified collection.
+
+ Collection that defines the set of elements to be retained.
+ if this set changed as a result of this operation.
+
+
+
+ Removes all objects from the set.
+
+
+
+
+ Returns if this set contains no elements.
+
+
+
+
+ Performs a "union" of the two sets, where all the elements
+ in both sets are present. That is, the element is included if it is in either a or b.
+ Neither this set nor the input set are modified during the operation. The return value
+ is a Clone() of this set with the extra elements added in.
+
+ A collection of elements.
+ A new Set containing the union of this Set with the specified collection.
+ Neither of the input objects is modified by the union.
+
+
+
+ Performs a "union" of two sets, where all the elements
+ in both are present. That is, the element is included if it is in either a or b.
+ The return value is a Clone() of one of the sets (a if it is not ) with elements of the other set
+ added in. Neither of the input sets is modified by the operation.
+
+ A set of elements.
+ A set of elements.
+ A set containing the union of the input sets. if both sets are .
+
+
+
+ Performs a "union" of two sets, where all the elements
+ in both are present. That is, the element is included if it is in either a or b.
+ The return value is a Clone() of one of the sets (a if it is not ) with elements of the other set
+ added in. Neither of the input sets is modified by the operation.
+
+ A set of elements.
+ A set of elements.
+ A set containing the union of the input sets. if both sets are .
+
+
+
+ Performs an "intersection" of the two sets, where only the elements
+ that are present in both sets remain. That is, the element is included if it exists in
+ both sets. The Intersect() operation does not modify the input sets. It returns
+ a Clone() of this set with the appropriate elements removed.
+
+ A set of elements.
+ The intersection of this set with a.
+
+
+
+ Performs an "intersection" of the two sets, where only the elements
+ that are present in both sets remain. That is, the element is included only if it exists in
+ both a and b. Neither input object is modified by the operation.
+ The result object is a Clone() of one of the input objects (a if it is not ) containing the
+ elements from the intersect operation.
+
+ A set of elements.
+ A set of elements.
+ The intersection of the two input sets. if both sets are .
+
+
+
+ Performs an "intersection" of the two sets, where only the elements
+ that are present in both sets remain. That is, the element is included only if it exists in
+ both a and b. Neither input object is modified by the operation.
+ The result object is a Clone() of one of the input objects (a if it is not ) containing the
+ elements from the intersect operation.
+
+ A set of elements.
+ A set of elements.
+ The intersection of the two input sets. if both sets are .
+
+
+
+ Performs a "minus" of set b from set a. This returns a set of all
+ the elements in set a, removing the elements that are also in set b.
+ The original sets are not modified during this operation. The result set is a Clone()
+ of this Set containing the elements from the operation.
+
+ A set of elements.
+ A set containing the elements from this set with the elements in a removed.
+
+
+
+ Performs a "minus" of set b from set a. This returns a set of all
+ the elements in set a, removing the elements that are also in set b.
+ The original sets are not modified during this operation. The result set is a Clone()
+ of set a containing the elements from the operation.
+
+ A set of elements.
+ A set of elements.
+ A set containing A - B elements. if a is .
+
+
+
+ Performs a "minus" of set b from set a. This returns a set of all
+ the elements in set a, removing the elements that are also in set b.
+ The original sets are not modified during this operation. The result set is a Clone()
+ of set a containing the elements from the operation.
+
+ A set of elements.
+ A set of elements.
+ A set containing A - B elements. if a is .
+
+
+
+ Performs an "exclusive-or" of the two sets, keeping only the elements that
+ are in one of the sets, but not in both. The original sets are not modified
+ during this operation. The result set is a Clone() of this set containing
+ the elements from the exclusive-or operation.
+
+ A set of elements.
+ A set containing the result of a ^ b.
+
+
+
+ Performs an "exclusive-or" of the two sets, keeping only the elements that
+ are in one of the sets, but not in both. The original sets are not modified
+ during this operation. The result set is a Clone() of one of the sets
+ (a if it is not ) containing
+ the elements from the exclusive-or operation.
+
+ A set of elements.
+ A set of elements.
+ A set containing the result of a ^ b. if both sets are .
+
+
+
+ Performs an "exclusive-or" of the two sets, keeping only the elements that
+ are in one of the sets, but not in both. The original sets are not modified
+ during this operation. The result set is a Clone() of one of the sets
+ (a if it is not ) containing
+ the elements from the exclusive-or operation.
+
+ A set of elements.
+ A set of elements.
+ A set containing the result of a ^ b. if both sets are .
+
+
+
+ Adds the specified element to this set if it is not already present.
+
+ The object to add to the set.
+ is the object was added, if it was already present.
+
+
+
+ Adds all the elements in the specified collection to the set if they are not already present.
+
+ A collection of objects to add to the set.
+ is the set changed as a result of this operation, if not.
+
+
+
+ Removes all objects from the set.
+
+
+
+
+ Returns if this set contains the specified element.
+
+ The element to look for.
+ if this set contains the specified element, otherwise.
+
+
+
+ Returns if the set contains all the elements in the specified collection.
+
+ A collection of objects.
+ if the set contains all the elements in the specified collection, otherwise.
+
+
+
+ Removes the specified element from the set.
+
+ The element to be removed.
+ if the set contained the specified element, otherwise.
+
+
+
+ Remove all the specified elements from this set, if they exist in this set.
+
+ A collection of elements to remove.
+ if the set was modified as a result of this operation.
+
+
+
+ Retains only the elements in this set that are contained in the specified collection.
+
+ Collection that defines the set of elements to be retained.
+ if this set changed as a result of this operation.
+
+
+
+ Returns a clone of the Set instance. This will work for derived Set
+ classes if the derived class implements a constructor that takes no arguments.
+
+ A clone of this object.
+
+
+
+ Copies the elements in the Set to an array. The type of array needs
+ to be compatible with the objects in the Set, obviously.
+
+ An array that will be the target of the copy operation.
+ The zero-based index where copying will start.
+
+
+
+ Gets an enumerator for the elements in the Set.
+
+ An IEnumerator over the elements in the Set.
+
+
+
+ Performs CopyTo when called trhough non-generic ISet (ICollection) interface
+
+
+
+
+
+
+ Performs Union when called trhough non-generic ISet interface
+
+
+
+
+
+
+ Performs Minus when called trhough non-generic ISet interface
+
+
+
+
+
+
+ Performs Intersect when called trhough non-generic ISet interface
+
+
+
+
+
+
+ Performs ExclusiveOr when called trhough non-generic ISet interface
+
+
+
+
+
+
+ Returns if this set contains no elements.
+
+
+
+
+ The number of elements currently contained in this collection.
+
+
+
+
+ Returns if the Set is synchronized across threads. Note that
+ enumeration is inherently not thread-safe. Use the SyncRoot to lock the
+ object during enumeration.
+
+
+
+
+ An object that can be used to synchronize this collection to make it thread-safe.
+ When implementing this, if your object uses a base object, like an IDictionary,
+ or anything that has a SyncRoot, return that object instead of "this".
+
+
+
+
+ Indicates whether the given instance is read-only or not
+
+
+ if the ISet is read-only; otherwise, .
+ In the default implementation of Set, this property always returns false.
+
+
+
+
+ Provides the storage for elements in the Set, stored as the key-set
+ of the IDictionary object. Set this object in the constructor
+ if you create your own Set class.
+
+
+
+
+ Adds the specified element to this set if it is not already present.
+
+ The to add to the set.
+ is the object was added, if it was already present.
+
+
+
+ Adds all the elements in the specified collection to the set if they are not already present.
+
+ A collection of objects to add to the set.
+ is the set changed as a result of this operation, if not.
+
+
+
+ Removes all objects from the set.
+
+
+
+
+ Returns if this set contains the specified element.
+
+ The element to look for.
+ if this set contains the specified element, otherwise.
+
+
+
+ Returns if the set contains all the elements in the specified collection.
+
+ A collection of objects.
+ if the set contains all the elements in the specified collection, otherwise.
+
+
+
+ Removes the specified element from the set.
+
+ The element to be removed.
+ if the set contained the specified element, otherwise.
+
+
+
+ Remove all the specified elements from this set, if they exist in this set.
+
+ A collection of elements to remove.
+ if the set was modified as a result of this operation.
+
+
+
+ Retains only the elements in this set that are contained in the specified collection.
+
+ Collection that defines the set of elements to be retained.
+ if this set changed as a result of this operation.
+
+
+
+ Copies the elements in the Set to an array of T. The type of array needs
+ to be compatible with the objects in the Set, obviously.
+
+ An array that will be the target of the copy operation.
+ The zero-based index where copying will start.
+
+
+
+ Gets an enumerator for the elements in the Set.
+
+ An IEnumerator over the elements in the Set.
+
+
+
+ Copies the elements in the Set to an array. The type of array needs
+ to be compatible with the objects in the Set, obviously. Needed for
+ non-generic ISet methods implementation
+
+ An array that will be the target of the copy operation.
+ The zero-based index where copying will start.
+
+
+
+ The placeholder object used as the value for the IDictionary instance.
+
+
+ There is a single instance of this object globally, used for all Sets.
+
+
+
+
+ Returns if this set contains no elements.
+
+
+
+
+ The number of elements contained in this collection.
+
+
+
+
+ None of the objects based on DictionarySet are synchronized. Use the
+ SyncRoot property instead.
+
+
+
+
+ Returns an object that can be used to synchronize the Set between threads.
+
+
+
+
+ Indicates wether the Set is read-only or not
+
+
+
+
+ Implements a Set based on a Dictionary (which is equivalent of
+ non-genric HashTable) This will give the best lookup, add, and remove
+ performance for very large data-sets, but iteration will occur in no particular order.
+
+
+
+
+ Creates a new set instance based on a Dictinary.
+
+
+
+
+ Creates a new set instance based on a Dictinary and
+ initializes it based on a collection of elements.
+
+ A collection of elements that defines the initial set contents.
+
+
+
+
Implements an immutable (read-only) Set wrapper.
+
Although this is advertised as immutable, it really isn't. Anyone with access to the
+ basisSet can still change the data-set. So GetHashCode() is not implemented
+ for this Set, as is the case for all Set implementations in this library.
+ This design decision was based on the efficiency of not having to Clone() the
+ basisSet every time you wrap a mutable Set.
+
+
+
+
+ Constructs an immutable (read-only) Set wrapper.
+
+ The Set that is wrapped.
+
+
+
+ Adds the specified element to this set if it is not already present.
+
+ The object to add to the set.
+ nothing
+ is always thrown
+
+
+
+ Adds all the elements in the specified collection to the set if they are not already present.
+
+ A collection of objects to add to the set.
+ nothing
+ is always thrown
+
+
+
+ Removes all objects from the set.
+
+ is always thrown
+
+
+
+ Returns if this set contains the specified element.
+
+ The element to look for.
+ if this set contains the specified element, otherwise.
+
+
+
+ Returns if the set contains all the elements in the specified collection.
+
+ A collection of objects.
+ if the set contains all the elements in the specified collection, otherwise.
+
+
+
+ Removes the specified element from the set.
+
+ The element to be removed.
+ nothing
+ is always thrown
+
+
+
+ Remove all the specified elements from this set, if they exist in this set.
+
+ A collection of elements to remove.
+ nothing
+ is always thrown
+
+
+
+ Retains only the elements in this set that are contained in the specified collection.
+
+ Collection that defines the set of elements to be retained.
+ nothing
+ is always thrown
+
+
+
+ Copies the elements in the Set to an array of T. The type of array needs
+ to be compatible with the objects in the Set, obviously.
+
+ An array that will be the target of the copy operation.
+ The zero-based index where copying will start.
+
+
+
+ Gets an enumerator for the elements in the Set.
+
+ An IEnumerator over the elements in the Set.
+
+
+
+ Returns a clone of the Set instance.
+
+ A clone of this object.
+
+
+
+ Performs a "union" of the two sets, where all the elements
+ in both sets are present. That is, the element is included if it is in either a or b.
+ Neither this set nor the input set are modified during the operation. The return value
+ is a Clone() of this set with the extra elements added in.
+
+ A collection of elements.
+ A new Set containing the union of this Set with the specified collection.
+ Neither of the input objects is modified by the union.
+
+
+
+ Performs an "intersection" of the two sets, where only the elements
+ that are present in both sets remain. That is, the element is included if it exists in
+ both sets. The Intersect() operation does not modify the input sets. It returns
+ a Clone() of this set with the appropriate elements removed.
+
+ A set of elements.
+ The intersection of this set with a.
+
+
+
+ Performs a "minus" of set b from set a. This returns a set of all
+ the elements in set a, removing the elements that are also in set b.
+ The original sets are not modified during this operation. The result set is a Clone()
+ of this Set containing the elements from the operation.
+
+ A set of elements.
+ A set containing the elements from this set with the elements in a removed.
+
+
+
+ Performs an "exclusive-or" of the two sets, keeping only the elements that
+ are in one of the sets, but not in both. The original sets are not modified
+ during this operation. The result set is a Clone() of this set containing
+ the elements from the exclusive-or operation.
+
+ A set of elements.
+ A set containing the result of a ^ b.
+
+
+
+ Performs CopyTo when called trhough non-generic ISet (ICollection) interface
+
+
+
+
+
+
+ Performs Union when called trhough non-generic ISet interface
+
+
+
+
+
+
+ Performs Minus when called trhough non-generic ISet interface
+
+
+
+
+
+
+ Performs Intersect when called trhough non-generic ISet interface
+
+
+
+
+
+
+ Performs ExclusiveOr when called trhough non-generic ISet interface
+
+
+
+
+
+
+ Returns if this set contains no elements.
+
+
+
+
+ The number of elements contained in this collection.
+
+
+
+
+ Returns an object that can be used to synchronize use of the Set across threads.
+
+
+
+
+ Returns an object that can be used to synchronize the Set between threads.
+
+
+
+
+ Indicates that the given instance is read-only
+
+
+
+
+ Implements a Set based on a sorted tree. This gives good performance for operations on very
+ large data-sets, though not as good - asymptotically - as a HashedSet. However, iteration
+ occurs in order. Elements that you put into this type of collection must implement IComparable,
+ and they must actually be comparable. You can't mix string and int values, for example.
+
+
+
+
+ Creates a new set instance based on a sorted tree.
+
+
+
+
+ Creates a new set instance based on a sorted tree.
+
+ The to use for sorting.
+
+
+
+ Creates a new set instance based on a sorted tree and
+ initializes it based on a collection of elements.
+
+ A collection of elements that defines the initial set contents.
+
+
+
+ Creates a new set instance based on a sorted tree and
+ initializes it based on a collection of elements.
+
+ A collection of elements that defines the initial set contents.
+
+
+
+ Creates a new set instance based on a sorted tree and
+ initializes it based on a collection of elements.
+
+ A collection of elements that defines the initial set contents.
+ The to use for sorting.
+
+
+
+
Implements a thread-safe Set wrapper. The implementation is extremely conservative,
+ serializing critical sections to prevent possible deadlocks, and locking on everything.
+ The one exception is for enumeration, which is inherently not thread-safe. For this, you
+ have to lock the SyncRoot object for the duration of the enumeration.
+
+
+
+
+ Constructs a thread-safe Set wrapper.
+
+ The Set object that this object will wrap.
+
+
+
+ Adds the specified element to this set if it is not already present.
+
+ The object to add to the set.
+ is the object was added, if it was already present.
+
+
+
+ Adds all the elements in the specified collection to the set if they are not already present.
+
+ A collection of objects to add to the set.
+ is the set changed as a result of this operation, if not.
+
+
+
+ Removes all objects from the set.
+
+
+
+
+ Returns if this set contains the specified element.
+
+ The element to look for.
+ if this set contains the specified element, otherwise.
+
+
+
+ Returns if the set contains all the elements in the specified collection.
+
+ A collection of objects.
+ if the set contains all the elements in the specified collection, otherwise.
+
+
+
+ Removes the specified element from the set.
+
+ The element to be removed.
+ if the set contained the specified element, otherwise.
+
+
+
+ Remove all the specified elements from this set, if they exist in this set.
+
+ A collection of elements to remove.
+ if the set was modified as a result of this operation.
+
+
+
+ Retains only the elements in this set that are contained in the specified collection.
+
+ Collection that defines the set of elements to be retained.
+ if this set changed as a result of this operation.
+
+
+
+ Copies the elements in the Set to an array. The type of array needs
+ to be compatible with the objects in the Set, obviously.
+
+ An array that will be the target of the copy operation.
+ The zero-based index where copying will start.
+
+
+
+ Enumeration is, by definition, not thread-safe. Use a lock on the SyncRoot
+ to synchronize the entire enumeration process.
+
+
+
+
+
+ Returns a clone of the Set instance.
+
+ A clone of this object.
+
+
+
+ Performs CopyTo when called trhough non-generic ISet (ICollection) interface
+
+
+
+
+
+
+ Returns if this set contains no elements.
+
+
+
+
+ The number of elements contained in this collection.
+
+
+
+
+ Returns , indicating that this object is thread-safe. The exception to this
+ is enumeration, which is inherently not thread-safe. Use the SyncRoot object to
+ lock this object for the entire duration of the enumeration.
+
+
+
+
+ Returns an object that can be used to synchronize the Set between threads.
+
+
+
+
+ Indicates whether given instace is read-only or not
+
+
+
+
+
DictionarySet is an abstract class that supports the creation of new Set
+ types where the underlying data store is an IDictionary instance.
+
+
You can use any object that implements the IDictionary interface to hold set data.
+ You can define your own, or you can use one of the objects provided in the Framework.
+ The type of IDictionary you choose will affect both the performance and the behavior
+ of the Set using it.
+
+
To make a Set typed based on your own IDictionary, simply derive a
+ new class with a constructor that takes no parameters. Some Set implmentations
+ cannot be defined with a default constructor. If this is the case for your class,
+ you will need to override Clone() as well.
+
+
It is also standard practice that at least one of your constructors takes an ICollection or
+ an ISet as an argument.
+
+
+
+ A collection that contains no duplicate elements.
+
+
+ This class models the mathematical set abstraction, and is the base class for all
+ other set implementations. The order of elements in a set is dependant on
+ (a) the data-structure implementation, and (b) the implementation of the various
+ methods, and thus is not guaranteed.
+
+
+ None of the implementations in this library are guranteed to be thread-safe
+ in any way unless wrapped in a .
+
+
+ The following table summarizes the binary operators that are supported by the
+ type.
+
+
+
+ Operation
+ Description
+ Method
+ Operator
+
+
+ Union (OR)
+ Element included in result if it exists in either A OR B.
+ Union()
+ |
+
+
+ Intersection (AND)
+ Element included in result if it exists in both A AND B.
+ InterSect()
+ &
+
+
+ Exclusive Or (XOR)
+ Element included in result if it exists in one, but not both, of A and B.
+ ExclusiveOr()
+ ^
+
+
+ Minus (n/a)
+ Take all the elements in A. Now, if any of them exist in B, remove
+ them. Note that unlike the other operators, A - B is not the same as B - A.
+ Minus()
+ -
+
+
+
+
+
+
+ Performs a "union" of the two sets, where all the elements
+ in both sets are present. That is, the element is included if it is in either a or b.
+ Neither this set nor the input set are modified during the operation. The return value
+ is a clone of this set with the extra elements added in.
+
+ A collection of elements.
+ A new instance containing the union of this instance with the specified collection.
+ Neither of the input objects is modified by the union.
+
+
+
+ Performs a "union" of two sets, where all the elements
+ in both are present. That is, the element is included if it is in either a or b.
+ The return value is a clone of one of the sets (a if it is not ) with elements of the other set
+ added in. Neither of the input sets is modified by the operation.
+
+ A set of elements.
+ A set of elements.
+ A set containing the union of the input sets. if both sets are .
+
+
+
+ Performs a "union" of two sets, where all the elements
+ in both are present. That is, the element is included if it is in either a or b.
+ The return value is a clone of one of the sets (a if it is not ) with elements of the other set
+ added in. Neither of the input sets is modified by the operation.
+
+ A set of elements.
+ A set of elements.
+ A set containing the union of the input sets. if both sets are .
+
+
+
+ Performs an "intersection" of the two sets, where only the elements
+ that are present in both sets remain. That is, the element is included if it exists in
+ both sets. The Intersect() operation does not modify the input sets. It returns
+ a Clone() of this set with the appropriate elements removed.
+
+ A set of elements.
+ The intersection of this set with a.
+
+
+
+ Performs an "intersection" of the two sets, where only the elements
+ that are present in both sets remain. That is, the element is included only if it exists in
+ both a and b. Neither input object is modified by the operation.
+ The result object is a Clone() of one of the input objects (a if it is not ) containing the
+ elements from the intersect operation.
+
+ A set of elements.
+ A set of elements.
+ The intersection of the two input sets. if both sets are .
+
+
+
+ Performs an "intersection" of the two sets, where only the elements
+ that are present in both sets remain. That is, the element is included only if it exists in
+ both a and b. Neither input object is modified by the operation.
+ The result object is a Clone() of one of the input objects (a if it is not ) containing the
+ elements from the intersect operation.
+
+ A set of elements.
+ A set of elements.
+ The intersection of the two input sets. if both sets are .
+
+
+
+ Performs a "minus" of set b from set a. This returns a set of all
+ the elements in set a, removing the elements that are also in set b.
+ The original sets are not modified during this operation. The result set is a Clone()
+ of this Set containing the elements from the operation.
+
+ A set of elements.
+ A set containing the elements from this set with the elements in a removed.
+
+
+
+ Performs a "minus" of set b from set a. This returns a set of all
+ the elements in set a, removing the elements that are also in set b.
+ The original sets are not modified during this operation. The result set is a Clone()
+ of set a containing the elements from the operation.
+
+ A set of elements.
+ A set of elements.
+ A set containing A - B elements. if a is .
+
+
+
+ Performs a "minus" of set b from set a. This returns a set of all
+ the elements in set a, removing the elements that are also in set b.
+ The original sets are not modified during this operation. The result set is a Clone()
+ of set a containing the elements from the operation.
+
+ A set of elements.
+ A set of elements.
+ A set containing A - B elements. if a is .
+
+
+
+ Performs an "exclusive-or" of the two sets, keeping only the elements that
+ are in one of the sets, but not in both. The original sets are not modified
+ during this operation. The result set is a clone of this set containing
+ the elements from the exclusive-or operation.
+
+ A set of elements.
+ A set containing the result of a ^ b.
+
+
+
+ Performs an "exclusive-or" of the two sets, keeping only the elements that
+ are in one of the sets, but not in both. The original sets are not modified
+ during this operation. The result set is a clone of one of the sets
+ (a if it is not ) containing
+ the elements from the exclusive-or operation.
+
+ A set of elements.
+ A set of elements.
+ A set containing the result of a ^ b. if both sets are .
+
+
+
+ Performs an "exclusive-or" of the two sets, keeping only the elements that
+ are in one of the sets, but not in both. The original sets are not modified
+ during this operation. The result set is a clone of one of the sets
+ (a if it is not ) containing
+ the elements from the exclusive-or operation.
+
+ A set of elements.
+ A set of elements.
+ A set containing the result of a ^ b. if both sets are .
+
+
+
+ Adds the specified element to this set if it is not already present.
+
+ The object to add to the set.
+ is the object was added, if it was already present.
+
+
+
+ Adds all the elements in the specified collection to the set if they are not already present.
+
+ A collection of objects to add to the set.
+ is the set changed as a result of this operation, if not.
+
+
+
+ Removes all objects from the set.
+
+
+
+
+ Returns if this set contains the specified element.
+
+ The element to look for.
+ if this set contains the specified element, otherwise.
+
+
+
+ Returns if the set contains all the elements in the specified collection.
+
+ A collection of objects.
+ if the set contains all the elements in the specified collection, otherwise.
+
+
+
+ Removes the specified element from the set.
+
+ The element to be removed.
+ if the set contained the specified element, otherwise.
+
+
+
+ Remove all the specified elements from this set, if they exist in this set.
+
+ A collection of elements to remove.
+ if the set was modified as a result of this operation.
+
+
+
+ Retains only the elements in this set that are contained in the specified collection.
+
+ Collection that defines the set of elements to be retained.
+ if this set changed as a result of this operation.
+
+
+
+ Returns a clone of the set instance. This will work for derived set
+ classes if the derived class implements a constructor that takes no arguments.
+
+ A clone of this object.
+
+
+
+ Copies the elements in the set to an array. The type of array needs
+ to be compatible with the objects in the set, obviously.
+
+ An array that will be the target of the copy operation.
+ The zero-based index where copying will start.
+
+
+
+ Returns an enumerator that iterates through the set.
+
+
+ An object that can be used to iterate through the set.
+
+
+
+
+ Returns if this set contains no elements.
+
+
+
+
+ The number of elements currently contained in this collection.
+
+
+
+
+ Returns if the set is synchronized across threads. Note that
+ enumeration is inherently not thread-safe. Use the to lock the
+ object during enumeration.
+
+
+
+
+ An object that can be used to synchronize this collection to make it thread-safe.
+ When implementing this, if your object uses a base object, like an ,
+ or anything that has a , return that object instead
+ of .
+
+
+
+
+ Provides the storage for elements in the Set, stored as the key-set
+ of the IDictionary object. Set this object in the constructor
+ if you create your own Set class.
+
+
+
+
+ Adds the specified element to this set if it is not already present.
+
+ The object to add to the set.
+ is the object was added, if it was already present.
+
+
+
+ Adds all the elements in the specified collection to the set if they are not already present.
+
+ A collection of objects to add to the set.
+ is the set changed as a result of this operation, if not.
+
+
+
+ Removes all objects from the set.
+
+
+
+
+ Returns if this set contains the specified element.
+
+ The element to look for.
+ if this set contains the specified element, otherwise.
+
+
+
+ Returns if the set contains all the elements in the specified collection.
+
+ A collection of objects.
+ if the set contains all the elements in the specified collection, otherwise.
+
+
+
+ Removes the specified element from the set.
+
+ The element to be removed.
+ if the set contained the specified element, otherwise.
+
+
+
+ Remove all the specified elements from this set, if they exist in this set.
+
+ A collection of elements to remove.
+ if the set was modified as a result of this operation.
+
+
+
+ Retains only the elements in this set that are contained in the specified collection.
+
+ Collection that defines the set of elements to be retained.
+ if this set changed as a result of this operation.
+
+
+
+ Copies the elements in the Set to an array. The type of array needs
+ to be compatible with the objects in the Set, obviously.
+
+ An array that will be the target of the copy operation.
+ The zero-based index where copying will start.
+
+
+
+ Gets an enumerator for the elements in the Set.
+
+ An IEnumerator over the elements in the Set.
+
+
+
+ The placeholder object used as the value for the IDictionary instance.
+
+
+ There is a single instance of this object globally, used for all Sets.
+
+
+
+
+ Returns if this set contains no elements.
+
+
+
+
+ The number of elements contained in this collection.
+
+
+
+
+ None of the objects based on DictionarySet are synchronized. Use the
+ SyncRoot property instead.
+
+
+
+
+ Returns an object that can be used to synchronize the Set between threads.
+
+
+
+
+ Implements a Set based on a hash table. This will give the best lookup, add, and remove
+ performance for very large data-sets, but iteration will occur in no particular order.
+
+
+
+
+ Creates a new set instance based on a hash table.
+
+
+
+
+ Creates a new set instance based on a hash table and
+ initializes it based on a collection of elements.
+
+ A collection of elements that defines the initial set contents.
+
+
+
+ Implements a Set that automatically changes from a list to a hash table
+ when the size reaches a certain threshold. This is good if you are unsure about
+ whether you data-set will be tiny or huge. Because this uses a dual implementation,
+ iteration order is not guaranteed!
+
+
+
+
+ Creates a new set instance based on either a list or a hash table, depending on which
+ will be more efficient based on the data-set size.
+
+
+
+
+ Creates a new set instance based on either a list or a hash table, depending on which
+ will be more efficient based on the data-set size, and
+ initializes it based on a collection of elements.
+
+ A collection of elements that defines the initial set contents.
+
+
+
+
Implements an immutable (read-only) Set wrapper.
+
Although this is advertised as immutable, it really isn't. Anyone with access to the
+ basisSet can still change the data-set. So GetHashCode() is not implemented
+ for this Set, as is the case for all Set implementations in this library.
+ This design decision was based on the efficiency of not having to Clone() the
+ basisSet every time you wrap a mutable Set.
+
+
+
+
+ Constructs an immutable (read-only) Set wrapper.
+
+ The Set that is wrapped.
+
+
+
+ Adds the specified element to this set if it is not already present.
+
+ The object to add to the set.
+ is the object was added, if it was already present.
+
+
+
+ Adds all the elements in the specified collection to the set if they are not already present.
+
+ A collection of objects to add to the set.
+ is the set changed as a result of this operation, if not.
+
+
+
+ Removes all objects from the set.
+
+
+
+
+ Returns if this set contains the specified element.
+
+ The element to look for.
+ if this set contains the specified element, otherwise.
+
+
+
+ Returns if the set contains all the elements in the specified collection.
+
+ A collection of objects.
+ if the set contains all the elements in the specified collection, otherwise.
+
+
+
+ Removes the specified element from the set.
+
+ The element to be removed.
+ if the set contained the specified element, otherwise.
+
+
+
+ Remove all the specified elements from this set, if they exist in this set.
+
+ A collection of elements to remove.
+ if the set was modified as a result of this operation.
+
+
+
+ Retains only the elements in this set that are contained in the specified collection.
+
+ Collection that defines the set of elements to be retained.
+ if this set changed as a result of this operation.
+
+
+
+ Copies the elements in the Set to an array. The type of array needs
+ to be compatible with the objects in the Set, obviously.
+
+ An array that will be the target of the copy operation.
+ The zero-based index where copying will start.
+
+
+
+ Gets an enumerator for the elements in the Set.
+
+ An IEnumerator over the elements in the Set.
+
+
+
+ Returns a clone of the Set instance.
+
+ A clone of this object.
+
+
+
+ Performs a "union" of the two sets, where all the elements
+ in both sets are present. That is, the element is included if it is in either a or b.
+ Neither this set nor the input set are modified during the operation. The return value
+ is a Clone() of this set with the extra elements added in.
+
+ A collection of elements.
+ A new Set containing the union of this Set with the specified collection.
+ Neither of the input objects is modified by the union.
+
+
+
+ Performs an "intersection" of the two sets, where only the elements
+ that are present in both sets remain. That is, the element is included if it exists in
+ both sets. The Intersect() operation does not modify the input sets. It returns
+ a Clone() of this set with the appropriate elements removed.
+
+ A set of elements.
+ The intersection of this set with a.
+
+
+
+ Performs a "minus" of set b from set a. This returns a set of all
+ the elements in set a, removing the elements that are also in set b.
+ The original sets are not modified during this operation. The result set is a Clone()
+ of this Set containing the elements from the operation.
+
+ A set of elements.
+ A set containing the elements from this set with the elements in a removed.
+
+
+
+ Performs an "exclusive-or" of the two sets, keeping only the elements that
+ are in one of the sets, but not in both. The original sets are not modified
+ during this operation. The result set is a Clone() of this set containing
+ the elements from the exclusive-or operation.
+
+ A set of elements.
+ A set containing the result of a ^ b.
+
+
+
+ Returns if this set contains no elements.
+
+
+
+
+ The number of elements contained in this collection.
+
+
+
+
+ Returns an object that can be used to synchronize use of the Set across threads.
+
+
+
+
+ Returns an object that can be used to synchronize the Set between threads.
+
+
+
+
+ Implements a Set based on a list. Performance is much better for very small lists
+ than either HashedSet or SortedSet. However, performance degrades rapidly as
+ the data-set gets bigger. Use a HybridSet instead if you are not sure your data-set
+ will always remain very small. Iteration produces elements in the order they were added.
+ However, element order is not guaranteed to be maintained by the various Set
+ mathematical operators.
+
+
+
+
+ Creates a new set instance based on a list.
+
+
+
+
+ Creates a new set instance based on a list and
+ initializes it based on a collection of elements.
+
+ A collection of elements that defines the initial set contents.
+
+
+
+ Implements a set based on a sorted tree. This gives good performance for operations on very
+ large data-sets, though not as good - asymptotically - as a .
+ However, iteration occurs in order. Elements that you put into this type of collection must
+ implement , and they must actually be comparable. You can't mix
+ and values, for example.
+
+
+
+
+ Creates a new set instance based on a sorted tree.
+
+
+
+
+ Creates a new set instance based on a sorted tree.
+
+ The to use for sorting.
+
+
+
+ Creates a new set instance based on a sorted tree and
+ initializes it based on a collection of elements.
+
+ A collection of elements that defines the initial set contents.
+
+
+
+ Creates a new set instance based on a sorted tree and
+ initializes it based on a collection of elements.
+
+ A collection of elements that defines the initial set contents.
+ The to use for sorting.
+
+
+
+ Implements a thread-safe wrapper.
+
+
+ The implementation is extremely conservative, serializing critical sections
+ to prevent possible deadlocks, and locking on everything. The one exception
+ is for enumeration, which is inherently not thread-safe. For this, you have
+ to the object for the duration
+ of the enumeration.
+
+
+
+
+ Constructs a thread-safe wrapper.
+
+ The object that this object will wrap.
+
+
+
+ Adds the specified element to this set if it is not already present.
+
+ The object to add to the set.
+ is the object was added, if it was already present.
+
+
+
+ Adds all the elements in the specified collection to the set if they are not already present.
+
+ A collection of objects to add to the set.
+ is the set changed as a result of this operation, if not.
+
+
+
+ Removes all objects from the set.
+
+
+
+
+ Returns if this set contains the specified element.
+
+ The element to look for.
+ if this set contains the specified element, otherwise.
+
+
+
+ Returns if the set contains all the elements in the specified collection.
+
+ A collection of objects.
+ if the set contains all the elements in the specified collection, otherwise.
+
+
+
+ Removes the specified element from the set.
+
+ The element to be removed.
+ if the set contained the specified element, otherwise.
+
+
+
+ Remove all the specified elements from this set, if they exist in this set.
+
+ A collection of elements to remove.
+ if the set was modified as a result of this operation.
+
+
+
+ Retains only the elements in this set that are contained in the specified collection.
+
+ Collection that defines the set of elements to be retained.
+ if this set changed as a result of this operation.
+
+
+
+ Copies the elements in the set to an array. The type of array needs
+ to be compatible with the objects in the set, obviously.
+
+ An array that will be the target of the copy operation.
+ The zero-based index where copying will start.
+
+
+
+ Returns an enumerator that iterates through the set.
+
+
+ An object that can be used to iterate through the set.
+
+
+ Enumeration is, by definition, not thread-safe. Use a on the
+ to synchronize the entire enumeration process.
+
+
+
+
+ Returns a clone of this instance.
+
+ A clone of this object.
+
+
+
+ Returns if this set contains no elements.
+
+
+
+
+ The number of elements contained in this collection.
+
+
+
+
+ Returns , indicating that this object is thread-safe. The exception to this
+ is enumeration, which is inherently not thread-safe. Use the object to
+ lock this object for the entire duration of the enumeration.
+
+
+
+
+ Returns an object that can be used to synchronize the set between threads.
+
+
+
+
diff --git a/lib/NHibernate20/net/4.0/NHibernate.dll b/lib/NHibernate20/net/4.0/NHibernate.dll
new file mode 100644
index 00000000..392852e7
Binary files /dev/null and b/lib/NHibernate20/net/4.0/NHibernate.dll differ
diff --git a/lib/NHibernate20/net/4.0/NHibernate.license.txt b/lib/NHibernate20/net/4.0/NHibernate.license.txt
new file mode 100644
index 00000000..8a88d148
--- /dev/null
+++ b/lib/NHibernate20/net/4.0/NHibernate.license.txt
@@ -0,0 +1,460 @@
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL. It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+ This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it. You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+ When we speak of free software, we are referring to freedom of use,
+not price. Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+ To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights. These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+ For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you. You must make sure that they, too, receive or can get the source
+code. If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it. And you must show them these terms so they know their rights.
+
+ We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+ To protect each distributor, we want to make it very clear that
+there is no warranty for the free library. Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+ Finally, software patents pose a constant threat to the existence of
+any free program. We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder. Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+ Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License. This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License. We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+ When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library. The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom. The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+ We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License. It also provides other free software developers Less
+of an advantage over competing non-free programs. These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries. However, the Lesser license provides advantages in certain
+special circumstances.
+
+ For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard. To achieve this, non-free programs must be
+allowed to use the library. A more frequent case is that a free
+library does the same job as widely used non-free libraries. In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+ In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software. For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+ Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+ The precise terms and conditions for copying, distribution and
+modification follow. Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library". The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+ GNU LESSER GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+ A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+ The "Library", below, refers to any such software library or work
+which has been distributed under these terms. A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language. (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+ "Source code" for a work means the preferred form of the work for
+making modifications to it. For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+ Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it). Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+ 1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+ You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+ 2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) The modified work must itself be a software library.
+
+ b) You must cause the files modified to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ c) You must cause the whole of the work to be licensed at no
+ charge to all third parties under the terms of this License.
+
+ d) If a facility in the modified Library refers to a function or a
+ table of data to be supplied by an application program that uses
+ the facility, other than as an argument passed when the facility
+ is invoked, then you must make a good faith effort to ensure that,
+ in the event an application does not supply such function or
+ table, the facility still operates, and performs whatever part of
+ its purpose remains meaningful.
+
+ (For example, a function in a library to compute square roots has
+ a purpose that is entirely well-defined independent of the
+ application. Therefore, Subsection 2d requires that any
+ application-supplied function or table used by this function must
+ be optional: if the application does not supply it, the square
+ root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library. To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License. (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.) Do not make any other change in
+these notices.
+
+ Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+ This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+ 4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+ If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library". Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+ However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library". The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+ When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library. The
+threshold for this to be true is not precisely defined by law.
+
+ If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work. (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+ Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+ 6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+ You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License. You must supply a copy of this License. If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License. Also, you must do one
+of these things:
+
+ a) Accompany the work with the complete corresponding
+ machine-readable source code for the Library including whatever
+ changes were used in the work (which must be distributed under
+ Sections 1 and 2 above); and, if the work is an executable linked
+ with the Library, with the complete machine-readable "work that
+ uses the Library", as object code and/or source code, so that the
+ user can modify the Library and then relink to produce a modified
+ executable containing the modified Library. (It is understood
+ that the user who changes the contents of definitions files in the
+ Library will not necessarily be able to recompile the application
+ to use the modified definitions.)
+
+ b) Use a suitable shared library mechanism for linking with the
+ Library. A suitable mechanism is one that (1) uses at run time a
+ copy of the library already present on the user's computer system,
+ rather than copying library functions into the executable, and (2)
+ will operate properly with a modified version of the library, if
+ the user installs one, as long as the modified version is
+ interface-compatible with the version that the work was made with.
+
+ c) Accompany the work with a written offer, valid for at
+ least three years, to give the same user the materials
+ specified in Subsection 6a, above, for a charge no more
+ than the cost of performing this distribution.
+
+ d) If distribution of the work is made by offering access to copy
+ from a designated place, offer equivalent access to copy the above
+ specified materials from the same place.
+
+ e) Verify that the user has already received a copy of these
+ materials or that you have already sent this user a copy.
+
+ For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it. However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+ It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system. Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+ 7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+ a) Accompany the combined library with a copy of the same work
+ based on the Library, uncombined with any other library
+ facilities. This must be distributed under the terms of the
+ Sections above.
+
+ b) Give prominent notice with the combined library of the fact
+ that part of it is a work based on the Library, and explaining
+ where to find the accompanying uncombined form of the same work.
+
+ 8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License. Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License. However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+ 9. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Library or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+ 10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+ 11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all. For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded. In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+ 13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation. If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+ 14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission. For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this. Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+ NO WARRANTY
+
+ 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
diff --git a/lib/NHibernate20/net/4.0/NHibernate.xml b/lib/NHibernate20/net/4.0/NHibernate.xml
new file mode 100644
index 00000000..47fab8a5
--- /dev/null
+++ b/lib/NHibernate20/net/4.0/NHibernate.xml
@@ -0,0 +1,36622 @@
+
+
+
+ NHibernate
+
+
+
+
+ Implementation of BulkOperationCleanupAction.
+
+
+
+
+ An operation which may be scheduled for later execution.
+ Usually, the operation is a database insert/update/delete,
+ together with required second-level cache management.
+
+
+
+ Called before executing any actions
+
+
+ Execute this action
+
+
+
+ Do we need to retain this instance until after the transaction completes?
+
+
+ False if this class defines a no-op has after transaction completion.
+
+
+
+ Called after the transaction completes
+
+
+
+ What spaces (tables) are affected by this action?
+
+
+
+
+ Create an action that will evict collection and entity regions based on queryspaces (table names).
+
+
+
+
+ Any action relating to insert/update/delete of a collection
+
+
+
+
+ Initializes a new instance of .
+
+ The that is responsible for the persisting the Collection.
+ The Persistent collection.
+ The identifier of the Collection.
+ The that the Action is occurring in.
+
+
+ Called before executing any actions
+
+
+ Execute this action
+
+
+
+ Do we need to retain this instance until after the transaction completes?
+
+
+ False if this class defines a no-op has after transaction completion.
+
+
+
+ Called after the transaction completes
+
+
+
+ Compares the current object with another object of the same type.
+
+
+ A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has the following meanings: Value Meaning Less than zero This object is less than the other parameter.Zero This object is equal to other. Greater than zero This object is greater than other.
+
+ An object to compare with this object.
+
+
+
+ What spaces (tables) are affected by this action?
+
+
+
+ Execute this action
+
+
+
+ Acts as a stand-in for an entity identifier which is supposed to be
+ generated on insert (like an IDENTITY column) where the insert needed to
+ be delayed because we were outside a transaction when the persist
+ occurred (save currently still performs the insert).
+
+ The stand-in is only used within the see cref="NHibernate.Engine.PersistenceContext"
+ in order to distinguish one instance from another; it is never injected into
+ the entity instance or returned to the client...
+
+
+
+
+ Base class for actions relating to insert/update/delete of an entity
+ instance.
+
+
+
+
+ Instantiate an action.
+
+ The session from which this action is coming.
+ The id of the entity
+ The entity instance
+ The entity persister
+
+
+
+ Entity name accessor
+
+
+
+
+ Entity Id accessor
+
+
+
+
+ Entity Instance
+
+
+
+
+ Session from which this action originated
+
+
+
+
+ The entity persister.
+
+
+
+
+ Manages prepared statements and batching. Class exists to enforce separation of concerns
+
+
+
+
+ Manages s and s
+ for an .
+
+
+
+ Abstracts ADO.NET batching to maintain the illusion that a single logical batch
+ exists for the whole session, even when batching is disabled.
+ Provides transparent IDbCommand caching.
+
+
+ This will be useful once ADO.NET gets support for batching. Until that point
+ no code exists that will do batching, but this will provide a good point to do
+ error checking and making sure the correct number of rows were affected.
+
+
+
+
+
+ Get an for using in loading / querying.
+
+ The to convert to an .
+ The of the command.
+ The SqlTypes of parameters
+ in .
+
+ An that is ready to be executed.
+
+
+
+ If not explicitly released by , it will be
+ released when the session is closed or disconnected.
+
+
+ This does NOT add anything to the batch - it only creates the IDbCommand and
+ does NOT cause the batch to execute...
+
+
+
+
+
+ Get a non-batchable an to use for inserting / deleting / updating.
+ Must be explicitly released by CloseCommand()
+
+ The to convert to an .
+ The of the command.
+ The SqlTypes of parameters
+ in .
+
+ An that is ready to have the parameter values set
+ and then executed.
+
+
+
+
+ Close a opened using PrepareCommand()
+
+ The to ensure is closed.
+ The to ensure is closed.
+
+
+
+ Close a opened using
+
+ The to ensure is closed.
+
+
+
+ Get a batchable to use for inserting / deleting / updating
+ (might be called many times before a single call to ExecuteBatch()
+
+
+ After setting parameters, call AddToBatch() - do not execute the statement
+ explicitly.
+
+ The to convert to an .
+ The of the command.
+ The SqlTypes of parameters
+ in .
+
+
+
+
+ Add an insert / delete / update to the current batch (might be called multiple times
+ for a single PrepareBatchStatement())
+
+ Determines whether the number of rows affected by query is correct.
+
+
+
+ Execute the batch
+
+
+
+
+ Close any query statements that were left lying around
+
+
+ Use this method instead of Dispose if the
+ can be used again.
+
+
+
+
+ Gets an by calling ExecuteReader on the .
+
+ The to execute to get the .
+ The from the .
+
+ The Batcher is responsible for ensuring that all of the Drivers rules for how many open
+ s it can have are followed.
+
+
+
+
+ Executes the .
+
+ The to execute.
+ The number of rows affected.
+
+ The Batcher is responsible for ensuring that all of the Drivers rules for how many open
+ s it can have are followed.
+
+
+
+
+ Must be called when an exception occurs.
+
+
+
+
+
+ Cancel the current query statement
+
+
+
+
+ Gets the value indicating whether there are any open resources
+ managed by this batcher (IDbCommands or IDataReaders).
+
+
+
+
+ Gets or sets the size of the batch, this can change dynamically by
+ calling the session's SetBatchSize.
+
+ The size of the batch.
+
+
+
+ Initializes a new instance of the class.
+
+ The owning this batcher.
+
+
+
+
+ Prepares the for execution in the database.
+
+
+ This takes care of hooking the up to an
+ and if one exists. It will call Prepare if the Driver
+ supports preparing commands.
+
+
+
+
+ Ensures that the Driver's rules for Multiple Open DataReaders are being followed.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Adds the expected row count into the batch.
+
+ The number of rows expected to be affected by the query.
+
+ If Batching is not supported, then this is when the Command should be executed. If Batching
+ is supported then it should hold of on executing the batch until explicitly told to.
+
+
+
+
+ A flag to indicate if Dispose() has been called.
+
+
+
+
+ Finalizer that ensures the object is correctly disposed of.
+
+
+
+
+ Takes care of freeing the managed and unmanaged resources that
+ this class is responsible for.
+
+
+
+
+ Takes care of freeing the managed and unmanaged resources that
+ this class is responsible for.
+
+ Indicates if this BatcherImpl is being Disposed of or Finalized.
+
+ If this BatcherImpl is being Finalized (isDisposing==false) then make sure not
+ to call any methods that could potentially bring this BatcherImpl back to life.
+
+
+
+
+ Gets the current that is contained for this Batch
+
+ The current .
+
+
+
+ Gets or sets the size of the batch, this can change dynamically by
+ calling the session's SetBatchSize.
+
+ The size of the batch.
+
+
+
+ Gets the the Batcher was
+ created in.
+
+
+ The the Batcher was
+ created in.
+
+
+
+
+ Gets the for this batcher.
+
+
+
+ Implementation of ColumnNameCache.
+
+
+
+ Manages the database connection and transaction for an .
+
+
+ This class corresponds to ConnectionManager and JDBCContext in Hibernate,
+ combined.
+
+
+
+ The batcher managed by this ConnectionManager.
+
+
+
+ Expected row count. Valid only for batchable expectations.
+
+
+
+ Factory for instances.
+
+
+
+ Provide the class of according to the configuration
+ and the capabilities of the driver.
+
+
+ By default, .Net doesn't have any batching capabilities, drivers that does have
+ batching support.
+ The BatcherFactory trough session-factory configuration section.
+ This interface was added in NHibernate for backdraw compatibility to have the ability
+ to specify a default for a specific .
+
+
+
+
+ An implementation of the
+ interface that does no batching.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The for this batcher.
+
+
+
+
+ Executes the current and compares the row Count
+ to the expectedRowCount.
+
+
+ The expected number of rows affected by the query. A value of less than 0
+ indicates that the number of rows to expect is unknown or should not be a factor.
+
+
+ Thrown when there is an expected number of rows to be affected and the
+ actual number of rows is different.
+
+
+
+
+ This Batcher implementation does not support batching so this is a no-op call. The
+ actual execution of the is run in the AddToBatch
+ method.
+
+
+
+
+
+ A BatcherFactory implementation which constructs Batcher instances
+ that do not perform batch operations.
+
+
+
+
+ Summary description for OracleDataClientBatchingBatcher.
+ By Tomer Avissar
+
+
+
+
+ A ResultSet delegate, responsible for locally caching the columnName-to-columnIndex
+ resolution that has been found to be inefficient in a few vendor's drivers (i.e., Oracle
+ and Postgres).
+
+
+
+
+
+ Summary description for SqlClientBatchingBatcher.
+
+
+
+
+ Expose the batch functionality in ADO.Net 2.0
+ Microsoft in its wisdom decided to make my life hard and mark it internal.
+ Through the use of Reflection and some delegates magic, I opened up the functionality.
+
+ Observable performance benefits are 50%+ when used, so it is really worth it.
+
+
+
+
+ Append a command to the batch
+
+
+
+
+
+ This is required because SqlClient.SqlCommandSet will throw if
+ the command has no parameters.
+
+
+
+
+
+ Executes the batch
+
+
+ This seems to be returning the total number of affected rows in all queries
+
+
+
+
+ Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
+
+ 2
+
+
+
+ Return the batch command to be executed
+
+
+
+
+ The number of commands batched in this instance
+
+
+
+
+ Any exception that occurs in the O-R persistence layer.
+
+
+ Exceptions that occur in the database layer are left as native exceptions.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+
+
+ Initializes a new instance of the class.
+
+
+ The exception that is the cause of the current exception. If the innerException parameter
+ is not a null reference, the current exception is raised in a catch block that handles
+ the inner exception.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+ The exception that is the cause of the current exception. If the innerException parameter
+ is not a null reference, the current exception is raised in a catch block that handles
+ the inner exception.
+
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ CodeDOM-based bytecode provider.
+
+
+
+
+ Retrieve the delegate for this provider
+ capable of generating reflection optimization components.
+
+ The class to be reflected upon.
+ All property getters to be accessed via reflection.
+ All property setters to be accessed via reflection.
+ The reflection optimization delegate.
+
+
+
+ The specific factory for this provider capable of
+ generating run-time proxies for lazy-loading purposes.
+
+
+
+
+ ctor
+
+ The target class
+ Array of setters
+ Array of getters
+
+
+
+ Set up the compiler options
+
+
+
+
+ Add an assembly to the list of ReferencedAssemblies
+ required to build the class
+
+
+
+
+
+ Build the generated code
+
+ Generated code
+ An instance of the generated class
+
+
+
+ Check if the property is public
+
+
+ If IsPublic==true I can directly set the property
+ If IsPublic==false I need to use the setter/getter
+
+
+
+
+
+
+ Generate the required code
+
+ C# code
+
+
+
+ Represents optimized entity property access.
+
+
+
+
+ Factory that generate object based on IReflectionOptimizer needed to replace the use
+ of reflection.
+
+
+ Used in and
+
+
+
+
+
+ Generate the IReflectionOptimizer object
+
+ The target class
+ Array of setters
+ Array of getters
+ if the generation fails
+
+
+
+ Represents reflection optimization for a particular class.
+
+
+
+
+ Represents optimized entity instantiation.
+
+
+
+
+ Perform instantiation of an instance of the underlying class.
+
+ The new instance.
+
+
+
+ Class constructor.
+
+
+
+
+ Generates a dynamic method which creates a new instance of
+ when invoked.
+
+
+
+
+ Generates a dynamic method on the given type.
+
+
+
+
+ Generates a dynamic method on the given type.
+
+
+
+
+
+ An interface for factories of proxy factory instances.
+
+
+ Currently used to abstract from the tupizer even if...
+
+
+
+
+ Build a proxy factory specifically for handling runtime
+ lazy loading.
+
+ The lazy-load proxy factory.
+
+
+
+ Emits an ldc.i4 opcode using the fastest available opcode choice.
+
+
+
+
+ Emits IL to unbox a value type and if null, create a new instance of the value type.
+
+
+ This does not work if the value type doesn't have a default constructor - we delegate
+ that to the ISetter.
+
+
+
+
+ Defines a new delegate type.
+
+
+
+
+ A implementation that returns
+ , disabling reflection optimization.
+
+
+
+
+ A cached instance of a persistent class
+
+
+
+
+ An item of cached data, timestamped with the time it was cached, when it was locked,
+ when it was unlocked
+
+
+
+
+ Caches data that is sometimes updated while maintaining the semantics of
+ "read committed" isolation level. If the database is set to "repeatable
+ read", this concurrency strategy almost maintains the semantics.
+ Repeatable read isolation is compromised in the case of concurrent writes.
+ This is an "asynchronous" concurrency strategy.
+
+
+ If this strategy is used in a cluster, the underlying cache implementation
+ must support distributed hard locks (which are held only momentarily). This
+ strategy also assumes that the underlying cache implementation does not do
+ asynchronous replication and that state has been fully replicated as soon
+ as the lock is released.
+ for a faster algorithm
+
+
+
+
+
+ Implementors manage transactional access to cached data.
+
+
+
+ Transactions pass in a timestamp indicating transaction start time.
+
+
+ When used to cache entities and collections the key is the identifier of the
+ entity/collection and the value should be set to the
+ for an entity and the results of
+ for a collection.
+
+
+
+
+
+ Attempt to retrieve an object from the Cache
+
+ The key (id) of the object to get out of the Cache.
+ A timestamp prior to the transaction start time
+ The cached object or
+
+
+
+
+ Attempt to cache an object, after loading from the database
+
+ The key (id) of the object to put in the Cache.
+ The value
+ A timestamp prior to the transaction start time
+ the version number of the object we are putting
+ a Comparer to be used to compare version numbers
+ indicates that the cache should avoid a put if the item is already cached
+ if the object was successfully cached
+
+
+
+
+ We are going to attempt to update/delete the keyed object
+
+ The key
+
+
+ This method is used by "asynchronous" concurrency strategies.
+
+
+
+ Called after an item has become stale (before the transaction completes).
+
+
+
+ This method is used by "synchronous" concurrency strategies.
+
+
+
+ Called after an item has been updated (before the transaction completes),
+ instead of calling Evict().
+
+
+
+
+
+ This method is used by "synchronous" concurrency strategies.
+
+
+
+ Called after an item has been inserted (before the transaction completes), instead of calling Evict().
+
+
+
+
+ This method is used by "synchronous" concurrency strategies.
+
+
+
+ Called when we have finished the attempted update/delete (which may or
+ may not have been successful), after transaction completion.
+
+ The key
+ The soft lock
+
+ This method is used by "asynchronous" concurrency strategies.
+
+
+
+ Called after an item has been updated (after the transaction completes),
+ instead of calling Release().
+
+
+
+
+
+ This method is used by "asynchronous" concurrency strategies.
+
+
+
+ Called after an item has been inserted (after the transaction completes), instead of calling release().
+
+
+
+
+ This method is used by "asynchronous" concurrency strategies.
+
+
+
+ Evict an item from the cache immediately (without regard for transaction isolation).
+
+
+
+
+
+
+ Evict all items from the cache immediately.
+
+
+
+
+
+ Clean up all resources.
+
+
+
+
+
+ Gets the cache region name.
+
+
+
+
+ Gets or sets the for this strategy to use.
+
+ The for this strategy to use.
+
+
+
+ Generate an id for a new lock. Uniqueness per cache instance is very
+ desirable but not absolutely critical. Must be called from one of the
+ synchronized methods of this class.
+
+
+
+
+
+ Do not return an item whose timestamp is later than the current
+ transaction timestamp. (Otherwise we might compromise repeatable
+ read unnecessarily.) Do not return an item which is soft-locked.
+ Always go straight to the database instead.
+
+
+ Note that since reading an item from that cache does not actually
+ go to the database, it is possible to see a kind of phantom read
+ due to the underlying row being updated after we have read it
+ from the cache. This would not be possible in a lock-based
+ implementation of repeatable read isolation. It is also possible
+ to overwrite changes made and committed by another transaction
+ after the current transaction read the item from the cache. This
+ problem would be caught by the update-time version-checking, if
+ the data is versioned or timestamped.
+
+
+
+
+ Stop any other transactions reading or writing this item to/from
+ the cache. Send them straight to the database instead. (The lock
+ does time out eventually.) This implementation tracks concurrent
+ locks by transactions which simultaneously attempt to write to an
+ item.
+
+
+
+
+ Do not add an item to the cache unless the current transaction
+ timestamp is later than the timestamp at which the item was
+ invalidated. (Otherwise, a stale item might be re-added if the
+ database is operating in repeatable read isolation mode.)
+
+ Whether the item was actually put into the cache
+
+
+
+ decrement a lock and put it back in the cache
+
+
+
+
+ Re-cache the updated state, if and only if there there are
+ no other concurrent soft locks. Release our lock.
+
+
+
+
+ Is the client's lock commensurate with the item in the cache?
+ If it is not, we know that the cache expired the original
+ lock.
+
+
+
+
+ Gets the cache region name.
+
+
+
+
+ Lock the item
+
+
+
+
+ Is this item visible to the timestamped transaction?
+
+
+
+
+
+
+ Don't overwrite already cached items
+
+
+
+
+
+
+
+
+ The timestamp on the cached data
+
+
+
+
+ The actual cached data
+
+
+
+
+ Not a lock!
+
+
+
+
+ Represents any exception from an .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+
+
+ Initializes a new instance of the class.
+
+
+ The exception that is the cause of the current exception. If the innerException parameter
+ is not a null reference, the current exception is raised in a catch block that handles
+ the inner exception.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+ The exception that is the cause of the current exception. If the innerException parameter
+ is not a null reference, the current exception is raised in a catch block that handles
+ the inner exception.
+
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Factory class for creating an .
+
+
+
+
+ No providers implement transactional caching currently,
+ it was ported from Hibernate just for the sake of completeness.
+
+
+
+
+ Creates an from the parameters.
+
+ The name of the strategy that should use for the class.
+ The name of the class the strategy is being created for.
+ if the object being stored in the cache is mutable.
+ Used to retrieve the global cache region prefix.
+ Properties the cache provider can use to configure the cache.
+ An to use for this object in the .
+
+
+
+ Allows multiple entity classes / collection roles to be
+ stored in the same cache region. Also allows for composite
+ keys which do not properly implement equals()/hashCode().
+
+
+
+
+ Construct a new key for a collection or entity instance.
+ Note that an entity name should always be the root entity
+ name, not a subclass entity name.
+
+ The identifier associated with the cached data
+ The Hibernate type mapping
+ The entity or collection-role name.
+ The entiyt mode of the originating session
+ The session factory for which we are caching
+
+
+
+ A soft lock which supports concurrent locking,
+ timestamped with the time it was released
+
+
+ This class was named Lock in H2.1
+
+
+
+
+ Marker interface, denoting a client-visible "soft lock" on a cached item.
+
+
+
+
+ Increment the lock, setting the
+ new lock timeout
+
+
+
+
+ Decrement the lock, setting the unlock
+ timestamp if now unlocked
+
+
+
+
+
+ Can the timestamped transaction re-cache this
+ locked item now?
+
+
+
+
+ locks are not returned to the client!
+
+
+
+
+ Was this lock held concurrently by multiple
+ transactions?
+
+
+
+
+ Yes, this is a lock
+
+
+
+
+ A simple -based cache
+
+
+
+
+ Implementors define a caching algorithm.
+
+
+
+
+ All implementations must be threadsafe.
+
+
+ The key is the identifier of the object that is being cached and the
+ value is a .
+
+
+
+
+
+ Get the object from the Cache
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Remove an item from the Cache.
+
+ The Key of the Item in the Cache to remove.
+
+
+
+
+ Clear the Cache
+
+
+
+
+
+ Clean up.
+
+
+
+
+
+ If this is a clustered cache, lock the item
+
+ The Key of the Item in the Cache to lock.
+
+
+
+
+ If this is a clustered cache, unlock the item
+
+ The Key of the Item in the Cache to unlock.
+
+
+
+
+ Generate a timestamp
+
+
+
+
+
+ Get a reasonable "lock timeout"
+
+
+
+
+ Gets the name of the cache region
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Cache Provider plugin for NHibernate that is configured by using
+ cache.provider_class="NHibernate.Cache.HashtableCacheProvider"
+
+
+
+
+ Support for pluggable caches
+
+
+
+
+ Configure the cache
+
+ the name of the cache region
+ configuration settings
+
+
+
+
+ generate a timestamp
+
+
+
+
+
+ Callback to perform any necessary initialization of the underlying cache implementation
+ during ISessionFactory construction.
+
+ current configuration settings
+
+
+
+ Callback to perform any necessary cleanup of the underlying cache implementation
+ during .
+
+
+
+
+ Contract for sources of optimistically lockable data sent to the second level cache.
+
+
+ Note currently EntityPersisters are
+ the only viable source.
+
+
+
+
+ Does this source represent versioned (i.e., and thus optimistically lockable) data?
+
+ True if this source represents versioned data; false otherwise.
+
+
+ Get the comparator used to compare two different version values together.
+ An appropriate comparator.
+
+
+
+ Defines the contract for caches capable of storing query results. These
+ caches should only concern themselves with storing the matching result ids.
+ The transactional semantics are necessarily less strict than the semantics
+ of an item cache.
+
+
+
+
+ Defines a factory for query cache instances. These factories are responsible for
+ creating individual QueryCache instances.
+
+
+
+
+ A cache provider placeholder used when caching is disabled.
+
+
+
+
+ Configure the cache
+
+ the name of the cache region
+ configuration settings
+
+
+
+
+ Generate a timestamp
+
+
+
+
+ Callback to perform any necessary initialization of the underlying cache implementation during SessionFactory
+ construction.
+
+ current configuration settings.
+
+
+
+ Callback to perform any necessary cleanup of the underlying cache implementation during SessionFactory.close().
+
+
+
+
+ Caches data that is sometimes updated without ever locking the cache.
+ If concurrent access to an item is possible, this concurrency strategy
+ makes no guarantee that the item returned from the cache is the latest
+ version available in the database. Configure your cache timeout accordingly!
+ This is an "asynchronous" concurrency strategy.
+ for a much stricter algorithm
+
+
+
+
+ Get the most recent version, if available.
+
+
+
+
+ Add an item to the cache
+
+
+
+
+ Do nothing
+
+
+
+
+ Invalidate the item
+
+
+
+
+ Invalidate the item
+
+
+
+
+ Do nothing
+
+
+
+
+ Invalidate the item (again, for safety).
+
+
+
+
+ Invalidate the item (again, for safety).
+
+
+
+
+ Do nothing
+
+
+
+
+ Gets the cache region name.
+
+
+
+
+ Initializes a new instance of the class.
+
+ the session factory for this query key, required to get the identifiers of entities that are used as values.
+ The query string.
+ The query parameters.
+ The filters.
+
+
+
+ Caches data that is never updated
+
+
+
+
+ Unsupported!
+
+
+
+
+ Unsupported!
+
+
+
+
+ Unsupported!
+
+
+
+
+ Do nothing.
+
+
+
+
+ Do nothing.
+
+
+
+
+ Do nothing.
+
+
+
+
+ Unsupported!
+
+
+
+
+ Gets the cache region name.
+
+
+
+
+ The standard implementation of the Hibernate
+ interface. This implementation is very good at recognizing stale query
+ results and re-running queries when it detects this condition, recaching
+ the new results.
+
+
+
+
+ Standard Hibernate implementation of the IQueryCacheFactory interface. Returns
+ instances of .
+
+
+
+
+ Generates increasing identifiers (in a single application domain only).
+
+
+ Not valid across multiple application domains. Identifiers are not necessarily
+ strictly increasing, but usually are.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Tracks the timestamps of the most recent updates to particular tables. It is
+ important that the cache timeout of the underlying cache implementation be set
+ to a higher value than the timeouts of any of the query caches. In fact, we
+ recommend that the the underlying cache not be configured for expiry at all.
+ Note, in particular, that an LRU cache expiry policy is never appropriate.
+
+
+
+
+
+
+
+ Helper to parse hibernate-configuration XmlNode.
+
+
+
+
+ The XML node name for hibernate configuration section in the App.config/Web.config and
+ for the hibernate.cfg.xml .
+
+
+
+ The XML Namespace for the nhibernate-configuration
+
+
+ XPath expression for bytecode-provider property.
+
+
+ XPath expression for reflection-optimizer property.
+
+
+ XPath expression for session-factory whole node.
+
+
+ XPath expression for session-factory.property nodes
+
+
+ XPath expression for session-factory.mapping nodes
+
+
+ XPath expression for session-factory.class-cache nodes
+
+
+ XPath expression for session-factory.collection-cache nodes
+
+
+ XPath expression for session-factory.event nodes
+
+
+ XPath expression for session-factory.listener nodes
+
+
+
+ Convert a string to .
+
+ The string that represent .
+
+ The converted to .
+ for invalid values.
+
+
+ See for allowed values.
+
+
+
+
+ Convert a string to .
+
+ The string that represent .
+
+ The converted to .
+
+ If the values is invalid.
+
+ See for allowed values.
+
+
+
+
+ Convert a string to .
+
+ The string that represent .
+
+ The converted to .
+
+ If the values is invalid.
+
+ See for allowed values.
+
+
+
+
+ Convert a string to .
+
+ The string that represent .
+
+ The converted to .
+
+ If the values is invalid.
+
+ See for allowed values.
+
+
+
+
+ Values for class-cache and collection-cache strategy.
+
+
+
+ Xml value: read-only
+
+
+ Xml value: read-write
+
+
+ Xml value: nonstrict-read-write
+
+
+ Xml value: transactional
+
+
+
+ Values for class-cache include.
+
+ Not implemented in Cache.
+
+
+ Xml value: all
+
+
+ Xml value: non-lazy
+
+
+
+ Configuration parsed values for a class-cache XML node.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The class full name.
+ Cache strategy.
+ When is null or empty.
+
+
+
+ Initializes a new instance of the class.
+
+ The class full name.
+ Cache strategy.
+ Values for class-cache include.
+ When is null or empty.
+
+
+
+ Initializes a new instance of the class.
+
+ The class full name.
+ Cache strategy.
+ The cache region.
+ When is null or empty.
+
+
+
+ Initializes a new instance of the class.
+
+ The class full name.
+ Cache strategy.
+ Values for class-cache include.
+ The cache region.
+ When is null or empty.
+
+
+
+ The class full name.
+
+
+
+
+ The cache region.
+
+ If null or empty the is used during configuration.
+
+
+
+ Cache strategy.
+
+
+
+
+ class-cache include.
+
+
+ Not implemented in Cache.
+ Default value .
+
+
+
+
+ Configuration parsed values for a collection-cache XML node.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The cache role.
+ Cache strategy.
+ When is null or empty.
+
+
+
+ Initializes a new instance of the class.
+
+ The cache role.
+ Cache strategy.
+ The cache region.
+ When is null or empty.
+
+
+
+ The role.
+
+
+
+
+ The cache region.
+
+ If null or empty the is used during configuration.
+
+
+
+ Cache strategy.
+
+
+
+
+ Configuration parsed values for a event XML node.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The listener.
+ The type.
+
+
+
+ The default type of listeners.
+
+
+
+
+ Listeners for this event.
+
+
+
+
+ Values for bytecode-provider system property.
+
+
+
+ Xml value: codedom
+
+
+ Xml value: lcg
+
+
+ Xml value: null
+
+
+
+ Configuration parsed values for hibernate-configuration section.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The XML reader to parse.
+
+ The nhibernate-configuration.xsd is applied to the XML.
+
+ When nhibernate-configuration.xsd can't be applied.
+
+
+
+ Value for bytecode-provider system property.
+
+ Default value .
+
+
+
+ Value for reflection-optimizer system property.
+
+ Default value true.
+
+
+
+ The if the session-factory exists in hibernate-configuration;
+ Otherwise null.
+
+
+
+
+ Configuration parsed values for a listener XML node
+
+
+
+
+ Initializes a new instance of the class.
+
+ The class full name.
+ When is null or empty.
+
+
+
+ Initializes a new instance of the class.
+
+ The class full name.
+ The listener type.
+ When is null or empty.
+
+
+
+ The class full name.
+
+
+
+
+ The listener type.
+
+ Default value mean that the value is ignored.
+
+
+
+ Configuration parsed values for a mapping XML node
+
+
+ There are 3 possible combinations of mapping attributes
+ 1 - resource and assembly: NHibernate will read the mapping resource from the specified assembly
+ 2 - file only: NHibernate will read the mapping from the file.
+ 3 - assembly only: NHibernate will find all the resources ending in hbm.xml from the assembly.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Mapped file.
+ When is null or empty.
+
+
+
+ Initializes a new instance of the class.
+
+ The assembly name.
+ The mapped embedded resource.
+ When is null or empty.
+
+
+
+ Configuration parsed values for a session-factory XML node.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The session factory name. Null or empty string are allowed.
+
+
+
+ The session factory name.
+
+
+
+
+ Session factory propeties bag.
+
+
+
+
+ Session factory mapping configuration.
+
+
+
+
+ Session factory class-cache configurations.
+
+
+
+
+ Session factory collection-cache configurations.
+
+
+
+
+ Session factory event configurations.
+
+
+
+
+ Session factory listener configurations.
+
+
+
+
+ Responsible for checking that a resource name matches the default pattern of "*.hbm.xml". This is the
+ default filter for .
+
+
+
+
+ Responsible for determining whether an embedded resource should be parsed for HBM XML data while
+ iterating through an .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A base class for HBM schema classes that provides helper methods.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Responsible for converting a of HBM XML into an instance of
+ .
+
+
+
+
+ Responsible for building a list of objects from a range of acceptable
+ sources.
+
+
+
+
+ Calls the greedy constructor, passing it new instances of and
+ .
+
+
+
+ Adds any embedded resource streams which pass the .
+ An assembly containing embedded mapping documents.
+ A custom filter.
+
+
+ Adds any embedded resource streams which pass the default filter.
+ An assembly containing embedded mapping documents.
+
+
+
+ Responsible for converting a of HBM XML into an instance of
+ .
+
+ Uses an to deserialize HBM.
+
+
+
+ Converts a partial class name into a fully qualified one
+
+
+
+
+
+
+
+ Attempts to find a type by its full name. Throws a
+ using the provided in case of failure.
+
+ name of the class to find
+ Error message to use for
+ the in case of failure. Should contain
+ the {0} formatting placeholder.
+ A instance.
+
+ Thrown when there is an error loading the class.
+
+
+
+
+ Similar to , but handles short class names
+ by calling .
+
+
+
+
+
+
+
+
+ Called for all collections. parameter
+ was added in NH to allow for reflection related to generic types.
+
+
+
+
+ Called for arrays and primitive arrays
+
+
+
+
+ Called for Maps
+
+
+
+
+
+
+
+ Called for all collections
+
+
+
+
+ Extracts the names of classes mapped in a given file,
+ and the names of the classes they extend.
+
+
+
+
+ Returns a collection of containing
+ information about all classes in this stream.
+
+ A validated representing
+ a mapping file.
+
+
+
+ Holds information about mapped classes found in the hbm.xml files.
+
+
+
+
+ Allows the application to specify properties and mapping documents to be used when creating
+ a .
+
+
+
+ Usually an application will create a single , build a single instance
+ of , and then instantiate objects in threads
+ servicing client requests.
+
+
+ The is meant only as an initialization-time object.
+ is immutable and does not retain any association back to the
+
+
+
+
+ The XML Namespace for the nhibernate-mapping
+
+
+ Default name for hibernate configuration file.
+
+
+
+ Clear the internal state of the object.
+
+
+
+
+ Create a new Configuration object.
+
+
+
+
+ Get the mapping for a particular class
+
+
+
+ Get the mapping for a particular entity
+ An entity name.
+ the entity mapping information
+
+
+
+ Get the mapping for a particular collection role
+
+ a collection role
+
+
+
+
+ Read mappings from a particular XML file. This method is equivalent
+ to .
+
+
+
+
+
+
+ Read mappings from a particular XML file.
+
+ a path to a file
+ This configuration object.
+
+
+
+ Read mappings from a . This method is equivalent to
+ .
+
+ an XML string
+ The name to use in error reporting. May be .
+ This configuration object.
+
+
+
+ Read mappings from a .
+
+ an XML string
+ This configuration object.
+
+
+
+ Read mappings from a URL.
+
+ a URL
+ This configuration object.
+
+
+
+ Read mappings from a URL.
+
+ a to read the mappings from.
+ This configuration object.
+
+
+
+ Read mappings from an .
+
+ A loaded that contains the mappings.
+ The name of the document, for error reporting purposes.
+ This configuration object.
+
+
+
+ Takes the validated XmlDocument and has the Binder do its work of
+ creating Mapping objects from the Mapping Xml.
+
+ The NamedXmlDocument that contains the validated mapping XML file.
+
+
+
+ Create a new to add classes and collection
+ mappings to.
+
+
+
+
+ Read mappings from a .
+
+ The stream containing XML
+ This Configuration object.
+
+ The passed in through the parameter
+ is not guaranteed to be cleaned up by this method. It is the caller's responsiblity to
+ ensure that is properly handled when this method
+ completes.
+
+
+
+
+ Read mappings from a .
+
+ The stream containing XML
+ The name of the stream to use in error reporting. May be .
+ This Configuration object.
+
+ The passed in through the parameter
+ is not guaranteed to be cleaned up by this method. It is the caller's responsiblity to
+ ensure that is properly handled when this method
+ completes.
+
+
+
+
+ Adds the mappings in the resource of the assembly.
+
+ The path to the resource file in the assembly.
+ The assembly that contains the resource file.
+ This configuration object.
+
+
+
+ Read a mapping from an embedded resource, using a convention.
+
+ The type to map.
+ This configuration object.
+
+ The convention is for class Foo.Bar.Foo to be mapped by
+ the resource named Foo.Bar.Foo.hbm.xml, embedded in
+ the class' assembly. If the mappings and classes are defined
+ in different assemblies or don't follow the naming convention,
+ this method cannot be used.
+
+
+
+
+ Adds all of the assembly's embedded resources whose names end with .hbm.xml.
+
+ The name of the assembly to load.
+ This configuration object.
+
+ The assembly must be loadable using . If this
+ condition is not satisfied, load the assembly manually and call
+ instead.
+
+
+
+
+ Adds all of the assembly's embedded resources whose names end with .hbm.xml.
+
+ The assembly.
+ This configuration object.
+
+
+
+ Read all mapping documents from a directory tree. Assume that any
+ file named *.hbm.xml is a mapping document.
+
+ a directory
+
+
+
+ Generate DDL for dropping tables
+
+
+
+
+
+ Generate DDL for creating tables
+
+
+
+
+
+ This method may be called many times!!
+
+
+
+
+ Instantiate a new , using the properties and mappings in this
+ configuration. The will be immutable, so changes made to the
+ configuration after building the will not affect it.
+
+ An instance.
+
+
+
+ Set the default assembly to use for the mappings added to the configuration
+ afterwards.
+
+ The default assembly name.
+ This configuration instance.
+
+ This setting can be overridden for a mapping file by setting default-assembly
+ attribute of <hibernate-mapping> element.
+
+
+
+
+ Set the default namespace to use for the mappings added to the configuration
+ afterwards.
+
+ The default namespace.
+ This configuration instance.
+
+ This setting can be overridden for a mapping file by setting default-namespace
+ attribute of <hibernate-mapping> element.
+
+
+
+
+ Sets the default interceptor for use by all sessions.
+
+ The default interceptor.
+ This configuration instance.
+
+
+
+ Specify a completely new set of properties
+
+
+
+
+ Adds an of configuration properties. The
+ Key is the name of the Property and the Value is the
+ value of the Property.
+
+ An of configuration properties.
+
+ This object.
+
+
+
+
+ Sets the value of the configuration property.
+
+ The name of the property.
+ The value of the property.
+
+ This configuration object.
+
+
+
+
+ Gets the value of the configuration property.
+
+ The name of the property.
+ The configured value of the property, or if the property was not specified.
+
+
+
+ Configure NHibernate using the <hibernate-configuration> section
+ from the application config file, if found, or the file hibernate.cfg.xml if the
+ <hibernate-configuration> section not include the session-factory configuration.
+
+ A configuration object initialized with the file.
+
+ To configure NHibernate explicitly using hibernate.cfg.xml, appling merge/override
+ of the application configuration file, use this code:
+
+ configuration.Configure("path/to/hibernate.cfg.xml");
+
+
+
+
+
+ Configure NHibernate using the file specified.
+
+ The location of the XML file to use to configure NHibernate.
+ A Configuration object initialized with the file.
+
+ Calling Configure(string) will override/merge the values set in app.config or web.config
+
+
+
+
+ Configure NHibernate using a resource contained in an Assembly.
+
+ The that contains the resource.
+ The name of the manifest resource being requested.
+ A Configuration object initialized from the manifest resource.
+
+ Calling Configure(Assembly, string) will overwrite the values set in app.config or web.config
+
+
+
+
+ Configure NHibernate using the specified XmlReader.
+
+ The that contains the Xml to configure NHibernate.
+ A Configuration object initialized with the file.
+
+ Calling Configure(XmlReader) will overwrite the values set in app.config or web.config
+
+
+
+
+ Set up a cache for an entity class
+
+
+
+
+ Set up a cache for a collection role
+
+
+
+
+ Create an object-oriented view of the configuration properties
+
+ A object initialized from the settings properties.
+
+
+
+ Set a custom naming strategy
+
+ the NamingStrategy to set
+
+
+
+
+ Load and validate the mappings in the against
+ the nhibernate-mapping-2.2 schema, without adding them to the configuration.
+
+
+ This method is made public to be usable from the unit tests. It is not intended
+ to be called by end users.
+
+ The XmlReader that contains the mapping.
+ The name of the document, for error reporting purposes.
+ NamedXmlDocument containing the validated XmlDocument built from the XmlReader.
+
+
+
+ Adds the Mappings in the after validating it
+ against the nhibernate-mapping-2.2 schema.
+
+ The XmlReader that contains the mapping.
+ This Configuration object.
+
+
+
+ Adds the Mappings in the after validating it
+ against the nhibernate-mapping-2.2 schema.
+
+ The XmlReader that contains the mapping.
+ The name of the document to use for error reporting. May be .
+ This Configuration object.
+
+
+
+ Set or clear listener for a given .
+
+ The .
+ The array of AssemblyQualifiedName of each listener for .
+
+ must implements the interface related with .
+ All listeners of the given will be cleared if the
+ is null or empty.
+
+
+ when an element of have an invalid value or cant be instantiated.
+
+
+
+
+ Set or clear listener for a given .
+
+ The .
+ The listener for or null to clear.
+ must implements the interface related with .
+
+
+
+
+ Set or clear listeners for a given .
+
+ The .
+ The listener for or null to clear.
+ Listeners of must implements one of the interface of event listenesr.
+
+
+
+
+ Generate DDL for altering tables
+
+
+
+
+
+ The class mappings
+
+
+
+
+ The collection mappings
+
+
+
+
+ The table mappings
+
+
+
+
+ The named queries
+
+
+
+
+ Retrieve the user-supplied delegate to handle non-existent entity scenarios.
+
+
+ Specify a user-supplied delegate to be used to handle scenarios where an entity could not be
+ located by specified id. This is mainly intended for EJB3 implementations to be able to
+ control how proxy initialization errors should be handled...
+
+
+
+
+ Gets or sets the to use.
+
+ The to use.
+
+
+
+ Gets or sets the that contains the configuration
+ properties and their values.
+
+
+ The that contains the configuration
+ properties and their values.
+
+
+
+
+ Get the query language imports
+
+
+
+
+
+ The named SQL queries
+
+
+
+
+ Naming strategy for tables and columns
+
+
+
+
+ Defines operations common to "compiled" mappings (ie. SessionFactory) and
+ "uncompiled" mappings (ie Configuration that are used by implementors of IType
+
+
+
+
+ Summary description for ConfigurationSectionHandler.
+
+
+
+
+ The default
+
+ See for a better alternative
+
+
+
+ A set of rules for determining the physical column and table names given the information in the mapping
+ document. May be used to implement project-scoped naming standards for database objects.
+
+
+
+
+ Return a table name for an entity class
+
+ the fully-qualified class name
+ a table name
+
+
+
+ Return a column name for a property path expression
+
+ a property path
+ a column name
+
+
+
+ Alter the table name given in the mapping document
+
+ a table name
+ a table name
+
+
+
+ Alter the column name given in the mapping document
+
+ a column name
+ a column name
+
+
+
+ Return a table name for a collection
+
+ the fully-qualified name of the owning entity class
+ a property path
+ a table name
+
+
+
+ Return the logical column name used to refer to a column in the metadata
+ (like index, unique constraints etc)
+ A full bijection is required between logicalNames and physical ones
+ logicalName have to be case insersitively unique for a given table
+
+ given column name if any
+ property name of this column
+
+
+
+ The singleton instance
+
+
+
+
+ Return the unqualified class name
+
+
+
+
+
+
+ Return the unqualified property name
+
+
+
+
+
+
+ Return the argument
+
+
+
+
+
+
+ Return the argument
+
+
+
+
+
+
+ Return the unqualified property name
+
+
+
+
+
+
+
+ Provides access to configuration information.
+
+
+ NHibernate has two property scopes:
+
+
+ Factory-level properties may be passed to the when it is
+ instantiated. Each instance might have different property values. If no properties are
+ specified, the factory gets them from Environment
+
+
+ System-level properties are shared by all factory instances and are always determined
+ by the properties
+
+
+ In NHibernate, <hibernate-configuration> section in the application configuration file
+ corresponds to Java system-level properties; <session-factory>
+ section is the session-factory-level configuration.
+
+ It is possible to use the application configuration file (App.config) together with the NHibernate
+ configuration file (hibernate.cfg.xml) at the same time.
+ Properties in hibernate.cfg.xml override/merge properties in application configuration file where same
+ property is found. For others configuration a merge is applied.
+
+
+
+
+ Used to find the .Net 2.0 named connection string
+
+
+
+ A default database schema (owner) name to use for unqualified tablenames
+
+
+ A default database catalog name to use for unqualified tablenames
+
+
+ Should named queries be checked during startup (the default is enabled).
+ Mainly intended for test environments.
+
+
+ Enable statistics collection
+
+
+
+ Issue warnings to user when any obsolete property names are used.
+
+
+
+
+
+
+ NHibernate version (informational).
+
+
+
+
+ Gets a copy of the configuration found in <hibernate-configuration> section
+ of app.config/web.config.
+
+
+ This is the replacement for hibernate.properties
+
+
+
+
+ The bytecode provider to use.
+
+
+ This property is read from the <nhibernate> section
+ of the application configuration file by default. Since it is not
+ always convenient to configure NHibernate through the application
+ configuration file, it is also possible to set the property value
+ manually. This should only be done before a configuration object
+ is created, otherwise the change may not take effect.
+
+
+
+
+ Whether to enable the use of reflection optimizer
+
+
+ This property is read from the <nhibernate> section
+ of the application configuration file by default. Since it is not
+ always convenient to configure NHibernate through the application
+ configuration file, it is also possible to set the property value
+ manually. This should only be done before a configuration object
+ is created, otherwise the change may not take effect.
+
+
+
+
+ Represents a mapping queued for delayed processing to await
+ processing of an extends entity upon which it depends.
+
+
+
+
+ An exception that occurs at configuration time, rather than runtime, as a result of
+ something screwy in the hibernate.cfg.xml.
+
+
+
+
+ An exception that usually occurs at configuration time, rather than runtime, as a result of
+ something screwy in the O-R mappings
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+
+
+ Initializes a new instance of the class.
+
+
+ The exception that is the cause of the current exception. If the innerException parameter
+ is not a null reference, the current exception is raised in a catch block that handles
+ the inner exception.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+ The exception that is the cause of the current exception. If the innerException parameter
+ is not a null reference, the current exception is raised in a catch block that handles
+ the inner exception.
+
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Default message is used.
+
+
+
+ Initializes a new instance of the class.
+
+
+ The exception that is the cause of the current exception. If the innerException parameter
+ is not a null reference, the current exception is raised in a catch block that handles
+ the inner exception.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+ The exception that is the cause of the current exception. If the innerException parameter
+ is not a null reference, the current exception is raised in a catch block that handles
+ the inner exception.
+
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Summary description for ImprovedNamingStrategy.
+
+
+
+
+ The singleton instance
+
+
+
+
+ Return the unqualified class name, mixed case converted to underscores
+
+
+
+
+
+
+ Return the full property path with underscore separators, mixed case converted to underscores
+
+
+
+
+
+
+ Convert mixed case to underscores
+
+
+
+
+
+
+ Convert mixed case to underscores
+
+
+
+
+
+
+ Return the full property path prefixed by the unqualified class name, with underscore separators, mixed case converted to underscores
+
+
+
+
+
+
+
+ A collection of mappings from classes and collections to relational database tables.
+
+ Represents a single <hibernate-mapping> element.
+
+
+
+ Binding table between the logical column name and the name out of the naming strategy
+ for each table.
+ According that when the column name is not set, the property name is considered as such
+ This means that while theoretically possible through the naming strategy contract, it is
+ forbidden to have 2 real columns having the same logical name
+
+
+
+
+ Binding between logical table name and physical one (ie after the naming strategy has been applied)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Adds an import to allow for the full class name Namespace.Entity
+ to be referenced as Entity or some other name in HQL.
+
+ The name of the type that is being renamed.
+ The new name to use in HQL for the type.
+ Thrown when the rename already identifies another type.
+
+
+
+
+
+
+
+
+ The default namespace for persistent classes
+
+
+
+
+ The default assembly for persistent classes
+
+
+
+
+
+
+
+
+
+
+ Gets or sets a boolean indicating if the Fully Qualified Type name should
+ automatically have an import added as the class name.
+
+ if the class name should be used as an import.
+
+ Auto-import is used to shorten the string used to refer to types to just their
+ unqualified name. So if the type MyAssembly.MyNamespace.MyClass, MyAssembly has
+ auto-import="false" then all use of it in HQL would need to be the fully qualified
+ version MyAssembly.MyNamespace.MyClass. If auto-import="true", the type could
+ be referred to in HQL as just MyClass.
+
+
+
+
+ Queues mapping files according to their dependency order.
+
+
+
+
+ Adds the specified document to the queue.
+
+
+
+
+ Gets a that can now be processed (i.e.
+ that doesn't depend on classes not yet processed).
+
+
+
+
+
+ Checks that no unprocessed documents remain in the queue.
+
+
+
+
+ Holds information about mapped classes found in an embedded resource
+
+
+
+
+ Gets the names of all classes outside this resource
+ needed by the classes in this resource.
+
+ An of
+
+
+
+ Settings that affect the behavior of NHibernate at runtime.
+
+
+
+
+ Reads configuration properties and configures a instance.
+
+
+
+
+ Provides callbacks from the to the persistent object. Persistent classes may
+ implement this interface but they are not required to.
+
+
+
+ , , and are intended to be used
+ to cascade saves and deletions of dependent objects. This is an alternative to declaring cascaded
+ operations in the mapping file.
+
+
+ may be used to initialize transient properties of the object from its persistent
+ state. It may not be used to load dependent objects since the interface
+ may not be invoked from inside this method.
+
+
+ A further intended usage of , , and
+ is to store a reference to the for later use.
+
+
+ If , , or return
+ , the operation is silently vetoed. If a
+ is thrown, the operation is vetoed and the exception is passed back to the application.
+
+
+ Note that is called after an identifier is assigned to the object, except when
+ identity key generation is used.
+
+
+
+
+
+ Called when an entity is saved
+
+ The session
+ If we should veto the save
+
+
+
+ Called when an entity is passed to .
+
+ The session
+ A value indicating whether the operation
+ should be vetoed or allowed to proceed.
+
+ This method is not called every time the object's state is
+ persisted during a flush.
+
+
+
+
+ Called when an entity is deleted
+
+ The session
+ A value indicating whether the operation
+ should be vetoed or allowed to proceed.
+
+
+
+ Called after an entity is loaded.
+
+
+ It is illegal to access the from inside this method..
+ However, the object may keep a reference to the session for later use
+
+ The session
+ The identifier
+
+
+
+ Veto the action
+
+
+
+
+ Accept the action
+
+
+
+
+ Implemented by persistent classes with invariants that must be checked before inserting
+ into or updating the database
+
+
+
+
+ Validate the state of the object before persisting it. If a violation occurs,
+ throw a . This method must not change the state of the object
+ by side-effect.
+
+
+
+
+ Thrown from when an invariant was violated. Some applications
+ might subclass this exception in order to provide more information about the violation
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+
+
+ Initializes a new instance of the class.
+
+
+ The exception that is the cause of the current exception. If the innerException parameter
+ is not a null reference, the current exception is raised in a catch block that handles
+ the inner exception.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+ The exception that is the cause of the current exception. If the innerException parameter
+ is not a null reference, the current exception is raised in a catch block that handles
+ the inner exception.
+
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ An unordered, unkeyed collection that can contain the same element
+ multiple times. The .NET collections API, has no Bag.
+ The interface closely resembles bag semantics,
+ however NHibernate for .NET 1.1 used so
+ is used to ensure the easiest transition
+ to generics.
+
+ The type of the element the bag should hold.
+ The underlying collection used is an
+
+
+
+ Base class for implementing .
+
+
+
+
+
+ Persistent collections are treated as value objects by NHibernate.
+ ie. they have no independent existence beyond the object holding
+ a reference to them. Unlike instances of entity classes, they are
+ automatically deleted when unreferenced and automatically become
+ persistent when held by a persistent object. Collections can be
+ passed between different objects (change "roles") and this might
+ cause their elements to move from one database table to another.
+
+
+ NHibernate "wraps" a collection in an instance of
+ . This mechanism is designed
+ to support tracking of changes to the collection's persistent
+ state and lazy instantiation of collection elements. The downside
+ is that only certain abstract collection types are supported and
+ any extra semantics are lost.
+
+
+ Applications should never use classes in this namespace
+ directly, unless extending the "framework" here.
+
+
+ Changes to structure of the collection are recorded by the
+ collection calling back to the session. Changes to mutable
+ elements (ie. composite elements) are discovered by cloning their
+ state when the collection is initialized and comparing at flush
+ time.
+
+
+
+
+
+ Return the user-visible collection (or array) instance
+
+
+ By default, the NHibernate wrapper is an acceptable collection for
+ the end user code to work with because it is interface compatible.
+ An NHibernate PersistentList is an IList, an NHibernate PersistentMap is an IDictionary
+ and those are the types user code is expecting.
+
+
+
+
+ Clears out any Queued Additions.
+
+
+ After a Flush() the database is in synch with the in-memory
+ contents of the Collection. Since everything is in synch remove
+ any Queued Additions.
+
+
+
+
+ Called just before reading any rows from the
+
+
+
+
+ Called after reading all rows from the
+
+
+ This should be overridden by sub collections that use temporary collections
+ to store values read from the db.
+
+
+
+
+ Disassociate this collection from the given session.
+
+
+ true if this was currently associated with the given session
+
+
+
+ Associate the collection with the given session.
+
+
+ false if the collection was already associated with the session
+
+
+
+ Read the state of the collection from a disassembled cached value.
+
+
+
+
+
+
+
+ Iterate all collection entries, during update of the database
+
+
+ An that gives access to all entries
+ in the collection.
+
+
+
+
+ Reads the row from the .
+
+
+ This method should be prepared to handle duplicate elements caused by fetching multiple collections,
+ or should be updated
+ to return for the collection type.
+
+ The IDataReader that contains the value of the Identifier
+ The persister for this Collection.
+ The descriptor providing result set column names
+ The owner of this Collection.
+ The object that was contained in the row.
+
+
+
+ Get the identifier of the given collection entry
+
+
+
+
+ Get the index of the given collection entry
+
+
+
+
+ Get the value of the given collection entry
+
+
+
+
+ Called before any elements are read into the collection,
+ allowing appropriate initializations to occur.
+
+ The for this persistent collection.
+
+
+
+ Does the current state exactly match the snapshot?
+
+ The to compare the elements of the Collection.
+
+ if the wrapped collection is different than the snapshot
+ of the collection or if one of the elements in the collection is
+ dirty.
+
+
+
+
+ Disassemble the collection, ready for the cache
+
+ The for this Collection.
+ The contents of the persistent collection in a cacheable form.
+
+
+
+ Gets a indicating if the rows for this collection
+ need to be recreated in the table.
+
+ The for this Collection.
+
+ by default since most collections can determine which rows need to be
+ individually updated/inserted/deleted. Currently only 's for many-to-many
+ need to be recreated.
+
+
+
+
+ Return a new snapshot of the current state of the collection
+
+
+
+
+ To be called internally by the session, forcing
+ immediate initalization.
+
+
+ This method is similar to , except that different exceptions are thrown.
+
+
+
+
+ Does an element exist at this entry in the collection?
+
+
+
+
+ Do we need to insert this element?
+
+
+
+
+ Do we need to update this element?
+
+
+
+
+ Get all the elements that need deleting
+
+
+
+
+ Is this the wrapper for the given underlying collection instance?
+
+ The collection to see if this IPersistentCollection is wrapping.
+
+ if the IPersistentCollection is wrappping the collection instance,
+ otherwise.
+
+
+
+
+ Called before inserting rows, to ensure that any surrogate keys are fully generated
+
+
+
+
+
+ Called after inserting a row, to fetch the natively generated id
+
+
+
+
+
+
+
+ Get all "orphaned" elements
+
+ The snapshot of the collection.
+ The persistent class whose objects
+ the collection is expected to contain.
+
+ An that contains all of the elements
+ that have been orphaned.
+
+
+
+
+ Get the snapshot value of the given collection entry
+
+
+
+
+ Called after initializing from cache
+
+
+
+
+ Clear the dirty flag, after flushing changes
+ to the database.
+
+
+
+
+ Mark the collection as dirty
+
+
+
+
+ The owning entity.
+
+
+ Note that the owner is only set during the flush
+ cycle, and when a new collection wrapper is created
+ while loading an entity.
+
+
+
+
+ Is the initialized collection empty?
+
+
+
+
+ Gets a indicating if the underlying collection is directly
+ accessable through code.
+
+
+ if we are not guaranteed that the NHibernate collection wrapper
+ is being used.
+
+
+ This is typically whenever a transient object that contains a collection is being
+ associated with an through or .
+ NHibernate can't guarantee that it will know about all operations that would cause NHibernate's collections
+ to call or .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Is the collection dirty? Note that this is only
+ reliable during the flush cycle, after the
+ collection elements are dirty checked against
+ the snapshot.
+
+
+
+
+ Called by any read-only method of the collection interface
+
+
+
+
+ Called by any writer method of the collection interface
+
+
+
+
+ Queue an addition if the persistent collection supports it
+
+
+ if the addition was queued up, if the persistent collection
+ doesn't support Queued Addition.
+
+
+
+
+ Queue additions
+
+
+
+
+ After reading all existing elements from the database,
+ add the queued elements to the underlying collection.
+
+ The to add.
+ The that
+ is currently loading the collection.
+
+ The default implementation is to throw an
+ because most collections do not support delayed addition. If the collection
+ does then override this method.
+
+
+
+
+ Clears out any Queued Additions.
+
+
+ After a Flush() the database is in synch with the in-memory
+ contents of the Collection. Since everything is in synch remove
+ any Queued Additions.
+
+
+
+
+ Not called by Hibernate, but used by non-NET serialization, eg. SOAP libraries.
+
+
+
+
+ Not called by Hibernate, but used by non-NET serialization, eg. SOAP libraries.
+
+
+
+
+
+ Return the user-visible collection (or array) instance
+
+
+ By default, the NHibernate wrapper is an acceptable collection for
+ the end user code to work with because it is interface compatible.
+ An NHibernate PersistentList is an IList, an NHibernate PersistentMap is an IDictionary
+ and those are the types user code is expecting.
+
+
+
+
+ Called just before reading any rows from the
+
+
+
+
+ Called after reading all rows from the
+
+
+ This should be overridden by sub collections that use temporary collections
+ to store values read from the db.
+
+
+
+
+ Initialize the collection, if possible, wrapping any exceptions
+ in a runtime exception
+
+ currently obsolete
+ if we cannot initialize
+
+
+
+ Mark the collection as initialized.
+
+
+
+
+ Disassociate this collection from the given session.
+
+
+ true if this was currently associated with the given session
+
+
+
+ Associate the collection with the given session.
+
+
+ false if the collection was already associated with the session
+
+
+
+ Read the state of the collection from a disassembled cached value.
+
+
+
+
+
+
+
+ Iterate all collection entries, during update of the database
+
+
+
+
+
+ Reads the row from the .
+
+ The IDataReader that contains the value of the Identifier
+ The persister for this Collection.
+ The descriptor providing result set column names
+ The owner of this Collection.
+ The object that was contained in the row.
+
+
+
+ Get the index of the given collection entry
+
+
+
+
+
+
+
+ Called before any elements are read into the collection,
+ allowing appropriate initializations to occur.
+
+
+
+
+
+ Return a new snapshot of the current state
+
+ The for this Collection.
+
+
+
+
+ Disassemble the collection, ready for the cache
+
+
+
+
+
+
+ Gets a indicating if the rows for this collection
+ need to be recreated in the table.
+
+ The for this Collection.
+
+ by default since most collections can determine which rows need to be
+ individually updated/inserted/deleted. Currently only 's for many-to-many
+ need to be recreated.
+
+
+
+
+
+
+
+
+
+
+
+ To be called internally by the session, forcing
+ immediate initalization.
+
+
+ This method is similar to , except that different exceptions are thrown.
+
+
+
+
+ Does an element exist at this entry in the collection?
+
+
+
+
+
+
+
+ Do we need to insert this element?
+
+
+
+
+
+
+
+
+ Do we need to update this element?
+
+
+
+
+
+
+
+
+ Get all the elements that need deleting
+
+
+
+
+ Is this the wrapper for the given underlying collection instance?
+
+
+
+
+
+
+ Gets the Snapshot from the current session the collection
+ is in.
+
+
+
+
+ Called before inserting rows, to ensure that any surrogate keys are fully generated
+
+
+
+
+
+ Called after inserting a row, to fetch the natively generated id
+
+
+
+
+
+
+
+ Get all "orphaned" elements
+
+
+
+
+ Is the initialized collection empty?
+
+
+
+
+ Is the collection currently connected to an open session?
+
+
+
+
+ Is this collection in a state that would allow us to "queue" additions?
+
+
+
+
+ Gets a indicating if the underlying collection is directly
+ accessible through code.
+
+
+ if we are not guaranteed that the NHibernate collection wrapper
+ is being used.
+
+
+ This is typically whenever a transient object that contains a collection is being
+ associated with an through or .
+ NHibernate can't guarantee that it will know about all operations that would cause NHibernate's collections
+ to call or .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Initializes an instance of the
+ in the .
+
+ The the bag is in.
+
+
+
+ Initializes an instance of the
+ that wraps an existing in the .
+
+ The the bag is in.
+ The to wrap.
+
+
+
+ Gets a indicating if this Bag needs to be recreated
+ in the database.
+
+ The for this Collection.
+
+ if this is a one-to-many bag, if this is not
+ a one-to-many bag. Since a bag is an unordered, unindexed collection
+ that permits duplicates it is not possible to determine what has changed in a
+ many-to-many so it is just recreated.
+
+
+
+
+ Counts the number of times that the occurs
+ in the .
+
+ The element to find in the list.
+ The to search.
+ The that can determine equality.
+
+ The number of occurrences of the element in the list.
+
+
+
+
+ Is this the wrapper for the given underlying bag instance?
+
+ The bag that might be wrapped.
+
+ if the is equal to the
+ wrapped collection by object reference.
+
+
+
+
+ Is the initialized GenericBag empty?
+
+ if the bag has a Count==0, otherwise.
+
+
+
+ Implements "bag" semantics more efficiently than by adding
+ a synthetic identifier column to the table.
+
+
+
+ The identifier is unique for all rows in the table, allowing very efficient
+ updates and deletes. The value of the identifier is never exposed to the
+ application.
+
+
+ Identifier bags may not be used for a many-to-one association. Furthermore,
+ there is no reason to use inverse="true".
+
+
+
+
+
+ Initializes this Bag from the cached values.
+
+ The CollectionPersister to use to reassemble the PersistentIdentifierBag.
+ The disassembled PersistentIdentifierBag.
+ The owner object.
+
+
+
+ A persistent wrapper for an
+
+ The type of the element the list should hold.
+ The underlying collection used is a
+
+
+
+ Initializes an instance of the
+ in the .
+
+ The the list is in.
+
+
+
+ Initializes an instance of the
+ that wraps an existing in the .
+
+ The the bag is in.
+ The to wrap.
+
+
+
+ Return a new snapshot of the current state.
+
+ The for this Collection.
+
+ A new that contains Deep Copies of the
+ Elements stored in this wrapped collection.
+
+
+
+
+ Get all "orphaned" elements.
+
+ The snapshot of the collection.
+ The type of the entities the collection
+ is supposed to contain.
+
+ An that contains all of the elements
+ that have been orphaned.
+
+
+
+
+ A persistent wrapper for a . Underlying
+ collection is a
+
+ The type of the keys in the IDictionary.
+ The type of the elements in the IDictionary.
+
+
+
+ Initializes an instance of the
+ in the .
+
+ The the map is in.
+
+
+
+ Initializes an instance of the
+ that wraps an existing in the
+ .
+
+ The the bag is in.
+ The to wrap.
+
+
+
+ .NET has no design equivalent for Java's Set so we are going to use the
+ Iesi.Collections library. This class is internal to NHibernate and shouldn't
+ be used by user code.
+
+
+ The code for the Iesi.Collections library was taken from the article
+ Add Support for "Set" Collections
+ to .NET that was written by JasonSmith.
+
+
+
+
+ The that NHibernate is wrapping.
+
+
+
+
+ A temporary list that holds the objects while the set is being
+ populated from the database.
+
+
+ This is necessary to ensure that the object being added to the set doesn't
+ have its and
+ methods called during the load process.
+
+
+
+
+ Returns a Hashtable where the Key & the Value are both a Copy of the
+ same object.
+
+
+
+
+
+
+ This constructor is NOT meant to be called from user code.
+
+
+
+
+ Creates a new PersistentGenericSet initialized to the values in the Map.
+ This constructor is NOT meant to be called from user code.
+
+
+ Only call this constructor if you consider the map initialized.
+
+
+
+
+ Initializes this PersistentGenericSet from the cached values.
+
+ The CollectionPersister to use to reassemble the set.
+ The disassembled set.
+ The owner object.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Set up the temporary List that will be used in the EndRead()
+ to fully create the set.
+
+
+
+
+ Takes the contents stored in the temporary list created during
+ that was populated during and writes it to the underlying
+ set.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A persistent wrapper for an array. lazy initialization is NOT supported
+
+
+
+
+ The that NHibernate is wrapping.
+
+
+
+
+ A temporary list that holds the objects while the PersistentArrayHolder is being
+ populated from the database.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Before is called the PersistentArrayHolder needs to setup
+ a temporary list to hold the objects.
+
+
+
+
+ Takes the contents stored in the temporary list created during
+ that was populated during and write it to the underlying
+ array.
+
+
+
+
+ Initializes this array holder from the cached values.
+
+ The CollectionPersister to use to reassemble the Array.
+ The disassembled Array.
+ The owner object.
+
+
+
+ Returns the user-visible portion of the NHibernate PersistentArrayHolder.
+
+
+ The array that contains the data, not the NHibernate wrapper.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ An unordered, unkeyed collection that can contain the same element
+ multiple times. The .NET collections API has no Bag class.
+ Most developers seem to use s to represent bag semantics,
+ so NHibernate follows this practice.
+
+
+
+
+ Counts the number of times that the occurs
+ in the .
+
+ The element to find in the list.
+ The to search.
+ The that can determine equality.
+
+ The number of occurrences of the element in the list.
+
+
+
+
+ Initializes this PersistentBag from the cached values.
+
+ The CollectionPersister to use to reassemble the PersistentBag.
+ The disassembled PersistentBag.
+ The owner object.
+
+
+
+ Gets a indicating if this PersistentBag needs to be recreated
+ in the database.
+
+
+
+ if this is a one-to-many Bag, if this is not
+ a one-to-many Bag. Since a Bag is an unordered, unindexed collection
+ that permits duplicates it is not possible to determine what has changed in a
+ many-to-many so it is just recreated.
+
+
+
+
+ Implements "bag" semantics more efficiently than a regular
+ by adding a synthetic identifier column to the table.
+
+
+
+ The identifier is unique for all rows in the table, allowing very efficient
+ updates and deletes. The value of the identifier is never exposed to the
+ application.
+
+
+ PersistentIdentifierBags may not be used for a many-to-one association. Furthermore,
+ there is no reason to use inverse="true".
+
+
+
+
+
+ Initializes this Bag from the cached values.
+
+ The CollectionPersister to use to reassemble the PersistentIdentifierBag.
+ The disassembled PersistentIdentifierBag.
+ The owner object.
+
+
+
+ A persistent wrapper for an
+
+
+ The underlying collection used in an .
+
+
+
+
+ Return a new snapshot of the current state.
+
+ The for this Collection.
+
+ A new that contains Deep Copies of the
+ Elements stored in this wrapped collection.
+
+
+
+
+ Initializes an instance of the
+ in the .
+
+ The the list is in.
+
+
+
+ Initializes an instance of the
+ that wraps an existing in the .
+
+ The the list is in.
+ The to wrap.
+
+
+
+
+
+
+ Initializes this PersistentList from the cached values.
+
+ The CollectionPersister to use to reassemble the PersistentList.
+ The disassembled PersistentList.
+ The owner object.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A persistent wrapper for a . Underlying collection
+ is a .
+
+
+
+
+ Construct an uninitialized PersistentMap.
+
+ The ISession the PersistentMap should be a part of.
+
+
+
+ Construct an initialized PersistentMap based off the values from the existing IDictionary.
+
+ The ISession the PersistentMap should be a part of.
+ The IDictionary that contains the initial values.
+
+
+
+ Initializes this PersistentMap from the cached values.
+
+ The CollectionPersister to use to reassemble the PersistentMap.
+ The disassembled PersistentMap.
+ The owner object.
+
+
+
+ .NET has no design equivalent for Java's Set so we are going to use the
+ Iesi.Collections library. This class is internal to NHibernate and shouldn't
+ be used by user code.
+
+
+ The code for the Iesi.Collections library was taken from the article
+ Add Support for "Set" Collections
+ to .NET that was written by JasonSmith.
+
+
+
+
+ The that NHibernate is wrapping.
+
+
+
+
+ A temporary list that holds the objects while the PersistentSet is being
+ populated from the database.
+
+
+ This is necessary to ensure that the object being added to the PersistentSet doesn't
+ have its' GetHashCode() and Equals() methods called during the load
+ process.
+
+
+
+
+ Returns a Hashtable where the Key & the Value are both a Copy of the
+ same object.
+
+
+
+
+
+
+ This constructor is NOT meant to be called from user code.
+
+
+
+
+ Creates a new PersistentSet initialized to the values in the Map.
+ This constructor is NOT meant to be called from user code.
+
+
+ Only call this constructor if you consider the map initialized.
+
+
+
+
+ Initializes this PersistentSet from the cached values.
+
+ The CollectionPersister to use to reassemble the PersistentSet.
+ The disassembled PersistentSet.
+ The owner object.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Set up the temporary List that will be used in the EndRead()
+ to fully create the set.
+
+
+
+
+ Takes the contents stored in the temporary list created during BeginRead()
+ that was populated during ReadFrom() and write it to the underlying
+ PersistentSet.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The base class for the ConnectionProvider.
+
+
+
+
+ A strategy for obtaining ADO.NET .
+
+
+ The IConnectionProvider interface is not intended to be exposed to the application.
+ Instead it is used internally by NHibernate to obtain .
+ Implementors should provide a public default constructor.
+
+
+
+
+ Initialize the connection provider from the given properties.
+
+ The connection provider settings
+
+
+
+ Dispose of a used
+
+ The to clean up.
+
+
+
+ Get an open .
+
+ An open .
+
+
+
+ Gets the this ConnectionProvider should use to
+ communicate with the .NET Data Provider
+
+
+ The to communicate with the .NET Data Provider.
+
+
+
+
+ Closes the .
+
+ The to clean up.
+
+
+
+ Configures the ConnectionProvider with the Driver and the ConnectionString.
+
+ An that contains the settings for this ConnectionProvider.
+
+ Thrown when a could not be found
+ in the settings parameter or the Driver Class could not be loaded.
+
+
+
+
+ Get the .NET 2.0 named connection string
+
+
+ Thrown when a was found
+ in the settings parameter but could not be found in the app.config
+
+
+
+
+ Configures the driver for the ConnectionProvider.
+
+ An that contains the settings for the Driver.
+
+ Thrown when the could not be
+ found in the settings parameter or there is a problem with creating
+ the .
+
+
+
+
+ Get an open .
+
+ An open .
+
+
+
+ A flag to indicate if Disose() has been called.
+
+
+
+
+ Finalizer that ensures the object is correctly disposed of.
+
+
+
+
+ Takes care of freeing the managed and unmanaged resources that
+ this class is responsible for.
+
+
+
+
+ Takes care of freeing the managed and unmanaged resources that
+ this class is responsible for.
+
+ Indicates if this ConnectionProvider is being Disposed of or Finalized.
+
+
+ If this ConnectionProvider is being Finalized (isDisposing==false) then make
+ sure not to call any methods that could potentially bring this
+ ConnectionProvider back to life.
+
+
+ If any subclasses manage resources that also need to be disposed of this method
+ should be overridden, but don't forget to call it in the override.
+
+
+
+
+
+ Gets the for the
+ to connect to the database.
+
+
+ The for the
+ to connect to the database.
+
+
+
+
+ Gets the that can create the object.
+
+
+ The that can create the .
+
+
+
+
+ Instanciates a connection provider given configuration properties.
+
+
+
+
+ A ConnectionProvider that uses an IDriver to create connections.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Closes and Disposes of the .
+
+ The to clean up.
+
+
+
+ Gets a new open through
+ the .
+
+
+ An Open .
+
+
+ If there is any problem creating or opening the .
+
+
+
+
+ An implementation of the IConnectionProvider that simply throws an exception when
+ a connection is requested.
+
+
+ This implementation indicates that the user is expected to supply an ADO.NET connection
+
+
+
+
+ Throws an if this method is called
+ because the user is responsible for closing s.
+
+ The to clean up.
+
+ Thrown when this method is called. User is responsible for closing
+ s.
+
+
+
+
+ Throws an if this method is called
+ because the user is responsible for creating s.
+
+
+ No value is returned because an is thrown.
+
+
+ Thrown when this method is called. User is responsible for creating
+ s.
+
+
+
+
+ Configures the ConnectionProvider with only the Driver class.
+
+
+
+ All other settings of the Connection are the responsibility of the User since they configured
+ NHibernate to use a Connection supplied by the User.
+
+
+
+
+ Provides a current session
+ for each .
+ Not recommended for .NET 2.0 web applications.
+
+
+
+
+ Extends the contract defined by
+ by providing methods to bind and unbind sessions to the current context.
+
+
+ The notion of a contextual session is managed by some external entity
+ (generally some form of interceptor like the HttpModule).
+ This external manager is responsible for scoping these contextual sessions
+ appropriately binding/unbinding them here for exposure to the application
+ through calls.
+
+
+
+
+ Defines the contract for implementations which know how to
+ scope the notion of a current session.
+
+
+
+ Implementations should adhere to the following:
+
+ contain a constructor accepting a single argument of type
+
+ should be thread safe
+ should be fully serializable
+
+
+
+ Implementors should be aware that they are also fully responsible for
+ cleanup of any generated current-sessions.
+
+
+ Note that there will be exactly one instance of the configured
+ ICurrentSessionContext implementation per .
+
+
+ It is recommended to inherit from the class
+ whenever possible as it simplifies the implementation and provides
+ single entry point with session binding support.
+
+
+
+
+
+ Retrieve the current session according to the scoping defined
+ by this implementation.
+
+ The current session.
+ Typically indicates an issue
+ locating or creating the current session.
+
+
+
+ Retrieve the current session according to the scoping defined
+ by this implementation.
+
+ The current session.
+ Indicates an issue
+ locating the current session.
+
+
+
+ Binds the specified session to the current context.
+
+
+
+
+ Returns whether there is a session bound to the current context.
+
+
+
+
+ Unbinds and returns the current session.
+
+
+
+ Gets or sets the currently bound session.
+
+
+
+ Get the dicitonary mapping session factory to its current session.
+
+
+
+
+ Set the map mapping session factory to its current session.
+
+
+
+
+ Gets or sets the currently bound session.
+
+
+
+
+ The key is the session factory and the value is the bound session.
+
+
+
+
+ The key is the session factory and the value is the bound session.
+
+
+
+
+ Provides a current session
+ for each .
+ Works only with Web Applications.
+
+
+
+
+ Provides a current session
+ for each thread using the [].
+ To avoid if there are two session factories in the same thread.
+
+
+
+ Gets or sets the currently bound session.
+
+
+
+ Provides a current session
+ for each . Works only with web applications.
+
+
+
+
+ Base class for implementations.
+
+
+
+
+ An object-oriented representation of a query criterion that may be used as a constraint
+ in a query.
+
+
+ Built-in criterion types are provided by the Expression factory class.
+ This interface might be implemented by application classes but, more commonly, application
+ criterion types would extend AbstractCriterion.
+
+
+
+
+ Render a SqlString fragment for the expression.
+
+ A SqlString that contains a valid Sql fragment.
+
+
+
+ Return typed values for all parameters in the rendered SQL fragment
+
+ An array of TypedValues for the Expression.
+
+
+
+ Gets a string representation of the .
+
+
+ A String that shows the contents of the .
+
+
+ This is not a well formed Sql fragment. It is useful for logging what the
+ looks like.
+
+
+
+
+ Render a SqlString for the expression.
+
+ A SqlString that contains a valid Sql fragment.
+
+
+
+ Return typed values for all parameters in the rendered SQL fragment
+
+ An array of TypedValues for the Expression.
+
+
+
+ See here for details:
+ http://steve.emxsoftware.com/NET/Overloading+the++and++operators
+
+
+
+
+ See here for details:
+ http://steve.emxsoftware.com/NET/Overloading+the++and++operators
+
+
+
+
+ See here for details:
+ http://steve.emxsoftware.com/NET/Overloading+the++and++operators
+
+
+
+
+ See here for details:
+ http://steve.emxsoftware.com/NET/Overloading+the++and++operators
+
+
+
+
+ An Aggregation
+
+
+
+
+ A single-column projection that may be aliased
+
+
+
+
+ Render the SQL Fragment.
+
+ The criteria.
+ The position.
+ The criteria query.
+ The enabled filters.
+
+
+
+
+ Render the SQL Fragment to be used in the Group By Clause.
+
+ The criteria.
+ The criteria query.
+ The enabled filters.
+
+
+
+
+ Return types for a particular user-visible alias
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Get the SQL select clause column aliases for a particular user-visible alias
+
+
+
+
+
+
+ Get the SQL select clause column aliases for a particular user-visible alias
+
+
+
+
+
+
+
+ Gets the typed values for parameters in this projection
+
+ The criteria.
+ The criteria query.
+
+
+
+
+ Get the user-visible aliases for this projection (ie. the ones that will be passed to the ResultTransformer)
+
+
+
+
+ Does this projection specify grouping attributes?
+
+
+
+
+ Gets the typed values for parameters in this projection
+
+ The criteria.
+ The criteria query.
+
+
+
+
+ Gets the typed values for parameters in this projection
+
+ The criteria.
+ The criteria query.
+
+
+
+
+ An that combines two s
+ with an and between them.
+
+
+
+
+ An that combines two s
+ with a operator (either "and" or "or") between them.
+
+
+
+
+ Initialize a new instance of the class that
+ combines two other s.
+
+ The to use in the Left Hand Side.
+ The to use in the Right Hand Side.
+
+
+
+ Combines the for the Left Hand Side and the
+ Right Hand Side of the Expression into one array.
+
+ An array of s.
+
+
+
+ Converts the LogicalExpression to a .
+
+ A well formed SqlString for the Where clause.
+ The SqlString will be enclosed by ( and ).
+
+
+
+ Gets a string representation of the LogicalExpression.
+
+
+ The String contains the LeftHandSide.ToString() and the RightHandSide.ToString()
+ joined by the Op.
+
+
+ This is not a well formed Sql fragment. It is useful for logging what Expressions
+ are being combined.
+
+
+
+
+ Gets the that will be on the Left Hand Side of the Op.
+
+
+
+
+ Gets the that will be on the Right Hand Side of the Op.
+
+
+
+
+ Get the Sql operator to put between the two s.
+
+
+
+
+ Initializes a new instance of the class
+ that combines two .
+
+ The to use as the left hand side.
+ The to use as the right hand side.
+
+
+
+ Get the Sql operator to put between the two s.
+
+ The string "and"
+
+
+
+ An that represents a "between" constraint.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The _projection.
+ The _lo.
+ The _hi.
+
+
+
+ Initialize a new instance of the class for
+ the named Property.
+
+ The name of the Property of the Class.
+ The low value for the BetweenExpression.
+ The high value for the BetweenExpression.
+
+
+
+
+
+
+ Casting a value from one type to another, at the database
+ level
+
+
+
+
+ An that Junctions together multiple
+ s with an and
+
+
+
+
+ A sequence of logical s combined by some associative
+ logical operator.
+
+
+
+
+ Adds an to the list of s
+ to junction together.
+
+ The to add.
+
+ This instance.
+
+
+
+
+ Get the Sql operator to put between multiple s.
+
+
+
+
+ The corresponding to an instance with no added
+ subcriteria.
+
+
+
+
+ Get the Sql operator to put between multiple s.
+
+ The string " and "
+
+
+
+ This is useful if we want to send a value to the database
+
+
+
+
+ A Count
+
+
+
+ The alias that refers to the "root" entity of the criteria query.
+
+
+ Each row of results is a from alias to entity instance
+
+
+ Each row of results is an instance of the root entity
+
+
+ Each row of results is a distinct instance of the root entity
+
+
+ This result transformer is selected implicitly by calling
+
+
+ Specifies joining to an entity based on an inner join.
+
+
+ Specifies joining to an entity based on a full join.
+
+
+ Specifies joining to an entity based on a left outer join.
+
+
+
+ Some applications need to create criteria queries in "detached
+ mode", where the Hibernate session is not available. This class
+ may be instantiated anywhere, and then a ICriteria
+ may be obtained by passing a session to
+ GetExecutableCriteria(). All methods have the
+ same semantics and behavior as the corresponding methods of the
+ ICriteria interface.
+
+
+
+
+ Get an executable instance of Criteria,
+ to actually run the query.
+
+
+
+ An that Junctions together multiple
+ s with an or
+
+
+
+
+ Get the Sql operator to put between multiple s.
+
+ The string " or "
+
+
+
+ Gets the typed values for parameters in this projection
+
+ The criteria.
+ The criteria query.
+
+
+
+
+ An that represents an "equal" constraint
+ between two properties.
+
+
+
+
+ Superclass for an that represents a
+ constraint between two properties (with SQL binary operators).
+
+
+
+
+ Initializes a new instance of the class.
+
+ The projection.
+ Name of the RHS property.
+
+
+
+ Initializes a new instance of the class.
+
+ The LHS projection.
+ The RHS projection.
+
+
+
+ Initializes a new instance of the class.
+
+ Name of the LHS property.
+ Name of the RHS property.
+
+
+
+ Initializes a new instance of the class.
+
+ Name of the LHS property.
+ The RHS projection.
+
+
+
+
+
+
+ Get the Sql operator to use for the property expression.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Name of the LHS property.
+ The RHS projection.
+
+
+
+ Initializes a new instance of the class.
+
+ The LHS projection.
+ The RHS projection.
+
+
+
+ Initializes a new instance of the class.
+
+ The projection.
+ Name of the RHS property.
+
+
+
+ Initializes a new instance of the class
+ that compares two mapped properties using an "equal" constraint.
+
+ The name of the Property to use as the left hand side.
+ The name of the Property to use as the right hand side.
+
+
+
+ Get the Sql operator to use for the .
+
+ The string " = "
+
+
+
+ Support for Query By Example.
+
+
+
+ List results = session.CreateCriteria(typeof(Parent))
+ .Add( Example.Create(parent).IgnoreCase() )
+ .CreateCriteria("child")
+ .Add( Example.Create( parent.Child ) )
+ .List();
+
+
+
+ "Examples" may be mixed and matched with "Expressions" in the same
+
+
+
+
+ Set escape character for "like" clause
+
+
+
+ Set the for this .
+
+ The to determine which properties to include.
+ This instance.
+
+ This should be used when a custom has
+ been implemented. Otherwise use the methods
+ or to set the
+ to the s built into NHibernate.
+
+
+
+
+ Set the for this
+ to exclude zero-valued properties.
+
+
+
+
+ Set the for this
+ to exclude no properties.
+
+
+
+
+ Use the "like" operator for all string-valued properties with
+ the specified .
+
+
+ The to convert the string to the pattern
+ for the like comparison.
+
+
+
+
+ Use the "like" operator for all string-valued properties.
+
+
+ The default is MatchMode.Exact.
+
+
+
+
+ Exclude a particular named property
+
+ The name of the property to exclude.
+
+
+
+ Create a new instance, which includes all non-null properties
+ by default
+
+
+ A new instance of .
+
+
+
+ Initialize a new instance of the class for a particular
+ entity.
+
+ The that the Example is being built from.
+ The the Example should use.
+
+
+
+ Determines if the property should be included in the Query.
+
+ The value of the property.
+ The name of the property.
+ The of the property.
+
+ if the Property should be included, if
+ the Property should not be a part of the Query.
+
+
+
+
+ Adds a based on the value
+ and type parameters to the in the
+ list parameter.
+
+ The value of the Property.
+ The of the Property.
+ The to add the to.
+
+ This method will add objects to the list parameter.
+
+
+
+
+ A strategy for choosing property values for inclusion in the query criteria
+
+
+
+
+ Determine if the Property should be included.
+
+ The value of the property that is being checked for inclusion.
+ The name of the property that is being checked for inclusion.
+ The of the property.
+
+ if the Property should be included in the Query,
+ otherwise.
+
+
+
+
+ Implementation of that includes all
+ properties regardless of value.
+
+
+
+
+ Implementation of that includes the
+ properties that are not and do not have an
+ returned by propertyValue.ToString().
+
+
+ This selector is not present in H2.1. It may be useful if nullable types
+ are used for some properties.
+
+
+
+
+ This class is semi-deprecated. Use .
+
+
+
+
+
+ The namespace may be used by applications as a framework for building
+ new kinds of .
+ However, it is intended that most applications will
+ simply use the built-in criterion types via the static factory methods of this class.
+
+
+
+
+
+
+ Apply an "equal" constraint to the identifier property
+
+
+ ICriterion
+
+
+
+ Apply an "equal" constraint from the projection to the identifier property
+
+ The projection.
+ ICriterion
+
+
+
+ Apply an "equal" constraint to the named property
+
+ The name of the Property in the class.
+ The value for the Property.
+
+
+
+ Apply an "equal" constraint to the projection
+
+ The projection.
+ The value for the Property.
+
+
+
+ Apply a "like" constraint to the named property
+
+ The name of the Property in the class.
+ The value for the Property.
+ A .
+
+
+
+ Apply a "like" constraint to the project
+
+ The projection.
+ The value for the Property.
+ A .
+
+
+
+ Apply a "like" constraint to the project
+
+ The projection.
+ The value for the Property.
+ The match mode.
+ A .
+
+
+
+ A case-insensitive "like", similar to Postgres "ilike" operator
+
+ The name of the Property in the class.
+ The value for the Property.
+ An .
+
+
+
+ A case-insensitive "like", similar to Postgres "ilike" operator
+
+ The projection.
+ The value for the Property.
+
+ An .
+
+
+
+
+ Apply a "greater than" constraint to the named property
+
+ The name of the Property in the class.
+ The value for the Property.
+
+
+
+ Apply a "greater than" constraint to the projection
+
+ The projection.
+ The value for the Property.
+
+
+
+ Apply a "less than" constraint to the named property
+
+ The name of the Property in the class.
+ The value for the Property.
+
+
+
+ Apply a "less than" constraint to the projection
+
+ The projection.
+ The value for the Property.
+
+
+
+ Apply a "less than or equal" constraint to the named property
+
+ The name of the Property in the class.
+ The value for the Property.
+
+
+
+ Apply a "less than or equal" constraint to the projection
+
+ The projection.
+ The value for the Property.
+
+
+
+ Apply a "greater than or equal" constraint to the named property
+
+ The name of the Property in the class.
+ The value for the Property.
+
+
+
+ Apply a "greater than or equal" constraint to the projection
+
+ The projection.
+ The value for the Property.
+
+
+
+ Apply a "between" constraint to the named property
+
+ The name of the Property in the class.
+ The low value for the Property.
+ The high value for the Property.
+ A .
+
+
+
+ Apply a "between" constraint to the projection
+
+ The projection.
+ The low value for the Property.
+ The high value for the Property.
+ A .
+
+
+
+ Apply an "in" constraint to the named property
+
+ The name of the Property in the class.
+ An array of values.
+ An .
+
+
+
+ Apply an "in" constraint to the projection
+
+ The projection.
+ An array of values.
+ An .
+
+
+
+ Apply an "in" constraint to the projection
+
+ The projection.
+ An ICollection of values.
+ An .
+
+
+
+ Apply an "in" constraint to the named property
+
+ The name of the Property in the class.
+ An ICollection of values.
+ An .
+
+
+
+ Apply an "in" constraint to the named property. This is the generic equivalent
+ of , renamed to avoid ambiguity.
+
+ The name of the Property in the class.
+ An
+ of values.
+ An .
+
+
+
+ Apply an "in" constraint to the projection. This is the generic equivalent
+ of , renamed to avoid ambiguity.
+
+
+ The projection.
+ An
+ of values.
+ An .
+
+
+
+ Apply an "is null" constraint to the named property
+
+ The name of the Property in the class.
+ A .
+
+
+
+ Apply an "is null" constraint to the projection
+
+ The projection.
+ A .
+
+
+
+ Apply an "equal" constraint to two properties
+
+ The lhs Property Name
+ The rhs Property Name
+ A .
+
+
+
+ Apply an "equal" constraint to projection and property
+
+ The projection.
+ The rhs Property Name
+ A .
+
+
+
+ Apply an "equal" constraint to lshProjection and rshProjection
+
+ The LHS projection.
+ The RSH projection.
+ A .
+
+
+
+ Apply an "equal" constraint to the property and rshProjection
+
+ Name of the property.
+ The RSH projection.
+ A .
+
+
+
+ Apply an "not equal" constraint to two properties
+
+ The lhs Property Name
+ The rhs Property Name
+ A .
+
+
+
+ Apply an "not equal" constraint to projection and property
+
+ The projection.
+ The rhs Property Name
+ A .
+
+
+
+ Apply an "not equal" constraint to the projections
+
+ The LHS projection.
+ The RHS projection.
+ A .
+
+
+
+ Apply an "not equal" constraint to the projections
+
+ Name of the property.
+ The RHS projection.
+ A .
+
+
+
+ Apply a "greater than" constraint to two properties
+
+ The lhs Property Name
+ The rhs Property Name
+ A .
+
+
+
+ Apply a "greater than" constraint to two properties
+
+ The projection.
+ The rhs Property Name
+ A .
+
+
+
+ Apply a "greater than" constraint to two properties
+
+ Name of the property.
+ The projection.
+ A .
+
+
+
+ Apply a "greater than" constraint to two properties
+
+ The LHS projection.
+ The RHS projection.
+ A .
+
+
+
+ Apply a "greater than or equal" constraint to two properties
+
+ The lhs Property Name
+ The rhs Property Name
+ A .
+
+
+
+ Apply a "greater than or equal" constraint to two properties
+
+ The LHS projection.
+ The RHS projection.
+ A .
+
+
+
+ Apply a "greater than or equal" constraint to two properties
+
+ The projection.
+ The rhs Property Name
+ A .
+
+
+
+ Apply a "greater than or equal" constraint to two properties
+
+ The lhs Property Name
+ The projection.
+ A .
+
+
+
+ Apply a "less than" constraint to two properties
+
+ The lhs Property Name
+ The rhs Property Name
+ A .
+
+
+
+ Apply a "less than" constraint to two properties
+
+ The projection.
+ The rhs Property Name
+ A .
+
+
+
+ Apply a "less than" constraint to two properties
+
+ The lhs Property Name
+ The projection.
+ A .
+
+
+
+ Apply a "less than" constraint to two properties
+
+ The LHS projection.
+ The RHS projection.
+ A .
+
+
+
+ Apply a "less than or equal" constraint to two properties
+
+ The lhs Property Name
+ The rhs Property Name
+ A .
+
+
+
+ Apply a "less than or equal" constraint to two properties
+
+ The projection.
+ The rhs Property Name
+ A .
+
+
+
+ Apply a "less than or equal" constraint to two properties
+
+ The lhs Property Name
+ The projection.
+ A .
+
+
+
+ Apply a "less than or equal" constraint to two properties
+
+ The LHS projection.
+ The RHS projection.
+ A .
+
+
+
+ Apply an "is not null" constraint to the named property
+
+ The name of the Property in the class.
+ A .
+
+
+
+ Apply an "is not null" constraint to the named property
+
+ The projection.
+ A .
+
+
+
+ Apply an "is not empty" constraint to the named property
+
+ The name of the Property in the class.
+ A .
+
+
+
+ Apply an "is not empty" constraint to the named property
+
+ The name of the Property in the class.
+ A .
+
+
+
+ Return the conjunction of two expressions
+
+ The Expression to use as the Left Hand Side.
+ The Expression to use as the Right Hand Side.
+ An .
+
+
+
+ Return the disjuction of two expressions
+
+ The Expression to use as the Left Hand Side.
+ The Expression to use as the Right Hand Side.
+ An .
+
+
+
+ Return the negation of an expression
+
+ The Expression to negate.
+ A .
+
+
+
+ Group expressions together in a single conjunction (A and B and C...)
+
+
+
+
+ Group expressions together in a single disjunction (A or B or C...)
+
+
+
+
+ Apply an "equals" constraint to each property in the key set of a IDictionary
+
+ a dictionary from property names to values
+
+
+
+
+ Apply a constraint expressed in SQL, with the given SQL parameters
+
+
+
+
+
+
+
+
+ Apply a constraint expressed in SQL, with the given SQL parameter
+
+
+
+
+
+
+
+
+ Apply a constraint expressed in SQL, with the given SQL parameter
+
+
+
+
+ Apply a constraint expressed in SQL
+
+
+
+
+
+
+ Apply a constraint expressed in SQL
+
+
+
+
+
+
+ An that represents an "greater than or equal" constraint
+ between two properties.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Name of the LHS property.
+ The RHS projection.
+
+
+
+ Initializes a new instance of the class.
+
+ The LHS projection.
+ The RHS projection.
+
+
+
+ Initializes a new instance of the class.
+
+ The projection.
+ Name of the RHS property.
+
+
+
+ Initializes a new instance of the class
+ that compares two mapped properties using an "greater than or equal" constraint.
+
+ The name of the Property to use as the left hand side.
+ The name of the Property to use as the right hand side.
+
+
+
+ Get the Sql operator to use for the .
+
+ The string " < "
+
+
+
+ An that represents an "greater than" constraint
+ between two properties.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Name of the LHS property.
+ The RHS projection.
+
+
+
+ Initializes a new instance of the class.
+
+ The LHS projection.
+ The RHS projection.
+
+
+
+ Initializes a new instance of the class.
+
+ The projection.
+ Name of the RHS property.
+
+
+
+ Initializes a new instance of the class
+ that compares two mapped properties using an "greater than" constraint.
+
+ The name of the Property to use as the left hand side.
+ The name of the Property to use as the right hand side.
+
+
+
+ Get the Sql operator to use for the .
+
+ The string " < "
+
+
+
+ An identifier constraint
+
+
+
+
+ An that constrains the property
+ to a specified list of values.
+
+
+ InExpression - should only be used with a Single Value column - no multicolumn properties...
+
+
+
+
+ Initializes a new instance of the class.
+
+ The projection.
+ The _values.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ An that represents an "like" constraint
+ that is not case sensitive.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The projection.
+ The value.
+ The match mode.
+
+
+
+ Initializes a new instance of the class.
+
+ The projection.
+ The _value.
+
+
+
+ Initialize a new instance of the
+ class for a named Property and its value.
+
+ The name of the Property in the class.
+ The value for the Property.
+
+
+
+
+
+
+ An that represents empty association constraint.
+
+
+
+
+ An that represents non-empty association constraint.
+
+
+
+
+ An that represents an "less than or equal" constraint
+ between two properties.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Name of the LHS property.
+ The RHS projection.
+
+
+
+ Initializes a new instance of the class.
+
+ The LHS projection.
+ The RHS projection.
+
+
+
+ Initializes a new instance of the class.
+
+ The projection.
+ Name of the RHS property.
+
+
+
+ Initializes a new instance of the class
+ that compares two mapped properties using an "less than or equal" constraint.
+
+ The name of the Property to use as the left hand side.
+ The name of the Property to use as the right hand side.
+
+
+
+ Get the Sql operator to use for the .
+
+ The string " <= "
+
+
+
+ An that represents an "like" constraint.
+
+
+ The case sensitivity depends on the database settings for string
+ comparisons. Use if the
+ string comparison should not be case sensitive.
+
+
+
+
+ An that represents an "less than" constraint
+ between two properties.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Name of the LHS property.
+ The RHS projection.
+
+
+
+ Initializes a new instance of the class.
+
+ The LHS projection.
+ The RHS projection.
+
+
+
+ Initializes a new instance of the class.
+
+ The projection.
+ Name of the RHS property.
+
+
+
+ Initializes a new instance of the class
+ that compares two mapped properties using an "less than" constraint.
+
+ The name of the Property to use as the left hand side.
+ The name of the Property to use as the right hand side.
+
+
+
+ Get the Sql operator to use for the .
+
+ The string " < "
+
+
+
+ Represents an strategy for matching strings using "like".
+
+
+
+
+ Initialize a new instance of the class.
+
+ The code that identifies the match mode.
+ The friendly name of the match mode.
+
+ The parameter intCode is used as the key of
+ to store instances and to ensure only instance of a particular
+ is created.
+
+
+
+
+ The string representation of the .
+
+ The friendly name used to describe the .
+
+
+
+ Convert the pattern, by appending/prepending "%"
+
+ The string to convert to the appropriate match pattern.
+
+ A that contains a "%" in the appropriate place
+ for the Match Strategy.
+
+
+
+
+ Match the entire string to the pattern
+
+
+
+
+ Match the start of the string to the pattern
+
+
+
+
+ Match the end of the string to the pattern
+
+
+
+
+ Match the pattern anywhere in the string
+
+
+
+
+ The that matches the entire string to the pattern.
+
+
+
+
+ Initialize a new instance of the class.
+
+
+
+
+ Converts the string to the Exact MatchMode.
+
+ The string to convert to the appropriate match pattern.
+ The pattern exactly the same as it was passed in.
+
+
+
+ The that matches the start of the string to the pattern.
+
+
+
+
+ Initialize a new instance of the class.
+
+
+
+
+ Converts the string to the Start MatchMode.
+
+ The string to convert to the appropriate match pattern.
+ The pattern with a "%" appended at the end.
+
+
+
+ The that matches the end of the string to the pattern.
+
+
+
+
+ Initialize a new instance of the class.
+
+
+
+
+ Converts the string to the End MatchMode.
+
+ The string to convert to the appropriate match pattern.
+ The pattern with a "%" appended at the beginning.
+
+
+
+ The that exactly matches the string
+ by appending "%" to the beginning and end.
+
+
+
+
+ Initialize a new instance of the class.
+
+
+
+
+ Converts the string to the Exact MatchMode.
+
+ The string to convert to the appropriate match pattern.
+ The pattern with a "%" appended at the beginning and the end.
+
+
+
+ An that negates another .
+
+
+
+
+ Initialize a new instance of the class for an
+
+
+ The to negate.
+
+
+
+ An that represents "not null" constraint.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The projection.
+
+
+
+ Initialize a new instance of the class for a named
+ Property that should not be null.
+
+ The name of the Property in the class.
+
+
+
+ An that represents "null" constraint.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The projection.
+
+
+
+ Initialize a new instance of the class for a named
+ Property that should be null.
+
+ The name of the Property in the class.
+
+
+
+
+
+
+ Represents an order imposed upon a
+ result set.
+
+
+
+
+ Constructor for Order.
+
+
+
+
+
+
+ Render the SQL fragment
+
+
+
+
+ Ascending order
+
+
+
+
+
+
+ Descending order
+
+
+
+
+
+
+ An that combines two s with an
+ "or" between them.
+
+
+
+
+ Initialize a new instance of the class for
+ two s.
+
+ The to use as the left hand side.
+ The to use as the right hand side.
+
+
+
+ Get the Sql operator to put between the two s.
+
+ Returns "or"
+
+
+
+ Gets the typed values for parameters in this projection
+
+ The criteria.
+ The criteria query.
+
+
+
+
+ The criterion package may be used by applications as a framework for building
+ new kinds of Projection. However, it is intended that most applications will
+ simply use the built-in projection types via the static factory methods of this class.
+
+ The factory methods that take an alias allow the projected value to be referred to by
+ criterion and order instances.
+
+
+
+
+ Create a distinct projection from a projection
+
+
+
+
+
+
+ Create a new projection list
+
+
+
+
+
+ The query row count, ie. count(*)
+
+ The RowCount projection mapped to an .
+
+
+
+ The query row count, ie. count(*)
+
+ The RowCount projection mapped to an .
+
+
+
+ A property value count
+
+
+
+
+
+
+ A distinct property value count
+
+
+
+
+
+
+ A property maximum value
+
+
+
+
+
+
+ A property minimum value
+
+
+
+
+
+
+ A property average value
+
+
+
+
+
+
+ A property value sum
+
+
+
+
+
+
+ A SQL projection, a typed select clause fragment
+
+
+
+
+
+
+
+
+ A grouping SQL projection, specifying both select clause and group by clause fragments
+
+
+
+
+
+
+
+
+
+ A grouping property value
+
+
+
+
+
+
+ A projected property value
+
+
+
+
+
+
+ A projected identifier value
+
+
+
+
+
+ Assign an alias to a projection, by wrapping it
+
+
+
+
+
+
+
+ Casts the projection result to the specified type.
+
+ The type.
+ The projection.
+
+
+
+
+ Return a constant value
+
+ The obj.
+
+
+
+
+ Calls the named
+
+ Name of the function.
+ The type.
+ The projections.
+
+
+
+
+ Calls the specified
+
+ the function.
+ The type.
+ The projections.
+
+
+
+
+ Conditionally return the true or false part, dependention on the criterion
+
+ The criterion.
+ The when true.
+ The when false.
+
+
+
+
+ A factory for property-specific AbstractCriterion and projection instances
+
+
+
+
+ A property value, or grouped property value
+
+
+
+
+ Get a component attribute of this property
+
+
+
+
+ A comparison between a property value in the outer query and the
+ result of a subquery
+
+
+
+
+ The base class for an that compares a single Property
+ to a value.
+
+
+
+
+ Initialize a new instance of the class for a named
+ Property and its value.
+
+ The name of the Property in the class.
+ The value for the Property.
+ The SQL operation.
+
+
+
+ Converts the SimpleExpression to a .
+
+ A SqlString that contains a valid Sql fragment.
+
+
+
+
+
+
+ Gets the named Property for the Expression.
+
+ A string that is the name of the Property.
+
+
+
+ Gets the Value for the Expression.
+
+ An object that is the value for the Expression.
+
+
+
+ Get the Sql operator to use for the specific
+ subclass of .
+
+
+
+
+ A comparison between a constant value and the the result of a subquery
+
+
+
+
+ An that creates a SQLExpression.
+ The string {alias} will be replaced by the alias of the root entity.
+
+
+ This allows for database specific Expressions at the cost of needing to
+ write a correct .
+
+
+
+
+
+
+
+ A SQL fragment. The string {alias} will be replaced by the alias of the root entity.
+
+
+
+
+ Gets the typed values for parameters in this projection
+
+ The criteria.
+ The criteria query.
+
+
+
+
+ Factory class for AbstractCriterion instances that represent
+ involving subqueries.
+ Expression
+ Projection
+ AbstractCriterion
+
+
+
+
+ Used to show a better debug display for dictionaries
+
+
+
+
+
+
+
+ ::=
+ EXTRACT FROM
+
+ ::=
+ |
+
+
+
+ Represents HQL functions that can have different representations in different SQL dialects.
+ E.g. in HQL we can define function concat(?1, ?2) to concatenate two strings
+ p1 and p2. Target SQL function will be dialect-specific, e.g. (?1 || ?2) for
+ Oracle, concat(?1, ?2) for MySql, (?1 + ?2) for MS SQL.
+ Each dialect will define a template as a string (exactly like above) marking function
+ parameters with '?' followed by parameter's index (first index is 1).
+
+
+
+
+ Provides support routines for the HQL functions as used
+ in the various SQL Dialects
+
+ Provides an interface for supporting various HQL functions that are
+ translated to SQL. The Dialect and its sub-classes use this interface to
+ provide details required for processing of the function.
+
+
+
+
+ The function return type
+
+ The type of the first argument
+
+
+
+
+
+ Render the function call as SQL.
+
+ List of arguments
+
+ SQL fragment for the fuction.
+
+
+
+ Does this function have any arguments?
+
+
+
+
+ If there are no arguments, are parens required?
+
+
+
+
+ Applies the template to passed in arguments.
+
+ args function arguments
+ generated SQL function call
+
+
+
+
+ ANSI-SQL substring
+ Documented in:
+ ANSI X3.135-1992
+ American National Standard for Information Systems - Database Language - SQL
+
+
+ Syntax:
+ ::=
+ SUBSTRING FROM < start position>
+ [ FOR ]
+ ]]>
+
+
+
+
+ A SQLFunction implementation that emulates the ANSI SQL trim function
+ on dialects which do not support the full definition. However, this function
+ definition does assume the availability of ltrim, rtrim, and replace functions
+ which it uses in various combinations to emulate the desired ANSI trim()
+ functionality.
+
+
+
+
+
+
+
+
+
+
+ according to both the ANSI-SQL and EJB3 specs, trim can either take
+ exactly one parameter or a variable number of parameters between 1 and 4.
+ from the SQL spec:
+ ::=
+ TRIM
+
+ ::=
+ [ [ ] [ ] FROM ]
+
+ ::=
+ LEADING
+ | TRAILING
+ | BOTH
+ ]]>
+ If only trim specification is omitted, BOTH is assumed;
+ if trim character is omitted, space is assumed
+
+
+
+
+ ANSI-SQL style cast(foo as type) where the type is a NHibernate type
+
+
+
+
+ Emulation of locate() on Sybase
+
+
+
+
+ Initializes a new instance of the StandardSQLFunction class.
+
+ SQL function name.
+ Whether the function accepts an asterisk (*) in place of arguments
+
+
+
+ Initializes a new instance of the StandardSQLFunction class.
+
+ SQL function name.
+ True if accept asterisk like argument
+ Return type for the fuction.
+
+
+
+ Classic AVG sqlfunction that return types as it was done in Hibernate 3.1
+
+
+
+
+ Classic COUNT sqlfunction that return types as it was done in Hibernate 3.1
+
+
+
+
+ Classic SUM sqlfunction that return types as it was done in Hibernate 3.1
+
+
+
+
+ Summary description for NoArgSQLFunction.
+
+
+
+
+ Emulation of coalesce() on Oracle, using multiple nvl() calls
+
+
+
+
+ Emulation of locate() on PostgreSQL
+
+
+
+
+ Provides a standard implementation that supports the majority of the HQL
+ functions that are translated to SQL.
+
+
+ The Dialect and its sub-classes use this class to provide details required
+ for processing of the associated function.
+
+
+
+
+ Provides a standard implementation that supports the majority of the HQL
+ functions that are translated to SQL.
+
+
+ The Dialect and its sub-classes use this class to provide details required
+ for processing of the associated function.
+
+
+
+
+ Initializes a new instance of the StandardSQLFunction class.
+
+ SQL function name.
+
+
+
+ Initializes a new instance of the StandardSQLFunction class.
+
+ SQL function name.
+ Return type for the fuction.
+
+
+
+ Initializes a new instance of the StandardSafeSQLFunction class.
+
+ SQL function name.
+ Exact number of arguments expected.
+
+
+
+ Initializes a new instance of the StandardSafeSQLFunction class.
+
+ SQL function name.
+ Return type for the fuction.
+ Exact number of arguments expected.
+
+
+
+ Support for slightly more general templating than StandardSQLFunction,
+ with an unlimited number of arguments.
+
+
+
+
+ A strategy abstraction for how locks are obtained in the underlying database.
+
+
+ All locking provided implemenations assume the underlying database supports
+ (and that the connection is in) at least read-committed transaction isolation.
+ The most glaring exclusion to this is HSQLDB which only offers support for
+ READ_UNCOMMITTED isolation.
+
+
+
+
+
+ Acquire an appropriate type of lock on the underlying data that will
+ endure until the end of the current transaction.
+
+ The id of the row to be locked
+ The current version (or null if not versioned)
+ The object logically being locked (currently not used)
+ The session from which the lock request originated
+
+
+
+ A locking strategy where the locks are obtained through select statements.
+
+
+
+
+ For non-read locks, this is achieved through the Dialect's specific
+ SELECT ... FOR UPDATE syntax.
+
+
+
+
+ A locking strategy where the locks are obtained through update statements.
+
+ This strategy is not valid for read style locks.
+
+
+
+ Construct a locking strategy based on SQL UPDATE statements.
+
+ The metadata for the entity to be locked.
+ Indictates the type of lock to be acquired.
+
+ read-locks are not valid for this strategy.
+
+
+
+
+ An SQL dialect for DB2 on iSeries OS/400.
+
+
+ The DB2400Dialect defaults the following configuration properties:
+
+
+ Property
+ Default Value
+
+
+ connection.driver_class
+
+
+
+
+
+
+
+ An SQL dialect for DB2.
+
+
+ The DB2Dialect defaults the following configuration properties:
+
+
+ Property
+ Default Value
+
+
+ connection.driver_class
+
+
+
+
+
+
+
+ Represents a dialect of SQL implemented by a particular RDBMS. Subclasses
+ implement NHibernate compatibility with different systems.
+
+
+ Subclasses should provide a public default constructor that Register()
+ a set of type mappings and default Hibernate properties.
+
+
+
+
+
+
+
+
+
+
+ Characters used for quoting sql identifiers
+
+
+
+
+
+
+
+
+
+
+ The base constructor for Dialect.
+
+
+ Every subclass should override this and call Register() with every except
+ , , , ,
+ , .
+
+
+ The Default properties for this Dialect should also be set - such as whether or not to use outer-joins
+ and what the batch size should be.
+
+
+
+
+ Get an instance of the dialect specified by the current properties.
+ The specified Dialect
+
+
+
+ Get de from a property bag (prop name )
+
+ The property bag.
+ An instance of .
+ When is null.
+ When the property bag don't contains de property .
+
+
+
+ Get the name of the database type associated with the given
+ ,
+
+ The SqlType
+ The database type name used by ddl.
+
+
+
+ Get the name of the database type associated with the given
+ .
+
+ The SqlType
+ The datatype length
+ The datatype precision
+ The datatype scale
+ The database type name used by ddl.
+
+
+
+ Get the name of the database type appropriate for casting operations
+ (via the CAST() SQL function) for the given typecode.
+
+ The typecode
+ The database type name
+
+
+
+ Subclasses register a typename for the given type code and maximum
+ column length. $l in the type name will be replaced by the column
+ length (if appropriate)
+
+ The typecode
+ Maximum length of database type
+ The database type name
+
+
+
+ Suclasses register a typename for the given type code. $l in the
+ typename will be replaced by the column length (if appropriate).
+
+ The typecode
+ The database type name
+
+
+
+ Get the name of the Hibernate associated with th given
+ typecode.
+
+ The typecode
+ The Hibernate name.
+
+
+
+ Get the name of the Hibernate associated
+ with the given typecode with the given storage
+ specification parameters.
+
+ The typecode
+ The datatype length
+ The datatype precision
+ The datatype scale
+ The Hibernate name.
+
+
+
+ Registers a Hibernate name for the given
+ type code and maximum column length.
+
+ The typecode
+ The maximum length of database type
+ The Hibernate name
+
+
+
+ Registers a Hibernate name for the given
+ type code.
+
+ The typecode
+ The Hibernate name
+
+
+
+
+
+
+
+
+
+
+ The syntax used to add a foreign key constraint to a table.
+
+ The FK constraint name.
+ The names of the columns comprising the FK
+ The table referenced by the FK
+ The explicit columns in the referencedTable referenced by this FK.
+
+ if false, constraint should be explicit about which column names the constraint refers to
+
+ the "add FK" fragment
+
+
+
+ The syntax used to add a primary key constraint to a table
+
+
+
+
+
+ Get a strategy instance which knows how to acquire a database-level lock
+ of the specified mode for this dialect.
+
+ The persister for the entity to be locked.
+ The type of lock to be acquired.
+ The appropriate locking strategy.
+
+
+
+ Given a lock mode, determine the appropriate for update fragment to use.
+
+ The lock mode to apply.
+ The appropriate for update fragment.
+
+
+
+ Get the FOR UPDATE OF column_list fragment appropriate for this
+ dialect given the aliases of the columns to be write locked.
+
+ The columns to be write locked.
+ The appropriate FOR UPDATE OF column_list clause string.
+
+
+
+ Get the FOR UPDATE OF column_list NOWAIT fragment appropriate
+ for this dialect given the aliases of the columns to be write locked.
+
+ The columns to be write locked.
+ The appropriate FOR UPDATE colunm_list NOWAIT clause string.
+
+
+
+ Modifies the given SQL by applying the appropriate updates for the specified
+ lock modes and key columns.
+
+ the SQL string to modify
+ a map of lock modes indexed by aliased table names.
+ a map of key columns indexed by aliased table names.
+ the modified SQL string.
+
+ The behavior here is that of an ANSI SQL SELECT FOR UPDATE. This
+ method is really intended to allow dialects which do not support
+ SELECT FOR UPDATE to achieve this in their own fashion.
+
+
+
+
+ Some dialects support an alternative means to SELECT FOR UPDATE,
+ whereby a "lock hint" is appends to the table name in the from clause.
+
+ The lock mode to apply
+ The name of the table to which to apply the lock hint.
+ The table with any required lock hints.
+
+
+
+ Return SQL needed to drop the named table. May (and should) use
+ some form of "if exists" clause, and cascade constraints.
+
+
+
+
+
+ Generate a temporary table name given the bas table.
+ The table name from which to base the temp table name.
+ The generated temp table name.
+
+
+
+ Does the dialect require that temporary table DDL statements occur in
+ isolation from other statements? This would be the case if the creation
+ would cause any current transaction to get committed implicitly.
+
+ see the result matrix above.
+
+ JDBC defines a standard way to query for this information via the
+ {@link java.sql.DatabaseMetaData#dataDefinitionCausesTransactionCommit()}
+ method. However, that does not distinguish between temporary table
+ DDL and other forms of DDL; MySQL, for example, reports DDL causing a
+ transaction commit via its driver, even though that is not the case for
+ temporary table DDL.
+
+ Possible return values and their meanings:
+
{@link Boolean#TRUE} - Unequivocally, perform the temporary table DDL in isolation.
+
{@link Boolean#FALSE} - Unequivocally, do not perform the temporary table DDL in isolation.
+
null - defer to the JDBC driver response in regards to {@link java.sql.DatabaseMetaData#dataDefinitionCausesTransactionCommit()}
+
+
+
+
+ Do we need to drop the temporary table after use?
+
+
+
+ Registers an OUT parameter which will be returing a
+ . How this is accomplished varies greatly
+ from DB to DB, hence its inclusion (along with {@link #getResultSet}) here.
+
+ The callable statement.
+ The bind position at which to register the OUT param.
+ The number of (contiguous) bind positions used.
+
+
+
+ Given a callable statement previously processed by ,
+ extract the from the OUT parameter.
+
+ The callable statement.
+ The extracted result set.
+ SQLException Indicates problems extracting the result set.
+
+
+
+ The syntax used to drop a foreign key constraint from a table.
+
+ The name of the foreign key constraint to drop.
+
+ The SQL string to drop the foreign key constraint.
+
+
+
+
+ The syntax that is used to check if a constraint does not exists before creating it
+
+ The table.
+ The name.
+
+
+
+
+ The syntax that is used to close the if for a constraint exists check, used
+ for dialects that requires begin/end for ifs
+
+ The table.
+ The name.
+
+
+
+
+ The syntax that is used to check if a constraint exists before dropping it
+
+ The table.
+ The name.
+
+
+
+
+ The syntax that is used to close the if for a constraint exists check, used
+ for dialects that requires begin/end for ifs
+
+ The table.
+ The name.
+
+
+
+
+ The syntax used to drop a primary key constraint from a table.
+
+ The name of the primary key constraint to drop.
+
+ The SQL string to drop the primary key constraint.
+
+
+
+
+ The syntax used to drop an index constraint from a table.
+
+ The name of the index constraint to drop.
+
+ The SQL string to drop the primary key constraint.
+
+
+
+
+ Provided we , then attch the
+ "select identity" clause to the insert statement.
+
+ The insert command
+
+ The insert command with any necessary identity select clause attached.
+ Note, if == false then
+ the insert-string should be returned without modification.
+
+
+
+
+ Get the select command to use to retrieve the last generated IDENTITY
+ value for a particuar table
+
+ The table into which the insert was done
+ The PK column.
+ The type code.
+ The appropriate select command
+
+
+
+ The syntax used during DDL to define a column as being an IDENTITY of
+ a particular type.
+
+ The type code.
+ The appropriate DDL fragment.
+
+
+
+ Generate the appropriate select statement to to retreive the next value
+ of a sequence.
+
+ the name of the sequence
+ String The "nextval" select string.
+ This should be a "stand alone" select statement.
+
+
+
+ Typically dialects which support sequences can drop a sequence
+ with a single command.
+
+ The name of the sequence
+ The sequence drop commands
+
+ This is convenience form of
+ to help facilitate that.
+
+ Dialects which support sequences and can drop a sequence in a
+ single command need *only* override this method. Dialects
+ which support sequences but require multiple commands to drop
+ a sequence should instead override .
+
+
+
+
+ The multiline script used to drop a sequence.
+
+ The name of the sequence
+ The sequence drop commands
+
+
+
+ Generate the select expression fragment that will retreive the next
+ value of a sequence as part of another (typically DML) statement.
+
+ the name of the sequence
+ The "nextval" fragment.
+
+ This differs from in that this
+ should return an expression usable within another statement.
+
+
+
+
+ Typically dialects which support sequences can create a sequence
+ with a single command.
+
+ The name of the sequence
+ The sequence creation command
+
+ This is convenience form of to help facilitate that.
+ Dialects which support sequences and can create a sequence in a
+ single command need *only* override this method. Dialects
+ which support sequences but require multiple commands to create
+ a sequence should instead override .
+
+
+
+
+ An optional multi-line form for databases which .
+
+ The name of the sequence
+ The initial value to apply to 'create sequence' statement
+ The increment value to apply to 'create sequence' statement
+ The sequence creation commands
+
+
+
+ Overloaded form of , additionally
+ taking the initial value and increment size to be applied to the sequence
+ definition.
+
+ The name of the sequence
+ The initial value to apply to 'create sequence' statement
+ The increment value to apply to 'create sequence' statement
+ The sequence creation command
+
+ The default definition is to suffix
+ with the string: " start with {initialValue} increment by {incrementSize}" where
+ {initialValue} and {incrementSize} are replacement placeholders. Generally
+ dialects should only need to override this method if different key phrases
+ are used to apply the allocation information.
+
+
+
+
+ Create a strategy responsible
+ for handling this dialect's variations in how joins are handled.
+
+ This dialect's strategy.
+
+
+
+ Create a strategy responsible
+ for handling this dialect's variations in how CASE statements are
+ handled.
+
+ This dialect's strategy.
+
+
+ The SQL literal value to which this database maps boolean values.
+ The boolean value
+ The appropriate SQL literal.
+
+
+
+ Add a LIMIT clause to the given SQL SELECT
+
+ A Query in the form of a SqlString.
+ Offset of the first row to be returned by the query (zero-based)
+ Maximum number of rows to be returned by the query
+ A new SqlString that contains the LIMIT clause.
+
+
+ Apply s limit clause to the query.
+ The query to which to apply the limit.
+ Is the query requesting an offset?
+ the modified SQL
+
+ Typically dialects utilize
+ limit caluses when they support limits. Thus, when building the
+ select command we do not actually need to know the limit or the offest
+ since we will just be using placeholders.
+
+ Here we do still pass along whether or not an offset was specified
+ so that dialects not supporting offsets can generate proper exceptions.
+ In general, dialects will override one or the other of this method and
+ .
+
+
+
+
+ Checks to see if the name has been quoted.
+
+ The name to check if it is quoted
+ true if name is already quoted.
+
+ The default implementation is to compare the first character
+ to Dialect.OpenQuote and the last char to Dialect.CloseQuote
+
+
+
+
+ Quotes a name.
+
+ The string that needs to be Quoted.
+ A QuotedName
+
+
+ This method assumes that the name is not already Quoted. So if the name passed
+ in is "name then it will return """name". It escapes the first char
+ - the " with "" and encloses the escaped string with OpenQuote and CloseQuote.
+
+
+
+
+
+ Quotes a name for being used as a aliasname
+
+ Original implementation calls
+ Name of the alias
+ A Quoted name in the format of OpenQuote + aliasName + CloseQuote
+
+
+ If the aliasName is already enclosed in the OpenQuote and CloseQuote then this
+ method will return the aliasName that was passed in without going through any
+ Quoting process. So if aliasName is passed in already Quoted make sure that
+ you have escaped all of the chars according to your DataBase's specifications.
+
+
+
+
+
+ Quotes a name for being used as a columnname
+
+ Original implementation calls
+ Name of the column
+ A Quoted name in the format of OpenQuote + columnName + CloseQuote
+
+
+ If the columnName is already enclosed in the OpenQuote and CloseQuote then this
+ method will return the columnName that was passed in without going through any
+ Quoting process. So if columnName is passed in already Quoted make sure that
+ you have escaped all of the chars according to your DataBase's specifications.
+
+
+
+
+
+ Quotes a name for being used as a tablename
+
+ Name of the table
+ A Quoted name in the format of OpenQuote + tableName + CloseQuote
+
+
+ If the tableName is already enclosed in the OpenQuote and CloseQuote then this
+ method will return the tableName that was passed in without going through any
+ Quoting process. So if tableName is passed in already Quoted make sure that
+ you have escaped all of the chars according to your DataBase's specifications.
+
+
+
+
+
+ Quotes a name for being used as a schemaname
+
+ Name of the schema
+ A Quoted name in the format of OpenQuote + schemaName + CloseQuote
+
+
+ If the schemaName is already enclosed in the OpenQuote and CloseQuote then this
+ method will return the schemaName that was passed in without going through any
+ Quoting process. So if schemaName is passed in already Quoted make sure that
+ you have escaped all of the chars according to your DataBase's specifications.
+
+
+
+
+
+ Unquotes and unescapes an already quoted name
+
+ Quoted string
+ Unquoted string
+
+
+ This method checks the string quoted to see if it is
+ quoted. If the string quoted is already enclosed in the OpenQuote
+ and CloseQuote then those chars are removed.
+
+
+ After the OpenQuote and CloseQuote have been cleaned from the string quoted
+ then any chars in the string quoted that have been escaped by doubling them
+ up are changed back to a single version.
+
+
+ The following quoted values return these results
+ "quoted" = quoted
+ "quote""d" = quote"d
+ quote""d = quote"d
+
+
+ If this implementation is not sufficient for your Dialect then it needs to be overridden.
+ MsSql2000Dialect is an example of where UnQuoting rules are different.
+
+
+
+
+
+ Unquotes an array of Quoted Names.
+
+ strings to Unquote
+ an array of unquoted strings.
+
+ This use UnQuote(string) for each string in the quoted array so
+ it should not need to be overridden - only UnQuote(string) needs
+ to be overridden unless this implementation is not sufficient.
+
+
+
+
+ Given a type code, determine an appropriate
+ null value to use in a select clause.
+
+ The type code.
+ The appropriate select clause value fragment.
+
+ One thing to consider here is that certain databases might
+ require proper casting for the nulls here since the select here
+ will be part of a UNION/UNION ALL.
+
+
+
+
+ Build an instance of the preferred by this dialect for
+ converting into NHibernate's ADOException hierarchy.
+
+ The Dialect's preferred .
+
+ The default Dialect implementation simply returns a converter based on X/Open SQLState codes.
+
+ It is strongly recommended that specific Dialect implementations override this
+ method, since interpretation of a SQL error is much more accurate when based on
+ the ErrorCode rather than the SQLState. Unfortunately, the ErrorCode is a vendor-specific approach.
+
+
+
+
+ Retrieve a set of default Hibernate properties for this database.
+
+
+
+
+ Aggregate SQL functions as defined in general. This is
+ a case-insensitive hashtable!
+
+
+ The results of this method should be integrated with the
+ specialization's data.
+
+
+
+
+ The class (which implements )
+ which acts as this dialects native generation strategy.
+
+ The native generator class.
+
+ Comes into play whenever the user specifies the native generator.
+
+
+
+
+ The keyword used to insert a generated value into an identity column (or null).
+ Need if the dialect does not support inserts that specify no column values.
+
+
+
+ Get the select command used retrieve the names of all sequences.
+ The select command; or null if sequences are not supported.
+
+
+
+ Get the command used to select a GUID from the underlying database.
+ (Optional operation.)
+
+ The appropriate command.
+
+
+ Command used to create a table.
+
+
+
+ Slight variation on .
+ The command used to create a multiset table.
+
+
+ Here, we have the command used to create a table when there is no primary key and
+ duplicate rows are expected.
+
+ Most databases do not care about the distinction; originally added for
+ Teradata support which does care.
+
+
+
+ Command used to create a temporary table.
+
+
+
+ Get any fragments needing to be postfixed to the command for
+ temporary table creation.
+
+
+
+
+ Should the value returned by
+ be treated as callable. Typically this indicates that JDBC escape
+ sytnax is being used...
+
+
+
+
+ Retrieve the command used to retrieve the current timestammp from the database.
+
+
+
+
+ The name of the database-specific SQL function for retrieving the
+ current timestamp.
+
+
+
+
+ The keyword used to insert a row without specifying any column values
+
+
+
+
+ The name of the SQL function that transforms a string to lowercase
+
+
+
+
+ The syntax used to add a column to a table. Note this is deprecated
+
+
+
+
+ The keyword used to specify a nullable column
+
+
+
+
+ Completely optional cascading drop clause
+
+
+
+
+ Does this dialect support the ALTER TABLE syntax?
+
+
+
+
+ Do we need to drop constraints before dropping tables in the dialect?
+
+
+
+
+ Do we need to qualify index names with the schema name?
+
+
+
+
+ Does this dialect support the UNIQUE column syntax?
+
+
+
+ Does this dialect support adding Unique constraints via create and alter table ?
+
+
+
+ Does the dialect support the syntax 'drop table if exists NAME'
+
+
+
+
+ Does the dialect support the syntax 'drop table NAME if exists'
+
+
+
+ Does this dialect support column-level check constraints?
+ True if column-level CHECK constraints are supported; false otherwise.
+
+
+ Does this dialect support table-level check constraints?
+ True if table-level CHECK constraints are supported; false otherwise.
+
+
+
+ Get the string to append to SELECT statements to acquire locks
+ for this dialect.
+
+ The appropriate FOR UPDATE clause string.
+
+
+ Is FOR UPDATE OF syntax supported?
+ True if the database supports FOR UPDATE OF syntax; false otherwise.
+
+
+
+ Does this dialect support FOR UPDATE in conjunction with outer joined rows?
+
+ True if outer joined rows can be locked via FOR UPDATE.
+
+
+
+ Retrieves the FOR UPDATE NOWAIT syntax specific to this dialect
+
+ The appropriate FOR UPDATE NOWAIT clause string.
+
+
+ Does this dialect support temporary tables?
+
+
+ Does this dialect support a way to retrieve the database's current timestamp value?
+
+
+
+ Gives the best resolution that the database can use for storing
+ date/time values, in ticks.
+
+
+
+ For example, if the database can store values with 100-nanosecond
+ precision, this property is equal to 1L. If the database can only
+ store values with 1-millisecond precision, this property is equal
+ to 10000L (number of ticks in a millisecond).
+
+
+ Used in TimestampType.
+
+
+
+
+
+ Does this dialect support subselects?
+
+
+
+
+ How we seperate the queries when we use multiply queries.
+
+
+
+
+ Does this dialect support identity column key generation?
+
+
+
+
+ Does the dialect support some form of inserting and selecting
+ the generated IDENTITY value all in the same statement.
+
+
+
+
+ Whether this dialect has an identity clause added to the data type or a
+ completely seperate identity data type.
+
+
+
+
+ Get the select command to use to retrieve the last generated IDENTITY value.
+
+ The appropriate select command
+
+
+
+ The keyword used to specify an identity column, if native key generation is supported
+
+
+
+
+ Does this dialect support sequences?
+
+
+
+
+ Does this dialect support "pooled" sequences. Not aware of a better
+ name for this. Essentially can we specify the initial and increment values?
+
+ True if such "pooled" sequences are supported; false otherwise.
+
+
+
+
+
+ Does this Dialect have some kind of LIMIT syntax?
+
+ False, unless overridden.
+
+
+
+ Does this Dialect support an offset?
+
+
+
+
+ Can parameters be used for a statement containing a LIMIT?
+
+
+
+
+ Does the LIMIT clause specify arguments in the "reverse" order
+ limit, offset instead of offset, limit?
+
+ False, unless overridden.
+ Inheritors should return true if the correct order is limit, offset
+
+
+
+ Does the LIMIT clause come at the start of the
+ SELECT statement rather than at the end?
+
+ false, unless overridden
+
+
+
+ Does the LIMIT clause take a "maximum" row number instead
+ of a total number of returned rows?
+
+ True if limit is relative from offset; false otherwise.
+
+ This is easiest understood via an example. Consider you have a table
+ with 20 rows, but you only want to retrieve rows number 11 through 20.
+ Generally, a limit with offset would say that the offset = 11 and the
+ limit = 10 (we only want 10 rows at a time); this is specifying the
+ total number of returned rows. Some dialects require that we instead
+ specify offset = 11 and limit = 20, where 20 is the "last" row we want
+ relative to offset (i.e. total number of rows = 20 - 11 = 9)
+ So essentially, is limit relative from offset? Or is limit absolute?
+
+
+
+
+ The opening quote for a quoted identifier.
+
+
+
+
+ The closing quote for a quoted identifier.
+
+
+
+
+ Does this dialect support UNION ALL, which is generally a faster variant of UNION?
+ True if UNION ALL is supported; false otherwise.
+
+
+
+
+ Does this dialect support empty IN lists?
+ For example, is [where XYZ in ()] a supported construct?
+
+ True if empty in lists are supported; false otherwise.
+
+
+
+ Are string comparisons implicitly case insensitive.
+ In other words, does [where 'XYZ' = 'xyz'] resolve to true?
+
+ True if comparisons are case insensitive.
+
+
+
+ Is this dialect known to support what ANSI-SQL terms "row value
+ constructor" syntax; sometimes called tuple syntax.
+
+ Basically, does it support syntax like
+ "... where (FIRST_NAME, LAST_NAME) = ('Steve', 'Ebersole') ...".
+
+
+ True if this SQL dialect is known to support "row value
+ constructor" syntax; false otherwise.
+
+
+
+
+ If the dialect supports {@link #supportsRowValueConstructorSyntax() row values},
+ does it offer such support in IN lists as well?
+
+ For example, "... where (FIRST_NAME, LAST_NAME) IN ( (?, ?), (?, ?) ) ..."
+
+
+ True if this SQL dialect is known to support "row value
+ constructor" syntax in the IN list; false otherwise.
+
+
+
+
+ Should LOBs (both BLOB and CLOB) be bound using stream operations (i.e.
+ {@link java.sql.PreparedStatement#setBinaryStream}).
+
+ True if BLOBs and CLOBs should be bound using stream operations.
+
+
+
+ Does this dialect support parameters within the select clause of
+ INSERT ... SELECT ... statements?
+
+ True if this is supported; false otherwise.
+
+
+
+ Does this dialect support asking the result set its positioning
+ information on forward only cursors. Specifically, in the case of
+ scrolling fetches, Hibernate needs to use
+ {@link java.sql.ResultSet#isAfterLast} and
+ {@link java.sql.ResultSet#isBeforeFirst}. Certain drivers do not
+ allow access to these methods for forward only cursors.
+
+ NOTE : this is highly driver dependent!
+
+
+ True if methods like {@link java.sql.ResultSet#isAfterLast} and
+ {@link java.sql.ResultSet#isBeforeFirst} are supported for forward
+ only cursors; false otherwise.
+
+
+
+
+ Does this dialect support definition of cascade delete constraints
+ which can cause circular chains?
+
+ True if circular cascade delete constraints are supported; false otherwise.
+
+
+
+ Are subselects supported as the left-hand-side (LHS) of
+ IN-predicates.
+
+ In other words, is syntax like "... {subquery} IN (1, 2, 3) ..." supported?
+
+ True if subselects can appear as the LHS of an in-predicate;false otherwise.
+
+
+
+ Expected LOB usage pattern is such that I can perform an insert
+ via prepared statement with a parameter binding for a LOB value
+ without crazy casting to JDBC driver implementation-specific classes...
+
+ Part of the trickiness here is the fact that this is largely
+ driver dependent. For example, Oracle (which is notoriously bad with
+ LOB support in their drivers historically) actually does a pretty good
+ job with LOB support as of the 10.2.x versions of their drivers...
+
+
+ True if normal LOB usage patterns can be used with this driver;
+ false if driver-specific hookiness needs to be applied.
+
+
+
+ Does the dialect support propogating changes to LOB
+ values back to the database? Talking about mutating the
+ internal value of the locator as opposed to supplying a new
+ locator instance...
+
+ For BLOBs, the internal value might be changed by:
+ {@link java.sql.Blob#setBinaryStream},
+ {@link java.sql.Blob#setBytes(long, byte[])},
+ {@link java.sql.Blob#setBytes(long, byte[], int, int)},
+ or {@link java.sql.Blob#truncate(long)}.
+
+ For CLOBs, the internal value might be changed by:
+ {@link java.sql.Clob#setAsciiStream(long)},
+ {@link java.sql.Clob#setCharacterStream(long)},
+ {@link java.sql.Clob#setString(long, String)},
+ {@link java.sql.Clob#setString(long, String, int, int)},
+ or {@link java.sql.Clob#truncate(long)}.
+
+ NOTE : I do not know the correct answer currently for
+ databases which (1) are not part of the cruise control process
+ or (2) do not {@link #supportsExpectedLobUsagePattern}.
+
+ True if the changes are propogated back to the database; false otherwise.
+
+
+
+ Is it supported to materialize a LOB locator outside the transaction in
+ which it was created?
+
+ Again, part of the trickiness here is the fact that this is largely
+ driver dependent.
+
+ NOTE: all database I have tested which {@link #supportsExpectedLobUsagePattern()}
+ also support the ability to materialize a LOB outside the owning transaction...
+
+ True if unbounded materialization is supported; false otherwise.
+
+
+
+ Does this dialect support referencing the table being mutated in
+ a subquery. The "table being mutated" is the table referenced in
+ an UPDATE or a DELETE query. And so can that table then be
+ referenced in a subquery of said UPDATE/DELETE query.
+
+ For example, would the following two syntaxes be supported:
+
delete from TABLE_A where ID not in ( select ID from TABLE_A )
+
update TABLE_A set NON_ID = 'something' where ID in ( select ID from TABLE_A)
+
+
+ True if this dialect allows references the mutating table from a subquery.
+
+
+ Does the dialect support an exists statement in the select clause?
+ True if exists checks are allowed in the select clause; false otherwise.
+
+
+
+ For the underlying database, is READ_COMMITTED isolation implemented by
+ forcing readers to wait for write locks to be released?
+
+ True if writers block readers to achieve READ_COMMITTED; false otherwise.
+
+
+
+ For the underlying database, is REPEATABLE_READ isolation implemented by
+ forcing writers to wait for read locks to be released?
+
+ True if readers block writers to achieve REPEATABLE_READ; false otherwise.
+
+
+
+ Does this dialect support using a JDBC bind parameter as an argument
+ to a function or procedure call?
+
+ True if the database supports accepting bind params as args; false otherwise.
+
+
+
+ Defines a contract for implementations that can extract the name of a violated
+ constraint from a SQLException that is the result of that constraint violation.
+
+
+
+
+ Extract the name of the violated constraint from the given SQLException.
+
+ The exception that was the result of the constraint violation.
+ The extracted constraint name.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Add a LIMIT clause to the given SQL SELECT
+
+ A Query in the form of a SqlString.
+ Offset of the first row is not zero
+ A new SqlString that contains the LIMIT clause.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Summary description for FirebirdDialect.
+
+
+ The FirebirdDialect defaults the following configuration properties:
+
+
+ Property
+ Default Value
+
+
+ connection.driver_class
+
+
+
+
+
+
+
+ Add a FIRST x [SKIP] y clause to the given SQL SELECT
+
+ A Query in the form of a SqlString.
+ Maximum number of rows to be returned by the query
+ Offset of the first row to process in the result set
+ A new SqlString that contains the FIRST clause.
+
+
+
+
+
+
+ A generic SQL dialect which may or may not work on any actual databases
+
+
+
+
+
+
+
+
+
+
+ Summary description for InformixDialect.
+
+
+ The InformixDialect defaults the following configuration properties:
+
+
+ Property
+ Default Value
+
+
+ connection.driver_class
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The syntax that returns the identity value of the last insert, if native
+ key generation is supported
+
+
+
+
+ The keyword used to specify an identity column, if native key generation is supported
+
+
+
+
+ Whether this dialect have an Identity clause added to the data type or a
+ completely seperate identity data type
+
+
+
+
+ An SQL dialect for IngresSQL.
+
+
+ The IngresDialect defaults the following configuration properties:
+
+
+ Property
+ Default Value
+
+
+ use_outer_join
+
+
+
+ connection.driver_class
+
+
+
+
+
+
+
+ An SQL dialect compatible with Microsoft SQL Server 2000.
+
+
+ The MsSql2000Dialect defaults the following configuration properties:
+
+
+ Property
+ Default Value
+
+
+ use_outer_join
+
+
+
+ connection.driver_class
+
+
+
+ prepare_sql
+
+
+
+
+
+
+
+
+
+
+ Generates the string to drop the table using SQL Server syntax.
+
+ The name of the table to drop.
+ The SQL with the inserted.
+
+
+
+ Add a LIMIT (TOP) clause to the given SQL SELECT
+
+ A Query in the form of a SqlString.
+ Maximum number of rows to be returned by the query
+ Offset of the first row to process in the result set
+ A new SqlString that contains the LIMIT clause.
+
+
+
+
+
+
+
+
+ MsSql does not require the OpenQuote to be escaped as long as the first char
+ is an OpenQuote.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Does this Dialect have some kind of LIMIT syntax?
+
+ True, we'll use the SELECT TOP nn syntax.
+
+
+
+ Does this Dialect support an offset?
+
+
+
+
+ Can parameters be used for a statement containing a LIMIT?
+
+
+
+
+ Does the LIMIT clause take a "maximum" row number
+ instead of a total number of returned rows?
+
+ false, unless overridden
+
+
+
+ Add a LIMIT clause to the given SQL SELECT
+
+ The to base the limit query off of.
+ Offset of the first row to be returned by the query (zero-based)
+ Maximum number of rows to be returned by the query
+ A new with the LIMIT clause applied.
+
+ The LIMIT SQL will look like
+
+
+ SELECT TOP last (columns) FROM (
+ SELECT ROW_NUMBER() OVER(ORDER BY __hibernate_sort_expr_1__ {sort direction 1} [, __hibernate_sort_expr_2__ {sort direction 2}, ...]) as row, (query.columns) FROM (
+ {original select query part}, {sort field 1} as __hibernate_sort_expr_1__ [, {sort field 2} as __hibernate_sort_expr_2__, ...]
+ {remainder of original query minus the order by clause}
+ ) query
+ ) page WHERE page.row > offset
+
+
+
+ Note that we need to add explicitly specify the columns, because we need to be able to use them
+ in a paged subselect. NH-1155
+
+
+
+
+ Sql Server 2005 supports a query statement that provides LIMIT
+ functionality.
+
+ true
+
+
+
+ Sql Server 2005 supports a query statement that provides LIMIT
+ functionality with an offset.
+
+ true
+
+
+
+ Sql Server 2005 supports a query statement that provides LIMIT
+ functionality with an offset.
+
+ false
+
+
+
+ This specialized string tokenizier will break a string to tokens, taking
+ into account single quotes, parenthesis and commas and [ ]
+ Notice that we aren't differenciating between [ ) and ( ] on purpose, it would complicate
+ the code and it is not legal at any rate.
+
+
+
+
+ An SQL dialect compatible with Microsoft SQL Server 7.
+
+
+ There have been no test run with this because the NHibernate team does not
+ have a machine with Sql 7 installed on it. But there have been users using
+ Ms Sql 7 with NHibernate. As issues with Ms Sql 7 and NHibernate become known
+ this Dialect will be updated.
+
+
+
+
+ Uses @@identity to get the Id value.
+
+
+ There is a well known problem with @@identity and triggers that insert into
+ rows into other tables that also use an identity column. The only way I know
+ of to get around this problem is to upgrade your database server to Ms Sql 2000.
+
+
+
+
+ A dialect for SQL Server Everywhere (SQL Server CE).
+
+
+
+
+ A SQL dialect for MySQL
+
+
+ The MySQLDialect defaults the following configuration properties:
+
+
+ Property
+ Default Value
+
+
+ use_outer_join
+
+
+
+ connection.driver_class
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Create the SQL string to drop a foreign key constraint.
+
+ The name of the foreign key to drop.
+ The SQL string to drop the foreign key constraint.
+
+
+
+ Create the SQL string to drop a primary key constraint.
+
+ The name of the primary key to drop.
+ The SQL string to drop the primary key constraint.
+
+
+
+ Create the SQL string to drop an index.
+
+ The name of the index to drop.
+ The SQL string to drop the index constraint.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ It's a immature version, it just work.
+ An SQL dialect for Oracle 9
+
+
+ The Oracle9Dialect defaults the following configuration properties:
+
+
+ Property
+ Default Value
+
+
+ use_outer_join
+
+
+
+ connection.driver_class
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ An SQL dialect for Oracle, compatible with Oracle 8.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ An SQL dialect for PostgreSQL 8.1 and above.
+
+
+
+ PostgreSQL 8.1 supports FOR UPDATE ... NOWAIT syntax.
+
+
+ PostgreSQL supports Identity column using the "SERIAL" type.
+ Serial type is a "virtual" type that will automatically:
+
+
+ Create a sequence named tablename_colname_seq.
+ Set the default value of this column to the next value of the
+ sequence. (using function nextval('tablename_colname_seq'))
+ Add a "NOT NULL" constraint to this column.
+ Set the sequence as "owned by" the table.
+
+
+ To insert the next value of the sequence into the serial column,
+ exclude the column from the list of columns
+ in the INSERT statement or use the DEFAULT key word.
+
+
+ If the table or the column is dropped, the sequence is dropped too.
+
+
+
+
+
+
+ An SQL dialect for PostgreSQL.
+
+
+ The PostgreSQLDialect defaults the following configuration properties:
+
+
+ Property
+ Default Value
+
+
+ use_outer_join
+
+
+
+ connection.driver_class
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Offset of the first row to process in the result set is non-zero
+
+
+
+ PostgreSQL requires to cast NULL values to correctly handle UNION/UNION ALL
+
+ See
+ PostgreSQL BUG #1847: Error in some kind of UNION query.
+
+ The type code.
+ null casted as : "null::sqltypename"
+
+
+
+
+
+
+
+
+ PostgreSQL supports UNION ALL clause
+
+ Reference:
+ PostgreSQL 8.0 UNION Clause documentation
+
+
+
+
+
+ PostgreSQL supports serial and serial4 type for 4 bytes integer auto increment column.
+ bigserial or serial8 can be used for 8 bytes integer auto increment column.
+
+ bigserial if equal Int64,
+ serial otherwise
+
+
+
+ PostgreSQL supports Identity column using the "SERIAL" type.
+
+
+
+
+ PostgreSQL doesn't have type in identity column.
+
+
+ To create an identity column it uses the SQL syntax
+ CREATE TABLE tablename (colname SERIAL); or
+ CREATE TABLE tablename (colname BIGSERIAL);
+
+
+
+
+ The sql syntax to insert a row without specifying any column in PostgreSQL is
+ INSERT INTO table DEFAULT VALUES;
+
+
+
+
+ PostgreSQL 8.1 and above defined the fuction lastval() that returns the
+ value of the last sequence that nextval() was used on in the current session.
+ Call lastval() if nextval() has not yet been called in the current
+ session throw an exception.
+
+
+
+
+ An SQL dialect for PostgreSQL 8.2 and above.
+
+
+ PostgreSQL 8.2 supports DROP TABLE IF EXISTS tablename
+ and DROP SEQUENCE IF EXISTS sequencename syntax.
+ See for more information.
+
+
+
+
+ A SQL dialect for SQLite.
+
+
+
+
+
+
+
+
+
+
+
+
+ Add a LIMIT N clause to the given SQL SELECT
+
+ A Query in the form of a SqlString.
+ Maximum number of rows to be returned by the query
+ Offset of the first row to process in the result set
+ A new SqlString that contains the LIMIT clause.
+
+
+
+ This is a subclass of SybaseDialect for sybase 11 databases (specifically tested against 11.9.2). 11.9.2 does not support ANSI JOINs
+ therefore we have to provide a special join fragment for left/right joins (*= and =* respectively).
+
+
+
+
+ An SQL dialect compatible with Sybase.
+
+
+
+ This dialect probably will not work with schema-export. If anyone out there
+ can fill in the ctor with DbTypes to Strings that would be helpful.
+
+ The SybaseDialect defaults the following configuration properties:
+
+
+ Property
+ Default Value
+
+
+ use_outer_join
+
+
+
+ connection.driver_class
+
+
+
+ prepare_sql
+
+
+
+
+
+
+
+
+
+
+ Sybase does not support quoted aliases, this function thus returns
+ aliasName as is.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This class is basically a port of the hibernate 3.2 Sybase 11 join fragment. It uses concepts from that join fragment and the Oracle join fragment in NHibernate
+
+
+
+
+ Represents a SQL JOIN
+
+
+
+
+ An SQL dialect for Sybase Adaptive Server Anywhere 9.0/10.0
+
+
+
+ This dialect probably will not work with schema-export. If anyone out there
+ can fill in the ctor with DbTypes to Strings that would be helpful.
+
+ The SybaseAnywhereDialect defaults the following configuration properties:
+
+
+ Property
+ Default Value
+
+
+ use_outer_join
+
+
+
+ connection.driver_class
+
+
+
+ prepare_sql
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ASA does not require to drop constraint before dropping tables, and DROP statement
+ syntax used by Hibernate to drop constraint is not compatible with ASA, so disable it.
+ Comments matchs SybaseAnywhereDialect from Hibernate-3.1 src
+
+
+
+
+ This class maps a DbType to names.
+
+
+ Associations may be marked with a capacity. Calling the Get()
+ method with a type and actual size n will return the associated
+ name with smallest capacity >= n, if available and an unmarked
+ default type otherwise.
+ Eg, setting
+
+ Names.Put(DbType, "TEXT" );
+ Names.Put(DbType, 255, "VARCHAR($l)" );
+ Names.Put(DbType, 65534, "LONGVARCHAR($l)" );
+
+ will give you back the following:
+
+ Names.Get(DbType) // --> "TEXT" (default)
+ Names.Get(DbType,100) // --> "VARCHAR(100)" (100 is in [0:255])
+ Names.Get(DbType,1000) // --> "LONGVARCHAR(1000)" (100 is in [256:65534])
+ Names.Get(DbType,100000) // --> "TEXT" (default)
+
+ On the other hand, simply putting
+
+ Names.Put(DbType, "VARCHAR($l)" );
+
+ would result in
+
+ Names.Get(DbType) // --> "VARCHAR($l)" (will cause trouble)
+ Names.Get(DbType,100) // --> "VARCHAR(100)"
+ Names.Get(DbType,1000) // --> "VARCHAR(1000)"
+ Names.Get(DbType,10000) // --> "VARCHAR(10000)"
+
+
+
+
+
+ Get default type name for specified type
+
+ the type key
+ the default type name associated with the specified key
+
+
+
+ Get the type name specified type and size
+
+ the type key
+ the SQL length
+ the SQL scale
+ the SQL precision
+
+ The associated name with smallest capacity >= size if available and the
+ default type name otherwise
+
+
+
+
+ Set a type name for specified type key and capacity
+
+ the type key
+ the (maximum) type size/length
+ The associated name
+
+
+
+
+
+
+
+
+
+
+ The ASAClientDriver Driver provides a database driver for Adaptive Server Anywhere 10.0.
+
+
+
+
+ Base class for the implementation of IDriver
+
+
+
+
+ A strategy for describing how NHibernate should interact with the different .NET Data
+ Providers.
+
+
+
+ The IDriver interface is not intended to be exposed to the application.
+ Instead it is used internally by NHibernate to obtain connection objects, command objects, and
+ to generate and prepare IDbCommands. Implementors should provide a
+ public default constructor.
+
+
+ This is the interface to implement, or you can inherit from
+ if you have an ADO.NET data provider that NHibernate does not have built in support for.
+ To use the driver, NHibernate property connection.driver_class should be
+ set to the assembly-qualified name of the driver class.
+
+
+ key="connection.driver_class"
+ value="FullyQualifiedClassName, AssemblyName"
+
+
+
+
+
+ Configure the driver using .
+
+
+
+
+ Creates an uninitialized IDbConnection object for the specific Driver
+
+
+
+
+ Generates an IDbCommand from the SqlString according to the requirements of the DataProvider.
+
+ The of the command to generate.
+ The SqlString that contains the SQL.
+ The types of the parameters to generate for the command.
+ An IDbCommand with the CommandText and Parameters fully set.
+
+
+
+ Prepare the by calling .
+ May be a no-op if the driver does not support preparing commands, or for any other reason.
+
+
+
+
+
+ Does this Driver support having more than 1 open IDataReader with
+ the same IDbConnection.
+
+
+
+ A value of indicates that an exception would be thrown if NHibernate
+ attempted to have 2 IDataReaders open using the same IDbConnection. NHibernate
+ (since this version is a close to straight port of Hibernate) relies on the
+ ability to recursively open 2 IDataReaders. If the Driver does not support it
+ then NHibernate will read the values from the IDataReader into an .
+
+
+ A value of will result in greater performance because an IDataReader can be used
+ instead of the . So if the Driver supports it then make sure
+ it is set to .
+
+
+
+
+
+ Can we issue several select queries in a single query, and get
+ several result sets back?
+
+
+
+
+ Change the parameterName into the correct format IDbCommand.CommandText
+ for the ConnectionProvider
+
+ The unformatted name of the parameter
+ A parameter formatted for an IDbCommand.CommandText
+
+
+
+ Changes the parameterName into the correct format for an IDbParameter
+ for the Driver.
+
+
+ For SqlServerConnectionProvider it will change id to @id
+
+ The unformatted name of the parameter
+ A parameter formatted for an IDbParameter.
+
+
+
+ Generates an IDbDataParameter for the IDbCommand. It does not add the IDbDataParameter to the IDbCommand's
+ Parameter collection.
+
+ The IDbCommand to use to create the IDbDataParameter.
+ The name to set for IDbDataParameter.Name
+ The SqlType to set for IDbDataParameter.
+ An IDbDataParameter ready to be added to an IDbCommand.
+
+
+
+ Does this Driver require the use of a Named Prefix in the SQL statement.
+
+
+ For example, SqlClient requires select * from simple where simple_id = @simple_id
+ If this is false, like with the OleDb provider, then it is assumed that
+ the ? can be a placeholder for the parameter in the SQL statement.
+
+
+
+
+ Does this Driver require the use of the Named Prefix when trying
+ to reference the Parameter in the Command's Parameter collection.
+
+
+ This is really only useful when the UseNamedPrefixInSql == true. When this is true the
+ code will look like:
+ IDbParameter param = cmd.Parameters["@paramName"]
+ if this is false the code will be
+ IDbParameter param = cmd.Parameters["paramName"].
+
+
+
+
+ The Named Prefix for parameters.
+
+
+ Sql Server uses "@" and Oracle uses ":".
+
+
+
+
+ Does this Driver support IDbCommand.Prepare().
+
+
+
+ A value of indicates that an exception would be thrown or the
+ company that produces the Driver we are wrapping does not recommend using
+ IDbCommand.Prepare().
+
+
+ A value of indicates that calling IDbCommand.Prepare() will function
+ fine on this Driver.
+
+
+
+
+
+ Initializes a new instance of with
+ type names that are loaded from the specified assembly.
+
+ Assembly to load the types from.
+ Connection type name.
+ Command type name.
+
+
+
+ Initializes a new instance of the class.
+
+
+ Thrown when the iAnywhere.Data.SQLAnywhere assembly is not and can not be loaded.
+
+
+
+
+ iAnywhere.Data.SQLAnywhere uses named parameters in the sql.
+
+ - Sybase uses String.Empty in the sql.
+
+
+
+ iAnywhere.Data.SQLAnywhere use the string.Empty to locate parameters in sql.
+
+
+
+
+ The ASAClientDriver Driver provides a database driver for Adaptive Server Anywhere 9.0.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Thrown when the ASA.Data.AsaClient assembly is not and can not be loaded.
+
+
+
+
+ iAnywhere.Data.AsaClient uses named parameters in the sql.
+
+ - Sybase uses String.Empty in the sql.
+
+
+
+ iAnywhere.Data.AsaClient use the string.Empty to locate parameters in sql.
+
+
+
+
+ A NHibernate Driver for using the IBM.Data.DB2.iSeries DataProvider.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Thrown when the IBM.Data.DB2.iSeries assembly can not be loaded.
+
+
+
+
+ A NHibernate Driver for using the IBM.Data.DB2 DataProvider.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Thrown when the IBM.Data.DB2 assembly can not be loaded.
+
+
+
+
+ A NHibernate Driver for using the Firebird data provider located in
+ FirebirdSql.Data.FirebirdClient assembly.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Thrown when the FirebirdSql.Data.Firebird assembly can not be loaded.
+
+
+
+
+ A NHibernate Driver for using the FirebirdSql.Data.Firebird DataProvider.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Thrown when the FirebirdSql.Data.Firebird assembly can not be loaded.
+
+
+
+
+ A NHibernate Driver for using the Ingres DataProvider
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Provides a database driver for MySQL.
+
+
+
+ In order to use this driver you must have the assembly MySql.Data.dll available for
+ NHibernate to load, including its dependencies (ICSharpCode.SharpZipLib.dll is required by
+ the assembly MySql.Data.dll as of the time of this writing).
+
+
+ Please check the product's website
+ for any updates and/or documentation regarding MySQL.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Thrown when the MySql.Data assembly can not be loaded.
+
+
+
+
+ MySql.Data uses named parameters in the sql.
+
+ - MySql uses ? in the sql.
+
+
+
+
+
+
+ MySql.Data use the ? to locate parameters in sql.
+
+ ? is used to locate parameters in sql.
+
+
+
+ The MySql.Data driver does NOT support more than 1 open IDataReader
+ with only 1 IDbConnection.
+
+ - it is not supported.
+
+
+
+ MySql.Data does not support preparing of commands.
+
+ - it is not supported.
+
+ With the Gamma MySql.Data provider it is throwing an exception with the
+ message "Expected End of data packet" when a select command is prepared.
+
+
+
+
+ Some Data Providers (ie - SqlClient) do not support Multiple Active Result Sets (MARS).
+ NHibernate relies on being able to create MARS to read Components and entities inside
+ of Collections.
+
+
+ This is a completely off-line DataReader - the underlying IDataReader that was used to create
+ this has been closed and no connections to the Db exists.
+
+
+
+
+ Creates a NDataReader from a
+
+ The to get the records from the Database.
+ if we are loading the in the middle of reading it.
+
+ NHibernate attempts to not have to read the contents of an into memory until it absolutely
+ has to. What that means is that it might have processed some records from the and will
+ pick up the midstream so that the underlying can be closed
+ so a new one can be opened.
+
+
+
+
+ Sets the values that can be cached back to null and sets the
+ index of the cached column to -1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Takes care of freeing the managed and unmanaged resources that
+ this class is responsible for.
+
+
+ There are not any unmanaged resources or any disposable managed
+ resources that this class is holding onto. It is in here
+ to comply with the interface.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Stores a Result from a DataReader in memory.
+
+
+
+
+ Initializes a new instance of the NResult class.
+
+ The IDataReader to populate the Result with.
+
+ if the is already positioned on the record
+ to start reading from.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ An implementation of that will work with either an
+ returned by Execute or with an
+ whose contents have been read into a .
+
+
+
+ This allows NHibernate to use the underlying for as long as
+ possible without the need to read everything into the .
+
+
+ The consumer of the returned from does
+ not need to know the underlying reader and can use it the same even if it switches from an
+ to in the middle of its use.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying IDataReader to use.
+
+
+
+ Initializes a new instance of the NHybridDataReader class.
+
+ The underlying IDataReader to use.
+ if the contents of the IDataReader should be read into memory right away.
+
+
+
+ Reads all of the contents into memory because another
+ needs to be opened.
+
+
+ This will result in a no op if the reader is closed or is already in memory.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A flag to indicate if Disose() has been called.
+
+
+
+
+ Finalizer that ensures the object is correctly disposed of.
+
+
+
+
+ Takes care of freeing the managed and unmanaged resources that
+ this class is responsible for.
+
+
+
+
+ Takes care of freeing the managed and unmanaged resources that
+ this class is responsible for.
+
+ Indicates if this NHybridDataReader is being Disposed of or Finalized.
+
+ If this NHybridDataReader is being Finalized (isDisposing==false) then make sure not
+ to call any methods that could potentially bring this NHybridDataReader back to life.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets if the object is in the middle of reading a Result.
+
+ if NextResult and Read have been called on the .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The PostgreSQL data provider provides a database driver for PostgreSQL.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Thrown when the Npgsql assembly can not be loaded.
+
+
+
+
+ A NHibernate Driver for using the Odbc DataProvider
+
+
+ Always look for a native .NET DataProvider before using the Odbc DataProvider.
+
+
+
+
+ A NHibernate Driver for using the OleDb DataProvider
+
+
+ Always look for a native .NET DataProvider before using the OleDb DataProvider.
+
+
+
+
+ OLE DB provider does not support multiple open data readers
+
+
+
+
+ A NHibernate Driver for using the Oracle DataProvider.
+
+
+
+
+ A NHibernate Driver for using the Oracle.DataAccess DataProvider
+
+
+ Code was contributed by James Mills
+ on the NHibernate forums in this
+ post.
+
+
+
+
+ Initializes a new instance of .
+
+
+ Thrown when the Oracle.DataAccess assembly can not be loaded.
+
+
+
+
+ This adds logic to ensure that a DbType.Boolean parameter is not created since
+ ODP.NET doesn't support it.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A NHibernate Driver for using the SqlClient DataProvider
+
+
+
+
+ Creates an uninitialized object for
+ the SqlClientDriver.
+
+ An unitialized object.
+
+
+
+ Creates an uninitialized object for
+ the SqlClientDriver.
+
+ An unitialized object.
+
+
+
+ MsSql requires the use of a Named Prefix in the SQL statement.
+
+
+ because MsSql uses "@".
+
+
+
+
+ MsSql requires the use of a Named Prefix in the Parameter.
+
+
+ because MsSql uses "@".
+
+
+
+
+ The Named Prefix for parameters.
+
+
+ Sql Server uses "@".
+
+
+
+
+ The SqlClient driver does NOT support more than 1 open IDataReader
+ with only 1 IDbConnection.
+
+ - it is not supported.
+
+ MS SQL Server 2000 (and 7) throws an exception when multiple IDataReaders are
+ attempted to be opened. When SQL Server 2005 comes out a new driver will be
+ created for it because SQL Server 2005 is supposed to support it.
+
+
+
+
+ NHibernate driver for the System.Data.SQLite data provider for .NET 2.0.
+
+
+
+ In order to use this driver you must have the System.Data.SQLite.dll assembly available
+ for NHibernate to load. This assembly includes the SQLite.dll or SQLite3.dll libraries.
+
+
+ You can get the System.Data.SQLite.dll assembly from http://sourceforge.net/projects/sqlite-dotnet2.
+
+
+
+
+
+ Initializes a new instance of .
+
+
+ Thrown when the SQLite.NET assembly can not be loaded.
+
+
+
+
+ NHibernate driver for the SQLite.NET data provider.
+
+ In order to use this Driver you must have the SQLite.NET.dll Assembly available for NHibernate to load it.
+ You must also have the SQLite.dll and SQLite3.dll libraries.
+
+
+
+
+
+ Initializes a new instance of .
+
+
+ Thrown when the SQLite.NET assembly can not be loaded.
+
+
+
+
+ A NHibernate driver for Microsoft SQL Server CE data provider
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ MsSql requires the use of a Named Prefix in the SQL statement.
+
+
+ because MsSql uses "@".
+
+
+
+
+ MsSql requires the use of a Named Prefix in the Parameter.
+
+
+ because MsSql uses "@".
+
+
+
+
+ The Named Prefix for parameters.
+
+
+ Sql Server uses "@".
+
+
+
+
+ The SqlClient driver does NOT support more than 1 open IDataReader
+ with only 1 IDbConnection.
+
+ - it is not supported.
+
+ Ms Sql 2000 (and 7) throws an Exception when multiple DataReaders are
+ attempted to be Opened. When Yukon comes out a new Driver will be
+ created for Yukon because it is supposed to support it.
+
+
+
+
+ The SybaseClientDriver Driver provides a database driver for Sybase.
+
+
+ It has been reported to work with the .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Thrown when the Sybase.Data.AseClient assembly can not be loaded.
+
+
+
+
+ Sybase.Data.AseClient uses named parameters in the sql.
+
+ - Sybase uses @ in the sql.
+
+
+
+
+
+
+ Sybase.Data.AseClient use the @ to locate parameters in sql.
+
+ @ is used to locate parameters in sql.
+
+
+
+ Represents state associated with the processing of a given
+ in regards to loading collections.
+
+
+ Another implementation option to consider is to not expose ResultSets
+ directly (in the JDBC redesign) but to always "wrap" them and apply a [series of] context[s] to that wrapper.
+
+
+
+
+ Creates a collection load context for the given result set.
+
+ Callback to other collection load contexts.
+ The result set this is "wrapping".
+
+
+
+ Retrieve the collection that is being loaded as part of processing this result set.
+
+ The persister for the collection being requested.
+ The key of the collection being requested.
+ The loading collection (see discussion above).
+
+ Basically, there are two valid return values from this method:
+
an instance of {@link PersistentCollection} which indicates to
+ continue loading the result set row data into that returned collection
+ instance; this may be either an instance already associated and in the
+ midst of being loaded, or a newly instantiated instance as a matching
+ associated collection was not found.
+
null indicates to ignore the corresponding result set row
+ data relating to the requested collection; this indicates that either
+ the collection was found to already be associated with the persistence
+ context in a fully loaded state, or it was found in a loading state
+ associated with another result set processing context.
+
+
+
+
+
+ Finish the process of collection-loading for this bound result set. Mainly this
+ involves cleaning up resources and notifying the collections that loading is
+ complete.
+
+ The persister for which to complete loading.
+
+
+ Add the collection to the second-level cache
+ The entry representing the collection to add
+ The persister
+
+
+
+ Maps to specific contextual data
+ related to processing that .
+
+
+ Implementation note: internally an is used to maintain
+ the mappings; was chosen because I'd rather not be
+ dependent upon potentially bad and
+ implementations.
+ Considering the JDBC-redesign work, would further like this contextual info
+ not mapped separately, but available based on the result set being processed.
+ This would also allow maintaining a single mapping as we could reliably get
+ notification of the result-set closing...
+
+
+
+ Creates and binds this to the given persistence context.
+ The persistence context to which this will be bound.
+
+
+
+ Release internal state associated with the given result set.
+
+ The result set for which it is ok to release associated resources.
+
+ This should be called when we are done with processing said result set,
+ ideally as the result set is being closed.
+
+
+
+ Release internal state associated with *all* result sets.
+
+ This is intended as a "failsafe" process to make sure we get everything
+ cleaned up and released.
+
+
+
+
+ Get the {@link CollectionLoadContext} associated with the given
+ {@link ResultSet}, creating one if needed.
+
+ The result set for which to retrieve the context.
+ The processing context.
+
+
+
+ Attempt to locate the loading collection given the owner's key. The lookup here
+ occurs against all result-set contexts...
+
+ The collection persister
+ The owner key
+ The loading collection, or null if not found.
+
+
+
+ Register a loading collection xref.
+
+ The xref collection key
+ The corresponding loading collection entry
+
+ This xref map is used because sometimes a collection is in process of
+ being loaded from one result set, but needs to be accessed from the
+ context of another "nested" result set processing.
+ Implementation note: package protected, as this is meant solely for use
+ by {@link CollectionLoadContext} to be able to locate collections
+ being loaded by other {@link CollectionLoadContext}s/{@link ResultSet}s.
+
+
+
+
+ The inverse of {@link #registerLoadingCollectionXRef}. Here, we are done
+ processing the said collection entry, so we remove it from the
+ load context.
+
+ The key of the collection we are done processing.
+
+ The idea here is that other loading collections can now reference said
+ collection directly from the {@link PersistenceContext} because it
+ has completed its load cycle.
+ Implementation note: package protected, as this is meant solely for use
+ by {@link CollectionLoadContext} to be able to locate collections
+ being loaded by other {@link CollectionLoadContext}s/{@link ResultSet}s.
+
+
+
+
+ Locate the LoadingCollectionEntry within *any* of the tracked
+ s.
+
+ The collection key.
+ The located entry; or null.
+
+ Implementation note: package protected, as this is meant solely for use
+ by to be able to locate collections
+ being loaded by other s/ResultSets.
+
+
+
+
+ Retrieves the persistence context to which this is bound.
+
+
+
+
+ Do we currently have any internal entries corresponding to loading
+ collections?
+
+ True if we currently hold state pertaining to loading collections; false otherwise.
+
+
+
+ Represents a collection currently being loaded.
+
+
+
+ Describes a return in a native SQL query.
+
+
+
+ Represents a return defined as part of a native sql query which
+ names a collection role in the form {classname}.{collectionrole}; it
+ is used in defining a custom sql query for loading an entity's
+ collection in non-fetching scenarios (i.e., loading the collection
+ itself as the "root" of the result).
+
+
+
+
+ Represents the base information for a non-scalar return defined as part of
+ a native sql query.
+
+
+
+ Constructs some form of non-scalar return descriptor
+ The result alias
+ Any user-supplied column->property mappings
+ The lock mode to apply to the return.
+
+
+ Retrieve the defined result alias
+
+
+ Retrieve the lock-mode to apply to this return
+
+
+ Retrieve the user-supplied column->property mappings.
+
+
+ Construct a native-sql return representing a collection initializer
+ The result alias
+
+ The entity-name of the entity owning the collection to be initialized.
+
+
+ The property name (on the owner) which represents
+ the collection to be initialized.
+
+ Any user-supplied column->property mappings
+ The lock mode to apply to the collection.
+
+
+
+ The class owning the collection.
+
+
+
+
+ The name of the property representing the collection from the .
+
+
+
+
+ Represents a return defined as part of a native sql query which
+ names a fetched role.
+
+
+
+ Construct a return descriptor representing some form of fetch.
+ The result alias
+ The owner's result alias
+ The owner's property representing the thing to be fetched
+ Any user-supplied column->property mappings
+ The lock mode to apply
+
+
+ The alias of the owner of this fetched association.
+
+
+
+ Retrieve the property name (relative to the owner) which maps to
+ the association to be fetched.
+
+
+
+
+ Represents a return defined as part of a native sql query which
+ names a "root" entity. A root entity means it is explicitly a
+ "column" in the result, as opposed to a fetched relationship or role.
+
+
+
+
+ Construct a return representing an entity returned at the root
+ of the result.
+
+ The result alias
+ The entity name.
+ The lock mode to apply
+
+
+
+ Construct a return representing an entity returned at the root
+ of the result.
+
+ The result alias
+ The entity name.
+ Any user-supplied column->property mappings
+ The lock mode to apply
+
+
+ The name of the entity to be returned.
+
+
+ Describes a scalar return in a native SQL query.
+
+
+
+ Extends an HQLQueryPlan to maintain a reference to the collection-role name
+ being filtered.
+
+
+
+ Defines a query execution plan for an HQL query (or filter).
+
+
+ Descriptor regarding a named parameter.
+
+
+
+ Not supported yet (AST parse needed)
+
+
+
+ Defines a query execution plan for a native-SQL query.
+
+
+
+ Bind positional parameter values to the PreparedStatement
+ (these are parameters specified by a JDBC-style ?).
+
+
+
+
+ Bind named parameters to the PreparedStatement. This has an
+ empty implementation on this superclass and should be implemented by
+ subclasses (queries) which allow named parameters.
+
+
+
+ Encapsulates metadata about parameters encountered within a query.
+
+
+
+ The single available method
+ is responsible for parsing a query string and recognizing tokens in
+ relation to parameters (either named, ejb3-style, or ordinal) and
+ providing callbacks about such recognitions.
+
+
+
+
+ Performs the actual parsing and tokenizing of the query string making appropriate
+ callbacks to the given recognizer upon recognition of the various tokens.
+
+
+ Note that currently, this only knows how to deal with a single output
+ parameter (for callable statements). If we later add support for
+ multiple output params, this, obviously, needs to change.
+
+ The string to be parsed/tokenized.
+ The thing which handles recognition events.
+
+
+
+
+ Implements a parameter parser recognizer specifically for the purpose
+ of journaling parameter locations.
+
+
+
+
+ Convenience method for creating a param location recognizer and
+ initiating the parse.
+
+ The query to be parsed for parameter locations.
+ The generated recognizer, with journaled location info.
+
+
+
+ The dictionary of named parameter locations.
+ The dictionary is keyed by parameter name.
+
+
+
+
+ The list of ordinal parameter locations.
+
+
+ The list elements are integers, representing the location for that given ordinal.
+ Thus OrdinalParameterLocationList[n] represents the location for the nth parameter.
+
+
+
+ Defines metadata regarding a translated HQL or native-SQL query.
+
+
+ Get the source HQL or native-SQL query.
+
+
+ Return source query select clause aliases (if any)
+
+
+ An array of types describing the returns of the source query.
+
+
+ The set of query spaces affected by this source query.
+
+
+ Acts as a cache for compiled query plans, as well as query-parameter metadata.
+
+
+
+ Responsible for maintaining the queue of actions related to events.
+
+ The ActionQueue holds the DML operations queued as part of a session's
+ transactional-write-behind semantics. DML operations are queued here
+ until a flush forces them to be executed against the database.
+
+
+
+
+
+ Perform all currently queued entity-insertion actions.
+
+
+
+
+ Perform all currently queued actions.
+
+
+
+
+ Prepares the internal action queues for execution.
+
+
+
+
+ Performs cleanup of any held cache softlocks.
+
+ Was the transaction successful.
+
+
+
+ Check whether the given tables/query-spaces are to be executed against
+ given the currently queued actions.
+
+ The table/query-spaces to check.
+ True if we contain pending actions against any of the given tables; false otherwise.
+
+
+
+ Check whether any insertion or deletion actions are currently queued.
+
+ True if insertions or deletions are currently queued; false otherwise.
+
+
+
+ Identifies a named association belonging to a particular
+ entity instance. Used to record the fact that an association
+ is null during loading.
+
+
+
+
+ Defines a sequence of elements that are currently
+ eligible for batch fetching.
+
+
+ Even though this is a map, we only use the keys. A map was chosen in
+ order to utilize a to maintain sequencing
+ as well as uniqueness.
+
+
+
+
+ A map of subselect-fetch descriptors
+ keyed by the against which the descriptor is
+ registered.
+
+
+
+
+ The owning persistence context.
+
+
+
+
+ Constructs a queue for the given context.
+
+ The owning persistence context.
+
+
+
+ Clears all entries from this fetch queue.
+
+
+
+
+ Retrieve the fetch descriptor associated with the given entity key.
+
+ The entity key for which to locate any defined subselect fetch.
+ The fetch descriptor; may return null if no subselect fetch queued for
+ this entity key.
+
+
+
+ Adds a subselect fetch decriptor for the given entity key.
+
+ The entity for which to register the subselect fetch.
+ The fetch descriptor.
+
+
+
+ After evicting or deleting an entity, we don't need to
+ know the query that was used to load it anymore (don't
+ call this after loading the entity, since we might still
+ need to load its collections)
+
+
+
+
+ Clears all pending subselect fetches from the queue.
+
+
+ Called after flushing.
+
+
+
+
+ If an EntityKey represents a batch loadable entity, add
+ it to the queue.
+
+
+ Note that the contract here is such that any key passed in should
+ previously have been been checked for existence within the
+ ; failure to do so may cause the
+ referenced entity to be included in a batch even though it is
+ already associated with the .
+
+
+
+
+ After evicting or deleting or loading an entity, we don't
+ need to batch fetch it anymore, remove it from the queue
+ if necessary
+
+
+
+
+ Get a batch of uninitialized collection keys for a given role
+
+ The persister for the collection role.
+ A key that must be included in the batch fetch
+ the maximum number of keys to return
+ an array of collection keys, of length batchSize (padded with nulls)
+
+
+
+ Get a batch of unloaded identifiers for this class, using a slightly
+ complex algorithm that tries to grab keys registered immediately after
+ the given key.
+
+ The persister for the entities being loaded.
+ The identifier of the entity currently demanding load.
+ The maximum number of keys to return
+ an array of identifiers, of length batchSize (possibly padded with nulls)
+
+
+
+ The types of children to cascade to
+
+
+
+
+ A cascade point that occurs just after the insertion of the parent
+ entity and just before deletion
+
+
+
+
+ A cascade point that occurs just before the insertion of the parent entity
+ and just after deletion
+
+
+
+
+ A cascade point that occurs just after the insertion of the parent entity
+ and just before deletion, inside a collection
+
+
+
+
+ A cascade point that occurs just after the update of the parent entity
+
+
+
+ A cascade point that occurs just before the session is flushed
+
+
+
+ A cascade point that occurs just after eviction of the parent entity from the
+ session cache
+
+
+
+
+ A cascade point that occurs just after locking a transient parent entity into the
+ session cache
+
+
+
+
+ A cascade point that occurs just after locking a transient parent entity into the session cache
+
+
+
+
+ A cascade point that occurs just before merging from a transient parent entity into
+ the object in the session cache
+
+
+
+
+ Delegate responsible, in conjunction with the various
+ , for implementing cascade processing.
+
+
+
+ Cascade an action from the parent entity instance to all its children.
+ The parent's entity persister
+ The parent reference.
+
+
+
+ Cascade an action from the parent entity instance to all its children. This
+ form is typicaly called from within cascade actions.
+
+ The parent's entity persister
+ The parent reference.
+
+ Typically some form of cascade-local cache
+ which is specific to each CascadingAction type
+
+
+
+ Cascade an action to the child or children
+
+
+ Cascade an action to a collection
+
+
+ Cascade an action to a to-one association or any type
+
+
+ Cascade to the collection elements
+
+
+ Delete any entities that were removed from the collection
+
+
+ A contract for defining the aspects of cascading various persistence actions.
+
+
+
+ package-protected constructor
+
+
+ For this style, should the given action be cascaded?
+ The action to be checked for cascade-ability.
+ True if the action should be cascaded under this style; false otherwise.
+
+
+
+ Probably more aptly named something like doCascadeToCollectionElements();
+ it is however used from both the collection and to-one logic branches...
+
+ The action to be checked for cascade-ability.
+ True if the action should be really cascaded under this style; false otherwise.
+
+ For this style, should the given action really be cascaded? The default
+ implementation is simply to return {@link #doCascade}; for certain
+ styles (currently only delete-orphan), however, we need to be able to
+ control this separately.
+
+
+
+ Factory method for obtaining named cascade styles
+ The named cascade style name.
+ The appropriate CascadeStyle
+
+
+ save / delete / update / evict / lock / replicate / merge / persist + delete orphans
+
+
+ save / delete / update / evict / lock / replicate / merge / persist
+
+
+ save / update
+
+
+ lock
+
+
+ refresh
+
+
+ evict
+
+
+ replicate
+
+
+ merge
+
+
+ create
+
+
+ delete
+
+
+ delete + delete orphans
+
+
+ no cascades
+
+
+ Do we need to delete orphaned collection elements?
+ True if this style need to account for orphan delete operations; false otherwise.
+
+
+
+ A session action that may be cascaded from parent entity to its children
+
+
+
+ Cascade the action to the child object.
+ The session within which the cascade is occurring.
+ The child to which cascading should be performed.
+ The child's entity name
+ Typically some form of cascade-local cache which is specific to each CascadingAction type
+ Are cascading deletes enabled.
+
+
+
+ Given a collection, get an iterator of the children upon which the
+ current cascading action should be visited.
+
+ The session within which the cascade is occurring.
+ The mapping type of the collection.
+ The collection instance.
+ The children iterator.
+
+
+
+ Called (in the case of returning true) to validate
+ that no cascade on the given property is considered a valid semantic.
+
+ The session within which the cascade is occurring.
+ The property value
+ The property value owner
+ The entity persister for the owner
+ The index of the property within the owner.
+
+
+
+ Given a collection, get an iterator of all its children, loading them
+ from the database if necessary.
+
+ The session within which the cascade is occurring.
+ The mapping type of the collection.
+ The collection instance.
+ The children iterator.
+
+
+
+ Iterate just the elements of the collection that are already there. Don't load
+ any new elements from the database.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Execute persist during flush time
+
+
+
+
+
+
+ Does this action potentially extrapolate to orphan deletes?
+ True if this action can lead to deletions of orphans.
+
+
+ Does the specified cascading action require verification of no cascade validity?
+ True if this action requires no-cascade verification; false otherwise.
+
+
+ Should this action be performed (or noCascade consulted) in the case of lazy properties.
+
+
+
+ We need an entry to tell us all about the current state
+ of a collection with respect to its persistent state
+
+
+
+
+ Defines a complete "snapshot" of a particular collection.
+
+
+
+
+ Gets the identifier of the Entity that owns this Collection.
+
+
+
+
+ Gets the role that identifies this Collection.
+
+
+
+
+ Gets the snapshot copy of the Collection's elements.
+
+
+ In most cases this is the same collection type as the one being snapshotted.
+ ie - the snapshot of an IList will return an IList.
+
+
+
+
+ Gets a indicating if the collection was at one time
+ associated with an Entity and then later dereferenced during a Flush().
+
+
+
+
+ Indicates that the Collection can still be reached by an Entity
+ that exist in the .
+
+
+ It is also used to ensure that the Collection is not shared between
+ two Entities.
+
+
+
+
+ Indicates that the Collection has been processed and is ready
+ to have its state synchronized with the database.
+
+
+
+
+ Indicates that a Collection needs to be updated.
+
+
+ A Collection needs to be updated whenever the contents of the Collection
+ have been changed.
+
+
+
+
+ Indicates that a Collection has old elements that need to be removed.
+
+
+ A Collection needs to have removals performed whenever its role changes or
+ the key changes and it has a loadedPersister - ie - it was loaded by NHibernate.
+
+
+
+
+ Indicates that a Collection needs to be recreated.
+
+
+ A Collection needs to be recreated whenever its role changes
+ or the owner changes.
+
+
+
+
+ If we instantiate a collection during the
+ process, we must ignore it for the rest of the flush.
+
+
+
+
+ The that is currently responsible
+ for the Collection.
+
+
+ This is set when NHibernate is updating a reachable or an
+ unreachable collection.
+
+
+
+
+ The when the Collection was loaded.
+
+
+ This can be if the Collection was not loaded by NHibernate and
+ was passed in along with a transient object.
+
+
+
+
+ The identifier of the Entity that is the owner of this Collection
+ during the load or post flush.
+
+
+
+ session-start/post-flush persistent state
+
+
+ allow the snapshot to be serialized
+
+
+
+ Initializes a new instance of .
+
+
+ The CollectionEntry is for a Collection that is not dirty and
+ has already been initialized.
+
+
+
+
+ Initializes a new instance of for collections just loaded from the database.
+
+ The that persists this Collection type.
+ The identifier of the Entity that is the owner of this Collection.
+ A boolean indicating whether to ignore the collection during current (or next) flush.
+
+
+ For collections just loaded from the database
+
+
+
+ Initializes a new instance of for initialized detached collections.
+
+ The from another .
+ The that created this .
+
+ This takes an from another and
+ creates an entry for it in this by copying the values from the
+ cs parameter.
+
+
+
+
+ Determine if the collection is "really" dirty, by checking dirtiness
+ of the collection elements, if necessary
+
+
+
+
+ Prepares this CollectionEntry for the Flush process.
+
+ The that this CollectionEntry will be responsible for flushing.
+
+
+
+ Updates the CollectionEntry to reflect that the
+ has been initialized.
+
+ The initialized that this Entry is for.
+
+
+
+ Updates the CollectionEntry to reflect that it is has been successfully flushed to the database.
+
+ The that was flushed.
+
+ Called after a successful flush.
+
+
+
+
+ Sets the information in this CollectionEntry that is specific to the
+ .
+
+
+ The that is
+ responsible for the Collection.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Uniquely identifies a collection instance in a particular session.
+
+
+
+
+ Record the fact that this collection was dereferenced
+
+ The collection to be updated by unreachability.
+ The session.
+
+
+
+ Initialize the role of the collection.
+
+ The collection to be updated by reachibility.
+ The type of the collection.
+ The owner of the collection.
+ The session.
+
+
+
+ We need an entry to tell us all about the current state
+ of an object with respect to its persistent state
+
+
+
+
+ Initializes a new instance of EntityEntry.
+
+ The current of the Entity.
+ The snapshot of the Entity's state when it was loaded.
+
+ The identifier of the Entity in the database.
+ The version of the Entity.
+ The for the Entity.
+ A boolean indicating if the Entity exists in the database.
+ The that is responsible for this Entity.
+
+
+
+
+
+
+ After actually inserting a row, record the fact that the instance exists on the
+ database (needed for identity-column key generation)
+
+
+
+
+ After actually updating the database, update the snapshot information,
+ and escalate the lock mode.
+
+
+
+
+ After actually deleting a row, record the fact that the instance no longer
+ exists in the database
+
+
+
+
+ Gets or sets the current of the Entity.
+
+ The of the Entity.
+
+
+
+ Gets or sets the of this Entity with respect to its
+ persistence in the database.
+
+ The of this Entity.
+
+
+
+ Gets or sets the identifier of the Entity in the database.
+
+ The identifier of the Entity in the database if one has been assigned.
+ This might be when the is
+ and the database generates the id.
+
+
+
+ Gets or sets the snapshot of the Entity when it was loaded from the database.
+
+ The snapshot of the Entity.
+
+ There will only be a value when the Entity was loaded in the current Session.
+
+
+
+
+ Gets or sets the snapshot of the Entity when it was marked as being ready for deletion.
+
+ The snapshot of the Entity.
+ This will be if the Entity is not being deleted.
+
+
+
+ Gets or sets a indicating if this Entity exists in the database.
+
+ if it is already in the database.
+
+ It can also be if it does not exists in the database yet and the
+ is .
+
+
+
+
+ Gets or sets the version of the Entity.
+
+ The version of the Entity.
+
+
+
+ Gets or sets the that is responsible for this Entity.
+
+ The that is responsible for this Entity.
+
+
+
+ Gets the Fully Qualified Name of the class this Entity is an instance of.
+
+ The Fully Qualified Name of the class this Entity is an instance of.
+
+
+
+ A globally unique identifier of an instance, consisting of the user-visible identifier
+ and the identifier space (eg. tablename)
+
+
+
+ Construct a unique identifier for an entity class instance
+
+
+ Used to reconstruct an EntityKey during deserialization.
+ The identifier value
+ The root entity name
+ The specific entity name
+ The type of the identifier value
+ Whether represented entity is eligible for batch loading
+ The session factory
+ The entity's entity mode
+
+
+
+ To use in deserialization callback
+
+
+
+
+
+ Used to uniquely key an entity instance in relation to a particular session
+ by some unique property reference, as opposed to identifier.
+ Uniqueing information consists of the entity-name, the referenced
+ property name, and the referenced property value.
+
+
+
+
+
+ A FilterDefinition defines the global attributes of a dynamic filter. This
+ information includes its name as well as its defined parameters (name and type).
+
+
+
+
+ Set the named parameter's value list for this filter.
+
+ The name of the filter for which this configuration is in effect.
+ The default filter condition.
+ A dictionary storing the NHibernate type
+ of each parameter under its name.
+
+
+
+ Retreive the type of the named parameter defined for this filter.
+
+ The name of the filter parameter for which to return the type.
+ The type of the named parameter.
+
+
+
+ Get the name of the filter this configuration defines.
+
+ The filter name for this configuration.
+
+
+
+ Get a set of the parameters defined by this configuration.
+
+ The parameters named by this configuration.
+
+
+ Algorithms related to foreign key constraint transparency
+
+
+
+ Is this instance persistent or detached?
+
+
+ If is non-null, don't hit the database to make the
+ determination, instead assume that value; the client code must be
+ prepared to "recover" in the case that this assumed result is incorrect.
+
+
+
+
+ Is this instance, which we know is not persistent, actually transient?
+ If assumed is non-null, don't hit the database to make the
+ determination, instead assume that value; the client code must be
+ prepared to "recover" in the case that this assumed result is incorrect.
+
+
+ If is non-null, don't hit the database to make the
+ determination, instead assume that value; the client code must be
+ prepared to "recover" in the case that this assumed result is incorrect.
+
+
+
+
+ Return the identifier of the persistent or transient object, or throw
+ an exception if the instance is "unsaved"
+
+
+ Used by OneToOneType and ManyToOneType to determine what id value should
+ be used for an object that may or may not be associated with the session.
+ This does a "best guess" using any/all info available to use (not just the
+ EntityEntry).
+
+
+
+
+ Nullify all references to entities that have not yet
+ been inserted in the database, where the foreign key
+ points toward that entity
+
+
+
+
+ Return null if the argument is an "unsaved" entity (ie.
+ one with no existing database row), or the input argument
+ otherwise. This is how Hibernate avoids foreign key constraint
+ violations.
+
+
+
+
+ Determine if the object already exists in the database, using a "best guess"
+
+
+
+
+ A strategy for determining if an identifier value is an identifier of a new
+ transient instance or a previously persistent transient instance. The strategy
+ is determined by the Unsaved-Value attribute in the mapping file.
+
+
+
+
+
+
+
+ Assume the transient instance is newly instantiated if its identifier is null or
+ equal to Value
+
+
+
+
+
+ Does the given identifier belong to a new instance
+
+
+
+
+ Always assume the transient instance is newly instantiated
+
+
+
+
+ Never assume that transient instance is newly instantiated
+
+
+
+
+ Assume the transient instance is newly instantiated if the identifier
+ is null.
+
+
+
+ Assume nothing.
+
+
+
+ Holds the state of the persistence context, including the
+ first-level cache, entries, snapshots, proxies, etc.
+
+
+
+ Add a collection which has no owner loaded
+
+
+
+ Get and remove a collection whose owner is not yet loaded,
+ when its owner is being loaded
+
+
+
+ Clear the state of the persistence context
+
+
+ Set the status of an entry
+
+
+ Called after transactions end
+
+
+
+ Get the current state of the entity as known to the underlying
+ database, or null if there is no corresponding row
+
+
+
+
+ Retrieve the cached database snapshot for the requested entity key.
+
+ The entity key for which to retrieve the cached snapshot
+ The cached snapshot
+
+
+ This differs from is two important respects:
+ no snapshot is obtained from the database if not already cached
+ an entry of NO_ROW here is interpretet as an exception
+
+
+
+
+
+ Get the values of the natural id fields as known to the underlying
+ database, or null if the entity has no natural id or there is no
+ corresponding row.
+
+
+
+ Add a canonical mapping from entity key to entity instance
+
+
+
+ Get the entity instance associated with the given EntityKey
+
+
+
+ Is there an entity with the given key in the persistence context
+
+
+
+ Remove an entity from the session cache, also clear
+ up other state associated with the entity, all except
+ for the EntityEntry
+
+
+
+ Get an entity cached by unique key
+
+
+ Add an entity to the cache by unique key
+
+
+
+ Retreive the EntityEntry representation of the given entity.
+
+ The entity for which to locate the EntityEntry.
+ The EntityEntry for the given entity.
+
+
+ Remove an entity entry from the session cache
+
+
+ Is there an EntityEntry for this instance?
+
+
+ Get the collection entry for a persistent collection
+
+
+ Adds an entity to the internal caches.
+
+
+
+ Generates an appropriate EntityEntry instance and adds it
+ to the event source's internal caches.
+
+
+
+ Is the given collection associated with this persistence context?
+
+
+ Is the given proxy associated with this persistence context?
+
+
+
+ Takes the given object and, if it represents a proxy, reassociates it with this event source.
+
+ The possible proxy to be reassociated.
+ Whether the passed value represented an actual proxy which got initialized.
+
+
+
+ If a deleted entity instance is re-saved, and it has a proxy, we need to
+ reset the identifier of the proxy
+
+
+
+
+ Get the entity instance underlying the given proxy, throwing
+ an exception if the proxy is uninitialized. If the given object
+ is not a proxy, simply return the argument.
+
+
+
+
+ Possibly unproxy the given reference and reassociate it with the current session.
+
+ The reference to be unproxied if it currently represents a proxy.
+ The unproxied instance.
+
+
+
+ Attempts to check whether the given key represents an entity already loaded within the
+ current session.
+
+ The entity reference against which to perform the uniqueness check.
+ The entity key.
+
+
+
+ If the existing proxy is insufficiently "narrow" (derived), instantiate a new proxy
+ and overwrite the registration of the old one. This breaks == and occurs only for
+ "class" proxies rather than "interface" proxies. Also init the proxy to point to
+ the given target implementation if necessary.
+
+ The proxy instance to be narrowed.
+ The persister for the proxied entity.
+ The internal cache key for the proxied entity.
+ (optional) the actual proxied entity instance.
+ An appropriately narrowed instance.
+
+
+
+ Return the existing proxy associated with the given EntityKey, or the
+ third argument (the entity associated with the key) if no proxy exists. Init
+ the proxy to the target implementation, if necessary.
+
+
+
+
+ Return the existing proxy associated with the given EntityKey, or the
+ argument (the entity associated with the key) if no proxy exists.
+ (slower than the form above)
+
+
+
+ Get the entity that owns this persistent collection
+
+
+ add a collection we just loaded up (still needs initializing)
+
+
+ add a detached uninitialized collection
+
+
+
+ Add a new collection (ie. a newly created one, just instantiated by the
+ application, with no database state or snapshot)
+
+ The collection to be associated with the persistence context
+
+
+
+
+ add an (initialized) collection that was created by another session and passed
+ into update() (ie. one with a snapshot and existing state on the database)
+
+
+
+ add a collection we just pulled out of the cache (does not need initializing)
+
+
+ Get the collection instance associated with the CollectionKey
+
+
+
+ Register a collection for non-lazy loading at the end of the two-phase load
+
+
+
+
+ Force initialization of all non-lazy collections encountered during
+ the current two-phase load (actually, this is a no-op, unless this
+ is the "outermost" load)
+
+
+
+ Get the PersistentCollection object for an array
+
+
+ Register a PersistentCollection object for an array.
+ Associates a holder with an array - MUST be called after loading
+ array, since the array instance is not created until endLoad().
+
+
+
+
+ Remove the mapping of collection to holder during eviction of the owning entity
+
+
+
+ Get the snapshot of the pre-flush collection state
+
+
+
+ Get the collection entry for a collection passed to filter,
+ which might be a collection wrapper, an array, or an unwrapped
+ collection. Return null if there is no entry.
+
+
+
+ Get an existing proxy by key
+
+
+ Add a proxy to the session cache
+
+
+ Remove a proxy from the session cache
+
+
+ Called before cascading
+
+
+ Called after cascading
+
+
+ Call this before begining a two-phase load
+
+
+ Call this after finishing a two-phase load
+
+
+
+ Search the persistence context for an owner for the child object,
+ given a collection role
+
+
+
+
+ Search the persistence context for an index of the child object, given a collection role
+
+
+
+
+ Record the fact that the association belonging to the keyed entity is null.
+
+
+
+ Is the association property belonging to the keyed entity null?
+
+
+ Set the object to read only and discard it's snapshot
+
+
+
+ Get the session to which this persistence context is bound.
+
+
+
+
+ Retrieve this persistence context's managed load context.
+
+
+
+
+ Get the BatchFetchQueue, instantiating one if necessary.
+
+
+
+ Retrieve the set of EntityKeys representing nullifiable references
+
+
+ Get the mapping from key value to entity instance
+
+
+ Get the mapping from entity instance to entity entry
+
+
+ Get the mapping from collection instance to collection entry
+
+
+ Get the mapping from collection key to collection instance
+
+
+ How deep are we cascaded?
+
+
+ Is a flush cycle currently in process?
+ Called before and after the flushcycle
+
+
+ False if we know for certain that all the entities are read-only
+
+
+
+ Defines the internal contract between the ISessionFactory and other parts of NHibernate
+ such as implementors of IType.
+
+
+
+
+ Creates ISessions.
+
+
+
+ Usually an application has a single SessionFactory. Threads servicing client requests
+ obtain ISessions from the factory. Implementors must be threadsafe.
+
+
+ ISessionFactorys are immutable. The behaviour of a SessionFactory
+ is controlled by properties supplied at configuration time.
+ These properties are defined on Environment
+
+
+
+
+
+ Open a ISession on the given connection
+
+ A connection provided by the application
+ A session
+
+ Note that the second-level cache will be disabled if you
+ supply a ADO.NET connection. NHibernate will not be able to track
+ any statements you might have executed in the same transaction.
+ Consider implementing your own .
+
+
+
+
+ Create database connection and open a ISession on it, specifying an interceptor
+
+ A session-scoped interceptor
+ A session
+
+
+
+ Open a ISession on the given connection, specifying an interceptor
+
+ A connection provided by the application
+ A session-scoped interceptor
+ A session
+
+ Note that the second-level cache will be disabled if you
+ supply a ADO.NET connection. NHibernate will not be able to track
+ any statements you might have executed in the same transaction.
+ Consider implementing your own .
+
+
+
+
+ Create a database connection and open a ISession on it
+
+
+
+
+
+ Create a new databinder.
+
+
+
+
+
+ Get the ClassMetadata associated with the given entity class
+
+
+
+
+
+
+ Get the CollectionMetadata associated with the named collection role
+
+
+
+
+
+
+ Get all ClassMetadata as a IDictionary from Type
+ to metadata object
+
+
+
+
+
+ Get all CollectionMetadata as a IDictionary from role name
+ to metadata object
+
+
+
+
+
+ Destroy this SessionFactory and release all resources
+ connection pools, etc). It is the responsibility of the application
+ to ensure that there are no open Sessions before calling
+ close().
+
+
+
+
+ Evict all entries from the process-level cache. This method occurs outside
+ of any transaction; it performs an immediate "hard" remove, so does not respect
+ any transaction isolation semantics of the usage strategy. Use with care.
+
+
+
+
+
+ Evict an entry from the process-level cache. This method occurs outside
+ of any transaction; it performs an immediate "hard" remove, so does not respect
+ any transaction isolation semantics of the usage strategy. Use with care.
+
+
+
+
+
+
+ Evict all entries from the second-level cache. This method occurs outside
+ of any transaction; it performs an immediate "hard" remove, so does not respect
+ any transaction isolation semantics of the usage strategy. Use with care.
+
+
+
+
+ Evict all entries from the process-level cache. This method occurs outside
+ of any transaction; it performs an immediate "hard" remove, so does not respect
+ any transaction isolation semantics of the usage strategy. Use with care.
+
+
+
+
+
+ Evict an entry from the process-level cache. This method occurs outside
+ of any transaction; it performs an immediate "hard" remove, so does not respect
+ any transaction isolation semantics of the usage strategy. Use with care.
+
+
+
+
+
+
+ Evict any query result sets cached in the default query cache region.
+
+
+
+
+ Evict any query result sets cached in the named query cache region.
+
+
+
+
+
+ Obtain the definition of a filter by name.
+
+ The name of the filter for which to obtain the definition.
+ The filter definition.
+
+
+
+ Obtains the current session.
+
+
+
+ The definition of what exactly "current" means is controlled by the
+ implementation configured for use.
+
+
+ The current session.
+ Indicates an issue locating a suitable current session.
+
+
+ Get a new stateless session.
+
+
+ Get a new stateless session for the given ADO.NET connection.
+
+
+
+ Get the used.
+
+
+
+
+ Get the SQL Dialect
+
+
+
+
+ Obtain a set of the names of all filters defined on this SessionFactory.
+
+ The set of filter names.
+
+
+
+ This collections allows external libraries
+ to add their own configuration to the NHibernate session factory.
+ This is needed in such cases where the library is tightly coupled to NHibernate, such
+ as the case of NHibernate Search
+
+
+
+ Get the statistics for this session factory
+
+
+
+ Get the persister for a class
+
+
+
+
+ Get the persister for the named class
+
+ The name of the class that is persisted.
+ The for the class.
+ If no can be found.
+
+
+
+ Get the persister for the named class
+
+ The name of the class that is persisted.
+ Whether to throw an exception if the class is not found,
+ or just return
+ The for the class.
+ If no can be found
+ and throwIfNotFound is true.
+
+
+
+ Get the persister object for a collection role
+
+
+
+
+
+
+ Get the return types of a query
+
+
+
+
+
+ Get the return aliases of a query
+
+
+
+ Get the names of all persistent classes that implement/extend the given interface/class
+
+
+
+
+
+
+ Get a class name, using query language imports
+
+
+
+
+
+
+ Get a particular named query cache, or the default cache
+
+ the name of the cache region, or null for the default
+ query cache
+ the existing cache, or a newly created cache if none by that
+ region name
+
+
+
+ Obtain an ADO.NET connection
+
+
+
+
+
+ Release an ADO.NET connection
+
+
+
+
+
+ Get the identifier generator for the hierarchy
+
+
+
+
+ Open a session conforming to the given parameters. For use mainly by
+ implementations.
+
+ The external ADO.NET connection to use, if any (i.e., optional).
+ The release mode for managed database connections.
+ An appropriate session.
+
+
+
+
+ Open a session conforming to the given parameters. Used mainly
+ for current session processing.
+
+ The external ado.net connection to use, if one (i.e., optional).
+
+ Should the session be auto-flushed
+ prior to transaction completion?
+
+
+ Should the session be auto-closed after
+ transaction completion?
+
+ The release mode for managed jdbc connections.
+ An appropriate session.
+
+
+
+ Retrieves a set of all the collection roles in which the given entity
+ is a participant, as either an index or an element.
+
+ The entity name for which to get the collection roles.
+
+ Set of all the collection roles in which the given entityName participates.
+
+
+
+ Get a named second-level cache region
+
+
+
+ Is outerjoin fetching enabled?
+
+
+
+
+ Are scrollable ResultSets supported?
+
+
+
+
+ Is PreparedStatement.getGeneratedKeys supported (Java-specific?)
+
+
+
+
+ Get the database schema specified in default_schema
+
+
+
+
+ Maximum depth of outer join fetching
+
+
+
+
+ Get the default query cache
+
+
+
+
+ Is query caching enabled?
+
+
+
+
+ Gets the IsolationLevel an IDbTransaction should be set to.
+
+
+ This is only applicable to manually controlled NHibernate Transactions.
+
+
+
+ Retrieves the SQLExceptionConverter in effect for this SessionFactory.
+ The SQLExceptionConverter for this SessionFactory.
+
+
+
+ Gets the ICurrentSessionContext instance attached to this session factory.
+
+
+
+ The cache of table update timestamps
+
+
+ Statistics SPI
+
+
+
+ Defines the internal contract between the Session and other parts of Hibernate
+ such as implementors of Type or ClassPersister
+
+
+
+
+ Initialize the collection (if not already initialized)
+
+
+
+
+
+
+ Load an instance without checking if it was deleted. If it does not exist and isn't nullable, throw an exception.
+ This method may create a new proxy or return an existing proxy.
+
+ The entityName (or class full name) to load.
+ The identifier of the object in the database.
+ Allow null instance
+ When enabled, the object is eagerly fetched.
+
+ A proxy of the object or an instance of the object if the persistentClass does not have a proxy.
+
+ No object could be found with that id.
+
+
+
+ Load an instance immediately. Do not return a proxy.
+
+
+
+
+
+
+
+ Execute a List() query
+
+
+
+
+
+
+
+ Strongly-typed version of
+
+
+
+
+ Strongly-typed version of
+
+
+
+
+ Execute an Iterate() query
+
+
+
+
+
+
+
+ Strongly-typed version of
+
+
+
+
+ Execute a filter
+
+
+
+
+ Execute a filter (strongly-typed version).
+
+
+
+
+ Collection from a filter
+
+
+
+
+ Strongly-typed version of
+
+
+
+ Get the for any instance
+ optional entity name
+ the entity instance
+
+
+
+ Get the IEntityPersister for an object
+
+
+
+
+
+
+ Notify the session that an NHibernate transaction has begun.
+
+
+
+
+ Notify the session that the transaction is about to complete
+
+
+
+
+ Notify the session that the transaction completed, so we no longer own the old locks.
+ (Also we shold release cache softlocks). May be called multiple times during the transaction
+ completion process.
+
+
+
+
+ Return the identifier of the persistent object, or null if transient
+
+
+
+
+ Instantiate the entity class, initializing with the given identifier
+
+
+
+
+ Execute an SQL Query
+
+
+
+
+ Strongly-typed version of
+
+
+
+ Execute an SQL Query
+
+
+
+ Retreive the currently set value for a filter parameter.
+
+ The filter parameter name in the format
+ {FILTER_NAME.PARAMETER_NAME}.
+ The filter parameter value.
+
+
+
+ Retreive the type for a given filter parrameter.
+
+ The filter parameter name in the format
+ {FILTER_NAME.PARAMETER_NAME}.
+ The filter parameter type.
+
+
+
+ Get the entity instance associated with the given Key,
+ calling the Interceptor if necessary
+
+
+
+ The best guess entity name for an entity not in an association
+
+
+ The guessed entity name for an entity not in an association
+
+
+
+ Allow to get the ISession instance without having to
+ down cast
+
+
+
+
+ Execute a native SQL update or delete query
+
+
+ Execute a HQL update or delete query
+
+
+
+ System time before the start of the transaction
+
+
+
+
+
+ Get the creating SessionFactoryImplementor
+
+
+
+
+
+ Get the prepared statement Batcher for this session
+
+
+
+
+ Return the currently enabled filters. The filter map is keyed by filter
+ name, with values corresponding to the
+ instance.
+
+ The currently enabled filters.
+
+
+ Retrieves the configured event listeners from this event source.
+
+
+ Get the persistence context for this session
+
+
+
+ Is the ISession still open?
+
+
+
+
+ Is the ISession currently connected?
+
+
+
+ Determine whether the session is closed. Provided seperately from
+ {@link #isOpen()} as this method does not attempt any JTA synch
+ registration, where as {@link #isOpen()} does; which makes this one
+ nicer to use for most internal purposes.
+
+ True if the session is closed; false otherwise.
+
+
+
+
+ Does this Session have an active Hibernate transaction
+ or is there a JTA transaction in progress?
+
+
+
+ Retrieve the entity mode in effect for this session.
+
+
+
+ Get the aliased columns of the owning entity which are to
+ be used in the join
+
+
+
+
+ Get the columns of the owning entity which are to
+ be used in the join
+
+
+
+
+ Get the aliased columns of the owning entity which are to
+ be used in the join
+
+
+
+
+ Get the columns of the owning entity which are to
+ be used in the join
+
+
+
+
+ Get the columns of the associated table which are to
+ be used in the join
+
+
+
+
+ Implements the algorithm for validating property values
+ for illegal null values
+
+
+
+
+ Check nullability of the class persister properties
+
+ entity properties
+ class persister
+ wether it is intended to be updated or saved
+
+
+
+ Check sub elements-nullability. Returns property path that break
+ nullability or null if none
+
+ type to check
+ value to check
+ property path
+
+
+
+ Check component nullability. Returns property path that break
+ nullability or null if none
+
+ component properties
+ component not-nullable type
+ property path
+
+
+
+ Return a well formed property path.
+ Basicaly, it will return parent.child
+
+ parent in path
+ child in path
+ parent-child path
+
+
+
+ Container for data that is used during the NHibernate query/load process.
+
+
+
+
+
+
+
+ Ensure the Types and Values are the same length.
+
+
+ If the Lengths of and
+ are not equal.
+
+
+
+
+
+
+
+ Gets or sets an that contains the named
+ parameter as the key and the as the value.
+
+ An of named parameters.
+
+
+
+ Gets or sets an array of objects that is stored at the index
+ of the Parameter.
+
+
+
+
+ Gets or sets an array of objects that is stored at the index
+ of the Parameter.
+
+
+
+
+ Gets or sets the for the Query.
+
+
+
+
+ Gets or sets an that contains the alias name of the
+ object from hql as the key and the as the value.
+
+ An of lock modes.
+
+
+
+ Information to determine how to run an IDbCommand and what
+ records to return from the IDataReader.
+
+
+
+
+ Indicates that the no value has been set on the Property.
+
+
+
+
+ Gets or Sets the Index of the First Row to Select
+
+ The Index of the First Rows to Select
+ Defaults to 0 unless specifically set.
+
+
+
+ Gets or Sets the Maximum Number of Rows to Select
+
+ The Maximum Number of Rows to Select
+ Defaults to NoValue unless specifically set.
+
+
+
+ Gets or Sets the Timeout of the Query
+
+ The Query Timeout
+ Defaults to NoValue unless specifically set.
+
+
+
+ A represents the state of persistent "stuff" which
+ NHibernate is tracking. This includes persistent entities, collections,
+ as well as proxies generated.
+
+
+ There is meant to be a one-to-one correspondence between a SessionImpl and
+ a PersistentContext. The SessionImpl uses the PersistentContext to track
+ the current state of its context. Event-listeners then use the
+ PersistentContext to drive their processing.
+
+
+
+ Constructs a PersistentContext, bound to the given session.
+ The session "owning" this context.
+
+
+ Add a collection which has no owner loaded
+
+
+
+ Get and remove a collection whose owner is not yet loaded,
+ when its owner is being loaded
+
+
+
+ Clear the state of the persistence context
+
+
+ Set the status of an entry
+
+
+ Called after transactions end
+
+
+
+ Get the current state of the entity as known to the underlying
+ database, or null if there is no corresponding row
+
+
+
+
+ Retrieve the cached database snapshot for the requested entity key.
+
+ The entity key for which to retrieve the cached snapshot
+ The cached snapshot
+
+
+ This differs from is two important respects:
+ no snapshot is obtained from the database if not already cached
+ an entry of NO_ROW here is interpretet as an exception
+
+
+
+
+
+ Get the values of the natural id fields as known to the underlying
+ database, or null if the entity has no natural id or there is no
+ corresponding row.
+
+
+
+ Add a canonical mapping from entity key to entity instance
+
+
+
+ Get the entity instance associated with the given EntityKey
+
+
+
+ Is there an entity with the given key in the persistence context
+
+
+
+ Remove an entity from the session cache, also clear
+ up other state associated with the entity, all except
+ for the EntityEntry
+
+
+
+ Get an entity cached by unique key
+
+
+ Add an entity to the cache by unique key
+
+
+
+ Retreive the EntityEntry representation of the given entity.
+
+ The entity for which to locate the EntityEntry.
+ The EntityEntry for the given entity.
+
+
+ Remove an entity entry from the session cache
+
+
+ Is there an EntityEntry for this instance?
+
+
+ Get the collection entry for a persistent collection
+
+
+ Adds an entity to the internal caches.
+
+
+
+ Generates an appropriate EntityEntry instance and adds it
+ to the event source's internal caches.
+
+
+
+ Is the given collection associated with this persistence context?
+
+
+ Is the given proxy associated with this persistence context?
+
+
+
+ Takes the given object and, if it represents a proxy, reassociates it with this event source.
+
+ The possible proxy to be reassociated.
+ Whether the passed value represented an actual proxy which got initialized.
+
+
+
+ If a deleted entity instance is re-saved, and it has a proxy, we need to
+ reset the identifier of the proxy
+
+
+
+
+ Associate a proxy that was instantiated by another session with this session
+
+ The proxy initializer.
+ The proxy to reassociate.
+
+
+
+ Get the entity instance underlying the given proxy, throwing
+ an exception if the proxy is uninitialized. If the given object
+ is not a proxy, simply return the argument.
+
+
+
+
+ Possibly unproxy the given reference and reassociate it with the current session.
+
+ The reference to be unproxied if it currently represents a proxy.
+ The unproxied instance.
+
+
+
+ Attempts to check whether the given key represents an entity already loaded within the
+ current session.
+
+ The entity reference against which to perform the uniqueness check.
+ The entity key.
+
+
+
+ If the existing proxy is insufficiently "narrow" (derived), instantiate a new proxy
+ and overwrite the registration of the old one. This breaks == and occurs only for
+ "class" proxies rather than "interface" proxies. Also init the proxy to point to
+ the given target implementation if necessary.
+
+ The proxy instance to be narrowed.
+ The persister for the proxied entity.
+ The internal cache key for the proxied entity.
+ (optional) the actual proxied entity instance.
+ An appropriately narrowed instance.
+
+
+
+ Return the existing proxy associated with the given EntityKey, or the
+ third argument (the entity associated with the key) if no proxy exists. Init
+ the proxy to the target implementation, if necessary.
+
+
+
+
+ Return the existing proxy associated with the given EntityKey, or the
+ argument (the entity associated with the key) if no proxy exists.
+ (slower than the form above)
+
+
+
+ Get the entity that owns this persistent collection
+
+
+ add a collection we just loaded up (still needs initializing)
+
+
+ add a detached uninitialized collection
+
+
+
+ Add a new collection (ie. a newly created one, just instantiated by the
+ application, with no database state or snapshot)
+
+ The collection to be associated with the persistence context
+
+
+
+ Add an collection to the cache, with a given collection entry.
+ The collection for which we are adding an entry.
+ The entry representing the collection.
+ The key of the collection's entry.
+
+
+ Add a collection to the cache, creating a new collection entry for it
+ The collection for which we are adding an entry.
+
+
+
+ add an (initialized) collection that was created by another session and passed
+ into update() (ie. one with a snapshot and existing state on the database)
+
+
+
+ add a collection we just pulled out of the cache (does not need initializing)
+
+
+ Get the collection instance associated with the CollectionKey
+
+
+
+ Register a collection for non-lazy loading at the end of the two-phase load
+
+
+
+
+ Force initialization of all non-lazy collections encountered during
+ the current two-phase load (actually, this is a no-op, unless this
+ is the "outermost" load)
+
+
+
+ Get the PersistentCollection object for an array
+
+
+ Register a PersistentCollection object for an array.
+ Associates a holder with an array - MUST be called after loading
+ array, since the array instance is not created until endLoad().
+
+
+
+
+ Remove the mapping of collection to holder during eviction of the owning entity
+
+
+
+ Get the snapshot of the pre-flush collection state
+
+
+
+ Get the collection entry for a collection passed to filter,
+ which might be a collection wrapper, an array, or an unwrapped
+ collection. Return null if there is no entry.
+
+
+
+ Get an existing proxy by key
+
+
+ Add a proxy to the session cache
+
+
+ Remove a proxy from the session cache
+
+
+ Called before cascading
+
+
+ Called after cascading
+
+
+ Call this before begining a two-phase load
+
+
+ Call this after finishing a two-phase load
+
+
+
+ Search the persistence context for an owner for the child object,
+ given a collection role
+
+
+
+
+ Search the persistence context for an index of the child object, given a collection role
+
+
+
+
+ Record the fact that the association belonging to the keyed entity is null.
+
+
+
+ Is the association property belonging to the keyed entity null?
+
+
+ Set the object to read only and discard it's snapshot
+
+
+
+ Get the session to which this persistence context is bound.
+
+
+
+
+ Retrieve this persistence context's managed load context.
+
+
+
+
+ Get the BatchFetchQueue, instantiating one if necessary.
+
+
+
+ Retrieve the set of EntityKeys representing nullifiable references
+
+
+ Get the mapping from key value to entity instance
+
+
+ Get the mapping from entity instance to entity entry
+
+
+ Get the mapping from collection instance to collection entry
+
+
+ Get the mapping from collection key to collection instance
+
+
+ How deep are we cascaded?
+
+
+ Is a flush cycle currently in process?
+ Called before and after the flushcycle
+
+
+ False if we know for certain that all the entities are read-only
+
+
+
+ Represents the status of an entity with respect to
+ this session. These statuses are for internal
+ book-keeping only and are not intended to represent
+ any notion that is visible to the application.
+
+
+
+
+ The Entity is snapshotted in the Session with the same state as the database
+ (called Managed in H3).
+
+
+
+
+ The Entity is in the Session and has been marked for deletion but not
+ deleted from the database yet.
+
+
+
+
+ The Entity has been deleted from database.
+
+
+
+
+ The Entity is in the process of being loaded.
+
+
+
+
+ The Entity is in the process of being saved.
+
+
+
+
+ The entity is read-only.
+
+
+
+
+ Functionality relating to Hibernate's two-phase loading process,
+ that may be reused by persisters that do not use the Loader
+ framework
+
+
+
+
+ Register the "hydrated" state of an entity instance, after the first step of 2-phase loading.
+
+ Add the "hydrated state" (an array) of an uninitialized entity to the session. We don't try
+ to resolve any associations yet, because there might be other entities waiting to be
+ read from the JDBC result set we are currently processing
+
+
+
+
+ Perform the second step of 2-phase load. Fully initialize the entity instance.
+ After processing a JDBC result set, we "resolve" all the associations
+ between the entities which were instantiated and had their state
+ "hydrated" into an array
+
+
+
+
+ Add an uninitialized instance of an entity class, as a placeholder to ensure object
+ identity. Must be called before postHydrate().
+ Create a "temporary" entry for a newly instantiated entity. The entity is uninitialized,
+ but we need the mapping from id to instance in order to guarantee uniqueness.
+
+
+
+ An ordered pair of a value and its Hibernate type.
+
+
+
+ Return an IdentifierValue for the specified unsaved-value. If none is specified,
+ guess the unsaved value by instantiating a test instance of the class and
+ reading it's id property, or if that is not possible, using the java default
+ value for the type
+
+
+
+
+ An enum of the different ways a value might be "included".
+
+
+ This is really an expanded true/false notion with Partial being the
+ expansion. Partial deals with components in the cases where
+ parts of the referenced component might define inclusion, but the
+ component overall does not.
+
+
+
+
+ Utility methods for managing versions and timestamps
+
+
+
+
+ Increment the given version number
+
+ The value of the current version.
+ The of the versioned property.
+ The current .
+ Returns the next value for the version.
+
+
+
+ Create an initial version number
+
+ The of the versioned property.
+ The current .
+ A seed value to initialize the versioned property with.
+
+
+
+ Seed the given instance state snapshot with an initial version number
+
+ An array of objects that contains a snapshot of a persistent object.
+ The index of the version property in the fields parameter.
+ The of the versioned property.
+ Force the version to initialize
+ The current session, if any.
+ if the version property needs to be seeded with an initial value.
+
+
+
+ Set the version number of the given instance state snapshot
+
+ An array of objects that contains a snapshot of a persistent object.
+ The value the version should be set to in the fields parameter.
+ The that is responsible for persisting the values of the fields parameter.
+
+
+
+ Get the version number of the given instance state snapshot
+
+ An array of objects that contains a snapshot of a persistent object.
+ The that is responsible for persisting the values of the fields parameter.
+
+ The value of the version contained in the fields parameter or null if the
+ Entity is not versioned.
+
+
+
+ Do we need to increment the version number, given the dirty properties?
+ The array of property indexes which were deemed dirty
+ Were any collections found to be dirty (structurally changed)
+ An array indicating versionability of each property.
+ True if a version increment is required; false otherwise.
+
+
+
+ A strategy for determining if a version value is an version of
+ a new transient instance or a previously persistent transient instance.
+ The strategy is determined by the Unsaved-Value attribute in the mapping file.
+
+
+
+
+
+
+
+ Assume the transient instance is newly instantiated if its version is null or
+ equal to Value
+
+
+
+
+
+ Does the given identifier belong to a new instance
+
+
+
+
+ Assume the transient instance is newly instantiated if the version
+ is null, otherwise assume it is a detached instance.
+
+
+
+
+ Assume the transient instance is newly instantiated if the version
+ is null, otherwise defer to the identifier unsaved-value.
+
+
+
+
+ Assume the transient instance is newly instantiated if the identifier
+ is null.
+
+
+
+
+ A convenience base class for listeners whose functionality results in flushing.
+
+
+
+
+ Coordinates the processing necessary to get things ready for executions
+ as db calls by preping the session caches and moving the appropriate
+ entities and collections to their respective execution queues.
+
+ The flush event.
+
+
+
+ Execute all SQL and second-level cache updates, in a
+ special order so that foreign-key constraints cannot
+ be violated:
+
+ Inserts, in the order they were performed
+ Updates
+ Deletion of collection elements
+ Insertion of collection elements
+ Deletes, in the order they were performed
+
+
+
+
+
+ 1. Recreate the collection key -> collection map
+ 2. rebuild the collection entries
+ 3. call Interceptor.postFlush()
+
+
+
+
+ A convenience base class for listeners that respond to requests to perform a
+ pessimistic lock upgrade on an entity.
+
+
+
+
+ A convenience base class for listeners that respond to requests to reassociate an entity
+ to a session ( such as through lock() or update() ).
+
+
+
+
+ Associates a given entity (either transient or associated with another session) to the given session.
+
+ The event triggering the re-association
+ The entity to be associated
+ The id of the entity.
+ The entity's persister instance.
+ An EntityEntry representing the entity within this session.
+
+
+
+ Performs a pessimistic lock upgrade on a given entity, if needed.
+
+ The entity for which to upgrade the lock.
+ The entity's EntityEntry instance.
+ The lock mode being requested for locking.
+ The session which is the source of the event being processed.
+
+
+
+ A convenience bas class for listeners responding to save events.
+
+
+
+
+ Prepares the save call using the given requested id.
+
+ The entity to be saved.
+ The id to which to associate the entity.
+ The name of the entity being saved.
+ Generally cascade-specific information.
+ The session which is the source of this save event.
+ The id used to save the entity.
+
+
+
+ Prepares the save call using a newly generated id.
+
+ The entity to be saved
+ The entity-name for the entity to be saved
+ Generally cascade-specific information.
+ The session which is the source of this save event.
+
+ does the event context require
+ access to the identifier immediately after execution of this method (if
+ not, post-insert style id generators may be postponed if we are outside
+ a transaction).
+
+
+ The id used to save the entity; may be null depending on the
+ type of id generator used and the requiresImmediateIdAccess value
+
+
+
+
+ Prepares the save call by checking the session caches for a pre-existing
+ entity and performing any lifecycle callbacks.
+
+ The entity to be saved.
+ The id by which to save the entity.
+ The entity's persister instance.
+ Is an identity column being used?
+ Generally cascade-specific information.
+ The session from which the event originated.
+
+ does the event context require
+ access to the identifier immediately after execution of this method (if
+ not, post-insert style id generators may be postponed if we are outside
+ a transaction).
+
+
+ The id used to save the entity; may be null depending on the
+ type of id generator used and the requiresImmediateIdAccess value
+
+
+
+
+ Performs all the actual work needed to save an entity (well to get the save moved to
+ the execution queue).
+
+ The entity to be saved
+ The id to be used for saving the entity (or null, in the case of identity columns)
+ The entity's persister instance.
+ Should an identity column be used for id generation?
+ Generally cascade-specific information.
+ The session which is the source of the current event.
+
+ Is access to the identifier required immediately
+ after the completion of the save? persist(), for example, does not require this...
+
+
+ The id used to save the entity; may be null depending on the
+ type of id generator used and the requiresImmediateIdAccess value
+
+
+
+
+ Perform any property value substitution that is necessary
+ (interceptor callback, version initialization...)
+
+ The entity
+ The entity identifier
+ The snapshot entity state
+ The entity persister
+ The originating session
+
+ True if the snapshot state changed such that
+ reinjection of the values into the entity is required.
+
+
+
+ Handles the calls needed to perform pre-save cascades for the given entity.
+ The session from which the save event originated.
+ The entity's persister instance.
+ The entity to be saved.
+ Generally cascade-specific data
+
+
+ Handles to calls needed to perform post-save cascades.
+ The session from which the event originated.
+ The entity's persister instance.
+ The entity being saved.
+ Generally cascade-specific data
+
+
+
+ Determine whether the entity is persistent, detached, or transient
+
+ The entity to check
+ The name of the entity
+ The entity's entry in the persistence context
+ The originating session.
+ The state.
+
+
+
+ After the save, will te version number be incremented
+ if the instance is modified?
+
+ True if the version will be incremented on an entity change after save; false otherwise.
+
+
+
+ Abstract superclass of algorithms that walk a tree of property values of an entity, and
+ perform specific functionality for collections, components and associated entities.
+
+
+
+ Dispatch each property value to ProcessValue().
+
+
+
+
+
+ Visit a property value. Dispatch to the correct handler for the property type.
+
+
+
+
+
+
+ Visit a component. Dispatch each property to
+
+
+
+
+
+
+
+ Visit a many-to-one or one-to-one associated entity. Default superclass implementation is a no-op.
+
+
+
+
+
+
+
+ Visit a collection. Default superclass implementation is a no-op.
+
+
+
+
+
+
+
+ Walk the tree starting from the given entity.
+
+
+
+
+
+
+ Defines the default flush event listeners used by hibernate for
+ flushing session state in response to generated auto-flush events.
+
+
+
+ Defines the contract for handling of session auto-flush events.
+
+
+
+ Handle the given auto-flush event.
+
+ The auto-flush event to be handled.
+
+
+
+ Handle the given auto-flush event.
+
+ The auto-flush event to be handled.
+
+
+
+ Defines the default delete event listener used by hibernate for deleting entities
+ from the datastore in response to generated delete events.
+
+
+
+ Defines the contract for handling of deletion events generated from a session.
+
+
+ Handle the given delete event.
+ The delete event to be handled.
+
+
+ Handle the given delete event.
+ The delete event to be handled.
+
+
+ Called when we have recognized an attempt to delete a detached entity.
+ The event.
+
+ This is perfectly valid in Hibernate usage; JPA, however, forbids this.
+ Thus, this is a hook for HEM to affect this behavior.
+
+
+
+
+ We encountered a delete request on a transient instance.
+
+ This is a deviation from historical Hibernate (pre-3.2) behavior to
+ align with the JPA spec, which states that transient entities can be
+ passed to remove operation in which case cascades still need to be
+ performed.
+
+ The session which is the source of the event
+ The entity being delete processed
+ Is cascading of deletes enabled
+ The entity persister
+
+ A cache of already visited transient entities (to avoid infinite recursion).
+
+
+
+
+ Perform the entity deletion. Well, as with most operations, does not
+ really perform it; just schedules an action/execution with the
+ for execution during flush.
+
+ The originating session
+ The entity to delete
+ The entity's entry in the
+ Is delete cascading enabled?
+ The entity persister.
+ A cache of already deleted entities.
+
+
+
+ Defines the default dirty-check event listener used by hibernate for
+ checking the session for dirtiness in response to generated dirty-check events.
+
+
+
+ Defines the contract for handling of session dirty-check events.
+
+
+ Handle the given dirty-check event.
+ The dirty-check event to be handled.
+
+
+
+ Defines the default evict event listener used by hibernate for evicting entities
+ in response to generated flush events. In particular, this implementation will
+ remove any hard references to the entity that are held by the infrastructure
+ (references held by application or other persistent instances are okay)
+
+
+
+ Defines the contract for handling of evict events generated from a session.
+
+
+ Handle the given evict event.
+ The evict event to be handled.
+
+
+
+ An event that occurs for each entity instance at flush time
+
+
+
+
+ Flushes a single entity's state to the database, by scheduling an update action, if necessary
+
+
+
+
+ make sure user didn't mangle the id
+
+
+
+
+
+
+
+
+ Performs all necessary checking to determine if an entity needs an SQL update
+ to synchronize its state to the database. Modifies the event by side-effect!
+ Note: this method is quite slow, avoid calling if possible!
+
+
+
+ Perform a dirty check, and attach the results to the event
+
+
+
+ Defines the default flush event listeners used by hibernate for
+ flushing session state in response to generated flush events.
+
+
+
+ Defines the contract for handling of session flush events.
+
+
+ Handle the given flush event.
+ The flush event to be handled.
+
+
+
+ Defines the contract for handling of collection initialization events
+ generated by a session.
+
+
+
+ called by a collection that wants to initialize itself
+
+
+ Try to initialize a collection from the cache
+
+
+
+ Defines the default load event listeners used by hibernate for loading entities
+ in response to generated load events.
+
+
+
+
+ Defines the contract for handling of load events generated from a session.
+
+
+
+
+ Handle the given load event.
+
+ The load event to be handled.
+
+ The result (i.e., the loaded entity).
+
+
+ Perfoms the load of an entity.
+ The loaded entity.
+
+
+
+ Based on configured options, will either return a pre-existing proxy,
+ generate a new proxy, or perform an actual load.
+
+ The result of the proxy/load operation.
+
+
+
+ Given that there is a pre-existing proxy.
+ Initialize it if necessary; narrow if necessary.
+
+
+
+
+ Given that there is no pre-existing proxy.
+ Check if the entity is already loaded. If it is, return the entity,
+ otherwise create and return a proxy.
+
+
+
+
+ If the class to be loaded has been configured with a cache, then lock
+ given id in that cache and then perform the load.
+
+ The loaded entity
+
+
+
+ Coordinates the efforts to load a given entity. First, an attempt is
+ made to load the entity from the session-level cache. If not found there,
+ an attempt is made to locate it in second-level cache. Lastly, an
+ attempt is made to load it directly from the datasource.
+
+ The load event
+ The persister for the entity being requested for load
+ The EntityKey representing the entity to be loaded.
+ The load options.
+ The loaded entity, or null.
+
+
+
+ Performs the process of loading an entity from the configured underlying datasource.
+
+ The load event
+ The persister for the entity being requested for load
+ The EntityKey representing the entity to be loaded.
+ The load options.
+ The object loaded from the datasource, or null if not found.
+
+
+
+ Attempts to locate the entity in the session-level cache.
+
+ The load event
+ The EntityKey representing the entity to be loaded.
+ The load options.
+ The entity from the session-level cache, or null.
+
+ If allowed to return nulls, then if the entity happens to be found in
+ the session cache, we check the entity type for proper handling
+ of entity hierarchies.
+ If checkDeleted was set to true, then if the entity is found in the
+ session-level cache, it's current status within the session cache
+ is checked to see if it has previously been scheduled for deletion.
+
+
+
+ Attempts to load the entity from the second-level cache.
+ The load event
+ The persister for the entity being requested for load
+ The load options.
+ The entity from the second-level cache, or null.
+
+
+
+ Defines the default lock event listeners used by hibernate to lock entities
+ in response to generated lock events.
+
+
+
+
+ Defines the contract for handling of lock events generated from a session.
+
+
+
+ Handle the given lock event.
+ The lock event to be handled.
+
+
+ Handle the given lock event.
+ The lock event to be handled.
+
+
+
+ Defines the default copy event listener used by hibernate for copying entities
+ in response to generated copy events.
+
+
+
+
+ Defines the contract for handling of merge events generated from a session.
+
+
+
+ Handle the given merge event.
+ The merge event to be handled.
+
+
+ Handle the given merge event.
+ The merge event to be handled.
+
+
+
+
+ Perform any cascades needed as part of this copy event.
+
+ The merge event being processed.
+ The persister of the entity being copied.
+ The entity being copied.
+ A cache of already copied instance.
+
+
+ Cascade behavior is redefined by this subclass, disable superclass behavior
+
+
+ Cascade behavior is redefined by this subclass, disable superclass behavior
+
+
+
+ Defines the default create event listener used by hibernate for creating
+ transient entities in response to generated create events.
+
+
+
+
+ Defines the contract for handling of create events generated from a session.
+
+
+
+ Handle the given create event.
+ The create event to be handled.
+
+
+ Handle the given create event.
+ The create event to be handled.
+
+
+
+ Handle the given create event.
+ The save event to be handled.
+
+
+
+ When persist is used as the cascade action, persistOnFlush should be used
+
+
+ Call interface if necessary
+
+
+
+ Occurs after an an entity instance is fully loaded.
+
+
+
+
+
+
+
+
+
+
+ Called before injecting property values into a newly
+ loaded entity instance.
+
+
+
+
+ Called before injecting property values into a newly loaded entity instance.
+
+
+
+
+
+
+
+
+
+
+ Defines the default refresh event listener used by hibernate for refreshing entities
+ in response to generated refresh events.
+
+
+
+
+ Defines the contract for handling of refresh events generated from a session.
+
+
+
+ Handle the given refresh event.
+ The refresh event to be handled.
+
+
+
+
+
+
+
+
+
+
+ Defines the default replicate event listener used by Hibernate to replicate
+ entities in response to generated replicate events.
+
+
+
+
+ Defines the contract for handling of replicate events generated from a session.
+
+
+
+ Handle the given replicate event.
+ The replicate event to be handled.
+
+
+ An event handler for save() events
+
+
+
+ Defines the default listener used by Hibernate for handling save-update events.
+
+
+
+
+ Defines the contract for handling of update events generated from a session.
+
+
+
+ Handle the given update event.
+ The update event to be handled.
+
+
+
+ The given save-update event named a transient entity.
+ Here, we will perform the save processing.
+
+ The save event to be handled.
+ The entity's identifier after saving.
+
+
+
+ Save the transient instance, assigning the right identifier
+
+ The initiating event.
+ The entity's identifier value after saving.
+
+
+
+ The given save-update event named a detached entity.
+ Here, we will perform the update processing.
+
+ The update event to be handled.
+
+
+ Determine the id to use for updating.
+ The entity.
+ The entity persister
+ The requested identifier
+ The entity mode.
+ The id.
+
+
+
+ Handles the calls needed to perform cascades as part of an update request
+ for the given entity.
+
+ The event currently being processed.
+ The defined persister for the entity being updated.
+ The entity being updated.
+
+
+ An event handler for update() events
+
+
+
+ If the user specified an id, assign it to the instance and use that,
+ otherwise use the id already assigned to the instance
+
+
+
+
+ A Visitor that determines if a dirty collection was found.
+
+
+
+
+ Reason for dirty collection
+
+
+
+ If it is a new application-instantiated collection, return true (does not occur anymore!)
+
+
+
+
+ If it is a component, recurse.
+
+
+
+
+ If it is a wrapped collection, ask the collection entry.
+
+
+
+
+
+
+
+ Gets a indicating if a dirty collection was found.
+
+ if a dirty collection was found.
+
+
+
+ Evict any collections referenced by the object from the session cache.
+ This will NOT pick up any collections that were dereferenced, so they
+ will be deleted (suboptimal but not exactly incorrect).
+
+
+
+
+ Process collections reachable from an entity.
+ This visitor assumes that wrap was already performed for the entity.
+
+
+
+
+ When a transient entity is passed to lock(), we must inspect all its collections and
+ 1. associate any uninitialized PersistentCollections with this session
+ 2. associate any initialized PersistentCollections with this session, using the existing snapshot
+ 3. throw an exception for each "new" collection
+
+
+
+
+ Abstract superclass of visitors that reattach collections
+
+
+
+
+ Reassociates uninitialized proxies with the session
+
+
+
+
+ Visit a many-to-one or one-to-one associated entity. Default superclass implementation is a no-op.
+
+
+
+
+
+
+
+ Has the owner of the collection changed since the collection was snapshotted and detached?
+
+
+
+
+ Reattach a detached (disassociated) initialized or uninitialized
+ collection wrapper, using a snapshot carried with the collection wrapper
+
+
+
+
+ Schedules a collection for deletion.
+
+ The persister representing the collection to be removed.
+ The collection key (differs from owner-id in the case of property-refs).
+ The session from which the request originated.
+
+
+
+ This version is slightly different in that here we need to assume that
+ the owner is not yet associated with the session, and thus we cannot
+ rely on the owner's EntityEntry snapshot...
+
+ The persister for the collection role being processed.
+
+
+
+
+ When an entity is passed to replicate(), and there is an existing row, we must
+ inspect all its collections and
+ 1. associate any uninitialized PersistentCollections with this session
+ 2. associate any initialized PersistentCollections with this session, using the existing snapshot
+ 3. execute a collection removal (SQL DELETE) for each null collection property or "new" collection
+
+
+
+
+ When an entity is passed to update(), we must inspect all its collections and
+ 1. associate any uninitialized PersistentCollections with this session
+ 2. associate any initialized PersistentCollections with this session, using the existing snapshot
+ 3. execute a collection removal (SQL DELETE) for each null collection property or "new" collection
+
+
+
+
+ Wrap collections in a Hibernate collection wrapper.
+
+
+
+
+ Defines a base class for Session generated events.
+
+
+
+
+ Constructs an event from the given event session.
+
+ The session event source.
+
+
+
+ Returns the session event source for this event.
+ This is the underlying session from which this event was generated.
+
+
+
+ Defines an event class for the auto-flushing of a session.
+
+
+ Defines an event class for the flushing of a session.
+
+
+ Defines an event class for the deletion of an entity.
+
+
+ Constructs a new DeleteEvent instance.
+ The entity to be deleted.
+ The session from which the delete event was generated.
+
+
+
+
+ Returns the encapsulated entity to be deleed.
+
+
+
+ Defines an event class for the dirty-checking of a session.
+
+
+
+ A convience holder for all defined session event listeners.
+
+
+
+
+ Call on any listeners that implement
+ .
+
+
+
+
+ Defines an event class for the evicting of an entity.
+
+
+
+ The main runtime interface between a Java application and Hibernate. This is the central
+ API class abstracting the notion of a persistence service.
+
+
+
+ The lifecycle of a ISession is bounded by the beginning and end of a logical
+ transaction. (Long transactions might span several database transactions.)
+
+
+ The main function of the ISession is to offer create, find and delete operations
+ for instances of mapped entity classes. Instances may exist in one of two states:
+
+ transient: not associated with any ISession
+ persistent: associated with a ISession
+
+
+
+ Transient instances may be made persistent by calling Save(), Insert(),
+ or Update(). Persistent instances may be made transient by calling Delete().
+ Any instance returned by a List(), Iterate(), Load(), or Create
+ method is persistent.
+
+
+ Save() results in an SQL INSERT, Delete()
+ in an SQL DELETE and Update() in an SQL UPDATE. Changes to
+ persistent instances are detected at flush time and also result in an SQL
+ UPDATE.
+
+
+ It is not intended that implementors be threadsafe. Instead each thread/transaction should obtain
+ its own instance from an ISessionFactory.
+
+
+ A ISession instance is serializable if its persistent classes are serializable
+
+
+ A typical transaction should use the following idiom:
+
+ ISession sess = factory.OpenSession();
+ ITransaction tx;
+ try {
+ tx = sess.BeginTransaction();
+ //do some work
+ ...
+ tx.Commit();
+ } catch (Exception e) {
+ if (tx != null) tx.Rollback();
+ throw;
+ } finally {
+ sess.Close();
+ }
+
+
+
+ If the ISession throws an exception, the transaction must be rolled back and the session
+ discarded. The internal state of the ISession might not be consistent with the database
+ after the exception occurs.
+
+
+
+
+
+
+ Force the ISession to flush.
+
+
+ Must be called at the end of a unit of work, before commiting the transaction and closing
+ the session (Transaction.Commit() calls this method). Flushing if the process
+ of synchronising the underlying persistent store with persistable state held in memory.
+
+
+
+
+ Disconnect the ISession from the current ADO.NET connection.
+
+
+ If the connection was obtained by Hibernate, close it or return it to the connection
+ pool. Otherwise return it to the application. This is used by applications which require
+ long transactions.
+
+ The connection provided by the application or
+
+
+
+ Obtain a new ADO.NET connection.
+
+
+ This is used by applications which require long transactions
+
+
+
+
+ Reconnect to the given ADO.NET connection.
+
+ This is used by applications which require long transactions
+ An ADO.NET connection
+
+
+
+ End the ISession by disconnecting from the ADO.NET connection and cleaning up.
+
+
+ It is not strictly necessary to Close() the ISession but you must
+ at least Disconnect() it.
+
+ The connection provided by the application or
+
+
+
+ Cancel execution of the current query.
+
+
+ May be called from one thread to stop execution of a query in another thread.
+ Use with care!
+
+
+
+
+ Does this ISession contain any changes which must be
+ synchronized with the database? Would any SQL be executed if
+ we flushed this session?
+
+
+
+
+ Return the identifier of an entity instance cached by the ISession
+
+
+ Throws an exception if the instance is transient or associated with a different
+ ISession
+
+ a persistent instance
+ the identifier
+
+
+
+ Is this instance associated with this Session?
+
+ an instance of a persistent class
+ true if the given instance is associated with this Session
+
+
+
+ Remove this instance from the session cache.
+
+
+ Changes to the instance will not be synchronized with the database.
+ This operation cascades to associated instances if the association is mapped
+ with cascade="all" or cascade="all-delete-orphan".
+
+ a persistent instance
+
+
+
+ Return the persistent instance of the given entity class with the given identifier,
+ obtaining the specified lock mode.
+
+ A persistent class
+ A valid identifier of an existing persistent instance of the class
+ The lock level
+ the persistent instance
+
+
+
+ Return the persistent instance of the given entity class with the given identifier,
+ assuming that the instance exists.
+
+
+ You should not use this method to determine if an instance exists (use a query or
+ instead). Use this only to retrieve an instance
+ that you assume exists, where non-existence would be an actual error.
+
+ A persistent class
+ A valid identifier of an existing persistent instance of the class
+ The persistent instance or proxy
+
+
+
+ Return the persistent instance of the given entity class with the given identifier,
+ obtaining the specified lock mode.
+
+ A persistent class
+ A valid identifier of an existing persistent instance of the class
+ The lock level
+ the persistent instance
+
+
+
+ Return the persistent instance of the given entity class with the given identifier,
+ assuming that the instance exists.
+
+
+ You should not use this method to determine if an instance exists (use a query or
+ instead). Use this only to retrieve an instance that you
+ assume exists, where non-existence would be an actual error.
+
+ A persistent class
+ A valid identifier of an existing persistent instance of the class
+ The persistent instance or proxy
+
+
+
+ Read the persistent state associated with the given identifier into the given transient
+ instance.
+
+ An "empty" instance of the persistent class
+ A valid identifier of an existing persistent instance of the class
+
+
+
+ Persist all reachable transient objects, reusing the current identifier
+ values. Note that this will not trigger the Interceptor of the Session.
+
+ a detached instance of a persistent class
+
+
+
+
+ Persist the state of the given detached instance, reusing the current
+ identifier value. This operation cascades to associated instances if
+ the association is mapped with cascade="replicate".
+
+
+ a detached instance of a persistent class
+
+
+
+
+ Persist the given transient instance, first assigning a generated identifier.
+
+
+ Save will use the current value of the identifier property if the Assigned
+ generator is used.
+
+ A transient instance of a persistent class
+ The generated identifier
+
+
+
+ Persist the given transient instance, using the given identifier.
+
+ A transient instance of a persistent class
+ An unused valid identifier
+
+
+
+ Persist the given transient instance, first assigning a generated identifier. (Or
+ using the current value of the identifier property if the assigned
+ generator is used.)
+
+ The Entity name.
+ a transient instance of a persistent class
+ the generated identifier
+
+ This operation cascades to associated instances if the
+ association is mapped with cascade="save-update".
+
+
+
+
+ Either Save() or Update() the given instance, depending upon the value of
+ its identifier property.
+
+
+ By default the instance is always saved. This behaviour may be adjusted by specifying
+ an unsaved-value attribute of the identifier property mapping
+
+ A transient instance containing new or updated state
+
+
+
+ Either or
+ the given instance, depending upon resolution of the unsaved-value checks
+ (see the manual for discussion of unsaved-value checking).
+
+ The name of the entity
+ a transient or detached instance containing new or updated state
+
+
+
+ This operation cascades to associated instances if the association is mapped
+ with cascade="save-update".
+
+
+
+
+ Update the persistent instance with the identifier of the given transient instance.
+
+
+ If there is a persistent instance with the same identifier, an exception is thrown. If
+ the given transient instance has a identifier, an exception will be thrown.
+
+ A transient instance containing updated state
+
+
+
+ Update the persistent state associated with the given identifier.
+
+
+ An exception is thrown if there is a persistent instance with the same identifier
+ in the current session.
+
+ A transient instance containing updated state
+ Identifier of persistent instance
+
+
+
+ Update the persistent instance with the identifier of the given detached
+ instance.
+
+ The Entity name.
+ a detached instance containing updated state
+
+ If there is a persistent instance with the same identifier,
+ an exception is thrown. This operation cascades to associated instances
+ if the association is mapped with cascade="save-update".
+
+
+
+
+
+
+
+
+ Copy the state of the given object onto the persistent object with the same
+ identifier. If there is no persistent instance currently associated with
+ the session, it will be loaded. Return the persistent instance. If the
+ given instance is unsaved or does not exist in the database, save it and
+ return it as a newly persistent instance. Otherwise, the given instance
+ does not become associated with the session.
+
+ a transient instance with state to be copied
+ an updated persistent instance
+
+
+
+ Copy the state of the given object onto the persistent object with the
+ given identifier. If there is no persistent instance currently associated
+ with the session, it will be loaded. Return the persistent instance. If
+ there is no database row with the given identifier, save the given instance
+ and return it as a newly persistent instance. Otherwise, the given instance
+ does not become associated with the session.
+
+ a persistent or transient instance with state to be copied
+ the identifier of the instance to copy to
+ an updated persistent instance
+
+
+
+ Remove a persistent instance from the datastore.
+
+
+ The argument may be an instance associated with the receiving ISession or a
+ transient instance with an identifier associated with existing persistent state.
+
+ The instance to be removed
+
+
+
+ Execute a query
+
+ A query expressed in Hibernate's query language
+ A distinct list of instances
+ See for implications of cache usage.
+
+
+
+ Execute a query, binding a value to a "?" parameter in the query string.
+
+ The query string
+ A value to be bound to a "?" placeholder
+ The Hibernate type of the value
+ A distinct list of instances
+ See for implications of cache usage.
+
+
+
+ Execute a query, binding an array of values to a "?" parameters in the query string.
+
+ The query string
+ An array of values to be bound to the "?" placeholders
+ An array of Hibernate types of the values
+ A distinct list of instances
+ See for implications of cache usage.
+
+
+
+ Execute a query and return the results in an interator.
+
+
+
+ If the query has multiple return values, values will be returned in an array of
+ type object[].
+
+
+ Entities returned as results are initialized on demand. The first SQL query returns
+ identifiers only. So Enumerator() is usually a less efficient way to retrieve
+ object than List().
+
+
+ The query string
+ An enumerator
+
+
+
+ Execute a query and return the results in an interator,
+ binding a value to a "?" parameter in the query string.
+
+
+
+ If the query has multiple return values, values will be returned in an array of
+ type object[].
+
+
+ Entities returned as results are initialized on demand. The first SQL query returns
+ identifiers only. So Enumerator() is usually a less efficient way to retrieve
+ object than List().
+
+
+ The query string
+ A value to be written to a "?" placeholder in the query string
+ The hibernate type of the value
+ An enumerator
+
+
+
+ Execute a query and return the results in an interator,
+ binding the values to "?"s parameters in the query string.
+
+
+
+ If the query has multiple return values, values will be returned in an array of
+ type object[].
+
+
+ Entities returned as results are initialized on demand. The first SQL query returns
+ identifiers only. So Enumerator() is usually a less efficient way to retrieve
+ object than List().
+
+
+ The query string
+ A list of values to be written to "?" placeholders in the query
+ A list of hibernate types of the values
+ An enumerator
+
+
+
+ Apply a filter to a persistent collection.
+
+
+ A filter is a Hibernate query that may refer to this, the collection element.
+ Filters allow efficient access to very large lazy collections. (Executing the filter
+ does not initialize the collection.)
+
+ A persistent collection to filter
+ A filter query string
+ The resulting collection
+
+
+
+ Apply a filter to a persistent collection, binding the given parameter to a "?" placeholder
+
+
+ A filter is a Hibernate query that may refer to this, the collection element.
+ Filters allow efficient access to very large lazy collections. (Executing the filter
+ does not initialize the collection.)
+
+ A persistent collection to filter
+ A filter query string
+ A value to be written to a "?" placeholder in the query
+ The hibernate type of value
+ A collection
+
+
+
+ Apply a filter to a persistent collection, binding the given parameters to "?" placeholders.
+
+
+ A filter is a Hibernate query that may refer to this, the collection element.
+ Filters allow efficient access to very large lazy collections. (Executing the filter
+ does not initialize the collection.)
+
+ A persistent collection to filter
+ A filter query string
+ The values to be written to "?" placeholders in the query
+ The hibernate types of the values
+ A collection
+
+
+
+ Delete all objects returned by the query.
+
+ The query string
+ Returns the number of objects deleted.
+
+
+
+ Delete all objects returned by the query.
+
+ The query string
+ A value to be written to a "?" placeholer in the query
+ The hibernate type of value.
+ The number of instances deleted
+
+
+
+ Delete all objects returned by the query.
+
+ The query string
+ A list of values to be written to "?" placeholders in the query
+ A list of Hibernate types of the values
+ The number of instances deleted
+
+
+
+ Obtain the specified lock level upon the given object.
+
+ A persistent instance
+ The lock level
+
+
+
+ Obtain the specified lock level upon the given object.
+
+ The Entity name.
+ a persistent or transient instance
+ the lock level
+
+ This may be used to perform a version check (), to upgrade to a pessimistic
+ lock (), or to simply reassociate a transient instance
+ with a session (). This operation cascades to associated
+ instances if the association is mapped with cascade="lock".
+
+
+
+
+ Re-read the state of the given instance from the underlying database.
+
+
+
+ It is inadvisable to use this to implement long-running sessions that span many
+ business tasks. This method is, however, useful in certain special circumstances.
+
+
+ For example,
+
+ Where a database trigger alters the object state upon insert or update
+ After executing direct SQL (eg. a mass update) in the same session
+ After inserting a Blob or Clob
+
+
+
+ A persistent instance
+
+
+
+ Re-read the state of the given instance from the underlying database, with
+ the given LockMode.
+
+
+ It is inadvisable to use this to implement long-running sessions that span many
+ business tasks. This method is, however, useful in certain special circumstances.
+
+ a persistent or transient instance
+ the lock mode to use
+
+
+
+ Determine the current lock mode of the given object
+
+ A persistent instance
+ The current lock mode
+
+
+
+ Begin a unit of work and return the associated ITransaction object.
+
+
+ If a new underlying transaction is required, begin the transaction. Otherwise
+ continue the new work in the context of the existing underlying transaction.
+ The class of the returned object is determined by
+ the property transaction_factory
+
+ A transaction instance
+
+
+
+ Begin a transaction with the specified isolationLevel
+
+ Isolation level for the new transaction
+ A transaction instance having the specified isolation level
+
+
+
+ Creates a new Criteria for the entity class.
+
+ The class to Query
+ An ICriteria object
+
+
+
+ Creates a new Criteria for the entity class with a specific alias
+
+ The class to Query
+ The alias of the entity
+ An ICriteria object
+
+
+
+ Create a new instance of Query for the given query string
+
+ A hibernate query string
+ The query
+
+
+
+ Create a new instance of Query for the given collection and filter string
+
+ A persistent collection
+ A hibernate query
+ A query
+
+
+
+ Obtain an instance of for a named query string defined in the
+ mapping file.
+
+ The name of a query defined externally.
+ An from a named query string.
+
+ The query can be either in HQL or SQL format.
+
+
+
+
+ Create a new instance of IQuery for the given SQL string.
+
+ a query expressed in SQL
+ a table alias that appears inside {} in the SQL string
+ the returned persistent class
+ An from the SQL string
+
+
+
+ Create a new instance of for the given SQL string.
+
+ a query expressed in SQL
+ an array of table aliases that appear inside {} in the SQL string
+ the returned persistent classes
+ An from the SQL string
+
+
+
+ Create a new instance of for the given SQL query string.
+
+ a query expressed in SQL
+ An from the SQL string
+
+
+
+ Completely clear the session. Evict all loaded instances and cancel all pending
+ saves, updates and deletions. Do not close open enumerables or instances of
+ ScrollableResults.
+
+
+
+
+ Return the persistent instance of the given entity class with the given identifier, or null
+ if there is no such persistent instance. (If the instance, or a proxy for the instance, is
+ already associated with the session, return that instance or proxy.)
+
+ a persistent class
+ an identifier
+ a persistent instance or null
+
+
+
+ Return the persistent instance of the given entity class with the given identifier, or null
+ if there is no such persistent instance. Obtain the specified lock mode if the instance
+ exists.
+
+ a persistent class
+ an identifier
+ the lock mode
+ a persistent instance or null
+
+
+
+ Return the persistent instance of the given named entity with the given identifier,
+ or null if there is no such persistent instance. (If the instance, or a proxy for the
+ instance, is already associated with the session, return that instance or proxy.)
+
+ the entity name
+ an identifier
+ a persistent instance or null
+
+
+
+ Strongly-typed version of
+
+
+
+
+ Strongly-typed version of
+
+
+
+
+ Return the entity name for a persistent entity
+
+ a persistent entity
+ the entity name
+
+
+
+ Enable the named filter for this current session.
+
+ The name of the filter to be enabled.
+ The Filter instance representing the enabled filter.
+
+
+
+ Retrieve a currently enabled filter by name.
+
+ The name of the filter to be retrieved.
+ The Filter instance representing the enabled filter.
+
+
+
+ Disable the named filter for the current session.
+
+ The name of the filter to be disabled.
+
+
+
+ Create a multi query, a query that can send several
+ queries to the server, and return all their results in a single
+ call.
+
+
+ An that can return
+ a list of all the results of all the queries.
+ Note that each query result is itself usually a list.
+
+
+
+
+ Sets the batch size of the session
+
+
+
+
+
+
+ Gets the session implementation.
+
+
+ This method is provided in order to get the NHibernate implementation of the session from wrapper implementions.
+ Implementors of the interface should return the NHibernate implementation of this method.
+
+
+ An NHibernate implementation of the interface
+
+
+
+
+ An that can return a list of all the results
+ of all the criterias.
+
+
+
+
+
+ Starts a new Session with the given entity mode in effect. This secondary
+ Session inherits the connection, transaction, and other context
+ information from the primary Session. It doesn't need to be flushed
+ or closed by the developer.
+
+ The entity mode to use for the new session.
+ The new session
+
+
+
+ Determines at which points Hibernate automatically flushes the session.
+
+
+ For a readonly session, it is reasonable to set the flush mode to FlushMode.Never
+ at the start of the session (in order to achieve some extra performance).
+
+
+
+ The current cache mode.
+
+ Cache mode determines the manner in which this session can interact with
+ the second level cache.
+
+
+
+
+ Get the that created this instance.
+
+
+
+
+ Gets the ADO.NET connection.
+
+
+ Applications are responsible for calling commit/rollback upon the connection before
+ closing the ISession.
+
+
+
+
+ Is the ISession still open?
+
+
+
+
+ Is the ISession currently connected?
+
+
+
+
+ Get the current Unit of Work and return the associated ITransaction object.
+
+
+
+ Get the statistics for this session.
+
+
+
+ Instantiate an entity instance, using either an interceptor,
+ or the given persister
+
+
+
+ Force an immediate flush
+
+
+ Cascade merge an entity instance
+
+
+ Cascade persist an entity instance
+
+
+ Cascade persist an entity instance during the flush process
+
+
+ Cascade refresh an entity instance
+
+
+ Cascade copy an entity instance
+
+
+ Cascade delete an entity instance
+
+
+ Get the ActionQueue for this session
+
+
+
+ An event listener that requires access to mappings to
+ initialize state at initialization time.
+
+
+
+
+ An event that occurs when a collection wants to be initialized
+
+
+
+ Called after deleting an item from the datastore
+
+
+
+
+
+
+
+
+ Called after inserting an item in the datastore
+
+
+
+
+
+
+
+
+
+ Called after updating the datastore
+
+
+
+
+
+
+
+
+
+
+ Called before deleting an item from the datastore
+
+
+
+ Return true if the operation should be vetoed
+
+
+
+
+ Called before inserting an item in the datastore
+
+
+
+ Return true if the operation should be vetoed
+
+
+
+
+ Called before updating the datastore
+
+
+
+ Return true if the operation should be vetoed
+
+
+
+
+ Values for listener type property.
+
+ Unused
+
+
+ Not allowed in Xml. It represente de default value when an explicit type is assigned.
+
+
+ Xml value: auto-flush
+
+
+ Xml value: merge
+
+
+ Xml value: create
+
+
+ Xml value: create-onflush
+
+
+ Xml value: delete
+
+
+ Xml value: dirty-check
+
+
+ Xml value: evict
+
+
+ Xml value: flush
+
+
+ Xml value: flush-entity
+
+
+ Xml value: load
+
+
+ Xml value: load-collection
+
+
+ Xml value: lock
+
+
+ Xml value: refresh
+
+
+ Xml value: replicate
+
+
+ Xml value: save-update
+
+
+ Xml value: save
+
+
+ Xml value: pre-update
+
+
+ Xml value: update
+
+
+ Xml value: pre-load
+
+
+ Xml value: pre-delete
+
+
+ Xml value: pre-insert
+
+
+ Xml value: post-load
+
+
+ Xml value: post-insert
+
+
+ Xml value: post-update
+
+
+ Xml value: post-delete
+
+
+ Xml value: post-commit-update
+
+
+ Xml value: post-commit-insert
+
+
+ Xml value: post-commit-delete
+
+
+ Defines an event class for the loading of an entity.
+
+
+
+ Defines an event class for the locking of an entity.
+
+
+
+
+ An event class for merge() and saveOrUpdateCopy()
+
+
+
+ An event class for persist()
+
+
+
+ Occurs after deleting an item from the datastore
+
+
+
+
+ Occurs after inserting an item in the datastore
+
+
+
+
+ Occurs after an an entity instance is fully loaded.
+
+
+
+
+ Occurs after the datastore is updated
+
+
+
+
+ Occurs before deleting an item from the datastore
+
+
+
+
+ Occurs before inserting an item in the datastore
+
+
+
+
+ Called before injecting property values into a newly loaded entity instance.
+
+
+
+
+ Occurs before updating the datastore
+
+
+
+
+ Defines an event class for the refreshing of an object.
+
+
+
+
+ Defines an event class for the replication of an entity.
+
+
+
+
+ An event class for saveOrUpdate()
+
+
+
+
+ Implementation of ADOException indicating problems with communicating with the
+ database (can also include incorrect ADO setup).
+
+
+
+
+ Wraps exceptions that occur during ADO.NET calls.
+
+
+ Exceptions thrown by various ADO.NET providers are not derived from
+ a common base class (SQLException in Java), so
+ is used instead in NHibernate.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+ The exception that is the cause of the current exception. If the innerException parameter
+ is not a null reference, the current exception is raised in a catch block that handles
+ the inner exception.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Converts the given SQLException into NHibernate's ADOException hierarchy, as well as performing
+ appropriate logging.
+
+ The converter to use.
+ The exception to convert.
+ An optional error message.
+ The SQL executed.
+ The converted .
+
+
+
+ Converts the given SQLException into NHibernate's ADOException hierarchy, as well as performing
+ appropriate logging.
+
+ The converter to use.
+ The exception to convert.
+ An optional error message.
+ The converted .
+
+
+ For the given , locates the .
+ The exception from which to extract the
+ The , or null.
+
+
+
+ Implementation of ADOException indicating that the requested DML operation
+ resulted in a violation of a defined integrity constraint.
+
+
+
+
+ Returns the name of the violated constraint, if known.
+
+ The name of the violated constraint, or null if not known.
+
+
+
+ Implementation of ADOException indicating that evaluation of the
+ valid SQL statement against the given data resulted in some
+ illegal operation, mismatched types or incorrect cardinality.
+
+
+
+
+ The Configurable interface defines the contract for impls that
+ want to be configured prior to usage given the currently defined Hibernate properties.
+
+
+
+ Configure the component, using the given settings and properties.
+ All defined startup properties.
+
+
+
+ Defines a contract for implementations that know how to convert a
+ into NHibernate's hierarchy.
+
+
+ Inspired by Spring's SQLExceptionTranslator.
+
+ Implementations must have a constructor which takes a
+ parameter.
+
+ Implementations may implement if they need to perform
+ configuration steps prior to first use.
+
+
+
+
+
+ Convert the given into NHibernate's ADOException hierarchy.
+
+ The to be converted.
+ An optional error message.
+ The SQL that generate the exception
+ The resulting ADOException.
+
+
+
+ Implementation of ADOException indicating a problem acquiring lock
+ on the database.
+
+
+
+ A factory for building SQLExceptionConverter instances.
+
+
+ Build a SQLExceptionConverter instance.
+ The defined dialect.
+ The configuration properties.
+ An appropriate instance.
+
+ First, looks for a property to see
+ if the configuration specified the class of a specific converter to use. If this
+ property is set, attempt to construct an instance of that class. If not set, or
+ if construction fails, the converter specific to the dialect will be used.
+
+
+
+
+ Builds a minimal converter. The instance returned here just always converts to .
+
+ The minimal converter.
+
+
+
+ Implementation of ADOException indicating that the SQL sent to the database
+ server was invalid (syntax error, invalid object references, etc).
+
+
+
+
+ A SQLExceptionConverter implementation which performs no conversion of
+ the underlying .
+ Interpretation of a SQL error based on
+ is not possible as using the ErrorCode (which is, however, vendor-
+ specific). Use of a ErrorCode-based converter should be preferred approach
+ for converting/interpreting SQLExceptions.
+
+
+
+ Handle an exception not converted to a specific type based on the SQLState.
+ The exception to be handled.
+ An optional message
+ Optionally, the sql being performed when the exception occurred.
+ The converted exception; should never be null.
+
+
+
+ Generates translators which uses the older hand-written parser to perform the translation.
+
+
+
+
+ Facade for generation of
+ and instances.
+
+
+
+
+ Construct a instance
+ capable of translating an HQL query string.
+
+
+ The query-identifier (used in collection).
+ This is typically the same as the queryString parameter except for the case of
+ split polymorphic queries which result in multiple physical sql queries.
+
+ The query string to be translated
+ Currently enabled filters
+ The session factory
+ An appropriate translator.
+
+
+
+ Construct a instance capable of
+ translating an HQL filter string.
+
+
+ The query-identifier (used in collection).
+ This is typically the same as the queryString parameter except for the case of
+ split polymorphic queries which result in multiple physical sql queries.
+
+ The query string to be translated
+ Currently enabled filters
+ The session factory
+ An appropriate translator.
+
+
+
+ Parses the hibernate query into its constituent clauses.
+
+
+
+
+ A parser is a state machine that accepts a string of tokens,
+ bounded by start() and end() and modifies a QueryTranslator. Parsers
+ are NOT intended to be threadsafe. They SHOULD be reuseable
+ for more than one token stream.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Parses the from clause of a hibernate query, looking for tables and
+ aliases for the SQL query.
+
+
+
+
+
+
+
+ FromPathExpressionParser
+
+
+
+
+ Parses an expression of the form foo.bar.baz and builds up an expression
+ involving two less table joins than there are path components.
+
+
+
+
+
+
+
+
+
+ NOTE: we avoid joining to the next table if the named property is just the foreign key value
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Used to hold column type in nested functions.
+
+
+
+
+ Parses the GROUP BY clause of an aggregate query
+
+
+
+
+ Parses the having clause of a hibernate query and translates it to an
+ SQL having clause.
+
+
+
+ Parses the where clause of a hibernate query and translates it to an
+ SQL where clause.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Parses the ORDER BY clause of a query
+
+
+
+
+
+
+ HQL lexical analyzer (not really a parser)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ An instance of QueryTranslator translates a Hibernate query string to SQL.
+
+
+
+
+ Abstract superclass of object loading (and querying) strategies.
+
+
+
+ This class implements useful common functionality that concrete loaders would delegate to.
+ It is not intended that this functionality would be directly accessed by client code (Hence,
+ all methods of this class are declared protected or private.) This class relies heavily upon the
+ interface, which is the contract between this class and
+ s that may be loaded by it.
+
+
+ The present implementation is able to load any number of columns of entities and at most
+ one collection role per query.
+
+
+
+
+
+ What lock mode does this load entities with?
+
+ A Collection of lock modes specified dynamically via the Query Interface
+
+
+
+
+ Append FOR UPDATE OF clause, if necessary. This
+ empty superclass implementation merely returns its first
+ argument.
+
+
+
+
+ Does this query return objects that might be already cached by
+ the session, whose lock mode may need upgrading.
+
+
+
+
+
+ Modify the SQL, adding lock hints and comments, if necessary
+
+
+
+
+ Execute an SQL query and attempt to instantiate instances of the class mapped by the given
+ persister from each row of the DataReader. If an object is supplied, will attempt to
+ initialize that object. If a collection is supplied, attempt to initialize that collection.
+
+
+
+
+ Loads a single row from the result set. This is the processing used from the
+ ScrollableResults where no collection fetches were encountered.
+
+ The result set from which to do the load.
+ The session from which the request originated.
+ The query parameters specified by the user.
+ Should proxies be generated
+ The loaded "row".
+
+
+
+
+ Read any collection elements contained in a single row of the result set
+
+
+
+
+ Get the actual object that is returned in the user-visible result list.
+
+
+ This empty implementation merely returns its first argument. This is
+ overridden by some subclasses.
+
+
+
+
+ For missing objects associated by one-to-one with another object in the
+ result set, register the fact that the the object is missing with the
+ session.
+
+
+
+
+ Read one collection element from the current row of the ADO.NET result set
+
+
+
+
+ If this is a collection initializer, we need to tell the session that a collection
+ is being initilized, to account for the possibility of the collection having
+ no elements (hence no rows in the result set).
+
+
+
+
+ Read a row of EntityKeys from the IDataReader into the given array.
+
+
+ Warning: this method is side-effecty. If an id is given, don't bother going
+ to the IDataReader
+
+
+
+
+
+
+
+
+
+
+ Check the version of the object in the IDataReader against
+ the object version in the session cache, throwing an exception
+ if the vesrion numbers are different.
+
+
+
+
+
+
+
+
+
+
+
+ Resolve any ids for currently loaded objects, duplications within the IDataReader,
+ etc. Instanciate empty objects to be initialized from the IDataReader. Return an
+ array of objects (a row of results) and an array of booleans (by side-effect) that determine
+ wheter the corresponding object should be initialized
+
+
+
+
+ The entity instance is already in the session cache
+
+
+
+
+ The entity instance is not in the session cache
+
+
+
+
+ Hydrate the state of an object from the SQL IDataReader, into
+ an array of "hydrated" values (do not resolve associations yet),
+ and pass the hydrated state to the session.
+
+
+
+
+ Determine the concrete class of an instance for the IDataReader
+
+
+
+
+ Advance the cursor to the first required row of the IDataReader
+
+
+
+
+
+
+ Should we pre-process the SQL string, adding a dialect-specific
+ LIMIT clause.
+
+
+
+
+
+
+
+ Bind positional parameter values to the IDbCommand
+ (these are parameters specified by ?).
+
+
+
+
+
+
+
+
+
+ Obtain an IDbCommand with all parameters pre-bound. Bind positional parameters,
+ named parameters, and limit parameters.
+
+
+ Creates an IDbCommand object and populates it with the values necessary to execute it against the
+ database to Load an Entity.
+
+ The to use for the IDbCommand.
+ TODO: find out where this is used...
+ The SessionImpl this Command is being prepared in.
+ A CommandWrapper wrapping an IDbCommand that is ready to be executed.
+
+
+
+ Some dialect-specific LIMIT clauses require the maximum last row number,
+ others require the maximum returned row count.
+
+
+
+
+ Bind parameters needed by the dialect-specific LIMIT clause
+
+ The number of parameters bound
+
+
+
+ Limits the number of rows returned by the Sql query if necessary.
+
+ The IDbCommand to limit.
+ The RowSelection that contains the MaxResults info.
+ TODO: This does not apply to ADO.NET at all
+
+
+
+ Fetch a IDbCommand, call SetMaxRows and then execute it,
+ advance to the first result and return an SQL IDataReader
+
+ The to execute.
+ The to apply to the and .
+ true if result types need to be auto-discovered by the loader; false otherwise.
+ The to load in.
+
+ An IDataReader advanced to the first record in RowSelection.
+
+
+
+ Bind named parameters to the IDbCommand
+
+ The that contains the parameters.
+ The named parameters (key) and the values to set.
+ The this Loader is using.
+
+
+
+
+ Called by subclasses that load entities
+
+
+
+
+ Called by subclasses that batch load entities
+
+
+
+
+ Called by subclasses that load collections
+
+
+
+
+ Called by wrappers that batch initialize collections
+
+
+
+
+ Called by subclasses that batch initialize collections
+
+
+
+
+ Return the query results, using the query cache, called
+ by subclasses that implement cacheable queries
+
+
+
+
+
+
+
+
+
+ Actually execute a query, ignoring the query cache
+
+
+
+
+
+
+
+ Calculate and cache select-clause suffixes. Must be
+ called by subclasses after instantiation.
+
+
+
+ of
+
+
+
+ The SqlString to be called; implemented by all subclasses
+
+
+
+ The setter was added so that class inheriting from Loader could write a
+ value using the Property instead of directly to the field.
+
+
+ The scope is protected internal because the needs to
+ be able to get the SqlString of the when
+ it is parsing a subquery.
+
+
+
+
+
+ An array of persisters of entity classes contained in each row of results;
+ implemented by all subclasses
+
+
+ The setter was added so that classes inheriting from Loader could write a
+ value using the Property instead of directly to the field.
+
+
+
+
+ An array of indexes of the entity that owns a one-to-one association
+ to the entity at the given index (-1 if there is no "owner")
+
+
+
+
+ An (optional) persister for a collection to be initialized; only collection loaders
+ return a non-null value
+
+
+
+
+ Get the index of the entity that owns the collection, or -1
+ if there is no owner in the query results (i.e. in the case of a
+ collection initializer) or no collection.
+
+
+
+
+ Return false is this loader is a batch entity loader
+
+
+
+
+ Get the SQL table aliases of entities whose
+ associations are subselect-loadable, returning
+ null if this loader does not support subselect
+ loading
+
+
+
+
+ Identifies the query for statistics reporting, if null,
+ no statistics will be reported
+
+
+
+
+ Get the result set descriptor
+
+
+
+
+ Utility method that generates 0_, 1_ suffixes. Subclasses don't
+ necessarily need to use this algorithm, but it is intended that
+ they will in most cases.
+
+
+
+
+ Specialized interface for filters.
+
+
+
+
+ Defines the constract of an HQL->SQL translator.
+
+
+
+
+ Compile a "normal" query. This method may be called multiple times. Subsequent invocations are no-ops.
+
+ Defined query substitutions.
+ Does this represent a shallow (scalar or entity-id) select?
+ There was a problem parsing the query string.
+ There was a problem querying defined mappings.
+
+
+
+ Perform a list operation given the underlying query definition.
+
+ The session owning this query.
+ The query bind parameters.
+ The query list results.
+
+
+
+
+ Perform a bulk update/delete operation given the underlying query defintion.
+
+ The query bind parameters.
+ The session owning this query.
+ The number of entities updated or deleted.
+
+
+
+
+ Returns the column names in the generated SQL.
+
+ the column names in the generated SQL.
+
+
+
+ Information about any parameters encountered during translation.
+
+
+
+
+ The set of query spaces (table names) that the query referrs to.
+
+
+
+
+ The SQL string generated by the translator.
+
+
+
+
+ The HQL string processed by the translator.
+
+
+
+
+ Returns the filters enabled for this query translator.
+
+ Filters enabled for this query execution.
+
+
+
+ Returns an array of Types represented in the query result.
+
+ Query return types.
+
+
+
+ Returns an array of HQL aliases
+
+ Returns an array of HQL aliases
+
+
+
+ Does the translated query contain collection fetches?
+
+ True if the query does contain collection fetched; false otherwise.
+
+
+
+ Compile a filter. This method may be called multiple
+ times. Subsequent invocations are no-ops.
+
+ the role name of the collection used as the basis for the filter.
+ Defined query substitutions.
+ Does this represent a shallow (scalar or entity-id) select?
+
+
+ Construct a query translator
+
+ A unique identifier for the query of which this
+ translation is part; typically this is the original, user-supplied query string.
+
+
+ The "preprocessed" query string; at the very least
+ already processed by {@link org.hibernate.hql.QuerySplitter}.
+
+ Any enabled filters.
+ The session factory.
+
+
+
+ Construct a query translator
+
+
+
+
+ Compile a subquery
+
+
+
+
+
+ Compile a "normal" query. This method may be called multiple
+ times. Subsequent invocations are no-ops.
+
+
+
+
+ Compile a filter. This method may be called multiple
+ times. Subsequent invocations are no-ops.
+
+
+
+
+ Compile the query (generate the SQL).
+
+
+
+
+ WARNING: side-effecty
+
+
+
+
+ Extract the complete clause of function.
+
+ The list of tokens
+ The index of the list that represent the founded function.
+ String trepresentation of each token.
+ Each token can be string or SqlString
+
+
+ Used for collection filters
+
+
+
+
+
+
+ Persisters for the return values of a List style query
+
+
+ The Persisters stored by QueryTranslator have to be . The
+ setter will attempt to cast the ILoadable array passed in into an
+ IQueryable array.
+
+
+
+
+ Types of the return values of an Enumerate() style query.
+ Return an array of s.
+
+
+
+
+
+
+
+ Is this query called by Scroll() or Iterate()?
+
+ true if it is, false if it is called by find() or list()
+
+
+
+
+
+
+
+
+
+ Parsers the select clause of a hibernate query, looking
+ for a table (well, really class) alias.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Wraps SessionFactoryImpl, adding more lookup behaviors and encapsulating some of the error handling.
+
+
+
+
+ Provides utility methods for generating HQL / SQL names.
+ Shared by both the 'classic' and 'new' query translators.
+
+
+
+
+ A problem occurred translating a Hibernate query to SQL due to invalid query syntax, etc.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+ The exception that is the cause of the current exception. If the innerException parameter
+ is not a null reference, the current exception is raised in a catch block that handles
+ the inner exception.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+ The query that contains the error.
+
+
+
+ Initializes a new instance of the class.
+
+
+ The exception that is the cause of the current exception. If the innerException parameter
+ is not a null reference, the current exception is raised in a catch block that handles
+ the inner exception.
+
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Sets the serialization info for after
+ getting the info from the base Exception.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Gets or sets the of HQL that caused the Exception.
+
+
+
+
+ Gets a message that describes the current .
+
+ The error message that explains the reason for this exception including the HQL.
+
+
+
+ Handle Hibernate "implicit" polymorphism, by translating the query string into
+ several "concrete" queries against mapped classes.
+
+
+
+
+
+
+
+
+ Abstract InsertGeneratedIdentifierDelegate implementation where the
+ underlying strategy causes the generated identitifer to be returned as an
+ effect of performing the insert statement. Thus, there is no need for an
+ additional sql statement to determine the generated identitifer.
+
+
+
+
+ Responsible for handling delegation relating to variants in how
+ insert-generated-identifier generator strategies dictate processing:
+
+
building the sql insert statement
+
determination of the generated identifier value
+
+
+
+
+
+ Build a specific to the delegate's mode
+ of handling generated key values.
+
+ The insert object.
+
+
+
+ Perform the indicated insert SQL statement and determine the identifier value generated.
+
+
+
+
+ The generated identifier value.
+
+
+
+ Abstract InsertGeneratedIdentifierDelegate implementation where the
+ underlying strategy requires an subsequent select after the insert
+ to determine the generated identifier.
+
+
+
+ Extract the generated key value from the given result set.
+ The session
+ The result set containing the generated primay key values.
+ The entity being saved.
+ The generated identifier
+
+
+ Bind any required parameter values into the SQL command {@link #getSelectSQL}.
+ The session
+ The prepared {@link #getSelectSQL SQL} command
+ The entity being saved.
+
+
+ Get the SQL statement to be used to retrieve generated key values.
+ The SQL command string
+
+
+
+ Nothing more than a distinguishing subclass of Insert used to indicate
+ intent.
+ Some subclasses of this also provided some additional
+ functionality or semantic to the genernated SQL statement string.
+
+
+
+
+ A class that builds an INSERT sql statement.
+
+
+
+
+
+
+
+ Builds a SqlString from the internal data.
+
+ A valid SqlString that can be converted into an IDbCommand
+
+
+
+ Adds the Property's columns to the INSERT sql
+
+ The column name for the Property
+ The IType of the property.
+ The SqlInsertBuilder.
+ The column will be associated with a parameter.
+
+
+
+ Add a column with a specific value to the INSERT sql
+
+ The name of the Column to add.
+ The value to set for the column.
+ The NHibernateType to use to convert the value to a sql string.
+ The SqlInsertBuilder.
+
+
+
+ Add a column with a specific value to the INSERT sql
+
+ The name of the Column to add.
+ A valid sql string to set as the value of the column.
+ The SqlInsertBuilder.
+
+
+
+ Specialized IdentifierGeneratingInsert which appends the database
+ specific clause which signifies to return generated IDENTITY values
+ to the end of the insert statement.
+
+
+
+
+ The general contract between a class that generates unique
+ identifiers and the .
+
+
+
+ It is not intended that this interface ever be exposed to the
+ application. It is intended that users implement this interface
+ to provide custom identifier generation strategies.
+
+
+ Implementors should provide a public default constructor.
+
+
+ Implementations that accept configuration parameters should also
+ implement .
+
+
+ Implementors must be threadsafe.
+
+
+
+
+
+ Generate a new identifier
+
+ The this id is being generated in.
+ The entity for which the id is being generated.
+ The new identifier
+
+
+
+ The IdentityGenerator for autoincrement/identity key generation.
+
+ The this id is being generated in.
+ The entity the id is being generated for.
+
+ IdentityColumnIndicator Indicates to the Session that identity (i.e. identity/autoincrement column)
+ key generation should be used.
+
+
+
+
+ An that returns the current identifier
+ assigned to an instance.
+
+
+
+ This id generation strategy is specified in the mapping file as
+ <generator class="assigned" />
+
+
+
+
+
+
+
+
+ Generates a new identifier by getting the value of the identifier
+ for the obj parameter.
+
+ The this id is being generated in.
+ The entity for which the id is being generated.
+ The value that was assigned to the mapped id's property.
+
+ Thrown when a is passed in as the obj or
+ if the identifier of obj is null.
+
+
+
+
+ An that returns a Int64 constructed from the system
+ time and a counter value. Not safe for use in a clustser!
+
+
+
+
+ An that uses the value of
+ the id property of an associated object
+
+
+
+ This id generation strategy is specified in the mapping file as
+
+ <generator class="foreign">
+ <param name="property">AssociatedObject</param>
+ </generator>
+
+
+ The mapping parameter property is required.
+
+
+
+
+ An IdentiferGenerator that supports "configuration".
+
+
+
+
+ Configure this instance, given the values of parameters
+ specified by the user as <param> elements.
+ This method is called just once, followed by instantiation.
+
+ The the identifier should be.
+ An of Param values that are keyed by parameter name.
+ The to help with Configuration.
+
+
+
+ Generates an identifer from the value of a Property.
+
+ The this id is being generated in.
+ The entity for which the id is being generated.
+
+ The identifier value from the associated object or
+ if the session
+ already contains obj.
+
+
+
+
+ Configures the ForeignGenerator by reading the value of property
+ from the parms parameter.
+
+ The the identifier should be.
+ An of Param values that are keyed by parameter name.
+ The to help with Configuration.
+
+ Thrown if the key property is not found in the parms parameter.
+
+
+
+
+ An that generates values
+ using a strategy suggested Jimmy Nilsson's
+ article
+ on informit.com.
+
+
+
+ This id generation strategy is specified in the mapping file as
+ <generator class="guid.comb" />
+
+
+ The comb algorithm is designed to make the use of GUIDs as Primary Keys, Foreign Keys,
+ and Indexes nearly as efficient as ints.
+
+
+ This code was contributed by Donald Mull.
+
+
+
+
+
+ Generate a new using the comb algorithm.
+
+ The this id is being generated in.
+ The entity for which the id is being generated.
+ The new identifier as a .
+
+
+
+ Generate a new using the comb algorithm.
+
+
+
+
+ An that generates values
+ using Guid.NewGuid().
+
+
+
+ This id generation strategy is specified in the mapping file as
+ <generator class="guid" />
+
+
+
+
+
+ Generate a new for the identifier.
+
+ The this id is being generated in.
+ The entity for which the id is being generated.
+ The new identifier as a .
+
+
+
+ Thrown by implementation class when ID generation fails
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+ The exception that is the cause of the current exception. If the innerException parameter
+ is not a null reference, the current exception is raised in a catch block that handles
+ the inner exception.
+
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Factory methods for IdentifierGenerator framework.
+
+
+
The built in strategies for identifier generation in NHibernate are:
+
+
+ strategy
+ Implementation of strategy
+
+
+ assigned
+
+
+
+ counter
+
+
+
+ foreign
+
+
+
+ guid
+
+
+
+ guid.comb
+
+
+
+ hilo
+
+
+
+ identity
+
+
+
+ native
+
+ Chooses between ,
+ , and based on the
+ 's capabilities.
+
+
+
+ seqhilo
+
+
+
+ sequence
+
+
+
+ uuid.hex
+
+
+
+ uuid.string
+
+
+
+
+
+
+ Get the generated identifier when using identity columns
+ The to read the identifier value from.
+ The the value should be converted to.
+ The the value is retrieved in.
+ The value for the identifier.
+
+
+
+ Gets the value of the identifier from the and
+ ensures it is the correct .
+
+ The to read the identifier value from.
+ The the value should be converted to.
+ The the value is retrieved in.
+
+ The value for the identifier.
+
+
+ Thrown if there is any problem getting the value from the
+ or with converting it to the .
+
+
+
+
+ An where the key is the strategy and
+ the value is the for the strategy.
+
+
+
+
+ When this is returned by Generate() it indicates that the object
+ has already been saved.
+
+
+ String.Empty
+
+
+
+
+ When this is return
+
+
+
+
+ Initializes the static fields in .
+
+
+
+
+ Creates an from the named strategy.
+
+
+ The name of the generator to create. This can be one of the NHibernate abbreviations (ie - native,
+ sequence, guid.comb, etc...), a full class name if the Type is in the NHibernate assembly, or
+ a full type name if the strategy is in an external assembly.
+
+ The that the retured identifier should be.
+ An of <param> values from the mapping.
+ The to help with Configuration.
+
+ An instantiated and configured .
+
+
+ Thrown if there are any exceptions while creating the .
+
+
+
+
+ Create the correct boxed for the identifier.
+
+ The value of the new identifier.
+ The the identifier should be.
+
+ The identifier value converted to the .
+
+
+ The type parameter must be an , ,
+ or .
+
+
+
+
+ An that indicates to the that identity
+ (ie. identity/autoincrement column) key generation should be used.
+
+
+
+ This id generation strategy is specified in the mapping file as
+ <generator class="identity" />
+ or if the database natively supports identity columns
+ <generator class="native" />
+
+
+ This indicates to NHibernate that the database generates the id when
+ the entity is inserted.
+
+
+
+
+
+ Delegate for dealing with IDENTITY columns where the dialect supports returning
+ the generated IDENTITY value directly from the insert statement.
+
+
+
+
+ Delegate for dealing with IDENTITY columns where the dialect requires an
+ additional command execution to retrieve the generated IDENTITY value
+
+
+
+ The configuration parameter holding the entity name
+
+
+
+ An IIdentifierGenerator that returns a Int64, constructed by
+ counting from the maximum primary key value at startup. Not safe for use in a
+ cluster!
+
+
+
+ java author Gavin King, .NET port Mark Holden
+
+
+ Mapping parameters supported, but not usually needed: table, column.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The configuration parameter holding the schema name
+
+
+
+ The configuration parameter holding the table name for the
+ generated id
+
+
+
+
+ The configuration parameter holding the table names for all
+ tables for which the id must be unique
+
+
+
+
+ The configuration parameter holding the primary key column
+ name of the generated id
+
+
+
+ The configuration parameter holding the catalog name
+
+
+
+ An that requires creation of database objects
+ All s that also implement
+ An have access to a special mapping parameter: schema
+
+
+
+
+ The SQL required to create the underlying database objects
+
+ The to help with creating the sql.
+
+ An array of objects that contain the sql to create the
+ necessary database objects.
+
+
+
+
+ The SQL required to remove the underlying database objects
+
+ The to help with creating the sql.
+
+ A that will drop the database objects.
+
+
+
+
+ Return a key unique to the underlying database objects.
+
+
+ A key unique to the underlying database objects.
+
+
+ Prevents us from trying to create/remove them multiple times
+
+
+
+
+ A persister that may have an identity assigned by execution of a SQL INSERT.
+
+
+
+
+ Concrete IEntityPersisters implement mapping and persistence logic for a particular class.
+
+
+ Implementors must be threadsafe (preferably immutable) and must provide a constructor of type
+ matching the signature of: (PersistentClass, SessionFactoryImplementor)
+
+
+
+
+ Finish the initialization of this object, once all ClassPersisters have been
+ instantiated. Called only once, before any other method.
+
+
+
+
+ Determine whether the given name represents a subclass entity
+ (or this entity itself) of the entity mapped by this persister.
+
+ The entity name to be checked.
+
+ True if the given entity name represents either the entity mapped by this persister or one of its subclass entities;
+ false otherwise.
+
+
+
+
+ Get the type of a particular property
+
+
+
+
+
+ Locate the property-indices of all properties considered to be dirty.
+ The current state of the entity (the state to be checked).
+ The previous state of the entity (the state to be checked against).
+ The entity for which we are checking state dirtiness.
+ The session in which the check is ccurring.
+ or the indices of the dirty properties
+
+
+ Locate the property-indices of all properties considered to be dirty.
+ The old state of the entity.
+ The current state of the entity.
+ The entity for which we are checking state modification.
+ The session in which the check is ccurring.
+ return or the indicies of the modified properties
+
+
+
+ Retrieve the current state of the natural-id properties from the database.
+
+
+ The identifier of the entity for which to retrieve the naturak-id values.
+
+
+ The session from which the request originated.
+
+ The natural-id snapshot.
+
+
+
+ Load an instance of the persistent class.
+
+
+
+
+ Do a version check (optional operation)
+
+
+
+
+ Persist an instance
+
+
+
+
+ Persist an instance, using a natively generated identifier (optional operation)
+
+
+
+
+ Delete a persistent instance
+
+
+
+
+ Update a persistent instance
+
+ The id.
+ The fields.
+ The dirty fields.
+ if set to [has dirty collection].
+ The old fields.
+ The old version.
+ The obj.
+ The rowId
+ The session.
+
+
+
+ Get the current database state of the object, in a "hydrated" form, without resolving identifiers
+
+
+
+ if select-before-update is not enabled or not supported
+
+
+
+ Get the current version of the object, or return null if there is no row for
+ the given identifier. In the case of unversioned data, return any object
+ if the row exists.
+
+
+
+
+
+
+ Try to discover the entity mode from the entity instance
+
+
+ Has the class actually been bytecode instrumented?
+
+
+ Called just after the entities properties have been initialized
+
+
+ Called just after the entity has been reassociated with the session
+
+
+
+ Create a new proxy instance
+
+
+
+
+
+
+ Is this a new transient instance?
+
+
+ Return the values of the insertable properties of the object (including backrefs)
+
+
+
+ Perform a select to retrieve the values of any generated properties
+ back from the database, injecting these generated values into the
+ given entity as well as writing this state to the persistence context.
+
+
+ Note, that because we update the persistence context here, callers
+ need to take care that they have already written the initial snapshot
+ to the persistence context before calling this method.
+
+ The entity's id value.
+ The entity for which to get the state.
+ The entity state (at the time of Save).
+ The session.
+
+
+
+ Perform a select to retrieve the values of any generated properties
+ back from the database, injecting these generated values into the
+ given entity as well as writing this state to the persistence context.
+
+
+ Note, that because we update the persistence context here, callers
+ need to take care that they have already written the initial snapshot
+ to the persistence context before calling this method.
+
+ The entity's id value.
+ The entity for which to get the state.
+ The entity state (at the time of Save).
+ The session.
+
+
+
+ The persistent class, or null
+
+
+
+
+ Does the class implement the ILifecycle inteface?
+
+
+
+
+ Does the class implement the IValidatable interface?
+
+
+
+
+ Get the proxy interface that instances of this concrete class will be cast to
+
+
+
+
+ Set the given values to the mapped properties of the given object
+
+
+
+
+ Set the value of a particular property
+
+
+
+
+ Return the values of the mapped properties of the object
+
+
+
+
+ Get the value of a particular property
+
+
+
+
+ Get the value of a particular property
+
+
+
+
+ Get the identifier of an instance ( throw an exception if no identifier property)
+
+
+
+
+ Set the identifier of an instance (or do nothing if no identifier property)
+
+ The object to set the Id property on.
+ The value to set the Id property to.
+ The EntityMode
+
+
+
+ Get the version number (or timestamp) from the object's version property (or return null if not versioned)
+
+
+
+
+ Create a class instance initialized with the given identifier
+
+
+
+
+ Determines whether the specified entity is an instance of the class
+ managed by this persister.
+
+ The entity.
+ The EntityMode
+
+ if the specified entity is an instance; otherwise, .
+
+
+
+ Does the given instance have any uninitialized lazy properties?
+
+
+
+ Set the identifier and version of the given instance back
+ to its "unsaved" value, returning the id
+
+
+
+ Get the persister for an instance of this class or a subclass
+
+
+
+ Check the version value trough .
+
+ The snapshot entity state
+ The result of .
+ NHibernate-specific feature, not present in H3.2
+
+
+
+ The ISessionFactory to which this persister "belongs".
+
+
+
+
+ Returns an object that identifies the space in which identifiers of
+ this entity hierarchy are unique.
+
+
+
+
+ The entity name which this persister maps.
+
+
+
+
+ Retrieve the underlying entity metamodel instance...
+
+ The metamodel
+
+
+
+ Returns an array of objects that identify spaces in which properties of
+ this entity are persisted, for instances of this class only.
+
+ The property spaces.
+
+ For most implementations, this returns the complete set of table names
+ to which instances of the mapped entity are persisted (not accounting
+ for superclass entity mappings).
+
+
+
+
+ Returns an array of objects that identify spaces in which properties of
+ this entity are persisted, for instances of this class and its subclasses.
+
+
+ Much like , except that here we include subclass
+ entity spaces.
+
+ The query spaces.
+
+
+
+ Are instances of this class mutable?
+
+
+
+
+ Determine whether the entity is inherited one or more other entities.
+ In other words, is this entity a subclass of other entities.
+
+ True if other entities extend this entity; false otherwise.
+
+
+
+ Is the identifier assigned before the insert by an IDGenerator or is it returned
+ by the Insert() method?
+
+
+ This determines which form of Insert() will be called.
+
+
+
+
+ Are instances of this class versioned by a timestamp or version number column?
+
+
+
+
+ Get the type of versioning (optional operation)
+
+
+
+
+ Which property holds the version number? (optional operation)
+
+
+
+
+ If the entity defines a natural id (), which
+ properties make up the natural id.
+
+
+ The indices of the properties making of the natural id; or
+ null, if no natural id is defined.
+
+
+
+
+ Return the IIdentifierGenerator for the class
+
+
+
+
+ Get the Hibernate types of the class properties
+
+
+
+
+ Get the names of the class properties - doesn't have to be the names of the actual
+ .NET properties (used for XML generation only)
+
+
+
+
+ Gets if the Property is insertable.
+
+ if the Property's value can be inserted.
+
+ This is for formula columns and if the user sets the insert attribute on the <property> element.
+
+
+
+ Which of the properties of this class are database generated values on insert?
+
+
+ Which of the properties of this class are database generated values on update?
+
+
+
+ Properties that may be dirty (and thus should be dirty-checked). These
+ include all updatable properties and some associations.
+
+
+
+
+ Get the nullability of the properties of this class
+
+
+
+
+ Get the "versionability" of the properties of this class (is the property optimistic-locked)
+
+ if the property is optimistic-locked; otherwise, .
+
+
+
+ Get the cascade styles of the properties (optional operation)
+
+
+
+
+ Get the identifier type
+
+
+
+
+ Get the name of the indentifier property (or return null) - need not return the
+ name of an actual .NET property
+
+
+
+
+ Should we always invalidate the cache instead of recaching updated state
+
+
+
+
+ Should lazy properties of this entity be cached?
+
+
+
+
+ Get the cache (optional operation)
+
+
+
+ Get the cache structure
+
+
+
+ Get the user-visible metadata for the class (optional operation)
+
+
+
+
+ Is batch loading enabled?
+
+
+
+ Is select snapshot before update enabled?
+
+
+
+ Does this entity contain a version property that is defined
+ to be database generated?
+
+
+
+
+ Does this class support dynamic proxies?
+
+
+
+
+ Do instances of this class contain collections?
+
+
+
+
+ Determine whether any properties of this entity are considered mutable.
+
+
+ True if any properties of the entity are mutable; false otherwise (meaning none are).
+
+
+
+
+ Determine whether this entity contains references to persistent collections
+ which are fetchable by subselect?
+
+
+ True if the entity contains collections fetchable by subselect; false otherwise.
+
+
+
+
+ Does this class declare any cascading save/update/deletes?
+
+
+
+
+ Does the class have a property holding the identifier value?
+
+
+
+
+ Determine whether detahced instances of this entity carry their own
+ identifier value.
+
+
+ True if either (1) or
+ (2) the identifier is an embedded composite identifier; false otherwise.
+
+
+ The other option is the deprecated feature where users could supply
+ the id during session calls.
+
+
+
+
+ Determine whether this entity defines a natural identifier.
+
+ True if the entity defines a natural id; false otherwise.
+
+
+
+ Determine whether this entity defines any lazy properties (ala
+ bytecode instrumentation).
+
+
+ True if the entity has properties mapped as lazy; false otherwise.
+
+
+
+
+ Gets if the Property is updatable
+
+ if the Property's value can be updated.
+
+ This is for formula columns and if the user sets the update attribute on the <property> element.
+
+
+
+
+ Does this class have a cache?
+
+
+
+
+ Does this entity define any properties as being database-generated on insert?
+
+
+
+
+ Does this entity define any properties as being database-generated on update?
+
+
+
+
+ Get a SQL select string that performs a select based on a unique
+ key determined by the given property name).
+
+
+ The name of the property which maps to the
+ column(s) to use in the select statement restriction.
+
+ The SQL select string
+
+
+
+ Get the database-specific SQL command to retrieve the last
+ generated IDENTITY value.
+
+
+
+ The names of the primary key columns in the root table.
+ The primary key column names.
+
+
+
+ An that generates Int64 values using an
+ oracle-style sequence. A higher performance algorithm is
+ .
+
+
+
+ This id generation strategy is specified in the mapping file as
+
+ <generator class="sequence">
+ <param name="sequence">uid_sequence</param>
+ <param name="schema">db_schema</param>
+ </generator>
+
+
+
+ The sequence parameter is required while the schema is optional.
+
+
+
+
+
+ The name of the sequence parameter.
+
+
+
+
+ The parameters parameter, appended to the create sequence DDL.
+ For example (Oracle): INCREMENT BY 1 START WITH 1 MAXVALUE 100 NOCACHE.
+
+
+
+
+ Configures the SequenceGenerator by reading the value of sequence and
+ schema from the parms parameter.
+
+ The the identifier should be.
+ An of Param values that are keyed by parameter name.
+ The to help with Configuration.
+
+
+
+ Generate an , , or
+ for the identifier by using a database sequence.
+
+ The this id is being generated in.
+ The entity for which the id is being generated.
+ The new identifier as a , , or .
+
+
+
+ The SQL required to create the database objects for a SequenceGenerator.
+
+ The to help with creating the sql.
+
+ An array of objects that contain the Dialect specific sql to
+ create the necessary database objects for the SequenceGenerator.
+
+
+
+
+ The SQL required to remove the underlying database objects for a SequenceGenerator.
+
+ The to help with creating the sql.
+
+ A that will drop the database objects for the SequenceGenerator.
+
+
+
+
+ Return a key unique to the underlying database objects for a SequenceGenerator.
+
+
+ The configured sequence name.
+
+
+
+
+ An that combines a hi/lo algorithm with an underlying
+ oracle-style sequence that generates hi values.
+
+
+
+ This id generation strategy is specified in the mapping file as
+
+ <generator class="seqhilo">
+ <param name="sequence">uid_sequence</param>
+ <param name="max_lo">max_lo_value</param>
+ <param name="schema">db_schema</param>
+ </generator>
+
+
+
+ The sequence parameter is required, the max_lo and schema are optional.
+
+
+ The user may specify a max_lo value to determine how often new hi values are
+ fetched. If sequences are not avaliable, TableHiLoGenerator might be an
+ alternative.
+
+
+
+
+
+ The name of the maximum low value parameter.
+
+
+
+
+ Configures the SequenceHiLoGenerator by reading the value of sequence, max_lo,
+ and schema from the parms parameter.
+
+ The the identifier should be.
+ An of Param values that are keyed by parameter name.
+ The to help with Configuration.
+
+
+
+ Generate an , , or
+ for the identifier by using a database sequence.
+
+ The this id is being generated in.
+ The entity for which the id is being generated.
+ The new identifier as a , , or .
+
+
+
+ An that uses a database table to store the last
+ generated value.
+
+
+
+ It is not intended that applications use this strategy directly. However,
+ it may be used to build other (efficient) strategies. The return type is
+ System.Int32
+
+
+ The hi value MUST be fetched in a seperate transaction to the ISession
+ transaction so the generator must be able to obtain a new connection and commit it.
+ Hence this implementation may not be used when the user is supplying connections.
+
+
+ The mapping parameters table and column are required.
+
+
+
+
+
+ An additional where clause that is added to
+ the queries against the table.
+
+
+
+
+ The name of the column parameter.
+
+
+
+
+ The name of the table parameter.
+
+
+
+ Default column name
+
+
+ Default table name
+
+
+
+ Configures the TableGenerator by reading the value of table,
+ column, and schema from the parms parameter.
+
+ The the identifier should be.
+ An of Param values that are keyed by parameter name.
+ The to help with Configuration.
+
+
+
+ Generate a , , or
+ for the identifier by selecting and updating a value in a table.
+
+ The this id is being generated in.
+ The entity for which the id is being generated.
+ The new identifier as a , , or .
+
+
+
+ The SQL required to create the database objects for a TableGenerator.
+
+ The to help with creating the sql.
+
+ An array of objects that contain the Dialect specific sql to
+ create the necessary database objects and to create the first value as 1
+ for the TableGenerator.
+
+
+
+
+ The SQL required to remove the underlying database objects for a TableGenerator.
+
+ The to help with creating the sql.
+
+ A that will drop the database objects for the TableGenerator.
+
+
+
+
+ Return a key unique to the underlying database objects for a TableGenerator.
+
+
+ The configured table name.
+
+
+
+
+ An that returns an Int64, constructed using
+ a hi/lo algorithm.
+
+
+
+ This id generation strategy is specified in the mapping file as
+
+ <generator class="hilo">
+ <param name="table">table</param>
+ <param name="column">id_column</param>
+ <param name="max_lo">max_lo_value</param>
+ <param name="schema">db_schema</param>
+ </generator>
+
+
+
+ The table and column parameters are required, the max_lo and
+ schema are optional.
+
+
+ The hi value MUST be fecthed in a seperate transaction to the ISession
+ transaction so the generator must be able to obtain a new connection and
+ commit it. Hence this implementation may not be used when the user is supplying
+ connections. In that case a would be a
+ better choice (where supported).
+
+
+
+
+
+ The name of the max lo parameter.
+
+
+
+
+ Configures the TableHiLoGenerator by reading the value of table,
+ column, max_lo, and schema from the parms parameter.
+
+ The the identifier should be.
+ An of Param values that are keyed by parameter name.
+ The to help with Configuration.
+
+
+
+ Generate a for the identifier by selecting and updating a value in a table.
+
+ The this id is being generated in.
+ The entity for which the id is being generated.
+ The new identifier as a .
+
+
+
+ An that returns a string of length
+ 32, 36, or 38 depending on the configuration.
+
+
+
+ This id generation strategy is specified in the mapping file as
+
+ <generator class="uuid.hex">
+ <param name="format">format_string</param>
+ <param name="seperator">seperator_string</param>
+ </generator>
+
+
+
+ The format and seperator parameters are optional.
+
+
+ The identifier string will consist of only hex digits. Optionally, the identifier string
+ may be generated with enclosing characters and seperators between each component
+ of the UUID. If there are seperators then the string length will be 36. If a format
+ that has enclosing brackets is used, then the string length will be 38.
+
+
+ format is either
+ "N" (xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx),
+ "D" (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx),
+ "B" ({xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}),
+ or "P" ((xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)). These formats are described in
+ the Guid.ToString(String) method.
+ If no format is specified the default is "N".
+
+
+ seperator is the char that will replace the "-" if specified. If no value is
+ configured then the default seperator for the format will be used. If the format "D", "B", or
+ "P" is specified, then the seperator will replace the "-". If the format is "N" then this
+ parameter will be ignored.
+
+
+ This class is based on
+
+
+
+
+
+ Generate a new for the identifier using the "uuid.hex" algorithm.
+
+ The this id is being generated in.
+ The entity for which the id is being generated.
+ The new identifier as a .
+
+
+
+ Configures the UUIDHexGenerator by reading the value of format and
+ seperator from the parms parameter.
+
+ The the identifier should be.
+ An of Param values that are keyed by parameter name.
+ The to help with Configuration.
+
+
+
+ Generate a Guid into a string using the format.
+
+ A new Guid string
+
+
+
+ An that returns a string of length
+ 16.
+
+
+
+ This id generation strategy is specified in the mapping file as
+ <generator class="uuid.string" />
+
+
+ The identifier string will NOT consist of only alphanumeric characters. Use
+ this only if you don't mind unreadable identifiers.
+
+
+ This impelementation was known to be incompatible with Postgres.
+
+
+
+
+
+ Generate a new for the identifier using the "uuid.string" algorithm.
+
+ The this id is being generated in.
+ The entity for which the id is being generated.
+ The new identifier as a .
+
+
+
+ Base class to create queries in "detached mode" where the NHibernate session is not available.
+
+
+
+
+ The behaviour of each method is basically the same of methods.
+ The main difference is on :
+ If you mix with named parameters setter, if same param name are found,
+ the value of the parameter setter override the value read from the POCO.
+
+
+
+
+ Interface to create queries in "detached mode" where the NHibernate session is not available.
+ All methods have the same semantics as the corresponding methods of the interface.
+
+
+
+
+ Get an executable instance of ,
+ to actually run the query.
+
+
+
+ Set the maximum number of rows to retrieve.
+
+ The maximum number of rows to retreive.
+
+
+
+ Sets the first row to retrieve.
+
+ The first row to retreive.
+
+
+
+ Enable caching of this query result set.
+
+ Should the query results be cacheable?
+
+
+ Set the name of the cache region.
+ The name of a query cache region, or
+ for the default query cache
+
+
+
+ Entities retrieved by this query will be loaded in
+ a read-only mode where Hibernate will never dirty-check
+ them or make changes persistent.
+
+ Enable/Disable read -only mode
+
+
+
+ The timeout for the underlying ADO query
+
+
+
+
+
+ Set the lockmode for the objects idententified by the
+ given alias that appears in the FROM clause.
+
+ alias a query alias, or this for a collection filter
+
+
+
+
+ Bind a value to an indexed parameter.
+
+ Position of the parameter in the query, numbered from 0
+ The possibly null parameter value
+ The Hibernate type
+
+
+
+ Bind a value to a named query parameter
+
+ The name of the parameter
+ The possibly null parameter value
+ The NHibernate .
+
+
+
+ Bind a value to an indexed parameter, guessing the Hibernate type from
+ the class of the given object.
+
+ The position of the parameter in the query, numbered from 0
+ The non-null parameter value
+
+
+
+ Bind a value to a named query parameter, guessing the NHibernate
+ from the class of the given object.
+
+ The name of the parameter
+ The non-null parameter value
+
+
+
+ Bind multiple values to a named query parameter. This is useful for binding a list
+ of values to an expression such as foo.bar in (:value_list)
+
+ The name of the parameter
+ A collection of values to list
+ The Hibernate type of the values
+
+
+
+ Bind multiple values to a named query parameter, guessing the Hibernate
+ type from the class of the first object in the collection. This is useful for binding a list
+ of values to an expression such as foo.bar in (:value_list)
+
+ The name of the parameter
+ A collection of values to list
+
+
+
+ Bind the property values of the given object to named parameters of the query,
+ matching property names with parameter names and mapping property types to
+ Hibernate types using heuristics.
+
+ Any POCO
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a array to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a array.
+
+
+
+ Bind an instance of a array to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a array.
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ A non-null instance of a .
+ The name of the parameter
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a mapped persistent class to an indexed parameter.
+
+ Position of the parameter in the query string, numbered from 0
+ A non-null instance of a persistent class
+
+
+
+ Bind an instance of a mapped persistent class to a named parameter.
+
+ The name of the parameter
+ A non-null instance of a persistent class
+
+
+
+ Bind an instance of a persistent enumeration class to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a persistent enumeration
+
+
+
+ Bind an instance of a persistent enumeration class to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a persistent enumeration
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ An instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ An instance of a .
+
+
+
+ Override the current session flush mode, just for this query.
+
+
+
+
+ Set a strategy for handling the query results. This can be used to change
+ "shape" of the query result.
+
+
+
+
+ Set the value to ignore unknown parameters names.
+
+ True to ignore unknown parameters names.
+
+
+ Override the current session cache mode, just for this query.
+ The cache mode to use.
+ this (for method chaining)
+
+
+
+ Interface for DetachedQuery implementors.
+
+
+ When you are working with queries in "detached mode" you may need some additional services like clone,
+ copy of parameters from another query and so on.
+
+
+
+
+ Copy all properties to a given .
+
+ The given .
+
+ Usually the implementation use to set properties to the .
+ This mean that existing properties are merged/overriden.
+
+
+
+
+ Set only parameters to a given .
+
+ The given .
+
+ Existing parameters are merged/overriden.
+
+
+
+
+ Override all properties reading new values from a given .
+
+ The given origin.
+
+
+
+ Override all parameters reading new values from a given .
+
+ The given origin.
+
+
+ Override the current session cache mode, just for this query.
+ The cache mode to use.
+ this (for method chaining)
+
+
+
+ Fill all properties.
+
+ The .
+
+ Query properties are overriden/merged.
+
+
+
+
+ Copy all properties to a given .
+
+ The given .
+
+ The method use to set properties of .
+
+
+
+
+ Set only parameters to a given .
+
+ The given .
+
+ The method use to set properties of .
+ Existing parameters in are merged/overriden.
+
+
+
+
+ Clear all existing parameters and copy new parameters from a given origin.
+
+ The origin of parameters.
+ The current instance
+ If is null.
+
+
+
+ Abstract implementation of the IQuery interface.
+
+
+
+
+ An object-oriented representation of a NHibernate query.
+
+
+ An IQuery instance is obtained by calling ISession.CreateQuery(). This interface
+ exposes some extra functionality beyond that provided by ISession.Iterate() and
+ ISession.List();
+
+
+ A particulare page of the result set may be selected by calling
+ SetMaxResults(), SetFirstResult(). The generated sql
+ depends on the capabilities of the . Some
+ Dialects are for databases that have built in paging (LIMIT) and those capabilities
+ will be used to limit the number of records returned by the sql statement.
+ If the database does not support LIMITs then all of the records will be returned,
+ but the objects created will be limited to the specific results requested.
+
+ Named query parameters may be used
+
+
+ Named query parameters are tokens of the form :name in the query string. A value is bound
+ to the Int32 parameter :foo by calling
+
+ SetParameter("foo", foo, NHibernateUtil.Int32);
+
+ for example. A name may appear multiple times in the query string.
+
+
+ Unnamed parameters ? are also supported. To bind a value to an unnamed
+ parameter use a Set method that accepts an Int32 positional argument - numbered from
+ zero.
+
+
+ You may not mix and match unnamed parameters and named parameters in the same query.
+
+
+ Queries are executed by calling List() or Iterate(). A query
+ may be re-executed by subsequent invocations. Its lifespan is, however, bounded by the lifespan
+ of the ISession that created it.
+
+
+ Implementors are not intended to be threadsafe.
+
+
+
+
+
+ Return the query results as an . If the query contains multiple results
+ per row, the results are returned in an instance of object[].
+
+
+
+ Entities returned as results are initialized on demand. The first SQL query returns
+ identifiers only.
+
+
+ This is a good strategy to use if you expect a high number of the objects
+ returned to be already loaded in the or in the 2nd level cache.
+
+
+
+
+
+ Strongly-typed version of .
+
+
+
+
+
+
+ Return the query results as an . If the query contains multiple results per row,
+ the results are returned in an instance of object[].
+
+ The filled with the results.
+
+ This is a good strategy to use if you expect few of the objects being returned are already loaded
+ or if you want to fill the 2nd level cache.
+
+
+
+
+ Return the query results an place them into the .
+
+ The to place the results in.
+
+
+
+ Strongly-typed version of .
+
+
+
+
+ Convenience method to return a single instance that matches
+ the query, or null if the query returns no results.
+
+ the single result or
+
+ Thrown when there is more than one matching result.
+
+
+
+
+ Strongly-typed version of .
+
+
+
+
+ Set the maximum number of rows to retrieve.
+
+ The maximum number of rows to retreive.
+
+
+
+ Sets the first row to retrieve.
+
+ The first row to retreive.
+
+
+
+ Enable caching of this query result set.
+
+ Should the query results be cacheable?
+
+
+ Set the name of the cache region.
+ The name of a query cache region, or
+ for the default query cache
+
+
+
+ Entities retrieved by this query will be loaded in
+ a read-only mode where Hibernate will never dirty-check
+ them or make changes persistent.
+
+
+
+
+ The timeout for the underlying ADO query
+
+
+
+
+
+ Set the lockmode for the objects idententified by the
+ given alias that appears in the FROM clause.
+
+ alias a query alias, or this for a collection filter
+
+
+
+
+ Bind a value to an indexed parameter.
+
+ Position of the parameter in the query, numbered from 0
+ The possibly null parameter value
+ The Hibernate type
+
+
+
+ Bind a value to a named query parameter
+
+ The name of the parameter
+ The possibly null parameter value
+ The NHibernate .
+
+
+
+ Bind a value to an indexed parameter, guessing the Hibernate type from
+ the class of the given object.
+
+ The position of the parameter in the query, numbered from 0
+ The non-null parameter value
+
+
+
+ Bind a value to a named query parameter, guessing the NHibernate
+ from the class of the given object.
+
+ The name of the parameter
+ The non-null parameter value
+
+
+
+ Bind multiple values to a named query parameter. This is useful for binding a list
+ of values to an expression such as foo.bar in (:value_list)
+
+ The name of the parameter
+ A collection of values to list
+ The Hibernate type of the values
+
+
+
+ Bind multiple values to a named query parameter, guessing the Hibernate
+ type from the class of the first object in the collection. This is useful for binding a list
+ of values to an expression such as foo.bar in (:value_list)
+
+ The name of the parameter
+ A collection of values to list
+
+
+
+ Bind multiple values to a named query parameter. This is useful for binding
+ a list of values to an expression such as foo.bar in (:value_list).
+
+ the name of the parameter
+ a collection of values to list
+ the Hibernate type of the values
+
+
+
+ Bind multiple values to a named query parameter. The Hibernate type of the parameter is
+ first detected via the usage/position in the query and if not sufficient secondly
+ guessed from the class of the first object in the array. This is useful for binding a list of values
+ to an expression such as foo.bar in (:value_list).
+
+ the name of the parameter
+ a collection of values to list
+
+
+
+ Bind the property values of the given object to named parameters of the query,
+ matching property names with parameter names and mapping property types to
+ Hibernate types using heuristics.
+
+ Any PONO
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a array to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a array.
+
+
+
+ Bind an instance of a array to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a array.
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ A non-null instance of a .
+ The name of the parameter
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a mapped persistent class to an indexed parameter.
+
+ Position of the parameter in the query string, numbered from 0
+ A non-null instance of a persistent class
+
+
+
+ Bind an instance of a mapped persistent class to a named parameter.
+
+ The name of the parameter
+ A non-null instance of a persistent class
+
+
+
+ Bind an instance of a persistent enumeration class to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a persistent enumeration
+
+
+
+ Bind an instance of a persistent enumeration class to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a persistent enumeration
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ An instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ An instance of a .
+
+
+
+ Override the current session flush mode, just for this query.
+
+
+
+
+ Set a strategy for handling the query results. This can be used to change
+ "shape" of the query result.
+
+
+
+ Override the current session cache mode, just for this query.
+ The cache mode to use.
+ this (for method chaining)
+
+
+
+ Execute the update or delete statement.
+
+ The number of entities updated or deleted.
+
+
+
+ The query string
+
+
+
+
+ The Hibernate types of the query result set.
+
+
+
+
+ The names of all named parameters of the query
+
+ The parameter names, in no particular order
+
+
+
+ Perform parameter validation. Used prior to executing the encapsulated query.
+
+
+ if true, the first ? will not be verified since
+ its needed for e.g. callable statements returning a out parameter
+
+
+
+
+ Guesses the from the param's value.
+
+ The object to guess the of.
+ An for the object.
+
+ Thrown when the param is null because the
+ can't be guess from a null value.
+
+
+
+
+ Guesses the from the .
+
+ The to guess the of.
+ An for the .
+
+ Thrown when the clazz is null because the
+ can't be guess from a null type.
+
+
+
+
+ Warning: adds new parameters to the argument by side-effect, as well as mutating the query string!
+
+
+
+
+ Warning: adds new parameters to the argument by side-effect, as well as mutating the query string!
+
+
+
+ Override the current session cache mode, just for this query.
+
+ The cache mode to use.
+ this (for method chaining)
+
+
+ Functionality common to stateless and stateful sessions
+
+
+
+ Implementation of the interface for collection filters.
+
+
+
+
+ Default implementation of the ,
+ for "ordinary" HQL queries (not collection filters)
+
+
+
+
+
+ Implementation of the interface
+
+
+
+
+ Criteria is a simplified API for retrieving entities by composing
+ objects.
+
+
+
+ Using criteria is a very convenient approach for functionality like "search" screens
+ where there is a variable number of conditions to be placed upon the result set.
+
+
+ The Session is a factory for ICriteria. Expression instances are usually obtained via
+ the factory methods on . eg:
+
+
+ IList cats = session.CreateCriteria(typeof(Cat))
+ .Add( Expression.Like("name", "Iz%") )
+ .Add( Expression.Gt( "weight", minWeight ) )
+ .AddOrder( Order.Asc("age") )
+ .List();
+
+ You may navigate associations using or .
+
+ IList cats = session.CreateCriteria(typeof(Cat))
+ .CreateCriteria("kittens")
+ .Add( Expression.like("name", "Iz%") )
+ .List();
+
+
+ Hibernate's query language is much more general and should be used for non-simple cases.
+
+
+ This is an experimental API.
+
+
+
+
+
+ Set a limit upon the number of objects to be retrieved
+
+
+
+
+
+ Set the first result to be retrieved
+
+
+
+
+
+ Set a timeout for the underlying ADO.NET query
+
+
+
+
+
+
+ Add an Expression to constrain the results to be retrieved.
+
+
+
+
+
+
+ An an Order to the result set
+
+
+
+
+
+ Get the results
+
+
+
+
+
+ Get the results and fill the
+
+ The list to fill with the results.
+
+
+
+ Strongly-typed version of .
+
+
+
+
+ Strongly-typed version of .
+
+
+
+
+ Convenience method to return a single instance that matches
+ the query, or null if the query returns no results.
+
+ the single result or
+
+ If there is more than one matching result
+
+
+
+
+ Specify an association fetching strategy. Currently, only
+ one-to-many and one-to-one associations are supported.
+
+ A dot seperated property path.
+ The Fetch mode.
+
+
+
+
+ Join an association, assigning an alias to the joined entity
+
+
+
+
+
+
+
+ Join an association using the specified join-type, assigning an alias to the joined
+ association
+
+
+
+ The type of join to use.
+ this (for method chaining)
+
+
+
+ Create a new , "rooted" at the associated entity
+
+
+
+
+
+
+ Create a new , "rooted" at the associated entity,
+ assigning the given alias
+
+
+
+
+
+
+
+ Create a new , "rooted" at the associated entity,
+ assigning the given alias and using the specified join type.
+
+ A dot-separated property path
+ The alias to assign to the joined association (for later reference).
+ The type of join to use.
+ The created "sub criteria"
+
+
+
+ Create a new , "rooted" at the associated entity,
+ using the specified join type.
+
+ A dot-seperated property path
+ The type of join to use
+ The created "sub criteria"
+
+
+
+ Set a strategy for handling the query results. This determines the
+ "shape" of the query result set.
+
+
+
+
+
+
+
+
+
+ Set the lock mode of the current entity
+
+ the lock mode
+
+
+
+
+ Set the lock mode of the aliased entity
+
+ an alias
+ the lock mode
+
+
+
+
+ Enable caching of this query result set
+
+
+
+
+
+
+ Set the name of the cache region.
+
+ the name of a query cache region, or
+ for the default query cache
+
+
+
+
+ Used to specify that the query results will be a projection (scalar in
+ nature). Implicitly specifies the projection result transformer.
+
+ The projection representing the overall "shape" of the
+ query results.
+ This instance (for method chaining)
+
+
+ The individual components contained within the given
+ determines the overall "shape" of the query result.
+
+
+
+
+
+ Allows to get a sub criteria by path.
+ Will return null if the criteria does not exists.
+
+ The path.
+
+
+
+ Alows to get a sub criteria by alias.
+ Will return null if the criteria does not exists
+
+ The alias.
+
+
+
+ Override the cache mode for this particular query.
+ The cache mode to use.
+ this (for method chaining)
+
+
+
+ Get the alias of the entity encapsulated by this criteria instance.
+
+ The alias for the encapsulated entity.
+
+
+ Override the cache mode for this particular query.
+ The cache mode to use.
+ this (for method chaining)
+
+
+ Override the cache mode for this particular query.
+ The cache mode to use.
+ this (for method chaining)
+
+
+
+ Expose the batch functionality in ADO.Net 2.0
+ Microsoft in its wisdom decided to make my life hard and mark it internal.
+ Through the use of Reflection and some delegates magic, I opened up the functionality.
+
+ Observable performance benefits are 50%+ when used, so it is really worth it.
+
+
+
+
+ Append a command to the batch
+
+
+
+
+
+ Executes the batch
+
+
+ This seems to be returning the total number of affected rows in all queries
+
+
+
+
+ Return the batch command to be executed
+
+
+
+
+ The number of commands batched in this instance
+
+
+
+
+ Append a command to the batch
+
+
+
+
+
+ This is required because SqlClient.SqlCommandSet will throw if
+ the command has no parameters.
+
+
+
+
+
+ Executes the batch
+
+
+ This seems to be returning the total number of affected rows in all queries
+
+
+
+
+ Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
+
+ 2
+
+
+
+ Return the batch command to be executed
+
+
+
+
+ The number of commands batched in this instance
+
+
+
+
+ Named query in "detached mode" where the NHibernate session is not available.
+
+
+
+
+
+
+
+
+ Create a new instance of for a named query string defined in the mapping file.
+
+ The name of a query defined externally.
+
+ The query can be either in HQL or SQL format.
+
+
+
+
+ Get an executable instance of , to actually run the query.
+
+
+
+
+ Creates a new DetachedNamedQuery that is a deep copy of the current instance.
+
+ The clone.
+
+
+
+ Get the query name.
+
+
+
+
+ Query in "detached mode" where the NHibernate session is not available.
+
+
+
+
+
+
+
+ Create a new instance of for the given query string.
+
+ A hibernate query string
+
+
+
+ Get an executable instance of , to actually run the query.
+
+
+
+
+ Creates a new DetachedQuery that is a deep copy of the current instance.
+
+ The clone.
+
+
+
+ Get the HQL string.
+
+
+
+
+ Provides an wrapper over the results of an .
+
+
+ This is the IteratorImpl in H2.0.3
+
+
+
+
+ Create an wrapper over an .
+
+ The to enumerate over.
+ The used to create the .
+ The to use to load objects.
+ The s contained in the .
+ The names of the columns in the .
+ The that should be applied to the .
+ Instantiator of the result holder (used for "select new SomeClass(...)" queries).
+
+ The should already be positioned on the first record in .
+
+
+
+
+ Returns an enumerator that can iterate through the query results.
+
+
+ An that can be used to iterate through the query results.
+
+
+
+
+ Advances the enumerator to the next element of the query results.
+
+
+ if the enumerator was successfully advanced to the next query results
+ ; if the enumerator has passed the end of the query results.
+
+
+
+
+
+
+
+ A flag to indicate if Dispose() has been called.
+
+
+
+
+ Finalizer that ensures the object is correctly disposed of.
+
+
+
+
+ Takes care of freeing the managed and unmanaged resources that
+ this class is responsible for.
+
+
+
+
+ Takes care of freeing the managed and unmanaged resources that
+ this class is responsible for.
+
+ Indicates if this EnumerableImpl is being Disposed of or Finalized.
+
+ The command is closed and the reader is disposed. This allows other ADO.NET
+ related actions to occur without needing to move all the way through the
+ EnumerableImpl.
+
+
+
+
+ Gets the current element in the query results.
+
+
+ The current element in the query results which is either an object or
+ an object array.
+
+
+ If the only returns one type of Entity then an object will
+ be returned. If this is a multi-column resultset then an object array will be
+ returned.
+
+
+
+
+
+
+
+
+ Type definition of Filter. Filter defines the user's view into enabled dynamic filters,
+ allowing them to set filter parameter values.
+
+
+
+
+ Set the named parameter's value list for this filter.
+
+ The parameter's name.
+ The values to be applied.
+ This FilterImpl instance (for method chaining).
+
+
+
+ Set the named parameter's value list for this filter. Used
+ in conjunction with IN-style filter criteria.
+
+ The parameter's name.
+ The values to be expanded into an SQL IN list.
+ This FilterImpl instance (for method chaining).
+
+
+
+ Set the named parameter's value list for this filter. Used
+ in conjunction with IN-style filter criteria.
+
+ The parameter's name.
+ The values to be expanded into an SQL IN list.
+ This FilterImpl instance (for method chaining).
+
+
+
+ Perform validation of the filter state. This is used to verify the
+ state of the filter after its enablement and before its use.
+
+
+
+
+
+ Get the name of this filter.
+
+ This filter's name.
+
+
+
+ Get the filter definition containing additional information about the
+ filter (such as default-condition and expected parameter names/types).
+
+ The filter definition
+
+
+
+ Set the named parameter's value for this filter.
+
+ The parameter's name.
+ The value to be applied.
+ This FilterImpl instance (for method chaining).
+
+
+
+ Set the named parameter's value list for this filter. Used
+ in conjunction with IN-style filter criteria.
+
+ The parameter's name.
+ The values to be expanded into an SQL IN list.
+ This FilterImpl instance (for method chaining).
+
+
+
+ Set the named parameter's value list for this filter. Used
+ in conjunction with IN-style filter criteria.
+
+ The parameter's name.
+ The values to be expanded into an SQL IN list.
+ This FilterImpl instance (for method chaining).
+
+
+
+ Perform validation of the filter state. This is used to verify the
+ state of the filter after its enablement and before its use.
+
+
+
+
+ Get the name of this filter.
+
+
+
+
+ Helper methods for rendering log messages and exception messages
+
+
+
+
+ Generate small message that can be used in traces and exception messages.
+
+ The to create the string from.
+ The identifier of the object.
+ A descriptive in the format of [classname#id]
+
+
+
+ Generate small message that can be used in traces and exception messages.
+
+ The for the class in question.
+ The identifier of the object.
+ The .
+ A descriptive in the format of [classname#id]
+
+
+
+ Generate small message that can be used in traces and exception messages.
+
+ The for the class in question.
+ The identifier of the object.
+ The .
+ The NHibernate type of the identifier.
+ A descriptive in the format of [classname#id]
+
+
+
+ Generate small message that can be used in traces and exception messages.
+
+ The for the class in question
+ The id
+ A descriptive in the form [FooBar#id]
+
+
+
+ Generate small message that can be used in traces and exception messages.
+
+ The for the class in question
+ A descriptive in the form [FooBar]
+
+
+
+ Generate small message that can be used in traces and exception messages.
+
+ The for the class in question
+ The id
+ A descriptive in the form [collectionrole#id]
+
+
+
+ Generate an info message string relating to a given property value
+ for an entity.
+
+ The entity name
+ The name of the property
+ The property value.
+ An info string, in the form [Foo.bars#1]
+
+
+
+ Generate an info message string relating to a particular managed
+ collection.
+
+ The persister for the collection
+ The id value of the owner
+ The session factory
+ An info string, in the form [Foo.bars#1]
+
+
+
+ Generate an info message string relating to a particular entity,
+ based on the given entityName and id.
+
+ The defined entity name.
+ The entity id value.
+ An info string, in the form [FooBar#1].
+
+
+
+ Combines several queries into a single DB call
+
+
+
+
+ Get all the
+
+
+
+
+ Adds the specified criteria to the query
+
+ The criteria.
+
+
+
+
+ Adds the specified detached criteria.
+
+ The detached criteria.
+
+
+
+
+ Sets whatevert this criteria is cacheable.
+
+ if set to true [cachable].
+
+
+
+ Set the cache region for thie criteria
+
+ The region
+
+
+
+
+ Force a cache refresh
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The session.
+ The factory.
+
+
+ Return a cacheable "disassembled" representation of the object.
+ the value to cache
+ the session
+ optional parent entity object (needed for collections)
+ the disassembled, deep cloned state
+
+
+ Reconstruct the object from its cached "disassembled" state.
+ the disassembled state from the cache
+ the session
+ the parent entity object
+ the the object
+
+
+
+ Called before assembling a query result set from the query cache, to allow batch fetching
+ of entities missing from the second-level cache.
+
+
+
+
+ Combines sevaral queries into a single database call
+
+
+
+
+ Get all the
+
+
+
+
+ Add the specified HQL query to the multi query
+
+
+
+
+ Add the specified HQL query to the multi query
+
+
+
+
+ Add a named query to the multi query
+
+
+
+
+ Enable caching of this query result set.
+
+ Should the query results be cacheable?
+
+
+ Set the name of the cache region.
+ The name of a query cache region, or
+ for the default query cache
+
+
+ Should the query force a refresh of the specified query cache region?
+ This is particularly useful in cases where underlying data may have been
+ updated via a seperate process (i.e., not modified through Hibernate) and
+ allows the application to selectively refresh the query cache regions
+ based on its knowledge of those events.
+ Should the query result in a forceable refresh of
+ the query cache?
+
+
+
+ The timeout for the underlying ADO query
+
+
+
+
+
+ Bind a value to a named query parameter
+
+ The name of the parameter
+ The possibly null parameter value
+ The NHibernate .
+
+
+
+ Bind a value to a named query parameter, guessing the NHibernate
+ from the class of the given object.
+
+ The name of the parameter
+ The non-null parameter value
+
+
+
+ Bind multiple values to a named query parameter. This is useful for binding a list
+ of values to an expression such as foo.bar in (:value_list)
+
+ The name of the parameter
+ A collection of values to list
+ The Hibernate type of the values
+
+
+
+ Bind multiple values to a named query parameter, guessing the Hibernate
+ type from the class of the first object in the collection. This is useful for binding a list
+ of values to an expression such as foo.bar in (:value_list)
+
+ The name of the parameter
+ A collection of values to list
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a array to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a array.
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ A non-null instance of a .
+ The name of the parameter
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a mapped persistent class to a named parameter.
+
+ The name of the parameter
+ A non-null instance of a persistent class
+
+
+
+ Bind an instance of a persistent enumeration class to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a persistent enumeration
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ An instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Override the current session flush mode, just for this query.
+
+
+
+
+ Set a strategy for handling the query results. This can be used to change
+ "shape" of the query result.
+
+
+
+
+ Return the query results of all the queries
+
+
+
+
+
+
+ an actual entity object, not a proxy!
+
+
+
+
+
+ Concrete implementation of a SessionFactory.
+
+
+ Has the following responsibilities:
+
+
+ Caches configuration settings (immutably)
+
+ Caches "compiled" mappings - ie.
+ and
+
+
+ Caches "compiled" queries (memory sensitive cache)
+
+
+ Manages PreparedStatements/IDbCommands - how true in NH?
+
+
+ Delegates IDbConnection management to the
+
+
+ Factory for instances of
+
+
+
+ This class must appear immutable to clients, even if it does all kinds of caching
+ and pooling under the covers. It is crucial that the class is not only thread safe
+ , but also highly concurrent. Synchronization must be used extremely sparingly.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets the hql query identified by the name.
+
+ The name of that identifies the query.
+
+ A hql query or if the named
+ query does not exist.
+
+
+
+
+
+
+
+
+
+
+ Get the return aliases of a query
+
+
+
+ Return the names of all persistent (mapped) classes that extend or implement the
+ given class or interface, accounting for implicit/explicit polymorphism settings
+ and excluding mapped subclasses/joined-subclasses of other classes in the result.
+
+
+
+
+
+
+
+
+
+
+ Closes the session factory, releasing all held resources.
+
+ cleans up used cache regions and "stops" the cache provider.
+ close the ADO.NET connection
+
+
+
+
+
+
+
+ Get a new stateless session.
+
+
+ Get a new stateless session for the given ADO.NET connection.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Statistics SPI
+
+
+
+
+
+ Get the statistics for this session factory
+
+
+
+ Gets the ICurrentSessionContext instance attached to this session factory.
+
+
+
+
+ Delegate to handle the scenario of an entity not found by a specified id.
+
+
+
+
+ Delegate method to handle the scenario of an entity not found.
+
+ The entityName (may be the class fullname)
+ The requested id not founded.
+
+
+
+ A class that can be used as a Key in a Hashtable for
+ a Query Cache.
+
+
+
+
+ A class that can be used as a Key in a Hashtable for
+ a Query Cache.
+
+
+
+
+ Resolves lookups and deserialization.
+
+
+
+ This is used heavily be Deserialization. Currently a SessionFactory is not really serialized.
+ All that is serialized is it's name and uid. During Deserializaiton the serialized SessionFactory
+ is converted to the one contained in this object. So if you are serializing across AppDomains
+ you should make sure that "name" is specified for the SessionFactory in the hbm.xml file and that the
+ other AppDomain has a configured SessionFactory with the same name. If
+ you are serializing in the same AppDomain then there will be no problem because the uid will
+ be in this object.
+
+
+ TODO: verify that the AppDomain statements are correct.
+
+
+
+
+
+
+
+
+ Adds an Instance of the SessionFactory to the local "cache".
+
+ The identifier of the ISessionFactory.
+ The name of the ISessionFactory.
+ The ISessionFactory.
+ The configured properties for the ISessionFactory.
+
+
+
+ Removes the Instance of the SessionFactory from the local "cache".
+
+ The identifier of the ISessionFactory.
+ The name of the ISessionFactory.
+ The configured properties for the ISessionFactory.
+
+
+
+ Returns a Named Instance of the SessionFactory from the local "cache" identified by name.
+
+ The name of the ISessionFactory.
+ An instantiated ISessionFactory.
+
+
+
+ Returns an Instance of the SessionFactory from the local "cache" identified by UUID.
+
+ The identifier of the ISessionFactory.
+ An instantiated ISessionFactory.
+
+
+
+ Concrete implementation of a Session, also the central, organizing component
+ of Hibernate's internal implementation.
+
+
+ Exposes two interfaces: ISession itself, to the application and ISessionImplementor
+ to other components of hibernate. This is where the hard stuff is...
+ NOT THREADSAFE
+
+
+
+
+ Constructor used to recreate the Session during the deserialization.
+
+
+
+
+ This is needed because we have to do some checking before the serialization process
+ begins. I don't know how to add logic in ISerializable.GetObjectData and have .net
+ write all of the serializable fields out.
+
+
+
+
+ Verify the ISession can be serialized and write the fields to the Serializer.
+
+
+
+
+ The fields are marked with [NonSerializable] as just a point of reference. This method
+ has complete control and what is serialized and those attributes are ignored. However,
+ this method should be in synch with the attributes for easy readability.
+
+
+
+
+ Once the entire object graph has been deserialized then we can hook the
+ collections, proxies, and entities back up to the ISession.
+
+
+
+
+
+ Constructor used for OpenSession(...) processing, as well as construction
+ of sessions for GetCurrentSession().
+
+ The user-supplied connection to use for this session.
+ The factory from which this session was obtained
+ NOT USED
+ The timestamp for this session
+ The interceptor to be applied to this session
+ The entity-mode for this session
+ Should we auto flush before completion of transaction
+ Should we auto close after completion of transaction
+ The mode by which we should release JDBC connections.
+
+
+
+ Constructor used in building "child sessions".
+
+ The parent Session
+ The entity mode
+
+
+
+
+
+
+ Ensure that the locks are downgraded to
+ and that all of the softlocks in the have
+ been released.
+
+
+
+
+ Save a transient object. An id is generated, assigned to the object and returned
+
+
+
+
+
+
+ Save a transient object with a manually assigned ID
+
+
+
+
+
+
+ Delete a persistent object
+
+
+
+
+ Delete a persistent object (by explicit entity name)
+
+
+
+ Retrieve a list of persistent objects using a Hibernate query
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Give the interceptor an opportunity to override the default instantiation
+
+
+
+
+
+
+ Force an immediate flush
+
+
+ Cascade merge an entity instance
+
+
+ Cascade persist an entity instance
+
+
+ Cascade persist an entity instance during the flush process
+
+
+ Cascade refesh an entity instance
+
+
+ Cascade copy an entity instance
+
+
+ Cascade delete an entity instance
+
+
+
+ detect in-memory changes, determine if the changes are to tables
+ named in the query and, if so, complete execution the flush
+
+
+
+
+
+
+ Load the data for the object with the specified id into a newly created object.
+ This is only called when lazily initializing a proxy.
+ Do NOT return a proxy.
+
+
+
+
+ Return the object with the specified id or throw exception if no row with that id exists. Defer the load,
+ return a new proxy or return an existing proxy if possible. Do not check if the object was deleted.
+
+
+
+
+ Load the data for the object with the specified id into a newly created object
+ using "for update", if supported. A new key will be assigned to the object.
+ This should return an existing proxy where appropriate.
+
+ If the object does not exist in the database, an exception is thrown.
+
+
+
+
+
+
+ Thrown when the object with the specified id does not exist in the database.
+
+
+
+
+ Load the data for the object with the specified id into a newly created object
+ using "for update", if supported. A new key will be assigned to the object.
+ This should return an existing proxy where appropriate.
+
+ If the object does not exist in the database, null is returned.
+
+
+
+
+
+
+
+
+
+
+
+ This can be called from commit() or at the start of a List() method.
+
+ Perform all the necessary SQL statements in a sensible order, to allow
+ users to repect foreign key constraints:
+
+ Inserts, in the order they were performed
+ Updates
+ Deletion of collection elements
+ Insertion of collection elements
+ Deletes, in the order they were performed
+
+
+
+ Go through all the persistent objects and look for collections they might be
+ holding. If they had a nonpersistable collection, substitute a persistable one
+
+
+
+
+
+ Not for internal use
+
+
+
+
+
+
+ Get the id value for an object that is actually associated with the session.
+ This is a bit stricter than GetEntityIdentifierIfNotUnsaved().
+
+
+
+
+
+
+
+
+
+
+
+
+
+ called by a collection that wants to initialize itself
+
+
+
+
+
+
+
+
+
+ A flag to indicate if Dispose() has been called.
+
+
+
+
+ Finalizer that ensures the object is correctly disposed of.
+
+
+
+
+ Just in case the user forgot to Commit() or Close()
+
+
+
+
+ Takes care of freeing the managed and unmanaged resources that
+ this class is responsible for.
+
+ Indicates if this Session is being Disposed of or Finalized.
+
+ If this Session is being Finalized (isDisposing==false) then make sure not
+ to call any methods that could potentially bring this Session back to life.
+
+
+
+
+ remove any hard references to the entity that are held by the infrastructure
+ (references held by application or other persistant instances are okay)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Get the ActionQueue for this session
+
+
+
+
+
+
+ Gets if the ISession is connected.
+
+
+ if the ISession is connected.
+
+
+ An ISession is considered connected if there is an (regardless
+ of its state) or if it the field connect is true. Meaning that it will connect
+ at the next operation that requires a connection.
+
+
+
+ Get the statistics for this session.
+
+
+ Retrieves the configured event listeners from this event source.
+
+
+
+ Implements SQL query passthrough
+
+
+ An example mapping is:
+
+ <sql-query-name name="mySqlQuery">
+ <return alias="person" class="eg.Person" />
+ SELECT {person}.NAME AS {person.name}, {person}.AGE AS {person.age}, {person}.SEX AS {person.sex}
+ FROM PERSON {person} WHERE {person}.NAME LIKE 'Hiber%'
+ </sql-query-name>
+
+
+
+
+
+ Declare a "root" entity, without specifying an alias
+
+
+
+
+ Declare a "root" entity
+
+
+
+
+ Declare a "root" entity, specifying a lock mode
+
+
+
+
+ Declare a "root" entity, without specifying an alias
+
+
+
+
+ Declare a "root" entity
+
+
+
+
+ Declare a "root" entity, specifying a lock mode
+
+
+
+
+ Declare a "joined" entity
+
+
+
+
+ Declare a "joined" entity, specifying a lock mode
+
+
+
+
+ Declare a scalar query result
+
+
+
+
+ Use a predefined named ResultSetMapping
+
+
+
+ Constructs a SQLQueryImpl given a sql query defined in the mappings.
+ The representation of the defined sql-query.
+ The session to which this SQLQueryImpl belongs.
+ Metadata about parameters found in the query.
+
+
+
+ A command-oriented API for performing bulk operations against a database.
+
+
+ A stateless session does not implement a first-level cache nor
+ interact with any second-level cache, nor does it implement
+ transactional write-behind or automatic dirty checking, nor do
+ operations cascade to associated instances. Collections are
+ ignored by a stateless session. Operations performed via a
+ stateless session bypass Hibernate's event model and
+ interceptors. Stateless sessions are vulnerable to data
+ aliasing effects, due to the lack of a first-level cache.
+
+ For certain kinds of transactions, a stateless session may
+ perform slightly faster than a stateful session.
+
+
+
+ Close the stateless session and release the ADO.NET connection.
+
+
+ Insert a entity.
+ A new transient instance
+ the identifier of the instance
+
+
+ Insert a row.
+ The entityName for the entity to be inserted
+ a new transient instance
+ the identifier of the instance
+
+
+ Update a entity.
+ a detached entity instance
+
+
+ Update a entity.
+ The entityName for the entity to be updated
+ a detached entity instance
+
+
+ Delete a entity.
+ a detached entity instance
+
+
+ Delete a entity.
+ The entityName for the entity to be deleted
+ a detached entity instance
+
+
+ Retrieve a entity.
+ a detached entity instance
+
+
+ Retrieve a entity.
+
+
+ a detached entity instance
+
+
+
+
+ Retrieve a entity, obtaining the specified lock mode.
+
+ a detached entity instance
+
+
+
+ Retrieve a entity, obtaining the specified lock mode.
+
+ a detached entity instance
+
+
+
+ Refresh the entity instance state from the database.
+
+ The entity to be refreshed.
+
+
+
+ Refresh the entity instance state from the database.
+
+ The entityName for the entity to be refreshed.
+ The entity to be refreshed.
+
+
+
+ Refresh the entity instance state from the database.
+
+ The entity to be refreshed.
+ The LockMode to be applied.
+
+
+
+ Refresh the entity instance state from the database.
+
+ The entityName for the entity to be refreshed.
+ The entity to be refreshed.
+ The LockMode to be applied.
+
+
+
+ Create a new instance of Query for the given HQL query string.
+
+ Entities returned by the query are detached.
+
+
+
+ Obtain an instance of for a named query string defined in
+ the mapping file.
+
+
+ The query can be either in HQL or SQL format.
+ Entities returned by the query are detached.
+
+
+
+
+ Create a new instance, for the given entity class,
+ or a superclass of an entity class.
+
+ A class, which is persistent, or has persistent subclasses
+ The .
+ Entities returned by the query are detached.
+
+
+
+ Create a new instance, for the given entity class,
+ or a superclass of an entity class, with the given alias.
+
+ A class, which is persistent, or has persistent subclasses
+ The alias of the entity
+ The .
+ Entities returned by the query are detached.
+
+
+
+ Create a new instance, for the given entity name.
+
+ The entity name.
+ The .
+ Entities returned by the query are detached.
+
+
+
+ Create a new instance, for the given entity name,
+ with the given alias.
+
+ The entity name.
+ The alias of the entity
+ The .
+ Entities returned by the query are detached.
+
+
+
+ Create a new instance of for the given SQL query string.
+ Entities returned by the query are detached.
+
+ a SQL query
+ The
+
+
+ Begin a NHibernate transaction.
+
+
+ Get the current Hibernate transaction.
+
+
+
+ Returns the current ADO.NET connection associated with this instance.
+
+
+ If the session is using aggressive connection release (as in a
+ CMT environment), it is the application's responsibility to
+ close the connection returned by this call. Otherwise, the
+ application should not close the connection.
+
+
+
+ Close the stateless session and release the ADO.NET connection.
+
+
+ Insert a entity.
+ A new transient instance
+ the identifier of the instance
+
+
+ Insert a row.
+ The entityName for the entity to be inserted
+ a new transient instance
+ the identifier of the instance
+
+
+ Update a entity.
+ a detached entity instance
+
+
+ Update a entity.
+ The entityName for the entity to be updated
+ a detached entity instance
+
+
+ Delete a entity.
+ a detached entity instance
+
+
+ Delete a entity.
+ The entityName for the entity to be deleted
+ a detached entity instance
+
+
+ Retrieve a entity.
+ a detached entity instance
+
+
+ Retrieve a entity.
+
+
+ a detached entity instance
+
+
+
+
+ Retrieve a entity, obtaining the specified lock mode.
+
+ a detached entity instance
+
+
+
+ Retrieve a entity, obtaining the specified lock mode.
+
+ a detached entity instance
+
+
+
+ Refresh the entity instance state from the database.
+
+ The entity to be refreshed.
+
+
+
+ Refresh the entity instance state from the database.
+
+ The entityName for the entity to be refreshed.
+ The entity to be refreshed.
+
+
+
+ Refresh the entity instance state from the database.
+
+ The entity to be refreshed.
+ The LockMode to be applied.
+
+
+
+ Refresh the entity instance state from the database.
+
+ The entityName for the entity to be refreshed.
+ The entity to be refreshed.
+ The LockMode to be applied.
+
+
+
+ Create a new instance, for the given entity class,
+ or a superclass of an entity class.
+
+ A class, which is persistent, or has persistent subclasses
+ The .
+ Entities returned by the query are detached.
+
+
+
+ Create a new instance, for the given entity class,
+ or a superclass of an entity class, with the given alias.
+
+ A class, which is persistent, or has persistent subclasses
+ The alias of the entity
+ The .
+ Entities returned by the query are detached.
+
+
+
+ Create a new instance, for the given entity name.
+
+ The entity name.
+ The .
+ Entities returned by the query are detached.
+
+
+
+ Create a new instance, for the given entity name,
+ with the given alias.
+
+ The entity name.
+ The alias of the entity
+ The .
+ Entities returned by the query are detached.
+
+
+ Begin a NHibernate transaction.
+
+
+
+ Finalizer that ensures the object is correctly disposed of.
+
+
+
+
+ Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
+
+ 2
+
+
+ Get the current Hibernate transaction.
+
+
+ Contract for field interception handlers.
+
+
+ Use to associate the entity to which we are bound to the given session.
+ The session to which we are now associated.
+
+
+ The the given field initialized for the entity to which we are bound?
+ The name of the field to check
+ True if the given field is initialized; otherwise false.
+
+
+ Forcefully mark the entity as being dirty.
+
+
+ Clear the internal dirty flag.
+
+
+ Is the entity considered dirty?
+ True if the entity is dirty; otherwise false.
+
+
+ Is the entity to which we are bound completely initialized?
+
+
+ Helper class for dealing with enhanced entity classes.
+
+
+ Marker value for uninitialized properties
+
+
+ Contract for controlling how lazy properties get initialized.
+
+
+ Initialize the property, and return its new value
+
+
+
+ Walker for collections of values and many-to-many associations
+
+
+
+
+ Superclass of walkers for collection initializers
+
+
+
+
+
+
+
+ Add on association (one-to-one, many-to-one, or a collection) to a list
+ of associations to be fetched by outerjoin (if necessary)
+
+
+
+
+ Add on association (one-to-one, many-to-one, or a collection) to a list
+ of associations to be fetched by outerjoin
+
+
+
+
+ For an entity class, return a list of associations to be fetched by outerjoin
+
+
+
+
+ For a collection role, return a list of associations to be fetched by outerjoin
+
+
+
+
+ For a collection role, return a list of associations to be fetched by outerjoin
+
+
+
+
+ For an entity class, add to a list of associations to be fetched
+ by outerjoin
+
+
+
+
+ For a component, add to a list of associations to be fetched by outerjoin
+
+
+
+
+ For a composite element, add to a list of associations to be fetched by outerjoin
+
+
+
+
+ Extend the path by the given property name
+
+
+
+
+ Get the join type (inner, outer, etc) or -1 if the
+ association should not be joined. Override on
+ subclasses.
+
+
+
+
+ Use an inner join if it is a non-null association and this
+ is the "first" join in a series
+
+
+
+
+ Does the mapping, and Hibernate default semantics, specify that
+ this association should be fetched by outer joining
+
+
+
+
+ Override on subclasses to enable or suppress joining
+ of certain association types
+
+
+
+
+ Used to detect circularities in the joined graph, note that
+ this method is side-effecty
+
+
+
+
+ Used to detect circularities in the joined graph, note that
+ this method is side-effecty
+
+
+
+
+ Should we join this association?
+
+
+
+
+ Generate a sequence of LEFT OUTER JOIN clauses for the given associations.
+
+
+
+
+ Count the number of instances of IJoinable which are actually
+ also instances of ILoadable, or are one-to-many associations
+
+
+
+
+ Count the number of instances of which
+ are actually also instances of
+ which are being fetched by outer join
+
+
+
+
+ Get the order by string required for collection fetching
+
+
+
+
+ Render the where condition for a (batch) load by identifier / collection key
+
+
+
+
+ Generate a select list of columns containing all properties of the entity classes
+
+
+
+
+ Uniquely identifier a foreign key, so that we don't
+ join it more than once, and create circularities
+
+
+
+
+ We can use an inner join for first many-to-many association
+
+
+
+
+ Superclass for loaders that initialize collections
+
+
+
+
+
+
+ Implements logic for walking a tree of associated classes.
+
+
+ Generates an SQL select string containing all properties of those classes.
+ Tablse are joined using an ANSI-style left outer join.
+
+
+
+
+ An interface for collection loaders
+
+
+
+
+ Initialize the given collection
+
+
+
+
+
+
+ "Batch" loads collections, using multiple foreign key values in the SQL Where clause
+
+
+
+
+ Walker for one-to-many associations
+
+
+
+
+
+ Loads one-to-many associations
+
+
+ The collection persister must implement .
+ For other collections, create a customized subclass of .
+
+
+
+
+ Implements subselect fetching for a one to many association
+
+
+
+
+ A for queries.
+
+
+
+
+ The superclass deliberately excludes collections
+
+
+
+
+ Don't bother with the discriminator, unless overridden by subclass
+
+
+
+
+ Use the discriminator, to narrow the select to instances
+ of the queried subclass, also applying any filters.
+
+
+
+
+ A Loader for queries.
+
+
+ Note that criteria
+ queries are more like multi-object Load()s than like HQL queries.
+
+
+
+
+ Get the names of the columns constrained
+ by this criterion.
+
+
+
+
+ Get the aliases of the columns constrained
+ by this criterion (for use in ORDER BY clause).
+
+
+
+
+ Get the a typed value for the given property value.
+
+
+
+
+ Optional, may return
+
+
+
+ Substitues JDBC parameter placeholders (?) for all encountered
+ parameter specifications. It also tracks the positions of these
+ parameter specifications within the query string. This accounts for
+ ordinal-params, named-params, and ejb3-positional-params.
+
+ @param sqlString The query string.
+ @return The SQL query with parameter substitution complete.
+
+
+
+ that uses columnnames instead of generated aliases.
+ Aliases can still be overwritten via <return-property>
+
+
+
+
+ Type definition of CollectionAliases.
+
+
+
+
+ Returns the suffixed result-set column-aliases for columns making
+ up the key for this collection (i.e., its FK to its owner).
+
+ The key result-set column aliases.
+
+
+
+ Returns the suffixed result-set column-aliases for the columns
+ making up the collection's index (map or list).
+
+ The index result-set column aliases.
+
+
+
+ Returns the suffixed result-set column-aliases for the columns
+ making up the collection's elements.
+
+ The element result-set column aliases.
+
+
+
+ Returns the suffixed result-set column-aliases for the column
+ defining the collection's identifier (if any).
+
+ The identifier result-set column aliases.
+
+
+
+ Returns the suffix used to unique the column aliases for this
+ particular alias set.
+
+ The uniqued column alias suffix.
+
+
+
+ Returns the suffixed result-set column-aliases for columns making up the key for this collection (i.e., its FK to
+ its owner).
+
+ The key result-set column aliases.
+
+
+
+ Returns the suffixed result-set column-aliases for the collumns making up the collection's index (map or list).
+
+ The index result-set column aliases.
+
+
+
+ Returns the suffixed result-set column-aliases for the columns making up the collection's elements.
+
+ The element result-set column aliases.
+
+
+
+ Returns the suffixed result-set column-aliases for the column defining the collection's identifier (if any).
+
+ The identifier result-set column aliases.
+
+
+
+ Returns the suffix used to unique the column aliases for this particular alias set.
+
+ The uniqued column alias suffix.
+
+
+
+ that chooses the column names over the alias names.
+
+
+
+
+ EntityAliases which handles the logic of selecting user provided aliases (via return-property),
+ before using the default aliases.
+
+
+
+
+ Metadata describing the SQL result set column aliases
+ for a particular entity
+
+
+
+
+ The result set column aliases for the property columns of a subclass
+
+
+
+
+ The result set column aliases for the primary key columns
+
+
+
+
+ The result set column aliases for the discriminator columns
+
+
+
+
+ The result set column aliases for the version columns
+
+
+
+
+ The result set column aliases for the property columns
+
+
+
+
+ The result set column alias for the Oracle row id
+
+
+
+
+ Calculate and cache select-clause suffixes.
+
+
+
+
+ Encapsulates the metadata available from the database result set.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The result set.
+
+
+
+ Gets the column count in the result set.
+
+ The column count.
+
+
+
+ Gets the name of the column at the specified position.
+
+ The (zero-based) position.
+ The column name.
+
+
+
+ Gets the (zero-based) position of the column with the specified name.
+
+ Name of the column.
+ The column position.
+
+
+
+ Gets the Hibernate type of the specified column.
+
+ The column position.
+ The Hibernate type.
+
+
+
+ Abstract superclass for entity loaders that use outer joins
+
+
+
+
+
+
+
+ Load an entity instance. If OptionalObject is supplied, load the entity
+ state into the given (uninitialized) object
+
+
+
+
+ "Batch" loads entities, using multiple primary key values in the
+ SQL where clause.
+
+
+
+
+ A walker for loaders that fetch entities
+
+
+
+
+ Disable outer join fetching if this loader obtains an
+ upgrade lock mode
+
+
+
+
+ Load an entity using outerjoin fetching to fetch associated entities.
+
+
+ The must implement . For other entities,
+ create a customized subclass of .
+
+
+
+
+ CollectionAliases which handles the logic of selecting user provided aliases (via return-property),
+ before using the default aliases.
+
+
+
+
+ Returns the suffixed result-set column-aliases for columns making up the key for this collection (i.e., its FK to
+ its owner).
+
+
+
+
+ Returns the suffixed result-set column-aliases for the collumns making up the collection's index (map or list).
+
+
+
+
+ Returns the suffixed result-set column-aliases for the columns making up the collection's elements.
+
+
+
+
+ Returns the suffixed result-set column-aliases for the column defining the collection's identifier (if any).
+
+
+
+
+ Returns the suffix used to unique the column aliases for this particular alias set.
+
+
+
+
+ Get the position of the join with the given alias in the
+ list of joins
+
+
+
+
+ Convenience base class for AuxiliaryDatabaseObjects.
+
+
+ This implementation performs dialect scoping checks strictly based on
+ dialect name comparisons. Custom implementations might want to do
+ instanceof-type checks.
+
+
+
+
+ Auxiliary database objects (i.e., triggers, stored procedures, etc) defined
+ in the mappings. Allows Hibernate to manage their lifecycle as part of
+ creating/dropping the schema.
+
+
+
+
+ Operations to create/drop the mapping element in the database.
+
+
+
+
+ When implemented by a class, generates the SQL string to create
+ the mapping element in the database.
+
+ The to use for SQL rules.
+
+
+
+
+ A string that contains the SQL to create an object.
+
+
+
+
+ When implemented by a class, generates the SQL string to drop
+ the mapping element from the database.
+
+ The to use for SQL rules.
+
+
+
+ A string that contains the SQL to drop an object.
+
+
+
+
+ Add the given dialect name to the scope of dialects to which
+ this database object applies.
+
+ The name of a dialect.
+
+
+
+ Does this database object apply to the given dialect?
+
+ The dialect to check against.
+ True if this database object does apply to the given dialect.
+
+
+
+ Gets called by NHibernate to pass the configured type parameters to the implementation.
+
+
+
+
+ A NHibernate any type.
+
+
+ Polymorphic association to one of several tables.
+
+
+
+
+ Any value that maps to columns.
+
+
+
+
+ Represents an identifying key of a table: the value for primary key
+ of an entity, or a foreign key of a collection or join table or
+ joined subclass table.
+
+
+
+
+ A value is anything that is persisted by value, instead of
+ by reference. It is essentially a Hibernate IType, together
+ with zero or more columns. Values are wrapped by things with
+ higher level semantics, for example properties, collections,
+ classes.
+
+
+
+
+
+
+
+
+
+ Determines if the Value is part of a valid mapping.
+
+ The to validate.
+
+ if the Value is part of a valid mapping,
+ otherwise.
+
+
+
+ Mainly used to make sure that Value maps to the correct number
+ of columns.
+
+
+
+
+ Gets the number of columns that this value spans in the table.
+
+
+
+
+ Gets an of objects
+ that this value is stored in.
+
+
+
+
+ Gets the to read/write the Values.
+
+
+
+
+ Gets the this Value is stored in.
+
+
+
+
+ Gets a indicating if this Value is unique.
+
+
+
+
+ Gets a indicating if this Value can have
+ null values.
+
+
+
+
+ Gets a indicating if this is a SimpleValue
+ that does not involve foreign keys.
+
+
+
+
+ Get or set the identifier type name
+
+
+
+
+ Get or set the metatype
+
+
+
+
+ Represent the relation between a meta-value and the related entityName
+
+
+
+
+ An array has a primary key consisting of the key columns + index column
+
+
+
+
+ A list has a primary key consisting of the key columns + index column
+
+
+
+
+ Indexed collections include IList, IDictionary, Arrays
+ and primitive Arrays.
+
+
+
+
+ Base class that stores the mapping information for <array>, <bag>,
+ <id-bag>, <list>, <map>, and <set>
+ collections.
+
+
+ Subclasses are responsible for the specialization required for the particular
+ collection style.
+
+
+
+
+ Any mapping with an outer-join attribute
+
+
+
+
+ Defines mapping elements to which filters may be applied.
+
+
+
+
+ Gets or sets a indicating if this is a
+ mapping for a generic collection.
+
+
+ if a collection from the System.Collections.Generic namespace
+ should be used, if a collection from the System.Collections
+ namespace should be used.
+
+
+ This has no affect on any versions of the .net framework before .net-2.0.
+
+
+
+
+ Gets or sets an array of that contains the arguments
+ needed to construct an instance of a closed type.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The that contains this list mapping.
+
+
+
+ Gets the appropriate that is
+ specialized for this list mapping.
+
+
+
+
+ Mapping for a property of a .NET class (entity
+ or component).
+
+
+
+ Common interface for things that can handle meta attributes.
+
+
+
+ Retrieve the
+
+ The attribute name
+ The if exists; null otherwise
+
+
+
+ Meta-Attribute collection.
+
+
+
+
+ Gets the number of columns this property uses in the db.
+
+
+
+
+ Gets an of s.
+
+
+
+
+ Gets or Sets the name of the Property in the class.
+
+
+
+
+
+
+
+ A bag permits duplicates, so it has no primary key
+
+
+
+
+ A bag permits duplicates, so it has no primary key.
+
+ The that contains this bag mapping.
+
+
+
+ Gets the appropriate that is
+ specialized for this bag mapping.
+
+
+
+
+ Represents the mapping to a column in a database.
+
+
+
+
+ Initializes a new instance of .
+
+
+
+
+ Initializes a new instance of .
+
+ The name of the column.
+
+
+
+ Gets the name of this Column in quoted form if it is necessary.
+
+
+ The that knows how to quote
+ the column name.
+
+
+ The column name in a form that is safe to use inside of a SQL statement.
+ Quoted if it needs to be, not quoted if it does not need to be.
+
+
+
+ For any column name, generate an alias that is unique
+ to that column name, and also 10 characters or less
+ in length.
+
+
+
+ Gets the name of the data type for the column.
+
+ The to use to get the valid data types.
+
+
+ The name of the data type for the column.
+
+
+ If the mapping file contains a value of the attribute sql-type this will
+ return the string contained in that attribute. Otherwise it will use the
+ typename from the of the object.
+
+
+
+
+ Determines if this instance of and a specified object,
+ which must be a Column can be considered the same.
+
+ An that should be a .
+
+ if the name of this Column and the other Column are the same,
+ otherwise .
+
+
+
+
+ Determines if this instance of and the specified Column
+ can be considered the same.
+
+ A to compare to this Column.
+
+ if the name of this Column and the other Column are the same,
+ otherwise .
+
+
+
+
+ Returns the hash code for this instance.
+
+
+
+ returns quoted name as it would be in the mapping file.
+
+
+ Shallow copy, the value is not copied
+
+
+
+ Gets or sets the length of the datatype in the database.
+
+ The length of the datatype in the database.
+
+
+
+ Gets or sets the name of the column in the database.
+
+
+ The name of the column in the database. The get does
+ not return a Quoted column name.
+
+
+
+ If a value is passed in that is wrapped by ` then
+ NHibernate will Quote the column whenever SQL is generated
+ for it. How the column is quoted depends on the Dialect.
+
+
+ The value returned by the getter is not Quoted. To get the
+ column name in quoted form use .
+
+
+
+
+
+ Gets or sets if the column can have null values in it.
+
+ if the column can have a null value in it.
+
+
+
+ Gets or sets the index of the column in the .
+
+
+ The index of the column in the .
+
+
+
+
+ Gets or sets if the column contains unique values.
+
+ if the column contains unique values.
+
+
+
+ Gets or sets the sql data type name of the column.
+
+
+ The sql data type name of the column.
+
+
+ This is usually read from the sql-type attribute.
+
+
+
+
+ Gets or sets if the column needs to be quoted in SQL statements.
+
+ if the column is quoted.
+
+
+
+ Gets or sets whether the column is unique.
+
+
+
+
+ Gets or sets a check constraint on the column
+
+
+
+
+ Do we have a check constraint?
+
+
+
+
+ The underlying columns SqlType.
+
+
+ If null, it is because the sqltype code is unknown.
+
+ Use to retreive the sqltypecode used
+ for the columns associated Value/Type.
+
+
+
+
+ The mapping for a component, composite element, composite identifier,
+ etc.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Base class for relational constraints in the database.
+
+
+
+
+ Adds the to the of
+ Columns that are part of the constraint.
+
+ The to include in the Constraint.
+
+
+
+ Generates the SQL string to drop this Constraint in the database.
+
+ The to use for SQL rules.
+
+
+
+ A string that contains the SQL to drop this Constraint.
+
+
+
+
+ Generates the SQL string to create this Constraint in the database.
+
+ The to use for SQL rules.
+
+
+
+
+ A string that contains the SQL to create this Constraint.
+
+
+
+
+ When implemented by a class, generates the SQL string to create the named
+ Constraint in the database.
+
+ The to use for SQL rules.
+ The name to use as the identifier of the constraint in the database.
+
+
+
+ A string that contains the SQL to create the named Constraint.
+
+
+
+
+ Gets or sets the Name used to identify the constraint in the database.
+
+ The Name used to identify the constraint in the database.
+
+
+
+ Gets an of objects that are part of the constraint.
+
+
+ An of objects that are part of the constraint.
+
+
+
+
+ Gets the number of columns that this Constraint contains.
+
+
+ The number of columns that this Constraint contains.
+
+
+
+
+ Gets or sets the this Constraint is in.
+
+
+ The this Constraint is in.
+
+
+
+
+ Represents a Table in a database that an object gets mapped against.
+
+
+
+
+ Initializes a new instance of .
+
+
+
+
+ Gets the schema qualified name of the Table.
+
+ The that knows how to Quote the Table name.
+ The name of the table qualified with the schema if one is specified.
+
+
+
+ Gets the schema qualified name of the Table using the specified qualifier
+
+ The that knows how to Quote the Table name.
+ The Qualifier to use when accessing the table.
+ A String representing the Qualified name.
+ If this were used with MSSQL it would return a dbo.table_name.
+
+
+ returns quoted name as it would be in the mapping file.
+
+
+
+ Gets the name of this Table in quoted form if it is necessary.
+
+
+ The that knows how to quote the Table name.
+
+
+ The Table name in a form that is safe to use inside of a SQL statement.
+ Quoted if it needs to be, not quoted if it does not need to be.
+
+
+
+ returns quoted name as it is in the mapping file.
+
+
+
+ Gets the schema for this table in quoted form if it is necessary.
+
+
+ The that knows how to quote the table name.
+
+
+ The schema name for this table in a form that is safe to use inside
+ of a SQL statement. Quoted if it needs to be, not quoted if it does not need to be.
+
+
+
+
+ Gets the at the specified index.
+
+ The index of the Column to get.
+
+ The at the specified index.
+
+
+
+
+ Adds the to the of
+ Columns that are part of the Table.
+
+ The to include in the Table.
+
+
+
+ Generates the SQL string to create this Table in the database.
+
+ The to use for SQL rules.
+
+
+
+
+ A string that contains the SQL to create this Table, Primary Key Constraints
+ , and Unique Key Constraints.
+
+
+
+
+ Generates the SQL string to drop this Table in the database.
+
+ The to use for SQL rules.
+
+
+
+ A string that contains the SQL to drop this Table and to cascade the drop to
+ the constraints if the database supports it.
+
+
+
+
+ Gets the identified by the name.
+
+ The name of the to get.
+
+ The identified by the name. If the
+ identified by the name does not exist then it is created.
+
+
+
+
+ Gets the identified by the name.
+
+ The name of the to get.
+
+ The identified by the name. If the
+ identified by the name does not exist then it is created.
+
+
+
+
+ Create a for the columns in the Table.
+
+
+ An of objects.
+
+
+
+ A for the columns in the Table.
+
+
+ This does not necessarily create a , if
+ one already exists for the columns then it will return an
+ existing .
+
+
+
+
+ Generates a unique string for an of
+ objects.
+
+ An of objects.
+
+ An unique string for the objects.
+
+
+
+
+ Sets the Identifier of the Table.
+
+ The that represents the Identifier.
+
+
+
+
+
+
+
+
+ Return the column which is identified by column provided as argument.
+ column with atleast a name.
+
+ The underlying column or null if not inside this table.
+ Note: the instance *can* be different than the input parameter, but the name will be the same.
+
+
+
+
+ Gets or sets the name of the Table in the database.
+
+
+ The name of the Table in the database. The get does
+ not return a Quoted Table name.
+
+
+
+ If a value is passed in that is wrapped by ` then
+ NHibernate will Quote the Table whenever SQL is generated
+ for it. How the Table is quoted depends on the Dialect.
+
+
+ The value returned by the getter is not Quoted. To get the
+ column name in quoted form use .
+
+
+
+
+
+ Gets the number of columns that this Table contains.
+
+
+ The number of columns that this Table contains.
+
+
+
+
+ Gets an of objects that
+ are part of the Table.
+
+
+ An of objects that are
+ part of the Table.
+
+
+
+
+ Gets an of objects that
+ are part of the Table.
+
+
+ An of objects that are
+ part of the Table.
+
+
+
+
+ Gets an of objects that
+ are part of the Table.
+
+
+ An of objects that are
+ part of the Table.
+
+
+
+
+ Gets an of objects that
+ are part of the Table.
+
+
+ An of objects that are
+ part of the Table.
+
+
+
+
+ Gets or sets the of the Table.
+
+ The of the Table.
+
+
+
+ Gets or sets the schema the table is in.
+
+
+ The schema the table is in or if no schema is specified.
+
+
+
+
+ Gets the unique number of the Table.
+
+ The unique number of the Table.
+
+
+
+ Gets or sets if the column needs to be quoted in SQL statements.
+
+ if the column is quoted.
+
+
+
+ A value which is "typed" by reference to some other value
+ (for example, a foreign key is typed by the referenced primary key).
+
+
+
+
+ A Foreign Key constraint in the database.
+
+
+
+
+ Generates the SQL string to create the named Foreign Key Constraint in the database.
+
+ The to use for SQL rules.
+ The name to use as the identifier of the constraint in the database.
+
+
+
+ A string that contains the SQL to create the named Foreign Key Constraint.
+
+
+
+
+ Get the SQL string to drop this Constraint in the database.
+
+ The to use for SQL rules.
+
+
+
+ A string that contains the SQL to drop this Constraint.
+
+
+
+
+ Validates that columnspan of the foreignkey and the primarykey is the same.
+ Furthermore it aligns the length of the underlying tables columns.
+
+
+
+
+ Gets or sets the that the Foreign Key is referencing.
+
+ The the Foreign Key is referencing.
+
+ Thrown when the number of columns in this Foreign Key is not the same
+ amount of columns as the Primary Key in the ReferencedTable.
+
+
+
+ Does this foreignkey reference the primary key of the reference table
+
+
+
+ A formula is a derived column value.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ An PersistentIdentifierBag has a primary key consistenting of just
+ the identifier column.
+
+
+
+
+ A collection with a synthetic "identifier" column.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ An Index in the database.
+
+
+
+
+ Generates the SQL string to create this Index in the database.
+
+ The to use for SQL rules.
+
+
+
+
+ A string that contains the SQL to create this Index.
+
+
+
+
+ Generates the SQL string to drop this Index in the database.
+
+ The to use for SQL rules.
+
+
+
+ A string that contains the SQL to drop this Index.
+
+
+
+
+ Adds the to the of
+ Columns that are part of the Index.
+
+ The to include in the Index.
+
+
+
+ Gets or sets the this Index is in.
+
+
+ The this Index is in.
+
+
+
+
+ Gets an of objects that are
+ part of the Index.
+
+
+ An of objects that are
+ part of the Index.
+
+
+
+
+ Gets or sets the Name used to identify the Index in the database.
+
+ The Name used to identify the Index in the database.
+
+
+
+ Declaration of a System.Type mapped with the <subclass> or
+ <joined-subclass> element.
+
+
+
+
+ Base class for the mapped by <class> and a
+ that is mapped by <subclass> or
+ <joined-subclass>.
+
+
+
+
+
+
+
+
+
+
+ Adds a to the class hierarchy.
+
+ The to add to the hierarchy.
+
+
+
+ Change the property definition or add a new property definition
+
+ The to add.
+
+
+
+ Adds a that is implemented by a subclass.
+
+ The implemented by a subclass.
+
+
+
+ Adds a that a subclass is stored in.
+
+ The the subclass is stored in.
+
+
+
+ Creates the for the
+ this type is persisted in.
+
+ The that is used to Alias columns.
+
+
+
+ Given a property path, locate the appropriate referenceable property reference.
+
+
+ A referenceable property is a property which can be a target of a foreign-key
+ mapping (an identifier or explicitly named in a property-ref).
+
+ The property path to resolve into a property reference.
+ The property reference (never null).
+ If the property could not be found.
+
+
+
+
+
+
+
+
+
+ Gets the that is being mapped.
+
+ The that is being mapped.
+
+ The value of this is set by the name attribute on the <class>
+ element.
+
+
+
+
+ Gets or sets the to use as a Proxy.
+
+ The to use as a Proxy.
+
+ The value of this is set by the proxy attribute.
+
+
+
+
+ Gets or Sets if the Insert Sql is built dynamically.
+
+ if the Sql is built at runtime.
+
+ The value of this is set by the dynamic-insert attribute.
+
+
+
+
+ Gets or Sets if the Update Sql is built dynamically.
+
+ if the Sql is built at runtime.
+
+ The value of this is set by the dynamic-update attribute.
+
+
+
+
+ Gets or Sets the value to use as the discriminator for the Class.
+
+
+ A value that distinguishes this subclass in the database.
+
+
+ The value of this is set by the discriminator-value attribute. Each <subclass>
+ in a heirarchy must define a unique discriminator-value. The default value
+ is the class name if no value is supplied.
+
+
+
+
+ Gets the number of subclasses that inherit either directly or indirectly.
+
+ The number of subclasses that inherit from this PersistentClass.
+
+
+
+ Iterate over subclasses in a special 'order', most derived subclasses first.
+
+
+ It will recursively go through Subclasses so that if a SubclassType has Subclasses
+ it will pick those up also.
+
+
+
+
+ Gets an of objects
+ that directly inherit from this PersistentClass.
+
+
+ An of objects
+ that directly inherit from this PersistentClass.
+
+
+
+
+ When implemented by a class, gets a boolean indicating if this
+ mapped class is inherited from another.
+
+
+ if this class is a subclass or joined-subclass
+ that inherited from another class.
+
+
+
+
+ When implemented by a class, gets a boolean indicating if the mapped class
+ has a version property.
+
+ if there is a <version> property.
+
+
+
+ When implemented by a class, gets an
+ of objects that this mapped class contains.
+
+
+ An of objects that
+ this mapped class contains.
+
+
+ This is all of the properties of this mapped class and each mapped class that
+ it is inheriting from.
+
+
+
+
+ When implemented by a class, gets an
+ of objects that this mapped class reads from
+ and writes to.
+
+
+ An of objects that
+ this mapped class reads from and writes to.
+
+
+ This is all of the tables of this mapped class and each mapped class that
+ it is inheriting from.
+
+
+
+
+ Gets an of objects that
+ this mapped class contains and that all of its subclasses contain.
+
+
+ An of objects that
+ this mapped class contains and that all of its subclasses contain.
+
+
+
+
+ Gets an of all of the objects that the
+ subclass finds its information in.
+
+ An of objects.
+ It adds the TableClosureIterator and the subclassTables into the IEnumerable.
+
+
+
+ When implemented by a class, gets or sets the of the Persister.
+
+
+
+
+ When implemented by a class, gets the of the class
+ that is mapped in the class element.
+
+
+ The of the class that is mapped in the class element.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Build a collection of properties which are "referenceable".
+
+
+ See for a discussion of "referenceable".
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Build an iterator over the properties defined on this class. The returned
+ iterator only accounts for "normal" properties (i.e. non-identifier
+ properties).
+
+
+ An of objects.
+
+
+ Differs from in that the iterator
+ we return here will include properties defined as part of a join.
+
+
+
+
+ Build an enumerable over the properties defined on this class which
+ are not defined as part of a join.
+ As with the returned iterator only accounts
+ for non-identifier properties.
+
+ An enumerable over the non-joined "normal" properties.
+
+
+
+
+
+
+
+
+ Gets a boolean indicating if this PersistentClass has any subclasses.
+
+ if this PeristentClass has any subclasses.
+
+
+
+ Gets or Sets the that this class is stored in.
+
+ The this class is stored in.
+
+ The value of this is set by the table attribute.
+
+
+
+
+ When implemented by a class, gets or set a boolean indicating
+ if the mapped class has properties that can be changed.
+
+ if the object is mutable.
+
+ The value of this is set by the mutable attribute.
+
+
+
+
+ When implemented by a class, gets a boolean indicating
+ if the mapped class has a Property for the id.
+
+ if there is a Property for the id.
+
+
+
+ When implemented by a class, gets or sets the
+ that is used as the id.
+
+
+ The that is used as the id.
+
+
+
+
+ When implemented by a class, gets or sets the
+ that contains information about the identifier.
+
+ The that contains information about the identifier.
+
+
+
+ When implemented by a class, gets or sets the
+ that is used as the version.
+
+ The that is used as the version.
+
+
+
+ When implemented by a class, gets or sets the
+ that contains information about the discriminator.
+
+ The that contains information about the discriminator.
+
+
+
+ When implemented by a class, gets or sets if the mapped class has subclasses or is
+ a subclass.
+
+
+ if the mapped class has subclasses or is a subclass.
+
+
+
+
+ When implemented by a class, gets or sets the CacheConcurrencyStrategy
+ to use to read/write instances of the persistent class to the Cache.
+
+ The CacheConcurrencyStrategy used with the Cache.
+
+
+
+ When implemented by a class, gets or sets the
+ that this mapped class is extending.
+
+
+ The that this mapped class is extending.
+
+
+
+
+ When implemented by a class, gets or sets a boolean indicating if
+ explicit polymorphism should be used in Queries.
+
+
+ if only classes queried on should be returned,
+ if any class in the heirarchy should implicitly be returned.
+
+ The value of this is set by the polymorphism attribute.
+
+
+
+
+
+
+
+
+
+ When implemented by a class, gets or sets a boolean indicating if the identifier is
+ embedded in the class.
+
+ if the class identifies itself.
+
+ An embedded identifier is true when using a composite-id specifying
+ properties of the class as the key-property instead of using a class
+ as the composite-id.
+
+
+
+
+ When implemented by a class, gets the of the class
+ that is mapped in the class element.
+
+
+ The of the class that is mapped in the class element.
+
+
+
+
+ When implemented by a class, gets or sets the
+ that contains information about the Key.
+
+ The that contains information about the Key.
+
+
+
+ When implemented by a class, gets or sets the sql string that should
+ be a part of the where clause.
+
+
+ The sql string that should be a part of the where clause.
+
+
+ The value of this is set by the where attribute.
+
+
+
+
+ Gets or sets a boolean indicating if only values in the discriminator column that
+ are mapped will be included in the sql.
+
+ if the mapped discriminator values should be forced.
+
+ The value of this is set by the force attribute on the discriminator element.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The that is the superclass.
+
+
+
+ Add the to this PersistentClass.
+
+ The to add.
+
+ This also adds the to the Superclass' collection
+ of SubclassType Properties.
+
+
+
+
+ Adds a that is implemented by a subclass.
+
+ The implemented by a subclass.
+
+ This also adds the to the Superclass' collection
+ of SubclassType Properties.
+
+
+
+
+ Adds a that a subclass is stored in.
+
+ The the subclass is stored in.
+
+ This also adds the to the Superclass' collection
+ of SubclassType Tables.
+
+
+
+
+
+
+
+
+
+ Gets a boolean indicating if this mapped class is inherited from another.
+
+
+ because this is a SubclassType.
+
+
+
+
+ Gets an of objects that this mapped class contains.
+
+
+ An of objects that
+ this mapped class contains.
+
+
+ This is all of the properties of this mapped class and each mapped class that
+ it is inheriting from.
+
+
+
+
+ Gets an of objects that this
+ mapped class reads from and writes to.
+
+
+ An of objects that
+ this mapped class reads from and writes to.
+
+
+ This is all of the tables of this mapped class and each mapped class that
+ it is inheriting from.
+
+
+
+
+ Gets a boolean indicating if the mapped class has a version property.
+
+ if for the Superclass there is a Property for a version.
+
+
+
+
+
+
+
+
+ Gets the of the class
+ that is mapped in the class element.
+
+
+ The of the Superclass that is mapped in the class element.
+
+
+
+
+
+
+
+
+
+ Gets or sets the CacheConcurrencyStrategy
+ to use to read/write instances of the persistent class to the Cache.
+
+ The CacheConcurrencyStrategy used with the Cache.
+
+
+
+ Gets the of the class that is mapped in the class element.
+
+
+ The of the Superclass that is mapped in the class element.
+
+
+
+
+ Gets or sets the that this mapped class is extending.
+
+
+ The that this mapped class is extending.
+
+
+
+
+ Gets or sets the that is used as the id.
+
+
+ The from the Superclass that is used as the id.
+
+
+
+
+ Gets or sets the that contains information about the identifier.
+
+ The from the Superclass that contains information about the identifier.
+
+
+
+ Gets a boolean indicating if the mapped class has a Property for the id.
+
+ if in the Superclass there is a Property for the id.
+
+
+
+ Gets or sets the that contains information about the discriminator.
+
+ The from the Superclass that contains information about the discriminator.
+
+
+
+ Gets or set a boolean indicating if the mapped class has properties that can be changed.
+
+ if the Superclass is mutable.
+
+
+
+ Gets or sets if the mapped class is a subclass.
+
+
+ since this mapped class is a subclass.
+
+
+ The setter should not be used to set the value to anything but .
+
+
+
+
+ Gets or sets the that is used as the version.
+
+ The from the Superclass that is used as the version.
+
+
+
+ Gets or sets a boolean indicating if the identifier is
+ embedded in the class.
+
+ if the Superclass has an embedded identifier.
+
+ An embedded identifier is true when using a composite-id specifying
+ properties of the class as the key-property instead of using a class
+ as the composite-id.
+
+
+
+
+ Gets or sets the that contains information about the Key.
+
+ The that contains information about the Key.
+
+
+
+ Gets or sets a boolean indicating if explicit polymorphism should be used in Queries.
+
+
+ The value of the Superclasses IsExplicitPolymorphism property.
+
+
+
+
+ Gets the sql string that should be a part of the where clause.
+
+
+ The sql string that should be a part of the where clause.
+
+
+ Thrown when the setter is called. The where clause can not be set on the
+ SubclassType, only the RootClass.
+
+
+
+
+ Gets or Sets the that this class is stored in.
+
+ The this class is stored in.
+
+ This also adds the to the Superclass' collection
+ of SubclassType Tables.
+
+
+
+
+
+
+
+
+ A many-to-one association mapping
+
+
+
+ A simple-point association (ie. a reference to another entity).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A map has a primary key consisting of the key columns
+ + index columns.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The that contains this map mapping.
+
+
+
+ Gets the appropriate that is
+ specialized for this list mapping.
+
+
+
+
+ A meta attribute is a named value or values.
+
+
+
+
+ A mapping for a one-to-many association.
+
+
+
+
+
+
+
+
+
+ No foreign key element for a one-to-many
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A mapping for a one-to-one association.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A Primary Key constraint in the database.
+
+
+
+
+ Generates the SQL string to create the Primary Key Constraint in the database.
+
+ The to use for SQL rules.
+
+
+ A string that contains the SQL to create the Primary Key Constraint.
+
+
+
+
+ Generates the SQL string to create the named Primary Key Constraint in the database.
+
+ The to use for SQL rules.
+ The name to use as the identifier of the constraint in the database.
+
+
+
+ A string that contains the SQL to create the named Primary Key Constraint.
+
+
+
+
+ Get the SQL string to drop this Constraint in the database.
+
+ The to use for SQL rules.
+
+
+
+ A string that contains the SQL to drop this Constraint.
+
+
+
+
+ A primitive array has a primary key consisting
+ of the key columns + index column.
+
+
+
+
+ Indicates whether given properties are generated by the database and, if
+ so, at what time(s) they are generated.
+
+
+
+
+ Values for this property are never generated by the database.
+
+
+
+
+ Values for this property are generated by the database on insert.
+
+
+
+
+ Values for this property are generated by the database on both insert and update.
+
+
+
+
+ Declaration of a System.Type mapped with the <class> element that
+ is the root class of a table-per-subclass, or table-per-concrete-class
+ inheritance heirarchy.
+
+
+
+
+ The default name of the column for the Identifier
+
+ id is the default column name for the Identifier.
+
+
+
+ The default name of the column for the Discriminator
+
+ class is the default column name for the Discriminator.
+
+
+
+ Adds a to the class hierarchy.
+
+ The to add to the hierarchy.
+
+ When a is added this mapped class has the property
+ set to .
+
+
+
+
+
+
+
+
+
+
+ Gets a boolean indicating if this mapped class is inherited from another.
+
+
+ because this is the root mapped class.
+
+
+
+
+ Gets an of objects that this mapped class contains.
+
+
+ An of objects that
+ this mapped class contains.
+
+
+
+
+ Gets an of objects that this
+ mapped class reads from and writes to.
+
+
+ An of objects that
+ this mapped class reads from and writes to.
+
+
+ There is only one in the since
+ this is the root class.
+
+
+
+
+ Gets a boolean indicating if the mapped class has a version property.
+
+ if there is a Property for a version.
+
+
+
+ Gets the of the class
+ that is mapped in the class element.
+
+
+ The of the class this mapped class.
+
+
+
+
+ Gets or sets a boolean indicating if the identifier is
+ embedded in the class.
+
+ if the class identifies itself.
+
+ An embedded identifier is true when using a composite-id specifying
+ properties of the class as the key-property instead of using a class
+ as the composite-id.
+
+
+
+
+ Gets or sets the cache region name.
+
+ The region name used with the Cache.
+
+
+
+
+
+
+
+
+ Gets or sets the that is used as the id.
+
+
+ The that is used as the id.
+
+
+
+
+ Gets or sets the that contains information about the identifier.
+
+ The that contains information about the identifier.
+
+
+
+ Gets a boolean indicating if the mapped class has a Property for the id.
+
+ if there is a Property for the id.
+
+
+
+ Gets or sets the that contains information about the discriminator.
+
+ The that contains information about the discriminator.
+
+
+
+ Gets or sets if the mapped class has subclasses.
+
+
+ if the mapped class has subclasses.
+
+
+
+
+ Gets the of the class that is mapped in the class element.
+
+
+ this since this is the root mapped class.
+
+
+
+
+ Gets or sets a boolean indicating if explicit polymorphism should be used in Queries.
+
+
+ if only classes queried on should be returned,
+ if any class in the heirarchy should implicitly be returned.
+
+
+
+
+ Gets or sets the that is used as the version.
+
+ The that is used as the version.
+
+
+
+ Gets or set a boolean indicating if the mapped class has properties that can be changed.
+
+ if the object is mutable.
+
+
+
+ Gets or sets the that this mapped class is extending.
+
+
+ since this is the root class.
+
+
+ Thrown when the setter is called. The Superclass can not be set on the
+ RootClass, only the SubclassType can have a Superclass set.
+
+
+
+
+ Gets or sets the that contains information about the Key.
+
+ The that contains information about the Key.
+
+
+
+
+
+
+
+
+ Gets or sets a boolean indicating if only values in the discriminator column that
+ are mapped will be included in the sql.
+
+ if the mapped discriminator values should be forced.
+
+
+
+ Gets or sets the sql string that should be a part of the where clause.
+
+
+ The sql string that should be a part of the where clause.
+
+
+
+
+ Gets or sets the CacheConcurrencyStrategy
+ to use to read/write instances of the persistent class to the Cache.
+
+ The CacheConcurrencyStrategy used with the Cache.
+
+
+
+ A Set with no nullable element columns will have a primary
+ key consisting of all table columns (ie - key columns +
+ element columns).
+
+
+
+
+ A simple implementation of AbstractAuxiliaryDatabaseObject in which the CREATE and DROP strings are
+ provided up front.
+
+
+ Contains simple facilities for templating the catalog and schema
+ names into the provided strings.
+ This is the form created when the mapping documents use <create/> and <drop/>.
+
+
+
+ Placeholder for typedef information
+
+
+
+ An Unique Key constraint in the database.
+
+
+
+
+ Generates the SQL string to create the Unique Key Constraint in the database.
+
+ The to use for SQL rules.
+ A string that contains the SQL to create the Unique Key Constraint.
+
+
+
+ Generates the SQL string to create the Unique Key Constraint in the database.
+
+ The to use for SQL rules.
+
+
+
+
+ A string that contains the SQL to create the Unique Key Constraint.
+
+
+
+
+ Get the SQL string to drop this Constraint in the database.
+
+ The to use for SQL rules.
+
+
+
+ A string that contains the SQL to drop this Constraint.
+
+
+
+
+ Exposes entity class metadata to the application
+
+
+
+
+ Get the type of a particular (named) property
+
+
+ Return the values of the mapped properties of the object
+
+
+
+ The persistent class
+
+
+
+
+ Create a class instance initialized with the given identifier
+
+
+
+
+ Get the value of a particular (named) property
+
+
+
+ Extract the property values from the given entity.
+ The entity from which to extract the property values.
+ The entity-mode of the given entity
+ The property values.
+
+
+
+ Set the value of a particular (named) property
+
+
+
+
+ Set the given values to the mapped properties of the given object
+
+
+
+
+ Get the identifier of an instance (throw an exception if no identifier property)
+
+
+
+
+ Set the identifier of an instance (or do nothing if no identifier property)
+
+
+
+ Does the class implement the interface?
+
+
+ Does the class implement the interface?
+
+
+
+ Get the version number (or timestamp) from the object's version property
+ (or return null if not versioned)
+
+
+
+
+ The name of the entity
+
+
+
+
+ The name of the identifier property (or return null)
+
+
+
+
+ The names of the class' persistent properties
+
+
+
+
+ The identifier Hibernate type
+
+
+
+
+ The Hibernate types of the classes properties
+
+
+
+
+ Are instances of this class mutable?
+
+
+
+
+ Are instances of this class versioned by a timestamp or version number column?
+
+
+
+
+ Gets the index of the version property
+
+
+
+
+ Get the nullability of the class' persistent properties
+
+
+
+ Get the "laziness" of the properties of this class
+
+
+ Which properties hold the natural id?
+
+
+ Does this entity extend a mapped superclass?
+
+
+ Does the class support dynamic proxies?
+
+
+ Does the class have an identifier property?
+
+
+ Does this entity declare a natural id?
+
+
+ Does this entity have mapped subclasses?
+
+
+
+ Exposes collection metadata to the application
+
+
+
+
+ The collection key type
+
+
+
+
+ The collection element type
+
+
+
+
+ The collection index type (or null if the collection has no index)
+
+
+
+
+ Is the collection indexed?
+
+
+
+
+ The name of this collection role
+
+
+
+
+ Is the collection an array?
+
+
+
+
+ Is the collection a primitive array?
+
+
+
+
+ Is the collection lazily initialized?
+
+
+
+
+ Summary description for AbstractCollectionPersister.
+
+
+
+
+ A collection role that may be queried or loaded by outer join.
+
+
+
+
+ Abstraction of all mappings that define properties: entities, collection elements.
+
+
+
+
+ Given a component path expression, get the type of the property
+
+
+
+
+
+
+ Given a query alias and a property path, return the qualified column name
+
+
+
+
+
+
+ Given a property path, return the corresponding column name(s).
+
+
+
+ Get the type of the thing containing the properties
+
+
+
+
+ Anything that can be loaded by outer join - namely persisters for classes or collections.
+
+
+
+
+ All columns to select, when loading.
+
+
+
+
+ Get the where clause part of any joins (optional operation)
+
+
+
+
+
+
+
+
+ Get the from clause part of any joins (optional operation)
+
+
+
+
+
+
+
+
+ Get the where clause filter, given a query alias and considering enabled session filters
+
+
+
+
+ Very, very, very ugly...
+
+ Does this persister "consume" entity column aliases in the result
+ set?
+
+
+
+ Very, very, very ugly...
+
+ Does this persister "consume" collection column aliases in the result
+ set?
+
+
+
+ An identifying name; a class name or collection role name.
+
+
+
+
+ The columns to join on.
+
+
+
+
+ Is this instance actually a ICollectionPersister?
+
+
+
+
+ The table to join to.
+
+
+
+
+ A strategy for persisting a collection role.
+
+
+ Defines a contract between the persistence strategy and the actual persistent collection framework
+ and session. Does not define operations that are required for querying collections, or loading by outer join.
+
+ Implements persistence of a collection instance while the instance is
+ referenced in a particular role.
+
+ This class is highly coupled to the
+ hierarchy, since double dispatch is used to load and update collection
+ elements.
+
+ May be considered an immutable view of the mapping object
+
+
+
+
+ Initialize the given collection with the given key
+
+
+
+
+
+
+ Read the key from a row of the
+
+
+
+
+ Read the element from a row of the
+
+
+
+
+ Read the index from a row of the
+
+
+
+
+ Read the identifier from a row of the
+
+
+
+
+ Completely remove the persistent state of the collection
+
+
+
+
+
+
+ (Re)create the collection's persistent state
+
+
+
+
+
+
+
+ Delete the persistent state of any elements that were removed from the collection
+
+
+
+
+
+
+
+ Update the persistent state of any elements that were modified
+
+
+
+
+
+
+
+ Insert the persistent state of any new collection elements
+
+
+
+
+
+
+
+ Generates the collection's key column aliases, based on the given
+ suffix.
+
+ The suffix to use in the key column alias generation.
+ The key column aliases.
+
+
+
+ Generates the collection's index column aliases, based on the given
+ suffix.
+
+ The suffix to use in the index column alias generation.
+ The index column aliases, or null if not indexed.
+
+
+
+ Generates the collection's element column aliases, based on the given
+ suffix.
+
+ The suffix to use in the element column alias generation.
+ The element column aliases.
+
+
+
+ Generates the collection's identifier column aliases, based on the given
+ suffix.
+
+ The suffix to use in the identifier column alias generation.
+ The identifier column aliases.
+
+
+
+ Get the cache
+
+
+
+ Get the cache structure
+
+
+
+ Get the associated IType
+
+
+
+
+ Get the "key" type (the type of the foreign key)
+
+
+
+
+ Get the "index" type for a list or map (optional operation)
+
+
+
+
+ Get the "element" type
+
+
+
+
+ Return the element class of an array, or null otherwise
+
+
+
+
+ Is this an array or primitive values?
+
+
+
+
+ Is this an array?
+
+
+
+ Is this a one-to-many association?
+
+
+
+ Is this a many-to-many association? Note that this is mainly
+ a convenience feature as the single persister does not
+ contain all the information needed to handle a many-to-many
+ itself, as internally it is looked at as two many-to-ones.
+
+
+
+
+ Is this collection lazily initialized?
+
+
+
+
+ Is this collection "inverse", so state changes are not propogated to the database.
+
+
+
+
+ Get the name of this collection role (the fully qualified class name, extended by a "property path")
+
+
+
+ Get the persister of the entity that "owns" this collection
+
+
+
+ Get the surrogate key generation strategy (optional operation)
+
+
+
+
+ Get the type of the surrogate key
+
+
+
+ Get the "space" that holds the persistent state
+
+
+
+ Is cascade delete handled by the database-level
+ foreign key constraint definition?
+
+
+
+
+ Does this collection cause version increment of the owning entity?
+
+
+
+ Can the elements of this collection change?
+
+
+
+ Is this collection role cacheable
+
+
+
+
+ Is this an "indexed" collection? (list or map)
+
+
+
+
+ Does this collection implement "orphan delete"?
+
+
+
+
+ Is this an ordered collection? (An ordered collection is
+ ordered by the initialization operation, not by sorting
+ that happens in memory, as in the case of a sorted collection.)
+
+
+
+
+ Generate a list of collection index and element columns
+
+
+
+
+ Get the names of the collection index columns if
+ this is an indexed collection (optional operation),
+ aliased by the given table alias
+
+
+
+
+ Get the names of the collection element columns (or the primary
+ key columns in the case of a one-to-many association),
+ aliased by the given table alias
+
+
+
+
+ Get the extra where clause filter SQL
+
+
+
+
+
+
+ Get the order by SQL
+
+
+
+
+
+
+ Get the order-by to be applied at the target table of a many to many
+
+ The alias for the many-to-many target table
+ Appropriate order-by fragment or empty string.
+
+
+
+ Get the index formulas if this is an indexed collection
+ (optional operation)
+
+
+
+
+ Get the persister of the element class, if this is a
+ collection of entities (optional operation). Note that
+ for a one-to-many association, the returned persister
+ must be OuterJoinLoadable.
+
+
+
+
+ Should we load this collection role by outer joining?
+
+
+
+
+ Get the names of the collection index columns if this is an indexed collection (optional operation)
+
+
+
+
+ Get the names of the collection element columns (or the primary key columns in the case of a one-to-many association)
+
+
+
+
+ Does this collection role have a where clause filter?
+
+
+
+
+ Reads the Element from the IDataReader. The IDataReader will probably only contain
+ the id of the Element.
+
+ See ReadElementIdentifier for an explanation of why this method will be depreciated.
+
+
+
+ Return the element class of an array, or null otherwise
+
+
+
+
+ Get the name of this collection role (the fully qualified class name,
+ extended by a "property path")
+
+
+
+
+ Collection persister for collections of values and many-to-many associations.
+
+
+
+
+ Generate the SQL DELETE that deletes all rows
+
+
+
+
+
+ Generate the SQL INSERT that creates a new row
+
+
+
+
+
+ Generate the SQL UPDATE that updates a row
+
+
+
+
+
+ Generate the SQL DELETE that deletes a particular row
+
+
+
+
+
+ Create the
+
+
+
+
+ Summary description for CollectionPropertyMapping.
+
+
+
+
+ The names of all the collection properties.
+
+
+
+
+ Summary description for CompositeElementPropertyMapping.
+
+
+
+
+ Base implementation of a PropertyMapping.
+
+
+
+
+ Summary description for ElementPropertyMapping.
+
+
+
+
+ Summary description for OneToManyPersister.
+
+
+
+
+ Generate the SQL UPDATE that updates all the foreign keys to null
+
+
+
+
+
+ Generate the SQL UPDATE that updates a foreign key to a value
+
+
+
+
+
+ Not needed for one-to-many association
+
+
+
+
+
+ Generate the SQL UPDATE that updates a particular row's foreign
+ key to null
+
+
+
+
+
+ Create the
+
+
+
+
+ Superclass for built-in mapping strategies. Implements functionalty common to both mapping
+ strategies
+
+
+ May be considered an immutable view of the mapping object
+
+
+
+
+ A ClassPersister that may be loaded by outer join using
+ the OuterJoinLoader hierarchy and may be an element
+ of a one-to-many association.
+
+
+
+
+ Implemented by ClassPersister that uses Loader. There are several optional
+ operations used only by loaders that inherit OuterJoinLoader
+
+
+
+
+ Get the concrete subclass corresponding to the given discriminator value
+
+
+
+
+ Get the result set aliases used for the identifier columns, given a suffix
+
+
+
+
+ Get the result set aliases used for the property columns, given a suffix (properties of this class, only).
+
+
+
+
+ Get the result set column names mapped for this property (properties of this class, only).
+
+
+
+
+ Get the alias used for the discriminator column, given a suffix
+
+
+
+
+ Retrieve property values from one row of a result set
+
+
+
+
+ The discriminator type
+
+
+
+
+ Get the names of columns used to persist the identifier
+
+
+
+
+ Get the name of the column used as a discriminator
+
+
+
+
+ Does the persistent class have subclasses?
+
+
+
+ Does the result set contain rowids?
+
+
+
+ Generate a list of collection index and element columns
+
+
+
+
+
+
+
+ How many properties are there, for this class and all subclasses? (optional operation)
+
+
+
+
+
+ May this property be fetched using an SQL outerjoin?
+
+
+
+
+
+
+ Get the cascade style of this (subclass closure) property
+
+
+
+
+ Is this property defined on a subclass of the mapped class?
+
+
+
+
+
+
+ Get an array of the types of all properties of all subclasses (optional operation)
+
+
+
+
+
+
+ Get the name of the numbered property of the class or a subclass
+ (optional operation)
+
+
+
+
+
+
+ Is the numbered property of the class of subclass nullable?
+
+
+
+
+ Return the column names used to persist all properties of all sublasses of the persistent class
+ (optional operation)
+
+
+
+
+ Return the table name used to persist the numbered property of
+ the class or a subclass
+ (optional operation)
+
+
+
+
+ Given the number of a property of a subclass, and a table alias, return the aliased column names
+ (optional operation)
+
+
+
+
+
+
+
+ Get the main from table fragment, given a query alias (optional operation)
+
+
+
+
+
+
+ Get the column names for the given property path
+
+
+
+
+ Get the table name for the given property path
+
+
+
+
+ Extends the generic ILoadable contract to add operations required by HQL
+
+
+
+
+ Given a query alias and an identifying suffix, render the intentifier select fragment.
+
+
+
+
+
+
+
+
+ Given a property name, determine the number of the table which contains the column
+ to which this property is mapped.
+
+ The name of the property.
+ The nunber of the table to which the property is mapped.
+
+ Note that this is not relative to the results from {@link #getConstraintOrderedTableNameClosure()}.
+ It is relative to the subclass table name closure maintained internal to the persister (yick!).
+ It is also relative to the indexing used to resolve {@link #getSubclassTableName}...
+
+
+
+ Determine whether the given property is declared by our
+ mapped class, our super class, or one of our subclasses...
+
+ Note: the method is called 'subclass property...' simply
+ for consistency sake (e.g. {@link #getSubclassPropertyTableNumber}
+
+ The property name.
+ The property declarer
+
+
+
+ Get the name of the table with the given index from the internal array.
+
+ The index into the internal array.
+
+
+
+
+ Is this an abstract class?
+
+
+
+ Is this class explicit polymorphism only?
+
+
+
+
+ The class that this class is mapped as a subclass of - not necessarily the direct superclass
+
+
+
+ Get the names of columns used to persist the identifier
+
+
+
+ The discriminator value for this particular concrete subclass, as a string that may be
+ embedded in a select statement
+
+
+
+
+ The discriminator value for this particular concrete subclass
+
+ The DiscriminatorValue is specific of NH since we are using strongly typed parameters for SQL query.
+
+
+
+ Is the inheritence hierarchy described by this persister contained across
+ multiple tables?
+
+ True if the inheritence hierarchy is spread across multiple tables; false otherwise.
+
+
+
+ Get the names of all tables used in the hierarchy (up and down) ordered such
+ that deletes in the given order would not cause contraint violations.
+
+ The ordered array of table names.
+
+
+
+ For each table specified in , get
+ the columns that define the key between the various hierarchy classes.
+
+
+ The first dimension here corresponds to the table indexes returned in
+ .
+
+ The second dimension should have the same length across all the elements in
+ the first dimension. If not, that'd be a problem ;)
+
+
+
+
+ Get the name of the temporary table to be used to (potentially) store id values
+ when performing bulk update/deletes.
+
+ The appropriate temporary table name.
+
+
+
+ Get the appropriate DDL command for generating the temporary table to
+ be used to (potentially) store id values when performing bulk update/deletes.
+
+ The appropriate temporary table creation command.
+
+
+ Is the version property included in insert statements?
+
+
+
+ Describes a class that may be loaded via a unique key.
+
+
+
+
+ Load an instance of the persistent class, by a unique key other than the primary key.
+
+
+
+
+ Get the property number of the unique key property
+
+
+
+
+ A class persister that supports queries expressed in the platform native SQL dialect.
+
+
+
+
+ Returns the column alias names used to persist/query the numbered property of the class or a subclass (optional operation).
+
+
+
+
+ Return the column names used to persist/query the named property of the class or a subclass (optional operation).
+
+
+
+
+ All columns to select, when loading.
+
+
+
+
+ Get the type
+
+
+
+
+ Contract for things that can be locked via a .
+
+
+ Currently only the root table gets locked, except for the case of HQL and Criteria queries
+ against dialects which do not support either (1) FOR UPDATE OF or (2) support hint locking
+ (in which case *all* queried tables would be locked).
+
+
+
+
+ Get the SQL alias this persister would use for the root table
+ given the passed driving alias.
+
+
+ The driving alias; or the alias for the table mapped by this persister in the hierarchy.
+
+ The root table alias.
+
+
+
+ Locks are always applied to the "root table".
+
+
+
+
+ Get the names of columns on the root table used to persist the identifier.
+
+
+
+
+ For versioned entities, get the name of the column (again, expected on the
+ root table) used to store the version values.
+
+
+
+
+ To build the SQL command in pessimistic lock
+
+
+
+
+ Decide which tables need to be updated
+
+ The indices of all the entity properties considered dirty.
+ Whether any collections owned by the entity which were considered dirty.
+ Array of booleans indicating which table require updating.
+
+ The return here is an array of boolean values with each index corresponding
+ to a given table in the scope of this persister.
+
+
+
+
+ Generate the SQL that selects the version number by id
+
+
+
+
+ Retrieve the version number
+
+
+
+
+ Warning:
+ When there are duplicated property names in the subclasses
+ of the class, this method may return the wrong table
+ number for the duplicated subclass property (note that
+ SingleTableEntityPersister defines an overloaded form
+ which takes the entity name.
+
+
+
+
+ Get the column names for the numbered property of this class
+
+
+
+
+ Must be called by subclasses, at the end of their constructors
+
+
+
+ Generate the SQL that updates a row by id (and version)
+
+
+ Generate the SQL that inserts a row
+
+
+ Marshall the fields of a persistent instance to a prepared statement
+
+
+
+ Unmarshall the fields of a persistent instance from a result set,
+ without resolving associations or collections
+
+
+
+
+ Perform an SQL INSERT, and then retrieve a generated identifier.
+
+
+ This form is used for PostInsertIdentifierGenerator-style ids (IDENTITY, select, etc).
+
+
+
+
+ Perform an SQL INSERT.
+
+
+ This for is used for all non-root tables as well as the root table
+ in cases where the identifier value is known before the insert occurs.
+
+
+
+ Perform an SQL UPDATE or SQL INSERT
+
+
+
+ Perform an SQL DELETE
+
+
+
+
+ Load an instance using the appropriate loader (as determined by
+
+
+
+
+ Transform the array of property indexes to an array of booleans, true when the property is dirty
+
+
+
+ Which properties appear in the SQL update? (Initialized, updateable ones!)
+
+
+
+ Determines whether the specified entity is an instance of the class
+ managed by this persister.
+
+ The entity.
+ The entity mode.
+
+ if the specified entity is an instance; otherwise, .
+
+
+
+
+ The queries that delete rows by id (and version)
+
+
+
+
+ The queries that insert rows with a given id
+
+
+
+
+ The queries that update rows by id (and version)
+
+
+
+
+ The query that inserts a row, letting the database generate an id
+
+ The IDENTITY-based insertion query.
+
+
+
+ We can't immediately add to the cache if we have formulas
+ which must be evaluated, or if we have the possibility of
+ two concurrent updates to the same item being merged on
+ the database. This can happen if (a) the item is not
+ versioned and either (b) we have dynamic update enabled
+ or (c) we have multiple tables holding the state of the
+ item.
+
+
+
+ The property name of the "special" identifier property in HQL
+
+
+
+ A IEntityPersister implementing the normalized "table-per-subclass" mapping strategy
+
+
+
+
+ Constructs the NormalizedEntityPerister for the PersistentClass.
+
+ The PersistentClass to create the EntityPersister for.
+ The configured .
+ The SessionFactory that this EntityPersister will be stored in.
+ The mapping used to retrieve type information.
+
+
+
+ Find the Index of the table name from a list of table names.
+
+ The name of the table to find.
+ The array of table names
+ The Index of the table in the array.
+ Thrown when the tableName specified can't be found
+
+
+
+ Not really a Loader, just a wrapper around a named query.
+
+
+
+
+ Default implementation of the ClassPersister interface. Implements the
+ "table-per-class hierarchy" mapping strategy for an entity class.
+
+
+
+ Generate the SQL that selects a row by id
+
+
+
+ Factory for IEntityPersister and ICollectionPersister instances.
+
+
+
+
+ Creates a built in Entity Persister or a custom Persister.
+
+
+
+
+ Creates a specific Persister - could be a built in or custom persister.
+
+
+
+ Represents a "back-reference" to the id of a collection owner.
+
+
+
+ Abstracts the notion of a "property". Defines a strategy for accessing the
+ value of a mapped property.
+
+
+
+
+ When implemented by a class, create a "getter" for the mapped property.
+
+ The to find the Property in.
+ The name of the mapped Property to get.
+
+ The to use to get the value of the Property from an
+ instance of the .
+
+ Thrown when a Property specified by the propertyName could not
+ be found in the .
+
+
+
+
+ When implemented by a class, create a "setter" for the mapped property.
+
+ The to find the Property in.
+ The name of the mapped Property to set.
+
+ The to use to set the value of the Property on an
+ instance of the .
+
+
+ Thrown when a Property specified by the propertyName could not
+ be found in the .
+
+
+
+
+ Allow embedded and custom accessors to define if the ReflectionOptimizer can be used.
+
+
+
+ The Setter implementation for id backrefs.
+
+
+
+ Sets values of a particular mapped property.
+
+
+
+
+ When implemented by a class, sets the value of the Property/Field on the object.
+
+ The object to set the Property value in.
+ The value to set the Property to.
+
+ Thrown when there is a problem setting the value in the target.
+
+
+
+
+ When implemented by a class, gets the name of the Property.
+
+ The name of the Property or .
+
+ This is an optional operation - if it is not implemented then
+ is an acceptable value to return.
+
+
+
+
+ When implemented by a class, gets the for the set
+ accessor of the property.
+
+
+ This is an optional operation - if the is not
+ for a property set then is an acceptable value to return.
+ It is used by the proxies to determine which setter to intercept for the
+ identifier property.
+
+
+
+ The Getter implementation for id backrefs.
+
+
+
+ Gets values of a particular mapped property.
+
+
+
+
+ When implemented by a class, gets the value of the Property/Field from the object.
+
+ The object to get the Property/Field value from.
+
+ The value of the Property for the target.
+
+
+ Thrown when there is a problem getting the value from the target.
+
+
+
+ Get the property value from the given owner instance.
+ The instance containing the value to be retrieved.
+ a map of merged persistent instances to detached instances
+ The session from which this request originated.
+ The extracted value.
+
+
+
+ When implemented by a class, gets the that the Property/Field returns.
+
+ The that the Property returns.
+
+
+
+ When implemented by a class, gets the name of the Property.
+
+ The name of the Property or .
+
+ This is an optional operation - if the is not
+ for a Property get then is an acceptable value to return.
+
+
+
+
+ When implemented by a class, gets the for the get
+ accessor of the property.
+
+
+ This is an optional operation - if the is not
+ for a property get then is an acceptable value to return.
+ It is used by the proxies to determine which getter to intercept for the
+ identifier property.
+
+
+
+
+ Accesses mapped property values via a get/set pair, which may be nonpublic.
+ The default (and recommended strategy).
+
+
+
+
+ Create a for the mapped property.
+
+ The to find the Property in.
+ The name of the mapped Property to get.
+
+ The to use to get the value of the Property from an
+ instance of the .
+
+ Thrown when a Property specified by the propertyName could not
+ be found in the .
+
+
+
+
+ Create a for the mapped property.
+
+ The to find the Property in.
+ The name of the mapped Property to get.
+
+ The to use to set the value of the Property on an
+ instance of the .
+
+
+ Thrown when a Property specified by the propertyName could not
+ be found in the .
+
+
+
+
+ Helper method to find the Property get.
+
+ The to find the Property in.
+ The name of the mapped Property to get.
+
+ The for the Property get or
+ if the Property could not be found.
+
+
+
+
+ Helper method to find the Property set.
+
+ The to find the Property in.
+ The name of the mapped Property to set.
+
+ The for the Property set or
+ if the Property could not be found.
+
+
+
+
+ An for a Property get.
+
+
+
+
+ An that can emit IL to get the property value.
+
+
+
+
+ Emit IL to get the property value from the object on top of the stack.
+
+
+
+
+ Initializes a new instance of .
+
+ The that contains the Property get.
+ The for reflection.
+ The name of the Property.
+
+
+
+ Gets the value of the Property from the object.
+
+ The object to get the Property value from.
+
+ The value of the Property for the target.
+
+
+
+
+ Gets the that the Property returns.
+
+ The that the Property returns.
+
+
+
+ Gets the name of the Property.
+
+ The name of the Property.
+
+
+
+ Gets the for the Property.
+
+
+ The for the Property.
+
+
+
+
+ An for a Property set.
+
+
+
+
+ An that can emit IL to set the property value.
+
+
+
+
+ Emit IL to set the property of an object to the value. The object
+ is loaded onto the stack first, then the value, then this method
+ is called.
+
+
+
+
+ Initializes a new instance of .
+
+ The that contains the Property set.
+ The for reflection.
+ The name of the mapped Property.
+
+
+
+ Sets the value of the Property on the object.
+
+ The object to set the Property value in.
+ The value to set the Property to.
+
+ Thrown when there is a problem setting the value in the target.
+
+
+
+
+ Gets the name of the mapped Property.
+
+ The name of the mapped Property or .
+
+
+
+ Gets the for the mapped Property.
+
+ The for the mapped Property.
+
+
+
+ Implementation of for fields that are the
+ camelCase version of the PropertyName
+
+
+
+
+ A Strategy for converting a mapped property name to a Field name.
+
+
+
+
+ When implemented by a class, converts the Property's name into a Field name
+
+ The name of the mapped property.
+ The name of the Field.
+
+
+
+ Converts the Property's name into a Field name by making the first character
+ lower case.
+
+ The name of the mapped property.
+ The name of the Field in CamelCase format.
+
+
+
+ Implementation of for fields that are prefixed with
+ an underscore and the PropertyName is changed to camelCase.
+
+
+
+
+ Converts the Property's name into a Field name by making the first character
+ of the propertyName lowercase and prefixing it with an underscore.
+
+ The name of the mapped property.
+ The name of the Field in CamelCase format prefixed with an underscore.
+
+
+
+ Access the mapped property by using a Field to get and set the value.
+
+
+ The is useful when you expose getter and setters
+ for a Property, but they have extra code in them that shouldn't be executed when NHibernate
+ is setting or getting the values for loads or saves.
+
+
+
+
+ Initializes a new instance of .
+
+
+
+
+ Initializes a new instance of .
+
+ The to use.
+
+
+
+ Create a to get the value of the mapped Property
+ through a Field.
+
+ The to find the Property in.
+ The name of the mapped Property to get.
+
+ The to use to get the value of the Property from an
+ instance of the .
+
+ Thrown when a Field specified by the propertyName could not
+ be found in the .
+
+
+
+
+ Create a to set the value of the mapped Property
+ through a Field.
+
+ The to find the mapped Property in.
+ The name of the mapped Property to set.
+
+ The to use to set the value of the Property on an
+ instance of the .
+
+
+ Thrown when a Field for the Property specified by the propertyName using the
+ could not be found in the .
+
+
+
+
+ Helper method to find the Field.
+
+ The to find the Field in.
+ The name of the Field to find.
+
+ The for the field.
+
+
+ Thrown when a field could not be found.
+
+
+
+
+ Converts the mapped property's name into a Field using
+ the if one exists.
+
+ The name of the Property.
+ The name of the Field.
+
+
+
+ Gets the used to convert the name of the
+ mapped Property in the hbm.xml file to the name of the field in the class.
+
+ The or .
+
+
+
+ An that uses a Field instead of the Property get.
+
+
+
+
+ Initializes a new instance of .
+
+ The that contains the field to use for the Property get.
+ The for reflection.
+ The name of the Field.
+
+
+
+ Gets the value of the Field from the object.
+
+ The object to get the Field value from.
+
+ The value of the Field for the target.
+
+
+
+
+ Gets the that the Field returns.
+
+ The that the Field returns.
+
+
+
+ Gets the name of the Property.
+
+ since this is a Field - not a Property.
+
+
+
+ Gets the for the Property.
+
+ since this is a Field - not a Property.
+
+
+
+ An that uses a Field instead of the Property set.
+
+
+
+
+ Initializes a new instance of .
+
+ The that contains the Field to use for the Property set.
+ The for reflection.
+ The name of the Field.
+
+
+
+ Sets the value of the Field on the object.
+
+ The object to set the Field value in.
+ The value to set the Field to.
+
+ Thrown when there is a problem setting the value in the target.
+
+
+
+
+ Gets the name of the Property.
+
+ since this is a Field - not a Property.
+
+
+
+ Gets the for the Property.
+
+ since this is a Field - not a Property.
+
+
+ Represents a "back-reference" to the index of a collection.
+
+
+ Constructs a new instance of IndexPropertyAccessor.
+ The collection role which this back ref references.
+ The owner entity name.
+
+
+ The Setter implementation for index backrefs.
+
+
+ The Getter implementation for index backrefs.
+
+
+
+ Implementation of for fields that are
+ the PropertyName in all LowerCase characters.
+
+
+
+
+ Converts the Property's name into a Field name by making the all characters
+ of the propertyName lowercase.
+
+ The name of the mapped property.
+ The name of the Field in lowercase.
+
+
+
+ Implementation of for fields that are prefixed with
+ an underscore and the PropertyName is changed to lower case.
+
+
+
+
+ Converts the Property's name into a Field name by making the all characters
+ of the propertyName lowercase and prefixing it with an underscore.
+
+ The name of the mapped property.
+ The name of the Field in lowercase prefixed with an underscore.
+
+
+ Used to declare properties not represented at the pojo level
+
+
+ A Getter which will always return null. It should not be called anyway.
+
+
+ A Setter which will just do nothing.
+
+
+
+ Access the mapped property through a Property get to get the value
+ and go directly to the Field to set the value.
+
+
+ This is most useful because Classes can provider a get for the Property
+ that is the <id> but tell NHibernate there is no setter for the Property
+ so the value should be written directly to the field.
+
+
+
+
+ Initializes a new instance of .
+
+ The to use.
+
+
+
+ Creates an to get the value from the Property.
+
+ The to find the Property in.
+ The name of the mapped Property to get.
+
+ The to use to get the value of the Property from an
+ instance of the .
+
+ Thrown when a Property specified by the propertyName could not
+ be found in the .
+
+
+
+
+ Create a to set the value of the mapped Property
+ through a Field.
+
+ The to find the mapped Property in.
+ The name of the mapped Property to set.
+
+ The to use to set the value of the Property on an
+ instance of the .
+
+
+ Thrown when a Field for the Property specified by the propertyName using the
+ could not be found in the .
+
+
+
+
+ Converts the Property's name into a Field name by making the first character
+ of the propertyName uppercase and prefixing it with the letter 'm'.
+
+ The name of the mapped property.
+ The name of the Field in PascalCase format prefixed with an 'm'.
+
+
+
+ Implementation of for fields that are prefixed with
+ an m_ and the first character in PropertyName capitalized.
+
+
+
+
+ Converts the Property's name into a Field name by making the first character
+ of the propertyName uppercase and prefixing it with the letter 'm'
+ and an underscore.
+
+ The name of the mapped property.
+ The name of the Field in PascalCase format prefixed with an 'm' and an underscore.
+
+
+
+ Implementation of for fields that are prefixed with
+ an _ and the first character in PropertyName capitalized.
+
+
+
+
+ Converts the Property's name into a Field name by making the first character
+ of the propertyName uppercase and prefixing it with an underscore.
+
+ The name of the mapped property.
+ The name of the Field in PascalCase format prefixed with an underscore.
+
+
+
+ Factory for creating the various PropertyAccessor strategies.
+
+
+
+
+ Initializes the static members in .
+
+
+
+
+ Gets or creates the specified by the type.
+
+
+ The specified by the type.
+
+
+ The built in ways of accessing the values of Properties in your domain class are:
+
+
+
+ Access Method
+ How NHibernate accesses the Mapped Class.
+
+
+ property
+
+ The name attribute is the name of the Property. This is the
+ default implementation.
+
+
+
+ field
+
+ The name attribute is the name of the field. If you have any Properties
+ in the Mapped Class those will be bypassed and NHibernate will go straight to the
+ field. This is a good option if your setters have business rules attached to them
+ or if you don't want to expose a field through a Getter & Setter.
+
+
+
+ nosetter
+
+ The name attribute is the name of the Property. NHibernate will use the
+ Property's get method to retrieve the value and will use the field
+ to set the value. This is a good option for <id> Properties because this access method
+ allows users of the Class to get the value of the Id but not set the value.
+
+
+
+ Assembly Qualified Name
+
+ If NHibernate's built in s are not what is needed for your
+ situation then you are free to build your own. Provide an Assembly Qualified Name so that
+ NHibernate can call Activator.CreateInstance(AssemblyQualifiedName) to create it.
+
+
+
+
+ In order for the nosetter to know the name of the field to access NHibernate needs to know
+ what the naming strategy is. The following naming strategies are built into NHibernate:
+
+
+
+ Naming Strategy
+ How NHibernate converts the value of the name attribute to a field name.
+
+
+ camelcase
+
+ The name attribute should be changed to CamelCase to find the field.
+ <property name="Foo" ... > finds a field foo.
+
+
+
+ camelcase-underscore
+
+ The name attribute should be changed to CamelCase and prefixed with
+ an underscore to find the field.
+ <property name="Foo" ... > finds a field _foo.
+
+
+
+ pascalcase-underscore
+
+ The name attribute should be prefixed with an underscore
+ to find the field.
+ <property name="Foo" ... > finds a field _Foo.
+
+
+
+ pascalcase-m-underscore
+
+ The name attribute should be prefixed with an 'm' and underscore
+ to find the field.
+ <property name="Foo" ... > finds a field m_Foo.
+
+
+
+ pascalcase-m
+
+ The name attribute should be prefixed with an 'm'.
+ <property name="Foo" ... > finds a field mFoo.
+
+
+
+ lowercase
+
+ The name attribute should be changed to lowercase to find the field.
+ <property name="FooBar" ... > finds a field foobar.
+
+
+
+ lowercase-underscore
+
+ The name attribute should be changed to lowercase and prefixed with
+ and underscore to find the field.
+ <property name="FooBar" ... > finds a field _foobar.
+
+
+
+
+ The naming strategy can also be appended at the end of the field access method. Where
+ this could be useful is a scenario where you do expose a get and set method in the Domain Class
+ but NHibernate should only use the fields.
+
+
+ With a naming strategy and a get/set for the Property available the user of the Domain Class
+ could write an Hql statement from Foo as foo where foo.SomeProperty = 'a'. If no naming
+ strategy was specified the Hql statement would have to be from Foo as foo where foo._someProperty
+ (assuming CamelCase with an underscore field naming strategy is used).
+
+
+
+
+ Retrieves a PropertyAccessor instance based on the given property definition and entity mode.
+ The property for which to retrieve an accessor.
+ The mode for the resulting entity.
+ An appropriate accessor.
+
+
+ Lazy initializer for "dynamic-map" entity representations.
+
+
+
+ Provides the base functionality to Handle Member calls into a dynamically
+ generated NHibernate Proxy.
+
+
+ This could be an extension point later if the .net framework ever gets a Proxy
+ class that is similar to the java.lang.reflect.Proxy or if a library similar
+ to cglib was made in .net.
+
+
+
+
+ Perform an ImmediateLoad of the actual object for the Proxy.
+
+
+ Thrown when the Proxy has no Session or the Session is closed or disconnected.
+
+
+
+
+ Return the Underlying Persistent Object, initializing if necessary.
+
+ The Persistent Object this proxy is Proxying.
+
+
+
+ Return the Underlying Persistent Object in a given , or null.
+
+ The Session to get the object from.
+ The Persistent Object this proxy is Proxying, or .
+
+
+
+
+
+ Get the entity name
+
+
+
+
+
+
+
+
+
+
+
+
+ If this is returned by Invoke then the subclass needs to Invoke the
+ method call against the object that is being proxied.
+
+
+
+
+ Create a LazyInitializer to handle all of the Methods/Properties that are called
+ on the Proxy.
+
+ The entityName
+ The Id of the Object we are Proxying.
+ The ISession this Proxy is in.
+
+
+
+ Perform an ImmediateLoad of the actual object for the Proxy.
+
+
+ Thrown when the Proxy has no Session or the Session is closed or disconnected.
+
+
+
+
+ Return the Underlying Persistent Object, initializing if necessary.
+
+ The Persistent Object this proxy is Proxying.
+
+
+
+ Return the Underlying Persistent Object in a given , or null.
+
+ The Session to get the object from.
+ The Persistent Object this proxy is Proxying, or .
+
+
+
+
+
+
+
+
+ Proxy for "dynamic-map" entity representations.
+
+
+
+ A marker interface so NHibernate can know if it is dealing with
+ an object that is a Proxy.
+
+
+
+ This interface should not be implemented by anything other than
+ the Dynamically generated Proxy. If it is implemented by a class then
+ NHibernate will think that class is a Proxy and will not work.
+
+
+ It has to be public scope because
+ the Proxies are created in a separate DLL than NHibernate.
+
+
+
+
+ Get the underlying lazy initialization handler.
+
+
+ Contract for run-time, proxy-based lazy initialization proxies.
+
+
+ Called immediately after instantiation of this factory.
+
+ The name of the entity for which this factory should generate proxies.
+
+
+ The entity class for which to generate proxies; not always the same as the entityName.
+
+
+ The interfaces to expose in the generated proxy;
+ is already included in this collection.
+
+
+ Reference to the identifier getter method; invocation on this method should not force initialization
+
+
+ Reference to the identifier setter method; invocation on this method should not force initialization
+
+
+ For composite identifier types, a reference to
+ the type of the identifier
+ property; again accessing the id should generally not cause
+ initialization - but need to bear in mind key-many-to-one
+ mappings.
+
+ Indicates a problem completing post
+
+ Essentially equivalent to constructor injection, but contracted
+ here via interface.
+
+
+
+
+ Create a new proxy
+
+ The id value for the proxy to be generated.
+ The session to which the generated proxy will be associated.
+ The generated proxy.
+ Indicates problems generating requested proxy.
+
+
+
+ A for use with the Castle Dynamic Class Generator.
+
+
+
+ Lazy initializer for POCOs
+
+
+
+ Adds all of the information into the SerializationInfo that is needed to
+ reconstruct the proxy during deserialization or to replace the proxy
+ with the instantiated target.
+
+
+ This will only be called if the Dynamic Proxy generator does not handle serialization
+ itself or delegates calls to the method GetObjectData to the LazyInitializer.
+
+
+
+
+ Invokes the method if this is something that the LazyInitializer can handle
+ without the underlying proxied object being instantiated.
+
+ The name of the method/property to Invoke.
+ The arguments to pass the method/property.
+ The proxy object that the method is being invoked on.
+
+ The result of the Invoke if the underlying proxied object is not needed. If the
+ underlying proxied object is needed then it returns the result
+ which indicates that the Proxy will need to forward to the real implementation.
+
+
+
+
+ Initializes a new object.
+
+
+ The Class to Proxy.
+ The Id of the Object we are Proxying.
+
+
+
+ The ISession this Proxy is in.
+
+
+
+ Invoke the actual Property/Method using the Proxy or instantiate the actual
+ object and use it when the Proxy can't handle the method.
+
+ The from the generated Castle.DynamicProxy.
+
+
+
+ Build a proxy using the Castle.DynamicProxy library.
+
+ The value for the Id.
+ The Session the proxy is in.
+ A fully built INHibernateProxy.
+
+
+
+ NHibernateProxyHelper provides convenience methods for working with
+ objects that might be instances of Classes or the Proxied version of
+ the Class.
+
+
+
+
+ Get the class of an instance or the underlying class of a proxy (without initializing the proxy!).
+ It is almost always better to use the entity name!
+
+ The object to get the type of.
+ The Underlying Type for the object regardless of if it is a Proxy.
+
+
+
+ Get the true, underlying class of a proxied persistent class. This operation
+ will NOT initialize the proxy and thus may return an incorrect result.
+
+ a persistable object or proxy
+ guessed class of the instance
+
+ This method is approximate match for Session.bestGuessEntityName in H3.2
+
+
+
+
+ Validates whether can be specified as the base class
+ (or an interface) for a dynamically-generated proxy.
+
+
+ A collection of errors, if any, or if none were found.
+
+ The type to validate.
+
+
+
+ Aliases tables and fields for Sql Statements.
+
+
+ Several methods of this class take an additional
+ parameter, while their Java counterparts
+ do not. The dialect is used to correctly quote and unquote identifiers.
+ Java versions do the quoting and unquoting themselves and fail to
+ consider dialect-specific rules, such as escaping closing brackets in
+ identifiers on MS SQL 2000.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ An ANSI SQL CASE expression.
+ case when ... then ... end as ...
+
+ This class looks StringHelper.SqlParameter safe...
+
+
+ Abstract SQL case fragment renderer
+
+
+
+ An ANSI-style Join.
+
+
+
+
+
+
+
+ Sets the op
+
+ The op to set
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ An Oracle-style DECODE function.
+
+ decode(pkvalue, key1, 1, key2, 2, ..., 0)
+
+
+
+
+
+
+
+ Represents an SQL for update of ... nowait statement
+
+
+
+
+ Represents an ... in (...) expression
+
+
+
+
+ Add a value to the value list. Value may be a string,
+ a , or one of special values
+ or .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ An Oracle-style (theta) Join
+
+
+
+
+ This method is a bit of a hack, and assumes
+ that the column on the "right" side of the
+ join appears on the "left" side of the
+ operator, which is extremely weird if this
+ was a normal join condition, but is natural
+ for a filter.
+
+
+
+
+ A placeholder for an ADO.NET parameter in an .
+
+
+
+
+ Used as a placeholder when parsing HQL or SQL queries.
+
+
+
+
+ Generates an array of parameters for the given SqlTypes.
+
+ The number of parameters to generate.
+ An array of objects
+
+
+
+ Determines whether this instance and the specified object
+ are of the same type and have the same values.
+
+ An object to compare to this instance.
+
+ if the object equals the current instance.
+
+
+
+
+ Gets a hash code for the parameter.
+
+
+ An value for the hash code.
+
+
+
+
+ Summary description for QueryJoinFragment.
+
+
+
+
+ Summary description for QuerySelect.
+
+
+
+
+ Certain databases don't like spaces around these operators.
+
+
+ This needs to contain both a plain string and a
+ SqlString version of the operator because the portions in
+ the WHERE clause will come in as SqlStrings since there
+ might be parameters, other portions of the clause come in
+ as strings since there are no parameters.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Adds a string containing a valid "order by" sql statement
+ to this QuerySelect
+
+ The "order by" sql statement.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Represents part of an SQL SELECT clause
+
+
+
+
+ Equivalent to ToSqlStringFragment.
+
+
+
+ In H3, it is called ToFragmentString(). It appears to be
+ functionally equivalent as ToSqlStringFragment() here.
+
+
+
+
+ The base class for all of the SqlBuilders.
+
+
+
+
+ Converts the ColumnNames and ColumnValues to a WhereFragment
+
+ The names of the Columns to Add to the WhereFragment
+ A SqlString that contains the WhereFragment
+ This just calls the overloaded ToWhereFragment() with the operator as " = " and the tableAlias null.
+
+
+
+ Converts the ColumnNames and ColumnValues to a WhereFragment
+
+ The Alias for the Table.
+ The names of the Columns to Add to the WhereFragment
+ A SqlString that contains the WhereFragment
+ This defaults the op to " = "
+
+
+
+ Converts the ColumnNames and ColumnValues to a WhereFragment
+
+ The names of the Columns to Add to the WhereFragment
+ The operator to use between the names & values. For example " = " or "!="
+ A SqlString that contains the WhereFragment
+
+
+
+ Converts the ColumnNames and ColumnValues to a WhereFragment
+
+ The Alias for the Table.
+ The names of the Columns to Add to the WhereFragment
+ The operator to use between the names & values. For example " = " or "!="
+ A SqlString that contains the WhereFragment
+
+
+
+ A class that builds an DELETE sql statement.
+
+
+
+
+ Sets the IdentityColumn for the DELETE sql to use.
+
+ An array of the column names for the Property
+ The IType of the Identity Property.
+ The SqlDeleteBuilder.
+
+
+
+ Sets the VersionColumn for the DELETE sql to use.
+
+ An array of the column names for the Property
+ The IVersionType of the Version Property.
+ The SqlDeleteBuilder.
+
+
+
+ Adds the columns for the Type to the WhereFragment
+
+ The names of the columns to add.
+ The IType of the property.
+ The operator to put between the column name and value.
+ The SqlDeleteBuilder
+
+
+
+ Adds a string to the WhereFragement
+
+ A well formed sql statement with no parameters.
+ The SqlDeleteBuilder
+
+
+
+ Builds a SELECT SQL statement.
+
+
+
+
+ Sets the text that should appear after the FROM
+
+ The fromClause to set
+ The SqlSelectBuilder
+
+
+
+ Sets the text that should appear after the FROM
+
+ The name of the Table to get the data from
+ The Alias to use for the table name.
+ The SqlSelectBuilder
+
+
+
+ Sets the text that should appear after the FROM
+
+ The fromClause in a SqlString
+ The SqlSelectBuilder
+
+
+
+ Sets the text that should appear after the ORDER BY.
+
+ The orderByClause to set
+ The SqlSelectBuilder
+
+
+
+ Sets the text that should appear after the GROUP BY.
+
+ The groupByClause to set
+ The SqlSelectBuilder
+
+
+
+ Sets the SqlString for the OUTER JOINs.
+
+
+ All of the Sql needs to be included in the SELECT. No OUTER JOINS will automatically be
+ added.
+
+ The outerJoinsAfterFrom to set
+ The outerJoinsAfterWhere to set
+ The SqlSelectBuilder
+
+
+
+ Sets the text for the SELECT
+
+ The selectClause to set
+ The SqlSelectBuilder
+
+
+
+ Sets the text for the SELECT
+
+ The selectClause to set
+ The SqlSelectBuilder
+
+
+
+ Sets the criteria to use for the WHERE. It joins all of the columnNames together with an AND.
+
+
+ The names of the columns
+ The Hibernate Type
+ The SqlSelectBuilder
+
+
+
+ Sets the prebuilt SqlString to the Where clause
+
+ The SqlString that contains the sql and parameters to add to the WHERE
+ This SqlSelectBuilder
+
+
+
+ ToSqlString() is named ToStatementString() in H3
+
+
+
+
+
+
+
+
+ Summary description for SqlSimpleSelectBuilder.
+
+
+
+
+
+
+
+
+
+
+
+ Adds a columnName to the SELECT fragment.
+
+ The name of the column to add.
+ The SqlSimpleSelectBuilder
+
+
+
+ Adds a columnName and its Alias to the SELECT fragment.
+
+ The name of the column to add.
+ The alias to use for the column
+ The SqlSimpleSelectBuilder
+
+
+
+ Adds an array of columnNames to the SELECT fragment.
+
+ The names of the columns to add.
+ The SqlSimpleSelectBuilder
+
+
+
+ Adds an array of columnNames with their Aliases to the SELECT fragment.
+
+ The names of the columns to add.
+ The aliases to use for the columns
+ The SqlSimpleSelectBuilder
+
+
+
+ Gets the Alias that should be used for the column
+
+ The name of the column to get the Alias for.
+ The Alias if one exists, null otherwise
+
+
+
+ Sets the IdentityColumn for the SELECT sql to use.
+
+ An array of the column names for the Property
+ The IType of the Identity Property.
+ The SqlSimpleSelectBuilder.
+
+
+
+ Sets the VersionColumn for the SELECT sql to use.
+
+ An array of the column names for the Property
+ The IVersionType of the Version Property.
+ The SqlSimpleSelectBuilder.
+
+
+
+ Set the Order By fragment of the Select Command
+
+ The OrderBy fragment. It should include the SQL "ORDER BY"
+ The SqlSimpleSelectBuilder
+
+
+
+ Adds the columns for the Type to the WhereFragment
+
+ The names of the columns to add.
+ The IType of the property.
+ The operator to put between the column name and value.
+ The SqlSimpleSelectBuilder
+
+
+
+
+
+
+ This is a non-modifiable SQL statement that is ready to be prepared
+ and sent to the Database for execution.
+
+
+
+ If you need to modify this object pass it to a and
+ get a new object back from it.
+
+
+
+
+
+ Appends the SqlString parameter to the end of the current SqlString to create a
+ new SqlString object.
+
+ The SqlString to append.
+ A new SqlString object.
+
+ A SqlString object is immutable so this returns a new SqlString. If multiple Appends
+ are called it is better to use the SqlStringBuilder.
+
+
+
+
+ Appends the string parameter to the end of the current SqlString to create a
+ new SqlString object.
+
+ The string to append.
+ A new SqlString object.
+
+ A SqlString object is immutable so this returns a new SqlString. If multiple Appends
+ are called it is better to use the SqlStringBuilder.
+
+
+
+
+ Compacts the SqlString into the fewest parts possible.
+
+ A new SqlString.
+
+ Combines all SqlParts that are strings and next to each other into
+ one SqlPart.
+
+
+
+
+ Determines whether the end of this instance matches the specified String.
+
+ A string to seek at the end.
+ if the end of this instance matches value; otherwise,
+
+
+
+ Replaces all occurrences of a specified in this instance,
+ with another specified .
+
+ A String to be replaced.
+ A String to replace all occurrences of oldValue.
+
+ A new SqlString with oldValue replaced by the newValue. The new SqlString is
+ in the compacted form.
+
+
+
+
+ Determines whether the beginning of this SqlString matches the specified System.String,
+ using case-insensitive comparison.
+
+ The System.String to seek
+ true if the SqlString starts with the value.
+
+
+
+ Retrieves a substring from this instance. The substring starts at a specified character position.
+
+ The starting character position of a substring in this instance.
+
+ A new SqlString to the substring that begins at startIndex in this instance.
+
+
+ If the startIndex is greater than the length of the SqlString then is returned.
+
+
+
+
+ Returns the index of the first occurrence of , case-insensitive.
+
+ Text to look for in the . Must be in lower
+ case.
+
+ The text must be located entirely in a string part of the .
+ Searching for "a ? b" in an consisting of
+ "a ", Parameter, " b" will result in no matches.
+
+ The index of the first occurrence of , or -1
+ if not found.
+
+
+
+ Removes all occurrences of white space characters from the beginning and end of this instance.
+
+
+ A new SqlString equivalent to this instance after white space characters
+ are removed from the beginning and end.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns the SqlString in a string where it looks like
+ SELECT col1, col2 FROM table WHERE col1 = ?
+
+
+ The question mark is used as the indicator of a parameter because at
+ this point we are not using the specific provider so we don't know
+ how that provider wants our parameters formatted.
+
+ A provider-neutral version of the CommandText
+
+
+
+ Returns substring of this SqlString starting with the specified
+ . If the text is not found, returns an
+ empty, not-null SqlString.
+
+
+ The method performs case-insensitive comparison, so the
+ passed should be in lower case.
+
+
+
+
+ Parse SQL in and create a SqlString representing it.
+
+
+ Parameter marks in single quotes will be correctly skipped, but otherwise the
+ lexer is very simple and will not parse double quotes or escape sequences
+ correctly, for example.
+
+
+
+
+ Gets the number of SqlParts contained in this SqlString.
+
+ The number of SqlParts contained in this SqlString.
+
+
+
+ The SqlStringBuilder is used to construct a SqlString.
+
+
+
+ The SqlString is a nonmutable class so it can't have sql parts added
+ to it. Instead this class should be used to generate a new SqlString.
+ The SqlStringBuilder is to SqlString what the StringBuilder is to
+ a String.
+
+
+ This is different from the original version of SqlString because this does not
+ hold the sql string in the form of "column1=@column1" instead it uses an array to
+ build the sql statement such that
+ object[0] = "column1="
+ object[1] = ref to column1 parameter
+
+
+ What this allows us to do is to delay the generating of the parameter for the sql
+ until the very end - making testing dialect indifferent. Right now all of our test
+ to make sure the correct sql is getting built are specific to MsSql2000Dialect.
+
+
+
+
+
+ Create an empty StringBuilder with the default capacity.
+
+
+
+
+ Create a StringBuilder with a specific capacity.
+
+ The number of parts expected.
+
+
+
+ Create a StringBuilder to modify the SqlString
+
+ The SqlString to modify.
+
+
+
+ Adds the preformatted sql to the SqlString that is being built.
+
+ The string to add.
+ This SqlStringBuilder
+
+
+
+ Adds the Parameter to the SqlString that is being built.
+ The correct operator should be added before the Add(Parameter) is called
+ because there will be no operator ( such as "=" ) placed between the last Add call
+ and this Add call.
+
+ The Parameter to add.
+ This SqlStringBuilder
+
+
+
+ Attempts to discover what type of object this is and calls the appropriate
+ method.
+
+ The part to add when it is not known if it is a Parameter, String, or SqlString.
+ This SqlStringBuilder.
+ Thrown when the part is not a Parameter, String, or SqlString.
+
+
+
+ Adds an existing SqlString to this SqlStringBuilder. It does NOT add any
+ prefix, postfix, operator, or wrap around this. It is equivalent to just
+ adding a string.
+
+ The SqlString to add to this SqlStringBuilder
+ This SqlStringBuilder
+ This calls the overloaded Add(sqlString, null, null, null, false)
+
+
+
+ Adds an existing SqlString to this SqlStringBuilder
+
+ The SqlString to add to this SqlStringBuilder
+ String to put at the beginning of the combined SqlString.
+ How these Statements should be junctioned "AND" or "OR"
+ String to put at the end of the combined SqlString.
+ This SqlStringBuilder
+
+ This calls the overloaded Add method with an array of SqlStrings and wrapStatment=false
+ so it will not be wrapped with a "(" and ")"
+
+
+
+
+ Adds existing SqlStrings to this SqlStringBuilder
+
+ The SqlStrings to combine.
+ String to put at the beginning of the combined SqlString.
+ How these SqlStrings should be junctioned "AND" or "OR"
+ String to put at the end of the combined SqlStrings.
+ This SqlStringBuilder
+ This calls the overloaded Add method with wrapStatement=true
+
+
+
+ Adds existing SqlStrings to this SqlStringBuilder
+
+ The SqlStrings to combine.
+ String to put at the beginning of the combined SqlStrings.
+ How these SqlStrings should be junctioned "AND" or "OR"
+ String to put at the end of the combined SqlStrings.
+ Wrap each SqlStrings with "(" and ")"
+ This SqlStringBuilder
+
+
+
+ Insert a string containing sql into the SqlStringBuilder at the specified index.
+
+ The zero-based index at which the sql should be inserted.
+ The string containing sql to insert.
+ This SqlStringBuilder
+
+
+
+ Insert a Parameter into the SqlStringBuilder at the specified index.
+
+ The zero-based index at which the Parameter should be inserted.
+ The Parameter to insert.
+ This SqlStringBuilder
+
+
+
+ Removes the string or Parameter at the specified index.
+
+ The zero-based index of the item to remove.
+ This SqlStringBuilder
+
+
+
+ Converts the mutable SqlStringBuilder into the immutable SqlString.
+
+ The SqlString that was built.
+
+
+
+ Gets the number of SqlParts in this SqlStringBuilder.
+
+
+ The number of SqlParts in this SqlStringBuilder.
+
+
+
+
+ Gets or Sets the element at the index
+
+ Returns a string or Parameter.
+
+
+
+
+ A class that builds an UPDATE sql statement.
+
+
+
+
+ Add a column with a specific value to the UPDATE sql
+
+ The name of the Column to add.
+ The value to set for the column.
+ The NHibernateType to use to convert the value to a sql string.
+ The SqlUpdateBuilder.
+
+
+
+ Add a column with a specific value to the UPDATE sql
+
+ The name of the Column to add.
+ A valid sql string to set as the value of the column.
+ The SqlUpdateBuilder.
+
+
+
+ Adds columns with a specific value to the UPDATE sql
+
+ The names of the Columns to add.
+ A valid sql string to set as the value of the column. This value is assigned to each column.
+ The SqlUpdateBuilder.
+
+
+
+ Adds the Property's columns to the UPDATE sql
+
+ An array of the column names for the Property
+ The IType of the property.
+ The SqlUpdateBuilder.
+
+
+
+ Adds the Property's updatable columns to the UPDATE sql
+
+ An array of the column names for the Property
+ An array of updatable column flags. If this array is null, all supplied columns are considered updatable.
+ The IType of the property.
+ The SqlUpdateBuilder.
+
+
+
+ Sets the IdentityColumn for the UPDATE sql to use.
+
+ An array of the column names for the Property
+ The IType of the Identity Property.
+ The SqlUpdateBuilder.
+
+
+
+ Sets the VersionColumn for the UPDATE sql to use.
+
+ An array of the column names for the Property
+ The IVersionType of the Version Property.
+ The SqlUpdateBuilder.
+
+
+
+ Adds the columns for the Type to the WhereFragment
+
+ The names of the columns to add.
+ The IType of the property.
+ The operator to put between the column name and value.
+ The SqlUpdateBuilder
+
+
+
+ Adds a string to the WhereFragment
+
+ A well formed sql string with no parameters.
+ The SqlUpdateBuilder
+
+
+
+
+
+
+ Given an SQL SELECT statement, parse it to extract clauses starting with
+ FROM, up to and not including ORDER BY (known collectively
+ as a subselect clause).
+
+
+
+
+ Contains the subselect clause as it is being built.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parts of an to extract the subselect clause from.
+
+
+
+ Looks for a FROM clause in the
+ and adds the clause to the result if found.
+
+ A or a .
+ if the part contained a FROM clause,
+ otherwise.
+
+
+
+ Returns the subselect clause of the statement
+ being processed.
+
+ An containing
+ the subselect clause of the original SELECT
+ statement.
+
+
+
+ Allows us to construct SQL WHERE fragments
+
+
+
+
+ Describes the details of a with the
+ information required to to generate an .
+
+
+ This can store the length of the string that the can hold.
+ If no value is provided for the length then the Driver is responsible for
+ setting the properties on the correctly.
+
+
+
+
+ This is the base class that adds information to the
+ for the and
+ to use.
+
+
+
+ The uses the SqlType to get enough
+ information to create an .
+
+
+ The use the SqlType to convert the
+ to the appropriate sql type for SchemaExport.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The length of the string the should hold.
+
+
+
+ Describes the details of a with the
+ information required to generate an .
+
+
+ This can store the length of the string that the can hold.
+ If no value is provided for the length then the Driver is responsible for
+ setting the properties on the correctly.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The length of the string the should hold.
+
+
+
+ Describes the details of a that is stored in
+ a BLOB column with the information required to generate
+ an .
+
+
+
+ This can store the length of the binary data that the can hold.
+ If no value is provided for the length then the Driver is responsible for
+ setting the properties on the correctly.
+
+
+ This is only needed by DataProviders (SqlClient) that need to specify a Size for the
+ IDbDataParameter. Most DataProvider(Oralce) don't need to set the Size so a
+ BinarySqlType would work just fine.
+
+
+
+
+
+ Describes the details of a with the
+ information required to to generate an .
+
+
+ This can store the binary data that the can hold.
+ If no value is provided for the length then the Driver is responsible for
+ setting the properties on the correctly.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The length of the binary data the should hold
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ SqlTypeFactory provides Singleton access to the SqlTypes.
+
+
+
+
+ Describes the details of a that is stored in an XML column.
+
+
+ Does not handle advanced concepts such as associating a schema to the XML column.
+
+
+
+
+ Describes the details of a that is stored in
+ a CLOB column with the information required to generate
+ an .
+
+
+
+ This can store the length of the binary data that the can hold.
+ If no value is provided for the length then the Driver is responsible for
+ setting the properties on the correctly.
+
+
+ This is only needed by DataProviders (SqlClient) that need to specify a Size for the
+ IDbDataParameter. Most DataProvider(Oralce) don't need to set the Size so a
+ StringSqlType would work just fine.
+
+
+
+
+
+ Describes the details of a with the
+ information required to generate an .
+
+
+ This can store the length of the string that the can hold.
+ If no value is provided for the length then the Driver is responsible for
+ setting the properties on the correctly.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The length of the string the should hold.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The length of the string the should hold.
+
+
+
+ Describes the details of a with the
+ information required to to generate an .
+
+
+ This can store the length of the string that the can hold.
+ If no value is provided for the length then the Driver is responsible for
+ setting the properties on the correctly.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The length of the string the should hold.
+
+
+
+ Statistics for a particular "category" (a named entity,
+ collection role, second level cache region or query).
+
+
+
+ Collection related statistics
+
+
+ Entity related statistics
+
+
+
+ Information about the first-level (session) cache for a particular session instance
+
+
+
+ Get the number of entity instances associated with the session
+
+
+ Get the number of collection instances associated with the session
+
+
+ Get the set of all EntityKeys.
+
+
+ Get the set of all CollectionKeys.
+
+
+
+ Statistics for a particular SessionFactory.
+ Beware of milliseconds metrics, they are dependent of the JVM precision:
+ you may then encounter a 10 ms approximation depending on your OS platform.
+ Please refer to the JVM documentation for more information.
+
+
+
+ Reset all statistics
+
+
+ Find entity statistics per name
+ entity name
+ EntityStatistics object
+
+
+ Get collection statistics per role
+ collection role
+ CollectionStatistics
+
+
+ Second level cache statistics per region
+ region name
+ SecondLevelCacheStatistics
+
+
+ Query statistics from query string (HQL or SQL)
+ query string
+ QueryStatistics
+
+
+ log in info level the main statistics
+
+
+ Global number of entity deletes
+
+
+ Global number of entity inserts
+
+
+ Global number of entity loads
+
+
+ Global number of entity fetchs
+
+
+ Global number of entity updates
+
+
+ Global number of executed queries
+
+
+ The time in milliseconds of the slowest query.
+
+
+ The query string for the slowest query.
+
+
+ The global number of cached queries successfully retrieved from cache
+
+
+ The global number of cached queries *not* found in cache
+
+
+ The global number of cacheable queries put in cache
+
+
+ Get the global number of flush executed by sessions (either implicit or explicit)
+
+
+
+ Get the global number of connections asked by the sessions
+ (the actual number of connections used may be much smaller depending
+ whether you use a connection pool or not)
+
+
+
+ Global number of cacheable entities/collections successfully retrieved from the cache
+
+
+ Global number of cacheable entities/collections not found in the cache and loaded from the database.
+
+
+ Global number of cacheable entities/collections put in the cache
+
+
+ Global number of sessions closed
+
+
+ Global number of sessions opened
+
+
+ Global number of collections loaded
+
+
+ Global number of collections fetched
+
+
+ Global number of collections updated
+
+
+ Global number of collections removed
+
+
+ Global number of collections recreated
+
+
+ Start time
+
+
+ Enable/Disable statistics logs (this is a dynamic parameter)
+
+
+ All executed query strings
+
+
+ The names of all entities
+
+
+ The names of all collection roles
+
+
+ Get all second-level cache region names
+
+
+ The number of transactions we know to have been successful
+
+
+ The number of transactions we know to have completed
+
+
+ The number of prepared statements that were acquired
+
+
+ The number of prepared statements that were released
+
+
+ The number of StaleObjectStateExceptions that occurred
+
+
+ Statistics SPI for the NHibernate core
+
+
+ Query statistics (HQL and SQL)
+ Note that for a cached query, the cache miss is equals to the db count
+
+
+ Add statistics report of a DB query
+ rows count returned
+ time taken
+
+
+ Second level cache statistics of a specific region
+
+
+
+ Not ported yet
+
+
+
+
+ Not ported yet
+
+
+
+
+ Not ported yet
+
+
+
+
+ Not ported yet
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Contract for delegates responsible for managing connection used by the
+ hbm2ddl tools.
+
+
+
+
+ Prepare the helper for use.
+
+
+
+
+ Get a reference to the connection we are using.
+
+
+
+
+ Release any resources held by this helper.
+
+
+
+
+ Executes a query and returns a datatable. The parameters array is used
+ in the following fashion ExecuteQuery("select @id", "id", 15);
+
+
+
+
+ A implementation based on an internally
+ built and managed .
+
+
+
+
+ Generates ddl to export table schema for a configured Configuration to the database
+
+
+ This Class can be used directly or the command line wrapper NHibernate.Tool.hbm2ddl.exe can be
+ used when a dll can not be directly used.
+
+
+
+
+ Create a schema exported for a given Configuration
+
+ The NHibernate Configuration to generate the schema from.
+
+
+
+ Create a schema exporter for the given Configuration, with the given
+ database connection properties
+
+ The NHibernate Configuration to generate the schema from.
+ The Properties to use when connecting to the Database.
+
+
+
+ Set the output filename. The generated script will be written to this file
+
+ The name of the file to output the ddl to.
+ The SchemaExport object.
+
+
+
+ Set the end of statement delimiter
+
+ The end of statement delimiter.
+ The SchemaExport object.
+
+
+
+ Run the schema creation script
+
+ if the ddl should be outputted in the Console.
+ if the ddl should be executed against the Database.
+
+ This is a convenience method that calls and sets
+ the justDrop parameter to false and the format parameter to true.
+
+
+
+
+ Run the drop schema script
+
+ if the ddl should be outputted in the Console.
+ if the ddl should be executed against the Database.
+
+ This is a convenience method that calls and sets
+ the justDrop and format parameter to true.
+
+
+
+
+ Executes the Export of the Schema in the given connection
+
+ if the ddl should be outputted in the Console.
+ if the ddl should be executed against the Database.
+ if only the ddl to drop the Database objects should be executed.
+ if the ddl should be nicely formatted instead of one statement per line.
+
+ The connection to use when executing the commands when export is .
+ Must be an opened connection. The method doesn't close the connection.
+
+ The writer used to output the generated schema
+
+ This method allows for both the drop and create ddl script to be executed.
+ This overload is provided mainly to enable use of in memory databases.
+ It does NOT close the given connection!
+
+
+
+
+ Executes the Export of the Schema.
+
+ if the ddl should be outputted in the Console.
+ if the ddl should be executed against the Database.
+ if only the ddl to drop the Database objects should be executed.
+ if the ddl should be nicely formatted instead of one statement per line.
+
+ This method allows for both the drop and create ddl script to be executed.
+
+
+
+
+ Format an SQL statement using simple rules
+
+ The string containing the sql to format.
+ A string that contains formatted sql.
+
+ The simple rules to used when formatting are:
+
+
+ Insert a newline after each comma
+
+
+ Indent three spaces after each inserted newline
+
+
+
+ If the statement contains single/double quotes return unchanged because
+ it is too complex and could be broken by simple formatting.
+
+
+
+
+
+
+
+ Execute the schema updates
+
+
+
+
+ Returns a List of all Exceptions which occured during the export.
+
+
+
+
+
+ A implementation based on an explicitly supplied
+ connection.
+
+
+
+
+ A implementation based on a provided
+ . Essentially, ensures that the connection
+ gets cleaned up, but that the provider itself remains usable since it
+ was externally provided to us.
+
+
+
+
+ An abstract factory for ITransaction instances.
+
+
+
+
+ Configure from the given properties
+
+
+
+
+
+ Create a new transaction and return it without starting it.
+
+
+
+
+ Wraps an ADO.NET to implement
+ the interface.
+
+
+
+
+ Allows the application to define units of work, while maintaining abstraction from the
+ underlying transaction implementation
+
+
+ A transaction is associated with a ISession and is usually instanciated by a call to
+ ISession.BeginTransaction(). A single session might span multiple transactions since
+ the notion of a session (a conversation between the application and the datastore) is of
+ coarser granularity than the notion of a transaction. However, it is intended that there be
+ at most one uncommitted ITransaction associated with a particular ISession
+ at a time. Implementors are not intended to be threadsafe.
+
+
+
+
+ Begin the transaction with the default isolation level.
+
+
+
+
+ Begin the transaction with the specified isolation level.
+
+ Isolation level of the transaction
+
+
+
+ Flush the associated ISession and end the unit of work.
+
+
+ This method will commit the underlying transaction if and only if the transaction
+ was initiated by this object.
+
+
+
+
+ Force the underlying transaction to roll back.
+
+
+
+
+ Enlist the in the current Transaction.
+
+ The to enlist.
+
+ It is okay for this to be a no op implementation.
+
+
+
+
+ Register a user synchronization callback for this transaction.
+
+ The callback to register.
+
+
+
+ Is the transaction in progress
+
+
+
+
+ Was the transaction rolled back or set to rollback only?
+
+
+
+
+ Was the transaction successfully committed?
+
+
+ This method could return even after successful invocation of Commit()
+
+
+
+
+ Initializes a new instance of the class.
+
+ The the Transaction is for.
+
+
+
+ Enlist the in the current .
+
+ The to enlist in this Transaction.
+
+
+ This takes care of making sure the 's Transaction property
+ contains the correct or if there is no
+ Transaction for the ISession - ie BeginTransaction() not called.
+
+
+ This method may be called even when the transaction is disposed.
+
+
+
+
+
+ Begins the on the
+ used by the .
+
+
+ Thrown if there is any problems encountered while trying to create
+ the .
+
+
+
+
+ Commits the by flushing the
+ and committing the .
+
+
+ Thrown if there is any exception while trying to call Commit() on
+ the underlying .
+
+
+
+
+ Rolls back the by calling the method Rollback
+ on the underlying .
+
+
+ Thrown if there is any exception while trying to call Rollback() on
+ the underlying .
+
+
+
+
+ A flag to indicate if Disose() has been called.
+
+
+
+
+ Finalizer that ensures the object is correctly disposed of.
+
+
+
+
+ Takes care of freeing the managed and unmanaged resources that
+ this class is responsible for.
+
+
+
+
+ Takes care of freeing the managed and unmanaged resources that
+ this class is responsible for.
+
+ Indicates if this AdoTransaction is being Disposed of or Finalized.
+
+ If this AdoTransaction is being Finalized (isDisposing==false) then make sure not
+ to call any methods that could potentially bring this AdoTransaction back to life.
+
+
+
+
+ Gets a indicating if the transaction was rolled back.
+
+
+ if the had Rollback called
+ without any exceptions.
+
+
+
+
+ Gets a indicating if the transaction was committed.
+
+
+ if the had Commit called
+ without any exceptions.
+
+
+
+
+ A mimic to the javax.transaction.Synchronization callback to enable
+
+
+
+
+ Implementors define a strategy for transforming criteria query
+ results into the actual application-visible query result list.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Result transformer that allows to transform a result to
+ a user specified class which will be populated via setter
+ methods or fields matching the alias names.
+
+
+
+ IList resultWithAliasedBean = s.CreateCriteria(typeof(Enrollment))
+ .CreateAlias("Student", "st")
+ .CreateAlias("Course", "co")
+ .SetProjection( Projections.ProjectionList()
+ .Add( Projections.Property("co.Description"), "CourseDescription" )
+ )
+ .SetResultTransformer( new AliasToBeanResultTransformer(typeof(StudentDTO)) )
+ .List();
+
+ StudentDTO dto = (StudentDTO)resultWithAliasedBean[0];
+
+
+
+
+
+ Each row of results is a map () from alias to values/entities
+
+
+
+
+ Creates a resulttransformer that will inject aliased values into instances
+ of via property methods or fields.
+
+
+
+ Support for tuplizers relating to components.
+
+
+
+ Defines further responsibilities regarding tuplization based on
+ a mapped components.
+
+
+ ComponentTuplizer implementations should have the following constructor signature:
+ (org.hibernate.mapping.Component)
+
+
+
+
+ A tuplizer defines the contract for things which know how to manage
+ a particular representation of a piece of data, given that
+ representation's (the entity-mode
+ essentially defining which representation).
+
+
+ If that given piece of data is thought of as a data structure, then a tuplizer
+ is the thing which knows how to:
+
+ create such a data structure appropriately
+ extract values from and inject values into such a data structure
+
+
+ For example, a given piece of data might be represented as a POCO class.
+ Here, it's representation and entity-mode is POCO. Well a tuplizer for POCO
+ entity-modes would know how to:
+
+ create the data structure by calling the POCO's constructor
+ extract and inject values through getters/setter, or by direct field access, etc
+
+
+ That same piece of data might also be represented as a DOM structure, using
+ the tuplizer associated with the XML entity-mode, which would generate instances
+ of as the data structure and know how to access the
+ values as either nested s or as s.
+
+
+
+
+
+
+ Extract the current values contained on the given entity.
+
+ The entity from which to extract values.
+ The current property values.
+ HibernateException
+
+
+ Inject the given values into the given entity.
+ The entity.
+ The values to be injected.
+
+
+ Extract the value of a particular property from the given entity.
+ The entity from which to extract the property value.
+ The index of the property for which to extract the value.
+ The current value of the given property on the given entity.
+
+
+ Generate a new, empty entity.
+ The new, empty entity instance.
+
+
+
+ Is the given object considered an instance of the the entity (acconting
+ for entity-mode) managed by this tuplizer.
+
+ The object to be checked.
+ True if the object is considered as an instance of this entity within the given mode.
+
+
+
+ Return the pojo class managed by this tuplizer.
+
+ The persistent class.
+
+ Need to determine how to best handle this for the Tuplizers for EntityModes
+ other than POCO.
+
+
+
+ Retrieve the current value of the parent property.
+
+ The component instance from which to extract the parent property value.
+
+ The current value of the parent property.
+
+
+ Set the value of the parent property.
+ The component instance on which to set the parent.
+ The parent to be set on the component.
+ The current session factory.
+
+
+ Does the component managed by this tuuplizer contain a parent property?
+ True if the component does contain a parent property; false otherwise.
+
+
+ This method does not populate the component parent
+
+
+
+ Handles mapping s to ComponentTuplizers.
+
+ Most of the handling is really in the super class; here we just create
+ the tuplizers and add them to the superclass
+
+
+
+ Centralizes handling of to mappings.
+
+
+ Given a supposed instance of an entity/component, guess its entity mode.
+ The supposed instance of the entity/component.
+ The guessed entity mode.
+
+
+
+ Locate the contained tuplizer responsible for the given entity-mode. If
+ no such tuplizer is defined on this mapping, then return null.
+
+ The entity-mode for which the caller wants a tuplizer.
+ The tuplizer, or null if not found.
+
+
+ Locate the tuplizer contained within this mapping which is responsible
+ for the given entity-mode. If no such tuplizer is defined on this
+ mapping, then an exception is thrown.
+
+
+ The entity-mode for which the caller wants a tuplizer.
+
+ The tuplizer.
+
+ HibernateException Unable to locate the requested tuplizer.
+
+
+ Centralizes metamodel information about a component.
+
+
+
+ A specific to the dynamic-map entity mode.
+
+
+
+
+ A specific to the POCO entity mode.
+
+
+
+ Support for tuplizers relating to entities.
+
+
+
+ Defines further responsibilities regarding tuplization based on a mapped entity.
+
+
+ EntityTuplizer implementations should have the following constructor signature:
+ (, )
+
+
+
+ Create an entity instance initialized with the given identifier.
+ The identifier value for the entity to be instantiated.
+ The instantiated entity.
+
+
+ Extract the identifier value from the given entity.
+ The entity from which to extract the identifier value.
+ The identifier value.
+
+
+
+ Inject the identifier value into the given entity.
+
+ The entity to inject with the identifier value.
+ The value to be injected as the identifier.
+ Has no effect if the entity does not define an identifier property
+
+
+
+ Inject the given identifier and version into the entity, in order to
+ "roll back" to their original values.
+
+
+ The identifier value to inject into the entity.
+ The version value to inject into the entity.
+
+
+ Extract the value of the version property from the given entity.
+ The entity from which to extract the version value.
+ The value of the version property, or null if not versioned.
+
+
+ Inject the value of a particular property.
+ The entity into which to inject the value.
+ The property's index.
+ The property value to inject.
+
+
+ Inject the value of a particular property.
+ The entity into which to inject the value.
+ The name of the property.
+ The property value to inject.
+
+
+ Extract the values of the insertable properties of the entity (including backrefs)
+ The entity from which to extract.
+ a map of instances being merged to merged instances
+ The session in which the resuest is being made.
+ The insertable property values.
+
+
+ Extract the value of a particular property from the given entity.
+ The entity from which to extract the property value.
+ The name of the property for which to extract the value.
+ The current value of the given property on the given entity.
+
+
+ Called just after the entities properties have been initialized.
+ The entity being initialized.
+ Are defined lazy properties currently unfecthed
+ The session initializing this entity.
+
+
+
+ Generates an appropriate proxy representation of this entity for this entity-mode.
+
+ The id of the instance for which to generate a proxy.
+ The session to which the proxy should be bound.
+ The generate proxies.
+
+
+ Does the given entity instance have any currently uninitialized lazy properties?
+ The entity to be check for uninitialized lazy properties.
+ True if uninitialized lazy properties were found; false otherwise.
+
+
+
+ Does the class managed by this tuplizer implement
+ the interface.
+
+ True if the ILifecycle interface is implemented; false otherwise.
+
+
+
+ Does the class managed by this tuplizer implement
+ the interface.
+
+ True if the IValidatable interface is implemented; false otherwise.
+
+
+ Returns the java class to which generated proxies will be typed.
+ The .NET class to which generated proxies will be typed
+
+
+ Is it an instrumented POCO?
+
+
+ Does this entity, for this mode, present a possibility for proxying?
+ True if this tuplizer can generate proxies for this entity.
+
+
+ Constructs a new AbstractEntityTuplizer instance.
+ The "interpreted" information relating to the mapped entity.
+ The parsed "raw" mapping data relating to the given entity.
+
+
+ Build an appropriate Getter for the given property.
+ The property to be accessed via the built Getter.
+ The entity information regarding the mapped entity owning this property.
+ An appropriate Getter instance.
+
+
+ Build an appropriate Setter for the given property.
+ The property to be accessed via the built Setter.
+ The entity information regarding the mapped entity owning this property.
+ An appropriate Setter instance.
+
+
+ Build an appropriate Instantiator for the given mapped entity.
+ The mapping information regarding the mapped entity.
+ An appropriate Instantiator instance.
+
+
+ Build an appropriate ProxyFactory for the given mapped entity.
+ The mapping information regarding the mapped entity.
+ The constructed Getter relating to the entity's id property.
+ The constructed Setter relating to the entity's id property.
+ An appropriate ProxyFactory instance.
+
+
+ Extract a component property value.
+ The component property types.
+ The component instance itself.
+ The property path for the property to be extracted.
+ The property value extracted.
+
+
+ Return the entity-mode handled by this tuplizer instance.
+
+
+ Retrieves the defined entity-name for the tuplized entity.
+
+
+
+ Retrieves the defined entity-names for any subclasses defined for this entity.
+
+
+
+
+ Handles mapping s to s.
+
+
+ Most of the handling is really in the super class; here we just create
+ the tuplizers and add them to the superclass
+
+
+
+
+ Instantiates a EntityEntityModeToTuplizerMapping based on the given
+ entity mapping and metamodel definitions.
+
+ The entity mapping definition.
+ The entity metamodel definition.
+
+
+ An specific to the POCO entity mode.
+
+
+ Contract for implementors responsible for instantiating entity/component instances.
+
+
+ Perform the requested entity instantiation.
+ The id of the entity to be instantiated.
+ An appropriately instantiated entity.
+ This form is never called for component instantiation, only entity instantiation.
+
+
+ Perform the requested instantiation.
+ The instantiated data structure.
+
+
+
+ Performs check to see if the given object is an instance of the entity
+ or component which this Instantiator instantiates.
+
+ The object to be checked.
+ True is the object does represent an instance of the underlying entity/component.
+
+
+
+ Represents a defined entity identifier property within the Hibernate
+ runtime-metamodel.
+
+
+ Author: Steve Ebersole
+
+
+
+
+ Defines the basic contract of a Property within the runtime metamodel.
+
+
+
+
+ Constructor for Property instances.
+
+ The name by which the property can be referenced within its owner.
+ The node name to use for XML-based representation of this property.
+ The Hibernate Type of this property.
+
+
+
+ Construct a non-virtual identifier property.
+
+ The name of the property representing the identifier within
+ its owning entity.
+ The node name to use for XML-based representation of this
+ property.
+ The Hibernate Type for the identifier property.
+ Is this an embedded identifier.
+ The value which, if found as the value on the identifier
+ property, represents new (i.e., un-saved) instances of the owning entity.
+ The generator to use for id value generation.
+
+
+
+ Construct a virtual IdentifierProperty.
+
+ The Hibernate Type for the identifier property.
+ Is this an embedded identifier.
+ The value which, if found as the value on the identifier
+ property, represents new (i.e., un-saved) instances of the owning entity.
+ The generator to use for id value generation.
+
+
+
+ Defines a POCO-based instantiator for use from the tuplizers.
+
+
+
+ Responsible for generation of runtime metamodel representations.
+ Makes distinction between identifier, version, and other (standard) properties.
+
+
+ Author: Steve Ebersole
+
+
+
+
+ Generates an IdentifierProperty representation of the for a given entity mapping.
+
+ The mapping definition of the entity.
+ The identifier value generator to use for this identifier.
+ The appropriate IdentifierProperty definition.
+
+
+
+ Generates a VersionProperty representation for an entity mapping given its
+ version mapping Property.
+
+ The version mapping Property.
+ Is property lazy loading currently available.
+ The appropriate VersionProperty definition.
+
+
+
+ Generate a "standard" (i.e., non-identifier and non-version) based on the given
+ mapped property.
+
+ The mapped property.
+ Is property lazy loading currently available.
+ The appropriate StandardProperty definition.
+
+
+
+ Represents a basic property within the Hibernate runtime-metamodel.
+
+
+ Author: Steve Ebersole
+
+
+
+
+ Constructs StandardProperty instances.
+
+ The name by which the property can be referenced within
+ its owner.
+ The node name to use for XML-based representation of this
+ property.
+ The Hibernate Type of this property.
+ Should this property be handled lazily?
+ Is this property an insertable value?
+ Is this property an updateable value?
+ Is this property generated in the database on insert?
+ Is this property generated in the database on update?
+ Is this property a nullable value?
+ Is this property a checkable value?
+ Is this property a versionable value?
+ The cascade style for this property's value.
+ Any fetch mode defined for this property
+
+
+
+ Represents a version property within the Hibernate runtime-metamodel.
+
+
+ Author: Steve Ebersole
+
+
+
+
+ Constructs VersionProperty instances.
+
+ The name by which the property can be referenced within
+ its owner.
+ The node name to use for XML-based representation of this
+ property.
+ The Hibernate Type of this property.
+ Should this property be handled lazily?
+ Is this property an insertable value?
+ Is this property an updateable value?
+ Is this property generated in the database on insert?
+ Is this property generated in the database on update?
+ Is this property a nullable value?
+ Is this property a checkable value?
+ Is this property a versionable value?
+ The cascade style for this property's value.
+ The value which, if found as the value of
+ this (i.e., the version) property, represents new (i.e., un-saved)
+ instances of the owning entity.
+
+
+ Logic to bind stream of byte into a VARBINARY
+
+
+
+ Superclass for mutable nullable types.
+
+
+
+
+ Superclass of single-column nullable types.
+
+
+ Maps the Property to a single column that is capable of storing nulls in it. If a .net Struct is
+ used it will be created with its unitialized value and then on Update the uninitialized value of
+ the Struct will be written to the column - not .
+
+
+
+
+ The base implementation of the interface.
+ Mapping of the built in Type hierarchy.
+
+
+
+
+ Defines a mapping from a .NET to a SQL datatype.
+ This interface is intended to be implemented by applications that need custom types.
+
+ Implementors should usually be immutable and MUST definately be threadsafe.
+
+
+
+
+ When implemented by a class, returns the SqlTypes for the columns mapped by this IType.
+ The that uses this IType.An array of s.
+
+
+
+ When implemented by a class, returns how many columns are used to persist this type.
+ The that uses this IType.The number of columns this IType spans.MappingException
+
+
+
+ When implemented by a class, should the parent be considered dirty,
+ given both the old and current field or element value?
+ The old valueThe current valueThe true if the field is dirty
+
+
+
+ When implemented by a class, gets an instance of the object mapped by
+ this IType from the .
+ The that contains the values
+ The names of the columns in the that contain the
+ value to populate the IType with.
+ The object mapped by this IType.
+ Implementors should handle possibility of null values.
+
+
+
+
+ When implemented by a class, gets an instance of the object
+ mapped by this IType from the .
+ The that contains the valuesThe name of the column in the that contains the
+ value to populate the IType with.The object mapped by this IType.
+ Implementations should handle possibility of null values.
+ This method might be called if the IType is known to be a single-column type.
+
+
+
+
+ When implemented by a class, puts the value/values from the mapped
+ class into the .
+ The to put the values into.The object that contains the values.The index of the to start writing the values to.Indicates which columns are to be set.
+ Implementors should handle possibility of null values.
+ A multi-column type should be written to parameters starting from .
+
+
+
+
+ When implemented by a class, puts the value/values from the mapped
+ class into the .
+
+ The to put the values into.
+ The object that contains the values.
+ The index of the to start writing the values to.
+
+ Implementors should handle possibility of null values.
+ A multi-column type should be written to parameters starting from .
+
+
+
+
+ When implemented by a class, a representation of the value to be
+ embedded in an XML element
+ The object that contains the values.An Xml formatted string.
+
+
+
+ When implemented by a class, returns a deep copy of the persistent
+ state, stopping at entities and at collections.
+ A Collection element or Entity fieldThe entityMode.The session factory.A deep copy of the object.
+
+
+
+ When implemented by a class, retrieves an instance of the mapped class,
+ or the identifier of an entity or collection from a .
+ The that contains the values.
+ The names of the columns in the that contain the
+ value to populate the IType with.
+ the sessionThe parent EntityAn identifier or actual object mapped by this IType.
+
+ This is useful for 2-phase property initialization - the second phase is a call to
+ ResolveIdentifier()
+
+
+ Most implementors of this method will just pass the call to NullSafeGet().
+
+
+
+
+
+ When implemented by a class, maps identifiers to Entities or Collections.
+ An identifier or value returned by Hydrate()The sessionThe parent EntityThe Entity or Collection referenced by this Identifier.
+ This is the second phase of 2-phase property initialization.
+
+
+
+
+ Given a hydrated, but unresolved value, return a value that may be used to
+ reconstruct property-ref associations.
+
+
+
+
+
+
+
+ During merge, replace the existing (target) value in the entity we are merging to
+ with a new (original) value from the detached entity we are merging. For immutable
+ objects, or null values, it is safe to simply return the first parameter. For
+ mutable objects, it is safe to return a copy of the first parameter. For objects
+ with component values, it might make sense to recursively replace component values.
+
+ the value from the detached entity being merged
+ the value in the managed entity
+
+
+
+
+ the value to be merged
+
+
+
+ Compare two instances of the class mapped by this type for persistence
+ "equality" - equality of persistent state - taking a shortcut for
+ entity references.
+
+
+
+
+ boolean
+
+
+
+ Compare two instances of the class mapped by this type for persistence
+ "equality" - equality of persistent state.
+
+
+
+
+ boolean
+
+
+
+ Compare two instances of the class mapped by this type for persistence
+ "equality" - equality of persistent state.
+
+
+
+
+
+ boolean
+
+
+ Get a hashcode, consistent with persistence "equality"
+
+
+
+
+ Get a hashcode, consistent with persistence "equality"
+
+
+
+
+
+ compare two instances of the type
+
+
+
+
+
+ Get the type of a semi-resolved value.
+
+
+ A representation of the value to be embedded in an XML element.
+
+
+
+
+
+ Parse the XML representation of an instance.
+
+
+ an instance of the type
+
+
+
+ Given an instance of the type, return an array of boolean, indicating
+ which mapped columns would be null.
+
+ an instance of the type
+
+
+
+
+ When implemented by a class, gets the abbreviated name of the type.
+ The NHibernate type name.
+
+
+
+ When implemented by a class, gets the returned
+ by the NullSafeGet() methods.
+
+ The from the .NET framework.
+
+ This is used to establish the class of an array of this Itype
+
+
+
+
+ When implemented by a class, gets the value indicating if the objects
+ of this IType are mutable.
+ true if the objects mapped by this IType are mutable.
+ With respect to the referencing object...
+ Entities and Collections are considered immutable because they manage their own internal state.
+
+
+
+
+ When implemented by a class, gets a value indicating if the implementor is castable to an an
+ true if this is an AssociationThis does not necessarily imply that the type actually represents an association.
+
+
+
+ When implemented by a class, gets a value indicating if the implementor is a collection type
+ true if this is a .
+
+
+
+ When implemented by a class, gets a value indicating if the implementor
+ is an .
+ true if this is an
+ If true, the implementation must be castable to .
+ A component type may own collections or associations and hence must provide certain extra functionality.
+
+
+
+
+ When implemented by a class, gets a value indicating if the implementor
+ extends
+ true if this is an
+
+
+
+
+
+
+ Disassembles the object into a cacheable representation.
+
+ The value to disassemble.
+ The is not used by this method.
+ optional parent entity object (needed for collections)
+ The disassembled, deep cloned state of the object
+
+ This method calls DeepCopy if the value is not null.
+
+
+
+
+ Reconstructs the object from its cached "disassembled" state.
+
+ The disassembled state from the cache
+ The is not used by this method.
+ The parent Entity object is not used by this method
+ The assembled object.
+
+ This method calls DeepCopy if the value is not null.
+
+
+
+
+ Should the parent be considered dirty, given both the old and current
+ field or element value?
+
+ The old value
+ The current value
+ The is not used by this method.
+ true if the field is dirty
+ This method uses IType.Equals(object, object) to determine the value of IsDirty.
+
+
+
+ Retrives an instance of the mapped class, or the identifier of an entity
+ or collection from a .
+
+ The that contains the values.
+
+ The names of the columns in the that contain the
+ value to populate the IType with.
+
+ the session
+ The parent Entity
+ An identifier or actual object mapped by this IType.
+
+ This method uses the IType.NullSafeGet(IDataReader, string[], ISessionImplementor, object) method
+ to Hydrate this .
+
+
+
+
+ Maps identifiers to Entities or Collections.
+
+ An identifier or value returned by Hydrate()
+ The is not used by this method.
+ The parent Entity is not used by this method.
+ The value.
+
+ There is nothing done in this method other than return the value parameter passed in.
+
+
+
+
+ Says whether the value has been modified
+
+
+
+
+ When implemented by a class, returns a deep copy of the persistent
+ state, stopping at entities and at collections.
+ A Collection element or Entity fieldThe entityMode.The session factory.A deep copy of the object.
+
+
+
+ When implemented by a class, returns the SqlTypes for the columns mapped by this IType.
+ The that uses this IType.An array of s.
+
+
+
+ When implemented by a class, returns how many columns are used to persist this type.
+ The that uses this IType.The number of columns this IType spans.MappingException
+
+
+
+
+
+
+
+
+
+ When implemented by a class, puts the value/values from the mapped
+ class into the .
+ The to put the values into.The object that contains the values.The index of the to start writing the values to.Indicates which columns are to be set.
+ Implementors should handle possibility of null values.
+ A multi-column type should be written to parameters starting from .
+
+
+
+
+ When implemented by a class, puts the value/values from the mapped
+ class into the .
+
+ The to put the values into.
+ The object that contains the values.
+ The index of the to start writing the values to.
+
+ Implementors should handle possibility of null values.
+ A multi-column type should be written to parameters starting from .
+
+
+
+
+ When implemented by a class, a representation of the value to be
+ embedded in an XML element
+ The object that contains the values.An Xml formatted string.
+
+
+
+ Gets a value indicating if the is an .
+
+ false - by default an is not an .
+
+
+
+ Gets a value indicating if the is a .
+
+ false - by default an is not a .
+
+
+
+ Gets a value indicating if the is an .
+
+ false - by default an is not an .
+
+
+
+ Gets a value indicating if the is a .
+
+ false - by default an is not a .
+
+
+
+ Gets a value indicating if the implementation is an "object" type
+
+ false - by default an is not a "object" type.
+
+
+
+ When implemented by a class, gets the value indicating if the objects
+ of this IType are mutable.
+ true if the objects mapped by this IType are mutable.
+ With respect to the referencing object...
+ Entities and Collections are considered immutable because they manage their own internal state.
+
+
+
+
+ When implemented by a class, gets the abbreviated name of the type.
+ The NHibernate type name.
+
+
+
+ When implemented by a class, gets the returned
+ by the NullSafeGet() methods.
+
+ The from the .NET framework.
+
+ This is used to establish the class of an array of this Itype
+
+
+
+
+ Initialize a new instance of the NullableType class using a
+ .
+
+ The underlying .
+ This is used when the Property is mapped to a single column.
+
+
+
+ When implemented by a class, put the value from the mapped
+ Property into to the .
+
+ The to put the value into.
+ The object that contains the value.
+ The index of the to start writing the values to.
+
+ Implementors do not need to handle possibility of null values because this will
+ only be called from after
+ it has checked for nulls.
+
+
+
+
+ When implemented by a class, gets the object in the
+ for the Property.
+
+ The that contains the value.
+ The index of the field to get the value from.
+ An object with the value from the database.
+
+
+
+ When implemented by a class, gets the object in the
+ for the Property.
+
+ The that contains the value.
+ The name of the field to get the value from.
+ An object with the value from the database.
+
+ Most implementors just call the
+ overload of this method.
+
+
+
+
+ A representation of the value to be embedded in an XML element
+
+ The object that contains the values.
+
+ An Xml formatted string.
+
+
+
+ When implemented by a class, a representation of the value to be
+ embedded in an XML element
+ The object that contains the values.An Xml formatted string.
+
+
+ This implementation forwards the call to if the parameter
+ value is not null.
+
+
+ It has been "sealed" because the Types inheriting from
+ do not need and should not override this method. All of their implementation
+ should be in .
+
+
+
+
+
+ Parse the XML representation of an instance
+
+ XML string to parse, guaranteed to be non-empty
+
+
+
+
+ When implemented by a class, puts the value/values from the mapped
+ class into the .
+
+ The to put the values into.
+ The object that contains the values.
+ The index of the to start writing the values to.
+
+ Implementors should handle possibility of null values.
+ A multi-column type should be written to parameters starting from .
+
+
+
+ This implementation forwards the call to .
+
+
+ It has been "sealed" because the Types inheriting from
+ do not need to and should not override this method. All of their implementation
+ should be in .
+
+
+
+
+
+ Puts the value from the mapped class into the .
+
+ The to put the values into.
+ The object that contains the values.
+ The index of the to write the value to.
+
+
+ This method checks to see if value is null, if it is then the value of
+ is written to the .
+
+
+ If the value is not null, then the method
+ is called and that method is responsible for setting the value.
+
+
+
+
+
+ When implemented by a class, gets an instance of the object mapped by
+ this IType from the .
+ The that contains the values
+ The names of the columns in the that contain the
+ value to populate the IType with.
+ The object mapped by this IType.
+ Implementors should handle possibility of null values.
+
+
+ This has been sealed because no other class should override it. This
+ method calls for a single value.
+ It only takes the first name from the string[] names parameter - that is a
+ safe thing to do because a Nullable Type only has one field.
+
+
+
+
+ Extracts the values of the fields from the DataReader
+
+ The DataReader positioned on the correct record
+ An array of field names.
+ The value off the field from the DataReader
+
+ In this class this just ends up passing the first name to the NullSafeGet method
+ that takes a string, not a string[].
+
+ I don't know why this method is in here - it doesn't look like anybody that inherits
+ from NullableType overrides this...
+
+ TODO: determine if this is needed
+
+
+
+
+ Gets the value of the field from the .
+
+ The positioned on the correct record.
+ The name of the field to get the value from.
+ The value of the field.
+
+
+ This method checks to see if value is null, if it is then the null is returned
+ from this method.
+
+
+ If the value is not null, then the method
+ is called and that method is responsible for retrieving the value.
+
+
+
+
+
+ When implemented by a class, gets an instance of the object
+ mapped by this IType from the .
+ The that contains the valuesThe name of the column in the that contains the
+ value to populate the IType with.The object mapped by this IType.
+ Implementations should handle possibility of null values.
+ This method might be called if the IType is known to be a single-column type.
+
+
+
+ This implementation forwards the call to .
+
+
+ It has been "sealed" because the Types inheriting from
+ do not need to and should not override this method. All of their implementation
+ should be in .
+
+
+
+
+
+ When implemented by a class, returns the SqlTypes for the columns mapped by this IType.
+ The that uses this IType.An array of s.
+
+
+ This implementation forwards the call to .
+
+
+ It has been "sealed" because the Types inheriting from
+ do not need to and should not override this method because they map to a single
+ column. All of their implementation should be in .
+
+
+
+
+
+ Returns the number of columns spanned by this
+
+ A always returns 1.
+
+ This has the hard coding of 1 in there because, by definition of this class,
+ a NullableType can only map to one column in a table.
+
+
+
+
+ Determines whether the specified is equal to this
+ .
+
+ The to compare with this NullableType.
+ true if the SqlType and Name properties are the same.
+
+
+
+ Serves as a hash function for the ,
+ suitable for use in hashing algorithms and data structures like a hash table.
+
+
+ A hash code that is based on the 's
+ hash code and the 's hash code.
+
+
+
+ Gets the underlying for
+ the column mapped by this .
+
+ The underlying .
+
+ This implementation should be suitable for all subclasses unless they need to
+ do some special things to get the value. There are no built in s
+ that override this Property.
+
+
+
+
+ Initialize a new instance of the MutableType class using a
+ .
+
+ The underlying .
+
+
+
+ Gets the value indicating if this IType is mutable.
+
+ true - a is mutable.
+
+ This has been "sealed" because any subclasses are expected to be mutable. If
+ the type is immutable then they should inherit from .
+
+
+
+
+ An that may be used to version data.
+
+
+
+
+ When implemented by a class, increments the version.
+
+ The current version
+ The current session, if available.
+ an instance of the that has been incremented.
+
+
+
+ When implemented by a class, gets an initial version.
+
+ The current session, if available.
+ An instance of the type.
+
+
+
+ Are the two version values considered equal?
+
+ One value to check.
+ The other value to check.
+ true if the values are equal, false otherwise.
+
+
+
+ Get a comparator for the version numbers
+
+
+
+ Convert the byte[] into the expected object type
+
+
+ Convert the object into the internal byte[] representation
+
+
+
+ Common base class for and .
+
+
+
+
+ Superclass of types.
+
+
+
+
+ Superclass of nullable immutable types.
+
+
+
+
+ Initialize a new instance of the ImmutableType class using a
+ .
+
+ The underlying .
+
+
+
+ Gets the value indicating if this IType is mutable.
+
+ false - an is not mutable.
+
+ This has been "sealed" because any subclasses are expected to be immutable. If
+ the type is mutable then they should inherit from .
+
+
+
+
+ An that may appear as an SQL literal
+
+
+
+
+ When implemented by a class, return a representation
+ of the value, suitable for embedding in an SQL statement
+
+ The object to convert to a string for the SQL statement.
+
+ A string that contains a well formed SQL Statement.
+
+
+
+ Initialize a new instance of the PrimitiveType class using a .
+
+ The underlying .
+
+
+
+ When implemented by a class, return a representation
+ of the value, suitable for embedding in an SQL statement
+
+ The object to convert to a string for the SQL statement.
+
+ A string that containts a well formed SQL Statement.
+
+
+
+ A representation of the value to be embedded in an XML element
+
+ The object that contains the values.
+
+ An Xml formatted string.
+
+ This just calls so if there is
+ a possibility of this PrimitiveType having any characters
+ that need to be encoded then this method should be overridden.
+
+
+
+
+ An IType that may be used for a discriminator column.
+
+
+ This interface contains no new methods but does require that an
+ that will be used in a discriminator column must implement
+ both the and interfaces.
+
+
+
+
+ An that may be used as an identifier.
+
+
+
+
+ When implemented by a class, converts the xml string from the
+ mapping file to the .NET object.
+
+ The value of discriminator-value or unsaved-value attribute.
+ The string converted to the object.
+
+ This method needs to be able to handle any string. It should not just
+ call System.Type.Parse without verifying that it is a parsable value
+ for the System.Type.
+
+
+
+
+ Maps a Property
+ to a DbType.AnsiStringFixedLength column.
+
+
+
+
+ Maps a Property
+ to a column.
+
+
+
+
+
+
+
+ Handles "any" mappings and the old deprecated "object" type.
+
+
+ The identifierType is any NHibernate IType that can be serailized by default.
+ For example, you can specify the identifierType as an Int32 or a custom identifier
+ type that you built. The identifierType matches to one or many columns.
+
+ The metaType maps to a single column. By default it stores the name of the Type
+ that the Identifier identifies.
+
+ For example, we can store a link to any table. It will have the results
+ class_name id_col1
+ ========================================
+ Simple, AssemblyName 5
+ DiffClass, AssemblyName 5
+ Simple, AssemblyName 4
+
+ You can also provide you own type that might map the name of the class to a table
+ with a giant switch statemet or a good naming convention for your class->table. The
+ data stored might look like
+ class_name id_col1
+ ========================================
+ simple_table 5
+ diff_table 5
+ simple_table 4
+
+
+
+
+
+ Enables other Component-like types to hold collections and have cascades, etc.
+
+
+
+
+ Get the values of the component properties of
+ a component instance
+
+
+
+
+ Optional Operation
+
+
+
+
+ Optional operation
+
+
+
+ Get the types of the component properties
+
+
+ Get the names of the component properties
+
+
+
+ Optional operation
+
+ nullability of component properties
+
+
+
+ An that represents some kind of association between entities.
+
+
+
+
+ Get the "persister" for this association - a class or collection persister
+
+
+
+
+
+ Get the entity name of the associated entity
+
+
+
+ Get the "filtering" SQL fragment that is applied in the
+ SQL on clause, in addition to the usual join condition.
+
+
+
+
+ When implemented by a class, gets the type of foreign key directionality
+ of this association.
+
+ The of this association.
+
+
+
+ Is the primary key of the owning entity table
+ to be used in the join?
+
+
+
+
+ Get the name of the property in the owning entity
+ that provides the join key (null if the identifier)
+
+
+
+
+ The name of a unique property of the associated entity
+ that provides the join key (null if the identifier of
+ an entity, or key of a collection)
+
+
+
+
+ Do we dirty check this association, even when there are
+ no columns to be updated.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Not really relevant to AnyType, since it cannot be "joined"
+
+
+
+
+ An that maps an collection
+ to the database.
+
+
+
+
+ The base class for an that maps collections
+ to the database.
+
+
+
+
+ Initializes a new instance of a class for
+ a specific role.
+
+ The role the persistent collection is in.
+
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+
+
+
+
+
+ Instantiate an uninitialized collection wrapper or holder. Callers MUST add the holder to the
+ persistence context!
+
+ The session from which the request is originating.
+ The underlying collection persister (metadata)
+ The owner key.
+ The instantiated collection.
+
+
+
+ Wrap the naked collection instance in a wrapper, or instantiate a
+ holder. Callers MUST add the holder to the persistence context!
+
+ The session from which the request is originating.
+ The bare collection to be wrapped.
+
+ A subclass of that wraps the non NHibernate collection.
+
+
+
+
+ Get the key value from the owning entity instance, usually the identifier, but might be some
+ other unique key, in the case of property-ref
+
+
+
+
+ Instantiate an empty instance of the "underlying" collection (not a wrapper),
+ but with the given anticipated size (i.e. accounting for initial capacity
+ and perhaps load factor).
+
+
+ The anticipated size of the instaniated collection after we are done populating it.
+
+ A newly instantiated collection to be wrapped.
+
+
+
+ Get an iterator over the element set of the collection, which may not yet be wrapped
+
+ The collection to be iterated
+ The session from which the request is originating.
+ The iterator.
+
+
+
+ Get an iterator over the element set of the collection in POCO mode
+
+ The collection to be iterated
+ The iterator.
+
+
+
+ We always need to dirty check the collection because we sometimes
+ need to incremement version number of owner and also because of
+ how assemble/disassemble is implemented for uks
+
+
+
+
+ Initializes a new instance of a class for
+ a specific role.
+
+ The role the persistent collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+ The of the element contained in the array.
+
+
+ This creates a bag that is non-generic.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Wraps a in a .
+
+ The for the collection to be a part of.
+ The unwrapped array.
+
+ An that wraps the non NHibernate .
+
+
+
+
+ The for the element.
+
+
+
+
+
+
+
+ An that maps an collection
+ using bag semantics to the database.
+
+
+
+
+ Initializes a new instance of a class for
+ a specific role.
+
+ The role the persistent collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+
+
+
+
+ Instantiates a new for the bag.
+
+ The current for the bag.
+
+
+ A new .
+
+
+
+ Wraps an in a NHibernate .
+
+ The for the collection to be a part of.
+ The unwrapped .
+
+ An that wraps the non NHibernate .
+
+
+
+
+
+
+
+ Maps a System.Byte[] Property to an column that can store a BLOB.
+
+
+ This is only needed by DataProviders (SqlClient) that need to specify a Size for the
+ IDbDataParameter. Most DataProvider(Oralce) don't need to set the Size so a BinaryType
+ would work just fine.
+
+
+
+
+ BinaryType.
+
+
+
+
+
+
+
+ Maps a Property
+ to a column.
+
+
+
+
+ Initialize a new instance of the BooleanType
+
+ This is used when the Property is mapped to a native boolean type.
+
+
+
+ Initialize a new instance of the BooleanType class using a
+ .
+
+ The underlying .
+
+ This is used when the Property is mapped to a string column
+ that stores true or false as a string.
+
+
+
+
+ Maps a property
+ to a column.
+
+
+
+
+ Maps a Property
+ to a column.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Maps a Property
+ to a DbType.StringFixedLength column.
+
+
+
+
+ ClassMetaType is a NH specific type to support "any" with meta-type="class"
+
+
+ It work like a MetaType where the key is the entity-name it self
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This method does not populate the component parent
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Summary description for CompositeCustomType.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Maps a Property
+ to a column.
+
+
+ CultureInfoType stores the culture name (not the Culture ID) of the
+ in the DB.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A custom type for mapping user-written classes that implement
+ .
+
+
+
+
+
+
+ Adapts IUserType to the generic IType interface.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Maps a Property to a column that
+ stores date & time down to the accuracy of a second.
+
+
+ This only stores down to a second, so if you are looking for the most accurate
+ date and time storage your provider can give you use the .
+ or the
+
+
+
+
+
+
+
+
+
+
+ Maps the Year, Month, and Day of a Property to a
+ column
+
+
+
+
+
+
+
+
+
+
+ Maps a Property
+ to a column.
+
+
+
+
+ Maps a Property
+ to a column.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A reference to an entity class
+
+
+
+ Constructs the requested entity type mapping.
+ The name of the associated entity.
+
+ The property-ref name, or null if we
+ reference the PK of the associated entity.
+
+ Is eager fetching enabled.
+ Should values of this mapping be embedded in XML modes?
+
+ Is unwrapping of proxies allowed for this association; unwrapping
+ says to return the "implementation target" of lazy prooxies; typically only possible
+ with lazy="no-proxy".
+
+
+
+ Two entities are considered the same when their instances are the same.
+ One entity instance
+ Another entity instance
+ The entity mode.
+ True if x == y; false otherwise.
+
+
+
+ Get the identifier value of an instance or proxy.
+
+ Intended only for loggin purposes!!!
+
+ The object from which to extract the identifier.
+ The entity persister
+ The entity mode
+ The extracted identifier.
+
+
+
+ Converts the id contained in the to an object.
+
+ The that contains the query results.
+ A string array of column names that contain the id.
+ The this is occurring in.
+ The object that this Entity will be a part of.
+
+ An instance of the object or if the identifer was null.
+
+
+
+ Retrieves the {@link Joinable} defining the associated entity.
+ The session factory.
+ The associated joinable
+
+
+
+ Determine the type of either (1) the identifier if we reference the
+ associated entity's PK or (2) the unique key to which we refer (i.e.
+ the property-ref).
+
+ The mappings...
+ The appropriate type.
+
+
+
+ The name of the property on the associated entity to which our FK refers
+
+ The mappings...
+ The appropriate property name.
+
+
+ Convenience method to locate the identifier type of the associated entity.
+ The mappings...
+ The identifier type
+
+
+ Convenience method to locate the identifier type of the associated entity.
+ The originating session
+ The identifier type
+
+
+
+ Resolves the identifier to the actual object.
+
+
+
+
+ Resolve an identifier or unique key value
+
+
+
+
+
+
+
+ The name of the associated entity.
+ The session factory, for resolution.
+ The associated entity name.
+
+
+ The name of the associated entity.
+ The associated entity name.
+
+
+
+ Load an instance by a unique key that is not the primary key.
+
+ The name of the entity to load
+ The name of the property defining the uniqie key.
+ The unique key property value.
+ The originating session.
+ The loaded entity
+
+
+ Explicitly, an entity type is an entity type
+ True.
+
+
+
+ This returns the wrong class for an entity with a proxy, or for a named
+ entity. Theoretically it should return the proxy class, but it doesn't.
+
+ The problem here is that we do not necessarily have a ref to the associated
+ entity persister (nor to the session factory, to look it up) which is really
+ needed to "do the right thing" here...
+
+
+
+
+
+
+
+
+
+
+ When implemented by a class, gets the type of foreign key directionality
+ of this association.
+
+ The of this association.
+
+
+
+ Is the foreign key the primary key of the table?
+
+
+
+
+ Maps a to a
+ DbType.String.
+
+
+ If your database should store the
+ using the named values in the enum instead of the underlying values
+ then subclass this .
+
+
+ All that needs to be done is to provide a default constructor that
+ NHibernate can use to create the specific type. For example, if
+ you had an enum defined as.
+
+
+
+ public enum MyEnum
+ {
+ On,
+ Off,
+ Dimmed
+ }
+
+
+
+ all that needs to be written for your enum string type is:
+
+
+
+ public class MyEnumStringType : NHibernate.Type.EnumStringType
+ {
+ public MyEnumStringType()
+ : base( typeof( MyEnum ) )
+ {
+ }
+ }
+
+
+
+ The mapping would look like:
+
+
+
+ ...
+ <property name="Status" type="MyEnumStringType, AssemblyContaining" />
+ ...
+
+
+
+ The TestFixture that shows the working code can be seen
+ in NHibernate.Test.TypesTest.EnumStringTypeFixture.cs
+ , NHibernate.Test.TypesTest.EnumStringClass.cs
+ , and NHibernate.Test.TypesTest.EnumStringClass.hbm.xml
+
+
+
+
+
+ Hardcoding of 255 for the maximum length
+ of the Enum name that will be saved to the db.
+
+
+ 255 because that matches the default length that hbm2ddl will
+ use to create the column.
+
+
+
+
+ Initializes a new instance of .
+
+ The of the Enum.
+
+
+
+ Initializes a new instance of .
+
+ The of the Enum.
+ The length of the string that can be written to the column.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This appends enumstring - to the beginning of the underlying
+ enums name so that could still be stored
+ using the underlying value through the
+ also.
+
+
+
+
+ Represents directionality of the foreign key constraint
+
+
+
+
+
+
+
+ Should we cascade at this cascade point?
+
+
+
+
+ A foreign key from child to parent
+
+
+
+
+ A foreign key from parent to child
+
+
+
+
+ An that maps an collection
+ to the database using bag semantics.
+
+
+
+
+ Initializes a new instance of a class for
+ a specific role.
+
+ The role the persistent collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+
+
+
+ Instantiates a new for the bag.
+
+ The current for the bag.
+ The current for the bag.
+
+
+
+
+ Wraps an in a .
+
+ The for the collection to be a part of.
+ The unwrapped .
+
+ An that wraps the non NHibernate .
+
+
+
+
+ An that maps an collection
+ using bag semantics with an identifier to the database.
+
+
+
+
+ Initializes a new instance of a class for
+ a specific role.
+
+ The role the persistent collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+
+
+
+
+ Instantiates a new for the identifier bag.
+
+ The current for the identifier bag.
+
+
+
+
+
+
+ Wraps an in a .
+
+ The for the collection to be a part of.
+ The unwrapped .
+
+ An that wraps the non NHibernate .
+
+
+
+
+
+
+
+ An that maps an collection
+ to the database using list semantics.
+
+
+
+
+ An that maps an collection
+ using list semantics to the database.
+
+
+
+
+ Initializes a new instance of a class for
+ a specific role.
+
+ The role the persistent collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+
+
+
+
+ Instantiates a new for the bag.
+
+ The current for the bag.
+
+
+ A new .
+
+
+
+ Wraps an exist in a NHibernate .
+
+ The for the collection to be a part of.
+ The unwrapped .
+
+ An that wraps the non NHibernate .
+
+
+
+
+
+
+
+ Initializes a new instance of a class for
+ a specific role.
+
+ The role the persistent collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+
+
+
+ Instantiates a new for the list.
+
+ The current for the list.
+ The current for the list.
+
+
+
+
+ Wraps an in a .
+
+ The for the collection to be a part of.
+ The unwrapped .
+
+ An that wraps the non NHibernate .
+
+
+
+
+ An that maps an collection
+ to the database.
+
+
+
+
+ An that maps an collection
+ to the database.
+
+
+
+
+ Initializes a new instance of a class for
+ a specific role.
+
+ The role the persistent collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+
+
+
+
+ Instantiates a new for the map.
+
+ The current for the map.
+
+
+
+
+
+
+ Wraps an in a .
+
+ The for the collection to be a part of.
+ The unwrapped .
+
+ An that wraps the non NHibernate .
+
+
+
+
+
+
+
+ Initializes a new instance of a class for
+ a specific role.
+
+ The role the persistent collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+
+
+
+ Instantiates a new for the map.
+
+ The current for the map.
+
+ Not used.
+
+
+
+
+ Wraps an in a .
+
+ The for the collection to be a part of.
+ The unwrapped .
+
+ An that wraps the
+ non NHibernate .
+
+
+
+
+ An that maps an collection
+ to the database.
+
+
+
+
+ An that maps an collection
+ to the database.
+
+
+
+
+ Initializes a new instance of a class for
+ a specific role.
+
+ The role the persistent collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+
+
+
+
+ Instantiates a new for the set.
+
+ The current for the set.
+
+
+
+
+
+
+ Wraps an in a .
+
+ The for the collection to be a part of.
+ The unwrapped .
+
+ An that wraps the non NHibernate .
+
+
+
+
+
+
+
+
+
+ Initializes a new instance of a class for
+ a specific role.
+
+ The role the persistent collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+
+
+
+ Instantiates a new for the set.
+
+ The current for the set.
+ The current for the set.
+
+
+
+
+ Wraps an in a .
+
+ The for the collection to be a part of.
+ The unwrapped .
+
+ An that wraps the non NHibernate .
+
+
+
+
+ An that maps a sorted collection
+ to the database.
+
+
+
+
+ Initializes a new instance of a class for
+ a specific role.
+
+ The role the persistent collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+ The to use to compare
+ set elements.
+
+
+
+ Maps a Property
+ to a column.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Maps a Property
+ to a column.
+
+
+
+
+
+
+
+
+
+
+ Maps a Property
+ to a column.
+
+
+
+
+
+
+
+
+
+
+ Maps a Property
+ to a column.
+
+
+
+
+
+
+
+
+
+
+ A many-to-one association to an entity
+
+
+
+
+ Hydrates the Identifier from .
+
+ The that contains the query results.
+ A string array of column names to read from.
+ The this is occurring in.
+ The object that this Entity will be a part of.
+
+ An instantiated object that used as the identifier of the type.
+
+
+
+
+ A one-to-one association to an entity
+
+
+
+
+ We don't need to dirty check one-to-one because of how
+ assemble/disassemble is implemented and because a one-to-one
+ association is never dirty
+
+
+
+
+ A implemented using a collection that maintains
+ the order in which elements are inserted into it.
+
+
+
+
+ Initializes a new instance of a class.
+
+ The role the persistent collection is in.
+
+
+
+
+
+ A implemented using a collection that maintains
+ the order in which elements are inserted into it.
+
+
+
+
+ Initializes a new instance of a class
+
+ The role the persistent collection is in.
+
+
+
+
+
+ PersistentEnumType
+
+
+
+
+ Gets an instance of the Enum
+
+ The underlying value of an item in the Enum.
+
+ An instance of the Enum set to the code value.
+
+
+
+
+ Gets the correct value for the Enum.
+
+ The value to convert (an enum instance).
+ A boxed version of the code, converted to the correct type.
+
+ This handles situations where the DataProvider returns the value of the Enum
+ from the db in the wrong underlying type. It uses to
+ convert it to the correct type.
+
+
+
+
+ Maps a Property
+ to a column.
+
+
+
+
+
+
+
+
+
+
+ Maps an instance of a that has the
+ to a column.
+
+
+
+ The SerializableType should be used when you know that Bytes are
+ not going to be greater than 8,000.
+
+
+ The base class is because the data is stored in
+ a byte[]. The System.Array does not have a nice "equals" method so we must
+ do a custom implementation.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Thrown when a property cannot be serialized/deserialized
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+ The exception that is the cause of the current exception. If the innerException parameter
+ is not a null reference, the current exception is raised in a catch block that handles
+ the inner exception.
+
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Maps a Property to an
+ column.
+
+
+ Verify through your database's documentation if there is a column type that
+ matches up with the capabilities of
+
+
+
+
+
+
+
+
+
+
+ Extends the to provide sorting.
+
+
+
+
+ Initializes a new instance of a class for
+ a specific role using the to do the sorting.
+
+ The role the persistent collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+ The to use for the sorting.
+
+
+
+
+ Extends the to provide sorting.
+
+
+
+
+ Initializes a new instance of a class for
+ a specific role using the to do the sorting.
+
+ The role the persistent collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+ The to use for the sorting.
+
+
+
+
+ A one-to-one association that maps to specific formula(s)
+ instead of the primary key column of the owning entity.
+
+
+
+
+ Maps a Property to an
+ column that can store a CLOB.
+
+
+ This is only needed by DataProviders (SqlClient) that need to specify a Size for the
+ IDbDataParameter. Most DataProvider(Oralce) don't need to set the Size so a StringType
+ would work just fine.
+
+
+
+
+ Maps a to a column.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Maps a Property to an column
+ that stores the DateTime using the Ticks property.
+
+
+ This is the recommended way to "timestamp" a column.
+ The System.DateTime.Ticks is accurate to 100-nanosecond intervals.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Maps a Property to an column
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This is almost the exact same type as the DateTime except it can be used
+ in the version column, stores it to the accuracy the database supports,
+ and will default to the value of DateTime.Now if the value is null.
+
+
+
+ The value stored in the database depends on what your data provider is capable
+ of storing. So there is a possibility that the DateTime you save will not be
+ the same DateTime you get back when you check DateTime.Equals(DateTime) because
+ they will have their milliseconds off.
+
+
+ For example - SQL Server 2000 is only accurate to 3.33 milliseconds. So if
+ NHibernate writes a value of 01/01/98 23:59:59.995 to the Prepared Command, MsSql
+ will store it as 1998-01-01 23:59:59.997.
+
+
+ Please review the documentation of your Database server.
+
+
+
+
+
+ Sets the value of this Type in the IDbCommand.
+
+ The IDbCommand to add the Type's value to.
+ The value of the Type.
+ The index of the IDataParameter in the IDbCommand.
+
+ No null values will be written to the IDbCommand for this Type.
+
+
+
+
+ Maps a Property to an DateTime column that only stores the
+ Hours, Minutes, and Seconds of the DateTime as significant.
+
+
+
+ This defaults the Date to "1753-01-01" - that should not matter because
+ using this Type indicates that you don't care about the Date portion of the DateTime.
+
+
+ A more appropriate choice to store the duration/time is the .
+ The underlying tends to be handled differently by different
+ DataProviders.
+
+
+
+
+
+ Maps a to a 1 char column
+ that stores a 'T'/'F' to indicate true/false.
+
+
+ If you are using schema-export to generate your tables then you need
+ to set the column attributes: length=1 or sql-type="char(1)".
+
+ This needs to be done because in Java's JDBC there is a type for CHAR and
+ in ADO.NET there is not one specifically for char, so you need to tell schema
+ export to create a char(1) column.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Used internally to obtain instances of IType.
+
+
+ Applications should use static methods and constants on NHibernate.NHibernateUtil if the default
+ IType is good enough. For example, the TypeFactory should only be used when the String needs
+ to have a length of 300 instead of 255. At this point NHibernate.String does not get you the
+ correct IType. Instead use TypeFactory.GetString(300) and keep a local variable that holds
+ a reference to the IType.
+
+
+
+
+
+
+
+ Gets the classification of the Type based on the string.
+
+ The name of the Type to get the classification for.
+ The Type of Classification
+
+ This parses through the string and makes the assumption that no class
+ name and no assembly name will contain the "(".
+
+ If it finds
+ the "(" and then finds a "," afterwards then it is a
+ TypeClassification.PrecisionScale.
+
+
+ If it finds the "("
+ and doesn't find a "," afterwards, then it is a
+ TypeClassification.Length.
+
+
+ If it doesn't find the "(" then it assumes that it is a
+ TypeClassification.Plain.
+
+
+
+
+
+ Given the name of a Hibernate type such as Decimal, Decimal(19,0)
+ , Int32, or even NHibernate.Type.DecimalType, NHibernate.Type.DecimalType(19,0),
+ NHibernate.Type.Int32Type, then return an instance of NHibernate.Type.IType
+
+ The name of the type.
+ The instance of the IType that the string represents.
+
+ This method will return null if the name is not found in the basicNameMap.
+
+
+
+
+ Uses heuristics to deduce a NHibernate type given a string naming the
+ type.
+
+
+ An instance of NHibernate.Type.IType
+
+ When looking for the NHibernate type it will look in the cache of the Basic types first.
+ If it doesn't find it in the cache then it uses the typeName to get a reference to the
+ Class (Type in .NET). Once we get the reference to the .NET class we check to see if it
+ implements IType, ICompositeUserType, IUserType, ILifecycle (Association), or
+ IPersistentEnum. If none of those are implemented then we will serialize the Type to the
+ database using NHibernate.Type.SerializableType(typeName)
+
+
+
+
+ Uses heuristics to deduce a NHibernate type given a string naming the
+ type.
+
+ the type name
+ parameters for the type
+ An instance of NHibernate.Type.IType
+
+
+
+
+
+
+
+
+
+
+ Gets the BinaryType with the specified length.
+
+ The length of the data to store in the database.
+ A BinaryType
+
+ In addition to returning the BinaryType it will also ensure that it has
+ been added to the basicNameMap with the keys Byte[](length) and
+ NHibernate.Type.BinaryType(length).
+
+
+
+
+ Gets the SerializableType for the specified Type
+
+ The Type that will be Serialized to the database.
+ A SerializableType
+
+
+ In addition to returning the SerializableType it will also ensure that it has
+ been added to the basicNameMap with the keys Type.FullName (the result
+ of IType.Name and Type.AssemblyQualifiedName. This is different
+ from the other items put in the basicNameMap because it is uses the AQN and the
+ FQN as opposed to the short name used in the maps and the FQN.
+
+
+ Since this method calls the method
+ GetSerializableType(System.Type, Int32)
+ with the default length, those keys will also be added.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A one-to-one association type for the given class and cascade style.
+
+
+
+
+ A many-to-one association type for the given class and cascade style.
+
+
+
+
+
+
+ A many-to-one association type for the given class and cascade style.
+
+
+
+
+ A many-to-one association type for the given class and cascade style.
+
+
+
+
+ Creates a new for an .
+
+ The role the collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+ The to use to create the array.
+
+
+ An for the specified role.
+
+
+
+
+ Creates a new for an .
+
+ The role the collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+
+
+ A for the specified role.
+
+
+
+
+ Creates a new for an
+ with bag semantics.
+
+ The role the collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+
+
+ A for the specified role.
+
+
+
+
+ Creates a new for an
+ with id-bag semantics.
+
+ The role the collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+
+
+ A for the specified role.
+
+
+
+
+ Creates a new for an .
+
+ The role the collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+
+
+ A for the specified role.
+
+
+
+
+ Creates a new for an .
+
+ The role the collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+
+
+ A for the specified role.
+
+
+
+
+ Creates a new for an
+ that is sorted by an .
+
+ The role the collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+ The that does the sorting.
+
+
+ A for the specified role.
+
+
+
+
+ Creates a new for an
+ that maintains insertion order of elements.
+
+ The role the collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+
+
+ A for the specified role.
+
+
+
+
+ Creates a new for an
+ that is sorted by an .
+
+ The role the collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+ The that does the sorting.
+
+
+ A for the specified role.
+
+
+
+
+ Creates a new for an
+ with bag semantics.
+
+ The role the collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+
+ The to use to create the
+ with.
+
+
+ A for the specified role.
+
+
+
+
+ Creates a new for an
+ with identifier
+ bag semantics.
+
+ The role the collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+
+ The to use to create the
+ with.
+
+
+ A for the specified role.
+
+
+
+
+ Creates a new for an
+ with list
+ semantics.
+
+ The role the collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+
+ The to use to create the
+ with.
+
+
+ A for the specified role.
+
+
+
+
+ Creates a new for an
+ .
+
+ The role the collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+
+ The to use as the TKey to create the
+ with.
+
+
+ The to use as the TValue to create the
+ with.
+
+
+ A for the specified role.
+
+
+
+
+ Creates a new for an .
+
+ The role the collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+ The type of the set elements.
+ A for the specified role.
+
+
+
+ Creates a new for a sorted .
+
+ The role the collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+ The to use for the set.
+ The type of the elements in the set.
+ A for the specified role.
+
+
+ Deep copy a series of values from one array to another...
+ The values to copy (the source)
+ The value types
+ an array indicating which values to include in the copy
+ The array into which to copy the values
+ The orginating session
+
+
+
+ Determine if any of the given field values are dirty,
+ returning an array containing indexes of
+ the dirty fields or null if no fields are dirty.
+
+
+
+
+ Determine if any of the given field values are modified,
+ returning an array containing indexes of
+ the dirty fields or null if no fields are modified.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Apply the {@link Type#disassemble} operation across a series of values.
+ The values
+ The value types
+ An array indicating which values to include in the disassemled state
+ The orginating session
+ The entity "owning" the values
+ The disassembled state
+
+
+
+ Apply the operation across a series of values.
+
+ The source of the state
+ The target into which to replace the source values.
+ The value types
+ The orginating session
+ The entity "owning" the values
+ Represent a cache of already replaced state
+ The replaced state
+
+
+
+ Apply the
+ operation across a series of values.
+
+ The source of the state
+ The target into which to replace the source values.
+ The value types
+ The orginating session
+ The entity "owning" the values
+ A map representing a cache of already replaced state
+ FK directionality to be applied to the replacement
+ The replaced state
+
+
+
+ Apply the
+ operation across a series of values, as
+ long as the corresponding is an association.
+
+ The source of the state
+ The target into which to replace the source values.
+ The value types
+ The orginating session
+ The entity "owning" the values
+ A map representing a cache of already replaced state
+ FK directionality to be applied to the replacement
+ The replaced state
+
+ If the corresponding type is a component type, then apply
+ accross the component subtypes but do not replace the component value itself.
+
+
+
+
+ Maps the Assembly Qualified Name of a to a
+ column.
+
+
+
+
+
+
+
+ Initialize a new instance of the TypeType class using a
+ .
+
+ The underlying .
+
+
+
+ Gets the in the for the Property.
+
+ The that contains the value.
+ The index of the field to get the value from.
+ The from the database.
+
+ Thrown when the value in the database can not be loaded as a
+
+
+
+
+ Gets the in the for the Property.
+
+ The that contains the value.
+ The name of the field to get the value from.
+ The from the database.
+
+ This just calls gets the index of the name in the IDataReader
+ and calls the overloaded version
+ (IDataReader, Int32).
+
+
+ Thrown when the value in the database can not be loaded as a
+
+
+
+
+ Puts the Assembly Qualified Name of the
+ Property into to the .
+
+ The to put the value into.
+ The that contains the value.
+ The index of the to start writing the value to.
+
+ This uses the method of the
+ object to do the work.
+
+
+
+
+ A representation of the value to be embedded in an XML element
+
+ The that contains the values.
+
+ An Xml formatted string that contains the Assembly Qualified Name.
+
+
+
+ Gets the that will be returned
+ by the NullSafeGet() methods.
+
+
+ A from the .NET framework.
+
+
+
+
+
+
+
+ Maps a Property
+ to a column.
+
+
+
+
+
+
+
+
+
+
+ Maps a Property
+ to a column.
+
+
+
+
+
+
+
+
+
+
+ Maps a Property
+ to a column.
+
+
+
+
+
+
+
+ Maps a to a 1 char column
+ that stores a 'Y'/'N' to indicate true/false.
+
+
+ If you are using schema-export to generate your tables then you need
+ to set the column attributes: length=1 or sql-type="char(1)".
+
+ This needs to be done because in Java's JDBC there is a type for CHAR and
+ in ADO.NET there is not one specifically for char, so you need to tell schema
+ export to create a char(1) column.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A UserType that may be dereferenced in a query.
+ This interface allows a custom type to define "properties".
+ These need not necessarily correspond to physical .NET style properties.
+
+ A ICompositeUserType may be used in almost every way
+ that a component may be used. It may even contain many-to-one
+ associations.
+
+ Implementors must be immutable and must declare a public
+ default constructor.
+
+ Unlike UserType, cacheability does not depend upon
+ serializability. Instead, Assemble() and
+ Disassemble() provide conversion to/from a cacheable
+ representation.
+
+
+
+
+ Get the value of a property
+
+ an instance of class mapped by this "type"
+
+ the property value
+
+
+
+ Set the value of a property
+
+ an instance of class mapped by this "type"
+
+ the value to set
+
+
+
+ Compare two instances of the class mapped by this type for persistence
+ "equality", ie. equality of persistent state.
+
+
+
+
+
+
+
+ Get a hashcode for the instance, consistent with persistence "equality"
+
+
+
+
+ Retrieve an instance of the mapped class from a IDataReader. Implementors
+ should handle possibility of null values.
+
+ IDataReader
+ the column names
+
+ the containing entity
+
+
+
+
+ Write an instance of the mapped class to a prepared statement.
+ Implementors should handle possibility of null values.
+ A multi-column type should be written to parameters starting from index.
+
+
+
+
+
+
+
+
+ Return a deep copy of the persistent state, stopping at entities and at collections.
+
+ generally a collection element or entity field
+
+
+
+
+ Transform the object into its cacheable representation.
+ At the very least this method should perform a deep copy.
+ That may not be enough for some implementations, method should perform a deep copy. That may not be enough for some implementations, however; for example, associations must be cached as identifier values. (optional operation)
+
+ the object to be cached
+
+
+
+
+
+ Reconstruct an object from the cacheable representation.
+ At the very least this method should perform a deep copy. (optional operation)
+
+ the object to be cached
+
+
+
+
+
+
+ During merge, replace the existing (target) value in the entity we are merging to
+ with a new (original) value from the detached entity we are merging. For immutable
+ objects, or null values, it is safe to simply return the first parameter. For
+ mutable objects, it is safe to return a copy of the first parameter. However, since
+ composite user types often define component values, it might make sense to recursively
+ replace component values in the target object.
+
+
+
+
+ Get the "property names" that may be used in a query.
+
+
+
+
+ Get the corresponding "property types"
+
+
+
+
+ The class returned by NullSafeGet().
+
+
+
+
+ Are objects of this type mutable?
+
+
+
+
+ A custom type that may function as an identifier or discriminator
+ type, or may be marshalled to and from an XML document.
+
+
+
+
+ The interface to be implemented by user-defined types.
+
+
+
+ The interface abstracts user code from future changes to the interface,
+ simplifies the implementation of custom types and hides certain "internal interfaces from
+ user code.
+
+
+ Implementers must be immutable and must declare a public default constructor.
+
+
+ The actual class mapped by a IUserType may be just about anything. However, if it is to
+ be cacheble by a persistent cache, it must be serializable.
+
+
+ Alternatively, custom types could implement directly or extend one of the
+ abstract classes in NHibernate.Type. This approach risks future incompatible changes
+ to classes or interfaces in the package.
+
+
+
+
+
+ Compare two instances of the class mapped by this type for persistent "equality"
+ ie. equality of persistent state
+
+
+
+
+
+
+
+ Get a hashcode for the instance, consistent with persistence "equality"
+
+
+
+
+ Retrieve an instance of the mapped class from a JDBC resultset.
+ Implementors should handle possibility of null values.
+
+ a IDataReader
+ column names
+ the containing entity
+
+ HibernateException
+
+
+
+ Write an instance of the mapped class to a prepared statement.
+ Implementors should handle possibility of null values.
+ A multi-column type should be written to parameters starting from index.
+
+ a IDbCommand
+ the object to write
+ command parameter index
+ HibernateException
+
+
+
+ Return a deep copy of the persistent state, stopping at entities and at collections.
+
+ generally a collection element or entity field
+ a copy
+
+
+
+ During merge, replace the existing () value in the entity
+ we are merging to with a new () value from the detached
+ entity we are merging. For immutable objects, or null values, it is safe to simply
+ return the first parameter. For mutable objects, it is safe to return a copy of the
+ first parameter. For objects with component values, it might make sense to
+ recursively replace component values.
+
+ the value from the detached entity being merged
+ the value in the managed entity
+ the managed entity
+ the value to be merged
+
+
+
+ Reconstruct an object from the cacheable representation. At the very least this
+ method should perform a deep copy if the type is mutable. (optional operation)
+
+ the object to be cached
+ the owner of the cached object
+ a reconstructed object from the cachable representation
+
+
+
+ Transform the object into its cacheable representation. At the very least this
+ method should perform a deep copy if the type is mutable. That may not be enough
+ for some implementations, however; for example, associations must be cached as
+ identifier values. (optional operation)
+
+ the object to be cached
+ a cacheable representation of the object
+
+
+
+ The SQL types for the columns mapped by this type.
+
+
+
+
+ The type returned by NullSafeGet()
+
+
+
+
+ Are objects of this type mutable?
+
+
+
+
+ Parse a string representation of this value, as it appears
+ in an XML document.
+
+
+
+
+ Return an SQL literal representation of the value
+
+
+
+
+ Return a string representation of this value, as it
+ should appear in an XML document
+
+
+
+
+ Marker interface for user types which want to perform custom
+ logging of their corresponding values
+
+
+
+ Generate a loggable string representation of the collection (value).
+ The collection to be logged; guaranteed to be non-null and initialized.
+ The factory.
+ The loggable string representation.
+
+
+
+ Support for parameterizable types. A UserType or CustomUserType may be
+ made parameterizable by implementing this interface. Parameters for a
+ type may be set by using a nested type element for the property element
+
+
+
+
+ Gets called by Hibernate to pass the configured type parameters to
+ the implementation.
+
+
+
+
+ Instantiate an uninitialized instance of the collection wrapper
+
+
+
+
+ Wrap an instance of a collection
+
+
+
+
+ Return an over the elements of this collection - the passed collection
+ instance may or may not be a wrapper
+
+
+
+
+ Optional operation. Does the collection contain the entity instance?
+
+
+
+
+ Optional operation. Return the index of the entity in the collection.
+
+
+
+
+ Replace the elements of a collection with the elements of another collection
+
+
+
+
+ Instantiate an empty instance of the "underlying" collection (not a wrapper),
+ but with the given anticipated size (i.e. accounting for initial size
+ and perhaps load factor).
+
+
+ The anticipated size of the instaniated collection
+ after we are done populating it. Note, may be negative to indicate that
+ we not yet know anything about the anticipated size (i.e., when initializing
+ from a result set row by row).
+
+
+
+
+ A user type that may be used for a version property.
+
+
+
+
+ Generate an initial version.
+
+ The session from which this request originates. May be
+ null; currently this only happens during startup when trying to determine
+ the "unsaved value" of entities.
+ an instance of the type
+
+
+
+ Increment the version.
+
+ The session from which this request originates.
+ the current version
+ an instance of the type
+
+
+
+ Helper class that contains common array functions and
+ data structures used through out NHibernate.
+
+
+
+
+ Sets item at position to .
+ Expands the list by adding values, if needed.
+
+
+
+
+ Computes a hash code for .
+
+ The hash code is computed as the sum of hash codes of
+ individual elements, so that the value is independent of the
+ collection iteration order.
+
+
+
+
+ Creates a that uses case-insensitive string comparison
+ associated with invariant culture.
+
+
+ This is different from the method in
+ in that the latter uses the current culture and is thus vulnerable to the "Turkish I" problem.
+
+
+
+
+ Creates a that uses case-insensitive string comparison
+ associated with invariant culture.
+
+
+ This is different from the method in
+ in that the latter uses the current culture and is thus vulnerable to the "Turkish I" problem.
+
+
+
+
+ Computes a hash code for .
+
+ The hash code is computed as the sum of hash codes of
+ individual elements, so that the value is independent of the
+ collection iteration order.
+
+
+
+
+ A read-only dictionary that is always empty and permits lookup by key.
+
+
+
+
+ A read-only dictionary that is always empty and permits lookup by key.
+
+
+
+
+ Utility class implementing ToString for collections. All ToString
+ overloads call element.ToString().
+
+
+ To print collections of entities or typed values, use
+ .
+
+
+
+
+
+
+
+ An where keys are compared by object identity, rather than equals.
+
+ All external users of this class need to have no knowledge of the IdentityKey - it is all
+ hidden by this class.
+
+
+
+ Do NOT use a System.Value type as the key for this Hashtable - only classes. See
+ the google thread
+ about why using System.Value is a bad thing.
+
+
+ If I understand it correctly, the first call to get an object defined by a DateTime("2003-01-01")
+ would box the DateTime and return the identity key for the box. If you were to get that Key and
+ unbox it into a DateTime struct, then the next time you passed it in as the Key the IdentityMap
+ would box it again (into a different box) and it would have a different IdentityKey - so you would
+ not get the same value for the same DateTime value.
+
+
+
+
+
+ Create a new instance of the IdentityMap that has no
+ iteration order.
+
+ A new IdentityMap based on a Hashtable.
+
+
+
+ Create a new instance of the IdentityMap that has an
+ iteration order of the order the objects were added
+ to the Map.
+
+ A new IdentityMap based on ListDictionary.
+
+
+
+ Return the Dictionary Entries (as instances of DictionaryEntry in a collection
+ that is safe from concurrent modification). Ie - we may safely add new instances
+ to the underlying IDictionary during enumeration of the Values.
+
+ The IDictionary to get the enumeration safe list.
+ A Collection of DictionaryEntries
+
+
+
+ Create the IdentityMap class with the correct class for the IDictionary.
+ Unsorted = Hashtable
+ Sorted = ListDictionary
+
+ A class that implements the IDictionary for storing the objects.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Verifies that we are not using a System.ValueType as the Key in the Dictionary
+
+ The object that will be the key.
+ An object that is safe to be a key.
+ Thrown when the obj is a System.ValueType
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns the Keys used in this IdentityMap
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Provides a snapshot VIEW in the form of a List of the contents of the IdentityMap.
+ You can safely iterate over this VIEW and modify the actual IdentityMap because the
+ VIEW is a copy of the contents, not a reference to the existing Map.
+
+ Contains a copy (not that actual instance stored) of the DictionaryEntries in a List.
+
+
+
+
+ Set implementation that use == instead of equals() as its comparison mechanism
+ that base its implementation of IdentityMap
+
+
+
+
+ Combines multiple objects implementing into one.
+
+
+
+
+ Creates an IEnumerable object from multiple IEnumerables.
+
+ The IEnumerables to join together.
+
+
+
+
+
+
+
+
+
+
+
+
+ A flag to indicate if Dispose() has been called.
+
+
+
+
+ Finalizer that ensures the object is correctly disposed of.
+
+
+
+
+ Takes care of freeing the managed and unmanaged resources that
+ this class is responsible for.
+
+
+
+
+ Takes care of freeing the managed and unmanaged resources that
+ this class is responsible for.
+
+ Indicates if this JoinedEnumerable is being Disposed of or Finalized.
+
+ The command is closed and the reader is disposed. This allows other ADO.NET
+ related actions to occur without needing to move all the way through the
+ EnumerableImpl.
+
+
+
+
+
+
+
+ A map of objects whose mapping entries are sequenced based on the order in which they were
+ added. This data structure has fast O(1) search time, deletion time, and insertion time
+
+
+ This class is not thread safe.
+ This class is not a really replication of JDK LinkedHashMap{K, V},
+ this class is an adaptation of SequencedHashMap with generics.
+
+
+
+
+ Initializes a new instance of the class that is empty,
+ has the default initial capacity, and uses the default equality comparer for the key type.
+
+
+
+
+ Initializes a new instance of the class that is empty,
+ has the specified initial capacity, and uses the default equality comparer for the key type.
+
+ The initial number of elements that the can contain.
+
+
+
+ Initializes a new instance of the class that is empty, has the default initial capacity, and uses the specified .
+
+ The implementation to use when comparing keys, or null to use the default EqualityComparer for the type of the key.
+
+
+
+ Initializes a new instance of the class that is empty, has the specified initial capacity, and uses the specified .
+
+ The initial number of elements that the can contain.
+ The implementation to use when comparing keys, or null to use the default EqualityComparer for the type of the key.
+
+
+
+ An implementation of a Map which has a maximum size and uses a Least Recently Used
+ algorithm to remove items from the Map when the maximum size is reached and new items are added.
+
+
+
+
+ A map of objects whose mapping entries are sequenced based on the order in which they were
+ added. This data structure has fast O(1) search time, deletion time, and insertion time
+
+
+ This class is not thread safe.
+
+
+
+
+ Construct an empty sentinel used to hold the head (sentinel.next) and the tail (sentinal.prev)
+ of the list. The sentinal has a key and value
+
+
+
+
+
+ Sentinel used to hold the head and tail of the list of entries
+
+
+
+
+ Map of keys to entries
+
+
+
+
+ Holds the number of modifications that have occurred to the map, excluding modifications
+ made through a collection view's iterator.
+
+
+
+
+ Construct a new sequenced hash map with default initial size and load factor
+
+
+
+
+ Construct a new sequenced hash map with the specified initial size and default load factor
+
+ the initial size for the hash table
+
+
+
+ Construct a new sequenced hash map with the specified initial size and load factor
+
+ the initial size for the hashtable
+ the load factor for the hash table
+
+
+
+ Construct a new sequenced hash map with the specified initial size, hash code provider
+ and comparer
+
+ the initial size for the hashtable
+
+
+
+
+ Creates an empty Hashtable with the default initial capacity and using the default load factor,
+ the specified hash code provider and the specified comparer
+
+
+
+
+
+ Creates an empty Hashtable with the default initial capacity and using the default load factor,
+ the specified hash code provider and the specified comparer
+
+ the initial size for the hashtable
+ the load factor for the hash table
+
+
+
+
+ Removes an internal entry from the linked list. THis does not remove it from the underlying
+ map.
+
+
+
+
+
+ Inserts a new internal entry to the tail of the linked list. This does not add the
+ entry to the underlying map.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Remove the Entry identified by the Key if it exists.
+
+ The Key to remove.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Return only the Key of the DictionaryEntry
+
+
+
+
+ Return only the Value of the DictionaryEntry
+
+
+
+
+ Return the full DictionaryEntry
+
+
+
+
+ Summary description for ObjectUtils.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Helper class for Reflection related code.
+
+
+
+
+ Determine if the specified overrides the
+ implementation of Equals from
+
+ The to reflect.
+ if any type in the hierarchy overrides Equals(object).
+
+
+
+ Determine if the specified overrides the
+ implementation of GetHashCode from
+
+ The to reflect.
+ if any type in the hierarchy overrides GetHashCode().
+
+
+
+ Finds the for the property in the .
+
+ The to find the property in.
+ The name of the Property to find.
+ The name of the property access strategy.
+ The to get the value of the Property.
+
+ This one takes a propertyAccessor name as we might know the correct strategy by now so we avoid Exceptions which are costly
+
+
+
+
+ Get the NHibernate for the named property of the .
+
+ The to find the Property in.
+ The name of the property/field to find in the class.
+ The name of the property accessor for the property.
+
+ The NHibernate for the named property.
+
+
+
+
+ Get the for the named property of a type.
+
+ The to find the property in.
+ The name of the property/field to find in the class.
+ The name of the property accessor for the property.
+ The for the named property.
+
+
+
+ Get the for the named property of a type.
+
+ The FullName to find the property in.
+ The name of the property/field to find in the class.
+ The name of the property accessor for the property.
+ The for the named property.
+
+
+
+ Returns a reference to the Type.
+
+ The name of the class or a fully qualified name.
+ The Type for the Class.
+
+
+
+ Load a System.Type given is't name.
+
+ The class FullName or AssemblyQualifiedName
+ The System.Type
+
+ If the don't represent an
+ the method try to find the System.Type scanning all Assemblies of the .
+
+ If no System.Type was found for .
+
+
+
+ Returns a from an already loaded Assembly or an
+ Assembly that is loaded with a partial name.
+
+ An .
+ if an exception should be thrown
+ in case of an error, otherwise.
+
+ A object that represents the specified type,
+ or if the type cannot be loaded.
+
+
+ Attempts to get a reference to the type from an already loaded assembly. If the
+ type cannot be found then the assembly is loaded using
+ .
+
+
+
+
+ Returns the value of the static field of .
+
+ The .
+ The name of the field in the .
+ The value contained in the field, or if the type or the field does not exist.
+
+
+
+ Gets the default no arg constructor for the .
+
+ The to find the constructor for.
+
+ The for the no argument constructor, or if the
+ type is an abstract class.
+
+
+ Thrown when there is a problem calling the method GetConstructor on .
+
+
+
+
+ Finds the constructor that takes the parameters.
+
+ The to find the constructor in.
+ The objects to use to find the appropriate constructor.
+
+ An that can be used to create the type with
+ the specified parameters.
+
+
+ Thrown when no constructor with the correct signature can be found.
+
+
+
+
+ Determines if the is a non creatable class.
+
+ The to check.
+ if the is an Abstract Class or an Interface.
+
+
+
+ Unwraps the supplied
+ and returns the inner exception preserving the stack trace.
+
+
+ The to unwrap.
+
+ The unwrapped exception.
+
+
+
+ Used to ensure a collection filtering a given IEnumerable by a certain type.
+
+ The type used like filter.
+
+
+
+ Cache following a "Most Recently Used" (MRU) algorithm for maintaining a
+ bounded in-memory size; the "Least Recently Used" (LRU) entry is the first
+ available for removal from the cache.
+
+
+ This implementation uses a bounded MRU Map to limit the in-memory size of
+ the cache. Thus the size of this cache never grows beyond the stated size.
+
+
+
+
+ Cache following a "Most Recently Used" (MRY) algorithm for maintaining a
+ bounded in-memory size; the "Least Recently Used" (LRU) entry is the first
+ available for removal from the cache.
+
+
+ This implementation uses a "soft limit" to the in-memory size of the cache,
+ meaning that all cache entries are kept within a completely
+ {@link java.lang.ref.SoftReference}-based map with the most recently utilized
+ entries additionally kept in a hard-reference manner to prevent those cache
+ entries soft references from becoming enqueued by the garbage collector.
+ Thus the actual size of this cache impl can actually grow beyond the stated
+ max size bound as long as GC is not actively seeking soft references for
+ enqueuement.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Just a façade for calling string.Split()
+ We don't use our StringTokenizer because string.Split() is
+ more efficient (but it only works when we don't want to retrieve the delimiters)
+
+ separators for the tokens of the list
+ the string that will be broken into tokens
+
+
+
+
+ Splits the String using the StringTokenizer.
+
+ separators for the tokens of the list
+ the string that will be broken into tokens
+ true to include the seperators in the tokens.
+
+
+ This is more powerful than Split because you have the option of including or
+ not including the seperators in the tokens.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Takes a fully qualified type name and returns the full name of the
+ Class - includes namespaces.
+
+
+
+
+
+
+ Takes a fully qualifed type name (can include the assembly) and just returns
+ the name of the Class.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Converts a in the format of "true", "t", "false", or "f" to
+ a .
+
+ The string to convert.
+
+ The value converted to a .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Counts the unquoted instances of the character.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Generate a nice alias for the given class name or collection role
+ name and unique integer. Subclasses do not have to use
+ aliases of this form.
+
+ an alias of the form foo1_
+
+
+
+ Returns the interned string equal to if there is one, or
+ otherwise.
+
+ A
+ A
+
+
+
+ A StringTokenizer java like object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Count of elements in the collection. Unreliable!
+
+
+
+
+ Indicates failure of an assertion: a possible bug in NHibernate
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+ The exception that is the cause of the current exception. If the innerException parameter
+ is not a null reference, the current exception is raised in a catch block that handles
+ the inner exception.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Controls how the session interacts with the second-level
+ cache and query cache.
+
+
+
+
+ The session will never interact with the cache, except to invalidate
+ cache items when updates occur
+
+
+
+
+ The session will never read items from the cache, but will add items
+ to the cache as it reads them from the database.
+
+
+
+
+ The session may read items from the cache, but will not add items,
+ except to invalidate items when updates occur
+
+
+
+ The session may read items from the cache, and add items to the cache
+
+
+
+ The session will never read items from the cache, but will add items
+ to the cache as it reads them from the database. In this mode, the
+ effect of hibernate.cache.use_minimal_puts is bypassed, in
+ order to force a cache refresh
+
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ The exception that is the cause of the current exception. If the innerException parameter
+ is not a null reference, the current exception is raised in a catch block that handles
+ the inner exception.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+ The exception that is the cause of the current exception. If the innerException parameter
+ is not a null reference, the current exception is raised in a catch block that handles
+ the inner exception.
+
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Transforms Criteria queries
+
+
+
+
+ Returns a clone of the original criteria, which will return the count
+ of rows that are returned by the original criteria query.
+
+
+
+
+ Returns a clone of the original criteria, which will return the count
+ of rows that are returned by the original criteria query.
+
+
+
+
+ Creates an exact clone of the criteria
+
+
+
+
+
+ Creates an exact clone of the criteria
+
+
+
+
+
+ Contains static declarations from Criteria interface in Hibernate.
+
+
+
+
+ The alias that refers to the "root" entity of the criteria query.
+
+
+
+
+ Each row of results is an IDictionary from alias to entity instance
+
+
+
+
+ Each row of results is an instance of the root entity
+
+
+
+
+ Each row of results is a distinct instance of the root entity
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+ The name of the duplicate object
+ The type of the duplicate object
+
+
+
+ Initializes a new instance of the class.
+
+ The name of the duplicate object
+ The type of the duplicate object
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ The type of the duplicated object
+
+
+
+
+ The name of the duplicated object
+
+
+
+
+ Allows user code to inspect and/or change property values before they are written and after they
+ are read from the database
+
+
+
+ There might be a single instance of IInterceptor for a SessionFactory, or a new
+ instance might be specified for each ISession. Whichever approach is used, the interceptor
+ must be serializable if the ISession is to be serializable. This means that SessionFactory
+ -scoped interceptors should implement ReadResolve().
+
+
+ The ISession may not be invoked from a callback (nor may a callback cause a collection or
+ proxy to be lazily initialized).
+
+
+
+
+
+ Called just before an object is initialized
+
+
+
+
+
+
+
+ The interceptor may change the state, which will be propagated to the persistent
+ object. Note that when this method is called, entity will be an empty
+ uninitialized instance of the class.
+ if the user modified the state in any way
+
+
+
+ Called when an object is detected to be dirty, during a flush.
+
+
+
+
+
+
+
+
+ The interceptor may modify the detected currentState, which will be propagated to
+ both the database and the persistent object. Note that all flushes end in an actual
+ synchronization with the database, in which as the new currentState will be propagated
+ to the object, but not necessarily (immediately) to the database. It is strongly recommended
+ that the interceptor not modify the previousState.
+
+ if the user modified the currentState in any way
+
+
+
+ Called before an object is saved
+
+
+
+
+
+
+
+ The interceptor may modify the state, which will be used for the SQL INSERT
+ and propagated to the persistent object
+
+ if the user modified the state in any way
+
+
+
+ Called before an object is deleted
+
+
+
+
+
+
+
+ It is not recommended that the interceptor modify the state.
+
+
+
+ Called before a collection is (re)created.
+
+
+ Called before a collection is deleted.
+
+
+ Called before a collection is updated.
+
+
+
+ Called before a flush
+
+ The entities
+
+
+
+ Called after a flush that actually ends in execution of the SQL statements required to
+ synchronize in-memory state with the database.
+
+ The entitites
+
+
+
+ Called when a transient entity is passed to SaveOrUpdate.
+
+
+ The return value determines if the object is saved
+
+ - the entity is passed to Save(), resulting in an INSERT
+ - the entity is passed to Update(), resulting in an UPDATE
+ - Hibernate uses the unsaved-value mapping to determine if the object is unsaved
+
+
+ A transient entity
+ Boolean or to choose default behaviour
+
+
+
+ Called from Flush(). The return value determines whether the entity is updated
+
+
+
+ an array of property indicies - the entity is dirty
+ an empty array - the entity is not dirty
+ - use Hibernate's default dirty-checking algorithm
+
+
+ A persistent entity
+
+
+
+
+
+ An array of dirty property indicies or to choose default behavior
+
+
+
+ Instantiate the entity class. Return to indicate that Hibernate should use the default
+ constructor of the class
+
+ the name of the entity
+ The type of entity instance to be returned.
+ the identifier of the new instance
+ An instance of the class, or to choose default behaviour
+
+ The identifier property of the returned instance
+ should be initialized with the given identifier.
+
+
+
+ Get the entity name for a persistent or transient instance
+ an entity instance
+ the name of the entity
+
+
+ Get a fully loaded entity instance that is cached externally
+ the name of the entity
+ the instance identifier
+ a fully initialized entity
+
+
+
+ Called when a NHibernate transaction is begun via the NHibernate
+ API. Will not be called if transactions are being controlled via some other mechanism.
+
+
+
+
+ Called before a transaction is committed (but not before rollback).
+
+
+
+
+ Called after a transaction is committed or rolled back.
+
+
+
+
+ Called when a session-scoped (and only session scoped) interceptor is attached
+ to a session
+
+
+
+ Called when sql string is being prepared.
+ sql to be prepared
+ original or modified sql
+
+
+ Defines the representation modes available for entities.
+
+
+
+ Represents a fetching strategy.
+
+
+ This is used together with the API to specify
+ runtime fetching strategies.
+
+ For Hql queries, use the FETCH keyword instead.
+
+
+
+
+
+ Default to the setting configured in the mapping file.
+
+
+
+
+ Fetch eagerly, using a separate select. Equivalent to
+ fetch="select" (and outer-join="false")
+
+
+
+
+ Fetch using an outer join. Equivalent to
+ fetch="join" (and outer-join="true")
+
+
+
+
+ Indicates that an expected getter or setter method could not be found on a class
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+ The exception that is the cause of the current exception. If the innerException parameter
+ is not a null reference, the current exception is raised in a catch block that handles
+ the inner exception.
+
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Represents a flushing strategy.
+
+
+ The flush process synchronizes database state with session state by detecting state
+ changes and executing SQL statements
+
+
+
+
+ Special value for unspecified flush mode (like in Java).
+
+
+
+
+ The ISession is never flushed unless Flush() is explicitly
+ called by the application. This mode is very efficient for read only
+ transactions
+
+
+
+
+ The ISession is flushed when Transaction.Commit() is called
+
+
+
+
+ The ISession is sometimes flushed before query execution in order to
+ ensure that queries never return stale state. This is the default flush mode.
+
+
+
+
+ The is flushed before every query. This is
+ almost always unnecessary and inefficient.
+
+
+
+
+ Provides XML marshalling for classes registered with a SessionFactory
+
+
+
+ Hibernate defines a generic XML format that may be used to represent any class
+ (hibernate-generic.dtd). The user configures an XSLT stylesheet for marshalling
+ data from this generic format to an application and/or user readable format. By default,
+ Hibernate will use hibernate-default.xslt which maps data to a useful human-
+ readable format.
+
+
+ The property xml.output_stylesheet specifies a user-written stylesheet.
+ Hibernate will attempt to load the stylesheet from the classpath first and if not found,
+ will attempt to load it as a file
+
+
+ It is not intended that implementors be threadsafe
+
+
+
+
+
+ Add an object to the output document.
+
+ A transient or persistent instance
+ Databinder
+
+
+
+ Add a collection of objects to the output document
+
+ A collection of transient or persistent instance
+ Databinder
+
+
+
+ Output the generic XML representation of the bound objects
+
+ Generic Xml representation
+
+
+
+ Output the generic XML Representation of the bound objects
+ to a XmlDocument
+
+ A generic Xml tree
+
+
+
+ Output the custom XML representation of the bound objects
+
+ Custom Xml representation
+
+
+
+ Output the custom XML representation of the bound objects as
+ an XmlDocument
+
+ A custom Xml Tree
+
+
+
+ Controls whether bound objects (and their associated objects) that are lazily instanciated
+ are explicityl initialized or left as they are
+
+ True to explicitly initilize lazy objects, false to leave them in the state they are in
+
+
+
+ Performs a null safe comparison using "==" instead of Object.Equals()
+
+ First object to compare.
+ Second object to compare.
+
+ true if x is the same instance as y or if both are null references; otherwise, false.
+
+
+ This is Lazy collection safe since it uses ,
+ unlike Object.Equals() which currently causes NHibernate to load up the collection.
+ This behaivior of Collections is likely to change because Java's collections override Equals() and
+ .net's collections don't. So in .net there is no need to override Equals() and
+ GetHashCode() on the NHibernate Collection implementations.
+
+
+
+
+ Thrown if Hibernate can't instantiate an entity or component class at runtime.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+ The exception that is the cause of the current exception. If the innerException parameter
+ is not a null reference, the current exception is raised in a catch block that handles
+ the inner exception.
+
+ The that NHibernate was trying to instantiate.
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Sets the serialization info for after
+ getting the info from the base Exception.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Gets the that NHibernate was trying to instantiate.
+
+
+
+
+ Gets a message that describes the current .
+
+
+ The error message that explains the reason for this exception and the Type that
+ was trying to be instantiated.
+
+
+
+
+ Thrown when an invalid type is specified as a proxy for a class.
+ The exception is also thrown when a class is specified as lazy,
+ but cannot be used as a proxy for itself.
+
+
+
+
+ A problem occurred trying to lazily initialize a collection or proxy (for example the session
+ was closed) or iterate query results.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+
+
+ Initializes a new instance of the class.
+
+
+ The exception that is the cause of the current exception. If the innerException parameter
+ is not a null reference, the current exception is raised in a catch block that handles
+ the inner exception.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+ The exception that is the cause of the current exception. If the innerException parameter
+ is not a null reference, the current exception is raised in a catch block that handles
+ the inner exception.
+
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Instances represent a lock mode for a row of a relational database table.
+
+
+ It is not intended that users spend much time worrying about locking since Hibernate
+ usually obtains exactly the right lock level automatically. Some "advanced" users may
+ wish to explicitly specify lock levels.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Is this lock mode more restrictive than the given lock mode?
+
+
+
+
+
+ Is this lock mode less restrictive than the given lock mode?
+
+
+
+
+
+ No lock required.
+
+
+ If an object is requested with this lock mode, a Read lock
+ might be obtained if necessary.
+
+
+
+
+ A shared lock.
+
+
+ Objects are loaded in Read mode by default
+
+
+
+
+ An upgrade lock.
+
+
+ Objects loaded in this lock mode are materialized using an
+ SQL SELECT ... FOR UPDATE
+
+
+
+
+ Attempt to obtain an upgrade lock, using an Oracle-style
+ SELECT ... FOR UPGRADE NOWAIT.
+
+
+ The semantics of this lock mode, once obtained, are the same as Upgrade
+
+
+
+
+ A Write lock is obtained when an object is updated or inserted.
+
+
+ This is not a valid mode for Load() or Lock().
+
+
+
+
+ Similar to except that, for versioned entities,
+ it results in a forced version increment.
+
+
+
+
+ Provides access to the full range of NHibernate built-in types.
+ IType instances may be used to bind values to query parameters.
+ Also a factory for new Blobs and Clobs.
+
+
+
+
+ Guesses the IType of this object
+
+ The obj.
+
+
+
+
+ Guesses the IType by the type
+
+ The type.
+
+
+
+
+ NHibernate Ansi String type
+
+
+
+
+ NHibernate binary type
+
+
+
+
+ NHibernate binary blob type
+
+
+
+
+ NHibernate boolean type
+
+
+
+
+ NHibernate byte type
+
+
+
+
+ NHibernate character type
+
+
+
+
+ NHibernate Culture Info type
+
+
+
+
+ NHibernate date type
+
+
+
+
+ NHibernate date type
+
+
+
+
+ NHibernate decimal type
+
+
+
+
+ NHibernate double type
+
+
+
+
+ NHibernate Guid type.
+
+
+
+
+ NHibernate System.Int16 (short in C#) type
+
+
+
+
+ NHibernate System.Int32 (int in C#) type
+
+
+
+
+ NHibernate System.Int64 (long in C#) type
+
+
+
+
+ NHibernate System.SByte type
+
+
+
+
+ NHibernate System.UInt16 (ushort in C#) type
+
+
+
+
+ NHibernate System.UInt32 (uint in C#) type
+
+
+
+
+ NHibernate System.UInt64 (ulong in C#) type
+
+
+
+
+ NHibernate System.Single (float in C#) Type
+
+
+
+
+ NHibernate String type
+
+
+
+
+ NHibernate string clob type
+
+
+
+
+ NHibernate Time type
+
+
+
+
+ NHibernate Ticks type
+
+
+
+
+ NHibernate Ticks type
+
+
+
+
+ NHibernate Timestamp type
+
+
+
+
+ NHibernate TrueFalse type
+
+
+
+
+ NHibernate YesNo type
+
+
+
+
+ NHibernate class type
+
+
+
+
+ NHibernate class meta type for association of kind any.
+
+
+
+
+
+ NHibernate serializable type
+
+
+
+
+ NHibernate System.Object type
+
+
+
+
+ A NHibernate persistent enum type
+
+
+
+
+
+
+ A NHibernate serializable type
+
+
+
+
+
+
+ A NHibernate serializable type
+
+ a type mapping to a single column
+ the entity identifier type
+
+
+
+
+ A NHibernate persistent object (entity) type
+
+ a mapped entity class
+
+
+
+
+ A NHibernate persistent object (entity) type
+
+ a mapped entity class
+
+
+
+ A Hibernate persistent object (entity) type.
+ a mapped entity class
+
+
+
+ A NHibernate custom type
+
+ a class that implements UserType
+
+
+
+
+ Force initialization of a proxy or persistent collection.
+
+ a persistable object, proxy, persistent collection or null
+ if we can't initialize the proxy at this time, eg. the Session was closed
+
+
+
+ Is the proxy or persistent collection initialized?
+
+ a persistable object, proxy, persistent collection or null
+ true if the argument is already initialized, or is not a proxy or collection
+
+
+
+ Get the true, underlying class of a proxied persistent class. This operation
+ will initialize a proxy by side-effect.
+
+ a persistable object or proxy
+ the true class of the instance
+
+
+
+ Close an obtained from an
+ returned by NHibernate immediately, instead of waiting until the session is
+ closed or disconnected.
+
+
+
+
+ Close an returned by NHibernate immediately,
+ instead of waiting until the session is closed or disconnected.
+
+
+
+
+ Check if the property is initialized. If the named property does not exist
+ or is not persistent, this method always returns true.
+
+ The potential proxy
+ the name of a persistent attribute of the object
+
+ true if the named property of the object is not listed as uninitialized;
+ false if the object is an uninitialized proxy, or the named property is uninitialized
+
+
+
+
+ This exception is thrown when an operation would
+ break session-scoped identity. This occurs if the
+ user tries to associate two different instances of
+ the same class with a particular identifier,
+ in the scope of a single .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+ The identifier of the object that caused the exception.
+ The EntityName of the object attempted to be loaded.
+
+
+
+ Initializes a new instance of the class.
+
+ The identifier of the object that caused the exception.
+ The EntityName of the object attempted to be loaded.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Sets the serialization info for after
+ getting the info from the base Exception.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Thrown when the application calls IQuery.UniqueResult()
+ and the query returned more than one result. Unlike all other NHibernate
+ exceptions, this one is recoverable!
+
+
+
+
+ Initializes a new instance of the class.
+
+ The number of items in the result.
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Thrown when the user tries to pass a deleted object to the ISession.
+
+
+
+
+ Thrown when Hibernate could not resolve an object by id, especially when
+ loading an association.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The identifier of the object that caused the exception.
+ The of the object attempted to be loaded.
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+ The identifier of the object that caused the exception.
+ The of the object attempted to be loaded.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Thrown when ISession.Load() fails to select a row with
+ the given primary key (identifier value). This exception might not
+ be thrown when Load() is called, even if there was no
+ row on the database, because Load() returns a proxy if
+ possible. Applications should use ISession.Get() to test if
+ a row exists in the database.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The identifier of the object that was attempting to be loaded.
+ The that NHibernate was trying to find a row for in the database.
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Thrown when the user passes a persistent instance to a ISession method that expects a
+ transient instance
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ A problem occurred accessing a property of an instance of a persistent class by reflection
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+ The exception that is the cause of the current exception. If the innerException parameter
+ is not a null reference, the current exception is raised in a catch block that handles
+ the inner exception.
+
+ A indicating if this was a "setter" operation.
+ The that NHibernate was trying find the Property or Field in.
+ The mapped property name that was trying to be accessed.
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Sets the serialization info for after
+ getting the info from the base Exception.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Gets the that NHibernate was trying find the Property or Field in.
+
+
+
+
+ Gets a message that describes the current .
+
+
+ The error message that explains the reason for this exception and
+ information about the mapped property and its usage.
+
+
+
+
+ Indicates that an expected getter or setter method could not be found on a class
+
+
+
+
+ Initializes a new instance of the class,
+ used when a property get/set accessor is missing.
+
+ The that is missing the property
+ The name of the missing property
+ The type of the missing accessor
+ ("getter" or "setter")
+
+
+
+ Initializes a new instance of the class,
+ used when a field is missing.
+
+ The that is missing the field
+ The name of the missing property
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+ The that NHibernate was trying to access.
+ The name of the Property that was being get/set.
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Sets the serialization info for after
+ getting the info from the base Exception.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Represents a replication strategy
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Throw an exception when a row already exists
+
+
+
+
+
+
+
+
+
+ Ignore replicated entities when a row already exists
+
+
+
+
+
+
+
+
+
+ Overwrite existing rows when a row already exists
+
+
+
+
+
+
+
+
+
+ When a row already exists, choose the latest version
+
+
+
+
+
+
+
+
+
+ Thrown when a version number check failed, indicating that the
+ contained stale data (when using long transactions with
+ versioning).
+
+
+
+
+ Initializes a new instance of the class.
+
+ The EntityName that NHibernate was trying to update in the database.
+ The identifier of the object that is stale.
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Sets the serialization info for after
+ getting the info from the base Exception.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Gets the EntityName that NHibernate was trying to update in the database.
+
+
+
+
+ Gets the identifier of the object that is stale.
+
+
+
+
+ Gets a message that describes the current .
+
+ The error message that explains the reason for this exception.
+
+
+
+ Indicated that a transaction could not be begun, committed, or rolled back
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+ The exception that is the cause of the current exception. If the innerException parameter
+ is not a null reference, the current exception is raised in a catch block that handles
+ the inner exception.
+
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Throw when the user passes a transient instance to a ISession method that expects
+ a persistent instance
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Used when a user provided type does not match the expected one
+
+
+
+
+ Thrown when ISession.Load() selects a row with the given primary key (identifier value)
+ but the row's discriminator value specifies a different subclass from the one requested
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+ The identifier of the object that was being loaded.
+ The name of entity that NHibernate was told to load.
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Sets the serialization info for after
+ getting the info from the base Exception.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Gets the identifier of the object that was being loaded.
+
+
+
+
+ Gets the name of entity that NHibernate was told to load.
+
+
+
+
+ Gets a message that describes the current .
+
+ The error message that explains the reason for this exception.
+
+
+
diff --git a/lib/NHibernate20/net/4.0/log4net.dll b/lib/NHibernate20/net/4.0/log4net.dll
new file mode 100644
index 00000000..ffc57e11
Binary files /dev/null and b/lib/NHibernate20/net/4.0/log4net.dll differ
diff --git a/lib/NHibernate20/net/4.0/log4net.license.txt b/lib/NHibernate20/net/4.0/log4net.license.txt
new file mode 100644
index 00000000..29f81d81
--- /dev/null
+++ b/lib/NHibernate20/net/4.0/log4net.license.txt
@@ -0,0 +1,201 @@
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/lib/NHibernate20/net/4.0/log4net.xml b/lib/NHibernate20/net/4.0/log4net.xml
new file mode 100644
index 00000000..fab7af26
--- /dev/null
+++ b/lib/NHibernate20/net/4.0/log4net.xml
@@ -0,0 +1,28655 @@
+
+
+
+ log4net
+
+
+
+
+ Appender that logs to a database.
+
+
+
+ appends logging events to a table within a
+ database. The appender can be configured to specify the connection
+ string by setting the property.
+ The connection type (provider) can be specified by setting the
+ property. For more information on database connection strings for
+ your specific database see http://www.connectionstrings.com/.
+
+
+ Records are written into the database either using a prepared
+ statement or a stored procedure. The property
+ is set to (System.Data.CommandType.Text) to specify a prepared statement
+ or to (System.Data.CommandType.StoredProcedure) to specify a stored
+ procedure.
+
+
+ The prepared statement text or the name of the stored procedure
+ must be set in the property.
+
+
+ The prepared statement or stored procedure can take a number
+ of parameters. Parameters are added using the
+ method. This adds a single to the
+ ordered list of parameters. The
+ type may be subclassed if required to provide database specific
+ functionality. The specifies
+ the parameter name, database type, size, and how the value should
+ be generated using a .
+
+
+
+ An example of a SQL Server table that could be logged to:
+
+ CREATE TABLE [dbo].[Log] (
+ [ID] [int] IDENTITY (1, 1) NOT NULL ,
+ [Date] [datetime] NOT NULL ,
+ [Thread] [varchar] (255) NOT NULL ,
+ [Level] [varchar] (20) NOT NULL ,
+ [Logger] [varchar] (255) NOT NULL ,
+ [Message] [varchar] (4000) NOT NULL
+ ) ON [PRIMARY]
+
+
+
+ An example configuration to log to the above table:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Julian Biddle
+ Nicko Cadell
+ Gert Driesen
+ Lance Nehring
+
+
+
+ Abstract base class implementation of that
+ buffers events in a fixed size buffer.
+
+
+
+ This base class should be used by appenders that need to buffer a
+ number of events before logging them. For example the
+ buffers events and then submits the entire contents of the buffer to
+ the underlying database in one go.
+
+
+ Subclasses should override the
+ method to deliver the buffered events.
+
+ The BufferingAppenderSkeleton maintains a fixed size cyclic
+ buffer of events. The size of the buffer is set using
+ the property.
+
+ A is used to inspect
+ each event as it arrives in the appender. If the
+ triggers, then the current buffer is sent immediately
+ (see ). Otherwise the event
+ is stored in the buffer. For example, an evaluator can be used to
+ deliver the events immediately when an ERROR event arrives.
+
+
+ The buffering appender can be configured in a mode.
+ By default the appender is NOT lossy. When the buffer is full all
+ the buffered events are sent with .
+ If the property is set to true then the
+ buffer will not be sent when it is full, and new events arriving
+ in the appender will overwrite the oldest event in the buffer.
+ In lossy mode the buffer will only be sent when the
+ triggers. This can be useful behavior when you need to know about
+ ERROR events but not about events with a lower level, configure an
+ evaluator that will trigger when an ERROR event arrives, the whole
+ buffer will be sent which gives a history of events leading up to
+ the ERROR event.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Abstract base class implementation of .
+
+
+
+ This class provides the code for common functionality, such
+ as support for threshold filtering and support for general filters.
+
+
+ Appenders can also implement the interface. Therefore
+ they would require that the method
+ be called after the appenders properties have been configured.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Implement this interface for your own strategies for printing log statements.
+
+
+
+ Implementors should consider extending the
+ class which provides a default implementation of this interface.
+
+
+ Appenders can also implement the interface. Therefore
+ they would require that the method
+ be called after the appenders properties have been configured.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Closes the appender and releases resources.
+
+
+
+ Releases any resources allocated within the appender such as file handles,
+ network connections, etc.
+
+
+ It is a programming error to append to a closed appender.
+
+
+
+
+
+ Log the logging event in Appender specific way.
+
+ The event to log
+
+
+ This method is called to log a message into this appender.
+
+
+
+
+
+ Gets or sets the name of this appender.
+
+ The name of the appender.
+
+ The name uniquely identifies the appender.
+
+
+
+
+ Interface for appenders that support bulk logging.
+
+
+
+ This interface extends the interface to
+ support bulk logging of objects. Appenders
+ should only implement this interface if they can bulk log efficiently.
+
+
+ Nicko Cadell
+
+
+
+ Log the array of logging events in Appender specific way.
+
+ The events to log
+
+
+ This method is called to log an array of events into this appender.
+
+
+
+
+
+ Interface used to delay activate a configured object.
+
+
+
+ This allows an object to defer activation of its options until all
+ options have been set. This is required for components which have
+ related options that remain ambiguous until all are set.
+
+
+ If a component implements this interface then the method
+ must be called by the container after its all the configured properties have been set
+ and before the component can be used.
+
+
+ Nicko Cadell
+
+
+
+ Activate the options that were previously set with calls to properties.
+
+
+
+ This allows an object to defer activation of its options until all
+ options have been set. This is required for components which have
+ related options that remain ambiguous until all are set.
+
+
+ If a component implements this interface then this method must be called
+ after its properties have been set before the component can be used.
+
+
+
+
+
+ Initial buffer size
+
+
+
+
+ Maximum buffer size before it is recycled
+
+
+
+
+ Default constructor
+
+
+ Empty default constructor
+
+
+
+
+ Finalizes this appender by calling the implementation's
+ method.
+
+
+
+ If this appender has not been closed then the Finalize method
+ will call .
+
+
+
+
+
+ Initialize the appender based on the options set
+
+
+
+ This is part of the delayed object
+ activation scheme. The method must
+ be called on this object after the configuration properties have
+ been set. Until is called this
+ object is in an undefined state and must not be used.
+
+
+ If any of the configuration properties are modified then
+ must be called again.
+
+
+
+
+
+ Closes the appender and release resources.
+
+
+
+ Release any resources allocated within the appender such as file handles,
+ network connections, etc.
+
+
+ It is a programming error to append to a closed appender.
+
+
+ This method cannot be overridden by subclasses. This method
+ delegates the closing of the appender to the
+ method which must be overridden in the subclass.
+
+
+
+
+
+ Performs threshold checks and invokes filters before
+ delegating actual logging to the subclasses specific
+ method.
+
+ The event to log.
+
+
+ This method cannot be overridden by derived classes. A
+ derived class should override the method
+ which is called by this method.
+
+
+ The implementation of this method is as follows:
+
+
+
+
+
+ Checks that the severity of the
+ is greater than or equal to the of this
+ appender.
+
+
+
+ Checks that the chain accepts the
+ .
+
+
+
+
+ Calls and checks that
+ it returns true.
+
+
+
+
+ If all of the above steps succeed then the
+ will be passed to the abstract method.
+
+
+
+
+
+ Performs threshold checks and invokes filters before
+ delegating actual logging to the subclasses specific
+ method.
+
+ The array of events to log.
+
+
+ This method cannot be overridden by derived classes. A
+ derived class should override the method
+ which is called by this method.
+
+
+ The implementation of this method is as follows:
+
+
+
+
+
+ Checks that the severity of the
+ is greater than or equal to the of this
+ appender.
+
+
+
+ Checks that the chain accepts the
+ .
+
+
+
+
+ Calls and checks that
+ it returns true.
+
+
+
+
+ If all of the above steps succeed then the
+ will be passed to the method.
+
+
+
+
+
+ Test if the logging event should we output by this appender
+
+ the event to test
+ true if the event should be output, false if the event should be ignored
+
+
+ This method checks the logging event against the threshold level set
+ on this appender and also against the filters specified on this
+ appender.
+
+
+ The implementation of this method is as follows:
+
+
+
+
+
+ Checks that the severity of the
+ is greater than or equal to the of this
+ appender.
+
+
+
+ Checks that the chain accepts the
+ .
+
+
+
+
+
+
+
+
+ Adds a filter to the end of the filter chain.
+
+ the filter to add to this appender
+
+
+ The Filters are organized in a linked list.
+
+
+ Setting this property causes the new filter to be pushed onto the
+ back of the filter chain.
+
+
+
+
+
+ Clears the filter list for this appender.
+
+
+
+ Clears the filter list for this appender.
+
+
+
+
+
+ Checks if the message level is below this appender's threshold.
+
+ to test against.
+
+
+ If there is no threshold set, then the return value is always true.
+
+
+
+ true if the meets the
+ requirements of this appender.
+
+
+
+
+ Is called when the appender is closed. Derived classes should override
+ this method if resources need to be released.
+
+
+
+ Releases any resources allocated within the appender such as file handles,
+ network connections, etc.
+
+
+ It is a programming error to append to a closed appender.
+
+
+
+
+
+ Subclasses of should implement this method
+ to perform actual logging.
+
+ The event to append.
+
+
+ A subclass must implement this method to perform
+ logging of the .
+
+ This method will be called by
+ if all the conditions listed for that method are met.
+
+
+ To restrict the logging of events in the appender
+ override the method.
+
+
+
+
+
+ Append a bulk array of logging events.
+
+ the array of logging events
+
+
+ This base class implementation calls the
+ method for each element in the bulk array.
+
+
+ A sub class that can better process a bulk array of events should
+ override this method in addition to .
+
+
+
+
+
+ Called before as a precondition.
+
+
+
+ This method is called by
+ before the call to the abstract method.
+
+
+ This method can be overridden in a subclass to extend the checks
+ made before the event is passed to the method.
+
+
+ A subclass should ensure that they delegate this call to
+ this base class if it is overridden.
+
+
+ true if the call to should proceed.
+
+
+
+ Renders the to a string.
+
+ The event to render.
+ The event rendered as a string.
+
+
+ Helper method to render a to
+ a string. This appender must have a
+ set to render the to
+ a string.
+
+ If there is exception data in the logging event and
+ the layout does not process the exception, this method
+ will append the exception text to the rendered string.
+
+
+ Where possible use the alternative version of this method
+ .
+ That method streams the rendering onto an existing Writer
+ which can give better performance if the caller already has
+ a open and ready for writing.
+
+
+
+
+
+ Renders the to a string.
+
+ The event to render.
+ The TextWriter to write the formatted event to
+
+
+ Helper method to render a to
+ a string. This appender must have a
+ set to render the to
+ a string.
+
+ If there is exception data in the logging event and
+ the layout does not process the exception, this method
+ will append the exception text to the rendered string.
+
+
+ Use this method in preference to
+ where possible. If, however, the caller needs to render the event
+ to a string then does
+ provide an efficient mechanism for doing so.
+
+
+
+
+
+ The layout of this appender.
+
+
+ See for more information.
+
+
+
+
+ The name of this appender.
+
+
+ See for more information.
+
+
+
+
+ The level threshold of this appender.
+
+
+
+ There is no level threshold filtering by default.
+
+
+ See for more information.
+
+
+
+
+
+ It is assumed and enforced that errorHandler is never null.
+
+
+
+ It is assumed and enforced that errorHandler is never null.
+
+
+ See for more information.
+
+
+
+
+
+ The first filter in the filter chain.
+
+
+
+ Set to null initially.
+
+
+ See for more information.
+
+
+
+
+
+ The last filter in the filter chain.
+
+
+ See for more information.
+
+
+
+
+ Flag indicating if this appender is closed.
+
+
+ See for more information.
+
+
+
+
+ The guard prevents an appender from repeatedly calling its own DoAppend method
+
+
+
+
+ StringWriter used to render events
+
+
+
+
+ Gets or sets the threshold of this appender.
+
+
+ The threshold of the appender.
+
+
+
+ All log events with lower level than the threshold level are ignored
+ by the appender.
+
+
+ In configuration files this option is specified by setting the
+ value of the option to a level
+ string, such as "DEBUG", "INFO" and so on.
+
+
+
+
+
+ Gets or sets the for this appender.
+
+ The of the appender
+
+
+ The provides a default
+ implementation for the property.
+
+
+
+
+
+ The filter chain.
+
+ The head of the filter chain filter chain.
+
+
+ Returns the head Filter. The Filters are organized in a linked list
+ and so all Filters on this Appender are available through the result.
+
+
+
+
+
+ Gets or sets the for this appender.
+
+ The layout of the appender.
+
+
+ See for more information.
+
+
+
+
+
+
+ Gets or sets the name of this appender.
+
+ The name of the appender.
+
+
+ The name uniquely identifies the appender.
+
+
+
+
+
+ Tests if this appender requires a to be set.
+
+
+
+ In the rather exceptional case, where the appender
+ implementation admits a layout but can also work without it,
+ then the appender should return true.
+
+
+ This default implementation always returns true.
+
+
+
+ true if the appender requires a layout object, otherwise false.
+
+
+
+
+ The default buffer size.
+
+
+ The default size of the cyclic buffer used to store events.
+ This is set to 512 by default.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ Protected default constructor to allow subclassing.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ the events passed through this appender must be
+ fixed by the time that they arrive in the derived class' SendBuffer method.
+
+
+ Protected constructor to allow subclassing.
+
+
+ The should be set if the subclass
+ expects the events delivered to be fixed even if the
+ is set to zero, i.e. when no buffering occurs.
+
+
+
+
+
+ Flush the currently buffered events
+
+
+
+ Flushes any events that have been buffered.
+
+
+ If the appender is buffering in mode then the contents
+ of the buffer will NOT be flushed to the appender.
+
+
+
+
+
+ Flush the currently buffered events
+
+ set to true to flush the buffer of lossy events
+
+
+ Flushes events that have been buffered. If is
+ false then events will only be flushed if this buffer is non-lossy mode.
+
+
+ If the appender is buffering in mode then the contents
+ of the buffer will only be flushed if is true.
+ In this case the contents of the buffer will be tested against the
+ and if triggering will be output. All other buffered
+ events will be discarded.
+
+
+ If is true then the buffer will always
+ be emptied by calling this method.
+
+
+
+
+
+ Initialize the appender based on the options set
+
+
+
+ This is part of the delayed object
+ activation scheme. The method must
+ be called on this object after the configuration properties have
+ been set. Until is called this
+ object is in an undefined state and must not be used.
+
+
+ If any of the configuration properties are modified then
+ must be called again.
+
+
+
+
+
+ Close this appender instance.
+
+
+
+ Close this appender instance. If this appender is marked
+ as not then the remaining events in
+ the buffer must be sent when the appender is closed.
+
+
+
+
+
+ This method is called by the method.
+
+ the event to log
+
+
+ Stores the in the cyclic buffer.
+
+
+ The buffer will be sent (i.e. passed to the
+ method) if one of the following conditions is met:
+
+
+
+ The cyclic buffer is full and this appender is
+ marked as not lossy (see )
+
+
+ An is set and
+ it is triggered for the
+ specified.
+
+
+
+ Before the event is stored in the buffer it is fixed
+ (see ) to ensure that
+ any data referenced by the event will be valid when the buffer
+ is processed.
+
+
+
+
+
+ Sends the contents of the buffer.
+
+ The first logging event.
+ The buffer containing the events that need to be send.
+
+
+ The subclass must override .
+
+
+
+
+
+ Sends the events.
+
+ The events that need to be send.
+
+
+ The subclass must override this method to process the buffered events.
+
+
+
+
+
+ The size of the cyclic buffer used to hold the logging events.
+
+
+ Set to by default.
+
+
+
+
+ The cyclic buffer used to store the logging events.
+
+
+
+
+ The triggering event evaluator that causes the buffer to be sent immediately.
+
+
+ The object that is used to determine if an event causes the entire
+ buffer to be sent immediately. This field can be null, which
+ indicates that event triggering is not to be done. The evaluator
+ can be set using the property. If this appender
+ has the ( property) set to
+ true then an must be set.
+
+
+
+
+ Indicates if the appender should overwrite events in the cyclic buffer
+ when it becomes full, or if the buffer should be flushed when the
+ buffer is full.
+
+
+ If this field is set to true then an must
+ be set.
+
+
+
+
+ The triggering event evaluator filters discarded events.
+
+
+ The object that is used to determine if an event that is discarded should
+ really be discarded or if it should be sent to the appenders.
+ This field can be null, which indicates that all discarded events will
+ be discarded.
+
+
+
+
+ Value indicating which fields in the event should be fixed
+
+
+ By default all fields are fixed
+
+
+
+
+ The events delivered to the subclass must be fixed.
+
+
+
+
+ Gets or sets a value that indicates whether the appender is lossy.
+
+
+ true if the appender is lossy, otherwise false. The default is false.
+
+
+
+ This appender uses a buffer to store logging events before
+ delivering them. A triggering event causes the whole buffer
+ to be send to the remote sink. If the buffer overruns before
+ a triggering event then logging events could be lost. Set
+ to false to prevent logging events
+ from being lost.
+
+ If is set to true then an
+ must be specified.
+
+
+
+
+ Gets or sets the size of the cyclic buffer used to hold the
+ logging events.
+
+
+ The size of the cyclic buffer used to hold the logging events.
+
+
+
+ The option takes a positive integer
+ representing the maximum number of logging events to collect in
+ a cyclic buffer. When the is reached,
+ oldest events are deleted as new events are added to the
+ buffer. By default the size of the cyclic buffer is 512 events.
+
+
+ If the is set to a value less than
+ or equal to 1 then no buffering will occur. The logging event
+ will be delivered synchronously (depending on the
+ and properties). Otherwise the event will
+ be buffered.
+
+
+
+
+
+ Gets or sets the that causes the
+ buffer to be sent immediately.
+
+
+ The that causes the buffer to be
+ sent immediately.
+
+
+
+ The evaluator will be called for each event that is appended to this
+ appender. If the evaluator triggers then the current buffer will
+ immediately be sent (see ).
+
+ If is set to true then an
+ must be specified.
+
+
+
+
+ Gets or sets the value of the to use.
+
+
+ The value of the to use.
+
+
+
+ The evaluator will be called for each event that is discarded from this
+ appender. If the evaluator triggers then the current buffer will immediately
+ be sent (see ).
+
+
+
+
+
+ Gets or sets a value indicating if only part of the logging event data
+ should be fixed.
+
+
+ true if the appender should only fix part of the logging event
+ data, otherwise false. The default is false.
+
+
+
+ Setting this property to true will cause only part of the
+ event data to be fixed and serialized. This will improve performance.
+
+
+ See for more information.
+
+
+
+
+
+ Gets or sets a the fields that will be fixed in the event
+
+
+ The event fields that will be fixed before the event is buffered
+
+
+
+ The logging event needs to have certain thread specific values
+ captured before it can be buffered. See
+ for details.
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Public default constructor to initialize a new instance of this class.
+
+
+
+
+ Initialize the appender based on the options set
+
+
+
+ This is part of the delayed object
+ activation scheme. The method must
+ be called on this object after the configuration properties have
+ been set. Until is called this
+ object is in an undefined state and must not be used.
+
+
+ If any of the configuration properties are modified then
+ must be called again.
+
+
+
+
+
+ Override the parent method to close the database
+
+
+
+ Closes the database command and database connection.
+
+
+
+
+
+ Inserts the events into the database.
+
+ The events to insert into the database.
+
+
+ Insert all the events specified in the
+ array into the database.
+
+
+
+
+
+ Adds a parameter to the command.
+
+ The parameter to add to the command.
+
+
+ Adds a parameter to the ordered list of command parameters.
+
+
+
+
+
+ Writes the events to the database using the transaction specified.
+
+ The transaction that the events will be executed under.
+ The array of events to insert into the database.
+
+
+ The transaction argument can be null if the appender has been
+ configured not to use transactions. See
+ property for more information.
+
+
+
+
+
+ Formats the log message into database statement text.
+
+ The event being logged.
+
+ This method can be overridden by subclasses to provide
+ more control over the format of the database statement.
+
+
+ Text that can be passed to a .
+
+
+
+
+ Connects to the database.
+
+
+
+
+ Retrieves the class type of the ADO.NET provider.
+
+
+
+ Gets the Type of the ADO.NET provider to use to connect to the
+ database. This method resolves the type specified in the
+ property.
+
+
+ Subclasses can override this method to return a different type
+ if necessary.
+
+
+ The of the ADO.NET provider
+
+
+
+ Prepares the database command and initialize the parameters.
+
+
+
+
+ Flag to indicate if we are using a command object
+
+
+
+ Set to true when the appender is to use a prepared
+ statement or stored procedure to insert into the database.
+
+
+
+
+
+ The list of objects.
+
+
+
+ The list of objects.
+
+
+
+
+
+ The security context to use for privileged calls
+
+
+
+
+ The that will be used
+ to insert logging events into a database.
+
+
+
+
+ The database command.
+
+
+
+
+ Database connection string.
+
+
+
+
+ String type name of the type name.
+
+
+
+
+ The text of the command.
+
+
+
+
+ The command type.
+
+
+
+
+ Indicates whether to use transactions when writing to the database.
+
+
+
+
+ Indicates whether to use transactions when writing to the database.
+
+
+
+
+ Gets or sets the database connection string that is used to connect to
+ the database.
+
+
+ The database connection string used to connect to the database.
+
+
+
+ The connections string is specific to the connection type.
+ See for more information.
+
+
+ Connection string for MS Access via ODBC:
+ "DSN=MS Access Database;UID=admin;PWD=;SystemDB=C:\data\System.mdw;SafeTransactions = 0;FIL=MS Access;DriverID = 25;DBQ=C:\data\train33.mdb"
+
+ Another connection string for MS Access via ODBC:
+ "Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\Work\cvs_root\log4net-1.2\access.mdb;UID=;PWD=;"
+
+ Connection string for MS Access via OLE DB:
+ "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Work\cvs_root\log4net-1.2\access.mdb;User Id=;Password=;"
+
+
+
+
+ Gets or sets the type name of the connection
+ that should be created.
+
+
+ The type name of the connection.
+
+
+
+ The type name of the ADO.NET provider to use.
+
+
+ The default is to use the OLE DB provider.
+
+
+ Use the OLE DB Provider. This is the default value.
+ System.Data.OleDb.OleDbConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ Use the MS SQL Server Provider.
+ System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ Use the ODBC Provider.
+ Microsoft.Data.Odbc.OdbcConnection,Microsoft.Data.Odbc,version=1.0.3300.0,publicKeyToken=b77a5c561934e089,culture=neutral
+ This is an optional package that you can download from
+ http://msdn.microsoft.com/downloads
+ search for ODBC .NET Data Provider.
+
+ Use the Oracle Provider.
+ System.Data.OracleClient.OracleConnection, System.Data.OracleClient, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+ This is an optional package that you can download from
+ http://msdn.microsoft.com/downloads
+ search for .NET Managed Provider for Oracle.
+
+
+
+
+ Gets or sets the command text that is used to insert logging events
+ into the database.
+
+
+ The command text used to insert logging events into the database.
+
+
+
+ Either the text of the prepared statement or the
+ name of the stored procedure to execute to write into
+ the database.
+
+
+ The property determines if
+ this text is a prepared statement or a stored procedure.
+
+
+
+
+
+ Gets or sets the command type to execute.
+
+
+ The command type to execute.
+
+
+
+ This value may be either (System.Data.CommandType.Text) to specify
+ that the is a prepared statement to execute,
+ or (System.Data.CommandType.StoredProcedure) to specify that the
+ property is the name of a stored procedure
+ to execute.
+
+
+ The default value is (System.Data.CommandType.Text).
+
+
+
+
+
+ Should transactions be used to insert logging events in the database.
+
+
+ true if transactions should be used to insert logging events in
+ the database, otherwise false. The default value is true.
+
+
+
+ Gets or sets a value that indicates whether transactions should be used
+ to insert logging events in the database.
+
+
+ When set a single transaction will be used to insert the buffered events
+ into the database. Otherwise each event will be inserted without using
+ an explicit transaction.
+
+
+
+
+
+ Gets or sets the used to call the NetSend method.
+
+
+ The used to call the NetSend method.
+
+
+
+ Unless a specified here for this appender
+ the is queried for the
+ security context to use. The default behavior is to use the security context
+ of the current thread.
+
+
+
+
+
+ Should this appender try to reconnect to the database on error.
+
+
+ true if the appender should try to reconnect to the database after an
+ error has occurred, otherwise false. The default value is false,
+ i.e. not to try to reconnect.
+
+
+
+ The default behaviour is for the appender not to try to reconnect to the
+ database if an error occurs. Subsequent logging events are discarded.
+
+
+ To force the appender to attempt to reconnect to the database set this
+ property to true.
+
+
+ When the appender attempts to connect to the database there may be a
+ delay of up to the connection timeout specified in the connection string.
+ This delay will block the calling application's thread.
+ Until the connection can be reestablished this potential delay may occur multiple times.
+
+
+
+
+
+ Gets or sets the underlying .
+
+
+ The underlying .
+
+
+ creates a to insert
+ logging events into a database. Classes deriving from
+ can use this property to get or set this . Use the
+ underlying returned from if
+ you require access beyond that which provides.
+
+
+
+
+ Parameter type used by the .
+
+
+
+ This class provides the basic database parameter properties
+ as defined by the interface.
+
+ This type can be subclassed to provide database specific
+ functionality. The two methods that are called externally are
+ and .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Default constructor for the AdoNetAppenderParameter class.
+
+
+
+
+ Prepare the specified database command object.
+
+ The command to prepare.
+
+
+ Prepares the database command object by adding
+ this parameter to its collection of parameters.
+
+
+
+
+
+ Renders the logging event and set the parameter value in the command.
+
+ The command containing the parameter.
+ The event to be rendered.
+
+
+ Renders the logging event using this parameters layout
+ object. Sets the value of the parameter on the command object.
+
+
+
+
+
+ The name of this parameter.
+
+
+
+
+ The database type for this parameter.
+
+
+
+
+ Flag to infer type rather than use the DbType
+
+
+
+
+ The precision for this parameter.
+
+
+
+
+ The scale for this parameter.
+
+
+
+
+ The size for this parameter.
+
+
+
+
+ The to use to render the
+ logging event into an object for this parameter.
+
+
+
+
+ Gets or sets the name of this parameter.
+
+
+ The name of this parameter.
+
+
+
+ The name of this parameter. The parameter name
+ must match up to a named parameter to the SQL stored procedure
+ or prepared statement.
+
+
+
+
+
+ Gets or sets the database type for this parameter.
+
+
+ The database type for this parameter.
+
+
+
+ The database type for this parameter. This property should
+ be set to the database type from the
+ enumeration. See .
+
+
+ This property is optional. If not specified the ADO.NET provider
+ will attempt to infer the type from the value.
+
+
+
+
+
+
+ Gets or sets the precision for this parameter.
+
+
+ The precision for this parameter.
+
+
+
+ The maximum number of digits used to represent the Value.
+
+
+ This property is optional. If not specified the ADO.NET provider
+ will attempt to infer the precision from the value.
+
+
+
+
+
+
+ Gets or sets the scale for this parameter.
+
+
+ The scale for this parameter.
+
+
+
+ The number of decimal places to which Value is resolved.
+
+
+ This property is optional. If not specified the ADO.NET provider
+ will attempt to infer the scale from the value.
+
+
+
+
+
+
+ Gets or sets the size for this parameter.
+
+
+ The size for this parameter.
+
+
+
+ The maximum size, in bytes, of the data within the column.
+
+
+ This property is optional. If not specified the ADO.NET provider
+ will attempt to infer the size from the value.
+
+
+
+
+
+
+ Gets or sets the to use to
+ render the logging event into an object for this
+ parameter.
+
+
+ The used to render the
+ logging event into an object for this parameter.
+
+
+
+ The that renders the value for this
+ parameter.
+
+
+ The can be used to adapt
+ any into a
+ for use in the property.
+
+
+
+
+
+ Appends logging events to the terminal using ANSI color escape sequences.
+
+
+
+ AnsiColorTerminalAppender appends log events to the standard output stream
+ or the error output stream using a layout specified by the
+ user. It also allows the color of a specific level of message to be set.
+
+
+ This appender expects the terminal to understand the VT100 control set
+ in order to interpret the color codes. If the terminal or console does not
+ understand the control codes the behavior is not defined.
+
+
+ By default, all output is written to the console's standard output stream.
+ The property can be set to direct the output to the
+ error stream.
+
+
+ NOTE: This appender writes each message to the System.Console.Out or
+ System.Console.Error that is set at the time the event is appended.
+ Therefore it is possible to programmatically redirect the output of this appender
+ (for example NUnit does this to capture program output). While this is the desired
+ behavior of this appender it may have security implications in your application.
+
+
+ When configuring the ANSI colored terminal appender, a mapping should be
+ specified to map a logging level to a color. For example:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The Level is the standard log4net logging level and ForeColor and BackColor can be any
+ of the following values:
+
+ Blue
+ Green
+ Red
+ White
+ Yellow
+ Purple
+ Cyan
+
+ These color values cannot be combined together to make new colors.
+
+
+ The attributes can be any combination of the following:
+
+ Brightforeground is brighter
+ Dimforeground is dimmer
+ Underscoremessage is underlined
+ Blinkforeground is blinking (does not work on all terminals)
+ Reverseforeground and background are reversed
+ Hiddenoutput is hidden
+ Strikethroughmessage has a line through it
+
+ While any of these attributes may be combined together not all combinations
+ work well together, for example setting both Bright and Dim attributes makes
+ no sense.
+
+
+ Patrick Wagstrom
+ Nicko Cadell
+
+
+
+ The to use when writing to the Console
+ standard output stream.
+
+
+
+ The to use when writing to the Console
+ standard output stream.
+
+
+
+
+
+ The to use when writing to the Console
+ standard error output stream.
+
+
+
+ The to use when writing to the Console
+ standard error output stream.
+
+
+
+
+
+ Ansi code to reset terminal
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ The instance of the class is set up to write
+ to the standard output stream.
+
+
+
+
+ Add a mapping of level to color
+
+ The mapping to add
+
+
+ Add a mapping to this appender.
+ Each mapping defines the foreground and background colours
+ for a level.
+
+
+
+
+
+ This method is called by the method.
+
+ The event to log.
+
+
+ Writes the event to the console.
+
+
+ The format of the output will depend on the appender's layout.
+
+
+
+
+
+ Initialize the options for this appender
+
+
+
+ Initialize the level to color mappings set on this appender.
+
+
+
+
+
+ Flag to write output to the error stream rather than the standard output stream
+
+
+
+
+ Mapping from level object to color value
+
+
+
+
+ Target is the value of the console output stream.
+
+
+ Target is the value of the console output stream.
+ This is either "Console.Out" or "Console.Error".
+
+
+
+ Target is the value of the console output stream.
+ This is either "Console.Out" or "Console.Error".
+
+
+
+
+
+ This appender requires a to be set.
+
+ true
+
+
+ This appender requires a to be set.
+
+
+
+
+
+ The enum of possible display attributes
+
+
+
+ The following flags can be combined together to
+ form the ANSI color attributes.
+
+
+
+
+
+
+ text is bright
+
+
+
+
+ text is dim
+
+
+
+
+ text is underlined
+
+
+
+
+ text is blinking
+
+
+ Not all terminals support this attribute
+
+
+
+
+ text and background colors are reversed
+
+
+
+
+ text is hidden
+
+
+
+
+ text is displayed with a strikethrough
+
+
+
+
+ The enum of possible foreground or background color values for
+ use with the color mapping method
+
+
+
+ The output can be in one for the following ANSI colors.
+
+
+
+
+
+
+ color is black
+
+
+
+
+ color is red
+
+
+
+
+ color is green
+
+
+
+
+ color is yellow
+
+
+
+
+ color is blue
+
+
+
+
+ color is magenta
+
+
+
+
+ color is cyan
+
+
+
+
+ color is white
+
+
+
+
+ A class to act as a mapping between the level that a logging call is made at and
+ the color it should be displayed as.
+
+
+
+ Defines the mapping between a level and the color it should be displayed in.
+
+
+
+
+
+ An entry in the
+
+
+
+ This is an abstract base class for types that are stored in the
+ object.
+
+
+ Nicko Cadell
+
+
+
+ Default protected constructor
+
+
+
+ Default protected constructor
+
+
+
+
+
+ Initialize any options defined on this entry
+
+
+
+ Should be overridden by any classes that need to initialise based on their options
+
+
+
+
+
+ The level that is the key for this mapping
+
+
+ The that is the key for this mapping
+
+
+
+ Get or set the that is the key for this
+ mapping subclass.
+
+
+
+
+
+ Initialize the options for the object
+
+
+
+ Combine the and together
+ and append the attributes.
+
+
+
+
+
+ The mapped foreground color for the specified level
+
+
+
+ Required property.
+ The mapped foreground color for the specified level
+
+
+
+
+
+ The mapped background color for the specified level
+
+
+
+ Required property.
+ The mapped background color for the specified level
+
+
+
+
+
+ The color attributes for the specified level
+
+
+
+ Required property.
+ The color attributes for the specified level
+
+
+
+
+
+ The combined , and
+ suitable for setting the ansi terminal color.
+
+
+
+
+ A strongly-typed collection of objects.
+
+ Nicko Cadell
+
+
+
+ Creates a read-only wrapper for a AppenderCollection instance.
+
+ list to create a readonly wrapper arround
+
+ An AppenderCollection wrapper that is read-only.
+
+
+
+
+ An empty readonly static AppenderCollection
+
+
+
+
+ Initializes a new instance of the AppenderCollection class
+ that is empty and has the default initial capacity.
+
+
+
+
+ Initializes a new instance of the AppenderCollection class
+ that has the specified initial capacity.
+
+
+ The number of elements that the new AppenderCollection is initially capable of storing.
+
+
+
+
+ Initializes a new instance of the AppenderCollection class
+ that contains elements copied from the specified AppenderCollection.
+
+ The AppenderCollection whose elements are copied to the new collection.
+
+
+
+ Initializes a new instance of the AppenderCollection class
+ that contains elements copied from the specified array.
+
+ The array whose elements are copied to the new list.
+
+
+
+ Initializes a new instance of the AppenderCollection class
+ that contains elements copied from the specified collection.
+
+ The collection whose elements are copied to the new list.
+
+
+
+ Allow subclasses to avoid our default constructors
+
+
+
+
+
+
+ Copies the entire AppenderCollection to a one-dimensional
+ array.
+
+ The one-dimensional array to copy to.
+
+
+
+ Copies the entire AppenderCollection to a one-dimensional
+ array, starting at the specified index of the target array.
+
+ The one-dimensional array to copy to.
+ The zero-based index in at which copying begins.
+
+
+
+ Adds a to the end of the AppenderCollection.
+
+ The to be added to the end of the AppenderCollection.
+ The index at which the value has been added.
+
+
+
+ Removes all elements from the AppenderCollection.
+
+
+
+
+ Creates a shallow copy of the .
+
+ A new with a shallow copy of the collection data.
+
+
+
+ Determines whether a given is in the AppenderCollection.
+
+ The to check for.
+ true if is found in the AppenderCollection; otherwise, false.
+
+
+
+ Returns the zero-based index of the first occurrence of a
+ in the AppenderCollection.
+
+ The to locate in the AppenderCollection.
+
+ The zero-based index of the first occurrence of
+ in the entire AppenderCollection, if found; otherwise, -1.
+
+
+
+
+ Inserts an element into the AppenderCollection at the specified index.
+
+ The zero-based index at which should be inserted.
+ The to insert.
+
+ is less than zero
+ -or-
+ is equal to or greater than .
+
+
+
+
+ Removes the first occurrence of a specific from the AppenderCollection.
+
+ The to remove from the AppenderCollection.
+
+ The specified was not found in the AppenderCollection.
+
+
+
+
+ Removes the element at the specified index of the AppenderCollection.
+
+ The zero-based index of the element to remove.
+
+ is less than zero
+ -or-
+ is equal to or greater than .
+
+
+
+
+ Returns an enumerator that can iterate through the AppenderCollection.
+
+ An for the entire AppenderCollection.
+
+
+
+ Adds the elements of another AppenderCollection to the current AppenderCollection.
+
+ The AppenderCollection whose elements should be added to the end of the current AppenderCollection.
+ The new of the AppenderCollection.
+
+
+
+ Adds the elements of a array to the current AppenderCollection.
+
+ The array whose elements should be added to the end of the AppenderCollection.
+ The new of the AppenderCollection.
+
+
+
+ Adds the elements of a collection to the current AppenderCollection.
+
+ The collection whose elements should be added to the end of the AppenderCollection.
+ The new of the AppenderCollection.
+
+
+
+ Sets the capacity to the actual number of elements.
+
+
+
+
+ Return the collection elements as an array
+
+ the array
+
+
+
+ is less than zero
+ -or-
+ is equal to or greater than .
+
+
+
+
+ is less than zero
+ -or-
+ is equal to or greater than .
+
+
+
+
+ Gets the number of elements actually contained in the AppenderCollection.
+
+
+
+
+ Gets a value indicating whether access to the collection is synchronized (thread-safe).
+
+ true if access to the ICollection is synchronized (thread-safe); otherwise, false.
+
+
+
+ Gets an object that can be used to synchronize access to the collection.
+
+
+
+
+ Gets or sets the at the specified index.
+
+ The zero-based index of the element to get or set.
+
+ is less than zero
+ -or-
+ is equal to or greater than .
+
+
+
+
+ Gets a value indicating whether the collection has a fixed size.
+
+ true if the collection has a fixed size; otherwise, false. The default is false
+
+
+
+ Gets a value indicating whether the IList is read-only.
+
+ true if the collection is read-only; otherwise, false. The default is false
+
+
+
+ Gets or sets the number of elements the AppenderCollection can contain.
+
+
+
+
+ Supports type-safe iteration over a .
+
+
+
+
+
+ Advances the enumerator to the next element in the collection.
+
+
+ true if the enumerator was successfully advanced to the next element;
+ false if the enumerator has passed the end of the collection.
+
+
+ The collection was modified after the enumerator was created.
+
+
+
+
+ Sets the enumerator to its initial position, before the first element in the collection.
+
+
+
+
+ Gets the current element in the collection.
+
+
+
+
+ Type visible only to our subclasses
+ Used to access protected constructor
+
+
+
+
+
+ A value
+
+
+
+
+ Supports simple iteration over a .
+
+
+
+
+
+ Initializes a new instance of the Enumerator class.
+
+
+
+
+
+ Advances the enumerator to the next element in the collection.
+
+
+ true if the enumerator was successfully advanced to the next element;
+ false if the enumerator has passed the end of the collection.
+
+
+ The collection was modified after the enumerator was created.
+
+
+
+
+ Sets the enumerator to its initial position, before the first element in the collection.
+
+
+
+
+ Gets the current element in the collection.
+
+
+
+
+
+
+
+
+ Appends log events to the ASP.NET system.
+
+
+
+
+ Diagnostic information and tracing messages that you specify are appended to the output
+ of the page that is sent to the requesting browser. Optionally, you can view this information
+ from a separate trace viewer (Trace.axd) that displays trace information for every page in a
+ given application.
+
+
+ Trace statements are processed and displayed only when tracing is enabled. You can control
+ whether tracing is displayed to a page, to the trace viewer, or both.
+
+
+ The logging event is passed to the or
+ method depending on the level of the logging event.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ Default constructor.
+
+
+
+
+
+ Write the logging event to the ASP.NET trace
+
+ the event to log
+
+
+ Write the logging event to the ASP.NET trace
+ HttpContext.Current.Trace
+ ().
+
+
+
+
+
+ This appender requires a to be set.
+
+ true
+
+
+ This appender requires a to be set.
+
+
+
+
+
+ Buffers events and then forwards them to attached appenders.
+
+
+
+ The events are buffered in this appender until conditions are
+ met to allow the appender to deliver the events to the attached
+ appenders. See for the
+ conditions that cause the buffer to be sent.
+
+ The forwarding appender can be used to specify different
+ thresholds and filters for the same appender at different locations
+ within the hierarchy.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Interface for attaching appenders to objects.
+
+
+
+ Interface for attaching, removing and retrieving appenders.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Attaches an appender.
+
+ The appender to add.
+
+
+ Add the specified appender. The implementation may
+ choose to allow or deny duplicate appenders.
+
+
+
+
+
+ Gets an attached appender with the specified name.
+
+ The name of the appender to get.
+
+ The appender with the name specified, or null if no appender with the
+ specified name is found.
+
+
+
+ Returns an attached appender with the specified.
+ If no appender with the specified name is found null will be
+ returned.
+
+
+
+
+
+ Removes all attached appenders.
+
+
+
+ Removes and closes all attached appenders
+
+
+
+
+
+ Removes the specified appender from the list of attached appenders.
+
+ The appender to remove.
+ The appender removed from the list
+
+
+ The appender removed is not closed.
+ If you are discarding the appender you must call
+ on the appender removed.
+
+
+
+
+
+ Removes the appender with the specified name from the list of appenders.
+
+ The name of the appender to remove.
+ The appender removed from the list
+
+
+ The appender removed is not closed.
+ If you are discarding the appender you must call
+ on the appender removed.
+
+
+
+
+
+ Gets all attached appenders.
+
+
+ A collection of attached appenders.
+
+
+
+ Gets a collection of attached appenders.
+ If there are no attached appenders the
+ implementation should return an empty
+ collection rather than null.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ Default constructor.
+
+
+
+
+
+ Closes the appender and releases resources.
+
+
+
+ Releases any resources allocated within the appender such as file handles,
+ network connections, etc.
+
+
+ It is a programming error to append to a closed appender.
+
+
+
+
+
+ Send the events.
+
+ The events that need to be send.
+
+
+ Forwards the events to the attached appenders.
+
+
+
+
+
+ Adds an to the list of appenders of this
+ instance.
+
+ The to add to this appender.
+
+
+ If the specified is already in the list of
+ appenders, then it won't be added again.
+
+
+
+
+
+ Looks for the appender with the specified name.
+
+ The name of the appender to lookup.
+
+ The appender with the specified name, or null.
+
+
+
+ Get the named appender attached to this buffering appender.
+
+
+
+
+
+ Removes all previously added appenders from this appender.
+
+
+
+ This is useful when re-reading configuration information.
+
+
+
+
+
+ Removes the specified appender from the list of appenders.
+
+ The appender to remove.
+ The appender removed from the list
+
+ The appender removed is not closed.
+ If you are discarding the appender you must call
+ on the appender removed.
+
+
+
+
+ Removes the appender with the specified name from the list of appenders.
+
+ The name of the appender to remove.
+ The appender removed from the list
+
+ The appender removed is not closed.
+ If you are discarding the appender you must call
+ on the appender removed.
+
+
+
+
+ Implementation of the interface
+
+
+
+
+ Gets the appenders contained in this appender as an
+ .
+
+
+ If no appenders can be found, then an
+ is returned.
+
+
+ A collection of the appenders in this appender.
+
+
+
+
+ Appends logging events to the console.
+
+
+
+ ColoredConsoleAppender appends log events to the standard output stream
+ or the error output stream using a layout specified by the
+ user. It also allows the color of a specific type of message to be set.
+
+
+ By default, all output is written to the console's standard output stream.
+ The property can be set to direct the output to the
+ error stream.
+
+
+ NOTE: This appender writes directly to the application's attached console
+ not to the System.Console.Out or System.Console.ErrorTextWriter.
+ The System.Console.Out and System.Console.Error streams can be
+ programmatically redirected (for example NUnit does this to capture program output).
+ This appender will ignore these redirections because it needs to use Win32
+ API calls to colorize the output. To respect these redirections the
+ must be used.
+
+
+ When configuring the colored console appender, mapping should be
+ specified to map a logging level to a color. For example:
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The Level is the standard log4net logging level and ForeColor and BackColor can be any
+ combination of the following values:
+
+ Blue
+ Green
+ Red
+ White
+ Yellow
+ Purple
+ Cyan
+ HighIntensity
+
+
+
+ Rick Hobbs
+ Nicko Cadell
+
+
+
+ The to use when writing to the Console
+ standard output stream.
+
+
+
+ The to use when writing to the Console
+ standard output stream.
+
+
+
+
+
+ The to use when writing to the Console
+ standard error output stream.
+
+
+
+ The to use when writing to the Console
+ standard error output stream.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ The instance of the class is set up to write
+ to the standard output stream.
+
+
+
+
+ Initializes a new instance of the class
+ with the specified layout.
+
+ the layout to use for this appender
+
+ The instance of the class is set up to write
+ to the standard output stream.
+
+
+
+
+ Initializes a new instance of the class
+ with the specified layout.
+
+ the layout to use for this appender
+ flag set to true to write to the console error stream
+
+ When is set to true, output is written to
+ the standard error output stream. Otherwise, output is written to the standard
+ output stream.
+
+
+
+
+ Add a mapping of level to color - done by the config file
+
+ The mapping to add
+
+
+ Add a mapping to this appender.
+ Each mapping defines the foreground and background colors
+ for a level.
+
+
+
+
+
+ This method is called by the method.
+
+ The event to log.
+
+
+ Writes the event to the console.
+
+
+ The format of the output will depend on the appender's layout.
+
+
+
+
+
+ Initialize the options for this appender
+
+
+
+ Initialize the level to color mappings set on this appender.
+
+
+
+
+
+ Flag to write output to the error stream rather than the standard output stream
+
+
+
+
+ Mapping from level object to color value
+
+
+
+
+ The console output stream writer to write to
+
+
+
+ This writer is not thread safe.
+
+
+
+
+
+ Target is the value of the console output stream.
+ This is either "Console.Out" or "Console.Error".
+
+
+ Target is the value of the console output stream.
+ This is either "Console.Out" or "Console.Error".
+
+
+
+ Target is the value of the console output stream.
+ This is either "Console.Out" or "Console.Error".
+
+
+
+
+
+ This appender requires a to be set.
+
+ true
+
+
+ This appender requires a to be set.
+
+
+
+
+
+ The enum of possible color values for use with the color mapping method
+
+
+
+ The following flags can be combined together to
+ form the colors.
+
+
+
+
+
+
+ color is blue
+
+
+
+
+ color is green
+
+
+
+
+ color is red
+
+
+
+
+ color is white
+
+
+
+
+ color is yellow
+
+
+
+
+ color is purple
+
+
+
+
+ color is cyan
+
+
+
+
+ color is intensified
+
+
+
+
+ A class to act as a mapping between the level that a logging call is made at and
+ the color it should be displayed as.
+
+
+
+ Defines the mapping between a level and the color it should be displayed in.
+
+
+
+
+
+ Initialize the options for the object
+
+
+
+ Combine the and together.
+
+
+
+
+
+ The mapped foreground color for the specified level
+
+
+
+ Required property.
+ The mapped foreground color for the specified level.
+
+
+
+
+
+ The mapped background color for the specified level
+
+
+
+ Required property.
+ The mapped background color for the specified level.
+
+
+
+
+
+ The combined and suitable for
+ setting the console color.
+
+
+
+
+ Appends logging events to the console.
+
+
+
+ ConsoleAppender appends log events to the standard output stream
+ or the error output stream using a layout specified by the
+ user.
+
+
+ By default, all output is written to the console's standard output stream.
+ The property can be set to direct the output to the
+ error stream.
+
+
+ NOTE: This appender writes each message to the System.Console.Out or
+ System.Console.Error that is set at the time the event is appended.
+ Therefore it is possible to programmatically redirect the output of this appender
+ (for example NUnit does this to capture program output). While this is the desired
+ behavior of this appender it may have security implications in your application.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ The to use when writing to the Console
+ standard output stream.
+
+
+
+ The to use when writing to the Console
+ standard output stream.
+
+
+
+
+
+ The to use when writing to the Console
+ standard error output stream.
+
+
+
+ The to use when writing to the Console
+ standard error output stream.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ The instance of the class is set up to write
+ to the standard output stream.
+
+
+
+
+ Initializes a new instance of the class
+ with the specified layout.
+
+ the layout to use for this appender
+
+ The instance of the class is set up to write
+ to the standard output stream.
+
+
+
+
+ Initializes a new instance of the class
+ with the specified layout.
+
+ the layout to use for this appender
+ flag set to true to write to the console error stream
+
+ When is set to true, output is written to
+ the standard error output stream. Otherwise, output is written to the standard
+ output stream.
+
+
+
+
+ This method is called by the method.
+
+ The event to log.
+
+
+ Writes the event to the console.
+
+
+ The format of the output will depend on the appender's layout.
+
+
+
+
+
+ Target is the value of the console output stream.
+ This is either "Console.Out" or "Console.Error".
+
+
+ Target is the value of the console output stream.
+ This is either "Console.Out" or "Console.Error".
+
+
+
+ Target is the value of the console output stream.
+ This is either "Console.Out" or "Console.Error".
+
+
+
+
+
+ This appender requires a to be set.
+
+ true
+
+
+ This appender requires a to be set.
+
+
+
+
+
+ Appends log events to the system.
+
+
+
+ The application configuration file can be used to control what listeners
+ are actually used. See the MSDN documentation for the
+ class for details on configuring the
+ debug system.
+
+
+ Events are written using the
+ method. The event's logger name is passed as the value for the category name to the Write method.
+
+
+ Nicko Cadell
+
+
+
+ Initializes a new instance of the .
+
+
+
+ Default constructor.
+
+
+
+
+
+ Initializes a new instance of the
+ with a specified layout.
+
+ The layout to use with this appender.
+
+
+ Obsolete constructor.
+
+
+
+
+
+ Writes the logging event to the system.
+
+ The event to log.
+
+
+ Writes the logging event to the system.
+ If is true then the
+ is called.
+
+
+
+
+
+ Immediate flush means that the underlying writer or output stream
+ will be flushed at the end of each append operation.
+
+
+
+ Immediate flush is slower but ensures that each append request is
+ actually written. If is set to
+ false, then there is a good chance that the last few
+ logs events are not actually written to persistent media if and
+ when the application crashes.
+
+
+ The default value is true.
+
+
+
+
+ Gets or sets a value that indicates whether the appender will
+ flush at the end of each write.
+
+
+ The default behavior is to flush at the end of each
+ write. If the option is set tofalse, then the underlying
+ stream can defer writing to physical medium to a later time.
+
+
+ Avoiding the flush operation at the end of each append results
+ in a performance gain of 10 to 20 percent. However, there is safety
+ trade-off involved in skipping flushing. Indeed, when flushing is
+ skipped, then it is likely that the last few log events will not
+ be recorded on disk when the application exits. This is a high
+ price to pay even for a 20% performance gain.
+
+
+
+
+
+ This appender requires a to be set.
+
+ true
+
+
+ This appender requires a to be set.
+
+
+
+
+
+ Writes events to the system event log.
+
+
+
+ The EventID of the event log entry can be
+ set using the EventLogEventID property ()
+ on the .
+
+
+ There is a limit of 32K characters for an event log message
+
+
+ When configuring the EventLogAppender a mapping can be
+ specified to map a logging level to an event log entry type. For example:
+
+
+ <mapping>
+ <level value="ERROR" />
+ <eventLogEntryType value="Error" />
+ </mapping>
+ <mapping>
+ <level value="DEBUG" />
+ <eventLogEntryType value="Information" />
+ </mapping>
+
+
+ The Level is the standard log4net logging level and eventLogEntryType can be any value
+ from the enum, i.e.:
+
+ Erroran error event
+ Warninga warning event
+ Informationan informational event
+
+
+
+ Aspi Havewala
+ Douglas de la Torre
+ Nicko Cadell
+ Gert Driesen
+ Thomas Voss
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ Default constructor.
+
+
+
+
+
+ Initializes a new instance of the class
+ with the specified .
+
+ The to use with this appender.
+
+
+ Obsolete constructor.
+
+
+
+
+
+ Add a mapping of level to - done by the config file
+
+ The mapping to add
+
+
+ Add a mapping to this appender.
+ Each mapping defines the event log entry type for a level.
+
+
+
+
+
+ Initialize the appender based on the options set
+
+
+
+ This is part of the delayed object
+ activation scheme. The method must
+ be called on this object after the configuration properties have
+ been set. Until is called this
+ object is in an undefined state and must not be used.
+
+
+ If any of the configuration properties are modified then
+ must be called again.
+
+
+
+
+
+ Create an event log source
+
+
+ Uses different API calls under NET_2_0
+
+
+
+
+ This method is called by the
+ method.
+
+ the event to log
+
+ Writes the event to the system event log using the
+ .
+
+ If the event has an EventID property (see )
+ set then this integer will be used as the event log event id.
+
+
+ There is a limit of 32K characters for an event log message
+
+
+
+
+
+ Get the equivalent for a
+
+ the Level to convert to an EventLogEntryType
+ The equivalent for a
+
+ Because there are fewer applicable
+ values to use in logging levels than there are in the
+ this is a one way mapping. There is
+ a loss of information during the conversion.
+
+
+
+
+ The log name is the section in the event logs where the messages
+ are stored.
+
+
+
+
+ Name of the application to use when logging. This appears in the
+ application column of the event log named by .
+
+
+
+
+ The name of the machine which holds the event log. This is
+ currently only allowed to be '.' i.e. the current machine.
+
+
+
+
+ Mapping from level object to EventLogEntryType
+
+
+
+
+ The security context to use for privileged calls
+
+
+
+
+ The name of the log where messages will be stored.
+
+
+ The string name of the log where messages will be stored.
+
+
+ This is the name of the log as it appears in the Event Viewer
+ tree. The default value is to log into the Application
+ log, this is where most applications write their events. However
+ if you need a separate log for your application (or applications)
+ then you should set the appropriately.
+ This should not be used to distinguish your event log messages
+ from those of other applications, the
+ property should be used to distinguish events. This property should be
+ used to group together events into a single log.
+
+
+
+
+
+ Property used to set the Application name. This appears in the
+ event logs when logging.
+
+
+ The string used to distinguish events from different sources.
+
+
+ Sets the event log source property.
+
+
+
+
+ This property is used to return the name of the computer to use
+ when accessing the event logs. Currently, this is the current
+ computer, denoted by a dot "."
+
+
+ The string name of the machine holding the event log that
+ will be logged into.
+
+
+ This property cannot be changed. It is currently set to '.'
+ i.e. the local machine. This may be changed in future.
+
+
+
+
+ Gets or sets the used to write to the EventLog.
+
+
+ The used to write to the EventLog.
+
+
+
+ The system security context used to write to the EventLog.
+
+
+ Unless a specified here for this appender
+ the is queried for the
+ security context to use. The default behavior is to use the security context
+ of the current thread.
+
+
+
+
+
+ This appender requires a to be set.
+
+ true
+
+
+ This appender requires a to be set.
+
+
+
+
+
+ A class to act as a mapping between the level that a logging call is made at and
+ the color it should be displayed as.
+
+
+
+ Defines the mapping between a level and its event log entry type.
+
+
+
+
+
+ The for this entry
+
+
+
+ Required property.
+ The for this entry
+
+
+
+
+
+ Appends logging events to a file.
+
+
+
+ Logging events are sent to the file specified by
+ the property.
+
+
+ The file can be opened in either append or overwrite mode
+ by specifying the property.
+ If the file path is relative it is taken as relative from
+ the application base directory. The file encoding can be
+ specified by setting the property.
+
+
+ The layout's and
+ values will be written each time the file is opened and closed
+ respectively. If the property is
+ then the file may contain multiple copies of the header and footer.
+
+
+ This appender will first try to open the file for writing when
+ is called. This will typically be during configuration.
+ If the file cannot be opened for writing the appender will attempt
+ to open the file again each time a message is logged to the appender.
+ If the file cannot be opened for writing when a message is logged then
+ the message will be discarded by this appender.
+
+
+ The supports pluggable file locking models via
+ the property.
+ The default behavior, implemented by
+ is to obtain an exclusive write lock on the file until this appender is closed.
+ The alternative model, , only holds a
+ write lock while the appender is writing a logging event.
+
+
+ Nicko Cadell
+ Gert Driesen
+ Rodrigo B. de Oliveira
+ Douglas de la Torre
+ Niall Daley
+
+
+
+ Sends logging events to a .
+
+
+
+ An Appender that writes to a .
+
+
+ This appender may be used stand alone if initialized with an appropriate
+ writer, however it is typically used as a base class for an appender that
+ can open a to write to.
+
+
+ Nicko Cadell
+ Gert Driesen
+ Douglas de la Torre
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ Default constructor.
+
+
+
+
+
+ Initializes a new instance of the class and
+ sets the output destination to a new initialized
+ with the specified .
+
+ The layout to use with this appender.
+ The to output to.
+
+
+ Obsolete constructor.
+
+
+
+
+
+ Initializes a new instance of the class and sets
+ the output destination to the specified .
+
+ The layout to use with this appender
+ The to output to
+
+ The must have been previously opened.
+
+
+
+ Obsolete constructor.
+
+
+
+
+
+ This method determines if there is a sense in attempting to append.
+
+
+
+ This method checked if an output target has been set and if a
+ layout has been set.
+
+
+ false if any of the preconditions fail.
+
+
+
+ This method is called by the
+ method.
+
+ The event to log.
+
+
+ Writes a log statement to the output stream if the output stream exists
+ and is writable.
+
+
+ The format of the output will depend on the appender's layout.
+
+
+
+
+
+ This method is called by the
+ method.
+
+ The array of events to log.
+
+
+ This method writes all the bulk logged events to the output writer
+ before flushing the stream.
+
+
+
+
+
+ Close this appender instance. The underlying stream or writer is also closed.
+
+
+ Closed appenders cannot be reused.
+
+
+
+
+ Writes the footer and closes the underlying .
+
+
+
+ Writes the footer and closes the underlying .
+
+
+
+
+
+ Closes the underlying .
+
+
+
+ Closes the underlying .
+
+
+
+
+
+ Clears internal references to the underlying
+ and other variables.
+
+
+
+ Subclasses can override this method for an alternate closing behavior.
+
+
+
+
+
+ Writes a footer as produced by the embedded layout's property.
+
+
+
+ Writes a footer as produced by the embedded layout's property.
+
+
+
+
+
+ Writes a header produced by the embedded layout's property.
+
+
+
+ Writes a header produced by the embedded layout's property.
+
+
+
+
+
+ Called to allow a subclass to lazily initialize the writer
+
+
+
+ This method is called when an event is logged and the or
+ have not been set. This allows a subclass to
+ attempt to initialize the writer multiple times.
+
+
+
+
+
+ This is the where logging events
+ will be written to.
+
+
+
+
+ Immediate flush means that the underlying
+ or output stream will be flushed at the end of each append operation.
+
+
+
+ Immediate flush is slower but ensures that each append request is
+ actually written. If is set to
+ false, then there is a good chance that the last few
+ logging events are not actually persisted if and when the application
+ crashes.
+
+
+ The default value is true.
+
+
+
+
+
+ Gets or set whether the appender will flush at the end
+ of each append operation.
+
+
+
+ The default behavior is to flush at the end of each
+ append operation.
+
+
+ If this option is set to false, then the underlying
+ stream can defer persisting the logging event to a later
+ time.
+
+
+
+ Avoiding the flush operation at the end of each append results in
+ a performance gain of 10 to 20 percent. However, there is safety
+ trade-off involved in skipping flushing. Indeed, when flushing is
+ skipped, then it is likely that the last few log events will not
+ be recorded on disk when the application exits. This is a high
+ price to pay even for a 20% performance gain.
+
+
+
+
+ Sets the where the log output will go.
+
+
+
+ The specified must be open and writable.
+
+
+ The will be closed when the appender
+ instance is closed.
+
+
+ Note: Logging to an unopened will fail.
+
+
+
+
+
+ Gets or set the and the underlying
+ , if any, for this appender.
+
+
+ The for this appender.
+
+
+
+
+ This appender requires a to be set.
+
+ true
+
+
+ This appender requires a to be set.
+
+
+
+
+
+ Gets or sets the where logging events
+ will be written to.
+
+
+ The where logging events are written.
+
+
+
+ This is the where logging events
+ will be written to.
+
+
+
+
+
+ Default constructor
+
+
+
+ Default constructor
+
+
+
+
+
+ Construct a new appender using the layout, file and append mode.
+
+ the layout to use with this appender
+ the full path to the file to write to
+ flag to indicate if the file should be appended to
+
+
+ Obsolete constructor.
+
+
+
+
+
+ Construct a new appender using the layout and file specified.
+ The file will be appended to.
+
+ the layout to use with this appender
+ the full path to the file to write to
+
+
+ Obsolete constructor.
+
+
+
+
+
+ Activate the options on the file appender.
+
+
+
+ This is part of the delayed object
+ activation scheme. The method must
+ be called on this object after the configuration properties have
+ been set. Until is called this
+ object is in an undefined state and must not be used.
+
+
+ If any of the configuration properties are modified then
+ must be called again.
+
+
+ This will cause the file to be opened.
+
+
+
+
+
+ Closes any previously opened file and calls the parent's .
+
+
+
+ Resets the filename and the file stream.
+
+
+
+
+
+ Called to initialize the file writer
+
+
+
+ Will be called for each logged message until the file is
+ successfully opened.
+
+
+
+
+
+ This method is called by the
+ method.
+
+ The event to log.
+
+
+ Writes a log statement to the output stream if the output stream exists
+ and is writable.
+
+
+ The format of the output will depend on the appender's layout.
+
+
+
+
+
+ This method is called by the
+ method.
+
+ The array of events to log.
+
+
+ Acquires the output file locks once before writing all the events to
+ the stream.
+
+
+
+
+
+ Writes a footer as produced by the embedded layout's property.
+
+
+
+ Writes a footer as produced by the embedded layout's property.
+
+
+
+
+
+ Writes a header produced by the embedded layout's property.
+
+
+
+ Writes a header produced by the embedded layout's property.
+
+
+
+
+
+ Closes the underlying .
+
+
+
+ Closes the underlying .
+
+
+
+
+
+ Closes the previously opened file.
+
+
+
+ Writes the to the file and then
+ closes the file.
+
+
+
+
+
+ Sets and opens the file where the log output will go. The specified file must be writable.
+
+ The path to the log file. Must be a fully qualified path.
+ If true will append to fileName. Otherwise will truncate fileName
+
+
+ Calls but guarantees not to throw an exception.
+ Errors are passed to the .
+
+
+
+
+
+ Sets and opens the file where the log output will go. The specified file must be writable.
+
+ The path to the log file. Must be a fully qualified path.
+ If true will append to fileName. Otherwise will truncate fileName
+
+
+ If there was already an opened file, then the previous file
+ is closed first.
+
+
+ This method will ensure that the directory structure
+ for the specified exists.
+
+
+
+
+
+ Sets the quiet writer used for file output
+
+ the file stream that has been opened for writing
+
+
+ This implementation of creates a
+ over the and passes it to the
+ method.
+
+
+ This method can be overridden by sub classes that want to wrap the
+ in some way, for example to encrypt the output
+ data using a System.Security.Cryptography.CryptoStream.
+
+
+
+
+
+ Sets the quiet writer being used.
+
+ the writer over the file stream that has been opened for writing
+
+
+ This method can be overridden by sub classes that want to
+ wrap the in some way.
+
+
+
+
+
+ Convert a path into a fully qualified path.
+
+ The path to convert.
+ The fully qualified path.
+
+
+ Converts the path specified to a fully
+ qualified path. If the path is relative it is
+ taken as relative from the application base
+ directory.
+
+
+
+
+
+ Flag to indicate if we should append to the file
+ or overwrite the file. The default is to append.
+
+
+
+
+ The name of the log file.
+
+
+
+
+ The encoding to use for the file stream.
+
+
+
+
+ The security context to use for privileged calls
+
+
+
+
+ The stream to log to. Has added locking semantics
+
+
+
+
+ The locking model to use
+
+
+
+
+ Gets or sets the path to the file that logging will be written to.
+
+
+ The path to the file that logging will be written to.
+
+
+
+ If the path is relative it is taken as relative from
+ the application base directory.
+
+
+
+
+
+ Gets or sets a flag that indicates whether the file should be
+ appended to or overwritten.
+
+
+ Indicates whether the file should be appended to or overwritten.
+
+
+
+ If the value is set to false then the file will be overwritten, if
+ it is set to true then the file will be appended to.
+
+ The default value is true.
+
+
+
+
+ Gets or sets used to write to the file.
+
+
+ The used to write to the file.
+
+
+
+ The default encoding set is
+ which is the encoding for the system's current ANSI code page.
+
+
+
+
+
+ Gets or sets the used to write to the file.
+
+
+ The used to write to the file.
+
+
+
+ Unless a specified here for this appender
+ the is queried for the
+ security context to use. The default behavior is to use the security context
+ of the current thread.
+
+
+
+
+
+ Gets or sets the used to handle locking of the file.
+
+
+ The used to lock the file.
+
+
+
+ Gets or sets the used to handle locking of the file.
+
+
+ There are two built in locking models, and .
+ The former locks the file from the start of logging to the end and the
+ later lock only for the minimal amount of time when logging each message.
+
+
+ The default locking model is the .
+
+
+
+
+
+ Write only that uses the
+ to manage access to an underlying resource.
+
+
+
+
+ True asynchronous writes are not supported, the implementation forces a synchronous write.
+
+
+
+
+ Exception base type for log4net.
+
+
+
+ This type extends . It
+ does not add any new functionality but does differentiate the
+ type of exception being thrown.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Constructor
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+
+ Constructor
+
+ A message to include with the exception.
+
+
+ Initializes a new instance of the class with
+ the specified message.
+
+
+
+
+
+ Constructor
+
+ A message to include with the exception.
+ A nested exception to include.
+
+
+ Initializes a new instance of the class
+ with the specified message and inner exception.
+
+
+
+
+
+ Serialization constructor
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+
+
+
+ Locking model base class
+
+
+
+ Base class for the locking models available to the derived loggers.
+
+
+
+
+
+ Open the output file
+
+ The filename to use
+ Whether to append to the file, or overwrite
+ The encoding to use
+
+
+ Open the file specified and prepare for logging.
+ No writes will be made until is called.
+ Must be called before any calls to ,
+ and .
+
+
+
+
+
+ Close the file
+
+
+
+ Close the file. No further writes will be made.
+
+
+
+
+
+ Acquire the lock on the file
+
+ A stream that is ready to be written to.
+
+
+ Acquire the lock on the file in preparation for writing to it.
+ Return a stream pointing to the file.
+ must be called to release the lock on the output file.
+
+
+
+
+
+ Release the lock on the file
+
+
+
+ Release the lock on the file. No further writes will be made to the
+ stream until is called again.
+
+
+
+
+
+ Gets or sets the for this LockingModel
+
+
+ The for this LockingModel
+
+
+
+ The file appender this locking model is attached to and working on
+ behalf of.
+
+
+ The file appender is used to locate the security context and the error handler to use.
+
+
+ The value of this property will be set before is
+ called.
+
+
+
+
+
+ Hold an exclusive lock on the output file
+
+
+
+ Open the file once for writing and hold it open until is called.
+ Maintains an exclusive lock on the file during this time.
+
+
+
+
+
+ Open the file specified and prepare for logging.
+
+ The filename to use
+ Whether to append to the file, or overwrite
+ The encoding to use
+
+
+ Open the file specified and prepare for logging.
+ No writes will be made until is called.
+ Must be called before any calls to ,
+ and .
+
+
+
+
+
+ Close the file
+
+
+
+ Close the file. No further writes will be made.
+
+
+
+
+
+ Acquire the lock on the file
+
+ A stream that is ready to be written to.
+
+
+ Does nothing. The lock is already taken
+
+
+
+
+
+ Release the lock on the file
+
+
+
+ Does nothing. The lock will be released when the file is closed.
+
+
+
+
+
+ Acquires the file lock for each write
+
+
+
+ Opens the file once for each / cycle,
+ thus holding the lock for the minimal amount of time. This method of locking
+ is considerably slower than but allows
+ other processes to move/delete the log file whilst logging continues.
+
+
+
+
+
+ Prepares to open the file when the first message is logged.
+
+ The filename to use
+ Whether to append to the file, or overwrite
+ The encoding to use
+
+
+ Open the file specified and prepare for logging.
+ No writes will be made until is called.
+ Must be called before any calls to ,
+ and .
+
+
+
+
+
+ Close the file
+
+
+
+ Close the file. No further writes will be made.
+
+
+
+
+
+ Acquire the lock on the file
+
+ A stream that is ready to be written to.
+
+
+ Acquire the lock on the file in preparation for writing to it.
+ Return a stream pointing to the file.
+ must be called to release the lock on the output file.
+
+
+
+
+
+ Release the lock on the file
+
+
+
+ Release the lock on the file. No further writes will be made to the
+ stream until is called again.
+
+
+
+
+
+ This appender forwards logging events to attached appenders.
+
+
+
+ The forwarding appender can be used to specify different thresholds
+ and filters for the same appender at different locations within the hierarchy.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ Default constructor.
+
+
+
+
+
+ Closes the appender and releases resources.
+
+
+
+ Releases any resources allocated within the appender such as file handles,
+ network connections, etc.
+
+
+ It is a programming error to append to a closed appender.
+
+
+
+
+
+ Forward the logging event to the attached appenders
+
+ The event to log.
+
+
+ Delivers the logging event to all the attached appenders.
+
+
+
+
+
+ Forward the logging events to the attached appenders
+
+ The array of events to log.
+
+
+ Delivers the logging events to all the attached appenders.
+
+
+
+
+
+ Adds an to the list of appenders of this
+ instance.
+
+ The to add to this appender.
+
+
+ If the specified is already in the list of
+ appenders, then it won't be added again.
+
+
+
+
+
+ Looks for the appender with the specified name.
+
+ The name of the appender to lookup.
+
+ The appender with the specified name, or null.
+
+
+
+ Get the named appender attached to this appender.
+
+
+
+
+
+ Removes all previously added appenders from this appender.
+
+
+
+ This is useful when re-reading configuration information.
+
+
+
+
+
+ Removes the specified appender from the list of appenders.
+
+ The appender to remove.
+ The appender removed from the list
+
+ The appender removed is not closed.
+ If you are discarding the appender you must call
+ on the appender removed.
+
+
+
+
+ Removes the appender with the specified name from the list of appenders.
+
+ The name of the appender to remove.
+ The appender removed from the list
+
+ The appender removed is not closed.
+ If you are discarding the appender you must call
+ on the appender removed.
+
+
+
+
+ Implementation of the interface
+
+
+
+
+ Gets the appenders contained in this appender as an
+ .
+
+
+ If no appenders can be found, then an
+ is returned.
+
+
+ A collection of the appenders in this appender.
+
+
+
+
+ Logs events to a local syslog service.
+
+
+
+ This appender uses the POSIX libc library functions openlog, syslog, and closelog.
+ If these functions are not available on the local system then this appender will not work!
+
+
+ The functions openlog, syslog, and closelog are specified in SUSv2 and
+ POSIX 1003.1-2001 standards. These are used to log messages to the local syslog service.
+
+
+ This appender talks to a local syslog service. If you need to log to a remote syslog
+ daemon and you cannot configure your local syslog service to do this you may be
+ able to use the to log via UDP.
+
+
+ Syslog messages must have a facility and and a severity. The severity
+ is derived from the Level of the logging event.
+ The facility must be chosen from the set of defined syslog
+ values. The facilities list is predefined
+ and cannot be extended.
+
+
+ An identifier is specified with each log message. This can be specified
+ by setting the property. The identity (also know
+ as the tag) must not contain white space. The default value for the
+ identity is the application name (from ).
+
+
+ Rob Lyon
+ Nicko Cadell
+
+
+
+ Initializes a new instance of the class.
+
+
+ This instance of the class is set up to write
+ to a local syslog service.
+
+
+
+
+ Add a mapping of level to severity
+
+ The mapping to add
+
+
+ Adds a to this appender.
+
+
+
+
+
+ Initialize the appender based on the options set.
+
+
+
+ This is part of the delayed object
+ activation scheme. The method must
+ be called on this object after the configuration properties have
+ been set. Until is called this
+ object is in an undefined state and must not be used.
+
+
+ If any of the configuration properties are modified then
+ must be called again.
+
+
+
+
+
+ This method is called by the method.
+
+ The event to log.
+
+
+ Writes the event to a remote syslog daemon.
+
+
+ The format of the output will depend on the appender's layout.
+
+
+
+
+
+ Close the syslog when the appender is closed
+
+
+
+ Close the syslog when the appender is closed
+
+
+
+
+
+ Translates a log4net level to a syslog severity.
+
+ A log4net level.
+ A syslog severity.
+
+
+ Translates a log4net level to a syslog severity.
+
+
+
+
+
+ Generate a syslog priority.
+
+ The syslog facility.
+ The syslog severity.
+ A syslog priority.
+
+
+
+ The facility. The default facility is .
+
+
+
+
+ The message identity
+
+
+
+
+ Marshaled handle to the identity string. We have to hold on to the
+ string as the openlog and syslog APIs just hold the
+ pointer to the ident and dereference it for each log message.
+
+
+
+
+ Mapping from level object to syslog severity
+
+
+
+
+ Open connection to system logger.
+
+
+
+
+ Generate a log message.
+
+
+
+ The libc syslog method takes a format string and a variable argument list similar
+ to the classic printf function. As this type of vararg list is not supported
+ by C# we need to specify the arguments explicitly. Here we have specified the
+ format string with a single message argument. The caller must set the format
+ string to "%s".
+
+
+
+
+
+ Close descriptor used to write to system logger.
+
+
+
+
+ Message identity
+
+
+
+ An identifier is specified with each log message. This can be specified
+ by setting the property. The identity (also know
+ as the tag) must not contain white space. The default value for the
+ identity is the application name (from ).
+
+
+
+
+
+ Syslog facility
+
+
+ Set to one of the values. The list of
+ facilities is predefined and cannot be extended. The default value
+ is .
+
+
+
+
+ This appender requires a to be set.
+
+ true
+
+
+ This appender requires a to be set.
+
+
+
+
+
+ syslog severities
+
+
+
+ The log4net Level maps to a syslog severity using the
+ method and the
+ class. The severity is set on .
+
+
+
+
+
+ system is unusable
+
+
+
+
+ action must be taken immediately
+
+
+
+
+ critical conditions
+
+
+
+
+ error conditions
+
+
+
+
+ warning conditions
+
+
+
+
+ normal but significant condition
+
+
+
+
+ informational
+
+
+
+
+ debug-level messages
+
+
+
+
+ syslog facilities
+
+
+
+ The syslog facility defines which subsystem the logging comes from.
+ This is set on the property.
+
+
+
+
+
+ kernel messages
+
+
+
+
+ random user-level messages
+
+
+
+
+ mail system
+
+
+
+
+ system daemons
+
+
+
+
+ security/authorization messages
+
+
+
+
+ messages generated internally by syslogd
+
+
+
+
+ line printer subsystem
+
+
+
+
+ network news subsystem
+
+
+
+
+ UUCP subsystem
+
+
+
+
+ clock (cron/at) daemon
+
+
+
+
+ security/authorization messages (private)
+
+
+
+
+ ftp daemon
+
+
+
+
+ NTP subsystem
+
+
+
+
+ log audit
+
+
+
+
+ log alert
+
+
+
+
+ clock daemon
+
+
+
+
+ reserved for local use
+
+
+
+
+ reserved for local use
+
+
+
+
+ reserved for local use
+
+
+
+
+ reserved for local use
+
+
+
+
+ reserved for local use
+
+
+
+
+ reserved for local use
+
+
+
+
+ reserved for local use
+
+
+
+
+ reserved for local use
+
+
+
+
+ A class to act as a mapping between the level that a logging call is made at and
+ the syslog severity that is should be logged at.
+
+
+
+ A class to act as a mapping between the level that a logging call is made at and
+ the syslog severity that is should be logged at.
+
+
+
+
+
+ The mapped syslog severity for the specified level
+
+
+
+ Required property.
+ The mapped syslog severity for the specified level
+
+
+
+
+
+ Stores logging events in an array.
+
+
+
+ The memory appender stores all the logging events
+ that are appended in an in-memory array.
+
+
+ Use the method to get
+ the current list of events that have been appended.
+
+
+ Use the method to clear the
+ current list of events.
+
+
+ Julian Biddle
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ Default constructor.
+
+
+
+
+
+ Gets the events that have been logged.
+
+ The events that have been logged
+
+
+ Gets the events that have been logged.
+
+
+
+
+
+ This method is called by the method.
+
+ the event to log
+
+ Stores the in the events list.
+
+
+
+
+ Clear the list of events
+
+
+ Clear the list of events
+
+
+
+
+ The list of events that have been appended.
+
+
+
+
+ Value indicating which fields in the event should be fixed
+
+
+ By default all fields are fixed
+
+
+
+
+ Gets or sets a value indicating whether only part of the logging event
+ data should be fixed.
+
+
+ true if the appender should only fix part of the logging event
+ data, otherwise false. The default is false.
+
+
+
+ Setting this property to true will cause only part of the event
+ data to be fixed and stored in the appender, hereby improving performance.
+
+
+ See for more information.
+
+
+
+
+
+ Gets or sets the fields that will be fixed in the event
+
+
+
+ The logging event needs to have certain thread specific values
+ captured before it can be buffered. See
+ for details.
+
+
+
+
+
+ Logs entries by sending network messages using the
+ native function.
+
+
+
+ You can send messages only to names that are active
+ on the network. If you send the message to a user name,
+ that user must be logged on and running the Messenger
+ service to receive the message.
+
+
+ The receiver will get a top most window displaying the
+ messages one at a time, therefore this appender should
+ not be used to deliver a high volume of messages.
+
+
+ The following table lists some possible uses for this appender :
+
+
+
+
+ Action
+ Property Value(s)
+
+
+ Send a message to a user account on the local machine
+
+
+ = <name of the local machine>
+
+
+ = <user name>
+
+
+
+
+ Send a message to a user account on a remote machine
+
+
+ = <name of the remote machine>
+
+
+ = <user name>
+
+
+
+
+ Send a message to a domain user account
+
+
+ = <name of a domain controller | uninitialized>
+
+
+ = <user name>
+
+
+
+
+ Send a message to all the names in a workgroup or domain
+
+
+ = <workgroup name | domain name>*
+
+
+
+
+ Send a message from the local machine to a remote machine
+
+
+ = <name of the local machine | uninitialized>
+
+
+ = <name of the remote machine>
+
+
+
+
+
+
+ Note : security restrictions apply for sending
+ network messages, see
+ for more information.
+
+
+
+
+ An example configuration section to log information
+ using this appender from the local machine, named
+ LOCAL_PC, to machine OPERATOR_PC :
+
+
+
+
+
+
+
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ The DNS or NetBIOS name of the server on which the function is to execute.
+
+
+
+
+ The sender of the network message.
+
+
+
+
+ The message alias to which the message should be sent.
+
+
+
+
+ The security context to use for privileged calls
+
+
+
+
+ Initializes the appender.
+
+
+ The default constructor initializes all fields to their default values.
+
+
+
+
+ Initialize the appender based on the options set.
+
+
+
+ This is part of the delayed object
+ activation scheme. The method must
+ be called on this object after the configuration properties have
+ been set. Until is called this
+ object is in an undefined state and must not be used.
+
+
+ If any of the configuration properties are modified then
+ must be called again.
+
+
+ The appender will be ignored if no was specified.
+
+
+ The required property was not specified.
+
+
+
+ This method is called by the method.
+
+ The event to log.
+
+
+ Sends the event using a network message.
+
+
+
+
+
+ Sends a buffer of information to a registered message alias.
+
+ The DNS or NetBIOS name of the server on which the function is to execute.
+ The message alias to which the message buffer should be sent
+ The originator of the message.
+ The message text.
+ The length, in bytes, of the message text.
+
+
+ The following restrictions apply for sending network messages:
+
+
+
+
+ Platform
+ Requirements
+
+
+ Windows NT
+
+
+ No special group membership is required to send a network message.
+
+
+ Admin, Accounts, Print, or Server Operator group membership is required to
+ successfully send a network message on a remote server.
+
+
+
+
+ Windows 2000 or later
+
+
+ If you send a message on a domain controller that is running Active Directory,
+ access is allowed or denied based on the access control list (ACL) for the securable
+ object. The default ACL permits only Domain Admins and Account Operators to send a network message.
+
+
+ On a member server or workstation, only Administrators and Server Operators can send a network message.
+
+
+
+
+
+
+ For more information see Security Requirements for the Network Management Functions.
+
+
+
+
+ If the function succeeds, the return value is zero.
+
+
+
+
+
+ Gets or sets the sender of the message.
+
+
+ The sender of the message.
+
+
+ If this property is not specified, the message is sent from the local computer.
+
+
+
+
+ Gets or sets the message alias to which the message should be sent.
+
+
+ The recipient of the message.
+
+
+ This property should always be specified in order to send a message.
+
+
+
+
+ Gets or sets the DNS or NetBIOS name of the remote server on which the function is to execute.
+
+
+ DNS or NetBIOS name of the remote server on which the function is to execute.
+
+
+
+ For Windows NT 4.0 and earlier, the string should begin with \\.
+
+
+ If this property is not specified, the local computer is used.
+
+
+
+
+
+ Gets or sets the used to call the NetSend method.
+
+
+ The used to call the NetSend method.
+
+
+
+ Unless a specified here for this appender
+ the is queried for the
+ security context to use. The default behavior is to use the security context
+ of the current thread.
+
+
+
+
+
+ This appender requires a to be set.
+
+ true
+
+
+ This appender requires a to be set.
+
+
+
+
+
+ Appends log events to the OutputDebugString system.
+
+
+
+ OutputDebugStringAppender appends log events to the
+ OutputDebugString system.
+
+
+ The string is passed to the native OutputDebugString
+ function.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ Default constructor.
+
+
+
+
+
+ Write the logging event to the output debug string API
+
+ the event to log
+
+
+ Write the logging event to the output debug string API
+
+
+
+
+
+ Stub for OutputDebugString native method
+
+ the string to output
+
+
+ Stub for OutputDebugString native method
+
+
+
+
+
+ This appender requires a to be set.
+
+ true
+
+
+ This appender requires a to be set.
+
+
+
+
+
+ Logs events to a remote syslog daemon.
+
+
+
+ The BSD syslog protocol is used to remotely log to
+ a syslog daemon. The syslogd listens for for messages
+ on UDP port 514.
+
+
+ The syslog UDP protocol is not authenticated. Most syslog daemons
+ do not accept remote log messages because of the security implications.
+ You may be able to use the LocalSyslogAppender to talk to a local
+ syslog service.
+
+
+ There is an RFC 3164 that claims to document the BSD Syslog Protocol.
+ This RFC can be seen here: http://www.faqs.org/rfcs/rfc3164.html.
+ This appender generates what the RFC calls an "Original Device Message",
+ i.e. does not include the TIMESTAMP or HOSTNAME fields. By observation
+ this format of message will be accepted by all current syslog daemon
+ implementations. The daemon will attach the current time and the source
+ hostname or IP address to any messages received.
+
+
+ Syslog messages must have a facility and and a severity. The severity
+ is derived from the Level of the logging event.
+ The facility must be chosen from the set of defined syslog
+ values. The facilities list is predefined
+ and cannot be extended.
+
+
+ An identifier is specified with each log message. This can be specified
+ by setting the property. The identity (also know
+ as the tag) must not contain white space. The default value for the
+ identity is the application name (from ).
+
+
+ Rob Lyon
+ Nicko Cadell
+
+
+
+ Sends logging events as connectionless UDP datagrams to a remote host or a
+ multicast group using an .
+
+
+
+ UDP guarantees neither that messages arrive, nor that they arrive in the correct order.
+
+
+ To view the logging results, a custom application can be developed that listens for logging
+ events.
+
+
+ When decoding events send via this appender remember to use the same encoding
+ to decode the events as was used to send the events. See the
+ property to specify the encoding to use.
+
+
+
+ This example shows how to log receive logging events that are sent
+ on IP address 244.0.0.1 and port 8080 to the console. The event is
+ encoded in the packet as a unicode string and it is decoded as such.
+
+ IPEndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any, 0);
+ UdpClient udpClient;
+ byte[] buffer;
+ string loggingEvent;
+
+ try
+ {
+ udpClient = new UdpClient(8080);
+
+ while(true)
+ {
+ buffer = udpClient.Receive(ref remoteEndPoint);
+ loggingEvent = System.Text.Encoding.Unicode.GetString(buffer);
+ Console.WriteLine(loggingEvent);
+ }
+ }
+ catch(Exception e)
+ {
+ Console.WriteLine(e.ToString());
+ }
+
+
+ Dim remoteEndPoint as IPEndPoint
+ Dim udpClient as UdpClient
+ Dim buffer as Byte()
+ Dim loggingEvent as String
+
+ Try
+ remoteEndPoint = new IPEndPoint(IPAddress.Any, 0)
+ udpClient = new UdpClient(8080)
+
+ While True
+ buffer = udpClient.Receive(ByRef remoteEndPoint)
+ loggingEvent = System.Text.Encoding.Unicode.GetString(buffer)
+ Console.WriteLine(loggingEvent)
+ Wend
+ Catch e As Exception
+ Console.WriteLine(e.ToString())
+ End Try
+
+
+ An example configuration section to log information using this appender to the
+ IP 224.0.0.1 on port 8080:
+
+
+
+
+
+
+
+
+
+ Gert Driesen
+ Nicko Cadell
+
+
+
+ Initializes a new instance of the class.
+
+
+ The default constructor initializes all fields to their default values.
+
+
+
+
+ Initialize the appender based on the options set.
+
+
+
+ This is part of the delayed object
+ activation scheme. The method must
+ be called on this object after the configuration properties have
+ been set. Until is called this
+ object is in an undefined state and must not be used.
+
+
+ If any of the configuration properties are modified then
+ must be called again.
+
+
+ The appender will be ignored if no was specified or
+ an invalid remote or local TCP port number was specified.
+
+
+ The required property was not specified.
+ The TCP port number assigned to or is less than or greater than .
+
+
+
+ This method is called by the method.
+
+ The event to log.
+
+
+ Sends the event using an UDP datagram.
+
+
+ Exceptions are passed to the .
+
+
+
+
+
+ Closes the UDP connection and releases all resources associated with
+ this instance.
+
+
+
+ Disables the underlying and releases all managed
+ and unmanaged resources associated with the .
+
+
+
+
+
+ Initializes the underlying connection.
+
+
+
+ The underlying is initialized and binds to the
+ port number from which you intend to communicate.
+
+
+ Exceptions are passed to the .
+
+
+
+
+
+ The IP address of the remote host or multicast group to which
+ the logging event will be sent.
+
+
+
+
+ The TCP port number of the remote host or multicast group to
+ which the logging event will be sent.
+
+
+
+
+ The cached remote endpoint to which the logging events will be sent.
+
+
+
+
+ The TCP port number from which the will communicate.
+
+
+
+
+ The instance that will be used for sending the
+ logging events.
+
+
+
+
+ The encoding to use for the packet.
+
+
+
+
+ Gets or sets the IP address of the remote host or multicast group to which
+ the underlying should sent the logging event.
+
+
+ The IP address of the remote host or multicast group to which the logging event
+ will be sent.
+
+
+
+ Multicast addresses are identified by IP class D addresses (in the range 224.0.0.0 to
+ 239.255.255.255). Multicast packets can pass across different networks through routers, so
+ it is possible to use multicasts in an Internet scenario as long as your network provider
+ supports multicasting.
+
+
+ Hosts that want to receive particular multicast messages must register their interest by joining
+ the multicast group. Multicast messages are not sent to networks where no host has joined
+ the multicast group. Class D IP addresses are used for multicast groups, to differentiate
+ them from normal host addresses, allowing nodes to easily detect if a message is of interest.
+
+
+ Static multicast addresses that are needed globally are assigned by IANA. A few examples are listed in the table below:
+
+
+
+
+ IP Address
+ Description
+
+
+ 224.0.0.1
+
+
+ Sends a message to all system on the subnet.
+
+
+
+
+ 224.0.0.2
+
+
+ Sends a message to all routers on the subnet.
+
+
+
+
+ 224.0.0.12
+
+
+ The DHCP server answers messages on the IP address 224.0.0.12, but only on a subnet.
+
+
+
+
+
+
+ A complete list of actually reserved multicast addresses and their owners in the ranges
+ defined by RFC 3171 can be found at the IANA web site.
+
+
+ The address range 239.0.0.0 to 239.255.255.255 is reserved for administrative scope-relative
+ addresses. These addresses can be reused with other local groups. Routers are typically
+ configured with filters to prevent multicast traffic in this range from flowing outside
+ of the local network.
+
+
+
+
+
+ Gets or sets the TCP port number of the remote host or multicast group to which
+ the underlying should sent the logging event.
+
+
+ An integer value in the range to
+ indicating the TCP port number of the remote host or multicast group to which the logging event
+ will be sent.
+
+
+ The underlying will send messages to this TCP port number
+ on the remote host or multicast group.
+
+ The value specified is less than or greater than .
+
+
+
+ Gets or sets the TCP port number from which the underlying will communicate.
+
+
+ An integer value in the range to
+ indicating the TCP port number from which the underlying will communicate.
+
+
+
+ The underlying will bind to this port for sending messages.
+
+
+ Setting the value to 0 (the default) will cause the udp client not to bind to
+ a local port.
+
+
+ The value specified is less than or greater than .
+
+
+
+ Gets or sets used to write the packets.
+
+
+ The used to write the packets.
+
+
+
+ The used to write the packets.
+
+
+
+
+
+ Gets or sets the underlying .
+
+
+ The underlying .
+
+
+ creates a to send logging events
+ over a network. Classes deriving from can use this
+ property to get or set this . Use the underlying
+ returned from if you require access beyond that which
+ provides.
+
+
+
+
+ Gets or sets the cached remote endpoint to which the logging events should be sent.
+
+
+ The cached remote endpoint to which the logging events will be sent.
+
+
+ The method will initialize the remote endpoint
+ with the values of the and
+ properties.
+
+
+
+
+ This appender requires a to be set.
+
+ true
+
+
+ This appender requires a to be set.
+
+
+
+
+
+ Syslog port 514
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ This instance of the class is set up to write
+ to a remote syslog daemon.
+
+
+
+
+ Add a mapping of level to severity
+
+ The mapping to add
+
+
+ Add a mapping to this appender.
+
+
+
+
+
+ This method is called by the method.
+
+ The event to log.
+
+
+ Writes the event to a remote syslog daemon.
+
+
+ The format of the output will depend on the appender's layout.
+
+
+
+
+
+ Initialize the options for this appender
+
+
+
+ Initialize the level to syslog severity mappings set on this appender.
+
+
+
+
+
+ Translates a log4net level to a syslog severity.
+
+ A log4net level.
+ A syslog severity.
+
+
+ Translates a log4net level to a syslog severity.
+
+
+
+
+
+ Generate a syslog priority.
+
+ The syslog facility.
+ The syslog severity.
+ A syslog priority.
+
+
+ Generate a syslog priority.
+
+
+
+
+
+ The facility. The default facility is .
+
+
+
+
+ The message identity
+
+
+
+
+ Mapping from level object to syslog severity
+
+
+
+
+ Message identity
+
+
+
+ An identifier is specified with each log message. This can be specified
+ by setting the property. The identity (also know
+ as the tag) must not contain white space. The default value for the
+ identity is the application name (from ).
+
+
+
+
+
+ Syslog facility
+
+
+ Set to one of the values. The list of
+ facilities is predefined and cannot be extended. The default value
+ is .
+
+
+
+
+ syslog severities
+
+
+
+ The syslog severities.
+
+
+
+
+
+ system is unusable
+
+
+
+
+ action must be taken immediately
+
+
+
+
+ critical conditions
+
+
+
+
+ error conditions
+
+
+
+
+ warning conditions
+
+
+
+
+ normal but significant condition
+
+
+
+
+ informational
+
+
+
+
+ debug-level messages
+
+
+
+
+ syslog facilities
+
+
+
+ The syslog facilities
+
+
+
+
+
+ kernel messages
+
+
+
+
+ random user-level messages
+
+
+
+
+ mail system
+
+
+
+
+ system daemons
+
+
+
+
+ security/authorization messages
+
+
+
+
+ messages generated internally by syslogd
+
+
+
+
+ line printer subsystem
+
+
+
+
+ network news subsystem
+
+
+
+
+ UUCP subsystem
+
+
+
+
+ clock (cron/at) daemon
+
+
+
+
+ security/authorization messages (private)
+
+
+
+
+ ftp daemon
+
+
+
+
+ NTP subsystem
+
+
+
+
+ log audit
+
+
+
+
+ log alert
+
+
+
+
+ clock daemon
+
+
+
+
+ reserved for local use
+
+
+
+
+ reserved for local use
+
+
+
+
+ reserved for local use
+
+
+
+
+ reserved for local use
+
+
+
+
+ reserved for local use
+
+
+
+
+ reserved for local use
+
+
+
+
+ reserved for local use
+
+
+
+
+ reserved for local use
+
+
+
+
+ A class to act as a mapping between the level that a logging call is made at and
+ the syslog severity that is should be logged at.
+
+
+
+ A class to act as a mapping between the level that a logging call is made at and
+ the syslog severity that is should be logged at.
+
+
+
+
+
+ The mapped syslog severity for the specified level
+
+
+
+ Required property.
+ The mapped syslog severity for the specified level
+
+
+
+
+
+ Delivers logging events to a remote logging sink.
+
+
+
+ This Appender is designed to deliver events to a remote sink.
+ That is any object that implements the
+ interface. It delivers the events using .NET remoting. The
+ object to deliver events to is specified by setting the
+ appenders property.
+
+ The RemotingAppender buffers events before sending them. This allows it to
+ make more efficient use of the remoting infrastructure.
+
+ Once the buffer is full the events are still not sent immediately.
+ They are scheduled to be sent using a pool thread. The effect is that
+ the send occurs asynchronously. This is very important for a
+ number of non obvious reasons. The remoting infrastructure will
+ flow thread local variables (stored in the ),
+ if they are marked as , across the
+ remoting boundary. If the server is not contactable then
+ the remoting infrastructure will clear the
+ objects from the . To prevent a logging failure from
+ having side effects on the calling application the remoting call must be made
+ from a separate thread to the one used by the application. A
+ thread is used for this. If no thread is available then
+ the events will block in the thread pool manager until a thread is available.
+
+ Because the events are sent asynchronously using pool threads it is possible to close
+ this appender before all the queued events have been sent.
+ When closing the appender attempts to wait until all the queued events have been sent, but
+ this will timeout after 30 seconds regardless.
+
+ If this appender is being closed because the
+ event has fired it may not be possible to send all the queued events. During process
+ exit the runtime limits the time that a
+ event handler is allowed to run for. If the runtime terminates the threads before
+ the queued events have been sent then they will be lost. To ensure that all events
+ are sent the appender must be closed before the application exits. See
+ for details on how to shutdown
+ log4net programmatically.
+
+
+ Nicko Cadell
+ Gert Driesen
+ Daniel Cazzulino
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ Default constructor.
+
+
+
+
+
+ Initialize the appender based on the options set
+
+
+
+ This is part of the delayed object
+ activation scheme. The method must
+ be called on this object after the configuration properties have
+ been set. Until is called this
+ object is in an undefined state and must not be used.
+
+
+ If any of the configuration properties are modified then
+ must be called again.
+
+
+
+
+
+ Send the contents of the buffer to the remote sink.
+
+
+ The events are not sent immediately. They are scheduled to be sent
+ using a pool thread. The effect is that the send occurs asynchronously.
+ This is very important for a number of non obvious reasons. The remoting
+ infrastructure will flow thread local variables (stored in the ),
+ if they are marked as , across the
+ remoting boundary. If the server is not contactable then
+ the remoting infrastructure will clear the
+ objects from the . To prevent a logging failure from
+ having side effects on the calling application the remoting call must be made
+ from a separate thread to the one used by the application. A
+ thread is used for this. If no thread is available then
+ the events will block in the thread pool manager until a thread is available.
+
+ The events to send.
+
+
+
+ Override base class close.
+
+
+
+ This method waits while there are queued work items. The events are
+ sent asynchronously using work items. These items
+ will be sent once a thread pool thread is available to send them, therefore
+ it is possible to close the appender before all the queued events have been
+ sent.
+
+ This method attempts to wait until all the queued events have been sent, but this
+ method will timeout after 30 seconds regardless.
+
+ If the appender is being closed because the
+ event has fired it may not be possible to send all the queued events. During process
+ exit the runtime limits the time that a
+ event handler is allowed to run for.
+
+
+
+
+ A work item is being queued into the thread pool
+
+
+
+
+ A work item from the thread pool has completed
+
+
+
+
+ Send the contents of the buffer to the remote sink.
+
+
+ This method is designed to be used with the .
+ This method expects to be passed an array of
+ objects in the state param.
+
+ the logging events to send
+
+
+
+ The URL of the remote sink.
+
+
+
+
+ The local proxy (.NET remoting) for the remote logging sink.
+
+
+
+
+ The number of queued callbacks currently waiting or executing
+
+
+
+
+ Event used to signal when there are no queued work items
+
+
+ This event is set when there are no queued work items. In this
+ state it is safe to close the appender.
+
+
+
+
+ Gets or sets the URL of the well-known object that will accept
+ the logging events.
+
+
+ The well-known URL of the remote sink.
+
+
+
+ The URL of the remoting sink that will accept logging events.
+ The sink must implement the
+ interface.
+
+
+
+
+
+ Interface used to deliver objects to a remote sink.
+
+
+ This interface must be implemented by a remoting sink
+ if the is to be used
+ to deliver logging events to the sink.
+
+
+
+
+ Delivers logging events to the remote sink
+
+ Array of events to log.
+
+
+ Delivers logging events to the remote sink
+
+
+
+
+
+ Appender that rolls log files based on size or date or both.
+
+
+
+ RollingFileAppender can roll log files based on size or date or both
+ depending on the setting of the property.
+ When set to the log file will be rolled
+ once its size exceeds the .
+ When set to the log file will be rolled
+ once the date boundary specified in the property
+ is crossed.
+ When set to the log file will be
+ rolled once the date boundary specified in the property
+ is crossed, but within a date boundary the file will also be rolled
+ once its size exceeds the .
+ When set to the log file will be rolled when
+ the appender is configured. This effectively means that the log file can be
+ rolled once per program execution.
+
+
+ A of few additional optional features have been added:
+
+ Attach date pattern for current log file
+ Backup number increments for newer files
+ Infinite number of backups by file size
+
+
+
+
+
+ For large or infinite numbers of backup files a
+ greater than zero is highly recommended, otherwise all the backup files need
+ to be renamed each time a new backup is created.
+
+
+ When Date/Time based rolling is used setting
+ to will reduce the number of file renamings to few or none.
+
+
+
+
+
+ Changing or without clearing
+ the log file directory of backup files will cause unexpected and unwanted side effects.
+
+
+
+
+ If Date/Time based rolling is enabled this appender will attempt to roll existing files
+ in the directory without a Date/Time tag based on the last write date of the base log file.
+ The appender only rolls the log file when a message is logged. If Date/Time based rolling
+ is enabled then the appender will not roll the log file at the Date/Time boundary but
+ at the point when the next message is logged after the boundary has been crossed.
+
+
+
+ The extends the and
+ has the same behavior when opening the log file.
+ The appender will first try to open the file for writing when
+ is called. This will typically be during configuration.
+ If the file cannot be opened for writing the appender will attempt
+ to open the file again each time a message is logged to the appender.
+ If the file cannot be opened for writing when a message is logged then
+ the message will be discarded by this appender.
+
+
+ When rolling a backup file necessitates deleting an older backup file the
+ file to be deleted is moved to a temporary name before being deleted.
+
+
+
+
+ A maximum number of backup files when rolling on date/time boundaries is not supported.
+
+
+
+ Nicko Cadell
+ Gert Driesen
+ Aspi Havewala
+ Douglas de la Torre
+ Edward Smit
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ Default constructor.
+
+
+
+
+
+ Sets the quiet writer being used.
+
+
+ This method can be overridden by sub classes.
+
+ the writer to set
+
+
+
+ Write out a logging event.
+
+ the event to write to file.
+
+
+ Handles append time behavior for RollingFileAppender. This checks
+ if a roll over either by date (checked first) or time (checked second)
+ is need and then appends to the file last.
+
+
+
+
+
+ Write out an array of logging events.
+
+ the events to write to file.
+
+
+ Handles append time behavior for RollingFileAppender. This checks
+ if a roll over either by date (checked first) or time (checked second)
+ is need and then appends to the file last.
+
+
+
+
+
+ Performs any required rolling before outputting the next event
+
+
+
+ Handles append time behavior for RollingFileAppender. This checks
+ if a roll over either by date (checked first) or time (checked second)
+ is need and then appends to the file last.
+
+
+
+
+
+ Creates and opens the file for logging. If
+ is false then the fully qualified name is determined and used.
+
+ the name of the file to open
+ true to append to existing file
+
+ This method will ensure that the directory structure
+ for the specified exists.
+
+
+
+
+ Get the current output file name
+
+ the base file name
+ the output file name
+
+ The output file name is based on the base fileName specified.
+ If is set then the output
+ file name is the same as the base file passed in. Otherwise
+ the output file depends on the date pattern, on the count
+ direction or both.
+
+
+
+
+ Determines curSizeRollBackups (only within the current roll point)
+
+
+
+
+ Generates a wildcard pattern that can be used to find all files
+ that are similar to the base file name.
+
+
+
+
+
+
+ Builds a list of filenames for all files matching the base filename plus a file
+ pattern.
+
+
+
+
+
+
+ Initiates a roll over if needed for crossing a date boundary since the last run.
+
+
+
+
+ Initializes based on existing conditions at time of .
+
+
+
+ Initializes based on existing conditions at time of .
+ The following is done
+
+ determine curSizeRollBackups (only within the current roll point)
+ initiates a roll over if needed for crossing a date boundary since the last run.
+
+
+
+
+
+
+ Does the work of bumping the 'current' file counter higher
+ to the highest count when an incremental file name is seen.
+ The highest count is either the first file (when count direction
+ is greater than 0) or the last file (when count direction less than 0).
+ In either case, we want to know the highest count that is present.
+
+
+
+
+
+
+ Takes a list of files and a base file name, and looks for
+ 'incremented' versions of the base file. Bumps the max
+ count up to the highest count seen.
+
+
+
+
+
+
+ Calculates the RollPoint for the datePattern supplied.
+
+ the date pattern to calculate the check period for
+ The RollPoint that is most accurate for the date pattern supplied
+
+ Essentially the date pattern is examined to determine what the
+ most suitable roll point is. The roll point chosen is the roll point
+ with the smallest period that can be detected using the date pattern
+ supplied. i.e. if the date pattern only outputs the year, month, day
+ and hour then the smallest roll point that can be detected would be
+ and hourly roll point as minutes could not be detected.
+
+
+
+
+ Initialize the appender based on the options set
+
+
+
+ This is part of the delayed object
+ activation scheme. The method must
+ be called on this object after the configuration properties have
+ been set. Until is called this
+ object is in an undefined state and must not be used.
+
+
+ If any of the configuration properties are modified then
+ must be called again.
+
+
+ Sets initial conditions including date/time roll over information, first check,
+ scheduledFilename, and calls to initialize
+ the current number of backups.
+
+
+
+
+
+ Rollover the file(s) to date/time tagged file(s).
+
+ set to true if the file to be rolled is currently open
+
+
+ Rollover the file(s) to date/time tagged file(s).
+ Resets curSizeRollBackups.
+ If fileIsOpen is set then the new file is opened (through SafeOpenFile).
+
+
+
+
+
+ Renames file to file .
+
+ Name of existing file to roll.
+ New name for file.
+
+
+ Renames file to file . It
+ also checks for existence of target file and deletes if it does.
+
+
+
+
+
+ Test if a file exists at a specified path
+
+ the path to the file
+ true if the file exists
+
+
+ Test if a file exists at a specified path
+
+
+
+
+
+ Deletes the specified file if it exists.
+
+ The file to delete.
+
+
+ Delete a file if is exists.
+ The file is first moved to a new filename then deleted.
+ This allows the file to be removed even when it cannot
+ be deleted, but it still can be moved.
+
+
+
+
+
+ Implements file roll base on file size.
+
+
+
+ If the maximum number of size based backups is reached
+ (curSizeRollBackups == maxSizeRollBackups) then the oldest
+ file is deleted -- its index determined by the sign of countDirection.
+ If countDirection < 0, then files
+ {File.1, ..., File.curSizeRollBackups -1}
+ are renamed to {File.2, ...,
+ File.curSizeRollBackups}. Moreover, File is
+ renamed File.1 and closed.
+
+
+ A new file is created to receive further log output.
+
+
+ If maxSizeRollBackups is equal to zero, then the
+ File is truncated with no backup files created.
+
+
+ If maxSizeRollBackups < 0, then File is
+ renamed if needed and no files are deleted.
+
+
+
+
+
+ Implements file roll.
+
+ the base name to rename
+
+
+ If the maximum number of size based backups is reached
+ (curSizeRollBackups == maxSizeRollBackups) then the oldest
+ file is deleted -- its index determined by the sign of countDirection.
+ If countDirection < 0, then files
+ {File.1, ..., File.curSizeRollBackups -1}
+ are renamed to {File.2, ...,
+ File.curSizeRollBackups}.
+
+
+ If maxSizeRollBackups is equal to zero, then the
+ File is truncated with no backup files created.
+
+
+ If maxSizeRollBackups < 0, then File is
+ renamed if needed and no files are deleted.
+
+
+ This is called by to rename the files.
+
+
+
+
+
+ Get the start time of the next window for the current rollpoint
+
+ the current date
+ the type of roll point we are working with
+ the start time for the next roll point an interval after the currentDateTime date
+
+
+ Returns the date of the next roll point after the currentDateTime date passed to the method.
+
+
+ The basic strategy is to subtract the time parts that are less significant
+ than the rollpoint from the current time. This should roll the time back to
+ the start of the time window for the current rollpoint. Then we add 1 window
+ worth of time and get the start time of the next window for the rollpoint.
+
+
+
+
+
+ This object supplies the current date/time. Allows test code to plug in
+ a method to control this class when testing date/time based rolling.
+
+
+
+
+ The date pattern. By default, the pattern is set to ".yyyy-MM-dd"
+ meaning daily rollover.
+
+
+
+
+ The actual formatted filename that is currently being written to
+ or will be the file transferred to on roll over
+ (based on staticLogFileName).
+
+
+
+
+ The timestamp when we shall next recompute the filename.
+
+
+
+
+ Holds date of last roll over
+
+
+
+
+ The type of rolling done
+
+
+
+
+ The default maximum file size is 10MB
+
+
+
+
+ There is zero backup files by default
+
+
+
+
+ How many sized based backups have been made so far
+
+
+
+
+ The rolling file count direction.
+
+
+
+
+ The rolling mode used in this appender.
+
+
+
+
+ Cache flag set if we are rolling by date.
+
+
+
+
+ Cache flag set if we are rolling by size.
+
+
+
+
+ Value indicating whether to always log to the same file.
+
+
+
+
+ FileName provided in configuration. Used for rolling properly
+
+
+
+
+ The 1st of January 1970 in UTC
+
+
+
+
+ Gets or sets the date pattern to be used for generating file names
+ when rolling over on date.
+
+
+ The date pattern to be used for generating file names when rolling
+ over on date.
+
+
+
+ Takes a string in the same format as expected by
+ .
+
+
+ This property determines the rollover schedule when rolling over
+ on date.
+
+
+
+
+
+ Gets or sets the maximum number of backup files that are kept before
+ the oldest is erased.
+
+
+ The maximum number of backup files that are kept before the oldest is
+ erased.
+
+
+
+ If set to zero, then there will be no backup files and the log file
+ will be truncated when it reaches .
+
+
+ If a negative number is supplied then no deletions will be made. Note
+ that this could result in very slow performance as a large number of
+ files are rolled over unless is used.
+
+
+ The maximum applies to each time based group of files and
+ not the total.
+
+
+
+
+
+ Gets or sets the maximum size that the output file is allowed to reach
+ before being rolled over to backup files.
+
+
+ The maximum size in bytes that the output file is allowed to reach before being
+ rolled over to backup files.
+
+
+
+ This property is equivalent to except
+ that it is required for differentiating the setter taking a
+ argument from the setter taking a
+ argument.
+
+
+ The default maximum file size is 10MB (10*1024*1024).
+
+
+
+
+
+ Gets or sets the maximum size that the output file is allowed to reach
+ before being rolled over to backup files.
+
+
+ The maximum size that the output file is allowed to reach before being
+ rolled over to backup files.
+
+
+
+ This property allows you to specify the maximum size with the
+ suffixes "KB", "MB" or "GB" so that the size is interpreted being
+ expressed respectively in kilobytes, megabytes or gigabytes.
+
+
+ For example, the value "10KB" will be interpreted as 10240 bytes.
+
+
+ The default maximum file size is 10MB.
+
+
+ If you have the option to set the maximum file size programmatically
+ consider using the property instead as this
+ allows you to set the size in bytes as a .
+
+
+
+
+
+ Gets or sets the rolling file count direction.
+
+
+ The rolling file count direction.
+
+
+
+ Indicates if the current file is the lowest numbered file or the
+ highest numbered file.
+
+
+ By default newer files have lower numbers ( < 0),
+ i.e. log.1 is most recent, log.5 is the 5th backup, etc...
+
+
+ >= 0 does the opposite i.e.
+ log.1 is the first backup made, log.5 is the 5th backup made, etc.
+ For infinite backups use >= 0 to reduce
+ rollover costs.
+
+ The default file count direction is -1.
+
+
+
+
+ Gets or sets the rolling style.
+
+ The rolling style.
+
+
+ The default rolling style is .
+
+
+ When set to this appender's
+ property is set to false, otherwise
+ the appender would append to a single file rather than rolling
+ the file each time it is opened.
+
+
+
+
+
+ Gets or sets a value indicating whether to always log to
+ the same file.
+
+
+ true if always should be logged to the same file, otherwise false.
+
+
+
+ By default file.log is always the current file. Optionally
+ file.log.yyyy-mm-dd for current formatted datePattern can by the currently
+ logging file (or file.log.curSizeRollBackup or even
+ file.log.yyyy-mm-dd.curSizeRollBackup).
+
+
+ This will make time based rollovers with a large number of backups
+ much faster as the appender it won't have to rename all the backups!
+
+
+
+
+
+ Style of rolling to use
+
+
+
+ Style of rolling to use
+
+
+
+
+
+ Roll files once per program execution
+
+
+
+ Roll files once per program execution.
+ Well really once each time this appender is
+ configured.
+
+
+ Setting this option also sets AppendToFile to
+ false on the RollingFileAppender, otherwise
+ this appender would just be a normal file appender.
+
+
+
+
+
+ Roll files based only on the size of the file
+
+
+
+
+ Roll files based only on the date
+
+
+
+
+ Roll files based on both the size and date of the file
+
+
+
+
+ The code assumes that the following 'time' constants are in a increasing sequence.
+
+
+
+ The code assumes that the following 'time' constants are in a increasing sequence.
+
+
+
+
+
+ Roll the log not based on the date
+
+
+
+
+ Roll the log for each minute
+
+
+
+
+ Roll the log for each hour
+
+
+
+
+ Roll the log twice a day (midday and midnight)
+
+
+
+
+ Roll the log each day (midnight)
+
+
+
+
+ Roll the log each week
+
+
+
+
+ Roll the log each month
+
+
+
+
+ This interface is used to supply Date/Time information to the .
+
+
+ This interface is used to supply Date/Time information to the .
+ Used primarily to allow test classes to plug themselves in so they can
+ supply test date/times.
+
+
+
+
+ Gets the current time.
+
+ The current time.
+
+
+ Gets the current time.
+
+
+
+
+
+ Default implementation of that returns the current time.
+
+
+
+
+ Gets the current time.
+
+ The current time.
+
+
+ Gets the current time.
+
+
+
+
+
+ Send an e-mail when a specific logging event occurs, typically on errors
+ or fatal errors.
+
+
+
+ The number of logging events delivered in this e-mail depend on
+ the value of option. The
+ keeps only the last
+ logging events in its
+ cyclic buffer. This keeps memory requirements at a reasonable level while
+ still delivering useful application context.
+
+
+ Authentication and setting the server Port are only available on the MS .NET 1.1 runtime.
+ For these features to be enabled you need to ensure that you are using a version of
+ the log4net assembly that is built against the MS .NET 1.1 framework and that you are
+ running the your application on the MS .NET 1.1 runtime. On all other platforms only sending
+ unauthenticated messages to a server listening on port 25 (the default) is supported.
+
+
+ Authentication is supported by setting the property to
+ either or .
+ If using authentication then the
+ and properties must also be set.
+
+
+ To set the SMTP server port use the property. The default port is 25.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Default constructor
+
+
+
+ Default constructor
+
+
+
+
+
+ Sends the contents of the cyclic buffer as an e-mail message.
+
+ The logging events to send.
+
+
+
+ Send the email message
+
+ the body text to include in the mail
+
+
+
+ Gets or sets a semicolon-delimited list of recipient e-mail addresses.
+
+
+ A semicolon-delimited list of e-mail addresses.
+
+
+
+ A semicolon-delimited list of recipient e-mail addresses.
+
+
+
+
+
+ Gets or sets the e-mail address of the sender.
+
+
+ The e-mail address of the sender.
+
+
+
+ The e-mail address of the sender.
+
+
+
+
+
+ Gets or sets the subject line of the e-mail message.
+
+
+ The subject line of the e-mail message.
+
+
+
+ The subject line of the e-mail message.
+
+
+
+
+
+ Gets or sets the name of the SMTP relay mail server to use to send
+ the e-mail messages.
+
+
+ The name of the e-mail relay server. If SmtpServer is not set, the
+ name of the local SMTP server is used.
+
+
+
+ The name of the e-mail relay server. If SmtpServer is not set, the
+ name of the local SMTP server is used.
+
+
+
+
+
+ Obsolete
+
+
+ Use the BufferingAppenderSkeleton Fix methods instead
+
+
+
+ Obsolete property.
+
+
+
+
+
+ The mode to use to authentication with the SMTP server
+
+
+ Authentication is only available on the MS .NET 1.1 runtime.
+
+ Valid Authentication mode values are: ,
+ , and .
+ The default value is . When using
+ you must specify the
+ and to use to authenticate.
+ When using the Windows credentials for the current
+ thread, if impersonating, or the process will be used to authenticate.
+
+
+
+
+
+ The username to use to authenticate with the SMTP server
+
+
+ Authentication is only available on the MS .NET 1.1 runtime.
+
+ A and must be specified when
+ is set to ,
+ otherwise the username will be ignored.
+
+
+
+
+
+ The password to use to authenticate with the SMTP server
+
+
+ Authentication is only available on the MS .NET 1.1 runtime.
+
+ A and must be specified when
+ is set to ,
+ otherwise the password will be ignored.
+
+
+
+
+
+ The port on which the SMTP server is listening
+
+
+ Server Port is only available on the MS .NET 1.1 runtime.
+
+ The port on which the SMTP server is listening. The default
+ port is 25. The Port can only be changed when running on
+ the MS .NET 1.1 runtime.
+
+
+
+
+
+ Gets or sets the priority of the e-mail message
+
+
+ One of the values.
+
+
+
+ Sets the priority of the e-mails generated by this
+ appender. The default priority is .
+
+
+ If you are using this appender to report errors then
+ you may want to set the priority to .
+
+
+
+
+
+ This appender requires a to be set.
+
+ true
+
+
+ This appender requires a to be set.
+
+
+
+
+
+ Values for the property.
+
+
+
+ SMTP authentication modes.
+
+
+
+
+
+ No authentication
+
+
+
+
+ Basic authentication.
+
+
+ Requires a username and password to be supplied
+
+
+
+
+ Integrated authentication
+
+
+ Uses the Windows credentials from the current thread or process to authenticate.
+
+
+
+
+ Send an email when a specific logging event occurs, typically on errors
+ or fatal errors. Rather than sending via smtp it writes a file into the
+ directory specified by . This allows services such
+ as the IIS SMTP agent to manage sending the messages.
+
+
+
+ The configuration for this appender is identical to that of the SMTPAppender,
+ except that instead of specifying the SMTPAppender.SMTPHost you specify
+ .
+
+
+ The number of logging events delivered in this e-mail depend on
+ the value of option. The
+ keeps only the last
+ logging events in its
+ cyclic buffer. This keeps memory requirements at a reasonable level while
+ still delivering useful application context.
+
+
+ Niall Daley
+ Nicko Cadell
+
+
+
+ Default constructor
+
+
+
+ Default constructor
+
+
+
+
+
+ Sends the contents of the cyclic buffer as an e-mail message.
+
+ The logging events to send.
+
+
+ Sends the contents of the cyclic buffer as an e-mail message.
+
+
+
+
+
+ Activate the options on this appender.
+
+
+
+ This is part of the delayed object
+ activation scheme. The method must
+ be called on this object after the configuration properties have
+ been set. Until is called this
+ object is in an undefined state and must not be used.
+
+
+ If any of the configuration properties are modified then
+ must be called again.
+
+
+
+
+
+ Convert a path into a fully qualified path.
+
+ The path to convert.
+ The fully qualified path.
+
+
+ Converts the path specified to a fully
+ qualified path. If the path is relative it is
+ taken as relative from the application base
+ directory.
+
+
+
+
+
+ The security context to use for privileged calls
+
+
+
+
+ Gets or sets a semicolon-delimited list of recipient e-mail addresses.
+
+
+ A semicolon-delimited list of e-mail addresses.
+
+
+
+ A semicolon-delimited list of e-mail addresses.
+
+
+
+
+
+ Gets or sets the e-mail address of the sender.
+
+
+ The e-mail address of the sender.
+
+
+
+ The e-mail address of the sender.
+
+
+
+
+
+ Gets or sets the subject line of the e-mail message.
+
+
+ The subject line of the e-mail message.
+
+
+
+ The subject line of the e-mail message.
+
+
+
+
+
+ Gets or sets the path to write the messages to.
+
+
+
+ Gets or sets the path to write the messages to. This should be the same
+ as that used by the agent sending the messages.
+
+
+
+
+
+ Gets or sets the used to write to the pickup directory.
+
+
+ The used to write to the pickup directory.
+
+
+
+ Unless a specified here for this appender
+ the is queried for the
+ security context to use. The default behavior is to use the security context
+ of the current thread.
+
+
+
+
+
+ This appender requires a to be set.
+
+ true
+
+
+ This appender requires a to be set.
+
+
+
+
+
+ Appender that allows clients to connect via Telnet to receive log messages
+
+
+
+ The TelnetAppender accepts socket connections and streams logging messages
+ back to the client.
+ The output is provided in a telnet-friendly way so that a log can be monitored
+ over a TCP/IP socket.
+ This allows simple remote monitoring of application logging.
+
+
+ The default is 23 (the telnet port).
+
+
+ Keith Long
+ Nicko Cadell
+
+
+
+ Default constructor
+
+
+
+ Default constructor
+
+
+
+
+
+ Overrides the parent method to close the socket handler
+
+
+
+ Closes all the outstanding connections.
+
+
+
+
+
+ Initialize the appender based on the options set.
+
+
+
+ This is part of the delayed object
+ activation scheme. The method must
+ be called on this object after the configuration properties have
+ been set. Until is called this
+ object is in an undefined state and must not be used.
+
+
+ If any of the configuration properties are modified then
+ must be called again.
+
+
+ Create the socket handler and wait for connections
+
+
+
+
+
+ Writes the logging event to each connected client.
+
+ The event to log.
+
+
+ Writes the logging event to each connected client.
+
+
+
+
+
+ Gets or sets the TCP port number on which this will listen for connections.
+
+
+ An integer value in the range to
+ indicating the TCP port number on which this will listen for connections.
+
+
+
+ The default value is 23 (the telnet port).
+
+
+ The value specified is less than
+ or greater than .
+
+
+
+ This appender requires a to be set.
+
+ true
+
+
+ This appender requires a to be set.
+
+
+
+
+
+ Helper class to manage connected clients
+
+
+
+ The SocketHandler class is used to accept connections from
+ clients. It is threaded so that clients can connect/disconnect
+ asynchronously.
+
+
+
+
+
+ Opens a new server port on
+
+ the local port to listen on for connections
+
+
+ Creates a socket handler on the specified local server port.
+
+
+
+
+
+ Sends a string message to each of the connected clients
+
+ the text to send
+
+
+ Sends a string message to each of the connected clients
+
+
+
+
+
+ Add a client to the internal clients list
+
+ client to add
+
+
+
+ Remove a client from the internal clients list
+
+ client to remove
+
+
+
+ Callback used to accept a connection on the server socket
+
+ The result of the asynchronous operation
+
+
+ On connection adds to the list of connections
+ if there are two many open connections you will be disconnected
+
+
+
+
+
+ Close all network connections
+
+
+
+ Make sure we close all network connections
+
+
+
+
+
+ Test if this handler has active connections
+
+
+ true if this handler has active connections
+
+
+
+ This property will be true while this handler has
+ active connections, that is at least one connection that
+ the handler will attempt to send a message to.
+
+
+
+
+
+ Class that represents a client connected to this handler
+
+
+
+ Class that represents a client connected to this handler
+
+
+
+
+
+ Create this for the specified
+
+ the client's socket
+
+
+ Opens a stream writer on the socket.
+
+
+
+
+
+ Write a string to the client
+
+ string to send
+
+
+ Write a string to the client
+
+
+
+
+
+ Cleanup the clients connection
+
+
+
+ Close the socket connection.
+
+
+
+
+
+ Appends log events to the system.
+
+
+
+ The application configuration file can be used to control what listeners
+ are actually used. See the MSDN documentation for the
+ class for details on configuring the
+ trace system.
+
+
+ Events are written using the System.Diagnostics.Trace.Write(string,string)
+ method. The event's logger name is passed as the value for the category name to the Write method.
+
+
+ Compact Framework
+ The Compact Framework does not support the
+ class for any operation except Assert. When using the Compact Framework this
+ appender will write to the system rather than
+ the Trace system. This appender will therefore behave like the .
+
+
+ Douglas de la Torre
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Initializes a new instance of the .
+
+
+
+ Default constructor.
+
+
+
+
+
+ Initializes a new instance of the
+ with a specified layout.
+
+ The layout to use with this appender.
+
+
+ Obsolete constructor.
+
+
+
+
+
+ Writes the logging event to the system.
+
+ The event to log.
+
+
+ Writes the logging event to the system.
+
+
+
+
+
+ Immediate flush means that the underlying writer or output stream
+ will be flushed at the end of each append operation.
+
+
+
+ Immediate flush is slower but ensures that each append request is
+ actually written. If is set to
+ false, then there is a good chance that the last few
+ logs events are not actually written to persistent media if and
+ when the application crashes.
+
+
+ The default value is true.
+
+
+
+
+ Gets or sets a value that indicates whether the appender will
+ flush at the end of each write.
+
+
+ The default behavior is to flush at the end of each
+ write. If the option is set tofalse, then the underlying
+ stream can defer writing to physical medium to a later time.
+
+
+ Avoiding the flush operation at the end of each append results
+ in a performance gain of 10 to 20 percent. However, there is safety
+ trade-off involved in skipping flushing. Indeed, when flushing is
+ skipped, then it is likely that the last few log events will not
+ be recorded on disk when the application exits. This is a high
+ price to pay even for a 20% performance gain.
+
+
+
+
+
+ This appender requires a to be set.
+
+ true
+
+
+ This appender requires a to be set.
+
+
+
+
+
+ Assembly level attribute that specifies a domain to alias to this assembly's repository.
+
+
+
+ AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute.
+
+
+ An assembly's logger repository is defined by its ,
+ however this can be overridden by an assembly loaded before the target assembly.
+
+
+ An assembly can alias another assembly's domain to its repository by
+ specifying this attribute with the name of the target domain.
+
+
+ This attribute can only be specified on the assembly and may be used
+ as many times as necessary to alias all the required domains.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Assembly level attribute that specifies a repository to alias to this assembly's repository.
+
+
+
+ An assembly's logger repository is defined by its ,
+ however this can be overridden by an assembly loaded before the target assembly.
+
+
+ An assembly can alias another assembly's repository to its repository by
+ specifying this attribute with the name of the target repository.
+
+
+ This attribute can only be specified on the assembly and may be used
+ as many times as necessary to alias all the required repositories.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Initializes a new instance of the class with
+ the specified repository to alias to this assembly's repository.
+
+ The repository to alias to this assemby's repository.
+
+
+ Initializes a new instance of the class with
+ the specified repository to alias to this assembly's repository.
+
+
+
+
+
+ Gets or sets the repository to alias to this assemby's repository.
+
+
+ The repository to alias to this assemby's repository.
+
+
+
+ The name of the repository to alias to this assemby's repository.
+
+
+
+
+
+ Initializes a new instance of the class with
+ the specified domain to alias to this assembly's repository.
+
+ The domain to alias to this assemby's repository.
+
+
+ Obsolete. Use instead of .
+
+
+
+
+
+ Use this class to quickly configure a .
+
+
+
+ Allows very simple programmatic configuration of log4net.
+
+
+ Only one appender can be configured using this configurator.
+ The appender is set at the root of the hierarchy and all logging
+ events will be delivered to that appender.
+
+
+ Appenders can also implement the interface. Therefore
+ they would require that the method
+ be called after the appenders properties have been configured.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ Uses a private access modifier to prevent instantiation of this class.
+
+
+
+
+
+ Initializes the log4net system with a default configuration.
+
+
+
+ Initializes the log4net logging system using a
+ that will write to Console.Out. The log messages are
+ formatted using the layout object
+ with the
+ layout style.
+
+
+
+
+
+ Initializes the log4net system using the specified appender.
+
+ The appender to use to log all logging events.
+
+
+ Initializes the log4net system using the specified appender.
+
+
+
+
+
+ Initializes the with a default configuration.
+
+ The repository to configure.
+
+
+ Initializes the specified repository using a
+ that will write to Console.Out. The log messages are
+ formatted using the layout object
+ with the
+ layout style.
+
+
+
+
+
+ Initializes the using the specified appender.
+
+ The repository to configure.
+ The appender to use to log all logging events.
+
+
+ Initializes the using the specified appender.
+
+
+
+
+
+ Base class for all log4net configuration attributes.
+
+
+ This is an abstract class that must be extended by
+ specific configurators. This attribute allows the
+ configurator to be parameterized by an assembly level
+ attribute.
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Constructor used by subclasses.
+
+ the ordering priority for this configurator
+
+
+ The is used to order the configurator
+ attributes before they are invoked. Higher priority configurators are executed
+ before lower priority ones.
+
+
+
+
+
+ Configures the for the specified assembly.
+
+ The assembly that this attribute was defined on.
+ The repository to configure.
+
+
+ Abstract method implemented by a subclass. When this method is called
+ the subclass should configure the .
+
+
+
+
+
+ Compare this instance to another ConfiguratorAttribute
+
+ the object to compare to
+ see
+
+
+ Compares the priorities of the two instances.
+ Sorts by priority in descending order. Objects with the same priority are
+ randomly ordered.
+
+
+
+
+
+ Assembly level attribute that specifies the logging domain for the assembly.
+
+
+
+ DomainAttribute is obsolete. Use RepositoryAttribute instead of DomainAttribute.
+
+
+ Assemblies are mapped to logging domains. Each domain has its own
+ logging repository. This attribute specified on the assembly controls
+ the configuration of the domain. The property specifies the name
+ of the domain that this assembly is a part of. The
+ specifies the type of the repository objects to create for the domain. If
+ this attribute is not specified and a is not specified
+ then the assembly will be part of the default shared logging domain.
+
+
+ This attribute can only be specified on the assembly and may only be used
+ once per assembly.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Assembly level attribute that specifies the logging repository for the assembly.
+
+
+
+ Assemblies are mapped to logging repository. This attribute specified
+ on the assembly controls
+ the configuration of the repository. The property specifies the name
+ of the repository that this assembly is a part of. The
+ specifies the type of the object
+ to create for the assembly. If this attribute is not specified or a
+ is not specified then the assembly will be part of the default shared logging repository.
+
+
+ This attribute can only be specified on the assembly and may only be used
+ once per assembly.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ Default constructor.
+
+
+
+
+
+ Initialize a new instance of the class
+ with the name of the repository.
+
+ The name of the repository.
+
+
+ Initialize the attribute with the name for the assembly's repository.
+
+
+
+
+
+ Gets or sets the name of the logging repository.
+
+
+ The string name to use as the name of the repository associated with this
+ assembly.
+
+
+
+ This value does not have to be unique. Several assemblies can share the
+ same repository. They will share the logging configuration of the repository.
+
+
+
+
+
+ Gets or sets the type of repository to create for this assembly.
+
+
+ The type of repository to create for this assembly.
+
+
+
+ The type of the repository to create for the assembly.
+ The type must implement the
+ interface.
+
+
+ This will be the type of repository created when
+ the repository is created. If multiple assemblies reference the
+ same repository then the repository is only created once using the
+ of the first assembly to call into the
+ repository.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ Obsolete. Use RepositoryAttribute instead of DomainAttribute.
+
+
+
+
+
+ Initialize a new instance of the class
+ with the name of the domain.
+
+ The name of the domain.
+
+
+ Obsolete. Use RepositoryAttribute instead of DomainAttribute.
+
+
+
+
+
+ Use this class to initialize the log4net environment using an Xml tree.
+
+
+
+ DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator.
+
+
+ Configures a using an Xml tree.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Private constructor
+
+
+
+
+ Automatically configures the log4net system based on the
+ application's configuration settings.
+
+
+
+ DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator.
+
+ Each application has a configuration file. This has the
+ same name as the application with '.config' appended.
+ This file is XML and calling this function prompts the
+ configurator to look in that file for a section called
+ log4net that contains the configuration data.
+
+
+
+
+ Automatically configures the using settings
+ stored in the application's configuration file.
+
+
+
+ DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator.
+
+ Each application has a configuration file. This has the
+ same name as the application with '.config' appended.
+ This file is XML and calling this function prompts the
+ configurator to look in that file for a section called
+ log4net that contains the configuration data.
+
+ The repository to configure.
+
+
+
+ Configures log4net using a log4net element
+
+
+
+ DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator.
+
+ Loads the log4net configuration from the XML element
+ supplied as .
+
+ The element to parse.
+
+
+
+ Configures the using the specified XML
+ element.
+
+
+
+ DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator.
+
+ Loads the log4net configuration from the XML element
+ supplied as .
+
+ The repository to configure.
+ The element to parse.
+
+
+
+ Configures log4net using the specified configuration file.
+
+ The XML file to load the configuration from.
+
+
+ DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator.
+
+
+ The configuration file must be valid XML. It must contain
+ at least one element called log4net that holds
+ the log4net configuration data.
+
+
+ The log4net configuration file can possible be specified in the application's
+ configuration file (either MyAppName.exe.config for a
+ normal application on Web.config for an ASP.NET application).
+
+
+ The following example configures log4net using a configuration file, of which the
+ location is stored in the application's configuration file :
+
+
+ using log4net.Config;
+ using System.IO;
+ using System.Configuration;
+
+ ...
+
+ DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"]));
+
+
+ In the .config file, the path to the log4net can be specified like this :
+
+
+
+
+
+
+
+
+
+
+
+
+ Configures log4net using the specified configuration file.
+
+ A stream to load the XML configuration from.
+
+
+ DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator.
+
+
+ The configuration data must be valid XML. It must contain
+ at least one element called log4net that holds
+ the log4net configuration data.
+
+
+ Note that this method will NOT close the stream parameter.
+
+
+
+
+
+ Configures the using the specified configuration
+ file.
+
+ The repository to configure.
+ The XML file to load the configuration from.
+
+
+ DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator.
+
+
+ The configuration file must be valid XML. It must contain
+ at least one element called log4net that holds
+ the configuration data.
+
+
+ The log4net configuration file can possible be specified in the application's
+ configuration file (either MyAppName.exe.config for a
+ normal application on Web.config for an ASP.NET application).
+
+
+ The following example configures log4net using a configuration file, of which the
+ location is stored in the application's configuration file :
+
+
+ using log4net.Config;
+ using System.IO;
+ using System.Configuration;
+
+ ...
+
+ DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"]));
+
+
+ In the .config file, the path to the log4net can be specified like this :
+
+
+
+
+
+
+
+
+
+
+
+
+ Configures the using the specified configuration
+ file.
+
+ The repository to configure.
+ The stream to load the XML configuration from.
+
+
+ DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator.
+
+
+ The configuration data must be valid XML. It must contain
+ at least one element called log4net that holds
+ the configuration data.
+
+
+ Note that this method will NOT close the stream parameter.
+
+
+
+
+
+ Configures log4net using the file specified, monitors the file for changes
+ and reloads the configuration if a change is detected.
+
+ The XML file to load the configuration from.
+
+
+ DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator.
+
+
+ The configuration file must be valid XML. It must contain
+ at least one element called log4net that holds
+ the configuration data.
+
+
+ The configuration file will be monitored using a
+ and depends on the behavior of that class.
+
+
+ For more information on how to configure log4net using
+ a separate configuration file, see .
+
+
+
+
+
+
+ Configures the using the file specified,
+ monitors the file for changes and reloads the configuration if a change
+ is detected.
+
+ The repository to configure.
+ The XML file to load the configuration from.
+
+
+ DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator.
+
+
+ The configuration file must be valid XML. It must contain
+ at least one element called log4net that holds
+ the configuration data.
+
+
+ The configuration file will be monitored using a
+ and depends on the behavior of that class.
+
+
+ For more information on how to configure log4net using
+ a separate configuration file, see .
+
+
+
+
+
+
+ Assembly level attribute to configure the .
+
+
+
+ AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute.
+
+
+ This attribute may only be used at the assembly scope and can only
+ be used once per assembly.
+
+
+ Use this attribute to configure the
+ without calling one of the
+ methods.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Assembly level attribute to configure the .
+
+
+
+ This attribute may only be used at the assembly scope and can only
+ be used once per assembly.
+
+
+ Use this attribute to configure the
+ without calling one of the
+ methods.
+
+
+ If neither of the or
+ properties are set the configuration is loaded from the application's .config file.
+ If set the property takes priority over the
+ property. The property
+ specifies a path to a file to load the config from. The path is relative to the
+ application's base directory; .
+ The property is used as a postfix to the assembly file name.
+ The config file must be located in the application's base directory; .
+ For example in a console application setting the to
+ config has the same effect as not specifying the or
+ properties.
+
+
+ The property can be set to cause the
+ to watch the configuration file for changes.
+
+
+
+ Log4net will only look for assembly level configuration attributes once.
+ When using the log4net assembly level attributes to control the configuration
+ of log4net you must ensure that the first call to any of the
+ methods is made from the assembly with the configuration
+ attributes.
+
+
+ If you cannot guarantee the order in which log4net calls will be made from
+ different assemblies you must use programmatic configuration instead, i.e.
+ call the method directly.
+
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Default constructor
+
+
+
+ Default constructor
+
+
+
+
+
+ Configures the for the specified assembly.
+
+ The assembly that this attribute was defined on.
+ The repository to configure.
+
+
+ Configure the repository using the .
+ The specified must extend the
+ class otherwise the will not be able to
+ configure it.
+
+
+ The does not extend .
+
+
+
+ Attempt to load configuration from the local file system
+
+ The assembly that this attribute was defined on.
+ The repository to configure.
+
+
+
+ Configure the specified repository using a
+
+ The repository to configure.
+ the FileInfo pointing to the config file
+
+
+
+ Attempt to load configuration from a URI
+
+ The assembly that this attribute was defined on.
+ The repository to configure.
+
+
+
+ Gets or sets the filename of the configuration file.
+
+
+ The filename of the configuration file.
+
+
+
+ If specified, this is the name of the configuration file to use with
+ the . This file path is relative to the
+ application base directory ().
+
+
+ The takes priority over the .
+
+
+
+
+
+ Gets or sets the extension of the configuration file.
+
+
+ The extension of the configuration file.
+
+
+
+ If specified this is the extension for the configuration file.
+ The path to the config file is built by using the application
+ base directory (),
+ the assembly file name and the config file extension.
+
+
+ If the is set to MyExt then
+ possible config file names would be: MyConsoleApp.exe.MyExt or
+ MyClassLibrary.dll.MyExt.
+
+
+ The takes priority over the .
+
+
+
+
+
+ Gets or sets a value indicating whether to watch the configuration file.
+
+
+ true if the configuration should be watched, false otherwise.
+
+
+
+ If this flag is specified and set to true then the framework
+ will watch the configuration file and will reload the config each time
+ the file is modified.
+
+
+ The config file can only be watched if it is loaded from local disk.
+ In a No-Touch (Smart Client) deployment where the application is downloaded
+ from a web server the config file may not reside on the local disk
+ and therefore it may not be able to watch it.
+
+
+ Watching configuration is not supported on the SSCLI.
+
+
+
+
+
+ Class to register for the log4net section of the configuration file
+
+
+ The log4net section of the configuration file needs to have a section
+ handler registered. This is the section handler used. It simply returns
+ the XML element that is the root of the section.
+
+
+ Example of registering the log4net section handler :
+
+
+
+
+
+
+ log4net configuration XML goes here
+
+
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ Default constructor.
+
+
+
+
+
+ Parses the configuration section.
+
+ The configuration settings in a corresponding parent configuration section.
+ The configuration context when called from the ASP.NET configuration system. Otherwise, this parameter is reserved and is a null reference.
+ The for the log4net section.
+ The for the log4net section.
+
+
+ Returns the containing the configuration data,
+
+
+
+
+
+ Assembly level attribute that specifies a plugin to attach to
+ the repository.
+
+
+
+ Specifies the type of a plugin to create and attach to the
+ assembly's repository. The plugin type must implement the
+ interface.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Interface used to create plugins.
+
+
+
+ Interface used to create a plugin.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Creates the plugin object.
+
+ the new plugin instance
+
+
+ Create and return a new plugin instance.
+
+
+
+
+
+ Initializes a new instance of the class
+ with the specified type.
+
+ The type name of plugin to create.
+
+
+ Create the attribute with the plugin type specified.
+
+
+ Where possible use the constructor that takes a .
+
+
+
+
+
+ Initializes a new instance of the class
+ with the specified type.
+
+ The type of plugin to create.
+
+
+ Create the attribute with the plugin type specified.
+
+
+
+
+
+ Creates the plugin object defined by this attribute.
+
+
+
+ Creates the instance of the object as
+ specified by this attribute.
+
+
+ The plugin object.
+
+
+
+ Returns a representation of the properties of this object.
+
+
+
+ Overrides base class method to
+ return a representation of the properties of this object.
+
+
+ A representation of the properties of this object
+
+
+
+ Gets or sets the type for the plugin.
+
+
+ The type for the plugin.
+
+
+
+ The type for the plugin.
+
+
+
+
+
+ Gets or sets the type name for the plugin.
+
+
+ The type name for the plugin.
+
+
+
+ The type name for the plugin.
+
+
+ Where possible use the property instead.
+
+
+
+
+
+ Assembly level attribute to configure the .
+
+
+
+ This attribute may only be used at the assembly scope and can only
+ be used once per assembly.
+
+
+ Use this attribute to configure the
+ without calling one of the
+ methods.
+
+
+ Nicko Cadell
+
+
+
+ Construct provider attribute with type specified
+
+ the type of the provider to use
+
+
+ The provider specified must subclass the
+ class.
+
+
+
+
+
+ Configures the SecurityContextProvider
+
+ The assembly that this attribute was defined on.
+ The repository to configure.
+
+
+ Creates a provider instance from the specified.
+ Sets this as the default security context provider .
+
+
+
+
+
+ Gets or sets the type of the provider to use.
+
+
+ the type of the provider to use.
+
+
+
+ The provider specified must subclass the
+ class.
+
+
+
+
+
+ Use this class to initialize the log4net environment using an Xml tree.
+
+
+
+ Configures a using an Xml tree.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Private constructor
+
+
+
+
+ Automatically configures the log4net system based on the
+ application's configuration settings.
+
+
+
+ Each application has a configuration file. This has the
+ same name as the application with '.config' appended.
+ This file is XML and calling this function prompts the
+ configurator to look in that file for a section called
+ log4net that contains the configuration data.
+
+
+ To use this method to configure log4net you must specify
+ the section
+ handler for the log4net configuration section. See the
+ for an example.
+
+
+
+
+
+
+ Automatically configures the using settings
+ stored in the application's configuration file.
+
+
+
+ Each application has a configuration file. This has the
+ same name as the application with '.config' appended.
+ This file is XML and calling this function prompts the
+ configurator to look in that file for a section called
+ log4net that contains the configuration data.
+
+
+ To use this method to configure log4net you must specify
+ the section
+ handler for the log4net configuration section. See the
+ for an example.
+
+
+ The repository to configure.
+
+
+
+ Configures log4net using a log4net element
+
+
+
+ Loads the log4net configuration from the XML element
+ supplied as .
+
+
+ The element to parse.
+
+
+
+ Configures the using the specified XML
+ element.
+
+
+ Loads the log4net configuration from the XML element
+ supplied as .
+
+ The repository to configure.
+ The element to parse.
+
+
+
+ Configures log4net using the specified configuration file.
+
+ The XML file to load the configuration from.
+
+
+ The configuration file must be valid XML. It must contain
+ at least one element called log4net that holds
+ the log4net configuration data.
+
+
+ The log4net configuration file can possible be specified in the application's
+ configuration file (either MyAppName.exe.config for a
+ normal application on Web.config for an ASP.NET application).
+
+
+ The first element matching <configuration> will be read as the
+ configuration. If this file is also a .NET .config file then you must specify
+ a configuration section for the log4net element otherwise .NET will
+ complain. Set the type for the section handler to , for example:
+
+
+
+
+
+
+
+ The following example configures log4net using a configuration file, of which the
+ location is stored in the application's configuration file :
+
+
+ using log4net.Config;
+ using System.IO;
+ using System.Configuration;
+
+ ...
+
+ XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"]));
+
+
+ In the .config file, the path to the log4net can be specified like this :
+
+
+
+
+
+
+
+
+
+
+
+
+ Configures log4net using the specified configuration URI.
+
+ A URI to load the XML configuration from.
+
+
+ The configuration data must be valid XML. It must contain
+ at least one element called log4net that holds
+ the log4net configuration data.
+
+
+ The must support the URI scheme specified.
+
+
+
+
+
+ Configures log4net using the specified configuration data stream.
+
+ A stream to load the XML configuration from.
+
+
+ The configuration data must be valid XML. It must contain
+ at least one element called log4net that holds
+ the log4net configuration data.
+
+
+ Note that this method will NOT close the stream parameter.
+
+
+
+
+
+ Configures the using the specified configuration
+ file.
+
+ The repository to configure.
+ The XML file to load the configuration from.
+
+
+ The configuration file must be valid XML. It must contain
+ at least one element called log4net that holds
+ the configuration data.
+
+
+ The log4net configuration file can possible be specified in the application's
+ configuration file (either MyAppName.exe.config for a
+ normal application on Web.config for an ASP.NET application).
+
+
+ The first element matching <configuration> will be read as the
+ configuration. If this file is also a .NET .config file then you must specify
+ a configuration section for the log4net element otherwise .NET will
+ complain. Set the type for the section handler to , for example:
+
+
+
+
+
+
+
+ The following example configures log4net using a configuration file, of which the
+ location is stored in the application's configuration file :
+
+
+ using log4net.Config;
+ using System.IO;
+ using System.Configuration;
+
+ ...
+
+ XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"]));
+
+
+ In the .config file, the path to the log4net can be specified like this :
+
+
+
+
+
+
+
+
+
+
+
+
+ Configures the using the specified configuration
+ URI.
+
+ The repository to configure.
+ A URI to load the XML configuration from.
+
+
+ The configuration data must be valid XML. It must contain
+ at least one element called log4net that holds
+ the configuration data.
+
+
+ The must support the URI scheme specified.
+
+
+
+
+
+ Configures the using the specified configuration
+ file.
+
+ The repository to configure.
+ The stream to load the XML configuration from.
+
+
+ The configuration data must be valid XML. It must contain
+ at least one element called log4net that holds
+ the configuration data.
+
+
+ Note that this method will NOT close the stream parameter.
+
+
+
+
+
+ Configures log4net using the file specified, monitors the file for changes
+ and reloads the configuration if a change is detected.
+
+ The XML file to load the configuration from.
+
+
+ The configuration file must be valid XML. It must contain
+ at least one element called log4net that holds
+ the configuration data.
+
+
+ The configuration file will be monitored using a
+ and depends on the behavior of that class.
+
+
+ For more information on how to configure log4net using
+ a separate configuration file, see .
+
+
+
+
+
+
+ Configures the using the file specified,
+ monitors the file for changes and reloads the configuration if a change
+ is detected.
+
+ The repository to configure.
+ The XML file to load the configuration from.
+
+
+ The configuration file must be valid XML. It must contain
+ at least one element called log4net that holds
+ the configuration data.
+
+
+ The configuration file will be monitored using a
+ and depends on the behavior of that class.
+
+
+ For more information on how to configure log4net using
+ a separate configuration file, see .
+
+
+
+
+
+
+ Configures the specified repository using a log4net element.
+
+ The hierarchy to configure.
+ The element to parse.
+
+
+ Loads the log4net configuration from the XML element
+ supplied as .
+
+
+ This method is ultimately called by one of the Configure methods
+ to load the configuration from an .
+
+
+
+
+
+ Class used to watch config files.
+
+
+
+ Uses the to monitor
+ changes to a specified file. Because multiple change notifications
+ may be raised when the file is modified, a timer is used to
+ compress the notifications into a single event. The timer
+ waits for time before delivering
+ the event notification. If any further
+ change notifications arrive while the timer is waiting it
+ is reset and waits again for to
+ elapse.
+
+
+
+
+
+ The default amount of time to wait after receiving notification
+ before reloading the config file.
+
+
+
+
+ Watch a specified config file used to configure a repository
+
+ The repository to configure.
+ The configuration file to watch.
+
+
+ Watch a specified config file used to configure a repository
+
+
+
+
+
+ Holds the FileInfo used to configure the XmlConfigurator
+
+
+
+
+ Holds the repository being configured.
+
+
+
+
+ The timer used to compress the notification events.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The repository to configure.
+ The configuration file to watch.
+
+
+ Initializes a new instance of the class.
+
+
+
+
+
+ Event handler used by .
+
+ The firing the event.
+ The argument indicates the file that caused the event to be fired.
+
+
+ This handler reloads the configuration from the file when the event is fired.
+
+
+
+
+
+ Event handler used by .
+
+ The firing the event.
+ The argument indicates the file that caused the event to be fired.
+
+
+ This handler reloads the configuration from the file when the event is fired.
+
+
+
+
+
+ Called by the timer when the configuration has been updated.
+
+ null
+
+
+
+ The implementation of the interface suitable
+ for use with the compact framework
+
+
+
+ This implementation is a simple
+ mapping between repository name and
+ object.
+
+
+ The .NET Compact Framework 1.0 does not support retrieving assembly
+ level attributes therefore unlike the DefaultRepositorySelector
+ this selector does not examine the calling assembly for attributes.
+
+
+ Nicko Cadell
+
+
+
+ Interface used by the to select the .
+
+
+
+ The uses a
+ to specify the policy for selecting the correct
+ to return to the caller.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Gets the for the specified assembly.
+
+ The assembly to use to lookup to the
+ The for the assembly.
+
+
+ Gets the for the specified assembly.
+
+
+ How the association between and
+ is made is not defined. The implementation may choose any method for
+ this association. The results of this method must be repeatable, i.e.
+ when called again with the same arguments the result must be the
+ save value.
+
+
+
+
+
+ Gets the named .
+
+ The name to use to lookup to the .
+ The named
+
+ Lookup a named . This is the repository created by
+ calling .
+
+
+
+
+ Creates a new repository for the assembly specified.
+
+ The assembly to use to create the domain to associate with the .
+ The type of repository to create, must implement .
+ The repository created.
+
+
+ The created will be associated with the domain
+ specified such that a call to with the
+ same assembly specified will return the same repository instance.
+
+
+ How the association between and
+ is made is not defined. The implementation may choose any method for
+ this association.
+
+
+
+
+
+ Creates a new repository with the name specified.
+
+ The name to associate with the .
+ The type of repository to create, must implement .
+ The repository created.
+
+
+ The created will be associated with the name
+ specified such that a call to with the
+ same name will return the same repository instance.
+
+
+
+
+
+ Test if a named repository exists
+
+ the named repository to check
+ true if the repository exists
+
+
+ Test if a named repository exists. Use
+ to create a new repository and to retrieve
+ a repository.
+
+
+
+
+
+ Gets an array of all currently defined repositories.
+
+
+ An array of the instances created by
+ this .
+
+
+ Gets an array of all of the repositories created by this selector.
+
+
+
+
+
+ Event to notify that a logger repository has been created.
+
+
+ Event to notify that a logger repository has been created.
+
+
+
+ Event raised when a new repository is created.
+ The event source will be this selector. The event args will
+ be a which
+ holds the newly created .
+
+
+
+
+
+ Create a new repository selector
+
+ the type of the repositories to create, must implement
+
+
+ Create an new compact repository selector.
+ The default type for repositories must be specified,
+ an appropriate value would be .
+
+
+ throw if is null
+ throw if does not implement
+
+
+
+ Get the for the specified assembly
+
+ not used
+ The default
+
+
+ The argument is not used. This selector does not create a
+ separate repository for each assembly.
+
+
+ As a named repository is not specified the default repository is
+ returned. The default repository is named log4net-default-repository.
+
+
+
+
+
+ Get the named
+
+ the name of the repository to lookup
+ The named
+
+
+ Get the named . The default
+ repository is log4net-default-repository. Other repositories
+ must be created using the .
+ If the named repository does not exist an exception is thrown.
+
+
+ throw if is null
+ throw if the does not exist
+
+
+
+ Create a new repository for the assembly specified
+
+ not used
+ the type of repository to create, must implement
+ the repository created
+
+
+ The argument is not used. This selector does not create a
+ separate repository for each assembly.
+
+
+ If the is null then the
+ default repository type specified to the constructor is used.
+
+
+ As a named repository is not specified the default repository is
+ returned. The default repository is named log4net-default-repository.
+
+
+
+
+
+ Create a new repository for the repository specified
+
+ the repository to associate with the
+ the type of repository to create, must implement .
+ If this param is null then the default repository type is used.
+ the repository created
+
+
+ The created will be associated with the repository
+ specified such that a call to with the
+ same repository specified will return the same repository instance.
+
+
+ If the named repository already exists an exception will be thrown.
+
+
+ If is null then the default
+ repository type specified to the constructor is used.
+
+
+ throw if is null
+ throw if the already exists
+
+
+
+ Test if a named repository exists
+
+ the named repository to check
+ true if the repository exists
+
+
+ Test if a named repository exists. Use
+ to create a new repository and to retrieve
+ a repository.
+
+
+
+
+
+ Gets a list of objects
+
+ an array of all known objects
+
+
+ Gets an array of all of the repositories created by this selector.
+
+
+
+
+
+ Notify the registered listeners that the repository has been created
+
+ The repository that has been created
+
+
+ Raises the LoggerRepositoryCreatedEvent
+ event.
+
+
+
+
+
+ Event to notify that a logger repository has been created.
+
+
+ Event to notify that a logger repository has been created.
+
+
+
+ Event raised when a new repository is created.
+ The event source will be this selector. The event args will
+ be a which
+ holds the newly created .
+
+
+
+
+
+ The default implementation of the interface.
+
+
+
+ Uses attributes defined on the calling assembly to determine how to
+ configure the hierarchy for the repository.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Creates a new repository selector.
+
+ The type of the repositories to create, must implement
+
+
+ Create an new repository selector.
+ The default type for repositories must be specified,
+ an appropriate value would be .
+
+
+ is .
+ does not implement .
+
+
+
+ Gets the for the specified assembly.
+
+ The assembly use to lookup the .
+
+
+ The type of the created and the repository
+ to create can be overridden by specifying the
+ attribute on the .
+
+
+ The default values are to use the
+ implementation of the interface and to use the
+ as the name of the repository.
+
+
+ The created will be automatically configured using
+ any attributes defined on
+ the .
+
+
+ The for the assembly
+ is .
+
+
+
+ Gets the for the specified repository.
+
+ The repository to use to lookup the .
+ The for the specified repository.
+
+
+ Returns the named repository. If is null
+ a is thrown. If the repository
+ does not exist a is thrown.
+
+
+ Use to create a repository.
+
+
+ is .
+ does not exist.
+
+
+
+ Create a new repository for the assembly specified
+
+ the assembly to use to create the repository to associate with the .
+ The type of repository to create, must implement .
+ The repository created.
+
+
+ The created will be associated with the repository
+ specified such that a call to with the
+ same assembly specified will return the same repository instance.
+
+
+ The type of the created and
+ the repository to create can be overridden by specifying the
+ attribute on the
+ . The default values are to use the
+ implementation of the
+ interface and to use the
+ as the name of the repository.
+
+
+ The created will be automatically
+ configured using any
+ attributes defined on the .
+
+
+ If a repository for the already exists
+ that repository will be returned. An error will not be raised and that
+ repository may be of a different type to that specified in .
+ Also the attribute on the
+ assembly may be used to override the repository type specified in
+ .
+
+
+ is .
+
+
+
+ Creates a new repository for the assembly specified.
+
+ the assembly to use to create the repository to associate with the .
+ The type of repository to create, must implement .
+ The name to assign to the created repository
+ Set to true to read and apply the assembly attributes
+ The repository created.
+
+
+ The created will be associated with the repository
+ specified such that a call to with the
+ same assembly specified will return the same repository instance.
+
+
+ The type of the created and
+ the repository to create can be overridden by specifying the
+ attribute on the
+ . The default values are to use the
+ implementation of the
+ interface and to use the
+ as the name of the repository.
+
+
+ The created will be automatically
+ configured using any
+ attributes defined on the .
+
+
+ If a repository for the already exists
+ that repository will be returned. An error will not be raised and that
+ repository may be of a different type to that specified in .
+ Also the attribute on the
+ assembly may be used to override the repository type specified in
+ .
+
+
+ is .
+
+
+
+ Creates a new repository for the specified repository.
+
+ The repository to associate with the .
+ The type of repository to create, must implement .
+ If this param is then the default repository type is used.
+ The new repository.
+
+
+ The created will be associated with the repository
+ specified such that a call to with the
+ same repository specified will return the same repository instance.
+
+
+ is .
+ already exists.
+
+
+
+ Test if a named repository exists
+
+ the named repository to check
+ true if the repository exists
+
+
+ Test if a named repository exists. Use
+ to create a new repository and to retrieve
+ a repository.
+
+
+
+
+
+ Gets a list of objects
+
+ an array of all known objects
+
+
+ Gets an array of all of the repositories created by this selector.
+
+
+
+
+
+ Aliases a repository to an existing repository.
+
+ The repository to alias.
+ The repository that the repository is aliased to.
+
+
+ The repository specified will be aliased to the repository when created.
+ The repository must not already exist.
+
+
+ When the repository is created it must utilize the same repository type as
+ the repository it is aliased to, otherwise the aliasing will fail.
+
+
+
+ is .
+ -or-
+ is .
+
+
+
+
+ Notifies the registered listeners that the repository has been created.
+
+ The repository that has been created.
+
+
+ Raises the event.
+
+
+
+
+
+ Gets the repository name and repository type for the specified assembly.
+
+ The assembly that has a .
+ in/out param to hold the repository name to use for the assembly, caller should set this to the default value before calling.
+ in/out param to hold the type of the repository to create for the assembly, caller should set this to the default value before calling.
+ is .
+
+
+
+ Configures the repository using information from the assembly.
+
+ The assembly containing
+ attributes which define the configuration for the repository.
+ The repository to configure.
+
+ is .
+ -or-
+ is .
+
+
+
+
+ Loads the attribute defined plugins on the assembly.
+
+ The assembly that contains the attributes.
+ The repository to add the plugins to.
+
+ is .
+ -or-
+ is .
+
+
+
+
+ Loads the attribute defined aliases on the assembly.
+
+ The assembly that contains the attributes.
+ The repository to alias to.
+
+ is .
+ -or-
+ is .
+
+
+
+
+ Event to notify that a logger repository has been created.
+
+
+ Event to notify that a logger repository has been created.
+
+
+
+ Event raised when a new repository is created.
+ The event source will be this selector. The event args will
+ be a which
+ holds the newly created .
+
+
+
+
+
+ Defined error codes that can be passed to the method.
+
+
+
+ Values passed to the method.
+
+
+ Nicko Cadell
+
+
+
+ A general error
+
+
+
+
+ Error while writing output
+
+
+
+
+ Failed to flush file
+
+
+
+
+ Failed to close file
+
+
+
+
+ Unable to open output file
+
+
+
+
+ No layout specified
+
+
+
+
+ Failed to parse address
+
+
+
+
+ Appenders may delegate their error handling to an .
+
+
+
+ Error handling is a particularly tedious to get right because by
+ definition errors are hard to predict and to reproduce.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Handles the error and information about the error condition is passed as
+ a parameter.
+
+ The message associated with the error.
+ The that was thrown when the error occurred.
+ The error code associated with the error.
+
+
+ Handles the error and information about the error condition is passed as
+ a parameter.
+
+
+
+
+
+ Prints the error message passed as a parameter.
+
+ The message associated with the error.
+ The that was thrown when the error occurred.
+
+
+ See .
+
+
+
+
+
+ Prints the error message passed as a parameter.
+
+ The message associated with the error.
+
+
+ See .
+
+
+
+
+
+ Interface for objects that require fixing.
+
+
+
+ Interface that indicates that the object requires fixing before it
+ can be taken outside the context of the appender's
+ method.
+
+
+ When objects that implement this interface are stored
+ in the context properties maps
+ and
+ are fixed
+ (see ) the
+ method will be called.
+
+
+ Nicko Cadell
+
+
+
+ Get a portable version of this object
+
+ the portable instance of this object
+
+
+ Get a portable instance object that represents the current
+ state of this object. The portable object can be stored
+ and logged from any thread with identical results.
+
+
+
+
+
+ Interface that all loggers implement
+
+
+
+ This interface supports logging events and testing if a level
+ is enabled for logging.
+
+
+ These methods will not throw exceptions. Note to implementor, ensure
+ that the implementation of these methods cannot allow an exception
+ to be thrown to the caller.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ This generic form is intended to be used by wrappers.
+
+ The declaring type of the method that is
+ the stack boundary into the logging system for this call.
+ The level of the message to be logged.
+ The message object to log.
+ the exception to log, including its stack trace. Pass null to not log an exception.
+
+
+ Generates a logging event for the specified using
+ the and .
+
+
+
+
+
+ This is the most generic printing method that is intended to be used
+ by wrappers.
+
+ The event being logged.
+
+
+ Logs the specified logging event through this logger.
+
+
+
+
+
+ Checks if this logger is enabled for a given passed as parameter.
+
+ The level to check.
+
+ true if this logger is enabled for level, otherwise false.
+
+
+
+ Test if this logger is going to log events of the specified .
+
+
+
+
+
+ Gets the name of the logger.
+
+
+ The name of the logger.
+
+
+
+ The name of this logger
+
+
+
+
+
+ Gets the where this
+ Logger instance is attached to.
+
+
+ The that this logger belongs to.
+
+
+
+ Gets the where this
+ Logger instance is attached to.
+
+
+
+
+
+ Base interface for all wrappers
+
+
+
+ Base interface for all wrappers.
+
+
+ All wrappers must implement this interface.
+
+
+ Nicko Cadell
+
+
+
+ Get the implementation behind this wrapper object.
+
+
+ The object that in implementing this object.
+
+
+
+ The object that in implementing this
+ object. The Logger object may not
+ be the same object as this object because of logger decorators.
+ This gets the actual underlying objects that is used to process
+ the log events.
+
+
+
+
+
+ Delegate used to handle logger repository creation event notifications
+
+ The which created the repository.
+ The event args
+ that holds the instance that has been created.
+
+
+ Delegate used to handle logger repository creation event notifications.
+
+
+
+
+
+ Provides data for the event.
+
+
+
+ A
+ event is raised every time a is created.
+
+
+
+
+
+ The created
+
+
+
+
+ Construct instance using specified
+
+ the that has been created
+
+
+ Construct instance using specified
+
+
+
+
+
+ The that has been created
+
+
+ The that has been created
+
+
+
+ The that has been created
+
+
+
+
+
+ Test if an triggers an action
+
+
+
+ Implementations of this interface allow certain appenders to decide
+ when to perform an appender specific action.
+
+
+ The action or behavior triggered is defined by the implementation.
+
+
+ Nicko Cadell
+
+
+
+ Test if this event triggers the action
+
+ The event to check
+ true if this event triggers the action, otherwise false
+
+
+ Return true if this event triggers the action
+
+
+
+
+
+ Defines the default set of levels recognized by the system.
+
+
+
+ Each has an associated .
+
+
+ Levels have a numeric that defines the relative
+ ordering between levels. Two Levels with the same
+ are deemed to be equivalent.
+
+
+ The levels that are recognized by log4net are set for each
+ and each repository can have different levels defined. The levels are stored
+ in the on the repository. Levels are
+ looked up by name from the .
+
+
+ When logging at level INFO the actual level used is not but
+ the value of LoggerRepository.LevelMap["INFO"]. The default value for this is
+ , but this can be changed by reconfiguring the level map.
+
+
+ Each level has a in addition to its . The
+ is the string that is written into the output log. By default
+ the display name is the same as the level name, but this can be used to alias levels
+ or to localize the log output.
+
+
+ Some of the predefined levels recognized by the system are:
+
+
+
+ .
+
+
+ .
+
+
+ .
+
+
+ .
+
+
+ .
+
+
+ .
+
+
+ .
+
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Constructor
+
+ Integer value for this level, higher values represent more severe levels.
+ The string name of this level.
+ The display name for this level. This may be localized or otherwise different from the name
+
+
+ Initializes a new instance of the class with
+ the specified level name and value.
+
+
+
+
+
+ Constructor
+
+ Integer value for this level, higher values represent more severe levels.
+ The string name of this level.
+
+
+ Initializes a new instance of the class with
+ the specified level name and value.
+
+
+
+
+
+ Returns the representation of the current
+ .
+
+
+ A representation of the current .
+
+
+
+ Returns the level .
+
+
+
+
+
+ Compares levels.
+
+ The object to compare against.
+ true if the objects are equal.
+
+
+ Compares the levels of instances, and
+ defers to base class if the target object is not a
+ instance.
+
+
+
+
+
+ Returns a hash code
+
+ A hash code for the current .
+
+
+ Returns a hash code suitable for use in hashing algorithms and data
+ structures like a hash table.
+
+
+ Returns the hash code of the level .
+
+
+
+
+
+ Compares this instance to a specified object and returns an
+ indication of their relative values.
+
+ A instance or to compare with this instance.
+
+ A 32-bit signed integer that indicates the relative order of the
+ values compared. The return value has these meanings:
+
+
+ Value
+ Meaning
+
+
+ Less than zero
+ This instance is less than .
+
+
+ Zero
+ This instance is equal to .
+
+
+ Greater than zero
+
+ This instance is greater than .
+ -or-
+ is .
+
+
+
+
+
+
+ must be an instance of
+ or ; otherwise, an exception is thrown.
+
+
+ is not a .
+
+
+
+ Returns a value indicating whether a specified
+ is greater than another specified .
+
+ A
+ A
+
+ true if is greater than
+ ; otherwise, false.
+
+
+
+ Compares two levels.
+
+
+
+
+
+ Returns a value indicating whether a specified
+ is less than another specified .
+
+ A
+ A
+
+ true if is less than
+ ; otherwise, false.
+
+
+
+ Compares two levels.
+
+
+
+
+
+ Returns a value indicating whether a specified
+ is greater than or equal to another specified .
+
+ A
+ A
+
+ true if is greater than or equal to
+ ; otherwise, false.
+
+
+
+ Compares two levels.
+
+
+
+
+
+ Returns a value indicating whether a specified
+ is less than or equal to another specified .
+
+ A
+ A
+
+ true if is less than or equal to
+ ; otherwise, false.
+
+
+
+ Compares two levels.
+
+
+
+
+
+ Returns a value indicating whether two specified
+ objects have the same value.
+
+ A or .
+ A or .
+
+ true if the value of is the same as the
+ value of ; otherwise, false.
+
+
+
+ Compares two levels.
+
+
+
+
+
+ Returns a value indicating whether two specified
+ objects have different values.
+
+ A or .
+ A or .
+
+ true if the value of is different from
+ the value of ; otherwise, false.
+
+
+
+ Compares two levels.
+
+
+
+
+
+ Compares two specified instances.
+
+ The first to compare.
+ The second to compare.
+
+ A 32-bit signed integer that indicates the relative order of the
+ two values compared. The return value has these meanings:
+
+
+ Value
+ Meaning
+
+
+ Less than zero
+ is less than .
+
+
+ Zero
+ is equal to .
+
+
+ Greater than zero
+ is greater than .
+
+
+
+
+
+ Compares two levels.
+
+
+
+
+
+ The level designates a higher level than all the rest.
+
+
+
+
+ The level designates very severe error events.
+ System unusable, emergencies.
+
+
+
+
+ The level designates very severe error events
+ that will presumably lead the application to abort.
+
+
+
+
+ The level designates very severe error events.
+ Take immediate action, alerts.
+
+
+
+
+ The level designates very severe error events.
+ Critical condition, critical.
+
+
+
+
+ The level designates very severe error events.
+
+
+
+
+ The level designates error events that might
+ still allow the application to continue running.
+
+
+
+
+ The level designates potentially harmful
+ situations.
+
+
+
+
+ The level designates informational messages
+ that highlight the progress of the application at the highest level.
+
+
+
+
+ The level designates informational messages that
+ highlight the progress of the application at coarse-grained level.
+
+
+
+
+ The level designates fine-grained informational
+ events that are most useful to debug an application.
+
+
+
+
+ The level designates fine-grained informational
+ events that are most useful to debug an application.
+
+
+
+
+ The level designates fine-grained informational
+ events that are most useful to debug an application.
+
+
+
+
+ The level designates fine-grained informational
+ events that are most useful to debug an application.
+
+
+
+
+ The level designates fine-grained informational
+ events that are most useful to debug an application.
+
+
+
+
+ The level designates fine-grained informational
+ events that are most useful to debug an application.
+
+
+
+
+ The level designates the lowest level possible.
+
+
+
+
+ Gets the name of this level.
+
+
+ The name of this level.
+
+
+
+ Gets the name of this level.
+
+
+
+
+
+ Gets the value of this level.
+
+
+ The value of this level.
+
+
+
+ Gets the value of this level.
+
+
+
+
+
+ Gets the display name of this level.
+
+
+ The display name of this level.
+
+
+
+ Gets the display name of this level.
+
+
+
+
+
+ A strongly-typed collection of objects.
+
+ Nicko Cadell
+
+
+
+ Creates a read-only wrapper for a LevelCollection instance.
+
+ list to create a readonly wrapper arround
+
+ A LevelCollection wrapper that is read-only.
+
+
+
+
+ Initializes a new instance of the LevelCollection class
+ that is empty and has the default initial capacity.
+
+
+
+
+ Initializes a new instance of the LevelCollection class
+ that has the specified initial capacity.
+
+
+ The number of elements that the new LevelCollection is initially capable of storing.
+
+
+
+
+ Initializes a new instance of the LevelCollection class
+ that contains elements copied from the specified LevelCollection.
+
+ The LevelCollection whose elements are copied to the new collection.
+
+
+
+ Initializes a new instance of the LevelCollection class
+ that contains elements copied from the specified array.
+
+ The array whose elements are copied to the new list.
+
+
+
+ Initializes a new instance of the LevelCollection class
+ that contains elements copied from the specified collection.
+
+ The collection whose elements are copied to the new list.
+
+
+
+ Allow subclasses to avoid our default constructors
+
+
+
+
+
+ Copies the entire LevelCollection to a one-dimensional
+ array.
+
+ The one-dimensional array to copy to.
+
+
+
+ Copies the entire LevelCollection to a one-dimensional
+ array, starting at the specified index of the target array.
+
+ The one-dimensional array to copy to.
+ The zero-based index in at which copying begins.
+
+
+
+ Adds a to the end of the LevelCollection.
+
+ The to be added to the end of the LevelCollection.
+ The index at which the value has been added.
+
+
+
+ Removes all elements from the LevelCollection.
+
+
+
+
+ Creates a shallow copy of the .
+
+ A new with a shallow copy of the collection data.
+
+
+
+ Determines whether a given is in the LevelCollection.
+
+ The to check for.
+ true if is found in the LevelCollection; otherwise, false.
+
+
+
+ Returns the zero-based index of the first occurrence of a
+ in the LevelCollection.
+
+ The to locate in the LevelCollection.
+
+ The zero-based index of the first occurrence of
+ in the entire LevelCollection, if found; otherwise, -1.
+
+
+
+
+ Inserts an element into the LevelCollection at the specified index.
+
+ The zero-based index at which should be inserted.
+ The to insert.
+
+ is less than zero
+ -or-
+ is equal to or greater than .
+
+
+
+
+ Removes the first occurrence of a specific from the LevelCollection.
+
+ The to remove from the LevelCollection.
+
+ The specified was not found in the LevelCollection.
+
+
+
+
+ Removes the element at the specified index of the LevelCollection.
+
+ The zero-based index of the element to remove.
+
+ is less than zero
+ -or-
+ is equal to or greater than .
+
+
+
+
+ Returns an enumerator that can iterate through the LevelCollection.
+
+ An for the entire LevelCollection.
+
+
+
+ Adds the elements of another LevelCollection to the current LevelCollection.
+
+ The LevelCollection whose elements should be added to the end of the current LevelCollection.
+ The new of the LevelCollection.
+
+
+
+ Adds the elements of a array to the current LevelCollection.
+
+ The array whose elements should be added to the end of the LevelCollection.
+ The new of the LevelCollection.
+
+
+
+ Adds the elements of a collection to the current LevelCollection.
+
+ The collection whose elements should be added to the end of the LevelCollection.
+ The new of the LevelCollection.
+
+
+
+ Sets the capacity to the actual number of elements.
+
+
+
+
+ is less than zero
+ -or-
+ is equal to or greater than .
+
+
+
+
+ is less than zero
+ -or-
+ is equal to or greater than .
+
+
+
+
+ Gets the number of elements actually contained in the LevelCollection.
+
+
+
+
+ Gets a value indicating whether access to the collection is synchronized (thread-safe).
+
+ true if access to the ICollection is synchronized (thread-safe); otherwise, false.
+
+
+
+ Gets an object that can be used to synchronize access to the collection.
+
+
+
+
+ Gets or sets the at the specified index.
+
+ The zero-based index of the element to get or set.
+
+ is less than zero
+ -or-
+ is equal to or greater than .
+
+
+
+
+ Gets a value indicating whether the collection has a fixed size.
+
+ true if the collection has a fixed size; otherwise, false. The default is false
+
+
+
+ Gets a value indicating whether the IList is read-only.
+
+ true if the collection is read-only; otherwise, false. The default is false
+
+
+
+ Gets or sets the number of elements the LevelCollection can contain.
+
+
+
+
+ Supports type-safe iteration over a .
+
+
+
+
+ Advances the enumerator to the next element in the collection.
+
+
+ true if the enumerator was successfully advanced to the next element;
+ false if the enumerator has passed the end of the collection.
+
+
+ The collection was modified after the enumerator was created.
+
+
+
+
+ Sets the enumerator to its initial position, before the first element in the collection.
+
+
+
+
+ Gets the current element in the collection.
+
+
+
+
+ Type visible only to our subclasses
+ Used to access protected constructor
+
+
+
+
+ A value
+
+
+
+
+ Supports simple iteration over a .
+
+
+
+
+ Initializes a new instance of the Enumerator class.
+
+
+
+
+
+ Advances the enumerator to the next element in the collection.
+
+
+ true if the enumerator was successfully advanced to the next element;
+ false if the enumerator has passed the end of the collection.
+
+
+ The collection was modified after the enumerator was created.
+
+
+
+
+ Sets the enumerator to its initial position, before the first element in the collection.
+
+
+
+
+ Gets the current element in the collection.
+
+
+
+
+ An evaluator that triggers at a threshold level
+
+
+
+ This evaluator will trigger if the level of the event
+ passed to
+ is equal to or greater than the
+ level.
+
+
+ Nicko Cadell
+
+
+
+ The threshold for triggering
+
+
+
+
+ Create a new evaluator using the threshold.
+
+
+
+ Create a new evaluator using the threshold.
+
+
+ This evaluator will trigger if the level of the event
+ passed to
+ is equal to or greater than the
+ level.
+
+
+
+
+
+ Create a new evaluator using the specified threshold.
+
+ the threshold to trigger at
+
+
+ Create a new evaluator using the specified threshold.
+
+
+ This evaluator will trigger if the level of the event
+ passed to
+ is equal to or greater than the
+ level.
+
+
+
+
+
+ Is this the triggering event?
+
+ The event to check
+ This method returns true, if the event level
+ is equal or higher than the .
+ Otherwise it returns false
+
+
+ This evaluator will trigger if the level of the event
+ passed to
+ is equal to or greater than the
+ level.
+
+
+
+
+
+ the threshold to trigger at
+
+
+ The that will cause this evaluator to trigger
+
+
+
+ This evaluator will trigger if the level of the event
+ passed to
+ is equal to or greater than the
+ level.
+
+
+
+
+
+ Mapping between string name and Level object
+
+
+
+ Mapping between string name and object.
+ This mapping is held separately for each .
+ The level name is case insensitive.
+
+
+ Nicko Cadell
+
+
+
+ Mapping from level name to Level object. The
+ level name is case insensitive
+
+
+
+
+ Construct the level map
+
+
+
+ Construct the level map.
+
+
+
+
+
+ Clear the internal maps of all levels
+
+
+
+ Clear the internal maps of all levels
+
+
+
+
+
+ Create a new Level and add it to the map
+
+ the string to display for the Level
+ the level value to give to the Level
+
+
+ Create a new Level and add it to the map
+
+
+
+
+
+
+ Create a new Level and add it to the map
+
+ the string to display for the Level
+ the level value to give to the Level
+ the display name to give to the Level
+
+
+ Create a new Level and add it to the map
+
+
+
+
+
+ Add a Level to the map
+
+ the Level to add
+
+
+ Add a Level to the map
+
+
+
+
+
+ Lookup a named level from the map
+
+ the name of the level to lookup is taken from this level.
+ If the level is not set on the map then this level is added
+ the level in the map with the name specified
+
+
+ Lookup a named level from the map. The name of the level to lookup is taken
+ from the property of the
+ argument.
+
+
+ If no level with the specified name is found then the
+ argument is added to the level map
+ and returned.
+
+
+
+
+
+ Lookup a by name
+
+ The name of the Level to lookup
+ a Level from the map with the name specified
+
+
+ Returns the from the
+ map with the name specified. If the no level is
+ found then null is returned.
+
+
+
+
+
+ Return all possible levels as a list of Level objects.
+
+ all possible levels as a list of Level objects
+
+
+ Return all possible levels as a list of Level objects.
+
+
+
+
+
+ The internal representation of caller location information.
+
+
+
+ This class uses the System.Diagnostics.StackTrace class to generate
+ a call stack. The caller's information is then extracted from this stack.
+
+
+ The System.Diagnostics.StackTrace class is not supported on the
+ .NET Compact Framework 1.0 therefore caller location information is not
+ available on that framework.
+
+
+ The System.Diagnostics.StackTrace class has this to say about Release builds:
+
+
+ "StackTrace information will be most informative with Debug build configurations.
+ By default, Debug builds include debug symbols, while Release builds do not. The
+ debug symbols contain most of the file, method name, line number, and column
+ information used in constructing StackFrame and StackTrace objects. StackTrace
+ might not report as many method calls as expected, due to code transformations
+ that occur during optimization."
+
+
+ This means that in a Release build the caller information may be incomplete or may
+ not exist at all! Therefore caller location information cannot be relied upon in a Release build.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ When location information is not available the constant
+ NA is returned. Current value of this string
+ constant is ?.
+
+
+
+
+ Constructor
+
+ The declaring type of the method that is
+ the stack boundary into the logging system for this call.
+
+
+ Initializes a new instance of the
+ class based on the current thread.
+
+
+
+
+
+ Constructor
+
+ The fully qualified class name.
+ The method name.
+ The file name.
+ The line number of the method within the file.
+
+
+ Initializes a new instance of the
+ class with the specified data.
+
+
+
+
+
+ Gets the fully qualified class name of the caller making the logging
+ request.
+
+
+ The fully qualified class name of the caller making the logging
+ request.
+
+
+
+ Gets the fully qualified class name of the caller making the logging
+ request.
+
+
+
+
+
+ Gets the file name of the caller.
+
+
+ The file name of the caller.
+
+
+
+ Gets the file name of the caller.
+
+
+
+
+
+ Gets the line number of the caller.
+
+
+ The line number of the caller.
+
+
+
+ Gets the line number of the caller.
+
+
+
+
+
+ Gets the method name of the caller.
+
+
+ The method name of the caller.
+
+
+
+ Gets the method name of the caller.
+
+
+
+
+
+ Gets all available caller information
+
+
+ All available caller information, in the format
+ fully.qualified.classname.of.caller.methodName(Filename:line)
+
+
+
+ Gets all available caller information, in the format
+ fully.qualified.classname.of.caller.methodName(Filename:line)
+
+
+
+
+
+ Static manager that controls the creation of repositories
+
+
+
+ Static manager that controls the creation of repositories
+
+
+ This class is used by the wrapper managers (e.g. )
+ to provide access to the objects.
+
+
+ This manager also holds the that is used to
+ lookup and create repositories. The selector can be set either programmatically using
+ the property, or by setting the log4net.RepositorySelector
+ AppSetting in the applications config file to the fully qualified type name of the
+ selector to use.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Private constructor to prevent instances. Only static methods should be used.
+
+
+
+ Private constructor to prevent instances. Only static methods should be used.
+
+
+
+
+
+ Hook the shutdown event
+
+
+
+ On the full .NET runtime, the static constructor hooks up the
+ AppDomain.ProcessExit and AppDomain.DomainUnload> events.
+ These are used to shutdown the log4net system as the application exits.
+
+
+
+
+
+ Register for ProcessExit and DomainUnload events on the AppDomain
+
+
+
+ This needs to be in a separate method because the events make
+ a LinkDemand for the ControlAppDomain SecurityPermission. Because
+ this is a LinkDemand it is demanded at JIT time. Therefore we cannot
+ catch the exception in the method itself, we have to catch it in the
+ caller.
+
+
+
+
+
+ Return the default instance.
+
+ the repository to lookup in
+ Return the default instance
+
+
+ Gets the for the repository specified
+ by the argument.
+
+
+
+
+
+ Returns the default instance.
+
+ The assembly to use to lookup the repository.
+ The default instance.
+
+
+
+ Return the default instance.
+
+ the repository to lookup in
+ Return the default instance
+
+
+ Gets the for the repository specified
+ by the argument.
+
+
+
+
+
+ Returns the default instance.
+
+ The assembly to use to lookup the repository.
+ The default instance.
+
+
+ Returns the default instance.
+
+
+
+
+
+ Returns the named logger if it exists.
+
+ The repository to lookup in.
+ The fully qualified logger name to look for.
+
+ The logger found, or null if the named logger does not exist in the
+ specified repository.
+
+
+
+ If the named logger exists (in the specified repository) then it
+ returns a reference to the logger, otherwise it returns
+ null.
+
+
+
+
+
+ Returns the named logger if it exists.
+
+ The assembly to use to lookup the repository.
+ The fully qualified logger name to look for.
+
+ The logger found, or null if the named logger does not exist in the
+ specified assembly's repository.
+
+
+
+ If the named logger exists (in the specified assembly's repository) then it
+ returns a reference to the logger, otherwise it returns
+ null.
+
+
+
+
+
+ Returns all the currently defined loggers in the specified repository.
+
+ The repository to lookup in.
+ All the defined loggers.
+
+
+ The root logger is not included in the returned array.
+
+
+
+
+
+ Returns all the currently defined loggers in the specified assembly's repository.
+
+ The assembly to use to lookup the repository.
+ All the defined loggers.
+
+
+ The root logger is not included in the returned array.
+
+
+
+
+
+ Retrieves or creates a named logger.
+
+ The repository to lookup in.
+ The name of the logger to retrieve.
+ The logger with the name specified.
+
+
+ Retrieves a logger named as the
+ parameter. If the named logger already exists, then the
+ existing instance will be returned. Otherwise, a new instance is
+ created.
+
+
+ By default, loggers do not have a set level but inherit
+ it from the hierarchy. This is one of the central features of
+ log4net.
+
+
+
+
+
+ Retrieves or creates a named logger.
+
+ The assembly to use to lookup the repository.
+ The name of the logger to retrieve.
+ The logger with the name specified.
+
+
+ Retrieves a logger named as the
+ parameter. If the named logger already exists, then the
+ existing instance will be returned. Otherwise, a new instance is
+ created.
+
+
+ By default, loggers do not have a set level but inherit
+ it from the hierarchy. This is one of the central features of
+ log4net.
+
+
+
+
+
+ Shorthand for .
+
+ The repository to lookup in.
+ The of which the fullname will be used as the name of the logger to retrieve.
+ The logger with the name specified.
+
+
+ Gets the logger for the fully qualified name of the type specified.
+
+
+
+
+
+ Shorthand for .
+
+ the assembly to use to lookup the repository
+ The of which the fullname will be used as the name of the logger to retrieve.
+ The logger with the name specified.
+
+
+ Gets the logger for the fully qualified name of the type specified.
+
+
+
+
+
+ Shuts down the log4net system.
+
+
+
+ Calling this method will safely close and remove all
+ appenders in all the loggers including root contained in all the
+ default repositories.
+
+
+ Some appenders need to be closed before the application exists.
+ Otherwise, pending logging events might be lost.
+
+
+ The shutdown method is careful to close nested
+ appenders before closing regular appenders. This is allows
+ configurations where a regular appender is attached to a logger
+ and again to a nested appender.
+
+
+
+
+
+ Shuts down the repository for the repository specified.
+
+ The repository to shutdown.
+
+
+ Calling this method will safely close and remove all
+ appenders in all the loggers including root contained in the
+ repository for the specified.
+
+
+ Some appenders need to be closed before the application exists.
+ Otherwise, pending logging events might be lost.
+
+
+ The shutdown method is careful to close nested
+ appenders before closing regular appenders. This is allows
+ configurations where a regular appender is attached to a logger
+ and again to a nested appender.
+
+
+
+
+
+ Shuts down the repository for the repository specified.
+
+ The assembly to use to lookup the repository.
+
+
+ Calling this method will safely close and remove all
+ appenders in all the loggers including root contained in the
+ repository for the repository. The repository is looked up using
+ the specified.
+
+
+ Some appenders need to be closed before the application exists.
+ Otherwise, pending logging events might be lost.
+
+
+ The shutdown method is careful to close nested
+ appenders before closing regular appenders. This is allows
+ configurations where a regular appender is attached to a logger
+ and again to a nested appender.
+
+
+
+
+
+ Resets all values contained in this repository instance to their defaults.
+
+ The repository to reset.
+
+
+ Resets all values contained in the repository instance to their
+ defaults. This removes all appenders from all loggers, sets
+ the level of all non-root loggers to null,
+ sets their additivity flag to true and sets the level
+ of the root logger to . Moreover,
+ message disabling is set its default "off" value.
+
+
+
+
+
+ Resets all values contained in this repository instance to their defaults.
+
+ The assembly to use to lookup the repository to reset.
+
+
+ Resets all values contained in the repository instance to their
+ defaults. This removes all appenders from all loggers, sets
+ the level of all non-root loggers to null,
+ sets their additivity flag to true and sets the level
+ of the root logger to . Moreover,
+ message disabling is set its default "off" value.
+
+
+
+
+
+ Creates a repository with the specified name.
+
+ The name of the repository, this must be unique amongst repositories.
+ The created for the repository.
+
+
+ CreateDomain is obsolete. Use CreateRepository instead of CreateDomain.
+
+
+ Creates the default type of which is a
+ object.
+
+
+ The name must be unique. Repositories cannot be redefined.
+ An will be thrown if the repository already exists.
+
+
+ The specified repository already exists.
+
+
+
+ Creates a repository with the specified name.
+
+ The name of the repository, this must be unique amongst repositories.
+ The created for the repository.
+
+
+ Creates the default type of which is a
+ object.
+
+
+ The name must be unique. Repositories cannot be redefined.
+ An will be thrown if the repository already exists.
+
+
+ The specified repository already exists.
+
+
+
+ Creates a repository with the specified name and repository type.
+
+ The name of the repository, this must be unique to the repository.
+ A that implements
+ and has a no arg constructor. An instance of this type will be created to act
+ as the for the repository specified.
+ The created for the repository.
+
+
+ CreateDomain is obsolete. Use CreateRepository instead of CreateDomain.
+
+
+ The name must be unique. Repositories cannot be redefined.
+ An Exception will be thrown if the repository already exists.
+
+
+ The specified repository already exists.
+
+
+
+ Creates a repository with the specified name and repository type.
+
+ The name of the repository, this must be unique to the repository.
+ A that implements
+ and has a no arg constructor. An instance of this type will be created to act
+ as the for the repository specified.
+ The created for the repository.
+
+
+ The name must be unique. Repositories cannot be redefined.
+ An Exception will be thrown if the repository already exists.
+
+
+ The specified repository already exists.
+
+
+
+ Creates a repository for the specified assembly and repository type.
+
+ The assembly to use to get the name of the repository.
+ A that implements
+ and has a no arg constructor. An instance of this type will be created to act
+ as the for the repository specified.
+ The created for the repository.
+
+
+ CreateDomain is obsolete. Use CreateRepository instead of CreateDomain.
+
+
+ The created will be associated with the repository
+ specified such that a call to with the
+ same assembly specified will return the same repository instance.
+
+
+
+
+
+ Creates a repository for the specified assembly and repository type.
+
+ The assembly to use to get the name of the repository.
+ A that implements
+ and has a no arg constructor. An instance of this type will be created to act
+ as the for the repository specified.
+ The created for the repository.
+
+
+ The created will be associated with the repository
+ specified such that a call to with the
+ same assembly specified will return the same repository instance.
+
+
+
+
+
+ Gets an array of all currently defined repositories.
+
+ An array of all the known objects.
+
+
+ Gets an array of all currently defined repositories.
+
+
+
+
+
+ Internal method to get pertinent version info.
+
+ A string of version info.
+
+
+
+ Called when the event fires
+
+ the that is exiting
+ null
+
+
+ Called when the event fires.
+
+
+ When the event is triggered the log4net system is .
+
+
+
+
+
+ Called when the event fires
+
+ the that is exiting
+ null
+
+
+ Called when the event fires.
+
+
+ When the event is triggered the log4net system is .
+
+
+
+
+
+ Initialize the default repository selector
+
+
+
+
+ Gets or sets the repository selector used by the .
+
+
+ The repository selector used by the .
+
+
+
+ The repository selector () is used by
+ the to create and select repositories
+ ().
+
+
+ The caller to supplies either a string name
+ or an assembly (if not supplied the assembly is inferred using
+ ).
+
+
+ This context is used by the selector to lookup a specific repository.
+
+
+ For the full .NET Framework, the default repository is DefaultRepositorySelector;
+ for the .NET Compact Framework CompactRepositorySelector is the default
+ repository.
+
+
+
+
+
+ Implementation of the interface.
+
+
+
+ This class should be used as the base for all wrapper implementations.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Constructs a new wrapper for the specified logger.
+
+ The logger to wrap.
+
+
+ Constructs a new wrapper for the specified logger.
+
+
+
+
+
+ The logger that this object is wrapping
+
+
+
+
+ Gets the implementation behind this wrapper object.
+
+
+ The object that this object is implementing.
+
+
+
+ The Logger object may not be the same object as this object
+ because of logger decorators.
+
+
+ This gets the actual underlying objects that is used to process
+ the log events.
+
+
+
+
+
+ Portable data structure used by
+
+
+
+ Portable data structure used by
+
+
+ Nicko Cadell
+
+
+
+ The logger name.
+
+
+
+ The logger name.
+
+
+
+
+
+ Level of logging event.
+
+
+
+ Level of logging event. Level cannot be Serializable
+ because it is a flyweight. Due to its special serialization it
+ cannot be declared final either.
+
+
+
+
+
+ The application supplied message.
+
+
+
+ The application supplied message of logging event.
+
+
+
+
+
+ The name of thread
+
+
+
+ The name of thread in which this logging event was generated
+
+
+
+
+
+ The time the event was logged
+
+
+
+ The TimeStamp is stored in the local time zone for this computer.
+
+
+
+
+
+ Location information for the caller.
+
+
+
+ Location information for the caller.
+
+
+
+
+
+ String representation of the user
+
+
+
+ String representation of the user's windows name,
+ like DOMAIN\username
+
+
+
+
+
+ String representation of the identity.
+
+
+
+ String representation of the current thread's principal identity.
+
+
+
+
+
+ The string representation of the exception
+
+
+
+ The string representation of the exception
+
+
+
+
+
+ String representation of the AppDomain.
+
+
+
+ String representation of the AppDomain.
+
+
+
+
+
+ Additional event specific properties
+
+
+
+ A logger or an appender may attach additional
+ properties to specific events. These properties
+ have a string key and an object value.
+
+
+
+
+
+ Flags passed to the property
+
+
+
+ Flags passed to the property
+
+
+ Nicko Cadell
+
+
+
+ Fix the MDC
+
+
+
+
+ Fix the NDC
+
+
+
+
+ Fix the rendered message
+
+
+
+
+ Fix the thread name
+
+
+
+
+ Fix the callers location information
+
+
+ CAUTION: Very slow to generate
+
+
+
+
+ Fix the callers windows user name
+
+
+ CAUTION: Slow to generate
+
+
+
+
+ Fix the domain friendly name
+
+
+
+
+ Fix the callers principal name
+
+
+ CAUTION: May be slow to generate
+
+
+
+
+ Fix the exception text
+
+
+
+
+ Fix the event properties
+
+
+
+
+ No fields fixed
+
+
+
+
+ All fields fixed
+
+
+
+
+ Partial fields fixed
+
+
+
+ This set of partial fields gives good performance. The following fields are fixed:
+
+
+
+
+
+
+
+
+
+
+
+
+ The internal representation of logging events.
+
+
+
+ When an affirmative decision is made to log then a
+ instance is created. This instance
+ is passed around to the different log4net components.
+
+
+ This class is of concern to those wishing to extend log4net.
+
+
+ Some of the values in instances of
+ are considered volatile, that is the values are correct at the
+ time the event is delivered to appenders, but will not be consistent
+ at any time afterwards. If an event is to be stored and then processed
+ at a later time these volatile values must be fixed by calling
+ . There is a performance penalty
+ for incurred by calling but it
+ is essential to maintaining data consistency.
+
+
+ Nicko Cadell
+ Gert Driesen
+ Douglas de la Torre
+ Daniel Cazzulino
+
+
+
+ The key into the Properties map for the host name value.
+
+
+
+
+ The key into the Properties map for the thread identity value.
+
+
+
+
+ The key into the Properties map for the user name value.
+
+
+
+
+ Initializes a new instance of the class
+ from the supplied parameters.
+
+ The declaring type of the method that is
+ the stack boundary into the logging system for this call.
+ The repository this event is logged in.
+ The name of the logger of this event.
+ The level of this event.
+ The message of this event.
+ The exception for this event.
+
+
+ Except , and ,
+ all fields of LoggingEvent are filled when actually needed. Call
+ to cache all data locally
+ to prevent inconsistencies.
+
+ This method is called by the log4net framework
+ to create a logging event.
+
+
+
+
+
+ Initializes a new instance of the class
+ using specific data.
+
+ The declaring type of the method that is
+ the stack boundary into the logging system for this call.
+ The repository this event is logged in.
+ Data used to initialize the logging event.
+ The fields in the struct that have already been fixed.
+
+
+ This constructor is provided to allow a
+ to be created independently of the log4net framework. This can
+ be useful if you require a custom serialization scheme.
+
+
+ Use the method to obtain an
+ instance of the class.
+
+
+ The parameter should be used to specify which fields in the
+ struct have been preset. Fields not specified in the
+ will be captured from the environment if requested or fixed.
+
+
+
+
+
+ Initializes a new instance of the class
+ using specific data.
+
+ The declaring type of the method that is
+ the stack boundary into the logging system for this call.
+ The repository this event is logged in.
+ Data used to initialize the logging event.
+
+
+ This constructor is provided to allow a
+ to be created independently of the log4net framework. This can
+ be useful if you require a custom serialization scheme.
+
+
+ Use the method to obtain an
+ instance of the class.
+
+
+ This constructor sets this objects flags to ,
+ this assumes that all the data relating to this event is passed in via the
+ parameter and no other data should be captured from the environment.
+
+
+
+
+
+ Initializes a new instance of the class
+ using specific data.
+
+ Data used to initialize the logging event.
+
+
+ This constructor is provided to allow a
+ to be created independently of the log4net framework. This can
+ be useful if you require a custom serialization scheme.
+
+
+ Use the method to obtain an
+ instance of the class.
+
+
+ This constructor sets this objects flags to ,
+ this assumes that all the data relating to this event is passed in via the
+ parameter and no other data should be captured from the environment.
+
+
+
+
+
+ Serialization constructor
+
+ The that holds the serialized object data.
+ The that contains contextual information about the source or destination.
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+
+
+
+ Ensure that the repository is set.
+
+ the value for the repository
+
+
+
+ Write the rendered message to a TextWriter
+
+ the writer to write the message to
+
+
+ Unlike the property this method
+ does store the message data in the internal cache. Therefore
+ if called only once this method should be faster than the
+ property, however if the message is
+ to be accessed multiple times then the property will be more efficient.
+
+
+
+
+
+ Serializes this object into the provided.
+
+ The to populate with data.
+ The destination for this serialization.
+
+
+ The data in this event must be fixed before it can be serialized.
+
+
+ The method must be called during the
+ method call if this event
+ is to be used outside that method.
+
+
+
+
+
+ Gets the portable data for this .
+
+ The for this event.
+
+
+ A new can be constructed using a
+ instance.
+
+
+ Does a fix of the data
+ in the logging event before returning the event data.
+
+
+
+
+
+ Gets the portable data for this .
+
+ The set of data to ensure is fixed in the LoggingEventData
+ The for this event.
+
+
+ A new can be constructed using a
+ instance.
+
+
+
+
+
+ Returns this event's exception's rendered using the
+ .
+
+
+ This event's exception's rendered using the .
+
+
+
+ Obsolete. Use instead.
+
+
+
+
+
+ Returns this event's exception's rendered using the
+ .
+
+
+ This event's exception's rendered using the .
+
+
+
+ Returns this event's exception's rendered using the
+ .
+
+
+
+
+
+ Fix instance fields that hold volatile data.
+
+
+
+ Some of the values in instances of
+ are considered volatile, that is the values are correct at the
+ time the event is delivered to appenders, but will not be consistent
+ at any time afterwards. If an event is to be stored and then processed
+ at a later time these volatile values must be fixed by calling
+ . There is a performance penalty
+ incurred by calling but it
+ is essential to maintaining data consistency.
+
+
+ Calling is equivalent to
+ calling passing the parameter
+ false.
+
+
+ See for more
+ information.
+
+
+
+
+
+ Fixes instance fields that hold volatile data.
+
+ Set to true to not fix data that takes a long time to fix.
+
+
+ Some of the values in instances of
+ are considered volatile, that is the values are correct at the
+ time the event is delivered to appenders, but will not be consistent
+ at any time afterwards. If an event is to be stored and then processed
+ at a later time these volatile values must be fixed by calling
+ . There is a performance penalty
+ for incurred by calling but it
+ is essential to maintaining data consistency.
+
+
+ The param controls the data that
+ is fixed. Some of the data that can be fixed takes a long time to
+ generate, therefore if you do not require those settings to be fixed
+ they can be ignored by setting the param
+ to true. This setting will ignore the
+ and settings.
+
+
+ Set to false to ensure that all
+ settings are fixed.
+
+
+
+
+
+ Fix the fields specified by the parameter
+
+ the fields to fix
+
+
+ Only fields specified in the will be fixed.
+ Fields will not be fixed if they have previously been fixed.
+ It is not possible to 'unfix' a field.
+
+
+
+
+
+ Lookup a composite property in this event
+
+ the key for the property to lookup
+ the value for the property
+
+
+ This event has composite properties that combine together properties from
+ several different contexts in the following order:
+
+
+ this events properties
+
+ This event has that can be set. These
+ properties are specific to this event only.
+
+
+
+ the thread properties
+
+ The that are set on the current
+ thread. These properties are shared by all events logged on this thread.
+
+
+
+ the global properties
+
+ The that are set globally. These
+ properties are shared by all the threads in the AppDomain.
+
+
+
+
+
+
+
+
+ Get all the composite properties in this event
+
+ the containing all the properties
+
+
+ See for details of the composite properties
+ stored by the event.
+
+
+ This method returns a single containing all the
+ properties defined for this event.
+
+
+
+
+
+ The internal logging event data.
+
+
+
+
+ The internal logging event data.
+
+
+
+
+ The internal logging event data.
+
+
+
+
+ The fully qualified Type of the calling
+ logger class in the stack frame (i.e. the declaring type of the method).
+
+
+
+
+ The application supplied message of logging event.
+
+
+
+
+ The exception that was thrown.
+
+
+ This is not serialized. The string representation
+ is serialized instead.
+
+
+
+
+ The repository that generated the logging event
+
+
+ This is not serialized.
+
+
+
+
+ The fix state for this event
+
+
+ These flags indicate which fields have been fixed.
+ Not serialized.
+
+
+
+
+ Indicated that the internal cache is updateable (ie not fixed)
+
+
+ This is a seperate flag to m_fixFlags as it allows incrementel fixing and simpler
+ changes in the caching strategy.
+
+
+
+
+ Gets the time when the current process started.
+
+
+ This is the time when this process started.
+
+
+
+ The TimeStamp is stored in the local time zone for this computer.
+
+
+ Tries to get the start time for the current process.
+ Failing that it returns the time of the first call to
+ this property.
+
+
+ Note that AppDomains may be loaded and unloaded within the
+ same process without the process terminating and therefore
+ without the process start time being reset.
+
+
+
+
+
+ Gets the of the logging event.
+
+
+ The of the logging event.
+
+
+
+ Gets the of the logging event.
+
+
+
+
+
+ Gets the time of the logging event.
+
+
+ The time of the logging event.
+
+
+
+ The TimeStamp is stored in the local time zone for this computer.
+
+
+
+
+
+ Gets the name of the logger that logged the event.
+
+
+ The name of the logger that logged the event.
+
+
+
+ Gets the name of the logger that logged the event.
+
+
+
+
+
+ Gets the location information for this logging event.
+
+
+ The location information for this logging event.
+
+
+
+ The collected information is cached for future use.
+
+
+ See the class for more information on
+ supported frameworks and the different behavior in Debug and
+ Release builds.
+
+
+
+
+
+ Gets the message object used to initialize this event.
+
+
+ The message object used to initialize this event.
+
+
+
+ Gets the message object used to initialize this event.
+ Note that this event may not have a valid message object.
+ If the event is serialized the message object will not
+ be transferred. To get the text of the message the
+ property must be used
+ not this property.
+
+
+ If there is no defined message object for this event then
+ null will be returned.
+
+
+
+
+
+ Gets the exception object used to initialize this event.
+
+
+ The exception object used to initialize this event.
+
+
+
+ Gets the exception object used to initialize this event.
+ Note that this event may not have a valid exception object.
+ If the event is serialized the exception object will not
+ be transferred. To get the text of the exception the
+ method must be used
+ not this property.
+
+
+ If there is no defined exception object for this event then
+ null will be returned.
+
+
+
+
+
+ The that this event was created in.
+
+
+
+ The that this event was created in.
+
+
+
+
+
+ Gets the message, rendered through the .
+
+
+ The message rendered through the .
+
+
+
+ The collected information is cached for future use.
+
+
+
+
+
+ Gets the name of the current thread.
+
+
+ The name of the current thread, or the thread ID when
+ the name is not available.
+
+
+
+ The collected information is cached for future use.
+
+
+
+
+
+ Gets the name of the current user.
+
+
+ The name of the current user, or NOT AVAILABLE when the
+ underlying runtime has no support for retrieving the name of the
+ current user.
+
+
+
+ Calls WindowsIdentity.GetCurrent().Name to get the name of
+ the current windows user.
+
+
+ To improve performance, we could cache the string representation of
+ the name, and reuse that as long as the identity stayed constant.
+ Once the identity changed, we would need to re-assign and re-render
+ the string.
+
+
+ However, the WindowsIdentity.GetCurrent() call seems to
+ return different objects every time, so the current implementation
+ doesn't do this type of caching.
+
+
+ Timing for these operations:
+
+
+
+ Method
+ Results
+
+
+ WindowsIdentity.GetCurrent()
+ 10000 loops, 00:00:00.2031250 seconds
+
+
+ WindowsIdentity.GetCurrent().Name
+ 10000 loops, 00:00:08.0468750 seconds
+
+
+
+ This means we could speed things up almost 40 times by caching the
+ value of the WindowsIdentity.GetCurrent().Name property, since
+ this takes (8.04-0.20) = 7.84375 seconds.
+
+
+
+
+
+ Gets the identity of the current thread principal.
+
+
+ The string name of the identity of the current thread principal.
+
+
+
+ Calls System.Threading.Thread.CurrentPrincipal.Identity.Name to get
+ the name of the current thread principal.
+
+
+
+
+
+ Gets the AppDomain friendly name.
+
+
+ The AppDomain friendly name.
+
+
+
+ Gets the AppDomain friendly name.
+
+
+
+
+
+ Additional event specific properties.
+
+
+ Additional event specific properties.
+
+
+
+ A logger or an appender may attach additional
+ properties to specific events. These properties
+ have a string key and an object value.
+
+
+ This property is for events that have been added directly to
+ this event. The aggregate properties (which include these
+ event properties) can be retrieved using
+ and .
+
+
+ Once the properties have been fixed this property
+ returns the combined cached properties. This ensures that updates to
+ this property are always reflected in the underlying storage. When
+ returning the combined properties there may be more keys in the
+ Dictionary than expected.
+
+
+
+
+
+ The fixed fields in this event
+
+
+ The set of fields that are fixed in this event
+
+
+
+ Fields will not be fixed if they have previously been fixed.
+ It is not possible to 'unfix' a field.
+
+
+
+
+
+ Implementation of wrapper interface.
+
+
+
+ This implementation of the interface
+ forwards to the held by the base class.
+
+
+ This logger has methods to allow the caller to log at the following
+ levels:
+
+
+
+ DEBUG
+
+ The and methods log messages
+ at the DEBUG level. That is the level with that name defined in the
+ repositories . The default value
+ for this level is . The
+ property tests if this level is enabled for logging.
+
+
+
+ INFO
+
+ The and methods log messages
+ at the INFO level. That is the level with that name defined in the
+ repositories . The default value
+ for this level is . The
+ property tests if this level is enabled for logging.
+
+
+
+ WARN
+
+ The and methods log messages
+ at the WARN level. That is the level with that name defined in the
+ repositories . The default value
+ for this level is . The
+ property tests if this level is enabled for logging.
+
+
+
+ ERROR
+
+ The and methods log messages
+ at the ERROR level. That is the level with that name defined in the
+ repositories . The default value
+ for this level is . The
+ property tests if this level is enabled for logging.
+
+
+
+ FATAL
+
+ The and methods log messages
+ at the FATAL level. That is the level with that name defined in the
+ repositories . The default value
+ for this level is . The
+ property tests if this level is enabled for logging.
+
+
+
+
+ The values for these levels and their semantic meanings can be changed by
+ configuring the for the repository.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ The ILog interface is use by application to log messages into
+ the log4net framework.
+
+
+
+ Use the to obtain logger instances
+ that implement this interface. The
+ static method is used to get logger instances.
+
+
+ This class contains methods for logging at different levels and also
+ has properties for determining if those logging levels are
+ enabled in the current configuration.
+
+
+ This interface can be implemented in different ways. This documentation
+ specifies reasonable behavior that a caller can expect from the actual
+ implementation, however different implementations reserve the right to
+ do things differently.
+
+
+ Simple example of logging messages
+
+ ILog log = LogManager.GetLogger("application-log");
+
+ log.Info("Application Start");
+ log.Debug("This is a debug message");
+
+ if (log.IsDebugEnabled)
+ {
+ log.Debug("This is another debug message");
+ }
+
+
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+ Log a message object with the level.
+
+ Log a message object with the level.
+
+ The message object to log.
+
+
+ This method first checks if this logger is DEBUG
+ enabled by comparing the level of this logger with the
+ level. If this logger is
+ DEBUG enabled, then it converts the message object
+ (passed as parameter) to a string by invoking the appropriate
+ . It then
+ proceeds to call all the registered appenders in this logger
+ and also higher in the hierarchy depending on the value of
+ the additivity flag.
+
+ WARNING Note that passing an
+ to this method will print the name of the
+ but no stack trace. To print a stack trace use the
+ form instead.
+
+
+
+
+
+
+
+ Log a message object with the level including
+ the stack trace of the passed
+ as a parameter.
+
+ The message object to log.
+ The exception to log, including its stack trace.
+
+
+ See the form for more detailed information.
+
+
+
+
+
+
+ Log a formatted string with the level.
+
+ Logs a formatted message string with the level.
+
+ A String containing zero or more format items
+ An Object array containing zero or more objects to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+
+ Logs a formatted message string with the level.
+
+ A String containing zero or more format items
+ An Object to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+
+ Logs a formatted message string with the level.
+
+ A String containing zero or more format items
+ An Object to format
+ An Object to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+
+ Logs a formatted message string with the level.
+
+ A String containing zero or more format items
+ An Object to format
+ An Object to format
+ An Object to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+
+ Logs a formatted message string with the level.
+
+ An that supplies culture-specific formatting information
+ A String containing zero or more format items
+ An Object array containing zero or more objects to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+ Log a message object with the level.
+
+ Logs a message object with the level.
+
+
+
+ This method first checks if this logger is INFO
+ enabled by comparing the level of this logger with the
+ level. If this logger is
+ INFO enabled, then it converts the message object
+ (passed as parameter) to a string by invoking the appropriate
+ . It then
+ proceeds to call all the registered appenders in this logger
+ and also higher in the hierarchy depending on the value of the
+ additivity flag.
+
+ WARNING Note that passing an
+ to this method will print the name of the
+ but no stack trace. To print a stack trace use the
+ form instead.
+
+
+ The message object to log.
+
+
+
+
+
+ Logs a message object with the INFO level including
+ the stack trace of the passed
+ as a parameter.
+
+ The message object to log.
+ The exception to log, including its stack trace.
+
+
+ See the form for more detailed information.
+
+
+
+
+
+
+ Log a formatted message string with the level.
+
+ Logs a formatted message string with the level.
+
+ A String containing zero or more format items
+ An Object array containing zero or more objects to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+
+ Logs a formatted message string with the level.
+
+ A String containing zero or more format items
+ An Object to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+
+ Logs a formatted message string with the level.
+
+ A String containing zero or more format items
+ An Object to format
+ An Object to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+
+ Logs a formatted message string with the level.
+
+ A String containing zero or more format items
+ An Object to format
+ An Object to format
+ An Object to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+
+ Logs a formatted message string with the level.
+
+ An that supplies culture-specific formatting information
+ A String containing zero or more format items
+ An Object array containing zero or more objects to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+ Log a message object with the level.
+
+ Log a message object with the level.
+
+
+
+ This method first checks if this logger is WARN
+ enabled by comparing the level of this logger with the
+ level. If this logger is
+ WARN enabled, then it converts the message object
+ (passed as parameter) to a string by invoking the appropriate
+ . It then
+ proceeds to call all the registered appenders in this logger
+ and also higher in the hierarchy depending on the value of the
+ additivity flag.
+
+ WARNING Note that passing an
+ to this method will print the name of the
+ but no stack trace. To print a stack trace use the
+ form instead.
+
+
+ The message object to log.
+
+
+
+
+
+ Log a message object with the level including
+ the stack trace of the passed
+ as a parameter.
+
+ The message object to log.
+ The exception to log, including its stack trace.
+
+
+ See the form for more detailed information.
+
+
+
+
+
+
+ Log a formatted message string with the level.
+
+ Logs a formatted message string with the level.
+
+ A String containing zero or more format items
+ An Object array containing zero or more objects to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+
+ Logs a formatted message string with the level.
+
+ A String containing zero or more format items
+ An Object to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+
+ Logs a formatted message string with the level.
+
+ A String containing zero or more format items
+ An Object to format
+ An Object to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+
+ Logs a formatted message string with the level.
+
+ A String containing zero or more format items
+ An Object to format
+ An Object to format
+ An Object to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+
+ Logs a formatted message string with the level.
+
+ An that supplies culture-specific formatting information
+ A String containing zero or more format items
+ An Object array containing zero or more objects to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+ Log a message object with the level.
+
+ Logs a message object with the level.
+
+ The message object to log.
+
+
+ This method first checks if this logger is ERROR
+ enabled by comparing the level of this logger with the
+ level. If this logger is
+ ERROR enabled, then it converts the message object
+ (passed as parameter) to a string by invoking the appropriate
+ . It then
+ proceeds to call all the registered appenders in this logger
+ and also higher in the hierarchy depending on the value of the
+ additivity flag.
+
+ WARNING Note that passing an
+ to this method will print the name of the
+ but no stack trace. To print a stack trace use the
+ form instead.
+
+
+
+
+
+
+
+ Log a message object with the level including
+ the stack trace of the passed
+ as a parameter.
+
+ The message object to log.
+ The exception to log, including its stack trace.
+
+
+ See the form for more detailed information.
+
+
+
+
+
+
+ Log a formatted message string with the level.
+
+ Logs a formatted message string with the level.
+
+ A String containing zero or more format items
+ An Object array containing zero or more objects to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+
+ Logs a formatted message string with the level.
+
+ A String containing zero or more format items
+ An Object to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+
+ Logs a formatted message string with the level.
+
+ A String containing zero or more format items
+ An Object to format
+ An Object to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+
+ Logs a formatted message string with the level.
+
+ A String containing zero or more format items
+ An Object to format
+ An Object to format
+ An Object to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+
+ Logs a formatted message string with the level.
+
+ An that supplies culture-specific formatting information
+ A String containing zero or more format items
+ An Object array containing zero or more objects to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+ Log a message object with the level.
+
+ Log a message object with the level.
+
+
+
+ This method first checks if this logger is FATAL
+ enabled by comparing the level of this logger with the
+ level. If this logger is
+ FATAL enabled, then it converts the message object
+ (passed as parameter) to a string by invoking the appropriate
+ . It then
+ proceeds to call all the registered appenders in this logger
+ and also higher in the hierarchy depending on the value of the
+ additivity flag.
+
+ WARNING Note that passing an
+ to this method will print the name of the
+ but no stack trace. To print a stack trace use the
+ form instead.
+
+
+ The message object to log.
+
+
+
+
+
+ Log a message object with the level including
+ the stack trace of the passed
+ as a parameter.
+
+ The message object to log.
+ The exception to log, including its stack trace.
+
+
+ See the form for more detailed information.
+
+
+
+
+
+
+ Log a formatted message string with the level.
+
+ Logs a formatted message string with the level.
+
+ A String containing zero or more format items
+ An Object array containing zero or more objects to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+
+ Logs a formatted message string with the level.
+
+ A String containing zero or more format items
+ An Object to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+
+ Logs a formatted message string with the level.
+
+ A String containing zero or more format items
+ An Object to format
+ An Object to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+
+ Logs a formatted message string with the level.
+
+ A String containing zero or more format items
+ An Object to format
+ An Object to format
+ An Object to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+
+ Logs a formatted message string with the level.
+
+ An that supplies culture-specific formatting information
+ A String containing zero or more format items
+ An Object array containing zero or more objects to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+
+ Checks if this logger is enabled for the level.
+
+
+ true if this logger is enabled for events, false otherwise.
+
+
+
+ This function is intended to lessen the computational cost of
+ disabled log debug statements.
+
+ For some ILog interface log, when you write:
+
+ log.Debug("This is entry number: " + i );
+
+
+ You incur the cost constructing the message, string construction and concatenation in
+ this case, regardless of whether the message is logged or not.
+
+
+ If you are worried about speed (who isn't), then you should write:
+
+
+ if (log.IsDebugEnabled)
+ {
+ log.Debug("This is entry number: " + i );
+ }
+
+
+ This way you will not incur the cost of parameter
+ construction if debugging is disabled for log. On
+ the other hand, if the log is debug enabled, you
+ will incur the cost of evaluating whether the logger is debug
+ enabled twice. Once in and once in
+ the . This is an insignificant overhead
+ since evaluating a logger takes about 1% of the time it
+ takes to actually log. This is the preferred style of logging.
+
+ Alternatively if your logger is available statically then the is debug
+ enabled state can be stored in a static variable like this:
+
+
+ private static readonly bool isDebugEnabled = log.IsDebugEnabled;
+
+
+ Then when you come to log you can write:
+
+
+ if (isDebugEnabled)
+ {
+ log.Debug("This is entry number: " + i );
+ }
+
+
+ This way the debug enabled state is only queried once
+ when the class is loaded. Using a private static readonly
+ variable is the most efficient because it is a run time constant
+ and can be heavily optimized by the JIT compiler.
+
+
+ Of course if you use a static readonly variable to
+ hold the enabled state of the logger then you cannot
+ change the enabled state at runtime to vary the logging
+ that is produced. You have to decide if you need absolute
+ speed or runtime flexibility.
+
+
+
+
+
+
+
+ Checks if this logger is enabled for the level.
+
+
+ true if this logger is enabled for events, false otherwise.
+
+
+ For more information see .
+
+
+
+
+
+
+
+ Checks if this logger is enabled for the level.
+
+
+ true if this logger is enabled for events, false otherwise.
+
+
+ For more information see .
+
+
+
+
+
+
+
+ Checks if this logger is enabled for the level.
+
+
+ true if this logger is enabled for events, false otherwise.
+
+
+ For more information see .
+
+
+
+
+
+
+
+ Checks if this logger is enabled for the level.
+
+
+ true if this logger is enabled for events, false otherwise.
+
+
+ For more information see .
+
+
+
+
+
+
+
+ Construct a new wrapper for the specified logger.
+
+ The logger to wrap.
+
+
+ Construct a new wrapper for the specified logger.
+
+
+
+
+
+ Virtual method called when the configuration of the repository changes
+
+ the repository holding the levels
+
+
+ Virtual method called when the configuration of the repository changes
+
+
+
+
+
+ Logs a message object with the DEBUG level.
+
+ The message object to log.
+
+
+ This method first checks if this logger is DEBUG
+ enabled by comparing the level of this logger with the
+ DEBUG level. If this logger is
+ DEBUG enabled, then it converts the message object
+ (passed as parameter) to a string by invoking the appropriate
+ . It then
+ proceeds to call all the registered appenders in this logger
+ and also higher in the hierarchy depending on the value of the
+ additivity flag.
+
+
+ WARNING Note that passing an
+ to this method will print the name of the
+ but no stack trace. To print a stack trace use the
+ form instead.
+
+
+
+
+
+ Logs a message object with the DEBUG level
+
+ The message object to log.
+ The exception to log, including its stack trace.
+
+
+ Logs a message object with the DEBUG level including
+ the stack trace of the passed
+ as a parameter.
+
+
+ See the form for more detailed information.
+
+
+
+
+
+
+ Logs a formatted message string with the DEBUG level.
+
+ A String containing zero or more format items
+ An Object array containing zero or more objects to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ The string is formatted using the
+ format provider. To specify a localized provider use the
+ method.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a formatted message string with the DEBUG level.
+
+ A String containing zero or more format items
+ An Object to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ The string is formatted using the
+ format provider. To specify a localized provider use the
+ method.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a formatted message string with the DEBUG level.
+
+ A String containing zero or more format items
+ An Object to format
+ An Object to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ The string is formatted using the
+ format provider. To specify a localized provider use the
+ method.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a formatted message string with the DEBUG level.
+
+ A String containing zero or more format items
+ An Object to format
+ An Object to format
+ An Object to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ The string is formatted using the
+ format provider. To specify a localized provider use the
+ method.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a formatted message string with the DEBUG level.
+
+ An that supplies culture-specific formatting information
+ A String containing zero or more format items
+ An Object array containing zero or more objects to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a message object with the INFO level.
+
+ The message object to log.
+
+
+ This method first checks if this logger is INFO
+ enabled by comparing the level of this logger with the
+ INFO level. If this logger is
+ INFO enabled, then it converts the message object
+ (passed as parameter) to a string by invoking the appropriate
+ . It then
+ proceeds to call all the registered appenders in this logger
+ and also higher in the hierarchy depending on the value of
+ the additivity flag.
+
+
+ WARNING Note that passing an
+ to this method will print the name of the
+ but no stack trace. To print a stack trace use the
+ form instead.
+
+
+
+
+
+ Logs a message object with the INFO level.
+
+ The message object to log.
+ The exception to log, including its stack trace.
+
+
+ Logs a message object with the INFO level including
+ the stack trace of the
+ passed as a parameter.
+
+
+ See the form for more detailed information.
+
+
+
+
+
+
+ Logs a formatted message string with the INFO level.
+
+ A String containing zero or more format items
+ An Object array containing zero or more objects to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ The string is formatted using the
+ format provider. To specify a localized provider use the
+ method.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a formatted message string with the INFO level.
+
+ A String containing zero or more format items
+ An Object to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ The string is formatted using the
+ format provider. To specify a localized provider use the
+ method.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a formatted message string with the INFO level.
+
+ A String containing zero or more format items
+ An Object to format
+ An Object to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ The string is formatted using the
+ format provider. To specify a localized provider use the
+ method.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a formatted message string with the INFO level.
+
+ A String containing zero or more format items
+ An Object to format
+ An Object to format
+ An Object to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ The string is formatted using the
+ format provider. To specify a localized provider use the
+ method.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a formatted message string with the INFO level.
+
+ An that supplies culture-specific formatting information
+ A String containing zero or more format items
+ An Object array containing zero or more objects to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a message object with the WARN level.
+
+ the message object to log
+
+
+ This method first checks if this logger is WARN
+ enabled by comparing the level of this logger with the
+ WARN level. If this logger is
+ WARN enabled, then it converts the message object
+ (passed as parameter) to a string by invoking the appropriate
+ . It then
+ proceeds to call all the registered appenders in this logger and
+ also higher in the hierarchy depending on the value of the
+ additivity flag.
+
+
+ WARNING Note that passing an to this
+ method will print the name of the but no
+ stack trace. To print a stack trace use the
+ form instead.
+
+
+
+
+
+ Logs a message object with the WARN level
+
+ The message object to log.
+ The exception to log, including its stack trace.
+
+
+ Logs a message object with the WARN level including
+ the stack trace of the
+ passed as a parameter.
+
+
+ See the form for more detailed information.
+
+
+
+
+
+
+ Logs a formatted message string with the WARN level.
+
+ A String containing zero or more format items
+ An Object array containing zero or more objects to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ The string is formatted using the
+ format provider. To specify a localized provider use the
+ method.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a formatted message string with the WARN level.
+
+ A String containing zero or more format items
+ An Object to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ The string is formatted using the
+ format provider. To specify a localized provider use the
+ method.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a formatted message string with the WARN level.
+
+ A String containing zero or more format items
+ An Object to format
+ An Object to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ The string is formatted using the
+ format provider. To specify a localized provider use the
+ method.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a formatted message string with the WARN level.
+
+ A String containing zero or more format items
+ An Object to format
+ An Object to format
+ An Object to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ The string is formatted using the
+ format provider. To specify a localized provider use the
+ method.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a formatted message string with the WARN level.
+
+ An that supplies culture-specific formatting information
+ A String containing zero or more format items
+ An Object array containing zero or more objects to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a message object with the ERROR level.
+
+ The message object to log.
+
+
+ This method first checks if this logger is ERROR
+ enabled by comparing the level of this logger with the
+ ERROR level. If this logger is
+ ERROR enabled, then it converts the message object
+ (passed as parameter) to a string by invoking the appropriate
+ . It then
+ proceeds to call all the registered appenders in this logger and
+ also higher in the hierarchy depending on the value of the
+ additivity flag.
+
+
+ WARNING Note that passing an to this
+ method will print the name of the but no
+ stack trace. To print a stack trace use the
+ form instead.
+
+
+
+
+
+ Logs a message object with the ERROR level
+
+ The message object to log.
+ The exception to log, including its stack trace.
+
+
+ Logs a message object with the ERROR level including
+ the stack trace of the
+ passed as a parameter.
+
+
+ See the form for more detailed information.
+
+
+
+
+
+
+ Logs a formatted message string with the ERROR level.
+
+ A String containing zero or more format items
+ An Object array containing zero or more objects to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ The string is formatted using the
+ format provider. To specify a localized provider use the
+ method.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a formatted message string with the ERROR level.
+
+ A String containing zero or more format items
+ An Object to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ The string is formatted using the
+ format provider. To specify a localized provider use the
+ method.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a formatted message string with the ERROR level.
+
+ A String containing zero or more format items
+ An Object to format
+ An Object to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ The string is formatted using the
+ format provider. To specify a localized provider use the
+ method.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a formatted message string with the ERROR level.
+
+ A String containing zero or more format items
+ An Object to format
+ An Object to format
+ An Object to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ The string is formatted using the
+ format provider. To specify a localized provider use the
+ method.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a formatted message string with the ERROR level.
+
+ An that supplies culture-specific formatting information
+ A String containing zero or more format items
+ An Object array containing zero or more objects to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a message object with the FATAL level.
+
+ The message object to log.
+
+
+ This method first checks if this logger is FATAL
+ enabled by comparing the level of this logger with the
+ FATAL level. If this logger is
+ FATAL enabled, then it converts the message object
+ (passed as parameter) to a string by invoking the appropriate
+ . It then
+ proceeds to call all the registered appenders in this logger and
+ also higher in the hierarchy depending on the value of the
+ additivity flag.
+
+
+ WARNING Note that passing an to this
+ method will print the name of the but no
+ stack trace. To print a stack trace use the
+ form instead.
+
+
+
+
+
+ Logs a message object with the FATAL level
+
+ The message object to log.
+ The exception to log, including its stack trace.
+
+
+ Logs a message object with the FATAL level including
+ the stack trace of the
+ passed as a parameter.
+
+
+ See the form for more detailed information.
+
+
+
+
+
+
+ Logs a formatted message string with the FATAL level.
+
+ A String containing zero or more format items
+ An Object array containing zero or more objects to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ The string is formatted using the
+ format provider. To specify a localized provider use the
+ method.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a formatted message string with the FATAL level.
+
+ A String containing zero or more format items
+ An Object to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ The string is formatted using the
+ format provider. To specify a localized provider use the
+ method.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a formatted message string with the FATAL level.
+
+ A String containing zero or more format items
+ An Object to format
+ An Object to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ The string is formatted using the
+ format provider. To specify a localized provider use the
+ method.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a formatted message string with the FATAL level.
+
+ A String containing zero or more format items
+ An Object to format
+ An Object to format
+ An Object to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ The string is formatted using the
+ format provider. To specify a localized provider use the
+ method.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a formatted message string with the FATAL level.
+
+ An that supplies culture-specific formatting information
+ A String containing zero or more format items
+ An Object array containing zero or more objects to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Event handler for the event
+
+ the repository
+ Empty
+
+
+
+ The fully qualified name of this declaring type not the type of any subclass.
+
+
+
+
+ Checks if this logger is enabled for the DEBUG
+ level.
+
+
+ true if this logger is enabled for DEBUG events,
+ false otherwise.
+
+
+
+ This function is intended to lessen the computational cost of
+ disabled log debug statements.
+
+
+ For some log Logger object, when you write:
+
+
+ log.Debug("This is entry number: " + i );
+
+
+ You incur the cost constructing the message, concatenation in
+ this case, regardless of whether the message is logged or not.
+
+
+ If you are worried about speed, then you should write:
+
+
+ if (log.IsDebugEnabled())
+ {
+ log.Debug("This is entry number: " + i );
+ }
+
+
+ This way you will not incur the cost of parameter
+ construction if debugging is disabled for log. On
+ the other hand, if the log is debug enabled, you
+ will incur the cost of evaluating whether the logger is debug
+ enabled twice. Once in IsDebugEnabled and once in
+ the Debug. This is an insignificant overhead
+ since evaluating a logger takes about 1% of the time it
+ takes to actually log.
+
+
+
+
+
+ Checks if this logger is enabled for the INFO level.
+
+
+ true if this logger is enabled for INFO events,
+ false otherwise.
+
+
+
+ See for more information and examples
+ of using this method.
+
+
+
+
+
+
+ Checks if this logger is enabled for the WARN level.
+
+
+ true if this logger is enabled for WARN events,
+ false otherwise.
+
+
+
+ See for more information and examples
+ of using this method.
+
+
+
+
+
+
+ Checks if this logger is enabled for the ERROR level.
+
+
+ true if this logger is enabled for ERROR events,
+ false otherwise.
+
+
+
+ See for more information and examples of using this method.
+
+
+
+
+
+
+ Checks if this logger is enabled for the FATAL level.
+
+
+ true if this logger is enabled for FATAL events,
+ false otherwise.
+
+
+
+ See for more information and examples of using this method.
+
+
+
+
+
+
+ A SecurityContext used by log4net when interacting with protected resources
+
+
+
+ A SecurityContext used by log4net when interacting with protected resources
+ for example with operating system services. This can be used to impersonate
+ a principal that has been granted privileges on the system resources.
+
+
+ Nicko Cadell
+
+
+
+ Impersonate this SecurityContext
+
+ State supplied by the caller
+ An instance that will
+ revoke the impersonation of this SecurityContext, or null
+
+
+ Impersonate this security context. Further calls on the current
+ thread should now be made in the security context provided
+ by this object. When the result
+ method is called the security
+ context of the thread should be reverted to the state it was in
+ before was called.
+
+
+
+
+
+ The providers default instances.
+
+
+
+ A configured component that interacts with potentially protected system
+ resources uses a to provide the elevated
+ privileges required. If the object has
+ been not been explicitly provided to the component then the component
+ will request one from this .
+
+
+ By default the is
+ an instance of which returns only
+ objects. This is a reasonable default
+ where the privileges required are not know by the system.
+
+
+ This default behavior can be overridden by subclassing the
+ and overriding the method to return
+ the desired objects. The default provider
+ can be replaced by programmatically setting the value of the
+ property.
+
+
+ An alternative is to use the log4net.Config.SecurityContextProviderAttribute
+ This attribute can be applied to an assembly in the same way as the
+ log4net.Config.XmlConfiguratorAttribute". The attribute takes
+ the type to use as the as an argument.
+
+
+ Nicko Cadell
+
+
+
+ The default provider
+
+
+
+
+ Protected default constructor to allow subclassing
+
+
+
+ Protected default constructor to allow subclassing
+
+
+
+
+
+ Create a SecurityContext for a consumer
+
+ The consumer requesting the SecurityContext
+ An impersonation context
+
+
+ The default implementation is to return a .
+
+
+ Subclasses should override this method to provide their own
+ behavior.
+
+
+
+
+
+ Gets or sets the default SecurityContextProvider
+
+
+ The default SecurityContextProvider
+
+
+
+ The default provider is used by configured components that
+ require a and have not had one
+ given to them.
+
+
+ By default this is an instance of
+ that returns objects.
+
+
+ The default provider can be set programmatically by setting
+ the value of this property to a sub class of
+ that has the desired behavior.
+
+
+
+
+
+ Delegate used to handle creation of new wrappers.
+
+ The logger to wrap in a wrapper.
+
+
+ Delegate used to handle creation of new wrappers. This delegate
+ is called from the
+ method to construct the wrapper for the specified logger.
+
+
+ The delegate to use is supplied to the
+ constructor.
+
+
+
+
+
+ Maps between logger objects and wrapper objects.
+
+
+
+ This class maintains a mapping between objects and
+ objects. Use the method to
+ lookup the for the specified .
+
+
+ New wrapper instances are created by the
+ method. The default behavior is for this method to delegate construction
+ of the wrapper to the delegate supplied
+ to the constructor. This allows specialization of the behavior without
+ requiring subclassing of this type.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Initializes a new instance of the
+
+ The handler to use to create the wrapper objects.
+
+
+ Initializes a new instance of the class with
+ the specified handler to create the wrapper objects.
+
+
+
+
+
+ Gets the wrapper object for the specified logger.
+
+ The wrapper object for the specified logger
+
+
+ If the logger is null then the corresponding wrapper is null.
+
+
+ Looks up the wrapper it it has previously been requested and
+ returns it. If the wrapper has never been requested before then
+ the virtual method is
+ called.
+
+
+
+
+
+ Creates the wrapper object for the specified logger.
+
+ The logger to wrap in a wrapper.
+ The wrapper object for the logger.
+
+
+ This implementation uses the
+ passed to the constructor to create the wrapper. This method
+ can be overridden in a subclass.
+
+
+
+
+
+ Called when a monitored repository shutdown event is received.
+
+ The that is shutting down
+
+
+ This method is called when a that this
+ is holding loggers for has signaled its shutdown
+ event . The default
+ behavior of this method is to release the references to the loggers
+ and their wrappers generated for this repository.
+
+
+
+
+
+ Event handler for repository shutdown event.
+
+ The sender of the event.
+ The event args.
+
+
+
+ Map of logger repositories to hashtables of ILogger to ILoggerWrapper mappings
+
+
+
+
+ The handler to use to create the extension wrapper objects.
+
+
+
+
+ Internal reference to the delegate used to register for repository shutdown events.
+
+
+
+
+ Gets the map of logger repositories.
+
+
+ Map of logger repositories.
+
+
+
+ Gets the hashtable that is keyed on . The
+ values are hashtables keyed on with the
+ value being the corresponding .
+
+
+
+
+
+ Formats a as "HH:mm:ss,fff".
+
+
+
+ Formats a in the format "HH:mm:ss,fff" for example, "15:49:37,459".
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Render a as a string.
+
+
+
+ Interface to abstract the rendering of a
+ instance into a string.
+
+
+ The method is used to render the
+ date to a text writer.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Formats the specified date as a string.
+
+ The date to format.
+ The writer to write to.
+
+
+ Format the as a string and write it
+ to the provided.
+
+
+
+
+
+ String constant used to specify AbsoluteTimeDateFormat in layouts. Current value is ABSOLUTE.
+
+
+
+
+ String constant used to specify DateTimeDateFormat in layouts. Current value is DATE.
+
+
+
+
+ String constant used to specify ISO8601DateFormat in layouts. Current value is ISO8601.
+
+
+
+
+ Renders the date into a string. Format is "HH:mm:ss".
+
+ The date to render into a string.
+ The string builder to write to.
+
+
+ Subclasses should override this method to render the date
+ into a string using a precision up to the second. This method
+ will be called at most once per second and the result will be
+ reused if it is needed again during the same second.
+
+
+
+
+
+ Renders the date into a string. Format is "HH:mm:ss,fff".
+
+ The date to render into a string.
+ The writer to write to.
+
+
+ Uses the method to generate the
+ time string up to the seconds and then appends the current
+ milliseconds. The results from are
+ cached and is called at most once
+ per second.
+
+
+ Sub classes should override
+ rather than .
+
+
+
+
+
+ Last stored time with precision up to the second.
+
+
+
+
+ Last stored time with precision up to the second, formatted
+ as a string.
+
+
+
+
+ Last stored time with precision up to the second, formatted
+ as a string.
+
+
+
+
+ Formats a as "dd MMM yyyy HH:mm:ss,fff"
+
+
+
+ Formats a in the format
+ "dd MMM yyyy HH:mm:ss,fff" for example,
+ "06 Nov 1994 15:49:37,459".
+
+
+ Nicko Cadell
+ Gert Driesen
+ Angelika Schnagl
+
+
+
+ Default constructor.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+
+ Formats the date without the milliseconds part
+
+ The date to format.
+ The string builder to write to.
+
+
+ Formats a DateTime in the format "dd MMM yyyy HH:mm:ss"
+ for example, "06 Nov 1994 15:49:37".
+
+
+ The base class will append the ",fff" milliseconds section.
+ This method will only be called at most once per second.
+
+
+
+
+
+ The format info for the invariant culture.
+
+
+
+
+ Formats the as "yyyy-MM-dd HH:mm:ss,fff".
+
+
+
+ Formats the specified as a string: "yyyy-MM-dd HH:mm:ss,fff".
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Default constructor
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+
+ Formats the date without the milliseconds part
+
+ The date to format.
+ The string builder to write to.
+
+
+ Formats the date specified as a string: "yyyy-MM-dd HH:mm:ss".
+
+
+ The base class will append the ",fff" milliseconds section.
+ This method will only be called at most once per second.
+
+
+
+
+
+ Formats the using the method.
+
+
+
+ Formats the using the method.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Constructor
+
+ The format string.
+
+
+ Initializes a new instance of the class
+ with the specified format string.
+
+
+ The format string must be compatible with the options
+ that can be supplied to .
+
+
+
+
+
+ Formats the date using .
+
+ The date to convert to a string.
+ The writer to write to.
+
+
+ Uses the date format string supplied to the constructor to call
+ the method to format the date.
+
+
+
+
+
+ The format string used to format the .
+
+
+
+ The format string must be compatible with the options
+ that can be supplied to .
+
+
+
+
+
+ This filter drops all .
+
+
+
+ You can add this filter to the end of a filter chain to
+ switch from the default "accept all unless instructed otherwise"
+ filtering behavior to a "deny all unless instructed otherwise"
+ behavior.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Subclass this type to implement customized logging event filtering
+
+
+
+ Users should extend this class to implement customized logging
+ event filtering. Note that and
+ , the parent class of all standard
+ appenders, have built-in filtering rules. It is suggested that you
+ first use and understand the built-in rules before rushing to write
+ your own custom filters.
+
+
+ This abstract class assumes and also imposes that filters be
+ organized in a linear chain. The
+ method of each filter is called sequentially, in the order of their
+ addition to the chain.
+
+
+ The method must return one
+ of the integer constants ,
+ or .
+
+
+ If the value is returned, then the log event is dropped
+ immediately without consulting with the remaining filters.
+
+
+ If the value is returned, then the next filter
+ in the chain is consulted. If there are no more filters in the
+ chain, then the log event is logged. Thus, in the presence of no
+ filters, the default behavior is to log all logging events.
+
+
+ If the value is returned, then the log
+ event is logged without consulting the remaining filters.
+
+
+ The philosophy of log4net filters is largely inspired from the
+ Linux ipchains.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Implement this interface to provide customized logging event filtering
+
+
+
+ Users should implement this interface to implement customized logging
+ event filtering. Note that and
+ , the parent class of all standard
+ appenders, have built-in filtering rules. It is suggested that you
+ first use and understand the built-in rules before rushing to write
+ your own custom filters.
+
+
+ This abstract class assumes and also imposes that filters be
+ organized in a linear chain. The
+ method of each filter is called sequentially, in the order of their
+ addition to the chain.
+
+
+ The method must return one
+ of the integer constants ,
+ or .
+
+
+ If the value is returned, then the log event is dropped
+ immediately without consulting with the remaining filters.
+
+
+ If the value is returned, then the next filter
+ in the chain is consulted. If there are no more filters in the
+ chain, then the log event is logged. Thus, in the presence of no
+ filters, the default behavior is to log all logging events.
+
+
+ If the value is returned, then the log
+ event is logged without consulting the remaining filters.
+
+
+ The philosophy of log4net filters is largely inspired from the
+ Linux ipchains.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Decide if the logging event should be logged through an appender.
+
+ The LoggingEvent to decide upon
+ The decision of the filter
+
+
+ If the decision is , then the event will be
+ dropped. If the decision is , then the next
+ filter, if any, will be invoked. If the decision is then
+ the event will be logged without consulting with other filters in
+ the chain.
+
+
+
+
+
+ Property to get and set the next filter
+
+
+ The next filter in the chain
+
+
+
+ Filters are typically composed into chains. This property allows the next filter in
+ the chain to be accessed.
+
+
+
+
+
+ Points to the next filter in the filter chain.
+
+
+
+ See for more information.
+
+
+
+
+
+ Initialize the filter with the options set
+
+
+
+ This is part of the delayed object
+ activation scheme. The method must
+ be called on this object after the configuration properties have
+ been set. Until is called this
+ object is in an undefined state and must not be used.
+
+
+ If any of the configuration properties are modified then
+ must be called again.
+
+
+ Typically filter's options become active immediately on set,
+ however this method must still be called.
+
+
+
+
+
+ Decide if the should be logged through an appender.
+
+ The to decide upon
+ The decision of the filter
+
+
+ If the decision is , then the event will be
+ dropped. If the decision is , then the next
+ filter, if any, will be invoked. If the decision is then
+ the event will be logged without consulting with other filters in
+ the chain.
+
+
+ This method is marked abstract and must be implemented
+ in a subclass.
+
+
+
+
+
+ Property to get and set the next filter
+
+
+ The next filter in the chain
+
+
+
+ Filters are typically composed into chains. This property allows the next filter in
+ the chain to be accessed.
+
+
+
+
+
+ Default constructor
+
+
+
+
+ Always returns the integer constant
+
+ the LoggingEvent to filter
+ Always returns
+
+
+ Ignores the event being logged and just returns
+ . This can be used to change the default filter
+ chain behavior from to . This filter
+ should only be used as the last filter in the chain
+ as any further filters will be ignored!
+
+
+
+
+
+ The return result from
+
+
+
+ The return result from
+
+
+
+
+
+ The log event must be dropped immediately without
+ consulting with the remaining filters, if any, in the chain.
+
+
+
+
+ This filter is neutral with respect to the log event.
+ The remaining filters, if any, should be consulted for a final decision.
+
+
+
+
+ The log event must be logged immediately without
+ consulting with the remaining filters, if any, in the chain.
+
+
+
+
+ This is a very simple filter based on matching.
+
+
+
+ The filter admits two options and
+ . If there is an exact match between the value
+ of the option and the of the
+ , then the method returns in
+ case the option value is set
+ to true, if it is false then
+ is returned. If the does not match then
+ the result will be .
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ flag to indicate if the filter should on a match
+
+
+
+
+ the to match against
+
+
+
+
+ Default constructor
+
+
+
+
+ Tests if the of the logging event matches that of the filter
+
+ the event to filter
+ see remarks
+
+
+ If the of the event matches the level of the
+ filter then the result of the function depends on the
+ value of . If it is true then
+ the function will return , it it is false then it
+ will return . If the does not match then
+ the result will be .
+
+
+
+
+
+ when matching
+
+
+
+ The property is a flag that determines
+ the behavior when a matching is found. If the
+ flag is set to true then the filter will the
+ logging event, otherwise it will the event.
+
+
+ The default is true i.e. to the event.
+
+
+
+
+
+ The that the filter will match
+
+
+
+ The level that this filter will attempt to match against the
+ level. If a match is found then
+ the result depends on the value of .
+
+
+
+
+
+ This is a simple filter based on matching.
+
+
+
+ The filter admits three options and
+ that determine the range of priorities that are matched, and
+ . If there is a match between the range
+ of priorities and the of the , then the
+ method returns in case the
+ option value is set to true, if it is false
+ then is returned. If there is no match, is returned.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Flag to indicate the behavior when matching a
+
+
+
+
+ the minimum value to match
+
+
+
+
+ the maximum value to match
+
+
+
+
+ Default constructor
+
+
+
+
+ Check if the event should be logged.
+
+ the logging event to check
+ see remarks
+
+
+ If the of the logging event is outside the range
+ matched by this filter then
+ is returned. If the is matched then the value of
+ is checked. If it is true then
+ is returned, otherwise
+ is returned.
+
+
+
+
+
+ when matching and
+
+
+
+ The property is a flag that determines
+ the behavior when a matching is found. If the
+ flag is set to true then the filter will the
+ logging event, otherwise it will the event.
+
+
+ The default is true i.e. to the event.
+
+
+
+
+
+ Set the minimum matched
+
+
+
+ The minimum level that this filter will attempt to match against the
+ level. If a match is found then
+ the result depends on the value of .
+
+
+
+
+
+ Sets the maximum matched
+
+
+
+ The maximum level that this filter will attempt to match against the
+ level. If a match is found then
+ the result depends on the value of .
+
+
+
+
+
+ Simple filter to match a string in the event's logger name.
+
+
+
+ The works very similar to the . It admits two
+ options and . If the
+ of the starts
+ with the value of the option, then the
+ method returns in
+ case the option value is set to true,
+ if it is false then is returned.
+
+
+ Daniel Cazzulino
+
+
+
+ Flag to indicate the behavior when we have a match
+
+
+
+
+ The logger name string to substring match against the event
+
+
+
+
+ Default constructor
+
+
+
+
+ Check if this filter should allow the event to be logged
+
+ the event being logged
+ see remarks
+
+
+ The rendered message is matched against the .
+ If the equals the beginning of
+ the incoming ()
+ then a match will have occurred. If no match occurs
+ this function will return
+ allowing other filters to check the event. If a match occurs then
+ the value of is checked. If it is
+ true then is returned otherwise
+ is returned.
+
+
+
+
+
+ when matching
+
+
+
+ The property is a flag that determines
+ the behavior when a matching is found. If the
+ flag is set to true then the filter will the
+ logging event, otherwise it will the event.
+
+
+ The default is true i.e. to the event.
+
+
+
+
+
+ The that the filter will match
+
+
+
+ This filter will attempt to match this value against logger name in
+ the following way. The match will be done against the beginning of the
+ logger name (using ). The match is
+ case sensitive. If a match is found then
+ the result depends on the value of .
+
+
+
+
+
+ Simple filter to match a keyed string in the
+
+
+
+ Simple filter to match a keyed string in the
+
+
+ As the MDC has been replaced with layered properties the
+ should be used instead.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Simple filter to match a string an event property
+
+
+
+ Simple filter to match a string in the value for a
+ specific event property
+
+
+ Nicko Cadell
+
+
+
+ Simple filter to match a string in the rendered message
+
+
+
+ Simple filter to match a string in the rendered message
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Flag to indicate the behavior when we have a match
+
+
+
+
+ The string to substring match against the message
+
+
+
+
+ A string regex to match
+
+
+
+
+ A regex object to match (generated from m_stringRegexToMatch)
+
+
+
+
+ Default constructor
+
+
+
+
+ Initialize and precompile the Regex if required
+
+
+
+ This is part of the delayed object
+ activation scheme. The method must
+ be called on this object after the configuration properties have
+ been set. Until is called this
+ object is in an undefined state and must not be used.
+
+
+ If any of the configuration properties are modified then
+ must be called again.
+
+
+
+
+
+ Check if this filter should allow the event to be logged
+
+ the event being logged
+ see remarks
+
+
+ The rendered message is matched against the .
+ If the occurs as a substring within
+ the message then a match will have occurred. If no match occurs
+ this function will return
+ allowing other filters to check the event. If a match occurs then
+ the value of is checked. If it is
+ true then is returned otherwise
+ is returned.
+
+
+
+
+
+ when matching or
+
+
+
+ The property is a flag that determines
+ the behavior when a matching is found. If the
+ flag is set to true then the filter will the
+ logging event, otherwise it will the event.
+
+
+ The default is true i.e. to the event.
+
+
+
+
+
+ Sets the static string to match
+
+
+
+ The string that will be substring matched against
+ the rendered message. If the message contains this
+ string then the filter will match. If a match is found then
+ the result depends on the value of .
+
+
+ One of or
+ must be specified.
+
+
+
+
+
+ Sets the regular expression to match
+
+
+
+ The regular expression pattern that will be matched against
+ the rendered message. If the message matches this
+ pattern then the filter will match. If a match is found then
+ the result depends on the value of .
+
+
+ One of or
+ must be specified.
+
+
+
+
+
+ The key to use to lookup the string from the event properties
+
+
+
+
+ Default constructor
+
+
+
+
+ Check if this filter should allow the event to be logged
+
+ the event being logged
+ see remarks
+
+
+ The event property for the is matched against
+ the .
+ If the occurs as a substring within
+ the property value then a match will have occurred. If no match occurs
+ this function will return
+ allowing other filters to check the event. If a match occurs then
+ the value of is checked. If it is
+ true then is returned otherwise
+ is returned.
+
+
+
+
+
+ The key to lookup in the event properties and then match against.
+
+
+
+ The key name to use to lookup in the properties map of the
+ . The match will be performed against
+ the value of this property if it exists.
+
+
+
+
+
+ Simple filter to match a string in the
+
+
+
+ Simple filter to match a string in the
+
+
+ As the MDC has been replaced with named stacks stored in the
+ properties collections the should
+ be used instead.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Default constructor
+
+
+
+ Sets the to "NDC".
+
+
+
+
+
+ Write the event appdomain name to the output
+
+
+
+ Writes the to the output writer.
+
+
+ Daniel Cazzulino
+ Nicko Cadell
+
+
+
+ Abstract class that provides the formatting functionality that
+ derived classes need.
+
+
+ Conversion specifiers in a conversion patterns are parsed to
+ individual PatternConverters. Each of which is responsible for
+ converting a logging event in a converter specific manner.
+
+ Nicko Cadell
+
+
+
+ Abstract class that provides the formatting functionality that
+ derived classes need.
+
+
+
+ Conversion specifiers in a conversion patterns are parsed to
+ individual PatternConverters. Each of which is responsible for
+ converting a logging event in a converter specific manner.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Initial buffer size
+
+
+
+
+ Maximum buffer size before it is recycled
+
+
+
+
+ Protected constructor
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+
+ Evaluate this pattern converter and write the output to a writer.
+
+ that will receive the formatted result.
+ The state object on which the pattern converter should be executed.
+
+
+ Derived pattern converters must override this method in order to
+ convert conversion specifiers in the appropriate way.
+
+
+
+
+
+ Set the next pattern converter in the chains
+
+ the pattern converter that should follow this converter in the chain
+ the next converter
+
+
+ The PatternConverter can merge with its neighbor during this method (or a sub class).
+ Therefore the return value may or may not be the value of the argument passed in.
+
+
+
+
+
+ Write the pattern converter to the writer with appropriate formatting
+
+ that will receive the formatted result.
+ The state object on which the pattern converter should be executed.
+
+
+ This method calls to allow the subclass to perform
+ appropriate conversion of the pattern converter. If formatting options have
+ been specified via the then this method will
+ apply those formattings before writing the output.
+
+
+
+
+
+ Fast space padding method.
+
+ to which the spaces will be appended.
+ The number of spaces to be padded.
+
+
+ Fast space padding method.
+
+
+
+
+
+ The option string to the converter
+
+
+
+
+ Write an dictionary to a
+
+ the writer to write to
+ a to use for object conversion
+ the value to write to the writer
+
+
+ Writes the to a writer in the form:
+
+
+ {key1=value1, key2=value2, key3=value3}
+
+
+ If the specified
+ is not null then it is used to render the key and value to text, otherwise
+ the object's ToString method is called.
+
+
+
+
+
+ Write an object to a
+
+ the writer to write to
+ a to use for object conversion
+ the value to write to the writer
+
+
+ Writes the Object to a writer. If the specified
+ is not null then it is used to render the object to text, otherwise
+ the object's ToString method is called.
+
+
+
+
+
+ Get the next pattern converter in the chain
+
+
+ the next pattern converter in the chain
+
+
+
+ Get the next pattern converter in the chain
+
+
+
+
+
+ Gets or sets the formatting info for this converter
+
+
+ The formatting info for this converter
+
+
+
+ Gets or sets the formatting info for this converter
+
+
+
+
+
+ Gets or sets the option value for this converter
+
+
+ The option for this converter
+
+
+
+ Gets or sets the option value for this converter
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Derived pattern converters must override this method in order to
+ convert conversion specifiers in the correct way.
+
+ that will receive the formatted result.
+ The on which the pattern converter should be executed.
+
+
+
+ Derived pattern converters must override this method in order to
+ convert conversion specifiers in the correct way.
+
+ that will receive the formatted result.
+ The state object on which the pattern converter should be executed.
+
+
+
+ Flag indicating if this converter handles exceptions
+
+
+ false if this converter handles exceptions
+
+
+
+
+ Flag indicating if this converter handles the logging event exception
+
+ false if this converter handles the logging event exception
+
+
+ If this converter handles the exception object contained within
+ , then this property should be set to
+ false. Otherwise, if the layout ignores the exception
+ object, then the property should be set to true.
+
+
+ Set this value to override a this default setting. The default
+ value is true, this converter does not handle the exception.
+
+
+
+
+
+ Write the event appdomain name to the output
+
+ that will receive the formatted result.
+ the event being logged
+
+
+ Writes the to the output .
+
+
+
+
+
+ Date pattern converter, uses a to format
+ the date of a .
+
+
+
+ Render the to the writer as a string.
+
+
+ The value of the determines
+ the formatting of the date. The following values are allowed:
+
+
+ Option value
+ Output
+
+
+ ISO8601
+
+ Uses the formatter.
+ Formats using the "yyyy-MM-dd HH:mm:ss,fff" pattern.
+
+
+
+ DATE
+
+ Uses the formatter.
+ Formats using the "dd MMM yyyy HH:mm:ss,fff" for example, "06 Nov 1994 15:49:37,459".
+
+
+
+ ABSOLUTE
+
+ Uses the formatter.
+ Formats using the "HH:mm:ss,yyyy" for example, "15:49:37,459".
+
+
+
+ other
+
+ Any other pattern string uses the formatter.
+ This formatter passes the pattern string to the
+ method.
+ For details on valid patterns see
+ DateTimeFormatInfo Class.
+
+
+
+
+
+ The is in the local time zone and is rendered in that zone.
+ To output the time in Universal time see .
+
+
+ Nicko Cadell
+
+
+
+ The used to render the date to a string
+
+
+
+ The used to render the date to a string
+
+
+
+
+
+ Initialize the converter pattern based on the property.
+
+
+
+ This is part of the delayed object
+ activation scheme. The method must
+ be called on this object after the configuration properties have
+ been set. Until is called this
+ object is in an undefined state and must not be used.
+
+
+ If any of the configuration properties are modified then
+ must be called again.
+
+
+
+
+
+ Convert the pattern into the rendered message
+
+ that will receive the formatted result.
+ the event being logged
+
+
+ Pass the to the
+ for it to render it to the writer.
+
+
+ The passed is in the local time zone.
+
+
+
+
+
+ Write the exception text to the output
+
+
+
+ If an exception object is stored in the logging event
+ it will be rendered into the pattern output with a
+ trailing newline.
+
+
+ If there is no exception then nothing will be output
+ and no trailing newline will be appended.
+ It is typical to put a newline before the exception
+ and to have the exception as the last data in the pattern.
+
+
+ Nicko Cadell
+
+
+
+ Default constructor
+
+
+
+
+ Write the exception text to the output
+
+ that will receive the formatted result.
+ the event being logged
+
+
+ If an exception object is stored in the logging event
+ it will be rendered into the pattern output with a
+ trailing newline.
+
+
+ If there is no exception then nothing will be output
+ and no trailing newline will be appended.
+ It is typical to put a newline before the exception
+ and to have the exception as the last data in the pattern.
+
+
+
+
+
+ Writes the caller location file name to the output
+
+
+
+ Writes the value of the for
+ the event to the output writer.
+
+
+ Nicko Cadell
+
+
+
+ Write the caller location file name to the output
+
+ that will receive the formatted result.
+ the event being logged
+
+
+ Writes the value of the for
+ the to the output .
+
+
+
+
+
+ Write the caller location info to the output
+
+
+
+ Writes the to the output writer.
+
+
+ Nicko Cadell
+
+
+
+ Write the caller location info to the output
+
+ that will receive the formatted result.
+ the event being logged
+
+
+ Writes the to the output writer.
+
+
+
+
+
+ Writes the event identity to the output
+
+
+
+ Writes the value of the to
+ the output writer.
+
+
+ Daniel Cazzulino
+ Nicko Cadell
+
+
+
+ Writes the event identity to the output
+
+ that will receive the formatted result.
+ the event being logged
+
+
+ Writes the value of the
+ to
+ the output .
+
+
+
+
+
+ Write the event level to the output
+
+
+
+ Writes the display name of the event
+ to the writer.
+
+
+ Nicko Cadell
+
+
+
+ Write the event level to the output
+
+ that will receive the formatted result.
+ the event being logged
+
+
+ Writes the of the
+ to the .
+
+
+
+
+
+ Write the caller location line number to the output
+
+
+
+ Writes the value of the for
+ the event to the output writer.
+
+
+ Nicko Cadell
+
+
+
+ Write the caller location line number to the output
+
+ that will receive the formatted result.
+ the event being logged
+
+
+ Writes the value of the for
+ the to the output .
+
+
+
+
+
+ Converter for logger name
+
+
+
+ Outputs the of the event.
+
+
+ Nicko Cadell
+
+
+
+ Converter to output and truncate '.' separated strings
+
+
+
+ This abstract class supports truncating a '.' separated string
+ to show a specified number of elements from the right hand side.
+ This is used to truncate class names that are fully qualified.
+
+
+ Subclasses should override the method to
+ return the fully qualified string.
+
+
+ Nicko Cadell
+
+
+
+ Initialize the converter
+
+
+
+ This is part of the delayed object
+ activation scheme. The method must
+ be called on this object after the configuration properties have
+ been set. Until is called this
+ object is in an undefined state and must not be used.
+
+
+ If any of the configuration properties are modified then
+ must be called again.
+
+
+
+
+
+ Get the fully qualified string data
+
+ the event being logged
+ the fully qualified name
+
+
+ Overridden by subclasses to get the fully qualified name before the
+ precision is applied to it.
+
+
+ Return the fully qualified '.' (dot/period) separated string.
+
+
+
+
+
+ Convert the pattern to the rendered message
+
+ that will receive the formatted result.
+ the event being logged
+
+ Render the to the precision
+ specified by the property.
+
+
+
+
+ Gets the fully qualified name of the logger
+
+ the event being logged
+ The fully qualified logger name
+
+
+ Returns the of the .
+
+
+
+
+
+ Writes the event message to the output
+
+
+
+ Uses the method
+ to write out the event message.
+
+
+ Nicko Cadell
+
+
+
+ Writes the event message to the output
+
+ that will receive the formatted result.
+ the event being logged
+
+
+ Uses the method
+ to write out the event message.
+
+
+
+
+
+ Write the method name to the output
+
+
+
+ Writes the caller location to
+ the output.
+
+
+ Nicko Cadell
+
+
+
+ Write the method name to the output
+
+ that will receive the formatted result.
+ the event being logged
+
+
+ Writes the caller location to
+ the output.
+
+
+
+
+
+ Converter to include event NDC
+
+
+
+ Outputs the value of the event property named NDC.
+
+
+ The should be used instead.
+
+
+ Nicko Cadell
+
+
+
+ Write the event NDC to the output
+
+ that will receive the formatted result.
+ the event being logged
+
+
+ As the thread context stacks are now stored in named event properties
+ this converter simply looks up the value of the NDC property.
+
+
+ The should be used instead.
+
+
+
+
+
+ Property pattern converter
+
+
+
+ Writes out the value of a named property. The property name
+ should be set in the
+ property.
+
+
+ If the is set to null
+ then all the properties are written as key value pairs.
+
+
+ Nicko Cadell
+
+
+
+ Write the property value to the output
+
+ that will receive the formatted result.
+ the event being logged
+
+
+ Writes out the value of a named property. The property name
+ should be set in the
+ property.
+
+
+ If the is set to null
+ then all the properties are written as key value pairs.
+
+
+
+
+
+ Converter to output the relative time of the event
+
+
+
+ Converter to output the time of the event relative to the start of the program.
+
+
+ Nicko Cadell
+
+
+
+ Write the relative time to the output
+
+ that will receive the formatted result.
+ the event being logged
+
+
+ Writes out the relative time of the event in milliseconds.
+ That is the number of milliseconds between the event
+ and the .
+
+
+
+
+
+ Helper method to get the time difference between two DateTime objects
+
+ start time (in the current local time zone)
+ end time (in the current local time zone)
+ the time difference in milliseconds
+
+
+
+ Converter to include event thread name
+
+
+
+ Writes the to the output.
+
+
+ Nicko Cadell
+
+
+
+ Write the ThreadName to the output
+
+ that will receive the formatted result.
+ the event being logged
+
+
+ Writes the to the .
+
+
+
+
+
+ Pattern converter for the class name
+
+
+
+ Outputs the of the event.
+
+
+ Nicko Cadell
+
+
+
+ Gets the fully qualified name of the class
+
+ the event being logged
+ The fully qualified type name for the caller location
+
+
+ Returns the of the .
+
+
+
+
+
+ Converter to include event user name
+
+ Douglas de la Torre
+ Nicko Cadell
+
+
+
+ Convert the pattern to the rendered message
+
+ that will receive the formatted result.
+ the event being logged
+
+
+
+ Write the TimeStamp to the output
+
+
+
+ Date pattern converter, uses a to format
+ the date of a .
+
+
+ Uses a to format the
+ in Universal time.
+
+
+ See the for details on the date pattern syntax.
+
+
+
+ Nicko Cadell
+
+
+
+ Write the TimeStamp to the output
+
+ that will receive the formatted result.
+ the event being logged
+
+
+ Pass the to the
+ for it to render it to the writer.
+
+
+ The passed is in the local time zone, this is converted
+ to Universal time before it is rendered.
+
+
+
+
+
+
+ A Layout that renders only the Exception text from the logging event
+
+
+
+ A Layout that renders only the Exception text from the logging event.
+
+
+ This Layout should only be used with appenders that utilize multiple
+ layouts (e.g. ).
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Extend this abstract class to create your own log layout format.
+
+
+
+ This is the base implementation of the
+ interface. Most layout objects should extend this class.
+
+
+
+
+
+ Subclasses must implement the
+ method.
+
+
+ Subclasses should set the in their default
+ constructor.
+
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Interface implemented by layout objects
+
+
+
+ An object is used to format a
+ as text. The method is called by an
+ appender to transform the into a string.
+
+
+ The layout can also supply and
+ text that is appender before any events and after all the events respectively.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Implement this method to create your own layout format.
+
+ The TextWriter to write the formatted event to
+ The event to format
+
+
+ This method is called by an appender to format
+ the as text and output to a writer.
+
+
+ If the caller does not have a and prefers the
+ event to be formatted as a then the following
+ code can be used to format the event into a .
+
+
+ StringWriter writer = new StringWriter();
+ Layout.Format(writer, loggingEvent);
+ string formattedEvent = writer.ToString();
+
+
+
+
+
+ The content type output by this layout.
+
+ The content type
+
+
+ The content type output by this layout.
+
+
+ This is a MIME type e.g. "text/plain".
+
+
+
+
+
+ The header for the layout format.
+
+ the layout header
+
+
+ The Header text will be appended before any logging events
+ are formatted and appended.
+
+
+
+
+
+ The footer for the layout format.
+
+ the layout footer
+
+
+ The Footer text will be appended after all the logging events
+ have been formatted and appended.
+
+
+
+
+
+ Flag indicating if this layout handle exceptions
+
+ false if this layout handles exceptions
+
+
+ If this layout handles the exception object contained within
+ , then the layout should return
+ false. Otherwise, if the layout ignores the exception
+ object, then the layout should return true.
+
+
+
+
+
+ The header text
+
+
+
+ See for more information.
+
+
+
+
+
+ The footer text
+
+
+
+ See for more information.
+
+
+
+
+
+ Flag indicating if this layout handles exceptions
+
+
+
+ false if this layout handles exceptions
+
+
+
+
+
+ Empty default constructor
+
+
+
+ Empty default constructor
+
+
+
+
+
+ Activate component options
+
+
+
+ This is part of the delayed object
+ activation scheme. The method must
+ be called on this object after the configuration properties have
+ been set. Until is called this
+ object is in an undefined state and must not be used.
+
+
+ If any of the configuration properties are modified then
+ must be called again.
+
+
+ This method must be implemented by the subclass.
+
+
+
+
+
+ Implement this method to create your own layout format.
+
+ The TextWriter to write the formatted event to
+ The event to format
+
+
+ This method is called by an appender to format
+ the as text.
+
+
+
+
+
+ The content type output by this layout.
+
+ The content type is "text/plain"
+
+
+ The content type output by this layout.
+
+
+ This base class uses the value "text/plain".
+ To change this value a subclass must override this
+ property.
+
+
+
+
+
+ The header for the layout format.
+
+ the layout header
+
+
+ The Header text will be appended before any logging events
+ are formatted and appended.
+
+
+
+
+
+ The footer for the layout format.
+
+ the layout footer
+
+
+ The Footer text will be appended after all the logging events
+ have been formatted and appended.
+
+
+
+
+
+ Flag indicating if this layout handles exceptions
+
+ false if this layout handles exceptions
+
+
+ If this layout handles the exception object contained within
+ , then the layout should return
+ false. Otherwise, if the layout ignores the exception
+ object, then the layout should return true.
+
+
+ Set this value to override a this default setting. The default
+ value is true, this layout does not handle the exception.
+
+
+
+
+
+ Default constructor
+
+
+
+ Constructs a ExceptionLayout
+
+
+
+
+
+ Activate component options
+
+
+
+ Part of the component activation
+ framework.
+
+
+ This method does nothing as options become effective immediately.
+
+
+
+
+
+ Gets the exception text from the logging event
+
+ The TextWriter to write the formatted event to
+ the event being logged
+
+
+ Write the exception string to the .
+ The exception string is retrieved from .
+
+
+
+
+
+ Interface for raw layout objects
+
+
+
+ Interface used to format a
+ to an object.
+
+
+ This interface should not be confused with the
+ interface. This interface is used in
+ only certain specialized situations where a raw object is
+ required rather than a formatted string. The
+ is not generally useful than this interface.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Implement this method to create your own layout format.
+
+ The event to format
+ returns the formatted event
+
+
+ Implement this method to create your own layout format.
+
+
+
+
+
+ Adapts any to a
+
+
+
+ Where an is required this adapter
+ allows a to be specified.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ The layout to adapt
+
+
+
+
+ Construct a new adapter
+
+ the layout to adapt
+
+
+ Create the adapter for the specified .
+
+
+
+
+
+ Format the logging event as an object.
+
+ The event to format
+ returns the formatted event
+
+
+ Format the logging event as an object.
+
+
+ Uses the object supplied to
+ the constructor to perform the formatting.
+
+
+
+
+
+ A flexible layout configurable with pattern string.
+
+
+
+ The goal of this class is to a
+ as a string. The results
+ depend on the conversion pattern.
+
+
+ The conversion pattern is closely related to the conversion
+ pattern of the printf function in C. A conversion pattern is
+ composed of literal text and format control expressions called
+ conversion specifiers.
+
+
+ You are free to insert any literal text within the conversion
+ pattern.
+
+
+ Each conversion specifier starts with a percent sign (%) and is
+ followed by optional format modifiers and a conversion
+ pattern name. The conversion pattern name specifies the type of
+ data, e.g. logger, level, date, thread name. The format
+ modifiers control such things as field width, padding, left and
+ right justification. The following is a simple example.
+
+
+ Let the conversion pattern be "%-5level [%thread]: %message%newline" and assume
+ that the log4net environment was set to use a PatternLayout. Then the
+ statements
+
+
+ ILog log = LogManager.GetLogger(typeof(TestApp));
+ log.Debug("Message 1");
+ log.Warn("Message 2");
+
+ would yield the output
+
+ DEBUG [main]: Message 1
+ WARN [main]: Message 2
+
+
+ Note that there is no explicit separator between text and
+ conversion specifiers. The pattern parser knows when it has reached
+ the end of a conversion specifier when it reads a conversion
+ character. In the example above the conversion specifier
+ %-5level means the level of the logging event should be left
+ justified to a width of five characters.
+
+
+ The recognized conversion pattern names are:
+
+
+
+ Conversion Pattern Name
+ Effect
+
+
+ a
+ Equivalent to appdomain
+
+
+ appdomain
+
+ Used to output the friendly name of the AppDomain where the
+ logging event was generated.
+
+
+
+ c
+ Equivalent to logger
+
+
+ C
+ Equivalent to type
+
+
+ class
+ Equivalent to type
+
+
+ d
+ Equivalent to date
+
+
+ date
+
+
+ Used to output the date of the logging event in the local time zone.
+ To output the date in universal time use the %utcdate pattern.
+ The date conversion
+ specifier may be followed by a date format specifier enclosed
+ between braces. For example, %date{HH:mm:ss,fff} or
+ %date{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is
+ given then ISO8601 format is
+ assumed ().
+
+
+ The date format specifier admits the same syntax as the
+ time pattern string of the .
+
+
+ For better results it is recommended to use the log4net date
+ formatters. These can be specified using one of the strings
+ "ABSOLUTE", "DATE" and "ISO8601" for specifying
+ ,
+ and respectively
+ . For example,
+ %date{ISO8601} or %date{ABSOLUTE}.
+
+
+ These dedicated date formatters perform significantly
+ better than .
+
+
+
+
+ exception
+
+
+ Used to output the exception passed in with the log message.
+
+
+ If an exception object is stored in the logging event
+ it will be rendered into the pattern output with a
+ trailing newline.
+ If there is no exception then nothing will be output
+ and no trailing newline will be appended.
+ It is typical to put a newline before the exception
+ and to have the exception as the last data in the pattern.
+
+
+
+
+ F
+ Equivalent to file
+
+
+ file
+
+
+ Used to output the file name where the logging request was
+ issued.
+
+
+ WARNING Generating caller location information is
+ extremely slow. Its use should be avoided unless execution speed
+ is not an issue.
+
+
+ See the note below on the availability of caller location information.
+
+
+
+
+ identity
+
+
+ Used to output the user name for the currently active user
+ (Principal.Identity.Name).
+
+
+ WARNING Generating caller information is
+ extremely slow. Its use should be avoided unless execution speed
+ is not an issue.
+
+
+
+
+ l
+ Equivalent to location
+
+
+ L
+ Equivalent to line
+
+
+ location
+
+
+ Used to output location information of the caller which generated
+ the logging event.
+
+
+ The location information depends on the CLI implementation but
+ usually consists of the fully qualified name of the calling
+ method followed by the callers source the file name and line
+ number between parentheses.
+
+
+ The location information can be very useful. However, its
+ generation is extremely slow. Its use should be avoided
+ unless execution speed is not an issue.
+
+
+ See the note below on the availability of caller location information.
+
+
+
+
+ level
+
+
+ Used to output the level of the logging event.
+
+
+
+
+ line
+
+
+ Used to output the line number from where the logging request
+ was issued.
+
+
+ WARNING Generating caller location information is
+ extremely slow. Its use should be avoided unless execution speed
+ is not an issue.
+
+
+ See the note below on the availability of caller location information.
+
+
+
+
+ logger
+
+
+ Used to output the logger of the logging event. The
+ logger conversion specifier can be optionally followed by
+ precision specifier, that is a decimal constant in
+ brackets.
+
+
+ If a precision specifier is given, then only the corresponding
+ number of right most components of the logger name will be
+ printed. By default the logger name is printed in full.
+
+
+ For example, for the logger name "a.b.c" the pattern
+ %logger{2} will output "b.c".
+
+
+
+
+ m
+ Equivalent to message
+
+
+ M
+ Equivalent to method
+
+
+ message
+
+
+ Used to output the application supplied message associated with
+ the logging event.
+
+
+
+
+ mdc
+
+
+ The MDC (old name for the ThreadContext.Properties) is now part of the
+ combined event properties. This pattern is supported for compatibility
+ but is equivalent to property.
+
+
+
+
+ method
+
+
+ Used to output the method name where the logging request was
+ issued.
+
+
+ WARNING Generating caller location information is
+ extremely slow. Its use should be avoided unless execution speed
+ is not an issue.
+
+
+ See the note below on the availability of caller location information.
+
+
+
+
+ n
+ Equivalent to newline
+
+
+ newline
+
+
+ Outputs the platform dependent line separator character or
+ characters.
+
+
+ This conversion pattern offers the same performance as using
+ non-portable line separator strings such as "\n", or "\r\n".
+ Thus, it is the preferred way of specifying a line separator.
+
+
+
+
+ ndc
+
+
+ Used to output the NDC (nested diagnostic context) associated
+ with the thread that generated the logging event.
+
+
+
+
+ p
+ Equivalent to level
+
+
+ P
+ Equivalent to property
+
+
+ properties
+ Equivalent to property
+
+
+ property
+
+
+ Used to output the an event specific property. The key to
+ lookup must be specified within braces and directly following the
+ pattern specifier, e.g. %property{user} would include the value
+ from the property that is keyed by the string 'user'. Each property value
+ that is to be included in the log must be specified separately.
+ Properties are added to events by loggers or appenders. By default
+ the log4net:HostName property is set to the name of machine on
+ which the event was originally logged.
+
+
+ If no key is specified, e.g. %property then all the keys and their
+ values are printed in a comma separated list.
+
+
+ The properties of an event are combined from a number of different
+ contexts. These are listed below in the order in which they are searched.
+
+
+
+ the event properties
+
+ The event has that can be set. These
+ properties are specific to this event only.
+
+
+
+ the thread properties
+
+ The that are set on the current
+ thread. These properties are shared by all events logged on this thread.
+
+
+
+ the global properties
+
+ The that are set globally. These
+ properties are shared by all the threads in the AppDomain.
+
+
+
+
+
+
+
+ r
+ Equivalent to timestamp
+
+
+ t
+ Equivalent to thread
+
+
+ timestamp
+
+
+ Used to output the number of milliseconds elapsed since the start
+ of the application until the creation of the logging event.
+
+
+
+
+ thread
+
+
+ Used to output the name of the thread that generated the
+ logging event. Uses the thread number if no name is available.
+
+
+
+
+ type
+
+
+ Used to output the fully qualified type name of the caller
+ issuing the logging request. This conversion specifier
+ can be optionally followed by precision specifier, that
+ is a decimal constant in brackets.
+
+
+ If a precision specifier is given, then only the corresponding
+ number of right most components of the class name will be
+ printed. By default the class name is output in fully qualified form.
+
+
+ For example, for the class name "log4net.Layout.PatternLayout", the
+ pattern %type{1} will output "PatternLayout".
+
+
+ WARNING Generating the caller class information is
+ slow. Thus, its use should be avoided unless execution speed is
+ not an issue.
+
+
+ See the note below on the availability of caller location information.
+
+
+
+
+ u
+ Equivalent to identity
+
+
+ username
+
+
+ Used to output the WindowsIdentity for the currently
+ active user.
+
+
+ WARNING Generating caller WindowsIdentity information is
+ extremely slow. Its use should be avoided unless execution speed
+ is not an issue.
+
+
+
+
+ utcdate
+
+
+ Used to output the date of the logging event in universal time.
+ The date conversion
+ specifier may be followed by a date format specifier enclosed
+ between braces. For example, %utcdate{HH:mm:ss,fff} or
+ %utcdate{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is
+ given then ISO8601 format is
+ assumed ().
+
+
+ The date format specifier admits the same syntax as the
+ time pattern string of the .
+
+
+ For better results it is recommended to use the log4net date
+ formatters. These can be specified using one of the strings
+ "ABSOLUTE", "DATE" and "ISO8601" for specifying
+ ,
+ and respectively
+ . For example,
+ %utcdate{ISO8601} or %utcdate{ABSOLUTE}.
+
+
+ These dedicated date formatters perform significantly
+ better than .
+
+
+
+
+ w
+ Equivalent to username
+
+
+ x
+ Equivalent to ndc
+
+
+ X
+ Equivalent to mdc
+
+
+ %
+
+
+ The sequence %% outputs a single percent sign.
+
+
+
+
+
+ The single letter patterns are deprecated in favor of the
+ longer more descriptive pattern names.
+
+
+ By default the relevant information is output as is. However,
+ with the aid of format modifiers it is possible to change the
+ minimum field width, the maximum field width and justification.
+
+
+ The optional format modifier is placed between the percent sign
+ and the conversion pattern name.
+
+
+ The first optional format modifier is the left justification
+ flag which is just the minus (-) character. Then comes the
+ optional minimum field width modifier. This is a decimal
+ constant that represents the minimum number of characters to
+ output. If the data item requires fewer characters, it is padded on
+ either the left or the right until the minimum width is
+ reached. The default is to pad on the left (right justify) but you
+ can specify right padding with the left justification flag. The
+ padding character is space. If the data item is larger than the
+ minimum field width, the field is expanded to accommodate the
+ data. The value is never truncated.
+
+
+ This behavior can be changed using the maximum field
+ width modifier which is designated by a period followed by a
+ decimal constant. If the data item is longer than the maximum
+ field, then the extra characters are removed from the
+ beginning of the data item and not from the end. For
+ example, it the maximum field width is eight and the data item is
+ ten characters long, then the first two characters of the data item
+ are dropped. This behavior deviates from the printf function in C
+ where truncation is done from the end.
+
+
+ Below are various format modifier examples for the logger
+ conversion specifier.
+
+
+
+
+
Format modifier
+
left justify
+
minimum width
+
maximum width
+
comment
+
+
+
%20logger
+
false
+
20
+
none
+
+
+ Left pad with spaces if the logger name is less than 20
+ characters long.
+
+
+
+
+
%-20logger
+
true
+
20
+
none
+
+
+ Right pad with spaces if the logger
+ name is less than 20 characters long.
+
+
+
+
+
%.30logger
+
NA
+
none
+
30
+
+
+ Truncate from the beginning if the logger
+ name is longer than 30 characters.
+
+
+
+
+
%20.30logger
+
false
+
20
+
30
+
+
+ Left pad with spaces if the logger name is shorter than 20
+ characters. However, if logger name is longer than 30 characters,
+ then truncate from the beginning.
+
+
+
+
+
%-20.30logger
+
true
+
20
+
30
+
+
+ Right pad with spaces if the logger name is shorter than 20
+ characters. However, if logger name is longer than 30 characters,
+ then truncate from the beginning.
+
+
DictionarySet is an abstract class that supports the creation of new Set
+ types where the underlying data store is an IDictionary instance.
+
+
You can use any object that implements the IDictionary interface to hold set data.
+ You can define your own, or you can use one of the objects provided in the Framework.
+ The type of IDictionary you choose will affect both the performance and the behavior
+ of the Set using it.
+
+
To make a Set typed based on your own IDictionary, simply derive a
+ new class with a constructor that takes no parameters. Some Set implmentations
+ cannot be defined with a default constructor. If this is the case for your class,
+ you will need to override Clone() as well.
+
+
It is also standard practice that at least one of your constructors takes an ICollection or
+ an ISet as an argument.
+
+
+
+
A collection that contains no duplicate elements. This class models the mathematical
+ Set abstraction, and is the base class for all other Set implementations.
+ The order of elements in a set is dependant on (a)the data-structure implementation, and
+ (b)the implementation of the various Set methods, and thus is not guaranteed.
+
+
None of the Set implementations in this library are guranteed to be thread-safe
+ in any way unless wrapped in a SynchronizedSet.
+
+
The following table summarizes the binary operators that are supported by the Set class.
+
+
+ Operation
+ Description
+ Method
+ Operator
+
+
+ Union (OR)
+ Element included in result if it exists in either A OR B.
+ Union()
+ |
+
+
+ Intersection (AND)
+ Element included in result if it exists in both A AND B.
+ InterSect()
+ &
+
+
+ Exclusive Or (XOR)
+ Element included in result if it exists in one, but not both, of A and B.
+ ExclusiveOr()
+ ^
+
+
+ Minus (n/a)
+ Take all the elements in A. Now, if any of them exist in B, remove
+ them. Note that unlike the other operators, A - B is not the same as B - A.
+ Minus()
+ -
+
+
+
+
+
+
+
A collection that contains no duplicate elements. This interface models the mathematical
+ Set abstraction.
+ The order of elements in a set is dependant on (a)the data-structure implementation, and
+ (b)the implementation of the various Set methods, and thus is not guaranteed.
+
+
None of the Set implementations in this library are guranteed to be thread-safe
+ in any way unless wrapped in a SynchronizedSet.
+
+
The following table summarizes the binary operators that are supported by the Set class.
+
+
+ Operation
+ Description
+ Method
+
+
+ Union (OR)
+ Element included in result if it exists in either A OR B.
+ Union()
+
+
+ Intersection (AND)
+ Element included in result if it exists in both A AND B.
+ InterSect()
+
+
+ Exclusive Or (XOR)
+ Element included in result if it exists in one, but not both, of A and B.
+ ExclusiveOr()
+
+
+ Minus (n/a)
+ Take all the elements in A. Now, if any of them exist in B, remove
+ them. Note that unlike the other operators, A - B is not the same as B - A.
+ Minus()
+
+
+
+
+
+
+ Performs a "union" of the two sets, where all the elements
+ in both sets are present. That is, the element is included if it is in either a or b.
+ Neither this set nor the input set are modified during the operation. The return value
+ is a Clone() of this set with the extra elements added in.
+
+ A collection of elements.
+ A new Set containing the union of this Set with the specified collection.
+ Neither of the input objects is modified by the union.
+
+
+
+ Performs an "intersection" of the two sets, where only the elements
+ that are present in both sets remain. That is, the element is included if it exists in
+ both sets. The Intersect() operation does not modify the input sets. It returns
+ a Clone() of this set with the appropriate elements removed.
+
+ A set of elements.
+ The intersection of this set with a.
+
+
+
+ Performs a "minus" of set b from set a. This returns a set of all
+ the elements in set a, removing the elements that are also in set b.
+ The original sets are not modified during this operation. The result set is a Clone()
+ of this Set containing the elements from the operation.
+
+ A set of elements.
+ A set containing the elements from this set with the elements in a removed.
+
+
+
+ Performs an "exclusive-or" of the two sets, keeping only the elements that
+ are in one of the sets, but not in both. The original sets are not modified
+ during this operation. The result set is a Clone() of this set containing
+ the elements from the exclusive-or operation.
+
+ A set of elements.
+ A set containing the result of a ^ b.
+
+
+
+ Returns if the set contains all the elements in the specified collection.
+
+ A collection of objects.
+ if the set contains all the elements in the specified collection, otherwise.
+
+
+
+ Adds the specified element to this set if it is not already present.
+
+ The object to add to the set.
+ is the object was added, if it was already present.
+
+
+
+ Adds all the elements in the specified collection to the set if they are not already present.
+
+ A collection of objects to add to the set.
+ is the set changed as a result of this operation, if not.
+
+
+
+ Remove all the specified elements from this set, if they exist in this set.
+
+ A collection of elements to remove.
+ if the set was modified as a result of this operation.
+
+
+
+ Retains only the elements in this set that are contained in the specified collection.
+
+ Collection that defines the set of elements to be retained.
+ if this set changed as a result of this operation.
+
+
+
+ Returns if this set contains no elements.
+
+
+
+
+
A collection that contains no duplicate elements. This interface models the mathematical
+ Set abstraction.
+ The order of elements in a set is dependant on (a)the data-structure implementation, and
+ (b)the implementation of the various Set methods, and thus is not guaranteed.
+
+
None of the Set implementations in this library are guranteed to be thread-safe
+ in any way unless wrapped in a SynchronizedSet.
+
+
The following table summarizes the binary operators that are supported by the Set class.
+
+
+ Operation
+ Description
+ Method
+
+
+ Union (OR)
+ Element included in result if it exists in either A OR B.
+ Union()
+
+
+ Intersection (AND)
+ Element included in result if it exists in both A AND B.
+ InterSect()
+
+
+ Exclusive Or (XOR)
+ Element included in result if it exists in one, but not both, of A and B.
+ ExclusiveOr()
+
+
+ Minus (n/a)
+ Take all the elements in A. Now, if any of them exist in B, remove
+ them. Note that unlike the other operators, A - B is not the same as B - A.
+ Minus()
+
+
+
+
+
+
+ Performs a "union" of the two sets, where all the elements
+ in both sets are present. That is, the element is included if it is in either a or b.
+ Neither this set nor the input set are modified during the operation. The return value
+ is a Clone() of this set with the extra elements added in.
+
+ A collection of elements.
+ A new Set containing the union of this Set with the specified collection.
+ Neither of the input objects is modified by the union.
+
+
+
+ Performs an "intersection" of the two sets, where only the elements
+ that are present in both sets remain. That is, the element is included if it exists in
+ both sets. The Intersect() operation does not modify the input sets. It returns
+ a Clone() of this set with the appropriate elements removed.
+
+ A set of elements.
+ The intersection of this set with a.
+
+
+
+ Performs a "minus" of set b from set a. This returns a set of all
+ the elements in set a, removing the elements that are also in set b.
+ The original sets are not modified during this operation. The result set is a Clone()
+ of this Set containing the elements from the operation.
+
+ A set of elements.
+ A set containing the elements from this set with the elements in a removed.
+
+
+
+ Performs an "exclusive-or" of the two sets, keeping only the elements that
+ are in one of the sets, but not in both. The original sets are not modified
+ during this operation. The result set is a Clone() of this set containing
+ the elements from the exclusive-or operation.
+
+ A set of elements.
+ A set containing the result of a ^ b.
+
+
+
+ Returns if this set contains the specified element.
+
+ The element to look for.
+ if this set contains the specified element, otherwise.
+
+
+
+ Returns if the set contains all the elements in the specified collection.
+
+ A collection of objects.
+ if the set contains all the elements in the specified collection, otherwise.
+
+
+
+ Adds the specified element to this set if it is not already present.
+
+ The object to add to the set.
+ is the object was added, if it was already present.
+
+
+
+ Adds all the elements in the specified collection to the set if they are not already present.
+
+ A collection of objects to add to the set.
+ is the set changed as a result of this operation, if not.
+
+
+
+ Removes the specified element from the set.
+
+ The element to be removed.
+ if the set contained the specified element, otherwise.
+
+
+
+ Remove all the specified elements from this set, if they exist in this set.
+
+ A collection of elements to remove.
+ if the set was modified as a result of this operation.
+
+
+
+ Retains only the elements in this set that are contained in the specified collection.
+
+ Collection that defines the set of elements to be retained.
+ if this set changed as a result of this operation.
+
+
+
+ Removes all objects from the set.
+
+
+
+
+ Returns if this set contains no elements.
+
+
+
+
+ Performs a "union" of the two sets, where all the elements
+ in both sets are present. That is, the element is included if it is in either a or b.
+ Neither this set nor the input set are modified during the operation. The return value
+ is a Clone() of this set with the extra elements added in.
+
+ A collection of elements.
+ A new Set containing the union of this Set with the specified collection.
+ Neither of the input objects is modified by the union.
+
+
+
+ Performs a "union" of two sets, where all the elements
+ in both are present. That is, the element is included if it is in either a or b.
+ The return value is a Clone() of one of the sets (a if it is not ) with elements of the other set
+ added in. Neither of the input sets is modified by the operation.
+
+ A set of elements.
+ A set of elements.
+ A set containing the union of the input sets. if both sets are .
+
+
+
+ Performs a "union" of two sets, where all the elements
+ in both are present. That is, the element is included if it is in either a or b.
+ The return value is a Clone() of one of the sets (a if it is not ) with elements of the other set
+ added in. Neither of the input sets is modified by the operation.
+
+ A set of elements.
+ A set of elements.
+ A set containing the union of the input sets. if both sets are .
+
+
+
+ Performs an "intersection" of the two sets, where only the elements
+ that are present in both sets remain. That is, the element is included if it exists in
+ both sets. The Intersect() operation does not modify the input sets. It returns
+ a Clone() of this set with the appropriate elements removed.
+
+ A set of elements.
+ The intersection of this set with a.
+
+
+
+ Performs an "intersection" of the two sets, where only the elements
+ that are present in both sets remain. That is, the element is included only if it exists in
+ both a and b. Neither input object is modified by the operation.
+ The result object is a Clone() of one of the input objects (a if it is not ) containing the
+ elements from the intersect operation.
+
+ A set of elements.
+ A set of elements.
+ The intersection of the two input sets. if both sets are .
+
+
+
+ Performs an "intersection" of the two sets, where only the elements
+ that are present in both sets remain. That is, the element is included only if it exists in
+ both a and b. Neither input object is modified by the operation.
+ The result object is a Clone() of one of the input objects (a if it is not ) containing the
+ elements from the intersect operation.
+
+ A set of elements.
+ A set of elements.
+ The intersection of the two input sets. if both sets are .
+
+
+
+ Performs a "minus" of set b from set a. This returns a set of all
+ the elements in set a, removing the elements that are also in set b.
+ The original sets are not modified during this operation. The result set is a Clone()
+ of this Set containing the elements from the operation.
+
+ A set of elements.
+ A set containing the elements from this set with the elements in a removed.
+
+
+
+ Performs a "minus" of set b from set a. This returns a set of all
+ the elements in set a, removing the elements that are also in set b.
+ The original sets are not modified during this operation. The result set is a Clone()
+ of set a containing the elements from the operation.
+
+ A set of elements.
+ A set of elements.
+ A set containing A - B elements. if a is .
+
+
+
+ Performs a "minus" of set b from set a. This returns a set of all
+ the elements in set a, removing the elements that are also in set b.
+ The original sets are not modified during this operation. The result set is a Clone()
+ of set a containing the elements from the operation.
+
+ A set of elements.
+ A set of elements.
+ A set containing A - B elements. if a is .
+
+
+
+ Performs an "exclusive-or" of the two sets, keeping only the elements that
+ are in one of the sets, but not in both. The original sets are not modified
+ during this operation. The result set is a Clone() of this set containing
+ the elements from the exclusive-or operation.
+
+ A set of elements.
+ A set containing the result of a ^ b.
+
+
+
+ Performs an "exclusive-or" of the two sets, keeping only the elements that
+ are in one of the sets, but not in both. The original sets are not modified
+ during this operation. The result set is a Clone() of one of the sets
+ (a if it is not ) containing
+ the elements from the exclusive-or operation.
+
+ A set of elements.
+ A set of elements.
+ A set containing the result of a ^ b. if both sets are .
+
+
+
+ Performs an "exclusive-or" of the two sets, keeping only the elements that
+ are in one of the sets, but not in both. The original sets are not modified
+ during this operation. The result set is a Clone() of one of the sets
+ (a if it is not ) containing
+ the elements from the exclusive-or operation.
+
+ A set of elements.
+ A set of elements.
+ A set containing the result of a ^ b. if both sets are .
+
+
+
+ Adds the specified element to this set if it is not already present.
+
+ The object to add to the set.
+ is the object was added, if it was already present.
+
+
+
+ Adds all the elements in the specified collection to the set if they are not already present.
+
+ A collection of objects to add to the set.
+ is the set changed as a result of this operation, if not.
+
+
+
+ Removes all objects from the set.
+
+
+
+
+ Returns if this set contains the specified element.
+
+ The element to look for.
+ if this set contains the specified element, otherwise.
+
+
+
+ Returns if the set contains all the elements in the specified collection.
+
+ A collection of objects.
+ if the set contains all the elements in the specified collection, otherwise.
+
+
+
+ Removes the specified element from the set.
+
+ The element to be removed.
+ if the set contained the specified element, otherwise.
+
+
+
+ Remove all the specified elements from this set, if they exist in this set.
+
+ A collection of elements to remove.
+ if the set was modified as a result of this operation.
+
+
+
+ Retains only the elements in this set that are contained in the specified collection.
+
+ Collection that defines the set of elements to be retained.
+ if this set changed as a result of this operation.
+
+
+
+ Returns a clone of the Set instance. This will work for derived Set
+ classes if the derived class implements a constructor that takes no arguments.
+
+ A clone of this object.
+
+
+
+ Copies the elements in the Set to an array. The type of array needs
+ to be compatible with the objects in the Set, obviously.
+
+ An array that will be the target of the copy operation.
+ The zero-based index where copying will start.
+
+
+
+ Gets an enumerator for the elements in the Set.
+
+ An IEnumerator over the elements in the Set.
+
+
+
+ Performs CopyTo when called trhough non-generic ISet (ICollection) interface
+
+
+
+
+
+
+ Performs Union when called trhough non-generic ISet interface
+
+
+
+
+
+
+ Performs Minus when called trhough non-generic ISet interface
+
+
+
+
+
+
+ Performs Intersect when called trhough non-generic ISet interface
+
+
+
+
+
+
+ Performs ExclusiveOr when called trhough non-generic ISet interface
+
+
+
+
+
+
+ Returns if this set contains no elements.
+
+
+
+
+ The number of elements currently contained in this collection.
+
+
+
+
+ Returns if the Set is synchronized across threads. Note that
+ enumeration is inherently not thread-safe. Use the SyncRoot to lock the
+ object during enumeration.
+
+
+
+
+ An object that can be used to synchronize this collection to make it thread-safe.
+ When implementing this, if your object uses a base object, like an IDictionary,
+ or anything that has a SyncRoot, return that object instead of "this".
+
+
+
+
+ Indicates whether the given instance is read-only or not
+
+
+ if the ISet is read-only; otherwise, .
+ In the default implementation of Set, this property always returns false.
+
+
+
+
+ Provides the storage for elements in the Set, stored as the key-set
+ of the IDictionary object. Set this object in the constructor
+ if you create your own Set class.
+
+
+
+
+ Adds the specified element to this set if it is not already present.
+
+ The to add to the set.
+ is the object was added, if it was already present.
+
+
+
+ Adds all the elements in the specified collection to the set if they are not already present.
+
+ A collection of objects to add to the set.
+ is the set changed as a result of this operation, if not.
+
+
+
+ Removes all objects from the set.
+
+
+
+
+ Returns if this set contains the specified element.
+
+ The element to look for.
+ if this set contains the specified element, otherwise.
+
+
+
+ Returns if the set contains all the elements in the specified collection.
+
+ A collection of objects.
+ if the set contains all the elements in the specified collection, otherwise.
+
+
+
+ Removes the specified element from the set.
+
+ The element to be removed.
+ if the set contained the specified element, otherwise.
+
+
+
+ Remove all the specified elements from this set, if they exist in this set.
+
+ A collection of elements to remove.
+ if the set was modified as a result of this operation.
+
+
+
+ Retains only the elements in this set that are contained in the specified collection.
+
+ Collection that defines the set of elements to be retained.
+ if this set changed as a result of this operation.
+
+
+
+ Copies the elements in the Set to an array of T. The type of array needs
+ to be compatible with the objects in the Set, obviously.
+
+ An array that will be the target of the copy operation.
+ The zero-based index where copying will start.
+
+
+
+ Gets an enumerator for the elements in the Set.
+
+ An IEnumerator over the elements in the Set.
+
+
+
+ Copies the elements in the Set to an array. The type of array needs
+ to be compatible with the objects in the Set, obviously. Needed for
+ non-generic ISet methods implementation
+
+ An array that will be the target of the copy operation.
+ The zero-based index where copying will start.
+
+
+
+ The placeholder object used as the value for the IDictionary instance.
+
+
+ There is a single instance of this object globally, used for all Sets.
+
+
+
+
+ Returns if this set contains no elements.
+
+
+
+
+ The number of elements contained in this collection.
+
+
+
+
+ None of the objects based on DictionarySet are synchronized. Use the
+ SyncRoot property instead.
+
+
+
+
+ Returns an object that can be used to synchronize the Set between threads.
+
+
+
+
+ Indicates wether the Set is read-only or not
+
+
+
+
+ Implements a Set based on a Dictionary (which is equivalent of
+ non-genric HashTable) This will give the best lookup, add, and remove
+ performance for very large data-sets, but iteration will occur in no particular order.
+
+
+
+
+ Creates a new set instance based on a Dictinary.
+
+
+
+
+ Creates a new set instance based on a Dictinary and
+ initializes it based on a collection of elements.
+
+ A collection of elements that defines the initial set contents.
+
+
+
+
Implements an immutable (read-only) Set wrapper.
+
Although this is advertised as immutable, it really isn't. Anyone with access to the
+ basisSet can still change the data-set. So GetHashCode() is not implemented
+ for this Set, as is the case for all Set implementations in this library.
+ This design decision was based on the efficiency of not having to Clone() the
+ basisSet every time you wrap a mutable Set.
+
+
+
+
+ Constructs an immutable (read-only) Set wrapper.
+
+ The Set that is wrapped.
+
+
+
+ Adds the specified element to this set if it is not already present.
+
+ The object to add to the set.
+ nothing
+ is always thrown
+
+
+
+ Adds all the elements in the specified collection to the set if they are not already present.
+
+ A collection of objects to add to the set.
+ nothing
+ is always thrown
+
+
+
+ Removes all objects from the set.
+
+ is always thrown
+
+
+
+ Returns if this set contains the specified element.
+
+ The element to look for.
+ if this set contains the specified element, otherwise.
+
+
+
+ Returns if the set contains all the elements in the specified collection.
+
+ A collection of objects.
+ if the set contains all the elements in the specified collection, otherwise.
+
+
+
+ Removes the specified element from the set.
+
+ The element to be removed.
+ nothing
+ is always thrown
+
+
+
+ Remove all the specified elements from this set, if they exist in this set.
+
+ A collection of elements to remove.
+ nothing
+ is always thrown
+
+
+
+ Retains only the elements in this set that are contained in the specified collection.
+
+ Collection that defines the set of elements to be retained.
+ nothing
+ is always thrown
+
+
+
+ Copies the elements in the Set to an array of T. The type of array needs
+ to be compatible with the objects in the Set, obviously.
+
+ An array that will be the target of the copy operation.
+ The zero-based index where copying will start.
+
+
+
+ Gets an enumerator for the elements in the Set.
+
+ An IEnumerator over the elements in the Set.
+
+
+
+ Returns a clone of the Set instance.
+
+ A clone of this object.
+
+
+
+ Performs a "union" of the two sets, where all the elements
+ in both sets are present. That is, the element is included if it is in either a or b.
+ Neither this set nor the input set are modified during the operation. The return value
+ is a Clone() of this set with the extra elements added in.
+
+ A collection of elements.
+ A new Set containing the union of this Set with the specified collection.
+ Neither of the input objects is modified by the union.
+
+
+
+ Performs an "intersection" of the two sets, where only the elements
+ that are present in both sets remain. That is, the element is included if it exists in
+ both sets. The Intersect() operation does not modify the input sets. It returns
+ a Clone() of this set with the appropriate elements removed.
+
+ A set of elements.
+ The intersection of this set with a.
+
+
+
+ Performs a "minus" of set b from set a. This returns a set of all
+ the elements in set a, removing the elements that are also in set b.
+ The original sets are not modified during this operation. The result set is a Clone()
+ of this Set containing the elements from the operation.
+
+ A set of elements.
+ A set containing the elements from this set with the elements in a removed.
+
+
+
+ Performs an "exclusive-or" of the two sets, keeping only the elements that
+ are in one of the sets, but not in both. The original sets are not modified
+ during this operation. The result set is a Clone() of this set containing
+ the elements from the exclusive-or operation.
+
+ A set of elements.
+ A set containing the result of a ^ b.
+
+
+
+ Performs CopyTo when called trhough non-generic ISet (ICollection) interface
+
+
+
+
+
+
+ Performs Union when called trhough non-generic ISet interface
+
+
+
+
+
+
+ Performs Minus when called trhough non-generic ISet interface
+
+
+
+
+
+
+ Performs Intersect when called trhough non-generic ISet interface
+
+
+
+
+
+
+ Performs ExclusiveOr when called trhough non-generic ISet interface
+
+
+
+
+
+
+ Returns if this set contains no elements.
+
+
+
+
+ The number of elements contained in this collection.
+
+
+
+
+ Returns an object that can be used to synchronize use of the Set across threads.
+
+
+
+
+ Returns an object that can be used to synchronize the Set between threads.
+
+
+
+
+ Indicates that the given instance is read-only
+
+
+
+
+ Implements an ordered Set based on a dictionary.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ A collection of elements that defines the initial set contents.
+
+
+
+ Implements a Set based on a sorted tree. This gives good performance for operations on very
+ large data-sets, though not as good - asymptotically - as a HashedSet. However, iteration
+ occurs in order. Elements that you put into this type of collection must implement IComparable,
+ and they must actually be comparable. You can't mix string and int values, for example.
+
+
+
+
+ Creates a new set instance based on a sorted tree.
+
+
+
+
+ Creates a new set instance based on a sorted tree.
+
+ The to use for sorting.
+
+
+
+ Creates a new set instance based on a sorted tree and
+ initializes it based on a collection of elements.
+
+ A collection of elements that defines the initial set contents.
+
+
+
+ Creates a new set instance based on a sorted tree and
+ initializes it based on a collection of elements.
+
+ A collection of elements that defines the initial set contents.
+
+
+
+ Creates a new set instance based on a sorted tree and
+ initializes it based on a collection of elements.
+
+ A collection of elements that defines the initial set contents.
+ The to use for sorting.
+
+
+
+
Implements a thread-safe Set wrapper. The implementation is extremely conservative,
+ serializing critical sections to prevent possible deadlocks, and locking on everything.
+ The one exception is for enumeration, which is inherently not thread-safe. For this, you
+ have to lock the SyncRoot object for the duration of the enumeration.
+
+
+
+
+ Constructs a thread-safe Set wrapper.
+
+ The Set object that this object will wrap.
+
+
+
+ Adds the specified element to this set if it is not already present.
+
+ The object to add to the set.
+ is the object was added, if it was already present.
+
+
+
+ Adds all the elements in the specified collection to the set if they are not already present.
+
+ A collection of objects to add to the set.
+ is the set changed as a result of this operation, if not.
+
+
+
+ Removes all objects from the set.
+
+
+
+
+ Returns if this set contains the specified element.
+
+ The element to look for.
+ if this set contains the specified element, otherwise.
+
+
+
+ Returns if the set contains all the elements in the specified collection.
+
+ A collection of objects.
+ if the set contains all the elements in the specified collection, otherwise.
+
+
+
+ Removes the specified element from the set.
+
+ The element to be removed.
+ if the set contained the specified element, otherwise.
+
+
+
+ Remove all the specified elements from this set, if they exist in this set.
+
+ A collection of elements to remove.
+ if the set was modified as a result of this operation.
+
+
+
+ Retains only the elements in this set that are contained in the specified collection.
+
+ Collection that defines the set of elements to be retained.
+ if this set changed as a result of this operation.
+
+
+
+ Copies the elements in the Set to an array. The type of array needs
+ to be compatible with the objects in the Set, obviously.
+
+ An array that will be the target of the copy operation.
+ The zero-based index where copying will start.
+
+
+
+ Enumeration is, by definition, not thread-safe. Use a lock on the SyncRoot
+ to synchronize the entire enumeration process.
+
+
+
+
+
+ Returns a clone of the Set instance.
+
+ A clone of this object.
+
+
+
+ Performs CopyTo when called trhough non-generic ISet (ICollection) interface
+
+
+
+
+
+
+ Returns if this set contains no elements.
+
+
+
+
+ The number of elements contained in this collection.
+
+
+
+
+ Returns , indicating that this object is thread-safe. The exception to this
+ is enumeration, which is inherently not thread-safe. Use the SyncRoot object to
+ lock this object for the entire duration of the enumeration.
+
+
+
+
+ Returns an object that can be used to synchronize the Set between threads.
+
+
+
+
+ Indicates whether given instace is read-only or not
+
+
+
+
+
DictionarySet is an abstract class that supports the creation of new Set
+ types where the underlying data store is an IDictionary instance.
+
+
You can use any object that implements the IDictionary interface to hold set data.
+ You can define your own, or you can use one of the objects provided in the Framework.
+ The type of IDictionary you choose will affect both the performance and the behavior
+ of the Set using it.
+
+
To make a Set typed based on your own IDictionary, simply derive a
+ new class with a constructor that takes no parameters. Some Set implmentations
+ cannot be defined with a default constructor. If this is the case for your class,
+ you will need to override Clone() as well.
+
+
It is also standard practice that at least one of your constructors takes an ICollection or
+ an ISet as an argument.
+
+
+
+ A collection that contains no duplicate elements.
+
+
+ This class models the mathematical set abstraction, and is the base class for all
+ other set implementations. The order of elements in a set is dependant on
+ (a) the data-structure implementation, and (b) the implementation of the various
+ methods, and thus is not guaranteed.
+
+
+ None of the implementations in this library are guranteed to be thread-safe
+ in any way unless wrapped in a .
+
+
+ The following table summarizes the binary operators that are supported by the
+ type.
+
+
+
+ Operation
+ Description
+ Method
+ Operator
+
+
+ Union (OR)
+ Element included in result if it exists in either A OR B.
+ Union()
+ |
+
+
+ Intersection (AND)
+ Element included in result if it exists in both A AND B.
+ InterSect()
+ &
+
+
+ Exclusive Or (XOR)
+ Element included in result if it exists in one, but not both, of A and B.
+ ExclusiveOr()
+ ^
+
+
+ Minus (n/a)
+ Take all the elements in A. Now, if any of them exist in B, remove
+ them. Note that unlike the other operators, A - B is not the same as B - A.
+ Minus()
+ -
+
+
+
+
+
+
+ Performs a "union" of the two sets, where all the elements
+ in both sets are present. That is, the element is included if it is in either a or b.
+ Neither this set nor the input set are modified during the operation. The return value
+ is a clone of this set with the extra elements added in.
+
+ A collection of elements.
+ A new instance containing the union of this instance with the specified collection.
+ Neither of the input objects is modified by the union.
+
+
+
+ Performs a "union" of two sets, where all the elements
+ in both are present. That is, the element is included if it is in either a or b.
+ The return value is a clone of one of the sets (a if it is not ) with elements of the other set
+ added in. Neither of the input sets is modified by the operation.
+
+ A set of elements.
+ A set of elements.
+ A set containing the union of the input sets. if both sets are .
+
+
+
+ Performs a "union" of two sets, where all the elements
+ in both are present. That is, the element is included if it is in either a or b.
+ The return value is a clone of one of the sets (a if it is not ) with elements of the other set
+ added in. Neither of the input sets is modified by the operation.
+
+ A set of elements.
+ A set of elements.
+ A set containing the union of the input sets. if both sets are .
+
+
+
+ Performs an "intersection" of the two sets, where only the elements
+ that are present in both sets remain. That is, the element is included if it exists in
+ both sets. The Intersect() operation does not modify the input sets. It returns
+ a Clone() of this set with the appropriate elements removed.
+
+ A set of elements.
+ The intersection of this set with a.
+
+
+
+ Performs an "intersection" of the two sets, where only the elements
+ that are present in both sets remain. That is, the element is included only if it exists in
+ both a and b. Neither input object is modified by the operation.
+ The result object is a Clone() of one of the input objects (a if it is not ) containing the
+ elements from the intersect operation.
+
+ A set of elements.
+ A set of elements.
+ The intersection of the two input sets. if both sets are .
+
+
+
+ Performs an "intersection" of the two sets, where only the elements
+ that are present in both sets remain. That is, the element is included only if it exists in
+ both a and b. Neither input object is modified by the operation.
+ The result object is a Clone() of one of the input objects (a if it is not ) containing the
+ elements from the intersect operation.
+
+ A set of elements.
+ A set of elements.
+ The intersection of the two input sets. if both sets are .
+
+
+
+ Performs a "minus" of set b from set a. This returns a set of all
+ the elements in set a, removing the elements that are also in set b.
+ The original sets are not modified during this operation. The result set is a Clone()
+ of this Set containing the elements from the operation.
+
+ A set of elements.
+ A set containing the elements from this set with the elements in a removed.
+
+
+
+ Performs a "minus" of set b from set a. This returns a set of all
+ the elements in set a, removing the elements that are also in set b.
+ The original sets are not modified during this operation. The result set is a Clone()
+ of set a containing the elements from the operation.
+
+ A set of elements.
+ A set of elements.
+ A set containing A - B elements. if a is .
+
+
+
+ Performs a "minus" of set b from set a. This returns a set of all
+ the elements in set a, removing the elements that are also in set b.
+ The original sets are not modified during this operation. The result set is a Clone()
+ of set a containing the elements from the operation.
+
+ A set of elements.
+ A set of elements.
+ A set containing A - B elements. if a is .
+
+
+
+ Performs an "exclusive-or" of the two sets, keeping only the elements that
+ are in one of the sets, but not in both. The original sets are not modified
+ during this operation. The result set is a clone of this set containing
+ the elements from the exclusive-or operation.
+
+ A set of elements.
+ A set containing the result of a ^ b.
+
+
+
+ Performs an "exclusive-or" of the two sets, keeping only the elements that
+ are in one of the sets, but not in both. The original sets are not modified
+ during this operation. The result set is a clone of one of the sets
+ (a if it is not ) containing
+ the elements from the exclusive-or operation.
+
+ A set of elements.
+ A set of elements.
+ A set containing the result of a ^ b. if both sets are .
+
+
+
+ Performs an "exclusive-or" of the two sets, keeping only the elements that
+ are in one of the sets, but not in both. The original sets are not modified
+ during this operation. The result set is a clone of one of the sets
+ (a if it is not ) containing
+ the elements from the exclusive-or operation.
+
+ A set of elements.
+ A set of elements.
+ A set containing the result of a ^ b. if both sets are .
+
+
+
+ Adds the specified element to this set if it is not already present.
+
+ The object to add to the set.
+ is the object was added, if it was already present.
+
+
+
+ Adds all the elements in the specified collection to the set if they are not already present.
+
+ A collection of objects to add to the set.
+ is the set changed as a result of this operation, if not.
+
+
+
+ Removes all objects from the set.
+
+
+
+
+ Returns if this set contains the specified element.
+
+ The element to look for.
+ if this set contains the specified element, otherwise.
+
+
+
+ Returns if the set contains all the elements in the specified collection.
+
+ A collection of objects.
+ if the set contains all the elements in the specified collection, otherwise.
+
+
+
+ Removes the specified element from the set.
+
+ The element to be removed.
+ if the set contained the specified element, otherwise.
+
+
+
+ Remove all the specified elements from this set, if they exist in this set.
+
+ A collection of elements to remove.
+ if the set was modified as a result of this operation.
+
+
+
+ Retains only the elements in this set that are contained in the specified collection.
+
+ Collection that defines the set of elements to be retained.
+ if this set changed as a result of this operation.
+
+
+
+ Returns a clone of the set instance. This will work for derived set
+ classes if the derived class implements a constructor that takes no arguments.
+
+ A clone of this object.
+
+
+
+ Copies the elements in the set to an array. The type of array needs
+ to be compatible with the objects in the set, obviously.
+
+ An array that will be the target of the copy operation.
+ The zero-based index where copying will start.
+
+
+
+ Returns an enumerator that iterates through the set.
+
+
+ An object that can be used to iterate through the set.
+
+
+
+
+ Returns if this set contains no elements.
+
+
+
+
+ The number of elements currently contained in this collection.
+
+
+
+
+ Returns if the set is synchronized across threads. Note that
+ enumeration is inherently not thread-safe. Use the to lock the
+ object during enumeration.
+
+
+
+
+ An object that can be used to synchronize this collection to make it thread-safe.
+ When implementing this, if your object uses a base object, like an ,
+ or anything that has a , return that object instead
+ of .
+
+
+
+
+ Provides the storage for elements in the Set, stored as the key-set
+ of the IDictionary object. Set this object in the constructor
+ if you create your own Set class.
+
+
+
+
+ Adds the specified element to this set if it is not already present.
+
+ The object to add to the set.
+ is the object was added, if it was already present.
+
+
+
+ Adds all the elements in the specified collection to the set if they are not already present.
+
+ A collection of objects to add to the set.
+ is the set changed as a result of this operation, if not.
+
+
+
+ Removes all objects from the set.
+
+
+
+
+ Returns if this set contains the specified element.
+
+ The element to look for.
+ if this set contains the specified element, otherwise.
+
+
+
+ Returns if the set contains all the elements in the specified collection.
+
+ A collection of objects.
+ if the set contains all the elements in the specified collection, otherwise.
+
+
+
+ Removes the specified element from the set.
+
+ The element to be removed.
+ if the set contained the specified element, otherwise.
+
+
+
+ Remove all the specified elements from this set, if they exist in this set.
+
+ A collection of elements to remove.
+ if the set was modified as a result of this operation.
+
+
+
+ Retains only the elements in this set that are contained in the specified collection.
+
+ Collection that defines the set of elements to be retained.
+ if this set changed as a result of this operation.
+
+
+
+ Copies the elements in the Set to an array. The type of array needs
+ to be compatible with the objects in the Set, obviously.
+
+ An array that will be the target of the copy operation.
+ The zero-based index where copying will start.
+
+
+
+ Gets an enumerator for the elements in the Set.
+
+ An IEnumerator over the elements in the Set.
+
+
+
+ The placeholder object used as the value for the IDictionary instance.
+
+
+ There is a single instance of this object globally, used for all Sets.
+
+
+
+
+ Returns if this set contains no elements.
+
+
+
+
+ The number of elements contained in this collection.
+
+
+
+
+ None of the objects based on DictionarySet are synchronized. Use the
+ SyncRoot property instead.
+
+
+
+
+ Returns an object that can be used to synchronize the Set between threads.
+
+
+
+
+ Implements a Set based on a hash table. This will give the best lookup, add, and remove
+ performance for very large data-sets, but iteration will occur in no particular order.
+
+
+
+
+ Creates a new set instance based on a hash table.
+
+
+
+
+ Creates a new set instance based on a hash table and
+ initializes it based on a collection of elements.
+
+ A collection of elements that defines the initial set contents.
+
+
+
+ Implements a Set that automatically changes from a list to a hash table
+ when the size reaches a certain threshold. This is good if you are unsure about
+ whether you data-set will be tiny or huge. Because this uses a dual implementation,
+ iteration order is not guaranteed!
+
+
+
+
+ Creates a new set instance based on either a list or a hash table, depending on which
+ will be more efficient based on the data-set size.
+
+
+
+
+ Creates a new set instance based on either a list or a hash table, depending on which
+ will be more efficient based on the data-set size, and
+ initializes it based on a collection of elements.
+
+ A collection of elements that defines the initial set contents.
+
+
+
+
Implements an immutable (read-only) Set wrapper.
+
Although this is advertised as immutable, it really isn't. Anyone with access to the
+ basisSet can still change the data-set. So GetHashCode() is not implemented
+ for this Set, as is the case for all Set implementations in this library.
+ This design decision was based on the efficiency of not having to Clone() the
+ basisSet every time you wrap a mutable Set.
+
+
+
+
+ Constructs an immutable (read-only) Set wrapper.
+
+ The Set that is wrapped.
+
+
+
+ Adds the specified element to this set if it is not already present.
+
+ The object to add to the set.
+ is the object was added, if it was already present.
+
+
+
+ Adds all the elements in the specified collection to the set if they are not already present.
+
+ A collection of objects to add to the set.
+ is the set changed as a result of this operation, if not.
+
+
+
+ Removes all objects from the set.
+
+
+
+
+ Returns if this set contains the specified element.
+
+ The element to look for.
+ if this set contains the specified element, otherwise.
+
+
+
+ Returns if the set contains all the elements in the specified collection.
+
+ A collection of objects.
+ if the set contains all the elements in the specified collection, otherwise.
+
+
+
+ Removes the specified element from the set.
+
+ The element to be removed.
+ if the set contained the specified element, otherwise.
+
+
+
+ Remove all the specified elements from this set, if they exist in this set.
+
+ A collection of elements to remove.
+ if the set was modified as a result of this operation.
+
+
+
+ Retains only the elements in this set that are contained in the specified collection.
+
+ Collection that defines the set of elements to be retained.
+ if this set changed as a result of this operation.
+
+
+
+ Copies the elements in the Set to an array. The type of array needs
+ to be compatible with the objects in the Set, obviously.
+
+ An array that will be the target of the copy operation.
+ The zero-based index where copying will start.
+
+
+
+ Gets an enumerator for the elements in the Set.
+
+ An IEnumerator over the elements in the Set.
+
+
+
+ Returns a clone of the Set instance.
+
+ A clone of this object.
+
+
+
+ Performs a "union" of the two sets, where all the elements
+ in both sets are present. That is, the element is included if it is in either a or b.
+ Neither this set nor the input set are modified during the operation. The return value
+ is a Clone() of this set with the extra elements added in.
+
+ A collection of elements.
+ A new Set containing the union of this Set with the specified collection.
+ Neither of the input objects is modified by the union.
+
+
+
+ Performs an "intersection" of the two sets, where only the elements
+ that are present in both sets remain. That is, the element is included if it exists in
+ both sets. The Intersect() operation does not modify the input sets. It returns
+ a Clone() of this set with the appropriate elements removed.
+
+ A set of elements.
+ The intersection of this set with a.
+
+
+
+ Performs a "minus" of set b from set a. This returns a set of all
+ the elements in set a, removing the elements that are also in set b.
+ The original sets are not modified during this operation. The result set is a Clone()
+ of this Set containing the elements from the operation.
+
+ A set of elements.
+ A set containing the elements from this set with the elements in a removed.
+
+
+
+ Performs an "exclusive-or" of the two sets, keeping only the elements that
+ are in one of the sets, but not in both. The original sets are not modified
+ during this operation. The result set is a Clone() of this set containing
+ the elements from the exclusive-or operation.
+
+ A set of elements.
+ A set containing the result of a ^ b.
+
+
+
+ Returns if this set contains no elements.
+
+
+
+
+ The number of elements contained in this collection.
+
+
+
+
+ Returns an object that can be used to synchronize use of the Set across threads.
+
+
+
+
+ Returns an object that can be used to synchronize the Set between threads.
+
+
+
+
+ Implements a Set based on a list. Performance is much better for very small lists
+ than either HashedSet or SortedSet. However, performance degrades rapidly as
+ the data-set gets bigger. Use a HybridSet instead if you are not sure your data-set
+ will always remain very small. Iteration produces elements in the order they were added.
+ However, element order is not guaranteed to be maintained by the various Set
+ mathematical operators.
+
+
+
+
+ Creates a new set instance based on a list.
+
+
+
+
+ Creates a new set instance based on a list and
+ initializes it based on a collection of elements.
+
+ A collection of elements that defines the initial set contents.
+
+
+
+ Implements a set based on a sorted tree. This gives good performance for operations on very
+ large data-sets, though not as good - asymptotically - as a .
+ However, iteration occurs in order. Elements that you put into this type of collection must
+ implement , and they must actually be comparable. You can't mix
+ and values, for example.
+
+
+
+
+ Creates a new set instance based on a sorted tree.
+
+
+
+
+ Creates a new set instance based on a sorted tree.
+
+ The to use for sorting.
+
+
+
+ Creates a new set instance based on a sorted tree and
+ initializes it based on a collection of elements.
+
+ A collection of elements that defines the initial set contents.
+
+
+
+ Creates a new set instance based on a sorted tree and
+ initializes it based on a collection of elements.
+
+ A collection of elements that defines the initial set contents.
+ The to use for sorting.
+
+
+
+ Implements a thread-safe wrapper.
+
+
+ The implementation is extremely conservative, serializing critical sections
+ to prevent possible deadlocks, and locking on everything. The one exception
+ is for enumeration, which is inherently not thread-safe. For this, you have
+ to the object for the duration
+ of the enumeration.
+
+
+
+
+ Constructs a thread-safe wrapper.
+
+ The object that this object will wrap.
+
+
+
+ Adds the specified element to this set if it is not already present.
+
+ The object to add to the set.
+ is the object was added, if it was already present.
+
+
+
+ Adds all the elements in the specified collection to the set if they are not already present.
+
+ A collection of objects to add to the set.
+ is the set changed as a result of this operation, if not.
+
+
+
+ Removes all objects from the set.
+
+
+
+
+ Returns if this set contains the specified element.
+
+ The element to look for.
+ if this set contains the specified element, otherwise.
+
+
+
+ Returns if the set contains all the elements in the specified collection.
+
+ A collection of objects.
+ if the set contains all the elements in the specified collection, otherwise.
+
+
+
+ Removes the specified element from the set.
+
+ The element to be removed.
+ if the set contained the specified element, otherwise.
+
+
+
+ Remove all the specified elements from this set, if they exist in this set.
+
+ A collection of elements to remove.
+ if the set was modified as a result of this operation.
+
+
+
+ Retains only the elements in this set that are contained in the specified collection.
+
+ Collection that defines the set of elements to be retained.
+ if this set changed as a result of this operation.
+
+
+
+ Copies the elements in the set to an array. The type of array needs
+ to be compatible with the objects in the set, obviously.
+
+ An array that will be the target of the copy operation.
+ The zero-based index where copying will start.
+
+
+
+ Returns an enumerator that iterates through the set.
+
+
+ An object that can be used to iterate through the set.
+
+
+ Enumeration is, by definition, not thread-safe. Use a on the
+ to synchronize the entire enumeration process.
+
+
+
+
+ Returns a clone of this instance.
+
+ A clone of this object.
+
+
+
+ Returns if this set contains no elements.
+
+
+
+
+ The number of elements contained in this collection.
+
+
+
+
+ Returns , indicating that this object is thread-safe. The exception to this
+ is enumeration, which is inherently not thread-safe. Use the object to
+ lock this object for the entire duration of the enumeration.
+
+
+
+
+ Returns an object that can be used to synchronize the set between threads.
+
+
+
+
diff --git a/lib/NHibernate21/net/4.0/LinFu.DynamicProxy.dll b/lib/NHibernate21/net/4.0/LinFu.DynamicProxy.dll
new file mode 100644
index 00000000..22225220
Binary files /dev/null and b/lib/NHibernate21/net/4.0/LinFu.DynamicProxy.dll differ
diff --git a/lib/NHibernate21/net/4.0/NHibernate.DomainModel.dll b/lib/NHibernate21/net/4.0/NHibernate.DomainModel.dll
new file mode 100644
index 00000000..aed3dd7c
Binary files /dev/null and b/lib/NHibernate21/net/4.0/NHibernate.DomainModel.dll differ
diff --git a/lib/NHibernate21/net/4.0/NHibernate.Test.dll b/lib/NHibernate21/net/4.0/NHibernate.Test.dll
new file mode 100644
index 00000000..bdf5b28a
Binary files /dev/null and b/lib/NHibernate21/net/4.0/NHibernate.Test.dll differ
diff --git a/lib/NHibernate21/net/4.0/NHibernate.dll b/lib/NHibernate21/net/4.0/NHibernate.dll
new file mode 100644
index 00000000..f8b0bc26
Binary files /dev/null and b/lib/NHibernate21/net/4.0/NHibernate.dll differ
diff --git a/lib/NHibernate21/net/4.0/NHibernate.license.txt b/lib/NHibernate21/net/4.0/NHibernate.license.txt
new file mode 100644
index 00000000..8a88d148
--- /dev/null
+++ b/lib/NHibernate21/net/4.0/NHibernate.license.txt
@@ -0,0 +1,460 @@
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL. It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+ This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it. You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+ When we speak of free software, we are referring to freedom of use,
+not price. Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+ To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights. These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+ For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you. You must make sure that they, too, receive or can get the source
+code. If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it. And you must show them these terms so they know their rights.
+
+ We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+ To protect each distributor, we want to make it very clear that
+there is no warranty for the free library. Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+ Finally, software patents pose a constant threat to the existence of
+any free program. We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder. Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+ Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License. This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License. We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+ When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library. The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom. The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+ We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License. It also provides other free software developers Less
+of an advantage over competing non-free programs. These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries. However, the Lesser license provides advantages in certain
+special circumstances.
+
+ For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard. To achieve this, non-free programs must be
+allowed to use the library. A more frequent case is that a free
+library does the same job as widely used non-free libraries. In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+ In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software. For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+ Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+ The precise terms and conditions for copying, distribution and
+modification follow. Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library". The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+ GNU LESSER GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+ A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+ The "Library", below, refers to any such software library or work
+which has been distributed under these terms. A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language. (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+ "Source code" for a work means the preferred form of the work for
+making modifications to it. For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+ Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it). Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+ 1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+ You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+ 2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) The modified work must itself be a software library.
+
+ b) You must cause the files modified to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ c) You must cause the whole of the work to be licensed at no
+ charge to all third parties under the terms of this License.
+
+ d) If a facility in the modified Library refers to a function or a
+ table of data to be supplied by an application program that uses
+ the facility, other than as an argument passed when the facility
+ is invoked, then you must make a good faith effort to ensure that,
+ in the event an application does not supply such function or
+ table, the facility still operates, and performs whatever part of
+ its purpose remains meaningful.
+
+ (For example, a function in a library to compute square roots has
+ a purpose that is entirely well-defined independent of the
+ application. Therefore, Subsection 2d requires that any
+ application-supplied function or table used by this function must
+ be optional: if the application does not supply it, the square
+ root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library. To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License. (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.) Do not make any other change in
+these notices.
+
+ Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+ This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+ 4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+ If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library". Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+ However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library". The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+ When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library. The
+threshold for this to be true is not precisely defined by law.
+
+ If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work. (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+ Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+ 6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+ You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License. You must supply a copy of this License. If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License. Also, you must do one
+of these things:
+
+ a) Accompany the work with the complete corresponding
+ machine-readable source code for the Library including whatever
+ changes were used in the work (which must be distributed under
+ Sections 1 and 2 above); and, if the work is an executable linked
+ with the Library, with the complete machine-readable "work that
+ uses the Library", as object code and/or source code, so that the
+ user can modify the Library and then relink to produce a modified
+ executable containing the modified Library. (It is understood
+ that the user who changes the contents of definitions files in the
+ Library will not necessarily be able to recompile the application
+ to use the modified definitions.)
+
+ b) Use a suitable shared library mechanism for linking with the
+ Library. A suitable mechanism is one that (1) uses at run time a
+ copy of the library already present on the user's computer system,
+ rather than copying library functions into the executable, and (2)
+ will operate properly with a modified version of the library, if
+ the user installs one, as long as the modified version is
+ interface-compatible with the version that the work was made with.
+
+ c) Accompany the work with a written offer, valid for at
+ least three years, to give the same user the materials
+ specified in Subsection 6a, above, for a charge no more
+ than the cost of performing this distribution.
+
+ d) If distribution of the work is made by offering access to copy
+ from a designated place, offer equivalent access to copy the above
+ specified materials from the same place.
+
+ e) Verify that the user has already received a copy of these
+ materials or that you have already sent this user a copy.
+
+ For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it. However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+ It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system. Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+ 7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+ a) Accompany the combined library with a copy of the same work
+ based on the Library, uncombined with any other library
+ facilities. This must be distributed under the terms of the
+ Sections above.
+
+ b) Give prominent notice with the combined library of the fact
+ that part of it is a work based on the Library, and explaining
+ where to find the accompanying uncombined form of the same work.
+
+ 8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License. Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License. However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+ 9. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Library or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+ 10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+ 11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all. For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded. In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+ 13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation. If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+ 14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission. For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this. Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+ NO WARRANTY
+
+ 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
diff --git a/lib/NHibernate21/net/4.0/NHibernate.xml b/lib/NHibernate21/net/4.0/NHibernate.xml
new file mode 100644
index 00000000..a9e6f2e5
--- /dev/null
+++ b/lib/NHibernate21/net/4.0/NHibernate.xml
@@ -0,0 +1,40555 @@
+
+
+
+ NHibernate
+
+
+
+
+ Implementation of BulkOperationCleanupAction.
+
+
+
+
+ An operation which may be scheduled for later execution.
+ Usually, the operation is a database insert/update/delete,
+ together with required second-level cache management.
+
+
+
+ Called before executing any actions
+
+
+ Execute this action
+
+
+
+ Do we need to retain this instance until after the transaction completes?
+
+
+ False if this class defines a no-op has after transaction completion.
+
+
+
+ Called after the transaction completes
+
+
+
+ What spaces (tables) are affected by this action?
+
+
+
+
+ Create an action that will evict collection and entity regions based on queryspaces (table names).
+
+
+
+
+ Any action relating to insert/update/delete of a collection
+
+
+
+
+ Initializes a new instance of .
+
+ The that is responsible for the persisting the Collection.
+ The Persistent collection.
+ The identifier of the Collection.
+ The that the Action is occurring in.
+
+
+ Called before executing any actions
+
+
+ Execute this action
+
+
+
+ Do we need to retain this instance until after the transaction completes?
+
+
+ False if this class defines a no-op has after transaction completion.
+
+
+
+ Called after the transaction completes
+
+
+
+ Compares the current object with another object of the same type.
+
+
+ A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has the following meanings: Value Meaning Less than zero This object is less than the other parameter.Zero This object is equal to other. Greater than zero This object is greater than other.
+
+ An object to compare with this object.
+
+
+
+ What spaces (tables) are affected by this action?
+
+
+
+ Execute this action
+
+ This method is called when a new non-null collection is persisted
+ or when an existing (non-null) collection is moved to a new owner
+
+
+
+
+ Removes a persistent collection from its loaded owner.
+
+ The collection to to remove; must be non-null
+ The collection's persister
+ The collection key
+ Indicates if the snapshot is empty
+ The session
+ Use this constructor when the collection is non-null.
+
+
+
+ Removes a persistent collection from a specified owner.
+
+ The collection's owner; must be non-null
+ The collection's persister
+ The collection key
+ Indicates if the snapshot is empty
+ The session
+ Use this constructor when the collection to be removed has not been loaded.
+
+
+
+ Acts as a stand-in for an entity identifier which is supposed to be
+ generated on insert (like an IDENTITY column) where the insert needed to
+ be delayed because we were outside a transaction when the persist
+ occurred (save currently still performs the insert).
+
+ The stand-in is only used within the see cref="NHibernate.Engine.PersistenceContext"
+ in order to distinguish one instance from another; it is never injected into
+ the entity instance or returned to the client...
+
+
+
+
+ Base class for actions relating to insert/update/delete of an entity
+ instance.
+
+
+
+
+ Instantiate an action.
+
+ The session from which this action is coming.
+ The id of the entity
+ The entity instance
+ The entity persister
+
+
+
+ Entity name accessor
+
+
+
+
+ Entity Id accessor
+
+
+
+
+ Entity Instance
+
+
+
+
+ Session from which this action originated
+
+
+
+
+ The entity persister.
+
+
+
+ Format an SQL statement using simple rules:
+ a) Insert newline after each comma;
+ b) Indent three spaces after each inserted newline;
+ If the statement contains single/double quotes return unchanged,
+ it is too complex and could be broken by simple formatting.
+
+
+
+ Represents the the understood types or styles of formatting.
+
+
+ Centralize logging handling for SQL statements.
+
+
+ Constructs a new SqlStatementLogger instance.
+
+
+ Constructs a new SqlStatementLogger instance.
+ Should we log to STDOUT in addition to our internal logger.
+ Should we format SQL ('prettify') prior to logging.
+
+
+ Log a IDbCommand.
+ Title
+ The SQL statement.
+ The requested formatting style.
+
+
+ Log a IDbCommand.
+ The SQL statement.
+ The requested formatting style.
+
+
+
+ Manages prepared statements and batching. Class exists to enforce separation of concerns
+
+
+
+
+ Manages s and s
+ for an .
+
+
+
+ Abstracts ADO.NET batching to maintain the illusion that a single logical batch
+ exists for the whole session, even when batching is disabled.
+ Provides transparent IDbCommand caching.
+
+
+ This will be useful once ADO.NET gets support for batching. Until that point
+ no code exists that will do batching, but this will provide a good point to do
+ error checking and making sure the correct number of rows were affected.
+
+
+
+
+
+ Get an for using in loading / querying.
+
+ The to convert to an .
+ The of the command.
+ The SqlTypes of parameters
+ in .
+
+ An that is ready to be executed.
+
+
+
+ If not explicitly released by , it will be
+ released when the session is closed or disconnected.
+
+
+ This does NOT add anything to the batch - it only creates the IDbCommand and
+ does NOT cause the batch to execute...
+
+
+
+
+
+ Get a non-batchable an to use for inserting / deleting / updating.
+ Must be explicitly released by CloseCommand()
+
+ The to convert to an .
+ The of the command.
+ The SqlTypes of parameters
+ in .
+
+ An that is ready to have the parameter values set
+ and then executed.
+
+
+
+
+ Close a opened using PrepareCommand()
+
+ The to ensure is closed.
+ The to ensure is closed.
+
+
+
+ Close a opened using
+
+ The to ensure is closed.
+
+
+
+ Get a batchable to use for inserting / deleting / updating
+ (might be called many times before a single call to ExecuteBatch()
+
+
+ After setting parameters, call AddToBatch() - do not execute the statement
+ explicitly.
+
+ The to convert to an .
+ The of the command.
+ The SqlTypes of parameters
+ in .
+
+
+
+
+ Add an insert / delete / update to the current batch (might be called multiple times
+ for a single PrepareBatchStatement())
+
+ Determines whether the number of rows affected by query is correct.
+
+
+
+ Execute the batch
+
+
+
+
+ Close any query statements that were left lying around
+
+
+ Use this method instead of Dispose if the
+ can be used again.
+
+
+
+
+ Gets an by calling ExecuteReader on the .
+
+ The to execute to get the .
+ The from the .
+
+ The Batcher is responsible for ensuring that all of the Drivers rules for how many open
+ s it can have are followed.
+
+
+
+
+ Executes the .
+
+ The to execute.
+ The number of rows affected.
+
+ The Batcher is responsible for ensuring that all of the Drivers rules for how many open
+ s it can have are followed.
+
+
+
+
+ Must be called when an exception occurs.
+
+
+
+
+
+ Cancel the current query statement
+
+
+
+
+ Gets the value indicating whether there are any open resources
+ managed by this batcher (IDbCommands or IDataReaders).
+
+
+
+
+ Gets or sets the size of the batch, this can change dynamically by
+ calling the session's SetBatchSize.
+
+ The size of the batch.
+
+
+
+ Initializes a new instance of the class.
+
+ The owning this batcher.
+
+
+
+
+ Prepares the for execution in the database.
+
+
+ This takes care of hooking the up to an
+ and if one exists. It will call Prepare if the Driver
+ supports preparing commands.
+
+
+
+
+ Ensures that the Driver's rules for Multiple Open DataReaders are being followed.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Adds the expected row count into the batch.
+
+ The number of rows expected to be affected by the query.
+
+ If Batching is not supported, then this is when the Command should be executed. If Batching
+ is supported then it should hold of on executing the batch until explicitly told to.
+
+
+
+
+ A flag to indicate if Dispose() has been called.
+
+
+
+
+ Finalizer that ensures the object is correctly disposed of.
+
+
+
+
+ Takes care of freeing the managed and unmanaged resources that
+ this class is responsible for.
+
+
+
+
+ Takes care of freeing the managed and unmanaged resources that
+ this class is responsible for.
+
+ Indicates if this BatcherImpl is being Disposed of or Finalized.
+
+ If this BatcherImpl is being Finalized (isDisposing==false) then make sure not
+ to call any methods that could potentially bring this BatcherImpl back to life.
+
+
+
+
+ Gets the current that is contained for this Batch
+
+ The current .
+
+
+
+ Gets or sets the size of the batch, this can change dynamically by
+ calling the session's SetBatchSize.
+
+ The size of the batch.
+
+
+
+ Gets the the Batcher was
+ created in.
+
+
+ The the Batcher was
+ created in.
+
+
+
+
+ Gets the for this batcher.
+
+
+
+ Implementation of ColumnNameCache.
+
+
+
+ Manages the database connection and transaction for an .
+
+
+ This class corresponds to ConnectionManager and JDBCContext in Hibernate,
+ combined.
+
+
+
+ The batcher managed by this ConnectionManager.
+
+
+
+ Expected row count. Valid only for batchable expectations.
+
+
+
+ Factory for instances.
+
+
+
+ Provide the class of according to the configuration
+ and the capabilities of the driver.
+
+
+ By default, .Net doesn't have any batching capabilities, drivers that does have
+ batching support.
+ The BatcherFactory trough session-factory configuration section.
+ This interface was added in NHibernate for backdraw compatibility to have the ability
+ to specify a default for a specific .
+
+
+
+
+ An implementation of the
+ interface that does no batching.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The for this batcher.
+
+
+
+
+ Executes the current and compares the row Count
+ to the expectedRowCount.
+
+
+ The expected number of rows affected by the query. A value of less than 0
+ indicates that the number of rows to expect is unknown or should not be a factor.
+
+
+ Thrown when there is an expected number of rows to be affected and the
+ actual number of rows is different.
+
+
+
+
+ This Batcher implementation does not support batching so this is a no-op call. The
+ actual execution of the is run in the AddToBatch
+ method.
+
+
+
+
+
+ A BatcherFactory implementation which constructs Batcher instances
+ that do not perform batch operations.
+
+
+
+
+ Summary description for OracleDataClientBatchingBatcher.
+ By Tomer Avissar
+
+
+
+
+ A ResultSet delegate, responsible for locally caching the columnName-to-columnIndex
+ resolution that has been found to be inefficient in a few vendor's drivers (i.e., Oracle
+ and Postgres).
+
+
+
+
+
+ Summary description for SqlClientBatchingBatcher.
+
+
+
+
+ Expose the batch functionality in ADO.Net 2.0
+ Microsoft in its wisdom decided to make my life hard and mark it internal.
+ Through the use of Reflection and some delegates magic, I opened up the functionality.
+
+ Observable performance benefits are 50%+ when used, so it is really worth it.
+
+
+
+
+ Append a command to the batch
+
+
+
+
+
+ This is required because SqlClient.SqlCommandSet will throw if
+ the command has no parameters.
+
+
+
+
+
+ Executes the batch
+
+
+ This seems to be returning the total number of affected rows in all queries
+
+
+
+
+ Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
+
+ 2
+
+
+
+ Return the batch command to be executed
+
+
+
+
+ The number of commands batched in this instance
+
+
+
+
+ Any exception that occurs in the O-R persistence layer.
+
+
+ Exceptions that occur in the database layer are left as native exceptions.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+
+
+ Initializes a new instance of the class.
+
+
+ The exception that is the cause of the current exception. If the innerException parameter
+ is not a null reference, the current exception is raised in a catch block that handles
+ the inner exception.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+ The exception that is the cause of the current exception. If the innerException parameter
+ is not a null reference, the current exception is raised in a catch block that handles
+ the inner exception.
+
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ CodeDOM-based bytecode provider.
+
+
+
+
+ Retrieve the delegate for this provider
+ capable of generating reflection optimization components.
+
+ The class to be reflected upon.
+ All property getters to be accessed via reflection.
+ All property setters to be accessed via reflection.
+ The reflection optimization delegate.
+
+
+
+ The specific factory for this provider capable of
+ generating run-time proxies for lazy-loading purposes.
+
+
+
+
+ NHibernate's object instaciator.
+
+
+ For entities and its implementations.
+
+
+
+
+ Instanciator of NHibernate's collections default types.
+
+
+
+
+ ctor
+
+ The target class
+ Array of setters
+ Array of getters
+
+
+
+ Set up the compiler options
+
+
+
+
+ Add an assembly to the list of ReferencedAssemblies
+ required to build the class
+
+
+
+
+
+ Build the generated code
+
+ Generated code
+ An instance of the generated class
+
+
+
+ Check if the property is public
+
+
+ If IsPublic==true I can directly set the property
+ If IsPublic==false I need to use the setter/getter
+
+
+
+
+
+
+ Generate the required code
+
+ C# code
+
+
+
+ Represents optimized entity property access.
+
+
+
+
+ Factory that generate object based on IReflectionOptimizer needed to replace the use
+ of reflection.
+
+
+ Used in and
+
+
+
+
+
+ Generate the IReflectionOptimizer object
+
+ The target class
+ Array of setters
+ Array of getters
+ if the generation fails
+
+
+
+ Represents reflection optimization for a particular class.
+
+
+
+
+ Represents optimized entity instantiation.
+
+
+
+
+ Perform instantiation of an instance of the underlying class.
+
+ The new instance.
+
+
+
+ Class constructor.
+
+
+
+
+ Generates a dynamic method which creates a new instance of
+ when invoked.
+
+
+
+
+ Generates a dynamic method on the given type.
+
+
+
+
+ Generates a dynamic method on the given type.
+
+
+
+
+
+ Interface for instanciate all NHibernate objects.
+
+
+
+
+ Creates an instance of the specified type.
+
+ The type of object to create.
+ A reference to the created object.
+
+
+
+ Creates an instance of the specified type.
+
+ The type of object to create.
+ true if a public or nonpublic default constructor can match; false if only a public default constructor can match.
+ A reference to the created object.
+
+
+
+ Creates an instance of the specified type using the constructor
+ that best matches the specified parameters.
+
+ The type of object to create.
+ An array of constructor arguments.
+ A reference to the created object.
+
+
+
+ Emits an ldc.i4 opcode using the fastest available opcode choice.
+
+
+
+
+ Emits IL to unbox a value type and if null, create a new instance of the value type.
+
+
+ This does not work if the value type doesn't have a default constructor - we delegate
+ that to the ISetter.
+
+
+
+
+ Defines a new delegate type.
+
+
+
+
+ Type factory for collections types.
+
+
+
+
+ Creates a new for an .
+
+ The role the collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+ The to use to create the array.
+ Is embedded in XML (not supported yet)
+
+ An for the specified role.
+
+
+
+
+ Creates a new for an
+ with bag semantics.
+
+ The role the collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+ Is embedded in XML (not supported yet)
+
+ A for the specified role.
+
+
+
+
+ Creates a new for an
+ with bag semantics.
+
+ The type of elements in the list.
+ The role the collection is in.
+
+ The name of the property in the owner object containing the collection ID,
+ or if it is the primary key.
+
+ Is embedded in XML (not supported yet)
+
+ A for the specified role.
+
+
+
+
+ Creates a new for an .
+
+ The role the collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+ Is embedded in XML (not supported yet)
+
+ A for the specified role.
+
+
+
+
+ Creates a new for an
+ with list
+ semantics.
+
+ The type of elements in the list.
+ The role the collection is in.
+
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+
+ Is embedded in XML (not supported yet)
+
+ A for the specified role.
+
+
+
+
+ Creates a new for an
+ with id-bag semantics.
+
+ The role the collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+ Is embedded in XML (not supported yet)
+
+ A for the specified role.
+
+
+
+
+ Creates a new for an
+ with identifier
+ bag semantics.
+
+ The type of elements in the list.
+ The role the collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+
+ Is embedded in XML (not supported yet)
+
+ A for the specified role.
+
+
+
+
+ Creates a new for an .
+
+ The role the collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+ Is embedded in XML (not supported yet)
+
+ A for the specified role.
+
+
+
+
+ Creates a new for an
+ that is sorted by an .
+
+ The role the collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+ The that does the sorting.
+ Is embedded in XML (not supported yet)
+
+ A for the specified role.
+
+
+
+
+ Creates a new for an .
+
+ The type of elements in the collection.
+ The role the collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+ Is embedded in XML (not supported yet)
+ A for the specified role.
+
+
+
+ Creates a new for a sorted .
+
+ The type of elements in the collection.
+ The role the collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+ Is embedded in XML (not supported yet)
+ The to use for the set.
+ A for the specified role.
+
+
+
+ Creates a new for an ordered .
+
+ The type of elements in the collection.
+ The role the collection is in.
+
+ The name of the property in the owner object containing the collection ID,
+ or if it is the primary key.
+
+ Is embedded in XML (not supported yet)
+ A for the specified role.
+
+
+
+ Creates a new for an .
+
+ The role the collection is in.
+
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+ Is embedded in XML (not supported yet)
+
+ A for the specified role.
+
+
+
+
+ Creates a new for an
+ that maintains insertion order of elements.
+
+ The role the collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+ Is embedded in XML (not supported yet)
+
+ A for the specified role.
+
+
+
+
+ Creates a new for an
+ that is sorted by an .
+
+ The role the collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+ The that does the sorting.
+ Is embedded in XML (not supported yet)
+
+ A for the specified role.
+
+
+
+
+ Creates a new for an
+ .
+
+ The type of keys in the dictionary.
+ The type of values in the dictionary.
+ The role the collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+
+ Is embedded in XML (not supported yet)
+
+ A for the specified role.
+
+
+
+
+ An interface for factories of proxy factory instances.
+
+
+ Used to abstract from the tupizer.
+
+
+
+
+ Build a proxy factory specifically for handling runtime
+ lazy loading.
+
+ The lazy-load proxy factory.
+
+
+
+ A implementation that returns
+ , disabling reflection optimization.
+
+
+
+
+ A cached instance of a persistent class
+
+
+
+
+ An item of cached data, timestamped with the time it was cached, when it was locked,
+ when it was unlocked
+
+
+
+
+ Caches data that is sometimes updated while maintaining the semantics of
+ "read committed" isolation level. If the database is set to "repeatable
+ read", this concurrency strategy almost maintains the semantics.
+ Repeatable read isolation is compromised in the case of concurrent writes.
+ This is an "asynchronous" concurrency strategy.
+
+
+ If this strategy is used in a cluster, the underlying cache implementation
+ must support distributed hard locks (which are held only momentarily). This
+ strategy also assumes that the underlying cache implementation does not do
+ asynchronous replication and that state has been fully replicated as soon
+ as the lock is released.
+ for a faster algorithm
+
+
+
+
+
+ Implementors manage transactional access to cached data.
+
+
+
+ Transactions pass in a timestamp indicating transaction start time.
+
+
+ When used to cache entities and collections the key is the identifier of the
+ entity/collection and the value should be set to the
+ for an entity and the results of
+ for a collection.
+
+
+
+
+
+ Attempt to retrieve an object from the Cache
+
+ The key (id) of the object to get out of the Cache.
+ A timestamp prior to the transaction start time
+ The cached object or
+
+
+
+
+ Attempt to cache an object, after loading from the database
+
+ The key (id) of the object to put in the Cache.
+ The value
+ A timestamp prior to the transaction start time
+ the version number of the object we are putting
+ a Comparer to be used to compare version numbers
+ indicates that the cache should avoid a put if the item is already cached
+ if the object was successfully cached
+
+
+
+
+ We are going to attempt to update/delete the keyed object
+
+ The key
+
+
+ This method is used by "asynchronous" concurrency strategies.
+
+
+
+ Called after an item has become stale (before the transaction completes).
+
+
+
+ This method is used by "synchronous" concurrency strategies.
+
+
+
+ Called after an item has been updated (before the transaction completes),
+ instead of calling Evict().
+
+
+
+
+
+ This method is used by "synchronous" concurrency strategies.
+
+
+
+ Called after an item has been inserted (before the transaction completes), instead of calling Evict().
+
+
+
+
+ This method is used by "synchronous" concurrency strategies.
+
+
+
+ Called when we have finished the attempted update/delete (which may or
+ may not have been successful), after transaction completion.
+
+ The key
+ The soft lock
+
+ This method is used by "asynchronous" concurrency strategies.
+
+
+
+ Called after an item has been updated (after the transaction completes),
+ instead of calling Release().
+
+
+
+
+
+ This method is used by "asynchronous" concurrency strategies.
+
+
+
+ Called after an item has been inserted (after the transaction completes), instead of calling release().
+
+
+
+
+ This method is used by "asynchronous" concurrency strategies.
+
+
+
+ Evict an item from the cache immediately (without regard for transaction isolation).
+
+
+
+
+
+
+ Evict all items from the cache immediately.
+
+
+
+
+
+ Clean up all resources.
+
+
+
+
+
+ Gets the cache region name.
+
+
+
+
+ Gets or sets the for this strategy to use.
+
+ The for this strategy to use.
+
+
+
+ Generate an id for a new lock. Uniqueness per cache instance is very
+ desirable but not absolutely critical. Must be called from one of the
+ synchronized methods of this class.
+
+
+
+
+
+ Do not return an item whose timestamp is later than the current
+ transaction timestamp. (Otherwise we might compromise repeatable
+ read unnecessarily.) Do not return an item which is soft-locked.
+ Always go straight to the database instead.
+
+
+ Note that since reading an item from that cache does not actually
+ go to the database, it is possible to see a kind of phantom read
+ due to the underlying row being updated after we have read it
+ from the cache. This would not be possible in a lock-based
+ implementation of repeatable read isolation. It is also possible
+ to overwrite changes made and committed by another transaction
+ after the current transaction read the item from the cache. This
+ problem would be caught by the update-time version-checking, if
+ the data is versioned or timestamped.
+
+
+
+
+ Stop any other transactions reading or writing this item to/from
+ the cache. Send them straight to the database instead. (The lock
+ does time out eventually.) This implementation tracks concurrent
+ locks by transactions which simultaneously attempt to write to an
+ item.
+
+
+
+
+ Do not add an item to the cache unless the current transaction
+ timestamp is later than the timestamp at which the item was
+ invalidated. (Otherwise, a stale item might be re-added if the
+ database is operating in repeatable read isolation mode.)
+
+ Whether the item was actually put into the cache
+
+
+
+ decrement a lock and put it back in the cache
+
+
+
+
+ Re-cache the updated state, if and only if there there are
+ no other concurrent soft locks. Release our lock.
+
+
+
+
+ Is the client's lock commensurate with the item in the cache?
+ If it is not, we know that the cache expired the original
+ lock.
+
+
+
+
+ Gets the cache region name.
+
+
+
+
+ Lock the item
+
+
+
+
+ Is this item visible to the timestamped transaction?
+
+
+
+
+
+
+ Don't overwrite already cached items
+
+
+
+
+
+
+
+
+ The timestamp on the cached data
+
+
+
+
+ The actual cached data
+
+
+
+
+ Not a lock!
+
+
+
+
+ Represents any exception from an .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+
+
+ Initializes a new instance of the class.
+
+
+ The exception that is the cause of the current exception. If the innerException parameter
+ is not a null reference, the current exception is raised in a catch block that handles
+ the inner exception.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+ The exception that is the cause of the current exception. If the innerException parameter
+ is not a null reference, the current exception is raised in a catch block that handles
+ the inner exception.
+
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Factory class for creating an .
+
+
+
+
+ No providers implement transactional caching currently,
+ it was ported from Hibernate just for the sake of completeness.
+
+
+
+
+ Creates an from the parameters.
+
+ The name of the strategy that should use for the class.
+ The name of the class the strategy is being created for.
+ if the object being stored in the cache is mutable.
+ Used to retrieve the global cache region prefix.
+ Properties the cache provider can use to configure the cache.
+ An to use for this object in the .
+
+
+
+ Allows multiple entity classes / collection roles to be
+ stored in the same cache region. Also allows for composite
+ keys which do not properly implement equals()/hashCode().
+
+
+
+
+ Construct a new key for a collection or entity instance.
+ Note that an entity name should always be the root entity
+ name, not a subclass entity name.
+
+ The identifier associated with the cached data
+ The Hibernate type mapping
+ The entity or collection-role name.
+ The entiyt mode of the originating session
+ The session factory for which we are caching
+
+
+
+ A soft lock which supports concurrent locking,
+ timestamped with the time it was released
+
+
+ This class was named Lock in H2.1
+
+
+
+
+ Marker interface, denoting a client-visible "soft lock" on a cached item.
+
+
+
+
+ Increment the lock, setting the
+ new lock timeout
+
+
+
+
+ Decrement the lock, setting the unlock
+ timestamp if now unlocked
+
+
+
+
+
+ Can the timestamped transaction re-cache this
+ locked item now?
+
+
+
+
+ locks are not returned to the client!
+
+
+
+
+ Was this lock held concurrently by multiple
+ transactions?
+
+
+
+
+ Yes, this is a lock
+
+
+
+
+ Used by
+
+
+
+
+ Implementors define a caching algorithm.
+
+
+
+
+ All implementations must be threadsafe.
+
+
+ The key is the identifier of the object that is being cached and the
+ value is a .
+
+
+
+
+
+ Get the object from the Cache
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Remove an item from the Cache.
+
+ The Key of the Item in the Cache to remove.
+
+
+
+
+ Clear the Cache
+
+
+
+
+
+ Clean up.
+
+
+
+
+
+ If this is a clustered cache, lock the item
+
+ The Key of the Item in the Cache to lock.
+
+
+
+
+ If this is a clustered cache, unlock the item
+
+ The Key of the Item in the Cache to unlock.
+
+
+
+
+ Generate a timestamp
+
+
+
+
+
+ Get a reasonable "lock timeout"
+
+
+
+
+ Gets the name of the cache region
+
+
+
+
+ A simple -based cache
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Cache Provider plugin for NHibernate that is configured by using
+ cache.provider_class="NHibernate.Cache.HashtableCacheProvider"
+
+
+
+
+ Support for pluggable caches
+
+
+
+
+ Configure the cache
+
+ the name of the cache region
+ configuration settings
+
+
+
+
+ generate a timestamp
+
+
+
+
+
+ Callback to perform any necessary initialization of the underlying cache implementation
+ during ISessionFactory construction.
+
+ current configuration settings
+
+
+
+ Callback to perform any necessary cleanup of the underlying cache implementation
+ during .
+
+
+
+
+ Contract for sources of optimistically lockable data sent to the second level cache.
+
+
+ Note currently EntityPersisters are
+ the only viable source.
+
+
+
+
+ Does this source represent versioned (i.e., and thus optimistically lockable) data?
+
+ True if this source represents versioned data; false otherwise.
+
+
+ Get the comparator used to compare two different version values together.
+ An appropriate comparator.
+
+
+
+ Defines the contract for caches capable of storing query results. These
+ caches should only concern themselves with storing the matching result ids.
+ The transactional semantics are necessarily less strict than the semantics
+ of an item cache.
+
+
+
+
+ Defines a factory for query cache instances. These factories are responsible for
+ creating individual QueryCache instances.
+
+
+
+
+ A cache provider placeholder used when caching is disabled.
+
+
+
+
+ Configure the cache
+
+ the name of the cache region
+ configuration settings
+
+
+
+
+ Generate a timestamp
+
+
+
+
+ Callback to perform any necessary initialization of the underlying cache implementation during SessionFactory
+ construction.
+
+ current configuration settings.
+
+
+
+ Callback to perform any necessary cleanup of the underlying cache implementation during SessionFactory.close().
+
+
+
+
+ Caches data that is sometimes updated without ever locking the cache.
+ If concurrent access to an item is possible, this concurrency strategy
+ makes no guarantee that the item returned from the cache is the latest
+ version available in the database. Configure your cache timeout accordingly!
+ This is an "asynchronous" concurrency strategy.
+ for a much stricter algorithm
+
+
+
+
+ Get the most recent version, if available.
+
+
+
+
+ Add an item to the cache
+
+
+
+
+ Do nothing
+
+
+
+
+ Invalidate the item
+
+
+
+
+ Invalidate the item
+
+
+
+
+ Do nothing
+
+
+
+
+ Invalidate the item (again, for safety).
+
+
+
+
+ Invalidate the item (again, for safety).
+
+
+
+
+ Do nothing
+
+
+
+
+ Gets the cache region name.
+
+
+
+
+ Initializes a new instance of the class.
+
+ the session factory for this query key, required to get the identifiers of entities that are used as values.
+ The query string.
+ The query parameters.
+ The filters.
+
+
+
+ Caches data that is never updated
+
+
+
+
+ Unsupported!
+
+
+
+
+ Unsupported!
+
+
+
+
+ Unsupported!
+
+
+
+
+ Do nothing.
+
+
+
+
+ Do nothing.
+
+
+
+
+ Do nothing.
+
+
+
+
+ Unsupported!
+
+
+
+
+ Gets the cache region name.
+
+
+
+
+ The standard implementation of the Hibernate
+ interface. This implementation is very good at recognizing stale query
+ results and re-running queries when it detects this condition, recaching
+ the new results.
+
+
+
+
+ Standard Hibernate implementation of the IQueryCacheFactory interface. Returns
+ instances of .
+
+
+
+
+ Generates increasing identifiers (in a single application domain only).
+
+
+ Not valid across multiple application domains. Identifiers are not necessarily
+ strictly increasing, but usually are.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Tracks the timestamps of the most recent updates to particular tables. It is
+ important that the cache timeout of the underlying cache implementation be set
+ to a higher value than the timeouts of any of the query caches. In fact, we
+ recommend that the the underlying cache not be configured for expiry at all.
+ Note, in particular, that an LRU cache expiry policy is never appropriate.
+
+
+
+
+
+
+
+ Helper to parse hibernate-configuration XmlNode.
+
+
+
+
+ The XML node name for hibernate configuration section in the App.config/Web.config and
+ for the hibernate.cfg.xml .
+
+
+
+ The XML Namespace for the nhibernate-configuration
+
+
+ XPath expression for bytecode-provider property.
+
+
+ XPath expression for reflection-optimizer property.
+
+
+ XPath expression for session-factory whole node.
+
+
+ XPath expression for session-factory.property nodes
+
+
+ XPath expression for session-factory.mapping nodes
+
+
+ XPath expression for session-factory.class-cache nodes
+
+
+ XPath expression for session-factory.collection-cache nodes
+
+
+ XPath expression for session-factory.event nodes
+
+
+ XPath expression for session-factory.listener nodes
+
+
+
+ Convert a string to .
+
+ The string that represent .
+
+ The converted to .
+ for invalid values.
+
+
+ See for allowed values.
+
+
+
+
+ Convert a string to .
+
+ The string that represent .
+
+ The converted to .
+
+ If the values is invalid.
+
+ See for allowed values.
+
+
+
+
+ Convert a string to .
+
+ The string that represent .
+
+ The converted to .
+
+ If the values is invalid.
+
+ See for allowed values.
+
+
+
+
+ Convert a string to .
+
+ The string that represent .
+
+ The converted to .
+
+ If the values is invalid.
+
+ See for allowed values.
+
+
+
+
+ Values for class-cache and collection-cache strategy.
+
+
+
+ Xml value: read-only
+
+
+ Xml value: read-write
+
+
+ Xml value: nonstrict-read-write
+
+
+ Xml value: transactional
+
+
+
+ Values for class-cache include.
+
+ Not implemented in Cache.
+
+
+ Xml value: all
+
+
+ Xml value: non-lazy
+
+
+
+ Configuration parsed values for a class-cache XML node.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The class full name.
+ Cache strategy.
+ When is null or empty.
+
+
+
+ Initializes a new instance of the class.
+
+ The class full name.
+ Cache strategy.
+ Values for class-cache include.
+ When is null or empty.
+
+
+
+ Initializes a new instance of the class.
+
+ The class full name.
+ Cache strategy.
+ The cache region.
+ When is null or empty.
+
+
+
+ Initializes a new instance of the class.
+
+ The class full name.
+ Cache strategy.
+ Values for class-cache include.
+ The cache region.
+ When is null or empty.
+
+
+
+ The class full name.
+
+
+
+
+ The cache region.
+
+ If null or empty the is used during configuration.
+
+
+
+ Cache strategy.
+
+
+
+
+ class-cache include.
+
+
+ Not implemented in Cache.
+ Default value .
+
+
+
+
+ Configuration parsed values for a collection-cache XML node.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The cache role.
+ Cache strategy.
+ When is null or empty.
+
+
+
+ Initializes a new instance of the class.
+
+ The cache role.
+ Cache strategy.
+ The cache region.
+ When is null or empty.
+
+
+
+ The role.
+
+
+
+
+ The cache region.
+
+ If null or empty the is used during configuration.
+
+
+
+ Cache strategy.
+
+
+
+
+ Configuration parsed values for a event XML node.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The listener.
+ The type.
+
+
+
+ The default type of listeners.
+
+
+
+
+ Listeners for this event.
+
+
+
+
+ Values for bytecode-provider system property.
+
+
+
+ Xml value: codedom
+
+
+ Xml value: lcg
+
+
+ Xml value: null
+
+
+
+ Configuration parsed values for hibernate-configuration section.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The XML reader to parse.
+
+ The nhibernate-configuration.xsd is applied to the XML.
+
+ When nhibernate-configuration.xsd can't be applied.
+
+
+
+ Value for bytecode-provider system property.
+
+ Default value .
+
+
+
+ Value for reflection-optimizer system property.
+
+ Default value true.
+
+
+
+ The if the session-factory exists in hibernate-configuration;
+ Otherwise null.
+
+
+
+
+ Configuration parsed values for a listener XML node
+
+
+
+
+ Initializes a new instance of the class.
+
+ The class full name.
+ When is null or empty.
+
+
+
+ Initializes a new instance of the class.
+
+ The class full name.
+ The listener type.
+ When is null or empty.
+
+
+
+ The class full name.
+
+
+
+
+ The listener type.
+
+ Default value mean that the value is ignored.
+
+
+
+ Configuration parsed values for a mapping XML node
+
+
+ There are 3 possible combinations of mapping attributes
+ 1 - resource and assembly: NHibernate will read the mapping resource from the specified assembly
+ 2 - file only: NHibernate will read the mapping from the file.
+ 3 - assembly only: NHibernate will find all the resources ending in hbm.xml from the assembly.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Mapped file.
+ When is null or empty.
+
+
+
+ Initializes a new instance of the class.
+
+ The assembly name.
+ The mapped embedded resource.
+ When is null or empty.
+
+
+
+ Configuration parsed values for a session-factory XML node.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The session factory name. Null or empty string are allowed.
+
+
+
+ The session factory name.
+
+
+
+
+ Session factory propeties bag.
+
+
+
+
+ Session factory mapping configuration.
+
+
+
+
+ Session factory class-cache configurations.
+
+
+
+
+ Session factory collection-cache configurations.
+
+
+
+
+ Session factory event configurations.
+
+
+
+
+ Session factory listener configurations.
+
+
+
+
+ Responsible for checking that a resource name matches the default pattern of "*.hbm.xml". This is the
+ default filter for .
+
+
+
+
+ Responsible for determining whether an embedded resource should be parsed for HBM XML data while
+ iterating through an .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A base class for HBM schema classes that provides helper methods.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Responsible for converting a of HBM XML into an instance of
+ .
+
+
+
+
+ Responsible for building a list of objects from a range of acceptable
+ sources.
+
+
+
+
+ Calls the greedy constructor, passing it new instances of and
+ .
+
+
+
+ Adds any embedded resource streams which pass the .
+ An assembly containing embedded mapping documents.
+ A custom filter.
+
+
+ Adds any embedded resource streams which pass the default filter.
+ An assembly containing embedded mapping documents.
+
+
+
+ Responsible for converting a of HBM XML into an instance of
+ .
+
+ Uses an to deserialize HBM.
+
+
+
+ Converts a partial class name into a fully qualified one
+
+
+
+
+
+
+
+ Converts a partial class name into a fully one
+
+
+
+ The class FullName (without the assembly)
+
+ The FullName is equivalent to the default entity-name
+
+
+
+
+ Attempts to find a type by its full name. Throws a
+ using the provided in case of failure.
+
+ name of the class to find
+ Error message to use for
+ the in case of failure. Should contain
+ the {0} formatting placeholder.
+ A instance.
+
+ Thrown when there is an error loading the class.
+
+
+
+
+ Similar to , but handles short class names
+ by calling .
+
+
+
+
+
+
+
+
+ Called for all collections. parameter
+ was added in NH to allow for reflection related to generic types.
+
+
+
+
+ Called for arrays and primitive arrays
+
+
+
+
+ Called for Maps
+
+
+
+
+ Called for all collections
+
+
+
+
+ Extracts the names of classes mapped in a given file,
+ and the names of the classes they extend.
+
+
+
+
+ Returns a collection of containing
+ information about all classes in this stream.
+
+ A validated representing
+ a mapping file.
+
+
+
+ Holds information about mapped classes found in the hbm.xml files.
+
+
+
+
+ Allows the application to specify properties and mapping documents to be used when creating
+ a .
+
+
+
+ Usually an application will create a single , build a single instance
+ of , and then instantiate objects in threads
+ servicing client requests.
+
+
+ The is meant only as an initialization-time object.
+ is immutable and does not retain any association back to the
+
+
+
+
+ The XML Namespace for the nhibernate-mapping
+
+
+ Default name for hibernate configuration file.
+
+
+
+ Clear the internal state of the object.
+
+
+
+
+ Create a new Configuration object.
+
+
+
+
+ Get the mapping for a particular class
+
+
+
+ Get the mapping for a particular entity
+ An entity name.
+ the entity mapping information
+
+
+
+ Get the mapping for a particular collection role
+
+ a collection role
+
+
+
+
+ Read mappings from a particular XML file. This method is equivalent
+ to .
+
+
+
+
+
+
+ Read mappings from a particular XML file.
+
+ a path to a file
+ This configuration object.
+
+
+
+ Read mappings from a . This method is equivalent to
+ .
+
+ an XML string
+ The name to use in error reporting. May be .
+ This configuration object.
+
+
+
+ Read mappings from a .
+
+ an XML string
+ This configuration object.
+
+
+
+ Read mappings from a URL.
+
+ a URL
+ This configuration object.
+
+
+
+ Read mappings from a URL.
+
+ a to read the mappings from.
+ This configuration object.
+
+
+
+ Read mappings from an .
+
+ A loaded that contains the mappings.
+ The name of the document, for error reporting purposes.
+ This configuration object.
+
+
+
+ Takes the validated XmlDocument and has the Binder do its work of
+ creating Mapping objects from the Mapping Xml.
+
+ The NamedXmlDocument that contains the validated mapping XML file.
+
+
+
+ Create a new to add classes and collection
+ mappings to.
+
+
+
+
+ Read mappings from a .
+
+ The stream containing XML
+ This Configuration object.
+
+ The passed in through the parameter
+ is not guaranteed to be cleaned up by this method. It is the caller's responsiblity to
+ ensure that is properly handled when this method
+ completes.
+
+
+
+
+ Read mappings from a .
+
+ The stream containing XML
+ The name of the stream to use in error reporting. May be .
+ This Configuration object.
+
+ The passed in through the parameter
+ is not guaranteed to be cleaned up by this method. It is the caller's responsiblity to
+ ensure that is properly handled when this method
+ completes.
+
+
+
+
+ Adds the mappings in the resource of the assembly.
+
+ The path to the resource file in the assembly.
+ The assembly that contains the resource file.
+ This configuration object.
+
+
+
+ Adds the mappings from ebedded resources of the assembly.
+
+ Paths to the resource files in the assembly.
+ The assembly that contains the resource files.
+ This configuration object.
+
+
+
+ Read a mapping from an embedded resource, using a convention.
+
+ The type to map.
+ This configuration object.
+
+ The convention is for class Foo.Bar.Foo to be mapped by
+ the resource named Foo.Bar.Foo.hbm.xml, embedded in
+ the class' assembly. If the mappings and classes are defined
+ in different assemblies or don't follow the naming convention,
+ this method cannot be used.
+
+
+
+
+ Adds all of the assembly's embedded resources whose names end with .hbm.xml.
+
+ The name of the assembly to load.
+ This configuration object.
+
+ The assembly must be loadable using . If this
+ condition is not satisfied, load the assembly manually and call
+ instead.
+
+
+
+
+ Adds all of the assembly's embedded resources whose names end with .hbm.xml.
+
+ The assembly.
+ This configuration object.
+
+
+
+ Read all mapping documents from a directory tree. Assume that any
+ file named *.hbm.xml is a mapping document.
+
+ a directory
+
+
+
+ Generate DDL for dropping tables
+
+
+
+
+
+ Generate DDL for creating tables
+
+
+
+
+
+ Call this to ensure the mappings are fully compiled/built. Usefull to ensure getting
+ access to all information in the metamodel when calling e.g. getClassMappings().
+
+
+
+
+ This method may be called many times!!
+
+
+
+
+ Instantiate a new , using the properties and mappings in this
+ configuration. The will be immutable, so changes made to the
+ configuration after building the will not affect it.
+
+ An instance.
+
+
+
+ Set the default assembly to use for the mappings added to the configuration
+ afterwards.
+
+ The default assembly name.
+ This configuration instance.
+
+ This setting can be overridden for a mapping file by setting default-assembly
+ attribute of <hibernate-mapping> element.
+
+
+
+
+ Set the default namespace to use for the mappings added to the configuration
+ afterwards.
+
+ The default namespace.
+ This configuration instance.
+
+ This setting can be overridden for a mapping file by setting default-namespace
+ attribute of <hibernate-mapping> element.
+
+
+
+
+ Sets the default interceptor for use by all sessions.
+
+ The default interceptor.
+ This configuration instance.
+
+
+
+ Specify a completely new set of properties
+
+
+
+
+ Adds an of configuration properties. The
+ Key is the name of the Property and the Value is the
+ value of the Property.
+
+ An of configuration properties.
+
+ This object.
+
+
+
+
+ Sets the value of the configuration property.
+
+ The name of the property.
+ The value of the property.
+
+ This configuration object.
+
+
+
+
+ Gets the value of the configuration property.
+
+ The name of the property.
+ The configured value of the property, or if the property was not specified.
+
+
+
+ Configure NHibernate using the <hibernate-configuration> section
+ from the application config file, if found, or the file hibernate.cfg.xml if the
+ <hibernate-configuration> section not include the session-factory configuration.
+
+ A configuration object initialized with the file.
+
+ To configure NHibernate explicitly using hibernate.cfg.xml, appling merge/override
+ of the application configuration file, use this code:
+
+ configuration.Configure("path/to/hibernate.cfg.xml");
+
+
+
+
+
+ Configure NHibernate using the file specified.
+
+ The location of the XML file to use to configure NHibernate.
+ A Configuration object initialized with the file.
+
+ Calling Configure(string) will override/merge the values set in app.config or web.config
+
+
+
+
+ Configure NHibernate using a resource contained in an Assembly.
+
+ The that contains the resource.
+ The name of the manifest resource being requested.
+ A Configuration object initialized from the manifest resource.
+
+ Calling Configure(Assembly, string) will overwrite the values set in app.config or web.config
+
+
+
+
+ Configure NHibernate using the specified XmlReader.
+
+ The that contains the Xml to configure NHibernate.
+ A Configuration object initialized with the file.
+
+ Calling Configure(XmlReader) will overwrite the values set in app.config or web.config
+
+
+
+
+ Set up a cache for an entity class
+
+
+
+
+ Set up a cache for a collection role
+
+
+
+
+ Create an object-oriented view of the configuration properties
+
+ A object initialized from the settings properties.
+
+
+
+ Set a custom naming strategy
+
+ the NamingStrategy to set
+
+
+
+
+ Load and validate the mappings in the against
+ the nhibernate-mapping-2.2 schema, without adding them to the configuration.
+
+
+ This method is made public to be usable from the unit tests. It is not intended
+ to be called by end users.
+
+ The XmlReader that contains the mapping.
+ The name of the document, for error reporting purposes.
+ NamedXmlDocument containing the validated XmlDocument built from the XmlReader.
+
+
+
+ Adds the Mappings in the after validating it
+ against the nhibernate-mapping-2.2 schema.
+
+ The XmlReader that contains the mapping.
+ This Configuration object.
+
+
+
+ Adds the Mappings in the after validating it
+ against the nhibernate-mapping-2.2 schema.
+
+ The XmlReader that contains the mapping.
+ The name of the document to use for error reporting. May be .
+ This Configuration object.
+
+
+
+ Set or clear listener for a given .
+
+ The .
+ The array of AssemblyQualifiedName of each listener for .
+
+ must implements the interface related with .
+ All listeners of the given will be cleared if the
+ is null or empty.
+
+
+ when an element of have an invalid value or cant be instantiated.
+
+
+
+
+ Set or clear listener for a given .
+
+ The .
+ The listener for or null to clear.
+ must implements the interface related with .
+
+
+
+
+ Set or clear listeners for a given .
+
+ The .
+ The listener for or null to clear.
+ Listeners of must implements one of the interface of event listenesr.
+
+
+
+
+ Generate DDL for altering tables
+
+
+
+
+
+ The class mappings
+
+
+
+
+ The collection mappings
+
+
+
+
+ The table mappings
+
+
+
+
+ The named queries
+
+
+
+
+ Retrieve the user-supplied delegate to handle non-existent entity scenarios.
+
+
+ Specify a user-supplied delegate to be used to handle scenarios where an entity could not be
+ located by specified id. This is mainly intended for EJB3 implementations to be able to
+ control how proxy initialization errors should be handled...
+
+
+
+
+ Gets or sets the to use.
+
+ The to use.
+
+
+
+ Gets or sets the that contains the configuration
+ properties and their values.
+
+
+ The that contains the configuration
+ properties and their values.
+
+
+
+
+ Get the query language imports (entityName/className -> AssemblyQualifiedName)
+
+
+
+
+ The named SQL queries
+
+
+
+
+ Naming strategy for tables and columns
+
+
+
+
+ Defines operations common to "compiled" mappings (ie. SessionFactory) and
+ "uncompiled" mappings (ie Configuration that are used by implementors of IType
+
+
+
+
+ Summary description for ConfigurationSectionHandler.
+
+
+
+
+ The default
+
+ See for a better alternative
+
+
+
+ A set of rules for determining the physical column and table names given the information in the mapping
+ document. May be used to implement project-scoped naming standards for database objects.
+
+
+
+
+ Return a table name for an entity class
+
+ the fully-qualified class name
+ a table name
+
+
+
+ Return a column name for a property path expression
+
+ a property path
+ a column name
+
+
+
+ Alter the table name given in the mapping document
+
+ a table name
+ a table name
+
+
+
+ Alter the column name given in the mapping document
+
+ a column name
+ a column name
+
+
+
+ Return a table name for a collection
+
+ the fully-qualified name of the owning entity class
+ a property path
+ a table name
+
+
+
+ Return the logical column name used to refer to a column in the metadata
+ (like index, unique constraints etc)
+ A full bijection is required between logicalNames and physical ones
+ logicalName have to be case insersitively unique for a given table
+
+ given column name if any
+ property name of this column
+
+
+
+ The singleton instance
+
+
+
+
+ Return the unqualified class name
+
+
+
+
+
+
+ Return the unqualified property name
+
+
+
+
+
+
+ Return the argument
+
+
+
+
+
+
+ Return the argument
+
+
+
+
+
+
+ Return the unqualified property name
+
+
+
+
+
+
+
+ Provides access to configuration information.
+
+
+ NHibernate has two property scopes:
+
+
+ Factory-level properties may be passed to the when it is
+ instantiated. Each instance might have different property values. If no properties are
+ specified, the factory gets them from Environment
+
+
+ System-level properties are shared by all factory instances and are always determined
+ by the properties
+
+
+ In NHibernate, <hibernate-configuration> section in the application configuration file
+ corresponds to Java system-level properties; <session-factory>
+ section is the session-factory-level configuration.
+
+ It is possible to use the application configuration file (App.config) together with the NHibernate
+ configuration file (hibernate.cfg.xml) at the same time.
+ Properties in hibernate.cfg.xml override/merge properties in application configuration file where same
+ property is found. For others configuration a merge is applied.
+
+
+
+
+ Used to find the .Net 2.0 named connection string
+
+
+
+ A default database schema (owner) name to use for unqualified tablenames
+
+
+ A default database catalog name to use for unqualified tablenames
+
+
+ The EntityMode in which set the Session opened from the SessionFactory.
+
+
+ Enable formatting of SQL logged to the console
+
+
+ Should named queries be checked during startup (the default is enabled).
+ Mainly intended for test environments.
+
+
+ Enable statistics collection
+
+
+
+ Issue warnings to user when any obsolete property names are used.
+
+
+
+
+
+
+ NHibernate version (informational).
+
+
+
+
+ Gets a copy of the configuration found in <hibernate-configuration> section
+ of app.config/web.config.
+
+
+ This is the replacement for hibernate.properties
+
+
+
+
+ The bytecode provider to use.
+
+
+ This property is read from the <nhibernate> section
+ of the application configuration file by default. Since it is not
+ always convenient to configure NHibernate through the application
+ configuration file, it is also possible to set the property value
+ manually. This should only be done before a configuration object
+ is created, otherwise the change may not take effect.
+
+
+
+
+ Whether to enable the use of reflection optimizer
+
+
+ This property is read from the <nhibernate> section
+ of the application configuration file by default. Since it is not
+ always convenient to configure NHibernate through the application
+ configuration file, it is also possible to set the property value
+ manually. This should only be done before a configuration object
+ is created, otherwise the change may not take effect.
+
+
+
+
+ Represents a mapping queued for delayed processing to await
+ processing of an extends entity upon which it depends.
+
+
+
+
+ An exception that occurs at configuration time, rather than runtime, as a result of
+ something screwy in the hibernate.cfg.xml.
+
+
+
+
+ An exception that usually occurs at configuration time, rather than runtime, as a result of
+ something screwy in the O-R mappings
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+
+
+ Initializes a new instance of the class.
+
+
+ The exception that is the cause of the current exception. If the innerException parameter
+ is not a null reference, the current exception is raised in a catch block that handles
+ the inner exception.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+ The exception that is the cause of the current exception. If the innerException parameter
+ is not a null reference, the current exception is raised in a catch block that handles
+ the inner exception.
+
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Default message is used.
+
+
+
+ Initializes a new instance of the class.
+
+
+ The exception that is the cause of the current exception. If the innerException parameter
+ is not a null reference, the current exception is raised in a catch block that handles
+ the inner exception.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+ The exception that is the cause of the current exception. If the innerException parameter
+ is not a null reference, the current exception is raised in a catch block that handles
+ the inner exception.
+
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Summary description for ImprovedNamingStrategy.
+
+
+
+
+ The singleton instance
+
+
+
+
+ Return the unqualified class name, mixed case converted to underscores
+
+
+
+
+
+
+ Return the full property path with underscore separators, mixed case converted to underscores
+
+
+
+
+
+
+ Convert mixed case to underscores
+
+
+
+
+
+
+ Convert mixed case to underscores
+
+
+
+
+
+
+ Return the full property path prefixed by the unqualified class name, with underscore separators, mixed case converted to underscores
+
+
+
+
+
+
+
+ A collection of mappings from classes and collections to relational database tables.
+
+ Represents a single <hibernate-mapping> element.
+
+
+
+ Binding table between the logical column name and the name out of the naming strategy
+ for each table.
+ According that when the column name is not set, the property name is considered as such
+ This means that while theoretically possible through the naming strategy contract, it is
+ forbidden to have 2 real columns having the same logical name
+
+
+
+
+ Binding between logical table name and physical one (ie after the naming strategy has been applied)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Adds an import to allow for the full class name Namespace.Entity (AssemblyQualifiedName)
+ to be referenced as Entity or some other name in HQL.
+
+ The name of the type that is being renamed.
+ The new name to use in HQL for the type.
+ Thrown when the rename already identifies another type.
+
+
+
+
+
+
+
+
+ The default namespace for persistent classes
+
+
+
+
+ The default assembly for persistent classes
+
+
+
+
+
+
+
+
+
+
+ Gets or sets a boolean indicating if the Fully Qualified Type name should
+ automatically have an import added as the class name.
+
+ if the class name should be used as an import.
+
+ Auto-import is used to shorten the string used to refer to types to just their
+ unqualified name. So if the type MyAssembly.MyNamespace.MyClass, MyAssembly has
+ auto-import="false" then all use of it in HQL would need to be the fully qualified
+ version MyAssembly.MyNamespace.MyClass. If auto-import="true", the type could
+ be referred to in HQL as just MyClass.
+
+
+
+
+ Queues mapping files according to their dependency order.
+
+
+
+
+ Adds the specified document to the queue.
+
+
+
+
+ Gets a that can now be processed (i.e.
+ that doesn't depend on classes not yet processed).
+
+
+
+
+
+ Checks that no unprocessed documents remain in the queue.
+
+
+
+
+ Holds information about mapped classes found in an embedded resource
+
+
+
+
+ Gets the names of all entities outside this resource
+ needed by the classes in this resource.
+
+
+
+
+ Gets the names of all entities in this resource
+
+
+
+
+ Settings that affect the behavior of NHibernate at runtime.
+
+
+
+
+ Reads configuration properties and configures a instance.
+
+
+
+
+ Provides callbacks from the to the persistent object. Persistent classes may
+ implement this interface but they are not required to.
+
+
+
+ , , and are intended to be used
+ to cascade saves and deletions of dependent objects. This is an alternative to declaring cascaded
+ operations in the mapping file.
+
+
+ may be used to initialize transient properties of the object from its persistent
+ state. It may not be used to load dependent objects since the interface
+ may not be invoked from inside this method.
+
+
+ A further intended usage of , , and
+ is to store a reference to the for later use.
+
+
+ If , , or return
+ , the operation is silently vetoed. If a
+ is thrown, the operation is vetoed and the exception is passed back to the application.
+
+
+ Note that is called after an identifier is assigned to the object, except when
+ identity key generation is used.
+
+
+
+
+
+ Called when an entity is saved
+
+ The session
+ If we should veto the save
+
+
+
+ Called when an entity is passed to .
+
+ The session
+ A value indicating whether the operation
+ should be vetoed or allowed to proceed.
+
+ This method is not called every time the object's state is
+ persisted during a flush.
+
+
+
+
+ Called when an entity is deleted
+
+ The session
+ A value indicating whether the operation
+ should be vetoed or allowed to proceed.
+
+
+
+ Called after an entity is loaded.
+
+
+ It is illegal to access the from inside this method..
+ However, the object may keep a reference to the session for later use
+
+ The session
+ The identifier
+
+
+
+ Veto the action
+
+
+
+
+ Accept the action
+
+
+
+
+ Implemented by persistent classes with invariants that must be checked before inserting
+ into or updating the database
+
+
+
+
+ Validate the state of the object before persisting it. If a violation occurs,
+ throw a . This method must not change the state of the object
+ by side-effect.
+
+
+
+
+ Thrown from when an invariant was violated. Some applications
+ might subclass this exception in order to provide more information about the violation
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+
+
+ Initializes a new instance of the class.
+
+
+ The exception that is the cause of the current exception. If the innerException parameter
+ is not a null reference, the current exception is raised in a catch block that handles
+ the inner exception.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+ The exception that is the cause of the current exception. If the innerException parameter
+ is not a null reference, the current exception is raised in a catch block that handles
+ the inner exception.
+
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ An unordered, unkeyed collection that can contain the same element
+ multiple times. The .NET collections API, has no Bag.
+ Most developers seem to use to represent bag semantics,
+ so NHibernate follows this practice.
+
+ The type of the element the bag should hold.
+ The underlying collection used is an
+
+
+
+ An unordered, unkeyed collection that can contain the same element
+ multiple times. The .NET collections API has no Bag class.
+ Most developers seem to use s to represent bag semantics,
+ so NHibernate follows this practice.
+
+
+
+
+ Base class for implementing .
+
+
+
+
+
+ Persistent collections are treated as value objects by NHibernate.
+ ie. they have no independent existence beyond the object holding
+ a reference to them. Unlike instances of entity classes, they are
+ automatically deleted when unreferenced and automatically become
+ persistent when held by a persistent object. Collections can be
+ passed between different objects (change "roles") and this might
+ cause their elements to move from one database table to another.
+
+
+ NHibernate "wraps" a collection in an instance of
+ . This mechanism is designed
+ to support tracking of changes to the collection's persistent
+ state and lazy instantiation of collection elements. The downside
+ is that only certain abstract collection types are supported and
+ any extra semantics are lost.
+
+
+ Applications should never use classes in this namespace
+ directly, unless extending the "framework" here.
+
+
+ Changes to structure of the collection are recorded by the
+ collection calling back to the session. Changes to mutable
+ elements (ie. composite elements) are discovered by cloning their
+ state when the collection is initialized and comparing at flush
+ time.
+
+
+
+
+
+ Return the user-visible collection (or array) instance
+
+
+ By default, the NHibernate wrapper is an acceptable collection for
+ the end user code to work with because it is interface compatible.
+ An NHibernate PersistentList is an IList, an NHibernate PersistentMap is an IDictionary
+ and those are the types user code is expecting.
+
+
+
+ After flushing, re-init snapshot state.
+
+
+
+ Clears out any Queued Additions.
+
+
+ After a Flush() the database is in synch with the in-memory
+ contents of the Collection. Since everything is in synch remove
+ any Queued Additions.
+
+
+
+
+ Called just before reading any rows from the
+
+
+
+
+ Called after reading all rows from the
+
+
+ This should be overridden by sub collections that use temporary collections
+ to store values read from the db.
+
+
+ true if NOT has Queued operations
+
+
+
+
+ Called after initializing from cache
+
+
+ true if NOT has Queued operations
+
+
+
+
+ Disassociate this collection from the given session.
+
+
+ true if this was currently associated with the given session
+
+
+
+ Associate the collection with the given session.
+
+
+ false if the collection was already associated with the session
+
+
+
+ Read the state of the collection from a disassembled cached value.
+
+
+
+
+
+
+
+ Iterate all collection entries, during update of the database
+
+
+ An that gives access to all entries
+ in the collection.
+
+
+
+
+ Reads the row from the .
+
+
+ This method should be prepared to handle duplicate elements caused by fetching multiple collections,
+ or should be updated
+ to return for the collection type.
+
+ The IDataReader that contains the value of the Identifier
+ The persister for this Collection.
+ The descriptor providing result set column names
+ The owner of this Collection.
+ The object that was contained in the row.
+
+
+
+ Get the identifier of the given collection entry
+
+
+
+
+ Get the index of the given collection entry
+
+
+
+
+ Get the value of the given collection entry
+
+
+
+
+ Get the snapshot value of the given collection entry
+
+
+
+
+ Called before any elements are read into the collection,
+ allowing appropriate initializations to occur.
+
+ The for this persistent collection.
+ The anticipated size of the collection after initilization is complete.
+
+
+
+ Does the current state exactly match the snapshot?
+
+ The to compare the elements of the Collection.
+
+ if the wrapped collection is different than the snapshot
+ of the collection or if one of the elements in the collection is
+ dirty.
+
+
+
+ Is the snapshot empty?
+
+
+
+ Disassemble the collection, ready for the cache
+
+ The for this Collection.
+ The contents of the persistent collection in a cacheable form.
+
+
+
+ Gets a indicating if the rows for this collection
+ need to be recreated in the table.
+
+ The for this Collection.
+
+ by default since most collections can determine which rows need to be
+ individually updated/inserted/deleted. Currently only 's for many-to-many
+ need to be recreated.
+
+
+
+
+ Return a new snapshot of the current state of the collection
+
+
+
+
+ To be called internally by the session, forcing
+ immediate initalization.
+
+
+ This method is similar to , except that different exceptions are thrown.
+
+
+
+
+ Does an element exist at this entry in the collection?
+
+
+
+
+ Do we need to insert this element?
+
+
+
+
+ Do we need to update this element?
+
+
+
+
+ Get all the elements that need deleting
+
+
+
+
+ Is this the wrapper for the given underlying collection instance?
+
+ The collection to see if this IPersistentCollection is wrapping.
+
+ if the IPersistentCollection is wrappping the collection instance,
+ otherwise.
+
+
+
+ Get the "queued" orphans
+
+
+
+ Clear the dirty flag, after flushing changes
+ to the database.
+
+
+
+
+ Mark the collection as dirty
+
+
+
+
+ Called before inserting rows, to ensure that any surrogate keys are fully generated
+
+
+
+
+
+ Called after inserting a row, to fetch the natively generated id
+
+
+
+
+ Get all "orphaned" elements
+
+ The snapshot of the collection.
+ The persistent class whose objects
+ the collection is expected to contain.
+
+ An that contains all of the elements
+ that have been orphaned.
+
+
+
+
+ The owning entity.
+
+
+ Note that the owner is only set during the flush
+ cycle, and when a new collection wrapper is created
+ while loading an entity.
+
+
+
+ Get the current collection key value
+
+
+ Get the current role name
+
+
+ Is the collection unreferenced?
+
+
+
+ Is the collection dirty? Note that this is only
+ reliable during the flush cycle, after the
+ collection elements are dirty checked against
+ the snapshot.
+
+
+
+ Get the snapshot cached by the collection instance
+
+
+
+ Is the initialized collection empty?
+
+
+
+
+ Gets a indicating if the underlying collection is directly
+ accessible through code.
+
+
+ if we are not guaranteed that the NHibernate collection wrapper
+ is being used.
+
+
+ This is typically whenever a transient object that contains a collection is being
+ associated with an through or .
+ NHibernate can't guarantee that it will know about all operations that would cause NHibernate's collections
+ to call or .
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Not called by Hibernate, but used by non-NET serialization, eg. SOAP libraries.
+
+
+
+
+ Return the user-visible collection (or array) instance
+
+
+ By default, the NHibernate wrapper is an acceptable collection for
+ the end user code to work with because it is interface compatible.
+ An NHibernate PersistentList is an IList, an NHibernate PersistentMap is an IDictionary
+ and those are the types user code is expecting.
+
+
+
+
+ Called by any read-only method of the collection interface
+
+
+
+ Called by the Count property
+
+
+
+ Called by any writer method of the collection interface
+
+
+
+
+ Queue an addition, delete etc. if the persistent collection supports it
+
+
+
+
+ After reading all existing elements from the database,
+ add the queued elements to the underlying collection.
+
+
+
+
+ Clears out any Queued operation.
+
+
+ After flushing, clear any "queued" additions, since the
+ database state is now synchronized with the memory state.
+
+
+
+
+ Called just before reading any rows from the
+
+
+
+
+ Called after reading all rows from the
+
+
+ This should be overridden by sub collections that use temporary collections
+ to store values read from the db.
+
+
+
+
+ Initialize the collection, if possible, wrapping any exceptions
+ in a runtime exception
+
+ currently obsolete
+ if we cannot initialize
+
+
+
+ Mark the collection as initialized.
+
+
+
+
+ Disassociate this collection from the given session.
+
+
+ true if this was currently associated with the given session
+
+
+
+ Associate the collection with the given session.
+
+
+ false if the collection was already associated with the session
+
+
+
+ Gets a indicating if the rows for this collection
+ need to be recreated in the table.
+
+ The for this Collection.
+
+ by default since most collections can determine which rows need to be
+ individually updated/inserted/deleted. Currently only 's for many-to-many
+ need to be recreated.
+
+
+
+
+ To be called internally by the session, forcing
+ immediate initalization.
+
+
+ This method is similar to , except that different exceptions are thrown.
+
+
+
+
+ Gets the Snapshot from the current session the collection is in.
+
+
+
+
+ Called before inserting rows, to ensure that any surrogate keys are fully generated
+
+
+
+
+
+ Called after inserting a row, to fetch the natively generated id
+
+
+
+
+ Get all "orphaned" elements
+
+
+
+
+ Given a collection of entity instances that used to
+ belong to the collection, and a collection of instances
+ that currently belong, return a collection of orphans
+
+
+
+
+ Disassemble the collection, ready for the cache
+
+
+
+
+
+
+ Is this the wrapper for the given underlying collection instance?
+
+
+
+
+
+
+ Does an element exist at this entry in the collection?
+
+
+
+
+
+
+
+ Get all the elements that need deleting
+
+
+
+
+ Read the state of the collection from a disassembled cached value.
+
+
+
+
+
+
+
+ Do we need to update this element?
+
+
+
+
+
+
+
+
+ Reads the row from the .
+
+ The IDataReader that contains the value of the Identifier
+ The persister for this Collection.
+ The descriptor providing result set column names
+ The owner of this Collection.
+ The object that was contained in the row.
+
+
+
+ Do we need to insert this element?
+
+
+
+
+
+
+
+
+ Get the index of the given collection entry
+
+
+
+
+ Called before any elements are read into the collection,
+ allowing appropriate initializations to occur.
+
+ The underlying collection persister.
+ The anticipated size of the collection after initilization is complete.
+
+
+
+ Is the collection currently connected to an open session?
+
+
+
+
+ Is this collection in a state that would allow us to "queue" additions?
+
+
+
+ Is this collection in a state that would allow us to
+ "queue" puts? This is a special case, because of orphan
+ delete.
+
+
+
+ Is this collection in a state that would allow us to
+ "queue" clear? This is a special case, because of orphan
+ delete.
+
+
+
+ Is this the "inverse" end of a bidirectional association?
+
+
+
+ Is this the "inverse" end of a bidirectional association with
+ no orphan delete enabled?
+
+
+
+
+ Is this the "inverse" end of a bidirectional one-to-many, or
+ of a collection with no orphan delete?
+
+
+
+
+
+
+
+ Is the initialized collection empty?
+
+
+
+
+ Gets a indicating if the underlying collection is directly
+ accessible through code.
+
+
+ if we are not guaranteed that the NHibernate collection wrapper
+ is being used.
+
+
+ This is typically whenever a transient object that contains a collection is being
+ associated with an through or .
+ NHibernate can't guarantee that it will know about all operations that would cause NHibernate's collections
+ to call or .
+
+
+
+ Is this instance initialized?
+
+
+ Does this instance have any "queued" additions?
+
+
+
+
+
+
+ Counts the number of times that the occurs
+ in the .
+
+ The element to find in the list.
+ The to search.
+ The that can determine equality.
+ The entity mode.
+
+ The number of occurrences of the element in the list.
+
+
+
+
+ Initializes this PersistentBag from the cached values.
+
+ The CollectionPersister to use to reassemble the PersistentBag.
+ The disassembled PersistentBag.
+ The owner object.
+
+
+
+ Gets a indicating if this PersistentBag needs to be recreated
+ in the database.
+
+
+
+ if this is a one-to-many Bag, if this is not
+ a one-to-many Bag. Since a Bag is an unordered, unindexed collection
+ that permits duplicates it is not possible to determine what has changed in a
+ many-to-many so it is just recreated.
+
+
+
+
+ Implements "bag" semantics more efficiently than by adding
+ a synthetic identifier column to the table.
+
+
+
+ The identifier is unique for all rows in the table, allowing very efficient
+ updates and deletes. The value of the identifier is never exposed to the
+ application.
+
+
+ Identifier bags may not be used for a many-to-one association. Furthermore,
+ there is no reason to use inverse="true".
+
+
+
+
+
+ Implements "bag" semantics more efficiently than a regular
+ by adding a synthetic identifier column to the table.
+
+
+
+ The identifier is unique for all rows in the table, allowing very efficient
+ updates and deletes. The value of the identifier is never exposed to the
+ application.
+
+
+ PersistentIdentifierBags may not be used for a many-to-one association.
+ Furthermore, there is no reason to use inverse="true".
+
+
+
+
+
+ Initializes this Bag from the cached values.
+
+ The CollectionPersister to use to reassemble the PersistentIdentifierBag.
+ The disassembled PersistentIdentifierBag.
+ The owner object.
+
+
+
+ A persistent wrapper for an
+
+ The type of the element the list should hold.
+ The underlying collection used is a
+
+
+
+ A persistent wrapper for an
+
+
+ The underlying collection used in an .
+
+
+
+
+ Initializes an instance of the
+ in the .
+
+ The the list is in.
+
+
+
+ Initializes an instance of the
+ that wraps an existing in the .
+
+ The the list is in.
+ The to wrap.
+
+
+
+ Initializes this PersistentList from the cached values.
+
+ The CollectionPersister to use to reassemble the PersistentList.
+ The disassembled PersistentList.
+ The owner object.
+
+
+
+ A persistent wrapper for a . Underlying
+ collection is a
+
+ The type of the keys in the IDictionary.
+ The type of the elements in the IDictionary.
+
+
+
+ A persistent wrapper for a . Underlying collection
+ is a .
+
+
+
+
+ Construct an uninitialized PersistentMap.
+
+ The ISession the PersistentMap should be a part of.
+
+
+
+ Construct an initialized PersistentMap based off the values from the existing IDictionary.
+
+ The ISession the PersistentMap should be a part of.
+ The IDictionary that contains the initial values.
+
+
+
+ Initializes this PersistentMap from the cached values.
+
+ The CollectionPersister to use to reassemble the PersistentMap.
+ The disassembled PersistentMap.
+ The owner object.
+
+
+
+ .NET has no design equivalent for Java's Set so we are going to use the
+ Iesi.Collections library. This class is internal to NHibernate and shouldn't
+ be used by user code.
+
+
+ The code for the Iesi.Collections library was taken from the article
+ Add Support for "Set" Collections
+ to .NET that was written by JasonSmith.
+
+
+
+
+ .NET has no design equivalent for Java's Set so we are going to use the
+ Iesi.Collections library. This class is internal to NHibernate and shouldn't
+ be used by user code.
+
+
+ The code for the Iesi.Collections library was taken from the article
+ Add Support for "Set" Collections
+ to .NET that was written by JasonSmith.
+
+
+
+
+ The that NHibernate is wrapping.
+
+
+
+
+ A temporary list that holds the objects while the PersistentSet is being
+ populated from the database.
+
+
+ This is necessary to ensure that the object being added to the PersistentSet doesn't
+ have its' GetHashCode() and Equals() methods called during the load
+ process.
+
+
+
+
+ Constructor matching super.
+ Instantiates a lazy set (the underlying set is un-initialized).
+
+ The session to which this set will belong.
+
+
+
+ Instantiates a non-lazy set (the underlying set is constructed
+ from the incoming set reference).
+
+ The session to which this set will belong.
+ The underlying set data.
+
+
+
+ Initializes this PersistentSet from the cached values.
+
+ The CollectionPersister to use to reassemble the PersistentSet.
+ The disassembled PersistentSet.
+ The owner object.
+
+
+
+ Set up the temporary List that will be used in the EndRead()
+ to fully create the set.
+
+
+
+
+ Takes the contents stored in the temporary list created during BeginRead()
+ that was populated during ReadFrom() and write it to the underlying
+ PersistentSet.
+
+
+
+
+ A persistent wrapper for an array. lazy initialization is NOT supported
+
+ Use of Hibernate arrays is not really recommended.
+
+
+
+ A temporary list that holds the objects while the PersistentArrayHolder is being
+ populated from the database.
+
+
+
+
+ Returns the user-visible portion of the NHibernate PersistentArrayHolder.
+
+
+ The array that contains the data, not the NHibernate wrapper.
+
+
+
+
+ Before is called the PersistentArrayHolder needs to setup
+ a temporary list to hold the objects.
+
+
+
+
+ Takes the contents stored in the temporary list created during
+ that was populated during and write it to the underlying
+ array.
+
+
+
+
+ Initializes this array holder from the cached values.
+
+ The CollectionPersister to use to reassemble the Array.
+ The disassembled Array.
+ The owner object.
+
+
+
+ Gets or sets the array.
+
+ The array.
+
+
+
+ The base class for the ConnectionProvider.
+
+
+
+
+ A strategy for obtaining ADO.NET .
+
+
+ The IConnectionProvider interface is not intended to be exposed to the application.
+ Instead it is used internally by NHibernate to obtain .
+ Implementors should provide a public default constructor.
+
+
+
+
+ Initialize the connection provider from the given properties.
+
+ The connection provider settings
+
+
+
+ Dispose of a used
+
+ The to clean up.
+
+
+
+ Get an open .
+
+ An open .
+
+
+
+ Gets the this ConnectionProvider should use to
+ communicate with the .NET Data Provider
+
+
+ The to communicate with the .NET Data Provider.
+
+
+
+
+ Closes the .
+
+ The to clean up.
+
+
+
+ Configures the ConnectionProvider with the Driver and the ConnectionString.
+
+ An that contains the settings for this ConnectionProvider.
+
+ Thrown when a could not be found
+ in the settings parameter or the Driver Class could not be loaded.
+
+
+
+
+ Get the .NET 2.0 named connection string
+
+
+ Thrown when a was found
+ in the settings parameter but could not be found in the app.config
+
+
+
+
+ Configures the driver for the ConnectionProvider.
+
+ An that contains the settings for the Driver.
+
+ Thrown when the could not be
+ found in the settings parameter or there is a problem with creating
+ the .
+
+
+
+
+ Get an open .
+
+ An open .
+
+
+
+ A flag to indicate if Disose() has been called.
+
+
+
+
+ Finalizer that ensures the object is correctly disposed of.
+
+
+
+
+ Takes care of freeing the managed and unmanaged resources that
+ this class is responsible for.
+
+
+
+
+ Takes care of freeing the managed and unmanaged resources that
+ this class is responsible for.
+
+ Indicates if this ConnectionProvider is being Disposed of or Finalized.
+
+
+ If this ConnectionProvider is being Finalized (isDisposing==false) then make
+ sure not to call any methods that could potentially bring this
+ ConnectionProvider back to life.
+
+
+ If any subclasses manage resources that also need to be disposed of this method
+ should be overridden, but don't forget to call it in the override.
+
+
+
+
+
+ Gets the for the
+ to connect to the database.
+
+
+ The for the
+ to connect to the database.
+
+
+
+
+ Gets the that can create the object.
+
+
+ The that can create the .
+
+
+
+
+ Instanciates a connection provider given configuration properties.
+
+
+
+
+ A ConnectionProvider that uses an IDriver to create connections.
+
+
+
+
+ Closes and Disposes of the .
+
+ The to clean up.
+
+
+
+ Gets a new open through
+ the .
+
+
+ An Open .
+
+
+ If there is any problem creating or opening the .
+
+
+
+
+ An implementation of the IConnectionProvider that simply throws an exception when
+ a connection is requested.
+
+
+ This implementation indicates that the user is expected to supply an ADO.NET connection
+
+
+
+
+ Throws an if this method is called
+ because the user is responsible for closing s.
+
+ The to clean up.
+
+ Thrown when this method is called. User is responsible for closing
+ s.
+
+
+
+
+ Throws an if this method is called
+ because the user is responsible for creating s.
+
+
+ No value is returned because an is thrown.
+
+
+ Thrown when this method is called. User is responsible for creating
+ s.
+
+
+
+
+ Configures the ConnectionProvider with only the Driver class.
+
+
+
+ All other settings of the Connection are the responsibility of the User since they configured
+ NHibernate to use a Connection supplied by the User.
+
+
+
+
+ Provides a current session
+ for each .
+ Not recommended for .NET 2.0 web applications.
+
+
+
+
+ Extends the contract defined by
+ by providing methods to bind and unbind sessions to the current context.
+
+
+ The notion of a contextual session is managed by some external entity
+ (generally some form of interceptor like the HttpModule).
+ This external manager is responsible for scoping these contextual sessions
+ appropriately binding/unbinding them here for exposure to the application
+ through calls.
+
+
+
+
+ Defines the contract for implementations which know how to
+ scope the notion of a current session.
+
+
+
+ Implementations should adhere to the following:
+
+ contain a constructor accepting a single argument of type
+
+ should be thread safe
+ should be fully serializable
+
+
+
+ Implementors should be aware that they are also fully responsible for
+ cleanup of any generated current-sessions.
+
+
+ Note that there will be exactly one instance of the configured
+ ICurrentSessionContext implementation per .
+
+
+ It is recommended to inherit from the class
+ whenever possible as it simplifies the implementation and provides
+ single entry point with session binding support.
+
+
+
+
+
+ Retrieve the current session according to the scoping defined
+ by this implementation.
+
+ The current session.
+ Typically indicates an issue
+ locating or creating the current session.
+
+
+
+ Retrieve the current session according to the scoping defined
+ by this implementation.
+
+ The current session.
+ Indicates an issue
+ locating the current session.
+
+
+
+ Binds the specified session to the current context.
+
+
+
+
+ Returns whether there is a session bound to the current context.
+
+
+
+
+ Unbinds and returns the current session.
+
+
+
+ Gets or sets the currently bound session.
+
+
+
+ Get the dicitonary mapping session factory to its current session.
+
+
+
+
+ Set the map mapping session factory to its current session.
+
+
+
+
+ Gets or sets the currently bound session.
+
+
+
+
+ The key is the session factory and the value is the bound session.
+
+
+
+
+ The key is the session factory and the value is the bound session.
+
+
+
+
+ Provides a current session
+ for each .
+ Works only with Web Applications.
+
+
+
+
+ A impl which scopes the notion of current
+ session by the current thread of execution. Threads do not give us a
+ nice hook to perform any type of cleanup making
+ it questionable for this impl to actually generate Session instances. In
+ the interest of usability, it was decided to have this default impl
+ actually generate a session upon first request and then clean it up
+ after the associated with that session
+ is committed/rolled-back. In order for ensuring that happens, the sessions
+ generated here are unusable until after {@link Session#beginTransaction()}
+ has been called. If Close() is called on a session managed by
+ this class, it will be automatically unbound.
+
+ Additionally, the static and methods are
+ provided to allow application code to explicitly control opening and
+ closing of these sessions. This, with some from of interception,
+ is the preferred approach. It also allows easy framework integration
+ and one possible approach for implementing long-sessions.
+
+
+
+
+
+ Unassociate a previously bound session from the current thread of execution.
+
+
+
+
+
+
+ Provides a current session
+ for each thread using the [].
+ To avoid if there are two session factories in the same thread.
+
+
+
+ Gets or sets the currently bound session.
+
+
+
+ Provides a current session
+ for each . Works only with web applications.
+
+
+
+
+ Base class for implementations.
+
+
+
+
+ An object-oriented representation of a query criterion that may be used as a constraint
+ in a query.
+
+
+ Built-in criterion types are provided by the Expression factory class.
+ This interface might be implemented by application classes but, more commonly, application
+ criterion types would extend AbstractCriterion.
+
+
+
+
+ Render a SqlString fragment for the expression.
+
+ A SqlString that contains a valid Sql fragment.
+
+
+
+ Return typed values for all parameters in the rendered SQL fragment
+
+ An array of TypedValues for the Expression.
+
+
+
+ Return all projections used in this criterion
+
+ An array of IProjection used by the Expression.
+
+
+
+ Gets a string representation of the .
+
+
+ A String that shows the contents of the .
+
+
+ This is not a well formed Sql fragment. It is useful for logging what the
+ looks like.
+
+
+
+
+ Render a SqlString for the expression.
+
+ A SqlString that contains a valid Sql fragment.
+
+
+
+ Return typed values for all parameters in the rendered SQL fragment
+
+ An array of TypedValues for the Expression.
+
+
+
+ Return all projections used in this criterion
+
+ An array of IProjection used by the Expression.
+
+
+
+ See here for details:
+ http://steve.emxsoftware.com/NET/Overloading+the++and++operators
+
+
+
+
+ See here for details:
+ http://steve.emxsoftware.com/NET/Overloading+the++and++operators
+
+
+
+
+ See here for details:
+ http://steve.emxsoftware.com/NET/Overloading+the++and++operators
+
+
+
+
+ See here for details:
+ http://steve.emxsoftware.com/NET/Overloading+the++and++operators
+
+
+
+
+ An Aggregation
+
+
+
+
+ A single-column projection that may be aliased
+
+
+
+
+ Render the SQL Fragment.
+
+ The criteria.
+ The position.
+ The criteria query.
+ The enabled filters.
+
+
+
+
+ Render the SQL Fragment to be used in the Group By Clause.
+
+ The criteria.
+ The criteria query.
+ The enabled filters.
+
+
+
+
+ Return types for a particular user-visible alias
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Get the SQL select clause column aliases for a particular user-visible alias
+
+
+
+
+
+
+ Get the SQL select clause column aliases for a particular user-visible alias
+
+
+
+
+
+
+
+ Gets the typed values for parameters in this projection
+
+ The criteria.
+ The criteria query.
+
+
+
+
+ Get the user-visible aliases for this projection (ie. the ones that will be passed to the ResultTransformer)
+
+
+
+
+ Does this projection specify grouping attributes?
+
+
+
+
+ Does this projection specify aggregate attributes?
+
+
+
+
+ Gets the typed values for parameters in this projection
+
+ The criteria.
+ The criteria query.
+
+
+
+
+ Gets the typed values for parameters in this projection
+
+ The criteria.
+ The criteria query.
+
+
+
+
+ An that combines two s
+ with an and between them.
+
+
+
+
+ An that combines two s
+ with a operator (either "and" or "or") between them.
+
+
+
+
+ Initialize a new instance of the class that
+ combines two other s.
+
+ The to use in the Left Hand Side.
+ The to use in the Right Hand Side.
+
+
+
+ Combines the for the Left Hand Side and the
+ Right Hand Side of the Expression into one array.
+
+ An array of s.
+
+
+
+ Converts the LogicalExpression to a .
+
+ A well formed SqlString for the Where clause.
+ The SqlString will be enclosed by ( and ).
+
+
+
+ Gets a string representation of the LogicalExpression.
+
+
+ The String contains the LeftHandSide.ToString() and the RightHandSide.ToString()
+ joined by the Op.
+
+
+ This is not a well formed Sql fragment. It is useful for logging what Expressions
+ are being combined.
+
+
+
+
+ Gets the that will be on the Left Hand Side of the Op.
+
+
+
+
+ Gets the that will be on the Right Hand Side of the Op.
+
+
+
+
+ Get the Sql operator to put between the two s.
+
+
+
+
+ Initializes a new instance of the class
+ that combines two .
+
+ The to use as the left hand side.
+ The to use as the right hand side.
+
+
+
+ Get the Sql operator to put between the two s.
+
+ The string "and"
+
+
+
+ An that represents a "between" constraint.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The _projection.
+ The _lo.
+ The _hi.
+
+
+
+ Initialize a new instance of the class for
+ the named Property.
+
+ The name of the Property of the Class.
+ The low value for the BetweenExpression.
+ The high value for the BetweenExpression.
+
+
+
+
+
+
+ Casting a value from one type to another, at the database
+ level
+
+
+
+
+ An that Junctions together multiple
+ s with an and
+
+
+
+
+ A sequence of logical s combined by some associative
+ logical operator.
+
+
+
+
+ Adds an to the list of s
+ to junction together.
+
+ The to add.
+
+ This instance.
+
+
+
+
+ Get the Sql operator to put between multiple s.
+
+
+
+
+ The corresponding to an instance with no added
+ subcriteria.
+
+
+
+
+ Get the Sql operator to put between multiple s.
+
+ The string " and "
+
+
+
+ This is useful if we want to send a value to the database
+
+
+
+
+ A Count
+
+
+
+ The alias that refers to the "root" entity of the criteria query.
+
+
+ Each row of results is a from alias to entity instance
+
+
+ Each row of results is an instance of the root entity
+
+
+ Each row of results is a distinct instance of the root entity
+
+
+ This result transformer is selected implicitly by calling
+
+
+ Specifies joining to an entity based on an inner join.
+
+
+ Specifies joining to an entity based on a full join.
+
+
+ Specifies joining to an entity based on a left outer join.
+
+
+
+ Some applications need to create criteria queries in "detached
+ mode", where the Hibernate session is not available. This class
+ may be instantiated anywhere, and then a ICriteria
+ may be obtained by passing a session to
+ GetExecutableCriteria(). All methods have the
+ same semantics and behavior as the corresponding methods of the
+ ICriteria interface.
+
+
+
+
+ Get an executable instance of Criteria,
+ to actually run the query.
+
+
+
+ Get an executable instance of Criteria,
+ to actually run the query.
+
+
+
+ Gets the root entity type if available, throws otherwise
+
+
+ This is an NHibernate specific method, used by several dependent
+ frameworks for advance integration with NHibernate.
+
+
+
+
+ Clear all orders from criteria.
+
+
+
+
+ An that Junctions together multiple
+ s with an or
+
+
+
+
+ Get the Sql operator to put between multiple s.
+
+ The string " or "
+
+
+
+ Gets the typed values for parameters in this projection
+
+ The criteria.
+ The criteria query.
+
+
+
+
+ An that represents an "equal" constraint
+ between two properties.
+
+
+
+
+ Superclass for an that represents a
+ constraint between two properties (with SQL binary operators).
+
+
+
+
+ Initializes a new instance of the class.
+
+ The projection.
+ Name of the RHS property.
+
+
+
+ Initializes a new instance of the class.
+
+ The LHS projection.
+ The RHS projection.
+
+
+
+ Initializes a new instance of the class.
+
+ Name of the LHS property.
+ Name of the RHS property.
+
+
+
+ Initializes a new instance of the class.
+
+ Name of the LHS property.
+ The RHS projection.
+
+
+
+
+
+
+ Get the Sql operator to use for the property expression.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Name of the LHS property.
+ The RHS projection.
+
+
+
+ Initializes a new instance of the class.
+
+ The LHS projection.
+ The RHS projection.
+
+
+
+ Initializes a new instance of the class.
+
+ The projection.
+ Name of the RHS property.
+
+
+
+ Initializes a new instance of the class
+ that compares two mapped properties using an "equal" constraint.
+
+ The name of the Property to use as the left hand side.
+ The name of the Property to use as the right hand side.
+
+
+
+ Get the Sql operator to use for the .
+
+ The string " = "
+
+
+
+ Support for Query By Example.
+
+
+
+ List results = session.CreateCriteria(typeof(Parent))
+ .Add( Example.Create(parent).IgnoreCase() )
+ .CreateCriteria("child")
+ .Add( Example.Create( parent.Child ) )
+ .List();
+
+
+
+ "Examples" may be mixed and matched with "Expressions" in the same
+
+
+
+
+ Set escape character for "like" clause
+
+
+
+ Set the for this .
+
+ The to determine which properties to include.
+ This instance.
+
+ This should be used when a custom has
+ been implemented. Otherwise use the methods
+ or to set the
+ to the s built into NHibernate.
+
+
+
+
+ Set the for this
+ to exclude zero-valued properties.
+
+
+
+
+ Set the for this
+ to exclude no properties.
+
+
+
+
+ Use the "like" operator for all string-valued properties with
+ the specified .
+
+
+ The to convert the string to the pattern
+ for the like comparison.
+
+
+
+
+ Use the "like" operator for all string-valued properties.
+
+
+ The default is MatchMode.Exact.
+
+
+
+
+ Exclude a particular named property
+
+ The name of the property to exclude.
+
+
+
+ Create a new instance, which includes all non-null properties
+ by default
+
+
+ A new instance of .
+
+
+
+ Initialize a new instance of the class for a particular
+ entity.
+
+ The that the Example is being built from.
+ The the Example should use.
+
+
+
+ Determines if the property should be included in the Query.
+
+ The value of the property.
+ The name of the property.
+ The of the property.
+
+ if the Property should be included, if
+ the Property should not be a part of the Query.
+
+
+
+
+ Adds a based on the value
+ and type parameters to the in the
+ list parameter.
+
+ The value of the Property.
+ The of the Property.
+ The to add the to.
+
+ This method will add objects to the list parameter.
+
+
+
+
+ A strategy for choosing property values for inclusion in the query criteria
+
+
+
+
+ Determine if the Property should be included.
+
+ The value of the property that is being checked for inclusion.
+ The name of the property that is being checked for inclusion.
+ The of the property.
+
+ if the Property should be included in the Query,
+ otherwise.
+
+
+
+
+ Implementation of that includes all
+ properties regardless of value.
+
+
+
+
+ Implementation of that includes the
+ properties that are not and do not have an
+ returned by propertyValue.ToString().
+
+
+ This selector is not present in H2.1. It may be useful if nullable types
+ are used for some properties.
+
+
+
+
+ This class is semi-deprecated. Use .
+
+
+
+
+
+ The namespace may be used by applications as a framework for building
+ new kinds of .
+ However, it is intended that most applications will
+ simply use the built-in criterion types via the static factory methods of this class.
+
+
+
+
+
+
+ Apply an "equal" constraint to the identifier property
+
+
+ ICriterion
+
+
+
+ Apply an "equal" constraint from the projection to the identifier property
+
+ The projection.
+ ICriterion
+
+
+
+ Apply an "equal" constraint to the named property
+
+ The name of the Property in the class.
+ The value for the Property.
+
+
+
+ Apply an "equal" constraint to the projection
+
+ The projection.
+ The value for the Property.
+
+
+
+ Apply a "like" constraint to the named property
+
+ The name of the Property in the class.
+ The value for the Property.
+ A .
+
+
+
+ Apply a "like" constraint to the project
+
+ The projection.
+ The value for the Property.
+ A .
+
+
+
+ Apply a "like" constraint to the project
+
+ The projection.
+ The value for the Property.
+ The match mode.
+ A .
+
+
+
+ A case-insensitive "like", similar to Postgres "ilike" operator
+
+ The name of the Property in the class.
+ The value for the Property.
+ An .
+
+
+
+ A case-insensitive "like", similar to Postgres "ilike" operator
+
+ The projection.
+ The value for the Property.
+
+ An .
+
+
+
+
+ Apply a "greater than" constraint to the named property
+
+ The name of the Property in the class.
+ The value for the Property.
+
+
+
+ Apply a "greater than" constraint to the projection
+
+ The projection.
+ The value for the Property.
+
+
+
+ Apply a "less than" constraint to the named property
+
+ The name of the Property in the class.
+ The value for the Property.
+
+
+
+ Apply a "less than" constraint to the projection
+
+ The projection.
+ The value for the Property.
+
+
+
+ Apply a "less than or equal" constraint to the named property
+
+ The name of the Property in the class.
+ The value for the Property.
+
+
+
+ Apply a "less than or equal" constraint to the projection
+
+ The projection.
+ The value for the Property.
+
+
+
+ Apply a "greater than or equal" constraint to the named property
+
+ The name of the Property in the class.
+ The value for the Property.
+
+
+
+ Apply a "greater than or equal" constraint to the projection
+
+ The projection.
+ The value for the Property.
+
+
+
+ Apply a "between" constraint to the named property
+
+ The name of the Property in the class.
+ The low value for the Property.
+ The high value for the Property.
+ A .
+
+
+
+ Apply a "between" constraint to the projection
+
+ The projection.
+ The low value for the Property.
+ The high value for the Property.
+ A .
+
+
+
+ Apply an "in" constraint to the named property
+
+ The name of the Property in the class.
+ An array of values.
+ An .
+
+
+
+ Apply an "in" constraint to the projection
+
+ The projection.
+ An array of values.
+ An .
+
+
+
+ Apply an "in" constraint to the projection
+
+ The projection.
+ An ICollection of values.
+ An .
+
+
+
+ Apply an "in" constraint to the named property
+
+ The name of the Property in the class.
+ An ICollection of values.
+ An .
+
+
+
+ Apply an "in" constraint to the named property. This is the generic equivalent
+ of , renamed to avoid ambiguity.
+
+ The name of the Property in the class.
+ An
+ of values.
+ An .
+
+
+
+ Apply an "in" constraint to the projection. This is the generic equivalent
+ of , renamed to avoid ambiguity.
+
+
+ The projection.
+ An
+ of values.
+ An .
+
+
+
+ Apply an "is null" constraint to the named property
+
+ The name of the Property in the class.
+ A .
+
+
+
+ Apply an "is null" constraint to the projection
+
+ The projection.
+ A .
+
+
+
+ Apply an "equal" constraint to two properties
+
+ The lhs Property Name
+ The rhs Property Name
+ A .
+
+
+
+ Apply an "equal" constraint to projection and property
+
+ The projection.
+ The rhs Property Name
+ A .
+
+
+
+ Apply an "equal" constraint to lshProjection and rshProjection
+
+ The LHS projection.
+ The RSH projection.
+ A .
+
+
+
+ Apply an "equal" constraint to the property and rshProjection
+
+ Name of the property.
+ The RSH projection.
+ A .
+
+
+
+ Apply an "not equal" constraint to two properties
+
+ The lhs Property Name
+ The rhs Property Name
+ A .
+
+
+
+ Apply an "not equal" constraint to projection and property
+
+ The projection.
+ The rhs Property Name
+ A .
+
+
+
+ Apply an "not equal" constraint to the projections
+
+ The LHS projection.
+ The RHS projection.
+ A .
+
+
+
+ Apply an "not equal" constraint to the projections
+
+ Name of the property.
+ The RHS projection.
+ A .
+
+
+
+ Apply a "greater than" constraint to two properties
+
+ The lhs Property Name
+ The rhs Property Name
+ A .
+
+
+
+ Apply a "greater than" constraint to two properties
+
+ The projection.
+ The rhs Property Name
+ A .
+
+
+
+ Apply a "greater than" constraint to two properties
+
+ Name of the property.
+ The projection.
+ A .
+
+
+
+ Apply a "greater than" constraint to two properties
+
+ The LHS projection.
+ The RHS projection.
+ A .
+
+
+
+ Apply a "greater than or equal" constraint to two properties
+
+ The lhs Property Name
+ The rhs Property Name
+ A .
+
+
+
+ Apply a "greater than or equal" constraint to two properties
+
+ The LHS projection.
+ The RHS projection.
+ A .
+
+
+
+ Apply a "greater than or equal" constraint to two properties
+
+ The projection.
+ The rhs Property Name
+ A .
+
+
+
+ Apply a "greater than or equal" constraint to two properties
+
+ The lhs Property Name
+ The projection.
+ A .
+
+
+
+ Apply a "less than" constraint to two properties
+
+ The lhs Property Name
+ The rhs Property Name
+ A .
+
+
+
+ Apply a "less than" constraint to two properties
+
+ The projection.
+ The rhs Property Name
+ A .
+
+
+
+ Apply a "less than" constraint to two properties
+
+ The lhs Property Name
+ The projection.
+ A .
+
+
+
+ Apply a "less than" constraint to two properties
+
+ The LHS projection.
+ The RHS projection.
+ A .
+
+
+
+ Apply a "less than or equal" constraint to two properties
+
+ The lhs Property Name
+ The rhs Property Name
+ A .
+
+
+
+ Apply a "less than or equal" constraint to two properties
+
+ The projection.
+ The rhs Property Name
+ A .
+
+
+
+ Apply a "less than or equal" constraint to two properties
+
+ The lhs Property Name
+ The projection.
+ A .
+
+
+
+ Apply a "less than or equal" constraint to two properties
+
+ The LHS projection.
+ The RHS projection.
+ A .
+
+
+
+ Apply an "is not null" constraint to the named property
+
+ The name of the Property in the class.
+ A .
+
+
+
+ Apply an "is not null" constraint to the named property
+
+ The projection.
+ A .
+
+
+
+ Apply an "is not empty" constraint to the named property
+
+ The name of the Property in the class.
+ A .
+
+
+
+ Apply an "is not empty" constraint to the named property
+
+ The name of the Property in the class.
+ A .
+
+
+
+ Return the conjunction of two expressions
+
+ The Expression to use as the Left Hand Side.
+ The Expression to use as the Right Hand Side.
+ An .
+
+
+
+ Return the disjuction of two expressions
+
+ The Expression to use as the Left Hand Side.
+ The Expression to use as the Right Hand Side.
+ An .
+
+
+
+ Return the negation of an expression
+
+ The Expression to negate.
+ A .
+
+
+
+ Group expressions together in a single conjunction (A and B and C...)
+
+
+
+
+ Group expressions together in a single disjunction (A or B or C...)
+
+
+
+
+ Apply an "equals" constraint to each property in the key set of a IDictionary
+
+ a dictionary from property names to values
+
+
+
+
+ Apply a constraint expressed in SQL, with the given SQL parameters
+
+
+
+
+
+
+
+
+ Apply a constraint expressed in SQL, with the given SQL parameter
+
+
+
+
+
+
+
+
+ Apply a constraint expressed in SQL, with the given SQL parameter
+
+
+
+
+ Apply a constraint expressed in SQL
+
+
+
+
+
+
+ Apply a constraint expressed in SQL
+
+
+
+
+
+
+ An that represents an "greater than or equal" constraint
+ between two properties.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Name of the LHS property.
+ The RHS projection.
+
+
+
+ Initializes a new instance of the class.
+
+ The LHS projection.
+ The RHS projection.
+
+
+
+ Initializes a new instance of the class.
+
+ The projection.
+ Name of the RHS property.
+
+
+
+ Initializes a new instance of the class
+ that compares two mapped properties using an "greater than or equal" constraint.
+
+ The name of the Property to use as the left hand side.
+ The name of the Property to use as the right hand side.
+
+
+
+ Get the Sql operator to use for the .
+
+ The string " < "
+
+
+
+ Gets the typed values for parameters in this projection
+
+ The criteria.
+ The criteria query.
+
+
+
+
+ An that represents an "greater than" constraint
+ between two properties.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Name of the LHS property.
+ The RHS projection.
+
+
+
+ Initializes a new instance of the class.
+
+ The LHS projection.
+ The RHS projection.
+
+
+
+ Initializes a new instance of the class.
+
+ The projection.
+ Name of the RHS property.
+
+
+
+ Initializes a new instance of the class
+ that compares two mapped properties using an "greater than" constraint.
+
+ The name of the Property to use as the left hand side.
+ The name of the Property to use as the right hand side.
+
+
+
+ Get the Sql operator to use for the .
+
+ The string " < "
+
+
+
+ An instance of is passed to criterion,
+ order and projection instances when actually compiling and
+ executing the query. This interface is not used by application
+ code.
+
+
+
+ Get the names of the columns mapped by a property path, ignoring projection aliases
+
+
+ Get the type of a property path, ignoring projection aliases
+
+
+ Get the names of the columns mapped by a property path
+
+
+ Get the type of a property path
+
+
+ Get the a typed value for the given property value.
+
+
+ Get the entity name of an entity
+
+
+
+ Get the entity name of an entity, taking into account
+ the qualifier of the property path
+
+
+
+ Get the root table alias of an entity
+
+
+
+ Get the root table alias of an entity, taking into account
+ the qualifier of the property path
+
+
+
+ Get the property name, given a possibly qualified property name
+
+
+ Get the identifier column names of this entity
+
+
+ Get the identifier type of this entity
+
+
+
+ When adding values to the query string it is imperative that they are reported via this function back to the query builder.
+ Do not report the same item multiple times as it will be assumed to be a separate parameter.
+
+
+
+
+ An identifier constraint
+
+
+
+
+ An that constrains the property
+ to a specified list of values.
+
+
+ InExpression - should only be used with a Single Value column - no multicolumn properties...
+
+
+
+
+ Initializes a new instance of the class.
+
+ The projection.
+ The _values.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ An that represents an "like" constraint
+ that is not case sensitive.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The projection.
+ The value.
+ The match mode.
+
+
+
+ Initializes a new instance of the class.
+
+ The projection.
+ The value.
+
+
+
+ Initialize a new instance of the
+ class for a named Property and its value.
+
+ The name of the Property in the class.
+ The value for the Property.
+
+
+
+
+
+
+ An that represents empty association constraint.
+
+
+
+
+ An that represents non-empty association constraint.
+
+
+
+
+ An that represents an "less than or equal" constraint
+ between two properties.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Name of the LHS property.
+ The RHS projection.
+
+
+
+ Initializes a new instance of the class.
+
+ The LHS projection.
+ The RHS projection.
+
+
+
+ Initializes a new instance of the class.
+
+ The projection.
+ Name of the RHS property.
+
+
+
+ Initializes a new instance of the class
+ that compares two mapped properties using an "less than or equal" constraint.
+
+ The name of the Property to use as the left hand side.
+ The name of the Property to use as the right hand side.
+
+
+
+ Get the Sql operator to use for the .
+
+ The string " <= "
+
+
+
+ An that represents an "like" constraint.
+
+
+ The case sensitivity depends on the database settings for string
+ comparisons. Use if the
+ string comparison should not be case sensitive.
+
+
+
+
+ An that represents an "less than" constraint
+ between two properties.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Name of the LHS property.
+ The RHS projection.
+
+
+
+ Initializes a new instance of the class.
+
+ The LHS projection.
+ The RHS projection.
+
+
+
+ Initializes a new instance of the class.
+
+ The projection.
+ Name of the RHS property.
+
+
+
+ Initializes a new instance of the class
+ that compares two mapped properties using an "less than" constraint.
+
+ The name of the Property to use as the left hand side.
+ The name of the Property to use as the right hand side.
+
+
+
+ Get the Sql operator to use for the .
+
+ The string " < "
+
+
+
+ Represents an strategy for matching strings using "like".
+
+
+
+
+ Initialize a new instance of the class.
+
+ The code that identifies the match mode.
+ The friendly name of the match mode.
+
+ The parameter intCode is used as the key of
+ to store instances and to ensure only instance of a particular
+ is created.
+
+
+
+
+ The string representation of the .
+
+ The friendly name used to describe the .
+
+
+
+ Convert the pattern, by appending/prepending "%"
+
+ The string to convert to the appropriate match pattern.
+
+ A that contains a "%" in the appropriate place
+ for the Match Strategy.
+
+
+
+
+ Match the entire string to the pattern
+
+
+
+
+ Match the start of the string to the pattern
+
+
+
+
+ Match the end of the string to the pattern
+
+
+
+
+ Match the pattern anywhere in the string
+
+
+
+
+ The that matches the entire string to the pattern.
+
+
+
+
+ Initialize a new instance of the class.
+
+
+
+
+ Converts the string to the Exact MatchMode.
+
+ The string to convert to the appropriate match pattern.
+ The pattern exactly the same as it was passed in.
+
+
+
+ The that matches the start of the string to the pattern.
+
+
+
+
+ Initialize a new instance of the class.
+
+
+
+
+ Converts the string to the Start MatchMode.
+
+ The string to convert to the appropriate match pattern.
+ The pattern with a "%" appended at the end.
+
+
+
+ The that matches the end of the string to the pattern.
+
+
+
+
+ Initialize a new instance of the class.
+
+
+
+
+ Converts the string to the End MatchMode.
+
+ The string to convert to the appropriate match pattern.
+ The pattern with a "%" appended at the beginning.
+
+
+
+ The that exactly matches the string
+ by appending "%" to the beginning and end.
+
+
+
+
+ Initialize a new instance of the class.
+
+
+
+
+ Converts the string to the Exact MatchMode.
+
+ The string to convert to the appropriate match pattern.
+ The pattern with a "%" appended at the beginning and the end.
+
+
+
+ An that negates another .
+
+
+
+
+ Initialize a new instance of the class for an
+
+
+ The to negate.
+
+
+
+ An that represents "not null" constraint.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The projection.
+
+
+
+ Initialize a new instance of the class for a named
+ Property that should not be null.
+
+ The name of the Property in the class.
+
+
+
+ An that represents "null" constraint.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The projection.
+
+
+
+ Initialize a new instance of the class for a named
+ Property that should be null.
+
+ The name of the Property in the class.
+
+
+
+
+
+
+ Represents an order imposed upon a
+ result set.
+
+
+
+
+ Constructor for Order.
+
+
+
+
+
+
+ Constructor for Order.
+
+
+
+
+
+
+ Render the SQL fragment
+
+
+
+
+ Ascending order
+
+
+
+
+
+
+ Ascending order
+
+
+
+
+
+
+ Descending order
+
+
+
+
+
+
+ Descending order
+
+
+
+
+
+
+ An that combines two s with an
+ "or" between them.
+
+
+
+
+ Initialize a new instance of the class for
+ two s.
+
+ The to use as the left hand side.
+ The to use as the right hand side.
+
+
+
+ Get the Sql operator to put between the two s.
+
+ Returns "or"
+
+
+
+ Gets the typed values for parameters in this projection
+
+ The criteria.
+ The criteria query.
+
+
+
+
+ The criterion package may be used by applications as a framework for building
+ new kinds of Projection. However, it is intended that most applications will
+ simply use the built-in projection types via the static factory methods of this class.
+
+ The factory methods that take an alias allow the projected value to be referred to by
+ criterion and order instances.
+
+
+
+
+ Create a distinct projection from a projection
+
+
+
+
+
+
+ Create a new projection list
+
+
+
+
+
+ The query row count, ie. count(*)
+
+ The RowCount projection mapped to an .
+
+
+
+ The query row count, ie. count(*)
+
+ The RowCount projection mapped to an .
+
+
+
+ A property value count
+
+
+
+
+
+
+ A property value count
+
+
+
+
+
+
+ A distinct property value count
+
+
+
+
+
+
+ A property maximum value
+
+
+
+
+
+
+ A projection maximum value
+
+
+
+
+
+
+ A property minimum value
+
+
+
+
+
+
+ A projection minimum value
+
+
+
+
+
+
+ A property average value
+
+
+
+
+
+
+ A property average value
+
+
+
+
+
+
+ A property value sum
+
+
+
+
+
+
+ A property value sum
+
+
+
+
+
+
+ A SQL projection, a typed select clause fragment
+
+
+
+
+
+
+
+
+ A grouping SQL projection, specifying both select clause and group by clause fragments
+
+
+
+
+
+
+
+
+
+ A grouping property value
+
+
+
+
+
+
+ A grouping projection value
+
+
+
+
+
+
+ A projected property value
+
+
+
+
+
+
+ A projected identifier value
+
+
+
+
+
+ Assign an alias to a projection, by wrapping it
+
+
+
+
+
+
+
+ Casts the projection result to the specified type.
+
+ The type.
+ The projection.
+
+
+
+
+ Return a constant value
+
+ The obj.
+
+
+
+
+ Return a constant value
+
+ The obj.
+
+
+
+
+
+ Calls the named
+
+ Name of the function.
+ The type.
+ The projections.
+
+
+
+
+ Calls the specified
+
+ the function.
+ The type.
+ The projections.
+
+
+
+
+ Conditionally return the true or false part, dependention on the criterion
+
+ The criterion.
+ The when true.
+ The when false.
+
+
+
+
+ A factory for property-specific AbstractCriterion and projection instances
+
+
+
+
+ A property value, or grouped property value
+
+
+
+
+ Get a component attribute of this property
+
+
+
+
+ A comparison between a property value in the outer query and the
+ result of a subquery
+
+
+
+
+ A comparison between a property value in the outer query and the
+ result of a subquery
+
+
+
+
+ The base class for an that compares a single Property
+ to a value.
+
+
+
+
+ Initialize a new instance of the class for a named
+ Property and its value.
+
+ The name of the Property in the class.
+ The value for the Property.
+ The SQL operation.
+
+
+
+ Converts the SimpleExpression to a .
+
+ A SqlString that contains a valid Sql fragment.
+
+
+
+
+
+
+ Gets the named Property for the Expression.
+
+ A string that is the name of the Property.
+
+
+
+ Gets the Value for the Expression.
+
+ An object that is the value for the Expression.
+
+
+
+ Get the Sql operator to use for the specific
+ subclass of .
+
+
+
+
+ A comparison between a constant value and the the result of a subquery
+
+
+
+
+ An that creates a SQLExpression.
+ The string {alias} will be replaced by the alias of the root entity.
+
+
+ This allows for database specific Expressions at the cost of needing to
+ write a correct .
+
+
+
+
+
+
+
+ A SQL fragment. The string {alias} will be replaced by the alias of the root entity.
+
+
+
+
+ Gets the typed values for parameters in this projection
+
+ The criteria.
+ The criteria query.
+
+
+
+
+ Factory class for AbstractCriterion instances that represent
+ involving subqueries.
+ Expression
+ Projection
+ AbstractCriterion
+
+
+
+
+ A property value, or grouped property value
+
+
+
+
+ Used to show a better debug display for dictionaries
+
+
+
+
+
+
+
+ ::=
+ EXTRACT FROM
+
+ ::=
+ |
+
+ ::=
+ YEAR |
+ MONTH |
+ DAY |
+ HOUR |
+ MINUTE |
+ SECOND
+
+ ::=
+ TIMEZONE_HOUR |
+ TIMEZONE_MINUTE
+ ]]>
+
+
+
+
+ Represents HQL functions that can have different representations in different SQL dialects.
+ E.g. in HQL we can define function concat(?1, ?2) to concatenate two strings
+ p1 and p2. Target SQL function will be dialect-specific, e.g. (?1 || ?2) for
+ Oracle, concat(?1, ?2) for MySql, (?1 + ?2) for MS SQL.
+ Each dialect will define a template as a string (exactly like above) marking function
+ parameters with '?' followed by parameter's index (first index is 1).
+
+
+
+
+ Provides support routines for the HQL functions as used
+ in the various SQL Dialects
+
+ Provides an interface for supporting various HQL functions that are
+ translated to SQL. The Dialect and its sub-classes use this interface to
+ provide details required for processing of the function.
+
+
+
+
+ The function return type
+
+ The type of the first argument
+
+
+
+
+
+ Render the function call as SQL.
+
+ List of arguments
+
+ SQL fragment for the fuction.
+
+
+
+ Does this function have any arguments?
+
+
+
+
+ If there are no arguments, are parens required?
+
+
+
+
+ Applies the template to passed in arguments.
+
+ args function arguments
+ generated SQL function call
+
+
+
+
+ ANSI-SQL substring
+ Documented in:
+ ANSI X3.135-1992
+ American National Standard for Information Systems - Database Language - SQL
+
+
+ Syntax:
+ ::=
+ SUBSTRING FROM < start position>
+ [ FOR ]
+ ]]>
+
+
+
+
+ A SQLFunction implementation that emulates the ANSI SQL trim function
+ on dialects which do not support the full definition. However, this function
+ definition does assume the availability of ltrim, rtrim, and replace functions
+ which it uses in various combinations to emulate the desired ANSI trim()
+ functionality.
+
+
+
+
+
+
+
+
+
+
+ according to both the ANSI-SQL and EJB3 specs, trim can either take
+ exactly one parameter or a variable number of parameters between 1 and 4.
+ from the SQL spec:
+ ::=
+ TRIM
+
+ ::=
+ [ [ ] [ ] FROM ]
+
+ ::=
+ LEADING
+ | TRAILING
+ | BOTH
+ ]]>
+ If only trim specification is omitted, BOTH is assumed;
+ if trim character is omitted, space is assumed
+
+
+
+
+ ANSI-SQL style cast(foo as type) where the type is a NHibernate type
+
+
+
+
+ Delegate the values to a real type
+
+
+ The real return type of Cast is know only after the Cast is parsed.
+ This class was created in NH to remove the responsibility of the parser about know the
+ real return type.
+
+
+
+
+ Defines a mapping from a .NET to a SQL datatype.
+ This interface is intended to be implemented by applications that need custom types.
+
+ Implementors should usually be immutable and MUST definately be threadsafe.
+
+
+
+ Return a cacheable "disassembled" representation of the object.
+ the value to cache
+ the session
+ optional parent entity object (needed for collections)
+ the disassembled, deep cloned state
+
+
+ Reconstruct the object from its cached "disassembled" state.
+ the disassembled state from the cache
+ the session
+ the parent entity object
+ the the object
+
+
+
+ Called before assembling a query result set from the query cache, to allow batch fetching
+ of entities missing from the second-level cache.
+
+
+
+
+ When implemented by a class, returns the SqlTypes for the columns mapped by this IType.
+ The that uses this IType.An array of s.
+
+
+
+ When implemented by a class, returns how many columns are used to persist this type.
+ The that uses this IType.The number of columns this IType spans.MappingException
+
+
+
+ When implemented by a class, should the parent be considered dirty,
+ given both the old and current field or element value?
+ The old valueThe current valueThe true if the field is dirty
+
+
+
+ When implemented by a class, gets an instance of the object mapped by
+ this IType from the .
+ The that contains the values
+ The names of the columns in the that contain the
+ value to populate the IType with.
+ The object mapped by this IType.
+ Implementors should handle possibility of null values.
+
+
+
+
+ When implemented by a class, gets an instance of the object
+ mapped by this IType from the .
+ The that contains the valuesThe name of the column in the that contains the
+ value to populate the IType with.The object mapped by this IType.
+ Implementations should handle possibility of null values.
+ This method might be called if the IType is known to be a single-column type.
+
+
+
+
+ When implemented by a class, puts the value/values from the mapped
+ class into the .
+ The to put the values into.The object that contains the values.The index of the to start writing the values to.Indicates which columns are to be set.
+ Implementors should handle possibility of null values.
+ A multi-column type should be written to parameters starting from .
+
+
+
+
+ When implemented by a class, puts the value/values from the mapped
+ class into the .
+
+ The to put the values into.
+ The object that contains the values.
+ The index of the to start writing the values to.
+
+ Implementors should handle possibility of null values.
+ A multi-column type should be written to parameters starting from .
+
+
+
+
+ When implemented by a class, a representation of the value to be
+ embedded in an XML element
+ The object that contains the values.An Xml formatted string.
+
+
+
+ When implemented by a class, returns a deep copy of the persistent
+ state, stopping at entities and at collections.
+ A Collection element or Entity fieldThe entityMode.The session factory.A deep copy of the object.
+
+
+
+ When implemented by a class, retrieves an instance of the mapped class,
+ or the identifier of an entity or collection from a .
+ The that contains the values.
+ The names of the columns in the that contain the
+ value to populate the IType with.
+ the sessionThe parent EntityAn identifier or actual object mapped by this IType.
+
+ This is useful for 2-phase property initialization - the second phase is a call to
+ ResolveIdentifier()
+
+
+ Most implementors of this method will just pass the call to NullSafeGet().
+
+
+
+
+
+ When implemented by a class, maps identifiers to Entities or Collections.
+ An identifier or value returned by Hydrate()The sessionThe parent EntityThe Entity or Collection referenced by this Identifier.
+ This is the second phase of 2-phase property initialization.
+
+
+
+
+ Given a hydrated, but unresolved value, return a value that may be used to
+ reconstruct property-ref associations.
+
+
+
+
+
+
+
+ During merge, replace the existing (target) value in the entity we are merging to
+ with a new (original) value from the detached entity we are merging. For immutable
+ objects, or null values, it is safe to simply return the first parameter. For
+ mutable objects, it is safe to return a copy of the first parameter. For objects
+ with component values, it might make sense to recursively replace component values.
+
+ the value from the detached entity being merged
+ the value in the managed entity
+
+
+
+
+ the value to be merged
+
+
+
+ Compare two instances of the class mapped by this type for persistence
+ "equality" - equality of persistent state - taking a shortcut for
+ entity references.
+
+
+
+
+ boolean
+
+
+
+ Compare two instances of the class mapped by this type for persistence
+ "equality" - equality of persistent state.
+
+
+
+
+ boolean
+
+
+
+ Compare two instances of the class mapped by this type for persistence
+ "equality" - equality of persistent state.
+
+
+
+
+
+ boolean
+
+
+ Get a hashcode, consistent with persistence "equality"
+
+
+
+
+ Get a hashcode, consistent with persistence "equality"
+
+
+
+
+
+ compare two instances of the type
+
+
+
+
+
+ Get the type of a semi-resolved value.
+
+
+ A representation of the value to be embedded in an XML element.
+
+
+
+
+
+ Parse the XML representation of an instance.
+
+
+ an instance of the type
+
+
+
+ Given an instance of the type, return an array of boolean, indicating
+ which mapped columns would be null.
+
+ an instance of the type
+
+
+
+
+ When implemented by a class, gets the abbreviated name of the type.
+ The NHibernate type name.
+
+
+
+ When implemented by a class, gets the returned
+ by the NullSafeGet() methods.
+
+ The from the .NET framework.
+
+ This is used to establish the class of an array of this Itype
+
+
+
+
+ When implemented by a class, gets the value indicating if the objects
+ of this IType are mutable.
+ true if the objects mapped by this IType are mutable.
+ With respect to the referencing object...
+ Entities and Collections are considered immutable because they manage their own internal state.
+
+
+
+
+ When implemented by a class, gets a value indicating if the implementor is castable to an an
+ true if this is an AssociationThis does not necessarily imply that the type actually represents an association.
+
+
+
+ When implemented by a class, gets a value indicating if the implementor is a collection type
+ true if this is a .
+
+
+
+ When implemented by a class, gets a value indicating if the implementor
+ is an .
+ true if this is an
+ If true, the implementation must be castable to .
+ A component type may own collections or associations and hence must provide certain extra functionality.
+
+
+
+
+ When implemented by a class, gets a value indicating if the implementor
+ extends
+ true if this is an
+
+
+
+
+
+
+ Emulation of locate() on Sybase
+
+
+
+
+ Initializes a new instance of the StandardSQLFunction class.
+
+ SQL function name.
+ Whether the function accepts an asterisk (*) in place of arguments
+
+
+
+ Initializes a new instance of the StandardSQLFunction class.
+
+ SQL function name.
+ True if accept asterisk like argument
+ Return type for the fuction.
+
+
+
+ Classic AVG sqlfunction that return types as it was done in Hibernate 3.1
+
+
+
+
+ Classic COUNT sqlfunction that return types as it was done in Hibernate 3.1
+
+
+
+
+ Classic SUM sqlfunction that return types as it was done in Hibernate 3.1
+
+
+
+
+ Summary description for NoArgSQLFunction.
+
+
+
+
+ Emulation of coalesce() on Oracle, using multiple nvl() calls
+
+
+
+
+ Emulation of locate() on PostgreSQL
+
+
+
+
+ Provides a standard implementation that supports the majority of the HQL
+ functions that are translated to SQL.
+
+
+ The Dialect and its sub-classes use this class to provide details required
+ for processing of the associated function.
+
+
+
+
+ Provides a standard implementation that supports the majority of the HQL
+ functions that are translated to SQL.
+
+
+ The Dialect and its sub-classes use this class to provide details required
+ for processing of the associated function.
+
+
+
+
+ Initializes a new instance of the StandardSQLFunction class.
+
+ SQL function name.
+
+
+
+ Initializes a new instance of the StandardSQLFunction class.
+
+ SQL function name.
+ Return type for the fuction.
+
+
+
+ Initializes a new instance of the StandardSafeSQLFunction class.
+
+ SQL function name.
+ Exact number of arguments expected.
+
+
+
+ Initializes a new instance of the StandardSafeSQLFunction class.
+
+ SQL function name.
+ Return type for the fuction.
+ Exact number of arguments expected.
+
+
+
+ Support for slightly more general templating than StandardSQLFunction,
+ with an unlimited number of arguments.
+
+
+
+
+ A strategy abstraction for how locks are obtained in the underlying database.
+
+
+ All locking provided implemenations assume the underlying database supports
+ (and that the connection is in) at least read-committed transaction isolation.
+ The most glaring exclusion to this is HSQLDB which only offers support for
+ READ_UNCOMMITTED isolation.
+
+
+
+
+
+ Acquire an appropriate type of lock on the underlying data that will
+ endure until the end of the current transaction.
+
+ The id of the row to be locked
+ The current version (or null if not versioned)
+ The object logically being locked (currently not used)
+ The session from which the lock request originated
+
+
+
+ A locking strategy where the locks are obtained through select statements.
+
+
+
+
+ For non-read locks, this is achieved through the Dialect's specific
+ SELECT ... FOR UPDATE syntax.
+
+
+
+
+ A locking strategy where the locks are obtained through update statements.
+
+ This strategy is not valid for read style locks.
+
+
+
+ Construct a locking strategy based on SQL UPDATE statements.
+
+ The metadata for the entity to be locked.
+ Indictates the type of lock to be acquired.
+
+ read-locks are not valid for this strategy.
+
+
+
+
+ Common implementation of schema reader.
+
+
+ This implementation of is based on the new of
+ .NET 2.0.
+
+
+
+
+
+ This class is specific of NHibernate and supply DatabaseMetaData of Java.
+ In the .NET Framework, there is no direct equivalent.
+
+
+ Implementation is provide by a dialect.
+
+
+
+
+ Gets a description of the tables available for the catalog
+
+ A catalog, retrieves those without a catalog
+ Schema pattern, retrieves those without the schema
+ A table name pattern
+ a list of table types to include
+ Each row
+
+
+
+ Get the Table MetaData.
+
+ The resultSet of .
+ Include FKs and indexes
+
+
+
+
+ Gets a description of the table columns available
+
+ A catalog, retrieves those without a catalog
+ Schema pattern, retrieves those without the schema
+ A table name pattern
+ a columng name patterm
+ A description of the table columns available
+
+
+
+ Get a description of the given table's indices and statistics.
+
+ A catalog, retrieves those without a catalog
+ Schema pattern, retrieves those without the schema
+ A table name pattern
+ A description of the table's indices available
+ The result is relative to the schema collections "Indexes".
+
+
+
+ Get a description of the given table's indices and statistics.
+
+ A catalog, retrieves those without a catalog
+ Schema pattern, retrieves those without the schema
+ A table name pattern
+ The name of the index
+ A description of the table's indices available
+ The result is relative to the schema collections "IndexColumns".
+
+
+
+ Gets a description of the foreign keys available
+
+ A catalog, retrieves those without a catalog
+ Schema name, retrieves those without the schema
+ A table name
+ A description of the foreign keys available
+
+
+
+ Get all reserved words
+
+ A set of reserved words
+
+
+
+ In the Java language, this field indicates that the database treats mixed-case,
+ quoted SQL identifiers as case-insensitive and stores them in mixed case.
+
+
+
+
+ In the Java language, this field indicates that the database treats mixed-case,
+ quoted SQL identifiers as case-insensitive and stores them in upper case.
+
+
+
+
+ In the Java language, this field indicates that the database treats mixed-case,
+ unquoted SQL identifiers as case-insensitive and stores them in upper case.
+
+
+
+
+ In the Java language, this field indicates that the database treats mixed-case,
+ quoted SQL identifiers as case-insensitive and stores them in lower case.
+
+
+
+
+ In the Java language, this field indicates that the database treats mixed-case,
+ unquoted SQL identifiers as case-insensitive and stores them in lower case,
+
+
+
+
+ The name of the column that represent the TABLE_NAME in the
+ returned by .
+
+
+
+
+ An SQL dialect for DB2 on iSeries OS/400.
+
+
+ The DB2400Dialect defaults the following configuration properties:
+
+
+ Property
+ Default Value
+
+
+ connection.driver_class
+
+
+
+
+
+
+
+ An SQL dialect for DB2.
+
+
+ The DB2Dialect defaults the following configuration properties:
+
+
+ Property
+ Default Value
+
+
+ connection.driver_class
+
+
+
+
+
+
+
+ Represents a dialect of SQL implemented by a particular RDBMS. Subclasses
+ implement NHibernate compatibility with different systems.
+
+
+ Subclasses should provide a public default constructor that Register()
+ a set of type mappings and default Hibernate properties.
+
+
+
+
+
+
+
+
+
+
+ Characters used for quoting sql identifiers
+
+
+
+
+
+
+
+
+
+
+ The base constructor for Dialect.
+
+
+ Every subclass should override this and call Register() with every except
+ , , , ,
+ , .
+
+
+ The Default properties for this Dialect should also be set - such as whether or not to use outer-joins
+ and what the batch size should be.
+
+
+
+
+ Get an instance of the dialect specified by the current properties.
+ The specified Dialect
+
+
+
+ Get de from a property bag (prop name )
+
+ The property bag.
+ An instance of .
+ When is null.
+ When the property bag don't contains de property .
+
+
+
+ Get the name of the database type associated with the given
+ ,
+
+ The SqlType
+ The database type name used by ddl.
+
+
+
+ Get the name of the database type associated with the given
+ .
+
+ The SqlType
+ The datatype length
+ The datatype precision
+ The datatype scale
+ The database type name used by ddl.
+
+
+
+ Get the name of the database type appropriate for casting operations
+ (via the CAST() SQL function) for the given typecode.
+
+ The typecode
+ The database type name
+
+
+
+ Subclasses register a typename for the given type code and maximum
+ column length. $l in the type name will be replaced by the column
+ length (if appropriate)
+
+ The typecode
+ Maximum length of database type
+ The database type name
+
+
+
+ Suclasses register a typename for the given type code. $l in the
+ typename will be replaced by the column length (if appropriate).
+
+ The typecode
+ The database type name
+
+
+
+ Get the name of the Hibernate associated with th given
+ typecode.
+
+ The typecode
+ The Hibernate name.
+
+
+
+ Get the name of the Hibernate associated
+ with the given typecode with the given storage
+ specification parameters.
+
+ The typecode
+ The datatype length
+ The datatype precision
+ The datatype scale
+ The Hibernate name.
+
+
+
+ Registers a Hibernate name for the given
+ type code and maximum column length.
+
+ The typecode
+ The maximum length of database type
+ The Hibernate name
+
+
+
+ Registers a Hibernate name for the given
+ type code.
+
+ The typecode
+ The Hibernate name
+
+
+
+
+
+
+
+
+
+
+ The syntax used to add a foreign key constraint to a table.
+
+ The FK constraint name.
+ The names of the columns comprising the FK
+ The table referenced by the FK
+ The explicit columns in the referencedTable referenced by this FK.
+
+ if false, constraint should be explicit about which column names the constraint refers to
+
+ the "add FK" fragment
+
+
+
+ The syntax used to add a primary key constraint to a table
+
+
+
+
+
+ Get a strategy instance which knows how to acquire a database-level lock
+ of the specified mode for this dialect.
+
+ The persister for the entity to be locked.
+ The type of lock to be acquired.
+ The appropriate locking strategy.
+
+
+
+ Given a lock mode, determine the appropriate for update fragment to use.
+
+ The lock mode to apply.
+ The appropriate for update fragment.
+
+
+
+ Get the FOR UPDATE OF column_list fragment appropriate for this
+ dialect given the aliases of the columns to be write locked.
+
+ The columns to be write locked.
+ The appropriate FOR UPDATE OF column_list clause string.
+
+
+
+ Get the FOR UPDATE OF column_list NOWAIT fragment appropriate
+ for this dialect given the aliases of the columns to be write locked.
+
+ The columns to be write locked.
+ The appropriate FOR UPDATE colunm_list NOWAIT clause string.
+
+
+
+ Modifies the given SQL by applying the appropriate updates for the specified
+ lock modes and key columns.
+
+ the SQL string to modify
+ a map of lock modes indexed by aliased table names.
+ a map of key columns indexed by aliased table names.
+ the modified SQL string.
+
+ The behavior here is that of an ANSI SQL SELECT FOR UPDATE. This
+ method is really intended to allow dialects which do not support
+ SELECT FOR UPDATE to achieve this in their own fashion.
+
+
+
+
+ Some dialects support an alternative means to SELECT FOR UPDATE,
+ whereby a "lock hint" is appends to the table name in the from clause.
+
+ The lock mode to apply
+ The name of the table to which to apply the lock hint.
+ The table with any required lock hints.
+
+
+
+ Return SQL needed to drop the named table. May (and should) use
+ some form of "if exists" clause, and cascade constraints.
+
+
+
+
+
+ Generate a temporary table name given the bas table.
+ The table name from which to base the temp table name.
+ The generated temp table name.
+
+
+
+ Does the dialect require that temporary table DDL statements occur in
+ isolation from other statements? This would be the case if the creation
+ would cause any current transaction to get committed implicitly.
+
+ see the result matrix above.
+
+ JDBC defines a standard way to query for this information via the
+ {@link java.sql.DatabaseMetaData#dataDefinitionCausesTransactionCommit()}
+ method. However, that does not distinguish between temporary table
+ DDL and other forms of DDL; MySQL, for example, reports DDL causing a
+ transaction commit via its driver, even though that is not the case for
+ temporary table DDL.
+
+ Possible return values and their meanings:
+
{@link Boolean#TRUE} - Unequivocally, perform the temporary table DDL in isolation.
+
{@link Boolean#FALSE} - Unequivocally, do not perform the temporary table DDL in isolation.
+
null - defer to the JDBC driver response in regards to {@link java.sql.DatabaseMetaData#dataDefinitionCausesTransactionCommit()}
+
+
+
+
+ Do we need to drop the temporary table after use?
+
+
+
+ Registers an OUT parameter which will be returing a
+ . How this is accomplished varies greatly
+ from DB to DB, hence its inclusion (along with {@link #getResultSet}) here.
+
+ The callable statement.
+ The bind position at which to register the OUT param.
+ The number of (contiguous) bind positions used.
+
+
+
+ Given a callable statement previously processed by ,
+ extract the from the OUT parameter.
+
+ The callable statement.
+ The extracted result set.
+ SQLException Indicates problems extracting the result set.
+
+
+
+ The syntax used to drop a foreign key constraint from a table.
+
+ The name of the foreign key constraint to drop.
+
+ The SQL string to drop the foreign key constraint.
+
+
+
+
+ The syntax that is used to check if a constraint does not exists before creating it
+
+ The table.
+ The name.
+
+
+
+
+ The syntax that is used to close the if for a constraint exists check, used
+ for dialects that requires begin/end for ifs
+
+ The table.
+ The name.
+
+
+
+
+ The syntax that is used to check if a constraint exists before dropping it
+
+ The table.
+ The name.
+
+
+
+
+ The syntax that is used to close the if for a constraint exists check, used
+ for dialects that requires begin/end for ifs
+
+ The table.
+ The name.
+
+
+
+
+ The syntax used to drop a primary key constraint from a table.
+
+ The name of the primary key constraint to drop.
+
+ The SQL string to drop the primary key constraint.
+
+
+
+
+ The syntax used to drop an index constraint from a table.
+
+ The name of the index constraint to drop.
+
+ The SQL string to drop the primary key constraint.
+
+
+
+
+ Provided we , then attch the
+ "select identity" clause to the insert statement.
+
+ The insert command
+
+ The insert command with any necessary identity select clause attached.
+ Note, if == false then
+ the insert-string should be returned without modification.
+
+
+
+
+ Get the select command to use to retrieve the last generated IDENTITY
+ value for a particular table
+
+ The table into which the insert was done
+ The PK column.
+ The type code.
+ The appropriate select command
+
+
+
+ The syntax used during DDL to define a column as being an IDENTITY of
+ a particular type.
+
+ The type code.
+ The appropriate DDL fragment.
+
+
+
+ Generate the appropriate select statement to to retreive the next value
+ of a sequence.
+
+ the name of the sequence
+ String The "nextval" select string.
+ This should be a "stand alone" select statement.
+
+
+
+ Typically dialects which support sequences can drop a sequence
+ with a single command.
+
+ The name of the sequence
+ The sequence drop commands
+
+ This is convenience form of
+ to help facilitate that.
+
+ Dialects which support sequences and can drop a sequence in a
+ single command need *only* override this method. Dialects
+ which support sequences but require multiple commands to drop
+ a sequence should instead override .
+
+
+
+
+ The multiline script used to drop a sequence.
+
+ The name of the sequence
+ The sequence drop commands
+
+
+
+ Generate the select expression fragment that will retrieve the next
+ value of a sequence as part of another (typically DML) statement.
+
+ the name of the sequence
+ The "nextval" fragment.
+
+ This differs from in that this
+ should return an expression usable within another statement.
+
+
+
+
+ Typically dialects which support sequences can create a sequence
+ with a single command.
+
+ The name of the sequence
+ The sequence creation command
+
+ This is convenience form of to help facilitate that.
+ Dialects which support sequences and can create a sequence in a
+ single command need *only* override this method. Dialects
+ which support sequences but require multiple commands to create
+ a sequence should instead override .
+
+
+
+
+ An optional multi-line form for databases which .
+
+ The name of the sequence
+ The initial value to apply to 'create sequence' statement
+ The increment value to apply to 'create sequence' statement
+ The sequence creation commands
+
+
+
+ Overloaded form of , additionally
+ taking the initial value and increment size to be applied to the sequence
+ definition.
+
+ The name of the sequence
+ The initial value to apply to 'create sequence' statement
+ The increment value to apply to 'create sequence' statement
+ The sequence creation command
+
+ The default definition is to suffix
+ with the string: " start with {initialValue} increment by {incrementSize}" where
+ {initialValue} and {incrementSize} are replacement placeholders. Generally
+ dialects should only need to override this method if different key phrases
+ are used to apply the allocation information.
+
+
+
+
+ Create a strategy responsible
+ for handling this dialect's variations in how joins are handled.
+
+ This dialect's strategy.
+
+
+
+ Create a strategy responsible
+ for handling this dialect's variations in how CASE statements are
+ handled.
+
+ This dialect's strategy.
+
+
+ The SQL literal value to which this database maps boolean values.
+ The boolean value
+ The appropriate SQL literal.
+
+
+
+ Add a LIMIT clause to the given SQL SELECT
+
+ A Query in the form of a SqlString.
+ Offset of the first row to be returned by the query (zero-based)
+ Maximum number of rows to be returned by the query
+ A new SqlString that contains the LIMIT clause.
+
+
+ Apply s limit clause to the query.
+ The query to which to apply the limit.
+ Is the query requesting an offset?
+ the modified SQL
+
+ Typically dialects utilize
+ limit caluses when they support limits. Thus, when building the
+ select command we do not actually need to know the limit or the offest
+ since we will just be using placeholders.
+
+ Here we do still pass along whether or not an offset was specified
+ so that dialects not supporting offsets can generate proper exceptions.
+ In general, dialects will override one or the other of this method and
+ .
+
+
+
+
+ Checks to see if the name has been quoted.
+
+ The name to check if it is quoted
+ true if name is already quoted.
+
+ The default implementation is to compare the first character
+ to Dialect.OpenQuote and the last char to Dialect.CloseQuote
+
+
+
+
+ Quotes a name.
+
+ The string that needs to be Quoted.
+ A QuotedName
+
+
+ This method assumes that the name is not already Quoted. So if the name passed
+ in is "name then it will return """name". It escapes the first char
+ - the " with "" and encloses the escaped string with OpenQuote and CloseQuote.
+
+
+
+
+
+ Quotes a name for being used as a aliasname
+
+ Original implementation calls
+ Name of the alias
+ A Quoted name in the format of OpenQuote + aliasName + CloseQuote
+
+
+ If the aliasName is already enclosed in the OpenQuote and CloseQuote then this
+ method will return the aliasName that was passed in without going through any
+ Quoting process. So if aliasName is passed in already Quoted make sure that
+ you have escaped all of the chars according to your DataBase's specifications.
+
+
+
+
+
+ Quotes a name for being used as a columnname
+
+ Original implementation calls
+ Name of the column
+ A Quoted name in the format of OpenQuote + columnName + CloseQuote
+
+
+ If the columnName is already enclosed in the OpenQuote and CloseQuote then this
+ method will return the columnName that was passed in without going through any
+ Quoting process. So if columnName is passed in already Quoted make sure that
+ you have escaped all of the chars according to your DataBase's specifications.
+
+
+
+
+
+ Quotes a name for being used as a tablename
+
+ Name of the table
+ A Quoted name in the format of OpenQuote + tableName + CloseQuote
+
+
+ If the tableName is already enclosed in the OpenQuote and CloseQuote then this
+ method will return the tableName that was passed in without going through any
+ Quoting process. So if tableName is passed in already Quoted make sure that
+ you have escaped all of the chars according to your DataBase's specifications.
+
+
+
+
+
+ Quotes a name for being used as a schemaname
+
+ Name of the schema
+ A Quoted name in the format of OpenQuote + schemaName + CloseQuote
+
+
+ If the schemaName is already enclosed in the OpenQuote and CloseQuote then this
+ method will return the schemaName that was passed in without going through any
+ Quoting process. So if schemaName is passed in already Quoted make sure that
+ you have escaped all of the chars according to your DataBase's specifications.
+
+
+
+
+
+ Unquotes and unescapes an already quoted name
+
+ Quoted string
+ Unquoted string
+
+
+ This method checks the string quoted to see if it is
+ quoted. If the string quoted is already enclosed in the OpenQuote
+ and CloseQuote then those chars are removed.
+
+
+ After the OpenQuote and CloseQuote have been cleaned from the string quoted
+ then any chars in the string quoted that have been escaped by doubling them
+ up are changed back to a single version.
+
+
+ The following quoted values return these results
+ "quoted" = quoted
+ "quote""d" = quote"d
+ quote""d = quote"d
+
+
+ If this implementation is not sufficient for your Dialect then it needs to be overridden.
+ MsSql2000Dialect is an example of where UnQuoting rules are different.
+
+
+
+
+
+ Unquotes an array of Quoted Names.
+
+ strings to Unquote
+ an array of unquoted strings.
+
+ This use UnQuote(string) for each string in the quoted array so
+ it should not need to be overridden - only UnQuote(string) needs
+ to be overridden unless this implementation is not sufficient.
+
+
+
+
+ Given a type code, determine an appropriate
+ null value to use in a select clause.
+
+ The type code.
+ The appropriate select clause value fragment.
+
+ One thing to consider here is that certain databases might
+ require proper casting for the nulls here since the select here
+ will be part of a UNION/UNION ALL.
+
+
+
+
+ Build an instance of the preferred by this dialect for
+ converting into NHibernate's ADOException hierarchy.
+
+ The Dialect's preferred .
+
+ The default Dialect implementation simply returns a converter based on X/Open SQLState codes.
+
+ It is strongly recommended that specific Dialect implementations override this
+ method, since interpretation of a SQL error is much more accurate when based on
+ the ErrorCode rather than the SQLState. Unfortunately, the ErrorCode is a vendor-specific approach.
+
+
+
+
+ Retrieve a set of default Hibernate properties for this database.
+
+
+
+
+ Aggregate SQL functions as defined in general. This is
+ a case-insensitive hashtable!
+
+
+ The results of this method should be integrated with the
+ specialization's data.
+
+
+
+
+ The class (which implements )
+ which acts as this dialects native generation strategy.
+
+ The native generator class.
+
+ Comes into play whenever the user specifies the native generator.
+
+
+
+
+ The keyword used to insert a generated value into an identity column (or null).
+ Need if the dialect does not support inserts that specify no column values.
+
+
+
+ Get the select command used retrieve the names of all sequences.
+ The select command; or null if sequences are not supported.
+
+
+
+ Get the command used to select a GUID from the underlying database.
+ (Optional operation.)
+
+ The appropriate command.
+
+
+ Command used to create a table.
+
+
+
+ Slight variation on .
+ The command used to create a multiset table.
+
+
+ Here, we have the command used to create a table when there is no primary key and
+ duplicate rows are expected.
+
+ Most databases do not care about the distinction; originally added for
+ Teradata support which does care.
+
+
+
+ Command used to create a temporary table.
+
+
+
+ Get any fragments needing to be postfixed to the command for
+ temporary table creation.
+
+
+
+
+ Should the value returned by
+ be treated as callable. Typically this indicates that JDBC escape
+ sytnax is being used...
+
+
+
+
+ Retrieve the command used to retrieve the current timestammp from the database.
+
+
+
+
+ The name of the database-specific SQL function for retrieving the
+ current timestamp.
+
+
+
+
+ The keyword used to insert a row without specifying any column values
+
+
+
+
+ The name of the SQL function that transforms a string to lowercase
+
+
+
+
+ The syntax used to add a column to a table. Note this is deprecated
+
+
+
+
+ The keyword used to specify a nullable column
+
+
+
+
+ Completely optional cascading drop clause
+
+
+
+
+ The keyword used to create a primary key constraint
+
+
+
+
+ Does this dialect support the ALTER TABLE syntax?
+
+
+
+
+ Do we need to drop constraints before dropping tables in the dialect?
+
+
+
+
+ Do we need to qualify index names with the schema name?
+
+
+
+
+ Does this dialect support the UNIQUE column syntax?
+
+
+
+ Does this dialect support adding Unique constraints via create and alter table ?
+
+
+
+ Does the dialect support the syntax 'drop table if exists NAME'
+
+
+
+
+ Does the dialect support the syntax 'drop table NAME if exists'
+
+
+
+ Does this dialect support column-level check constraints?
+ True if column-level CHECK constraints are supported; false otherwise.
+
+
+ Does this dialect support table-level check constraints?
+ True if table-level CHECK constraints are supported; false otherwise.
+
+
+
+ Get the string to append to SELECT statements to acquire locks
+ for this dialect.
+
+ The appropriate FOR UPDATE clause string.
+
+
+ Is FOR UPDATE OF syntax supported?
+ True if the database supports FOR UPDATE OF syntax; false otherwise.
+
+
+
+ Does this dialect support FOR UPDATE in conjunction with outer joined rows?
+
+ True if outer joined rows can be locked via FOR UPDATE.
+
+
+
+ Retrieves the FOR UPDATE NOWAIT syntax specific to this dialect
+
+ The appropriate FOR UPDATE NOWAIT clause string.
+
+
+ Does this dialect support temporary tables?
+
+
+ Does this dialect support a way to retrieve the database's current timestamp value?
+
+
+
+ Gives the best resolution that the database can use for storing
+ date/time values, in ticks.
+
+
+
+ For example, if the database can store values with 100-nanosecond
+ precision, this property is equal to 1L. If the database can only
+ store values with 1-millisecond precision, this property is equal
+ to 10000L (number of ticks in a millisecond).
+
+
+ Used in TimestampType.
+
+
+
+
+
+ Does this dialect support subselects?
+
+
+
+
+ Does this dialect support identity column key generation?
+
+
+
+
+ Does the dialect support some form of inserting and selecting
+ the generated IDENTITY value all in the same statement.
+
+
+
+
+ Whether this dialect has an identity clause added to the data type or a
+ completely separate identity data type.
+
+
+
+
+ Get the select command to use to retrieve the last generated IDENTITY value.
+
+ The appropriate select command
+
+
+
+ The keyword used to specify an identity column, if native key generation is supported
+
+
+
+
+ Does this dialect support sequences?
+
+
+
+
+ Does this dialect support "pooled" sequences. Not aware of a better
+ name for this. Essentially can we specify the initial and increment values?
+
+ True if such "pooled" sequences are supported; false otherwise.
+
+
+
+
+
+ Does this Dialect have some kind of LIMIT syntax?
+
+ False, unless overridden.
+
+
+
+ Does this Dialect support an offset?
+
+
+
+
+ Can parameters be used for a statement containing a LIMIT?
+
+
+
+
+ Does the LIMIT clause specify arguments in the "reverse" order
+ limit, offset instead of offset, limit?
+
+ False, unless overridden.
+ Inheritors should return true if the correct order is limit, offset
+
+
+
+ Does the LIMIT clause come at the start of the
+ SELECT statement rather than at the end?
+
+ false, unless overridden
+
+
+
+ Does the LIMIT clause take a "maximum" row number instead
+ of a total number of returned rows?
+
+ True if limit is relative from offset; false otherwise.
+
+ This is easiest understood via an example. Consider you have a table
+ with 20 rows, but you only want to retrieve rows number 11 through 20.
+ Generally, a limit with offset would say that the offset = 11 and the
+ limit = 10 (we only want 10 rows at a time); this is specifying the
+ total number of returned rows. Some dialects require that we instead
+ specify offset = 11 and limit = 20, where 20 is the "last" row we want
+ relative to offset (i.e. total number of rows = 20 - 11 = 9)
+ So essentially, is limit relative from offset? Or is limit absolute?
+
+
+
+
+ The opening quote for a quoted identifier.
+
+
+
+
+ The closing quote for a quoted identifier.
+
+
+
+
+ Does this dialect support UNION ALL, which is generally a faster variant of UNION?
+ True if UNION ALL is supported; false otherwise.
+
+
+
+
+ Does this dialect support empty IN lists?
+ For example, is [where XYZ in ()] a supported construct?
+
+ True if empty in lists are supported; false otherwise.
+
+
+
+ Are string comparisons implicitly case insensitive.
+ In other words, does [where 'XYZ' = 'xyz'] resolve to true?
+
+ True if comparisons are case insensitive.
+
+
+
+ Is this dialect known to support what ANSI-SQL terms "row value
+ constructor" syntax; sometimes called tuple syntax.
+
+ Basically, does it support syntax like
+ "... where (FIRST_NAME, LAST_NAME) = ('Steve', 'Ebersole') ...".
+
+
+ True if this SQL dialect is known to support "row value
+ constructor" syntax; false otherwise.
+
+
+
+
+ If the dialect supports {@link #supportsRowValueConstructorSyntax() row values},
+ does it offer such support in IN lists as well?
+
+ For example, "... where (FIRST_NAME, LAST_NAME) IN ( (?, ?), (?, ?) ) ..."
+
+
+ True if this SQL dialect is known to support "row value
+ constructor" syntax in the IN list; false otherwise.
+
+
+
+
+ Should LOBs (both BLOB and CLOB) be bound using stream operations (i.e.
+ {@link java.sql.PreparedStatement#setBinaryStream}).
+
+ True if BLOBs and CLOBs should be bound using stream operations.
+
+
+
+ Does this dialect support parameters within the select clause of
+ INSERT ... SELECT ... statements?
+
+ True if this is supported; false otherwise.
+
+
+
+ Does this dialect support asking the result set its positioning
+ information on forward only cursors. Specifically, in the case of
+ scrolling fetches, Hibernate needs to use
+ {@link java.sql.ResultSet#isAfterLast} and
+ {@link java.sql.ResultSet#isBeforeFirst}. Certain drivers do not
+ allow access to these methods for forward only cursors.
+
+ NOTE : this is highly driver dependent!
+
+
+ True if methods like {@link java.sql.ResultSet#isAfterLast} and
+ {@link java.sql.ResultSet#isBeforeFirst} are supported for forward
+ only cursors; false otherwise.
+
+
+
+
+ Does this dialect support definition of cascade delete constraints
+ which can cause circular chains?
+
+ True if circular cascade delete constraints are supported; false otherwise.
+
+
+
+ Are subselects supported as the left-hand-side (LHS) of
+ IN-predicates.
+
+ In other words, is syntax like "... {subquery} IN (1, 2, 3) ..." supported?
+
+ True if subselects can appear as the LHS of an in-predicate;false otherwise.
+
+
+
+ Expected LOB usage pattern is such that I can perform an insert
+ via prepared statement with a parameter binding for a LOB value
+ without crazy casting to JDBC driver implementation-specific classes...
+
+ Part of the trickiness here is the fact that this is largely
+ driver dependent. For example, Oracle (which is notoriously bad with
+ LOB support in their drivers historically) actually does a pretty good
+ job with LOB support as of the 10.2.x versions of their drivers...
+
+
+ True if normal LOB usage patterns can be used with this driver;
+ false if driver-specific hookiness needs to be applied.
+
+
+
+ Does the dialect support propagating changes to LOB
+ values back to the database? Talking about mutating the
+ internal value of the locator as opposed to supplying a new
+ locator instance...
+
+ For BLOBs, the internal value might be changed by:
+ {@link java.sql.Blob#setBinaryStream},
+ {@link java.sql.Blob#setBytes(long, byte[])},
+ {@link java.sql.Blob#setBytes(long, byte[], int, int)},
+ or {@link java.sql.Blob#truncate(long)}.
+
+ For CLOBs, the internal value might be changed by:
+ {@link java.sql.Clob#setAsciiStream(long)},
+ {@link java.sql.Clob#setCharacterStream(long)},
+ {@link java.sql.Clob#setString(long, String)},
+ {@link java.sql.Clob#setString(long, String, int, int)},
+ or {@link java.sql.Clob#truncate(long)}.
+
+ NOTE : I do not know the correct answer currently for
+ databases which (1) are not part of the cruise control process
+ or (2) do not {@link #supportsExpectedLobUsagePattern}.
+
+ True if the changes are propagated back to the database; false otherwise.
+
+
+
+ Is it supported to materialize a LOB locator outside the transaction in
+ which it was created?
+
+ Again, part of the trickiness here is the fact that this is largely
+ driver dependent.
+
+ NOTE: all database I have tested which {@link #supportsExpectedLobUsagePattern()}
+ also support the ability to materialize a LOB outside the owning transaction...
+
+ True if unbounded materialization is supported; false otherwise.
+
+
+
+ Does this dialect support referencing the table being mutated in
+ a subquery. The "table being mutated" is the table referenced in
+ an UPDATE or a DELETE query. And so can that table then be
+ referenced in a subquery of said UPDATE/DELETE query.
+
+ For example, would the following two syntaxes be supported:
+
delete from TABLE_A where ID not in ( select ID from TABLE_A )
+
update TABLE_A set NON_ID = 'something' where ID in ( select ID from TABLE_A)
+
+
+ True if this dialect allows references the mutating table from a subquery.
+
+
+ Does the dialect support an exists statement in the select clause?
+ True if exists checks are allowed in the select clause; false otherwise.
+
+
+
+ For the underlying database, is READ_COMMITTED isolation implemented by
+ forcing readers to wait for write locks to be released?
+
+ True if writers block readers to achieve READ_COMMITTED; false otherwise.
+
+
+
+ For the underlying database, is REPEATABLE_READ isolation implemented by
+ forcing writers to wait for read locks to be released?
+
+ True if readers block writers to achieve REPEATABLE_READ; false otherwise.
+
+
+
+ Does this dialect support using a JDBC bind parameter as an argument
+ to a function or procedure call?
+
+ True if the database supports accepting bind params as args; false otherwise.
+
+
+
+ The class (which implements )
+ which acts as this dialects identity-style generation strategy.
+
+ The native generator class.
+
+ Comes into play whenever the user specifies the "identity" generator.
+
+
+
+
+ Defines a contract for implementations that can extract the name of a violated
+ constraint from a SQLException that is the result of that constraint violation.
+
+
+
+
+ Extract the name of the violated constraint from the given SQLException.
+
+ The exception that was the result of the constraint violation.
+ The extracted constraint name.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Add a LIMIT clause to the given SQL SELECT
+
+ A Query in the form of a SqlString.
+ Offset of the first row is not zero
+ A new SqlString that contains the LIMIT clause.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Summary description for FirebirdDialect.
+
+
+ The FirebirdDialect defaults the following configuration properties:
+
+
+ Property
+ Default Value
+
+
+ connection.driver_class
+
+
+
+
+
+
+
+ Add a FIRST x [SKIP] y clause to the given SQL SELECT
+
+ A Query in the form of a SqlString.
+ Maximum number of rows to be returned by the query
+ Offset of the first row to process in the result set
+ A new SqlString that contains the FIRST clause.
+
+
+
+
+
+
+ A generic SQL dialect which may or may not work on any actual databases
+
+
+
+
+
+
+
+
+
+
+ Summary description for InformixDialect.
+ This dialect is intended to work with IDS version 7.31
+ However I can test only version 10.00 as I have only this version at work
+
+
+ The InformixDialect defaults the following configuration properties:
+
+
+ ConnectionDriver
+ NHibernate.Driver.OdbcDriver
+ PrepareSql
+ true
+
+
+ connection.driver_class
+
+
+
+
+
+
+
+
+
+
+ Get the FOR UPDATE OF column_list fragment appropriate for this
+ dialect given the aliases of the columns to be write locked.
+
+ The columns to be write locked.
+ The appropriate FOR UPDATE OF column_list clause string.
+
+
+
+ Does the dialect require that temporary table DDL statements occur in
+ isolation from other statements? This would be the case if the creation
+ would cause any current transaction to get committed implicitly.
+
+ see the result matrix above.
+
+ JDBC defines a standard way to query for this information via the
+ {@link java.sql.DatabaseMetaData#dataDefinitionCausesTransactionCommit()}
+ method. However, that does not distinguish between temporary table
+ DDL and other forms of DDL; MySQL, for example, reports DDL causing a
+ transaction commit via its driver, even though that is not the case for
+ temporary table DDL.
+
+ Possible return values and their meanings:
+
{@link Boolean#TRUE} - Unequivocally, perform the temporary table DDL in isolation.
+
{@link Boolean#FALSE} - Unequivocally, do not perform the temporary table DDL in isolation.
+
null - defer to the JDBC driver response in regards to {@link java.sql.DatabaseMetaData#dataDefinitionCausesTransactionCommit()}
+
+
+
+
+
+ Get the select command to use to retrieve the last generated IDENTITY
+ value for a particular table
+
+ The table into which the insert was done
+ The PK column.
+ The type code.
+ The appropriate select command
+
+
+
+ The syntax used during DDL to define a column as being an IDENTITY of
+ a particular type.
+
+ The type code.
+ The appropriate DDL fragment.
+
+
+
+ Create a strategy responsible
+ for handling this dialect's variations in how joins are handled.
+
+ This dialect's strategy.
+
+
+ The SQL literal value to which this database maps boolean values.
+ The boolean value
+ The appropriate SQL literal.
+
+
+ Apply s limit clause to the query.
+ The query to which to apply the limit.
+ Offset of the first row to be returned by the query (zero-based)
+ Maximum number of rows to be returned by the query
+ the modified SQL
+
+ Typically dialects utilize
+ limit caluses when they support limits. Thus, when building the
+ select command we do not actually need to know the limit or the offest
+ since we will just be using placeholders.
+
+ Here we do still pass along whether or not an offset was specified
+ so that dialects not supporting offsets can generate proper exceptions.
+ In general, dialects will override one or the other of this method and
+ .
+
+
+
+
+ The keyword used to insert a generated value into an identity column (or null).
+ Need if the dialect does not support inserts that specify no column values.
+
+
+
+ Command used to create a temporary table.
+
+
+
+ Get any fragments needing to be postfixed to the command for
+ temporary table creation.
+
+
+
+
+ Should the value returned by
+ be treated as callable. Typically this indicates that JDBC escape
+ sytnax is being used...
+
+
+
+
+ Retrieve the command used to retrieve the current timestammp from the database.
+
+
+
+
+ The name of the database-specific SQL function for retrieving the
+ current timestamp.
+
+
+
+
+
+
+ Is FOR UPDATE OF syntax supported?
+ True if the database supports FOR UPDATE OF syntax; false otherwise.
+
+
+
+ Does this dialect support FOR UPDATE in conjunction with outer joined rows?
+
+ True if outer joined rows can be locked via FOR UPDATE.
+
+
+ Does this dialect support temporary tables?
+
+
+ Does this dialect support a way to retrieve the database's current timestamp value?
+
+
+
+ Whether this dialect have an Identity clause added to the data type or a
+ completely seperate identity data type
+
+
+
+
+ The syntax that returns the identity value of the last insert, if native
+ key generation is supported
+
+
+
+
+ The keyword used to specify an identity column, if native key generation is supported
+
+
+
+
+ Does this dialect support sequences?
+
+
+
+
+ Does this Dialect have some kind of LIMIT syntax?
+
+ False, unless overridden.
+
+
+
+ Does this Dialect support an offset?
+
+
+
+
+ Can parameters be used for a statement containing a LIMIT?
+
+
+
+
+ Does the LIMIT clause come at the start of the
+ SELECT statement rather than at the end?
+
+ false, unless overridden
+
+
+
+ Does this dialect support UNION ALL, which is generally a faster variant of UNION?
+ True if UNION ALL is supported; false otherwise.
+
+
+
+
+ Knows how to extract a violated constraint name from an error message based on the
+ fact that the constraint name is templated within the message.
+
+
+
+
+ Extracts the constraint name based on a template (i.e., templateStartconstraintNametemplateEnd).
+
+ The pattern denoting the start of the constraint name within the message.
+ The pattern denoting the end of the constraint name within the message.
+ The templated error message containing the constraint name.
+ The found constraint name, or null.
+
+
+
+ Extract the name of the violated constraint from the given SQLException.
+
+ The exception that was the result of the constraint violation.
+ The extracted constraint name.
+
+
+
+ Extract the name of the violated constraint from the given DbException.
+
+ The exception that was the result of the constraint violation.
+ The extracted constraint name.
+
+
+
+ Summary description for InformixDialect.
+ This dialect is intended to work with IDS version 9.40
+
+
+ The InformixDialect defaults the following configuration properties:
+
+
+ ConnectionDriver
+ NHibernate.Driver.OdbcDriver
+ PrepareSql
+ true
+
+
+ connection.driver_class
+
+
+
+
+
+
+
+
+
+
+ Generate the appropriate select statement to to retreive the next value
+ of a sequence.
+
+ the name of the sequence
+ String The "nextval" select string.
+ This should be a "stand alone" select statement.
+
+
+
+ Generate the select expression fragment that will retrieve the next
+ value of a sequence as part of another (typically DML) statement.
+
+ the name of the sequence
+ The "nextval" fragment.
+
+ This differs from in that this
+ should return an expression usable within another statement.
+
+
+
+
+ Create a strategy responsible
+ for handling this dialect's variations in how joins are handled.
+
+ This dialect's strategy.
+
+
+ Get the select command used retrieve the names of all sequences.
+ The select command; or null if sequences are not supported.
+
+
+
+ Does this dialect support sequences?
+
+
+
+
+ Does this dialect support "pooled" sequences. Not aware of a better
+ name for this. Essentially can we specify the initial and increment values?
+
+ True if such "pooled" sequences are supported; false otherwise.
+
+
+
+ Does this Dialect have some kind of LIMIT syntax?
+
+ False, unless overridden.
+
+
+
+ Does this Dialect support an offset?
+
+
+
+
+ Summary description for InformixDialect.
+ This dialect is intended to work with IDS version 10.00
+
+
+ The InformixDialect defaults the following configuration properties:
+
+
+ ConnectionDriver
+ NHibernate.Driver.OdbcDriver
+ PrepareSql
+ true
+
+
+ connection.driver_class
+
+
+
+
+
+
+
+
+
+
+ Does this Dialect have some kind of LIMIT syntax?
+
+ False, unless overridden.
+
+
+
+ Does this Dialect support an offset?
+
+
+
+
+ An SQL dialect for IngresSQL.
+
+
+ The IngresDialect defaults the following configuration properties:
+
+
+ Property
+ Default Value
+
+
+ use_outer_join
+
+
+
+ connection.driver_class
+
+
+
+
+
+
+
+ An SQL dialect compatible with Microsoft SQL Server 2000.
+
+
+ The MsSql2000Dialect defaults the following configuration properties:
+
+
+ Property
+ Default Value
+
+
+ use_outer_join
+
+
+
+ connection.driver_class
+
+
+
+ prepare_sql
+
+
+
+
+
+
+
+
+
+
+ Generates the string to drop the table using SQL Server syntax.
+
+ The name of the table to drop.
+ The SQL with the inserted.
+
+
+
+ Add a LIMIT (TOP) clause to the given SQL SELECT
+
+ A Query in the form of a SqlString.
+ Maximum number of rows to be returned by the query
+ Offset of the first row to process in the result set
+ A new SqlString that contains the LIMIT clause.
+
+
+
+
+
+
+
+
+ MsSql does not require the OpenQuote to be escaped as long as the first char
+ is an OpenQuote.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Does this Dialect have some kind of LIMIT syntax?
+
+ True, we'll use the SELECT TOP nn syntax.
+
+
+
+ Does this Dialect support an offset?
+
+
+
+
+ Can parameters be used for a statement containing a LIMIT?
+
+
+
+
+ Does the LIMIT clause take a "maximum" row number
+ instead of a total number of returned rows?
+
+ false, unless overridden
+
+
+
+ Add a LIMIT clause to the given SQL SELECT
+
+ The to base the limit query off of.
+ Offset of the first row to be returned by the query (zero-based)
+ Maximum number of rows to be returned by the query
+ A new with the LIMIT clause applied.
+
+ The LIMIT SQL will look like
+
+
+ SELECT
+ TOP last (columns)
+ FROM
+ (SELECT (columns), ROW_NUMBER() OVER(ORDER BY {original order by, with un-aliased column names) as __hibernate_sort_row
+ {original from}) as query
+ WHERE query.__hibernate_sort_row > offset
+ ORDER BY query.__hibernate_sort_row
+
+
+
+ Note that we need to add explicitly specify the columns, because we need to be able to use them
+ in a paged subselect. NH-1155
+
+
+
+
+ Indicates whether the string fragment contains matching parenthesis
+
+ the statement to evaluate
+ true if the statment contains no parenthesis or an equal number of
+ opening and closing parenthesis;otherwise false
+
+
+
+ Sql Server 2005 supports a query statement that provides LIMIT
+ functionality.
+
+ true
+
+
+
+ Sql Server 2005 supports a query statement that provides LIMIT
+ functionality with an offset.
+
+ true
+
+
+
+ Sql Server 2005 supports a query statement that provides LIMIT
+ functionality with an offset.
+
+ false
+
+
+
+ This specialized string tokenizier will break a string to tokens, taking
+ into account single quotes, parenthesis and commas and [ ]
+ Notice that we aren't differenciating between [ ) and ( ] on purpose, it would complicate
+ the code and it is not legal at any rate.
+
+
+
+
+ An SQL dialect compatible with Microsoft SQL Server 7.
+
+
+ There have been no test run with this because the NHibernate team does not
+ have a machine with Sql 7 installed on it. But there have been users using
+ Ms Sql 7 with NHibernate. As issues with Ms Sql 7 and NHibernate become known
+ this Dialect will be updated.
+
+
+
+
+ Uses @@identity to get the Id value.
+
+
+ There is a well known problem with @@identity and triggers that insert into
+ rows into other tables that also use an identity column. The only way I know
+ of to get around this problem is to upgrade your database server to Ms Sql 2000.
+
+
+
+
+ A dialect for SQL Server Everywhere (SQL Server CE).
+
+
+
+
+ A SQL dialect for MySQL
+
+
+ The MySQLDialect defaults the following configuration properties:
+
+
+ Property
+ Default Value
+
+
+ use_outer_join
+
+
+
+ connection.driver_class
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Create the SQL string to drop a foreign key constraint.
+
+ The name of the foreign key to drop.
+ The SQL string to drop the foreign key constraint.
+
+
+
+ Create the SQL string to drop a primary key constraint.
+
+ The name of the primary key to drop.
+ The SQL string to drop the primary key constraint.
+
+
+
+ Create the SQL string to drop an index.
+
+ The name of the index to drop.
+ The SQL string to drop the index constraint.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A dialect specifically for use with Oracle 10g.
+
+
+ The main difference between this dialect and
+ is the use of "ANSI join syntax" here...
+
+
+
+
+ A dialect for Oracle 8i.
+
+
+
+
+ Support for the oracle proprietary join syntax...
+
+ The orqacle join fragment
+
+
+
+ Map case support to the Oracle DECODE function. Oracle did not
+ add support for CASE until 9i.
+
+ The oracle CASE -> DECODE fragment
+
+
+
+ Allows access to the basic
+ implementation...
+
+ The mapping type
+ The appropriate select cluse fragment
+
+
+
+ It's a immature version, it just work.
+ An SQL dialect for Oracle Lite
+
+
+ The OracleLiteDialect defaults the following configuration properties:
+
+
+ Property
+ Default Value
+
+
+ use_outer_join
+
+
+
+ connection.driver_class
+
+
+
+
+
+
+
+
+
+
+
+
+
+ An SQL dialect for PostgreSQL 8.1 and above.
+
+
+
+ PostgreSQL 8.1 supports FOR UPDATE ... NOWAIT syntax.
+
+
+ PostgreSQL supports Identity column using the "SERIAL" type.
+ Serial type is a "virtual" type that will automatically:
+
+
+ Create a sequence named tablename_colname_seq.
+ Set the default value of this column to the next value of the
+ sequence. (using function nextval('tablename_colname_seq'))
+ Add a "NOT NULL" constraint to this column.
+ Set the sequence as "owned by" the table.
+
+
+ To insert the next value of the sequence into the serial column,
+ exclude the column from the list of columns
+ in the INSERT statement or use the DEFAULT key word.
+
+
+ If the table or the column is dropped, the sequence is dropped too.
+
+
+
+
+
+
+ An SQL dialect for PostgreSQL.
+
+
+ The PostgreSQLDialect defaults the following configuration properties:
+
+
+ Property
+ Default Value
+
+
+ use_outer_join
+
+
+
+ connection.driver_class
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Offset of the first row to process in the result set is non-zero
+
+
+
+ PostgreSQL requires to cast NULL values to correctly handle UNION/UNION ALL
+
+ See
+ PostgreSQL BUG #1847: Error in some kind of UNION query.
+
+ The type code.
+ null casted as : "null::sqltypename"
+
+
+
+
+
+
+
+
+ PostgreSQL supports UNION ALL clause
+
+ Reference:
+ PostgreSQL 8.0 UNION Clause documentation
+
+
+
+
+
+ PostgreSQL supports serial and serial4 type for 4 bytes integer auto increment column.
+ bigserial or serial8 can be used for 8 bytes integer auto increment column.
+
+ bigserial if equal Int64,
+ serial otherwise
+
+
+
+ PostgreSQL supports Identity column using the "SERIAL" type.
+
+
+
+
+ PostgreSQL doesn't have type in identity column.
+
+
+ To create an identity column it uses the SQL syntax
+ CREATE TABLE tablename (colname SERIAL); or
+ CREATE TABLE tablename (colname BIGSERIAL);
+
+
+
+
+ The sql syntax to insert a row without specifying any column in PostgreSQL is
+ INSERT INTO table DEFAULT VALUES;
+
+
+
+
+ PostgreSQL 8.1 and above defined the fuction lastval() that returns the
+ value of the last sequence that nextval() was used on in the current session.
+ Call lastval() if nextval() has not yet been called in the current
+ session throw an exception.
+
+
+
+
+ An SQL dialect for PostgreSQL 8.2 and above.
+
+
+ PostgreSQL 8.2 supports DROP TABLE IF EXISTS tablename
+ and DROP SEQUENCE IF EXISTS sequencename syntax.
+ See for more information.
+
+
+
+
+ A SQL dialect for SQLite.
+
+
+
+
+
+
+
+
+
+
+
+
+ Add a LIMIT N clause to the given SQL SELECT
+
+ A Query in the form of a SqlString.
+ Maximum number of rows to be returned by the query
+ Offset of the first row to process in the result set
+ A new SqlString that contains the LIMIT clause.
+
+
+
+ This is a subclass of SybaseDialect for sybase 11 databases (specifically tested against 11.9.2). 11.9.2 does not support ANSI JOINs
+ therefore we have to provide a special join fragment for left/right joins (*= and =* respectively).
+
+
+
+
+ An SQL dialect compatible with Sybase.
+
+
+
+ This dialect probably will not work with schema-export. If anyone out there
+ can fill in the ctor with DbTypes to Strings that would be helpful.
+
+ The SybaseDialect defaults the following configuration properties:
+
+
+ Property
+ Default Value
+
+
+ use_outer_join
+
+
+
+ connection.driver_class
+
+
+
+ prepare_sql
+
+
+
+
+
+
+
+
+
+
+ Sybase does not support quoted aliases, this function thus returns
+ aliasName as is.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This class is basically a port of the hibernate 3.2 Sybase 11 join fragment. It uses concepts from that join fragment and the Oracle join fragment in NHibernate
+
+
+
+
+ Represents a SQL JOIN
+
+
+
+
+ An SQL dialect compatible with Sybase.
+
+
+
+ This dialect probably will not work with schema-export. If anyone out there
+ can fill in the ctor with DbTypes to Strings that would be helpful.
+
+ The SybaseDialect defaults the following configuration properties:
+
+
+ Property
+ Default Value
+
+
+ use_outer_join
+
+
+
+ connection.driver_class
+
+
+
+ prepare_sql
+
+
+
+
+
+
+
+
+
+
+ Sybase does not support quoted aliases, this function thus returns
+ aliasName as is.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ An SQL dialect for Sybase Adaptive Server Anywhere 9.0/10.0
+
+
+
+ This dialect probably will not work with schema-export. If anyone out there
+ can fill in the ctor with DbTypes to Strings that would be helpful.
+
+ The SybaseAnywhereDialect defaults the following configuration properties:
+
+
+ Property
+ Default Value
+
+
+ use_outer_join
+
+
+
+ connection.driver_class
+
+
+
+ prepare_sql
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ASA does not require to drop constraint before dropping tables, and DROP statement
+ syntax used by Hibernate to drop constraint is not compatible with ASA, so disable it.
+ Comments matchs SybaseAnywhereDialect from Hibernate-3.1 src
+
+
+
+
+ This class maps a DbType to names.
+
+
+ Associations may be marked with a capacity. Calling the Get()
+ method with a type and actual size n will return the associated
+ name with smallest capacity >= n, if available and an unmarked
+ default type otherwise.
+ Eg, setting
+
+ Names.Put(DbType, "TEXT" );
+ Names.Put(DbType, 255, "VARCHAR($l)" );
+ Names.Put(DbType, 65534, "LONGVARCHAR($l)" );
+
+ will give you back the following:
+
+ Names.Get(DbType) // --> "TEXT" (default)
+ Names.Get(DbType,100) // --> "VARCHAR(100)" (100 is in [0:255])
+ Names.Get(DbType,1000) // --> "LONGVARCHAR(1000)" (100 is in [256:65534])
+ Names.Get(DbType,100000) // --> "TEXT" (default)
+
+ On the other hand, simply putting
+
+ Names.Put(DbType, "VARCHAR($l)" );
+
+ would result in
+
+ Names.Get(DbType) // --> "VARCHAR($l)" (will cause trouble)
+ Names.Get(DbType,100) // --> "VARCHAR(100)"
+ Names.Get(DbType,1000) // --> "VARCHAR(1000)"
+ Names.Get(DbType,10000) // --> "VARCHAR(10000)"
+
+
+
+
+
+ Get default type name for specified type
+
+ the type key
+ the default type name associated with the specified key
+
+
+
+ Get the type name specified type and size
+
+ the type key
+ the SQL length
+ the SQL scale
+ the SQL precision
+
+ The associated name with smallest capacity >= size if available and the
+ default type name otherwise
+
+
+
+
+ Set a type name for specified type key and capacity
+
+ the type key
+ the (maximum) type size/length
+ The associated name
+
+
+
+
+
+
+
+
+
+
+ The ASAClientDriver Driver provides a database driver for Adaptive Server Anywhere 10.0.
+
+
+
+
+ Base class for the implementation of IDriver
+
+
+
+
+ A strategy for describing how NHibernate should interact with the different .NET Data
+ Providers.
+
+
+
+ The IDriver interface is not intended to be exposed to the application.
+ Instead it is used internally by NHibernate to obtain connection objects, command objects, and
+ to generate and prepare IDbCommands. Implementors should provide a
+ public default constructor.
+
+
+ This is the interface to implement, or you can inherit from
+ if you have an ADO.NET data provider that NHibernate does not have built in support for.
+ To use the driver, NHibernate property connection.driver_class should be
+ set to the assembly-qualified name of the driver class.
+
+
+ key="connection.driver_class"
+ value="FullyQualifiedClassName, AssemblyName"
+
+
+
+
+
+ Configure the driver using .
+
+
+
+
+ Creates an uninitialized IDbConnection object for the specific Driver
+
+
+
+
+ Generates an IDbCommand from the SqlString according to the requirements of the DataProvider.
+
+ The of the command to generate.
+ The SqlString that contains the SQL.
+ The types of the parameters to generate for the command.
+ An IDbCommand with the CommandText and Parameters fully set.
+
+
+
+ Prepare the by calling .
+ May be a no-op if the driver does not support preparing commands, or for any other reason.
+
+
+
+
+
+ Generates an IDbDataParameter for the IDbCommand. It does not add the IDbDataParameter to the IDbCommand's
+ Parameter collection.
+
+ The IDbCommand to use to create the IDbDataParameter.
+ The name to set for IDbDataParameter.Name
+ The SqlType to set for IDbDataParameter.
+ An IDbDataParameter ready to be added to an IDbCommand.
+
+
+
+ Does this Driver support having more than 1 open IDataReader with
+ the same IDbConnection.
+
+
+
+ A value of indicates that an exception would be thrown if NHibernate
+ attempted to have 2 IDataReaders open using the same IDbConnection. NHibernate
+ (since this version is a close to straight port of Hibernate) relies on the
+ ability to recursively open 2 IDataReaders. If the Driver does not support it
+ then NHibernate will read the values from the IDataReader into an .
+
+
+ A value of will result in greater performance because an IDataReader can be used
+ instead of the . So if the Driver supports it then make sure
+ it is set to .
+
+
+
+
+
+ Can we issue several select queries in a single query, and get
+ several result sets back?
+
+
+
+
+ How we separate the queries when we use multiply queries.
+
+
+
+
+ Change the parameterName into the correct format IDbCommand.CommandText
+ for the ConnectionProvider
+
+ The unformatted name of the parameter
+ A parameter formatted for an IDbCommand.CommandText
+
+
+
+ Changes the parameterName into the correct format for an IDbParameter
+ for the Driver.
+
+
+ For SqlServerConnectionProvider it will change id to @id
+
+ The unformatted name of the parameter
+ A parameter formatted for an IDbParameter.
+
+
+
+ Generates an IDbDataParameter for the IDbCommand. It does not add the IDbDataParameter to the IDbCommand's
+ Parameter collection.
+
+ The IDbCommand to use to create the IDbDataParameter.
+ The name to set for IDbDataParameter.Name
+ The SqlType to set for IDbDataParameter.
+ An IDbDataParameter ready to be added to an IDbCommand.
+
+
+
+ Override to make any adjustments to the IDbCommand object. (e.g., Oracle custom OUT parameter)
+ Parameters have been bound by this point, so their order can be adjusted too.
+ This is analagous to the RegisterResultSetOutParameter() function in Hibernate.
+
+
+
+
+ Does this Driver require the use of a Named Prefix in the SQL statement.
+
+
+ For example, SqlClient requires select * from simple where simple_id = @simple_id
+ If this is false, like with the OleDb provider, then it is assumed that
+ the ? can be a placeholder for the parameter in the SQL statement.
+
+
+
+
+ Does this Driver require the use of the Named Prefix when trying
+ to reference the Parameter in the Command's Parameter collection.
+
+
+ This is really only useful when the UseNamedPrefixInSql == true. When this is true the
+ code will look like:
+ IDbParameter param = cmd.Parameters["@paramName"]
+ if this is false the code will be
+ IDbParameter param = cmd.Parameters["paramName"].
+
+
+
+
+ The Named Prefix for parameters.
+
+
+ Sql Server uses "@" and Oracle uses ":".
+
+
+
+
+ Does this Driver support IDbCommand.Prepare().
+
+
+
+ A value of indicates that an exception would be thrown or the
+ company that produces the Driver we are wrapping does not recommend using
+ IDbCommand.Prepare().
+
+
+ A value of indicates that calling IDbCommand.Prepare() will function
+ fine on this Driver.
+
+
+
+
+
+ Initializes a new instance of with
+ type names that are loaded from the specified assembly.
+
+ Assembly to load the types from.
+ Connection type name.
+ Command type name.
+
+
+
+ Initializes a new instance of the class.
+
+
+ Thrown when the iAnywhere.Data.SQLAnywhere assembly is not and can not be loaded.
+
+
+
+
+ iAnywhere.Data.SQLAnywhere uses named parameters in the sql.
+
+ - Sybase uses String.Empty in the sql.
+
+
+
+ iAnywhere.Data.SQLAnywhere use the string.Empty to locate parameters in sql.
+
+
+
+
+ The ASAClientDriver Driver provides a database driver for Adaptive Server Anywhere 9.0.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Thrown when the ASA.Data.AsaClient assembly is not and can not be loaded.
+
+
+
+
+ iAnywhere.Data.AsaClient uses named parameters in the sql.
+
+ - Sybase uses String.Empty in the sql.
+
+
+
+ iAnywhere.Data.AsaClient use the string.Empty to locate parameters in sql.
+
+
+
+
+ A NHibernate Driver for using the IBM.Data.DB2.iSeries DataProvider.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Thrown when the IBM.Data.DB2.iSeries assembly can not be loaded.
+
+
+
+
+ A NHibernate Driver for using the IBM.Data.DB2 DataProvider.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Thrown when the IBM.Data.DB2 assembly can not be loaded.
+
+
+
+
+ A NHibernate Driver for using the Firebird data provider located in
+ FirebirdSql.Data.FirebirdClient assembly.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Thrown when the FirebirdSql.Data.Firebird assembly can not be loaded.
+
+
+
+
+ A NHibernate Driver for using the FirebirdSql.Data.Firebird DataProvider.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Thrown when the FirebirdSql.Data.Firebird assembly can not be loaded.
+
+
+
+
+ A NHibernate Driver for using the Informix DataProvider
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Thrown when the IBM.Data.Informix assembly can not be loaded.
+
+
+
+
+ A NHibernate Driver for using the Ingres DataProvider
+
+
+
+
+
+
+ Provides a database driver for MySQL.
+
+
+
+ In order to use this driver you must have the assembly MySql.Data.dll available for
+ NHibernate to load, including its dependencies (ICSharpCode.SharpZipLib.dll is required by
+ the assembly MySql.Data.dll as of the time of this writing).
+
+
+ Please check the product's website
+ for any updates and/or documentation regarding MySQL.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Thrown when the MySql.Data assembly can not be loaded.
+
+
+
+
+ MySql.Data uses named parameters in the sql.
+
+ - MySql uses ? in the sql.
+
+
+
+
+
+
+ MySql.Data use the ? to locate parameters in sql.
+
+ ? is used to locate parameters in sql.
+
+
+
+ The MySql.Data driver does NOT support more than 1 open IDataReader
+ with only 1 IDbConnection.
+
+ - it is not supported.
+
+
+
+ MySql.Data does not support preparing of commands.
+
+ - it is not supported.
+
+ With the Gamma MySql.Data provider it is throwing an exception with the
+ message "Expected End of data packet" when a select command is prepared.
+
+
+
+
+ Some Data Providers (ie - SqlClient) do not support Multiple Active Result Sets (MARS).
+ NHibernate relies on being able to create MARS to read Components and entities inside
+ of Collections.
+
+
+ This is a completely off-line DataReader - the underlying IDataReader that was used to create
+ this has been closed and no connections to the Db exists.
+
+
+
+
+ Creates a NDataReader from a
+
+ The to get the records from the Database.
+ if we are loading the in the middle of reading it.
+
+ NHibernate attempts to not have to read the contents of an into memory until it absolutely
+ has to. What that means is that it might have processed some records from the and will
+ pick up the midstream so that the underlying can be closed
+ so a new one can be opened.
+
+
+
+
+ Sets the values that can be cached back to null and sets the
+ index of the cached column to -1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Takes care of freeing the managed and unmanaged resources that
+ this class is responsible for.
+
+
+ There are not any unmanaged resources or any disposable managed
+ resources that this class is holding onto. It is in here
+ to comply with the interface.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Stores a Result from a DataReader in memory.
+
+
+
+
+ Initializes a new instance of the NResult class.
+
+ The IDataReader to populate the Result with.
+
+ if the is already positioned on the record
+ to start reading from.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ An implementation of that will work with either an
+ returned by Execute or with an
+ whose contents have been read into a .
+
+
+
+ This allows NHibernate to use the underlying for as long as
+ possible without the need to read everything into the .
+
+
+ The consumer of the returned from does
+ not need to know the underlying reader and can use it the same even if it switches from an
+ to in the middle of its use.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying IDataReader to use.
+
+
+
+ Initializes a new instance of the NHybridDataReader class.
+
+ The underlying IDataReader to use.
+ if the contents of the IDataReader should be read into memory right away.
+
+
+
+ Reads all of the contents into memory because another
+ needs to be opened.
+
+
+ This will result in a no op if the reader is closed or is already in memory.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A flag to indicate if Disose() has been called.
+
+
+
+
+ Finalizer that ensures the object is correctly disposed of.
+
+
+
+
+ Takes care of freeing the managed and unmanaged resources that
+ this class is responsible for.
+
+
+
+
+ Takes care of freeing the managed and unmanaged resources that
+ this class is responsible for.
+
+ Indicates if this NHybridDataReader is being Disposed of or Finalized.
+
+ If this NHybridDataReader is being Finalized (isDisposing==false) then make sure not
+ to call any methods that could potentially bring this NHybridDataReader back to life.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets if the object is in the middle of reading a Result.
+
+ if NextResult and Read have been called on the .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The PostgreSQL data provider provides a database driver for PostgreSQL.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Thrown when the Npgsql assembly can not be loaded.
+
+
+
+
+ A NHibernate Driver for using the Odbc DataProvider
+
+
+ Always look for a native .NET DataProvider before using the Odbc DataProvider.
+
+
+
+
+ A NHibernate Driver for using the OleDb DataProvider
+
+
+ Always look for a native .NET DataProvider before using the OleDb DataProvider.
+
+
+
+
+ OLE DB provider does not support multiple open data readers
+
+
+
+
+ A NHibernate Driver for using the Oracle DataProvider.
+
+
+
+
+ A NHibernate Driver for using the Oracle.DataAccess DataProvider
+
+
+ Code was contributed by James Mills
+ on the NHibernate forums in this
+ post.
+
+
+
+
+ Initializes a new instance of .
+
+
+ Thrown when the Oracle.DataAccess assembly can not be loaded.
+
+
+
+
+ This adds logic to ensure that a DbType.Boolean parameter is not created since
+ ODP.NET doesn't support it.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A NHibernate Driver for using the Oracle.DataAccess.Lite DataProvider
+
+
+
+
+ Initializes a new instance of .
+
+
+ Thrown when the Oracle.DataAccess.Lite_w32 assembly can not be loaded.
+
+
+
+
+ This adds logic to ensure that a DbType.Boolean parameter is not created since
+ ODP.NET doesn't support it.
+
+
+
+
+ A NHibernate Driver for using the SqlClient DataProvider
+
+
+
+
+ Creates an uninitialized object for
+ the SqlClientDriver.
+
+ An unitialized object.
+
+
+
+ Creates an uninitialized object for
+ the SqlClientDriver.
+
+ An unitialized object.
+
+
+
+ MsSql requires the use of a Named Prefix in the SQL statement.
+
+
+ because MsSql uses "@".
+
+
+
+
+ MsSql requires the use of a Named Prefix in the Parameter.
+
+
+ because MsSql uses "@".
+
+
+
+
+ The Named Prefix for parameters.
+
+
+ Sql Server uses "@".
+
+
+
+
+ The SqlClient driver does NOT support more than 1 open IDataReader
+ with only 1 IDbConnection.
+
+ - it is not supported.
+
+ MS SQL Server 2000 (and 7) throws an exception when multiple IDataReaders are
+ attempted to be opened. When SQL Server 2005 comes out a new driver will be
+ created for it because SQL Server 2005 is supposed to support it.
+
+
+
+
+ NHibernate driver for the System.Data.SQLite data provider for .NET 2.0.
+
+
+
+ In order to use this driver you must have the System.Data.SQLite.dll assembly available
+ for NHibernate to load. This assembly includes the SQLite.dll or SQLite3.dll libraries.
+
+
+ You can get the System.Data.SQLite.dll assembly from http://sourceforge.net/projects/sqlite-dotnet2.
+
+
+
+
+
+ Initializes a new instance of .
+
+
+ Thrown when the SQLite.NET assembly can not be loaded.
+
+
+
+
+ NHibernate driver for the SQLite.NET data provider.
+
+ In order to use this Driver you must have the SQLite.NET.dll Assembly available for NHibernate to load it.
+ You must also have the SQLite.dll and SQLite3.dll libraries.
+
+
+
+
+
+ Initializes a new instance of .
+
+
+ Thrown when the SQLite.NET assembly can not be loaded.
+
+
+
+
+ A NHibernate driver for Microsoft SQL Server CE data provider
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ MsSql requires the use of a Named Prefix in the SQL statement.
+
+
+ because MsSql uses "@".
+
+
+
+
+ MsSql requires the use of a Named Prefix in the Parameter.
+
+
+ because MsSql uses "@".
+
+
+
+
+ The Named Prefix for parameters.
+
+
+ Sql Server uses "@".
+
+
+
+
+ The SqlClient driver does NOT support more than 1 open IDataReader
+ with only 1 IDbConnection.
+
+ - it is not supported.
+
+ Ms Sql 2000 (and 7) throws an Exception when multiple DataReaders are
+ attempted to be Opened. When Yukon comes out a new Driver will be
+ created for Yukon because it is supposed to support it.
+
+
+
+
+ The SybaseClientDriver Driver provides a database driver for Sybase.
+
+
+ It has been reported to work with the .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Thrown when the Sybase.Data.AseClient assembly can not be loaded.
+
+
+
+
+ Sybase.Data.AseClient uses named parameters in the sql.
+
+ - Sybase uses @ in the sql.
+
+
+
+
+
+
+ Sybase.Data.AseClient use the @ to locate parameters in sql.
+
+ @ is used to locate parameters in sql.
+
+
+
+ The SybaseClientDriver Driver provides a database driver for Sybase.
+
+
+ It has been reported to work with the .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Thrown when the Sybase.Data.AseClient assembly can not be loaded.
+
+
+
+
+ Sybase.Data.AseClient uses named parameters in the sql.
+
+ - Sybase uses @ in the sql.
+
+
+
+
+
+
+ Sybase.Data.AseClient use the @ to locate parameters in sql.
+
+ @ is used to locate parameters in sql.
+
+
+
+ Represents state associated with the processing of a given
+ in regards to loading collections.
+
+
+ Another implementation option to consider is to not expose ResultSets
+ directly (in the JDBC redesign) but to always "wrap" them and apply a [series of] context[s] to that wrapper.
+
+
+
+
+ Creates a collection load context for the given result set.
+
+ Callback to other collection load contexts.
+ The result set this is "wrapping".
+
+
+
+ Retrieve the collection that is being loaded as part of processing this result set.
+
+ The persister for the collection being requested.
+ The key of the collection being requested.
+ The loading collection (see discussion above).
+
+ Basically, there are two valid return values from this method:
+
an instance of {@link PersistentCollection} which indicates to
+ continue loading the result set row data into that returned collection
+ instance; this may be either an instance already associated and in the
+ midst of being loaded, or a newly instantiated instance as a matching
+ associated collection was not found.
+
null indicates to ignore the corresponding result set row
+ data relating to the requested collection; this indicates that either
+ the collection was found to already be associated with the persistence
+ context in a fully loaded state, or it was found in a loading state
+ associated with another result set processing context.
+
+
+
+
+
+ Finish the process of collection-loading for this bound result set. Mainly this
+ involves cleaning up resources and notifying the collections that loading is
+ complete.
+
+ The persister for which to complete loading.
+
+
+ Add the collection to the second-level cache
+ The entry representing the collection to add
+ The persister
+
+
+
+ Maps to specific contextual data
+ related to processing that .
+
+
+ Implementation note: internally an is used to maintain
+ the mappings; was chosen because I'd rather not be
+ dependent upon potentially bad and
+ implementations.
+ Considering the JDBC-redesign work, would further like this contextual info
+ not mapped separately, but available based on the result set being processed.
+ This would also allow maintaining a single mapping as we could reliably get
+ notification of the result-set closing...
+
+
+
+ Creates and binds this to the given persistence context.
+ The persistence context to which this will be bound.
+
+
+
+ Release internal state associated with the given result set.
+
+ The result set for which it is ok to release associated resources.
+
+ This should be called when we are done with processing said result set,
+ ideally as the result set is being closed.
+
+
+
+ Release internal state associated with *all* result sets.
+
+ This is intended as a "failsafe" process to make sure we get everything
+ cleaned up and released.
+
+
+
+
+ Get the {@link CollectionLoadContext} associated with the given
+ {@link ResultSet}, creating one if needed.
+
+ The result set for which to retrieve the context.
+ The processing context.
+
+
+
+ Attempt to locate the loading collection given the owner's key. The lookup here
+ occurs against all result-set contexts...
+
+ The collection persister
+ The owner key
+ The loading collection, or null if not found.
+
+
+
+ Register a loading collection xref.
+
+ The xref collection key
+ The corresponding loading collection entry
+
+ This xref map is used because sometimes a collection is in process of
+ being loaded from one result set, but needs to be accessed from the
+ context of another "nested" result set processing.
+ Implementation note: package protected, as this is meant solely for use
+ by {@link CollectionLoadContext} to be able to locate collections
+ being loaded by other {@link CollectionLoadContext}s/{@link ResultSet}s.
+
+
+
+
+ The inverse of {@link #registerLoadingCollectionXRef}. Here, we are done
+ processing the said collection entry, so we remove it from the
+ load context.
+
+ The key of the collection we are done processing.
+
+ The idea here is that other loading collections can now reference said
+ collection directly from the {@link PersistenceContext} because it
+ has completed its load cycle.
+ Implementation note: package protected, as this is meant solely for use
+ by {@link CollectionLoadContext} to be able to locate collections
+ being loaded by other {@link CollectionLoadContext}s/{@link ResultSet}s.
+
+
+
+
+ Locate the LoadingCollectionEntry within *any* of the tracked
+ s.
+
+ The collection key.
+ The located entry; or null.
+
+ Implementation note: package protected, as this is meant solely for use
+ by to be able to locate collections
+ being loaded by other s/ResultSets.
+
+
+
+
+ Retrieves the persistence context to which this is bound.
+
+
+
+
+ Do we currently have any internal entries corresponding to loading
+ collections?
+
+ True if we currently hold state pertaining to loading collections; false otherwise.
+
+
+
+ Represents a collection currently being loaded.
+
+
+
+ Describes a return in a native SQL query.
+
+
+
+ Represents a return defined as part of a native sql query which
+ names a collection role in the form {classname}.{collectionrole}; it
+ is used in defining a custom sql query for loading an entity's
+ collection in non-fetching scenarios (i.e., loading the collection
+ itself as the "root" of the result).
+
+
+
+
+ Represents the base information for a non-scalar return defined as part of
+ a native sql query.
+
+
+
+ Constructs some form of non-scalar return descriptor
+ The result alias
+ Any user-supplied column->property mappings
+ The lock mode to apply to the return.
+
+
+ Retrieve the defined result alias
+
+
+ Retrieve the lock-mode to apply to this return
+
+
+ Retrieve the user-supplied column->property mappings.
+
+
+ Construct a native-sql return representing a collection initializer
+ The result alias
+
+ The entity-name of the entity owning the collection to be initialized.
+
+
+ The property name (on the owner) which represents
+ the collection to be initialized.
+
+ Any user-supplied column->property mappings
+ The lock mode to apply to the collection.
+
+
+
+ The class owning the collection.
+
+
+
+
+ The name of the property representing the collection from the .
+
+
+
+
+ Represents a return defined as part of a native sql query which
+ names a fetched role.
+
+
+
+ Construct a return descriptor representing some form of fetch.
+ The result alias
+ The owner's result alias
+ The owner's property representing the thing to be fetched
+ Any user-supplied column->property mappings
+ The lock mode to apply
+
+
+ The alias of the owner of this fetched association.
+
+
+
+ Retrieve the property name (relative to the owner) which maps to
+ the association to be fetched.
+
+
+
+
+ Represents a return defined as part of a native sql query which
+ names a "root" entity. A root entity means it is explicitly a
+ "column" in the result, as opposed to a fetched relationship or role.
+
+
+
+
+ Construct a return representing an entity returned at the root
+ of the result.
+
+ The result alias
+ The entity name.
+ The lock mode to apply
+
+
+
+ Construct a return representing an entity returned at the root
+ of the result.
+
+ The result alias
+ The entity name.
+ Any user-supplied column->property mappings
+ The lock mode to apply
+
+
+ The name of the entity to be returned.
+
+
+ Describes a scalar return in a native SQL query.
+
+
+
+ Extends an HQLQueryPlan to maintain a reference to the collection-role name
+ being filtered.
+
+
+
+ Defines a query execution plan for an HQL query (or filter).
+
+
+ Descriptor regarding a named parameter.
+
+
+
+ Not supported yet (AST parse needed)
+
+
+
+ Defines a query execution plan for a native-SQL query.
+
+
+ Encapsulates metadata about parameters encountered within a query.
+
+
+
+ The single available method
+ is responsible for parsing a query string and recognizing tokens in
+ relation to parameters (either named, ejb3-style, or ordinal) and
+ providing callbacks about such recognitions.
+
+
+
+
+ Performs the actual parsing and tokenizing of the query string making appropriate
+ callbacks to the given recognizer upon recognition of the various tokens.
+
+
+ Note that currently, this only knows how to deal with a single output
+ parameter (for callable statements). If we later add support for
+ multiple output params, this, obviously, needs to change.
+
+ The string to be parsed/tokenized.
+ The thing which handles recognition events.
+
+
+
+
+ Implements a parameter parser recognizer specifically for the purpose
+ of journaling parameter locations.
+
+
+
+
+ Convenience method for creating a param location recognizer and
+ initiating the parse.
+
+ The query to be parsed for parameter locations.
+ The generated recognizer, with journaled location info.
+
+
+
+ The dictionary of named parameter locations.
+ The dictionary is keyed by parameter name.
+
+
+
+
+ The list of ordinal parameter locations.
+
+
+ The list elements are integers, representing the location for that given ordinal.
+ Thus OrdinalParameterLocationList[n] represents the location for the nth parameter.
+
+
+
+ Defines metadata regarding a translated HQL or native-SQL query.
+
+
+ Get the source HQL or native-SQL query.
+
+
+ Return source query select clause aliases (if any)
+
+
+ An array of types describing the returns of the source query.
+
+
+ The set of query spaces affected by this source query.
+
+
+ Acts as a cache for compiled query plans, as well as query-parameter metadata.
+
+
+
+ Represents work that needs to be performed in a manner
+ which isolates it from any current application unit of
+ work transaction.
+
+
+
+
+ Perform the actual work to be done.
+
+ The ADP connection to use.
+ The active transaction of the connection.
+
+
+
+ Class which provides the isolation semantics required by
+ an .
+
+
+
+
+ Processing comes in two flavors:
+
+
+
+ makes sure the work to be done is performed in a seperate, distinct transaction
+
+
+
+ makes sure the work to be done is performed outside the scope of any transaction
+
+
+
+
+
+
+ Ensures that all processing actually performed by the given work will
+ occur on a seperate transaction.
+
+ The work to be performed.
+ The session from which this request is originating.
+
+
+
+ Ensures that all processing actually performed by the given work will
+ occur outside of a transaction.
+
+ The work to be performed.
+ The session from which this request is originating.
+
+
+
+ Responsible for maintaining the queue of actions related to events.
+
+ The ActionQueue holds the DML operations queued as part of a session's
+ transactional-write-behind semantics. DML operations are queued here
+ until a flush forces them to be executed against the database.
+
+
+
+
+
+ Perform all currently queued entity-insertion actions.
+
+
+
+
+ Perform all currently queued actions.
+
+
+
+
+ Prepares the internal action queues for execution.
+
+
+
+
+ Performs cleanup of any held cache softlocks.
+
+ Was the transaction successful.
+
+
+
+ Check whether the given tables/query-spaces are to be executed against
+ given the currently queued actions.
+
+ The table/query-spaces to check.
+ True if we contain pending actions against any of the given tables; false otherwise.
+
+
+
+ Check whether any insertion or deletion actions are currently queued.
+
+ True if insertions or deletions are currently queued; false otherwise.
+
+
+
+ Identifies a named association belonging to a particular
+ entity instance. Used to record the fact that an association
+ is null during loading.
+
+
+
+
+ Defines a sequence of elements that are currently
+ eligible for batch fetching.
+
+
+ Even though this is a map, we only use the keys. A map was chosen in
+ order to utilize a to maintain sequencing
+ as well as uniqueness.
+
+
+
+
+ A map of subselect-fetch descriptors
+ keyed by the against which the descriptor is
+ registered.
+
+
+
+
+ The owning persistence context.
+
+
+
+
+ Constructs a queue for the given context.
+
+ The owning persistence context.
+
+
+
+ Clears all entries from this fetch queue.
+
+
+
+
+ Retrieve the fetch descriptor associated with the given entity key.
+
+ The entity key for which to locate any defined subselect fetch.
+ The fetch descriptor; may return null if no subselect fetch queued for
+ this entity key.
+
+
+
+ Adds a subselect fetch decriptor for the given entity key.
+
+ The entity for which to register the subselect fetch.
+ The fetch descriptor.
+
+
+
+ After evicting or deleting an entity, we don't need to
+ know the query that was used to load it anymore (don't
+ call this after loading the entity, since we might still
+ need to load its collections)
+
+
+
+
+ Clears all pending subselect fetches from the queue.
+
+
+ Called after flushing.
+
+
+
+
+ If an EntityKey represents a batch loadable entity, add
+ it to the queue.
+
+
+ Note that the contract here is such that any key passed in should
+ previously have been been checked for existence within the
+ ; failure to do so may cause the
+ referenced entity to be included in a batch even though it is
+ already associated with the .
+
+
+
+
+ After evicting or deleting or loading an entity, we don't
+ need to batch fetch it anymore, remove it from the queue
+ if necessary
+
+
+
+
+ Get a batch of uninitialized collection keys for a given role
+
+ The persister for the collection role.
+ A key that must be included in the batch fetch
+ the maximum number of keys to return
+ The entity mode.
+ an array of collection keys, of length batchSize (padded with nulls)
+
+
+
+ Get a batch of unloaded identifiers for this class, using a slightly
+ complex algorithm that tries to grab keys registered immediately after
+ the given key.
+
+ The persister for the entities being loaded.
+ The identifier of the entity currently demanding load.
+ The maximum number of keys to return
+ The entity mode.
+ an array of identifiers, of length batchSize (possibly padded with nulls)
+
+
+
+ The types of children to cascade to
+
+
+
+
+ A cascade point that occurs just after the insertion of the parent
+ entity and just before deletion
+
+
+
+
+ A cascade point that occurs just before the insertion of the parent entity
+ and just after deletion
+
+
+
+
+ A cascade point that occurs just after the insertion of the parent entity
+ and just before deletion, inside a collection
+
+
+
+
+ A cascade point that occurs just after the update of the parent entity
+
+
+
+ A cascade point that occurs just before the session is flushed
+
+
+
+ A cascade point that occurs just after eviction of the parent entity from the
+ session cache
+
+
+
+
+ A cascade point that occurs just after locking a transient parent entity into the
+ session cache
+
+
+
+
+ A cascade point that occurs just after locking a transient parent entity into the session cache
+
+
+
+
+ A cascade point that occurs just before merging from a transient parent entity into
+ the object in the session cache
+
+
+
+
+ Delegate responsible, in conjunction with the various
+ , for implementing cascade processing.
+
+
+
+ Cascade an action from the parent entity instance to all its children.
+ The parent's entity persister
+ The parent reference.
+
+
+
+ Cascade an action from the parent entity instance to all its children. This
+ form is typicaly called from within cascade actions.
+
+ The parent's entity persister
+ The parent reference.
+
+ Typically some form of cascade-local cache
+ which is specific to each CascadingAction type
+
+
+
+ Cascade an action to the child or children
+
+
+ Cascade an action to a collection
+
+
+ Cascade an action to a to-one association or any type
+
+
+ Cascade to the collection elements
+
+
+ Delete any entities that were removed from the collection
+
+
+ A contract for defining the aspects of cascading various persistence actions.
+
+
+
+ package-protected constructor
+
+
+ For this style, should the given action be cascaded?
+ The action to be checked for cascade-ability.
+ True if the action should be cascaded under this style; false otherwise.
+
+
+
+ Probably more aptly named something like doCascadeToCollectionElements();
+ it is however used from both the collection and to-one logic branches...
+
+ The action to be checked for cascade-ability.
+ True if the action should be really cascaded under this style; false otherwise.
+
+ For this style, should the given action really be cascaded? The default
+ implementation is simply to return {@link #doCascade}; for certain
+ styles (currently only delete-orphan), however, we need to be able to
+ control this separately.
+
+
+
+ Factory method for obtaining named cascade styles
+ The named cascade style name.
+ The appropriate CascadeStyle
+
+
+ save / delete / update / evict / lock / replicate / merge / persist + delete orphans
+
+
+ save / delete / update / evict / lock / replicate / merge / persist
+
+
+ save / update
+
+
+ lock
+
+
+ refresh
+
+
+ evict
+
+
+ replicate
+
+
+ merge
+
+
+ create
+
+
+ delete
+
+
+ delete + delete orphans
+
+
+ no cascades
+
+
+ Do we need to delete orphaned collection elements?
+ True if this style need to account for orphan delete operations; false otherwise.
+
+
+
+ A session action that may be cascaded from parent entity to its children
+
+
+
+ Cascade the action to the child object.
+ The session within which the cascade is occurring.
+ The child to which cascading should be performed.
+ The child's entity name
+ Typically some form of cascade-local cache which is specific to each CascadingAction type
+ Are cascading deletes enabled.
+
+
+
+ Given a collection, get an iterator of the children upon which the
+ current cascading action should be visited.
+
+ The session within which the cascade is occurring.
+ The mapping type of the collection.
+ The collection instance.
+ The children iterator.
+
+
+
+ Called (in the case of returning true) to validate
+ that no cascade on the given property is considered a valid semantic.
+
+ The session within which the cascade is occurring.
+ The property value
+ The property value owner
+ The entity persister for the owner
+ The index of the property within the owner.
+
+
+
+ Given a collection, get an iterator of all its children, loading them
+ from the database if necessary.
+
+ The session within which the cascade is occurring.
+ The mapping type of the collection.
+ The collection instance.
+ The children iterator.
+
+
+
+ Iterate just the elements of the collection that are already there. Don't load
+ any new elements from the database.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Execute persist during flush time
+
+
+
+
+
+
+ Does this action potentially extrapolate to orphan deletes?
+ True if this action can lead to deletions of orphans.
+
+
+ Does the specified cascading action require verification of no cascade validity?
+ True if this action requires no-cascade verification; false otherwise.
+
+
+ Should this action be performed (or noCascade consulted) in the case of lazy properties.
+
+
+
+ We need an entry to tell us all about the current state
+ of a collection with respect to its persistent state
+
+
+
+ session-start/post-flush persistent state
+
+
+ allow the snapshot to be serialized
+
+
+
+ The when the Collection was loaded.
+
+
+ This can be if the Collection was not loaded by NHibernate and
+ was passed in along with a transient object.
+
+
+
+
+ The identifier of the Entity that is the owner of this Collection
+ during the load or post flush.
+
+
+
+
+ Indicates that the Collection can still be reached by an Entity
+ that exist in the .
+
+
+ It is also used to ensure that the Collection is not shared between
+ two Entities.
+
+
+
+
+ Indicates that the Collection has been processed and is ready
+ to have its state synchronized with the database.
+
+
+
+
+ Indicates that a Collection needs to be updated.
+
+
+ A Collection needs to be updated whenever the contents of the Collection
+ have been changed.
+
+
+
+
+ Indicates that a Collection has old elements that need to be removed.
+
+
+ A Collection needs to have removals performed whenever its role changes or
+ the key changes and it has a loadedPersister - ie - it was loaded by NHibernate.
+
+
+
+
+ Indicates that a Collection needs to be recreated.
+
+
+ A Collection needs to be recreated whenever its role changes
+ or the owner changes.
+
+
+
+
+ If we instantiate a collection during the
+ process, we must ignore it for the rest of the flush.
+
+
+
+
+ The that is currently responsible
+ for the Collection.
+
+
+ This is set when NHibernate is updating a reachable or an
+ unreachable collection.
+
+
+
+
+ Initializes a new instance of .
+
+
+ For newly wrapped collections, or dereferenced collection wrappers
+
+
+
+ For collections just loaded from the database
+
+
+
+ Initializes a new instance of for initialized detached collections.
+
+
+ For initialized detached collections
+
+
+
+
+ Determine if the collection is "really" dirty, by checking dirtiness
+ of the collection elements, if necessary
+
+
+
+
+ Prepares this CollectionEntry for the Flush process.
+
+ The that this CollectionEntry will be responsible for flushing.
+
+
+
+ Updates the CollectionEntry to reflect that the
+ has been initialized.
+
+ The initialized that this Entry is for.
+
+
+
+ Updates the CollectionEntry to reflect that it is has been successfully flushed to the database.
+
+ The that was flushed.
+
+ Called after a successful flush.
+
+
+
+
+ Sets the information in this CollectionEntry that is specific to the
+ .
+
+
+ The that is
+ responsible for the Collection.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Uniquely identifies a collection instance in a particular session.
+
+
+
+
+ Record the fact that this collection was dereferenced
+
+ The collection to be updated by unreachability.
+ The session.
+
+
+
+ Initialize the role of the collection.
+
+ The collection to be updated by reachibility.
+ The type of the collection.
+ The owner of the collection.
+ The session.
+
+
+
+ We need an entry to tell us all about the current state
+ of an object with respect to its persistent state
+
+
+
+
+ Initializes a new instance of EntityEntry.
+
+ The current of the Entity.
+ The snapshot of the Entity's state when it was loaded.
+
+ The identifier of the Entity in the database.
+ The version of the Entity.
+ The for the Entity.
+ A boolean indicating if the Entity exists in the database.
+ The that is responsible for this Entity.
+
+
+
+
+
+
+ After actually inserting a row, record the fact that the instance exists on the
+ database (needed for identity-column key generation)
+
+
+
+
+ After actually updating the database, update the snapshot information,
+ and escalate the lock mode.
+
+
+
+
+ After actually deleting a row, record the fact that the instance no longer
+ exists in the database
+
+
+
+
+ Gets or sets the current of the Entity.
+
+ The of the Entity.
+
+
+
+ Gets or sets the of this Entity with respect to its
+ persistence in the database.
+
+ The of this Entity.
+
+
+
+ Gets or sets the identifier of the Entity in the database.
+
+ The identifier of the Entity in the database if one has been assigned.
+ This might be when the is
+ and the database generates the id.
+
+
+
+ Gets or sets the snapshot of the Entity when it was loaded from the database.
+
+ The snapshot of the Entity.
+
+ There will only be a value when the Entity was loaded in the current Session.
+
+
+
+
+ Gets or sets the snapshot of the Entity when it was marked as being ready for deletion.
+
+ The snapshot of the Entity.
+ This will be if the Entity is not being deleted.
+
+
+
+ Gets or sets a indicating if this Entity exists in the database.
+
+ if it is already in the database.
+
+ It can also be if it does not exists in the database yet and the
+ is .
+
+
+
+
+ Gets or sets the version of the Entity.
+
+ The version of the Entity.
+
+
+
+ Gets or sets the that is responsible for this Entity.
+
+ The that is responsible for this Entity.
+
+
+
+ Gets the Fully Qualified Name of the class this Entity is an instance of.
+
+ The Fully Qualified Name of the class this Entity is an instance of.
+
+
+
+ A globally unique identifier of an instance, consisting of the user-visible identifier
+ and the identifier space (eg. tablename)
+
+
+
+ Construct a unique identifier for an entity class instance
+
+
+ Used to reconstruct an EntityKey during deserialization.
+ The identifier value
+ The root entity name
+ The specific entity name
+ The type of the identifier value
+ Whether represented entity is eligible for batch loading
+ The session factory
+ The entity's entity mode
+
+
+
+ To use in deserialization callback
+
+
+
+
+
+ Used to uniquely key an entity instance in relation to a particular session
+ by some unique property reference, as opposed to identifier.
+ Uniqueing information consists of the entity-name, the referenced
+ property name, and the referenced property value.
+
+
+
+
+
+ A FilterDefinition defines the global attributes of a dynamic filter. This
+ information includes its name as well as its defined parameters (name and type).
+
+
+
+
+ Set the named parameter's value list for this filter.
+
+ The name of the filter for which this configuration is in effect.
+ The default filter condition.
+ A dictionary storing the NHibernate type
+ of each parameter under its name.
+ if set to true used in many to one rel
+
+
+
+ Retreive the type of the named parameter defined for this filter.
+
+ The name of the filter parameter for which to return the type.
+ The type of the named parameter.
+
+
+
+ Gets a value indicating whether to use this filter-def in manytoone refs.
+
+ true if [use in many to one]; otherwise, false.
+
+
+
+ Get the name of the filter this configuration defines.
+
+ The filter name for this configuration.
+
+
+
+ Get a set of the parameters defined by this configuration.
+
+ The parameters named by this configuration.
+
+
+ Algorithms related to foreign key constraint transparency
+
+
+
+ Is this instance persistent or detached?
+
+
+ If is non-null, don't hit the database to make the
+ determination, instead assume that value; the client code must be
+ prepared to "recover" in the case that this assumed result is incorrect.
+
+
+
+
+ Is this instance, which we know is not persistent, actually transient?
+ If assumed is non-null, don't hit the database to make the
+ determination, instead assume that value; the client code must be
+ prepared to "recover" in the case that this assumed result is incorrect.
+
+
+ If is non-null, don't hit the database to make the
+ determination, instead assume that value; the client code must be
+ prepared to "recover" in the case that this assumed result is incorrect.
+
+
+
+
+ Return the identifier of the persistent or transient object, or throw
+ an exception if the instance is "unsaved"
+
+
+ Used by OneToOneType and ManyToOneType to determine what id value should
+ be used for an object that may or may not be associated with the session.
+ This does a "best guess" using any/all info available to use (not just the
+ EntityEntry).
+
+
+
+
+ Nullify all references to entities that have not yet
+ been inserted in the database, where the foreign key
+ points toward that entity
+
+
+
+
+ Return null if the argument is an "unsaved" entity (ie.
+ one with no existing database row), or the input argument
+ otherwise. This is how Hibernate avoids foreign key constraint
+ violations.
+
+
+
+
+ Determine if the object already exists in the database, using a "best guess"
+
+
+
+
+ A strategy for determining if an identifier value is an identifier of a new
+ transient instance or a previously persistent transient instance. The strategy
+ is determined by the Unsaved-Value attribute in the mapping file.
+
+
+
+
+
+
+
+ Assume the transient instance is newly instantiated if its identifier is null or
+ equal to Value
+
+
+
+
+
+ Does the given identifier belong to a new instance
+
+
+
+
+ Always assume the transient instance is newly instantiated
+
+
+
+
+ Never assume that transient instance is newly instantiated
+
+
+
+
+ Assume the transient instance is newly instantiated if the identifier
+ is null.
+
+
+
+ Assume nothing.
+
+
+
+ Holds the state of the persistence context, including the
+ first-level cache, entries, snapshots, proxies, etc.
+
+
+
+ Add a collection which has no owner loaded
+
+
+
+ Get and remove a collection whose owner is not yet loaded,
+ when its owner is being loaded
+
+
+
+ Clear the state of the persistence context
+
+
+ Set the status of an entry
+
+
+ Called after transactions end
+
+
+
+ Get the current state of the entity as known to the underlying
+ database, or null if there is no corresponding row
+
+
+
+
+ Retrieve the cached database snapshot for the requested entity key.
+
+ The entity key for which to retrieve the cached snapshot
+ The cached snapshot
+
+
+ This differs from is two important respects:
+ no snapshot is obtained from the database if not already cached
+ an entry of NO_ROW here is interpreted as an exception
+
+
+
+
+
+ Get the values of the natural id fields as known to the underlying
+ database, or null if the entity has no natural id or there is no
+ corresponding row.
+
+
+
+ Add a canonical mapping from entity key to entity instance
+
+
+
+ Get the entity instance associated with the given EntityKey
+
+
+
+ Is there an entity with the given key in the persistence context
+
+
+
+ Remove an entity from the session cache, also clear
+ up other state associated with the entity, all except
+ for the EntityEntry
+
+
+
+ Get an entity cached by unique key
+
+
+ Add an entity to the cache by unique key
+
+
+
+ Retrieve the EntityEntry representation of the given entity.
+
+ The entity for which to locate the EntityEntry.
+ The EntityEntry for the given entity.
+
+
+ Remove an entity entry from the session cache
+
+
+ Is there an EntityEntry for this instance?
+
+
+ Get the collection entry for a persistent collection
+
+
+ Adds an entity to the internal caches.
+
+
+
+ Generates an appropriate EntityEntry instance and adds it
+ to the event source's internal caches.
+
+
+
+ Is the given collection associated with this persistence context?
+
+
+ Is the given proxy associated with this persistence context?
+
+
+
+ Takes the given object and, if it represents a proxy, reassociates it with this event source.
+
+ The possible proxy to be reassociated.
+ Whether the passed value represented an actual proxy which got initialized.
+
+
+
+ If a deleted entity instance is re-saved, and it has a proxy, we need to
+ reset the identifier of the proxy
+
+
+
+
+ Get the entity instance underlying the given proxy, throwing
+ an exception if the proxy is uninitialized. If the given object
+ is not a proxy, simply return the argument.
+
+
+
+
+ Possibly unproxy the given reference and reassociate it with the current session.
+
+ The reference to be unproxied if it currently represents a proxy.
+ The unproxied instance.
+
+
+
+ Attempts to check whether the given key represents an entity already loaded within the
+ current session.
+
+ The entity reference against which to perform the uniqueness check.
+ The entity key.
+
+
+
+ If the existing proxy is insufficiently "narrow" (derived), instantiate a new proxy
+ and overwrite the registration of the old one. This breaks == and occurs only for
+ "class" proxies rather than "interface" proxies. Also init the proxy to point to
+ the given target implementation if necessary.
+
+ The proxy instance to be narrowed.
+ The persister for the proxied entity.
+ The internal cache key for the proxied entity.
+ (optional) the actual proxied entity instance.
+ An appropriately narrowed instance.
+
+
+
+ Return the existing proxy associated with the given EntityKey, or the
+ third argument (the entity associated with the key) if no proxy exists. Init
+ the proxy to the target implementation, if necessary.
+
+
+
+
+ Return the existing proxy associated with the given EntityKey, or the
+ argument (the entity associated with the key) if no proxy exists.
+ (slower than the form above)
+
+
+
+ Get the entity that owns this persistent collection
+
+
+ Get the entity that owned this persistent collection when it was loaded
+ The persistent collection
+
+ The owner if its entity ID is available from the collection's loaded key
+ and the owner entity is in the persistence context; otherwise, returns null
+
+
+
+ Get the ID for the entity that owned this persistent collection when it was loaded
+ The persistent collection
+ the owner ID if available from the collection's loaded key; otherwise, returns null
+
+
+ add a collection we just loaded up (still needs initializing)
+
+
+ add a detached uninitialized collection
+
+
+
+ Add a new collection (ie. a newly created one, just instantiated by the
+ application, with no database state or snapshot)
+
+ The collection to be associated with the persistence context
+
+
+
+
+ add an (initialized) collection that was created by another session and passed
+ into update() (ie. one with a snapshot and existing state on the database)
+
+
+
+ add a collection we just pulled out of the cache (does not need initializing)
+
+
+ Get the collection instance associated with the CollectionKey
+
+
+
+ Register a collection for non-lazy loading at the end of the two-phase load
+
+
+
+
+ Force initialization of all non-lazy collections encountered during
+ the current two-phase load (actually, this is a no-op, unless this
+ is the "outermost" load)
+
+
+
+ Get the PersistentCollection object for an array
+
+
+ Register a PersistentCollection object for an array.
+ Associates a holder with an array - MUST be called after loading
+ array, since the array instance is not created until endLoad().
+
+
+
+
+ Remove the mapping of collection to holder during eviction of the owning entity
+
+
+
+ Get the snapshot of the pre-flush collection state
+
+
+
+ Get the collection entry for a collection passed to filter,
+ which might be a collection wrapper, an array, or an unwrapped
+ collection. Return null if there is no entry.
+
+
+
+ Get an existing proxy by key
+
+
+ Add a proxy to the session cache
+
+
+ Remove a proxy from the session cache
+
+
+ Called before cascading
+
+
+ Called after cascading
+
+
+ Call this before beginning a two-phase load
+
+
+ Call this after finishing a two-phase load
+
+
+
+ Search the persistence context for an owner for the child object,
+ given a collection role
+
+
+
+
+ Search the persistence context for an index of the child object, given a collection role
+
+
+
+
+ Record the fact that the association belonging to the keyed entity is null.
+
+
+
+ Is the association property belonging to the keyed entity null?
+
+
+ Set the object to read only and discard it's snapshot
+
+
+
+ Get the session to which this persistence context is bound.
+
+
+
+
+ Retrieve this persistence context's managed load context.
+
+
+
+
+ Get the BatchFetchQueue, instantiating one if necessary.
+
+
+
+ Retrieve the set of EntityKeys representing nullifiable references
+
+
+ Get the mapping from key value to entity instance
+
+
+ Get the mapping from entity instance to entity entry
+
+
+ Get the mapping from collection instance to collection entry
+
+
+ Get the mapping from collection key to collection instance
+
+
+ How deep are we cascaded?
+
+
+ Is a flush cycle currently in process?
+ Called before and after the flushcycle
+
+
+ False if we know for certain that all the entities are read-only
+
+
+
+ Defines the internal contract between the ISessionFactory and other parts of NHibernate
+ such as implementors of IType.
+
+
+
+
+ Creates ISessions.
+
+
+
+ Usually an application has a single SessionFactory. Threads servicing client requests
+ obtain ISessions from the factory. Implementors must be threadsafe.
+
+
+ ISessionFactorys are immutable. The behaviour of a SessionFactory
+ is controlled by properties supplied at configuration time.
+ These properties are defined on Environment
+
+
+
+
+
+ Open a ISession on the given connection
+
+ A connection provided by the application
+ A session
+
+ Note that the second-level cache will be disabled if you
+ supply a ADO.NET connection. NHibernate will not be able to track
+ any statements you might have executed in the same transaction.
+ Consider implementing your own .
+
+
+
+
+ Create database connection and open a ISession on it, specifying an interceptor
+
+ A session-scoped interceptor
+ A session
+
+
+
+ Open a ISession on the given connection, specifying an interceptor
+
+ A connection provided by the application
+ A session-scoped interceptor
+ A session
+
+ Note that the second-level cache will be disabled if you
+ supply a ADO.NET connection. NHibernate will not be able to track
+ any statements you might have executed in the same transaction.
+ Consider implementing your own .
+
+
+
+
+ Create a database connection and open a ISession on it
+
+
+
+
+
+ Get the associated with the given entity class
+
+ the given entity type.
+ The class metadata or if not found.
+
+
+
+ Get the associated with the given entity name
+ the given entity name.
+ The class metadata or if not found.
+
+
+
+
+ Get the CollectionMetadata associated with the named collection role
+
+
+
+
+
+
+ Get all as a from entityname
+ to metadata object
+
+ A dictionary from an entity name to
+
+
+
+ Get all CollectionMetadata as a IDictionary from role name
+ to metadata object
+
+
+
+
+
+ Destroy this SessionFactory and release all resources
+ connection pools, etc). It is the responsibility of the application
+ to ensure that there are no open Sessions before calling
+ close().
+
+
+
+
+ Evict all entries from the process-level cache. This method occurs outside
+ of any transaction; it performs an immediate "hard" remove, so does not respect
+ any transaction isolation semantics of the usage strategy. Use with care.
+
+
+
+
+
+ Evict an entry from the process-level cache. This method occurs outside
+ of any transaction; it performs an immediate "hard" remove, so does not respect
+ any transaction isolation semantics of the usage strategy. Use with care.
+
+
+
+
+
+
+ Evict all entries from the second-level cache. This method occurs outside
+ of any transaction; it performs an immediate "hard" remove, so does not respect
+ any transaction isolation semantics of the usage strategy. Use with care.
+
+
+
+
+ Evict an entry from the second-level cache. This method occurs outside
+ of any transaction; it performs an immediate "hard" remove, so does not respect
+ any transaction isolation semantics of the usage strategy. Use with care.
+
+
+
+
+ Evict all entries from the process-level cache. This method occurs outside
+ of any transaction; it performs an immediate "hard" remove, so does not respect
+ any transaction isolation semantics of the usage strategy. Use with care.
+
+
+
+
+
+ Evict an entry from the process-level cache. This method occurs outside
+ of any transaction; it performs an immediate "hard" remove, so does not respect
+ any transaction isolation semantics of the usage strategy. Use with care.
+
+
+
+
+
+
+ Evict any query result sets cached in the default query cache region.
+
+
+
+
+ Evict any query result sets cached in the named query cache region.
+
+
+
+
+ Get a new stateless session.
+
+
+ Get a new stateless session for the given ADO.NET connection.
+
+
+
+ Obtain the definition of a filter by name.
+
+ The name of the filter for which to obtain the definition.
+ The filter definition.
+
+
+
+ Obtains the current session.
+
+
+
+ The definition of what exactly "current" means is controlled by the
+ implementation configured for use.
+
+
+ The current session.
+ Indicates an issue locating a suitable current session.
+
+
+ Get the statistics for this session factory
+
+
+ Was this already closed?
+
+
+
+ Obtain a set of the names of all filters defined on this SessionFactory.
+
+ The set of filter names.
+
+
+
+ Get the persister for the named entity
+
+ The name of the entity that is persisted.
+ The for the entity.
+ If no can be found.
+
+
+
+ Get the persister object for a collection role
+
+
+
+
+
+
+ Get the return types of a query
+
+
+
+
+
+ Get the return aliases of a query
+
+
+
+ Get the names of all persistent classes that implement/extend the given interface/class
+
+
+
+
+
+
+ Get a class name, using query language imports
+
+
+
+
+
+
+ Get a particular named query cache, or the default cache
+
+ the name of the cache region, or null for the default
+ query cache
+ the existing cache, or a newly created cache if none by that
+ region name
+
+
+
+ Gets the hql query identified by the name.
+
+ The name of that identifies the query.
+
+ A hql query or if the named
+ query does not exist.
+
+
+
+
+ Get the identifier generator for the hierarchy
+
+
+
+ Get a named second-level cache region
+
+
+
+ Open a session conforming to the given parameters. Used mainly
+ for current session processing.
+
+ The external ado.net connection to use, if one (i.e., optional).
+
+ Should the session be auto-flushed
+ prior to transaction completion?
+
+
+ Should the session be auto-closed after
+ transaction completion?
+
+ The release mode for managed jdbc connections.
+ An appropriate session.
+
+
+
+ Retrieves a set of all the collection roles in which the given entity
+ is a participant, as either an index or an element.
+
+ The entity name for which to get the collection roles.
+
+ Set of all the collection roles in which the given entityName participates.
+
+
+
+
+ Get the persister for the named entity
+
+ The name of the entity that is persisted.
+
+ The for the entity or is the name was not found.
+
+
+
+
+ Get the entity-name for a given mapped class.
+
+ the mapped class
+ the enntity name where available or null
+
+
+
+ Get the SQL .
+
+
+
+
+ Get the used.
+
+
+
+ The cache of table update timestamps
+
+
+ Statistics SPI
+
+
+ Retrieves the SQLExceptionConverter in effect for this SessionFactory.
+ The SQLExceptionConverter for this SessionFactory.
+
+
+
+ Get the default query cache
+
+
+
+
+ Gets the ICurrentSessionContext instance attached to this session factory.
+
+
+
+
+ Defines the internal contract between the Session and other parts of Hibernate
+ such as implementors of Type or ClassPersister
+
+
+
+
+ Initialize the session after its construction was complete
+
+
+
+
+ Initialize the collection (if not already initialized)
+
+
+
+
+
+
+ Load an instance without checking if it was deleted. If it does not exist and isn't nullable, throw an exception.
+ This method may create a new proxy or return an existing proxy.
+
+ The entityName (or class full name) to load.
+ The identifier of the object in the database.
+ Allow null instance
+ When enabled, the object is eagerly fetched.
+
+ A proxy of the object or an instance of the object if the persistentClass does not have a proxy.
+
+ No object could be found with that id.
+
+
+
+ Load an instance immediately. Do not return a proxy.
+
+
+
+
+
+
+
+ Execute a List() query
+
+
+
+
+
+
+
+ Strongly-typed version of
+
+
+
+
+ Strongly-typed version of
+
+
+
+
+ Execute an Iterate() query
+
+
+
+
+
+
+
+ Strongly-typed version of
+
+
+
+
+ Execute a filter
+
+
+
+
+ Execute a filter (strongly-typed version).
+
+
+
+
+ Collection from a filter
+
+
+
+
+ Strongly-typed version of
+
+
+
+ Get the for any instance
+ optional entity name
+ the entity instance
+
+
+
+ Notify the session that an NHibernate transaction has begun.
+
+
+
+
+ Notify the session that the transaction is about to complete
+
+
+
+
+ Notify the session that the transaction completed, so we no longer own the old locks.
+ (Also we should release cache softlocks). May be called multiple times during the transaction
+ completion process.
+
+
+
+
+ Return the identifier of the persistent object, or null if transient
+
+
+
+
+ Instantiate the entity class, initializing with the given identifier
+
+
+
+
+ Execute an SQL Query
+
+
+
+
+ Strongly-typed version of
+
+
+
+ Execute an SQL Query
+
+
+
+ Retrieve the currently set value for a filter parameter.
+
+ The filter parameter name in the format
+ {FILTER_NAME.PARAMETER_NAME}.
+ The filter parameter value.
+
+
+
+ Retrieve the type for a given filter parameter.
+
+ The filter parameter name in the format
+ {FILTER_NAME.PARAMETER_NAME}.
+ The filter parameter type.
+
+
+
+ Get the entity instance associated with the given Key,
+ calling the Interceptor if necessary
+
+
+
+ The best guess entity name for an entity not in an association
+
+
+ The guessed entity name for an entity not in an association
+
+
+ Execute a native SQL update or delete query
+
+
+ Execute a HQL update or delete query
+
+
+
+ System time before the start of the transaction
+
+
+
+
+
+ Get the creating SessionFactoryImplementor
+
+
+
+
+
+ Get the prepared statement Batcher for this session
+
+
+
+
+ Return the currently enabled filters. The filter map is keyed by filter
+ name, with values corresponding to the
+ instance.
+
+ The currently enabled filters.
+
+
+ Retrieves the configured event listeners from this event source.
+
+
+ Get the persistence context for this session
+
+
+
+ Is the ISession still open?
+
+
+
+
+ Is the ISession currently connected?
+
+
+
+ Determine whether the session is closed. Provided separately from
+ {@link #isOpen()} as this method does not attempt any JTA synch
+ registration, where as {@link #isOpen()} does; which makes this one
+ nicer to use for most internal purposes.
+
+ True if the session is closed; false otherwise.
+
+
+
+
+ Does this Session have an active Hibernate transaction
+ or is there a JTA transaction in progress?
+
+
+
+ Retrieve the entity mode in effect for this session.
+
+
+
+ Get the columns of the associated table which are to
+ be used in the join
+
+
+
+
+ Get the aliased columns of the owning entity which are to
+ be used in the join
+
+
+
+
+ Get the columns of the owning entity which are to
+ be used in the join
+
+
+
+
+ Implements the algorithm for validating property values
+ for illegal null values
+
+
+
+
+ Check nullability of the class persister properties
+
+ entity properties
+ class persister
+ wether it is intended to be updated or saved
+
+
+
+ Check sub elements-nullability. Returns property path that break
+ nullability or null if none
+
+ type to check
+ value to check
+ property path
+
+
+
+ Check component nullability. Returns property path that break
+ nullability or null if none
+
+ component properties
+ component not-nullable type
+ property path
+
+
+
+ Return a well formed property path.
+ Basicaly, it will return parent.child
+
+ parent in path
+ child in path
+ parent-child path
+
+
+
+ Container for data that is used during the NHibernate query/load process.
+
+
+
+
+
+
+
+ Ensure the Types and Values are the same length.
+
+
+ If the Lengths of and
+ are not equal.
+
+
+
+
+
+
+
+ Named parameters.
+
+
+
+
+ Gets or sets an array of objects that is stored at the index
+ of the Parameter.
+
+
+
+
+ Gets or sets an array of objects that is stored at the index
+ of the Parameter.
+
+
+
+
+ Gets or sets the for the Query.
+
+
+
+
+ Gets or sets an that contains the alias name of the
+ object from hql as the key and the as the value.
+
+ An of lock modes.
+
+
+
+ Information to determine how to run an IDbCommand and what
+ records to return from the IDataReader.
+
+
+
+
+ Indicates that the no value has been set on the Property.
+
+
+
+
+ Gets or Sets the Index of the First Row to Select
+
+ The Index of the First Rows to Select
+ Defaults to 0 unless specifically set.
+
+
+
+ Gets or Sets the Maximum Number of Rows to Select
+
+ The Maximum Number of Rows to Select
+ Defaults to NoValue unless specifically set.
+
+
+
+ Gets or Sets the Timeout of the Query
+
+ The Query Timeout
+ Defaults to NoValue unless specifically set.
+
+
+
+ A represents the state of persistent "stuff" which
+ NHibernate is tracking. This includes persistent entities, collections,
+ as well as proxies generated.
+
+
+ There is meant to be a one-to-one correspondence between a SessionImpl and
+ a PersistentContext. The SessionImpl uses the PersistentContext to track
+ the current state of its context. Event-listeners then use the
+ PersistentContext to drive their processing.
+
+
+
+ Constructs a PersistentContext, bound to the given session.
+ The session "owning" this context.
+
+
+ Add a collection which has no owner loaded
+
+
+
+ Get and remove a collection whose owner is not yet loaded,
+ when its owner is being loaded
+
+
+
+ Clear the state of the persistence context
+
+
+ Set the status of an entry
+
+
+ Called after transactions end
+
+
+
+ Get the current state of the entity as known to the underlying
+ database, or null if there is no corresponding row
+
+
+
+
+ Retrieve the cached database snapshot for the requested entity key.
+
+ The entity key for which to retrieve the cached snapshot
+ The cached snapshot
+
+
+ This differs from is two important respects:
+ no snapshot is obtained from the database if not already cached
+ an entry of NO_ROW here is interpreted as an exception
+
+
+
+
+
+ Get the values of the natural id fields as known to the underlying
+ database, or null if the entity has no natural id or there is no
+ corresponding row.
+
+
+
+ Add a canonical mapping from entity key to entity instance
+
+
+
+ Get the entity instance associated with the given EntityKey
+
+
+
+ Is there an entity with the given key in the persistence context
+
+
+
+ Remove an entity from the session cache, also clear
+ up other state associated with the entity, all except
+ for the EntityEntry
+
+
+
+ Get an entity cached by unique key
+
+
+ Add an entity to the cache by unique key
+
+
+
+ Retrieve the EntityEntry representation of the given entity.
+
+ The entity for which to locate the EntityEntry.
+ The EntityEntry for the given entity.
+
+
+ Remove an entity entry from the session cache
+
+
+ Is there an EntityEntry for this instance?
+
+
+ Get the collection entry for a persistent collection
+
+
+ Adds an entity to the internal caches.
+
+
+
+ Generates an appropriate EntityEntry instance and adds it
+ to the event source's internal caches.
+
+
+
+ Is the given collection associated with this persistence context?
+
+
+ Is the given proxy associated with this persistence context?
+
+
+
+ Takes the given object and, if it represents a proxy, reassociates it with this event source.
+
+ The possible proxy to be reassociated.
+ Whether the passed value represented an actual proxy which got initialized.
+
+
+
+ If a deleted entity instance is re-saved, and it has a proxy, we need to
+ reset the identifier of the proxy
+
+
+
+
+ Associate a proxy that was instantiated by another session with this session
+
+ The proxy initializer.
+ The proxy to reassociate.
+
+
+
+ Get the entity instance underlying the given proxy, throwing
+ an exception if the proxy is uninitialized. If the given object
+ is not a proxy, simply return the argument.
+
+
+
+
+ Possibly unproxy the given reference and reassociate it with the current session.
+
+ The reference to be unproxied if it currently represents a proxy.
+ The unproxied instance.
+
+
+
+ Attempts to check whether the given key represents an entity already loaded within the
+ current session.
+
+ The entity reference against which to perform the uniqueness check.
+ The entity key.
+
+
+
+ If the existing proxy is insufficiently "narrow" (derived), instantiate a new proxy
+ and overwrite the registration of the old one. This breaks == and occurs only for
+ "class" proxies rather than "interface" proxies. Also init the proxy to point to
+ the given target implementation if necessary.
+
+ The proxy instance to be narrowed.
+ The persister for the proxied entity.
+ The internal cache key for the proxied entity.
+ (optional) the actual proxied entity instance.
+ An appropriately narrowed instance.
+
+
+
+ Return the existing proxy associated with the given EntityKey, or the
+ third argument (the entity associated with the key) if no proxy exists. Init
+ the proxy to the target implementation, if necessary.
+
+
+
+
+ Return the existing proxy associated with the given EntityKey, or the
+ argument (the entity associated with the key) if no proxy exists.
+ (slower than the form above)
+
+
+
+ Get the entity that owns this persistent collection
+
+
+ Get the entity that owned this persistent collection when it was loaded
+ The persistent collection
+
+ The owner, if its entity ID is available from the collection's loaded key
+ and the owner entity is in the persistence context; otherwise, returns null
+
+
+
+ Get the ID for the entity that owned this persistent collection when it was loaded
+ The persistent collection
+ the owner ID if available from the collection's loaded key; otherwise, returns null
+
+
+ Get the ID for the entity that owned this persistent collection when it was loaded
+ The collection entry
+ the owner ID if available from the collection's loaded key; otherwise, returns null
+
+
+ add a collection we just loaded up (still needs initializing)
+
+
+ add a detached uninitialized collection
+
+
+
+ Add a new collection (ie. a newly created one, just instantiated by the
+ application, with no database state or snapshot)
+
+ The collection to be associated with the persistence context
+
+
+
+ Add an collection to the cache, with a given collection entry.
+ The collection for which we are adding an entry.
+ The entry representing the collection.
+ The key of the collection's entry.
+
+
+ Add a collection to the cache, creating a new collection entry for it
+ The collection for which we are adding an entry.
+ The collection persister
+
+
+
+ add an (initialized) collection that was created by another session and passed
+ into update() (ie. one with a snapshot and existing state on the database)
+
+
+
+ add a collection we just pulled out of the cache (does not need initializing)
+
+
+ Get the collection instance associated with the CollectionKey
+
+
+
+ Register a collection for non-lazy loading at the end of the two-phase load
+
+
+
+
+ Force initialization of all non-lazy collections encountered during
+ the current two-phase load (actually, this is a no-op, unless this
+ is the "outermost" load)
+
+
+
+ Get the PersistentCollection object for an array
+
+
+ Register a PersistentCollection object for an array.
+ Associates a holder with an array - MUST be called after loading
+ array, since the array instance is not created until endLoad().
+
+
+
+
+ Remove the mapping of collection to holder during eviction of the owning entity
+
+
+
+ Get the snapshot of the pre-flush collection state
+
+
+
+ Get the collection entry for a collection passed to filter,
+ which might be a collection wrapper, an array, or an unwrapped
+ collection. Return null if there is no entry.
+
+
+
+ Get an existing proxy by key
+
+
+ Add a proxy to the session cache
+
+
+ Remove a proxy from the session cache
+
+
+ Called before cascading
+
+
+ Called after cascading
+
+
+ Call this before begining a two-phase load
+
+
+ Call this after finishing a two-phase load
+
+
+
+ Search the persistence context for an owner for the child object,
+ given a collection role
+
+
+
+
+ Search the persistence context for an index of the child object, given a collection role
+
+
+
+
+ Record the fact that the association belonging to the keyed entity is null.
+
+
+
+ Is the association property belonging to the keyed entity null?
+
+
+ Set the object to read only and discard it's snapshot
+
+
+
+ Get the session to which this persistence context is bound.
+
+
+
+
+ Retrieve this persistence context's managed load context.
+
+
+
+
+ Get the BatchFetchQueue, instantiating one if necessary.
+
+
+
+ Retrieve the set of EntityKeys representing nullifiable references
+
+
+ Get the mapping from key value to entity instance
+
+
+ Get the mapping from entity instance to entity entry
+
+
+ Get the mapping from collection instance to collection entry
+
+
+ Get the mapping from collection key to collection instance
+
+
+ How deep are we cascaded?
+
+
+ Is a flush cycle currently in process?
+ Called before and after the flushcycle
+
+
+ False if we know for certain that all the entities are read-only
+
+
+
+ Represents the status of an entity with respect to
+ this session. These statuses are for internal
+ book-keeping only and are not intended to represent
+ any notion that is visible to the application.
+
+
+
+
+ The Entity is snapshotted in the Session with the same state as the database
+ (called Managed in H3).
+
+
+
+
+ The Entity is in the Session and has been marked for deletion but not
+ deleted from the database yet.
+
+
+
+
+ The Entity has been deleted from database.
+
+
+
+
+ The Entity is in the process of being loaded.
+
+
+
+
+ The Entity is in the process of being saved.
+
+
+
+
+ The entity is read-only.
+
+
+
+
+ Allows work to be done outside the current transaction, by suspending it,
+ and performing work in a new transaction
+
+
+
+ The work to be done
+
+
+ Suspend the current transaction and perform work in a new transaction
+
+
+
+ Functionality relating to Hibernate's two-phase loading process,
+ that may be reused by persisters that do not use the Loader
+ framework
+
+
+
+
+ Register the "hydrated" state of an entity instance, after the first step of 2-phase loading.
+
+ Add the "hydrated state" (an array) of an uninitialized entity to the session. We don't try
+ to resolve any associations yet, because there might be other entities waiting to be
+ read from the JDBC result set we are currently processing
+
+
+
+
+ Perform the second step of 2-phase load. Fully initialize the entity instance.
+ After processing a JDBC result set, we "resolve" all the associations
+ between the entities which were instantiated and had their state
+ "hydrated" into an array
+
+
+
+
+ Add an uninitialized instance of an entity class, as a placeholder to ensure object
+ identity. Must be called before postHydrate().
+ Create a "temporary" entry for a newly instantiated entity. The entity is uninitialized,
+ but we need the mapping from id to instance in order to guarantee uniqueness.
+
+
+
+ An ordered pair of a value and its Hibernate type.
+
+
+
+ Return an IdentifierValue for the specified unsaved-value. If none is specified,
+ guess the unsaved value by instantiating a test instance of the class and
+ reading it's id property, or if that is not possible, using the java default
+ value for the type
+
+
+
+
+ An enum of the different ways a value might be "included".
+
+
+ This is really an expanded true/false notion with Partial being the
+ expansion. Partial deals with components in the cases where
+ parts of the referenced component might define inclusion, but the
+ component overall does not.
+
+
+
+
+ Utility methods for managing versions and timestamps
+
+
+
+
+ Increment the given version number
+
+ The value of the current version.
+ The of the versioned property.
+ The current .
+ Returns the next value for the version.
+
+
+
+ Create an initial version number
+
+ The of the versioned property.
+ The current .
+ A seed value to initialize the versioned property with.
+
+
+
+ Seed the given instance state snapshot with an initial version number
+
+ An array of objects that contains a snapshot of a persistent object.
+ The index of the version property in the fields parameter.
+ The of the versioned property.
+ Force the version to initialize
+ The current session, if any.
+ if the version property needs to be seeded with an initial value.
+
+
+
+ Set the version number of the given instance state snapshot
+
+ An array of objects that contains a snapshot of a persistent object.
+ The value the version should be set to in the fields parameter.
+ The that is responsible for persisting the values of the fields parameter.
+
+
+
+ Get the version number of the given instance state snapshot
+
+ An array of objects that contains a snapshot of a persistent object.
+ The that is responsible for persisting the values of the fields parameter.
+
+ The value of the version contained in the fields parameter or null if the
+ Entity is not versioned.
+
+
+
+ Do we need to increment the version number, given the dirty properties?
+ The array of property indexes which were deemed dirty
+ Were any collections found to be dirty (structurally changed)
+ An array indicating versionability of each property.
+ True if a version increment is required; false otherwise.
+
+
+
+ A strategy for determining if a version value is an version of
+ a new transient instance or a previously persistent transient instance.
+ The strategy is determined by the Unsaved-Value attribute in the mapping file.
+
+
+
+
+
+
+
+ Assume the transient instance is newly instantiated if its version is null or
+ equal to Value
+
+
+
+
+
+ Does the given identifier belong to a new instance
+
+
+
+
+ Assume the transient instance is newly instantiated if the version
+ is null, otherwise assume it is a detached instance.
+
+
+
+
+ Assume the transient instance is newly instantiated if the version
+ is null, otherwise defer to the identifier unsaved-value.
+
+
+
+
+ Assume the transient instance is newly instantiated if the identifier
+ is null.
+
+
+
+
+ A convenience base class for listeners whose functionality results in flushing.
+
+
+
+
+ Coordinates the processing necessary to get things ready for executions
+ as db calls by preparing the session caches and moving the appropriate
+ entities and collections to their respective execution queues.
+
+ The flush event.
+
+
+
+ Execute all SQL and second-level cache updates, in a
+ special order so that foreign-key constraints cannot
+ be violated:
+
+ Inserts, in the order they were performed
+ Updates
+ Deletion of collection elements
+ Insertion of collection elements
+ Deletes, in the order they were performed
+
+
+
+
+
+ 1. Recreate the collection key -> collection map
+ 2. rebuild the collection entries
+ 3. call Interceptor.postFlush()
+
+
+
+
+ A convenience base class for listeners that respond to requests to perform a
+ pessimistic lock upgrade on an entity.
+
+
+
+
+ A convenience base class for listeners that respond to requests to reassociate an entity
+ to a session ( such as through lock() or update() ).
+
+
+
+
+ Associates a given entity (either transient or associated with another session) to the given session.
+
+ The event triggering the re-association
+ The entity to be associated
+ The id of the entity.
+ The entity's persister instance.
+ An EntityEntry representing the entity within this session.
+
+
+
+ Performs a pessimistic lock upgrade on a given entity, if needed.
+
+ The entity for which to upgrade the lock.
+ The entity's EntityEntry instance.
+ The lock mode being requested for locking.
+ The session which is the source of the event being processed.
+
+
+
+ A convenience bas class for listeners responding to save events.
+
+
+
+
+ Prepares the save call using the given requested id.
+
+ The entity to be saved.
+ The id to which to associate the entity.
+ The name of the entity being saved.
+ Generally cascade-specific information.
+ The session which is the source of this save event.
+ The id used to save the entity.
+
+
+
+ Prepares the save call using a newly generated id.
+
+ The entity to be saved
+ The entity-name for the entity to be saved
+ Generally cascade-specific information.
+ The session which is the source of this save event.
+
+ does the event context require
+ access to the identifier immediately after execution of this method (if
+ not, post-insert style id generators may be postponed if we are outside
+ a transaction).
+
+
+ The id used to save the entity; may be null depending on the
+ type of id generator used and the requiresImmediateIdAccess value
+
+
+
+
+ Prepares the save call by checking the session caches for a pre-existing
+ entity and performing any lifecycle callbacks.
+
+ The entity to be saved.
+ The id by which to save the entity.
+ The entity's persister instance.
+ Is an identity column being used?
+ Generally cascade-specific information.
+ The session from which the event originated.
+
+ does the event context require
+ access to the identifier immediately after execution of this method (if
+ not, post-insert style id generators may be postponed if we are outside
+ a transaction).
+
+
+ The id used to save the entity; may be null depending on the
+ type of id generator used and the requiresImmediateIdAccess value
+
+
+
+
+ Performs all the actual work needed to save an entity (well to get the save moved to
+ the execution queue).
+
+ The entity to be saved
+ The id to be used for saving the entity (or null, in the case of identity columns)
+ The entity's persister instance.
+ Should an identity column be used for id generation?
+ Generally cascade-specific information.
+ The session which is the source of the current event.
+
+ Is access to the identifier required immediately
+ after the completion of the save? persist(), for example, does not require this...
+
+
+ The id used to save the entity; may be null depending on the
+ type of id generator used and the requiresImmediateIdAccess value
+
+
+
+
+ Perform any property value substitution that is necessary
+ (interceptor callback, version initialization...)
+
+ The entity
+ The entity identifier
+ The snapshot entity state
+ The entity persister
+ The originating session
+
+ True if the snapshot state changed such that
+ reinjection of the values into the entity is required.
+
+
+
+ Handles the calls needed to perform pre-save cascades for the given entity.
+ The session from which the save event originated.
+ The entity's persister instance.
+ The entity to be saved.
+ Generally cascade-specific data
+
+
+ Handles to calls needed to perform post-save cascades.
+ The session from which the event originated.
+ The entity's persister instance.
+ The entity being saved.
+ Generally cascade-specific data
+
+
+
+ Determine whether the entity is persistent, detached, or transient
+
+ The entity to check
+ The name of the entity
+ The entity's entry in the persistence context
+ The originating session.
+ The state.
+
+
+
+ After the save, will te version number be incremented
+ if the instance is modified?
+
+ True if the version will be incremented on an entity change after save; false otherwise.
+
+
+
+ Abstract superclass of algorithms that walk a tree of property values of an entity, and
+ perform specific functionality for collections, components and associated entities.
+
+
+
+ Dispatch each property value to ProcessValue().
+
+
+
+
+
+ Visit a property value. Dispatch to the correct handler for the property type.
+
+
+
+
+
+
+ Visit a component. Dispatch each property to
+
+
+
+
+
+
+
+ Visit a many-to-one or one-to-one associated entity. Default superclass implementation is a no-op.
+
+
+
+
+
+
+
+ Visit a collection. Default superclass implementation is a no-op.
+
+
+
+
+
+
+
+ Walk the tree starting from the given entity.
+
+
+
+
+
+
+ Defines the default flush event listeners used by hibernate for
+ flushing session state in response to generated auto-flush events.
+
+
+
+ Defines the contract for handling of session auto-flush events.
+
+
+
+ Handle the given auto-flush event.
+
+ The auto-flush event to be handled.
+
+
+
+ Handle the given auto-flush event.
+
+ The auto-flush event to be handled.
+
+
+
+ Defines the default delete event listener used by hibernate for deleting entities
+ from the datastore in response to generated delete events.
+
+
+
+ Defines the contract for handling of deletion events generated from a session.
+
+
+ Handle the given delete event.
+ The delete event to be handled.
+
+
+ Handle the given delete event.
+ The delete event to be handled.
+
+
+ Called when we have recognized an attempt to delete a detached entity.
+ The event.
+
+ This is perfectly valid in Hibernate usage; JPA, however, forbids this.
+ Thus, this is a hook for HEM to affect this behavior.
+
+
+
+
+ We encountered a delete request on a transient instance.
+
+ This is a deviation from historical Hibernate (pre-3.2) behavior to
+ align with the JPA spec, which states that transient entities can be
+ passed to remove operation in which case cascades still need to be
+ performed.
+
+ The session which is the source of the event
+ The entity being delete processed
+ Is cascading of deletes enabled
+ The entity persister
+
+ A cache of already visited transient entities (to avoid infinite recursion).
+
+
+
+
+ Perform the entity deletion. Well, as with most operations, does not
+ really perform it; just schedules an action/execution with the
+ for execution during flush.
+
+ The originating session
+ The entity to delete
+ The entity's entry in the
+ Is delete cascading enabled?
+ The entity persister.
+ A cache of already deleted entities.
+
+
+
+ Defines the default dirty-check event listener used by hibernate for
+ checking the session for dirtiness in response to generated dirty-check events.
+
+
+
+ Defines the contract for handling of session dirty-check events.
+
+
+ Handle the given dirty-check event.
+ The dirty-check event to be handled.
+
+
+
+ Defines the default evict event listener used by hibernate for evicting entities
+ in response to generated flush events. In particular, this implementation will
+ remove any hard references to the entity that are held by the infrastructure
+ (references held by application or other persistent instances are okay)
+
+
+
+ Defines the contract for handling of evict events generated from a session.
+
+
+ Handle the given evict event.
+ The evict event to be handled.
+
+
+
+ An event that occurs for each entity instance at flush time
+
+
+
+
+ Flushes a single entity's state to the database, by scheduling an update action, if necessary
+
+
+
+
+ make sure user didn't mangle the id
+
+ The obj.
+ The persister.
+ The id.
+ The entity mode.
+
+
+
+ Performs all necessary checking to determine if an entity needs an SQL update
+ to synchronize its state to the database. Modifies the event by side-effect!
+ Note: this method is quite slow, avoid calling if possible!
+
+
+
+ Perform a dirty check, and attach the results to the event
+
+
+
+ Defines the default flush event listeners used by hibernate for
+ flushing session state in response to generated flush events.
+
+
+
+ Defines the contract for handling of session flush events.
+
+
+ Handle the given flush event.
+ The flush event to be handled.
+
+
+
+ Defines the contract for handling of collection initialization events
+ generated by a session.
+
+
+
+ called by a collection that wants to initialize itself
+
+
+ Try to initialize a collection from the cache
+
+
+
+ Defines the default load event listeners used by hibernate for loading entities
+ in response to generated load events.
+
+
+
+
+ Defines the contract for handling of load events generated from a session.
+
+
+
+
+ Handle the given load event.
+
+ The load event to be handled.
+
+ The result (i.e., the loaded entity).
+
+
+ Perfoms the load of an entity.
+ The loaded entity.
+
+
+
+ Based on configured options, will either return a pre-existing proxy,
+ generate a new proxy, or perform an actual load.
+
+ The result of the proxy/load operation.
+
+
+
+ Given that there is a pre-existing proxy.
+ Initialize it if necessary; narrow if necessary.
+
+
+
+
+ Given that there is no pre-existing proxy.
+ Check if the entity is already loaded. If it is, return the entity,
+ otherwise create and return a proxy.
+
+
+
+
+ If the class to be loaded has been configured with a cache, then lock
+ given id in that cache and then perform the load.
+
+ The loaded entity
+
+
+
+ Coordinates the efforts to load a given entity. First, an attempt is
+ made to load the entity from the session-level cache. If not found there,
+ an attempt is made to locate it in second-level cache. Lastly, an
+ attempt is made to load it directly from the datasource.
+
+ The load event
+ The persister for the entity being requested for load
+ The EntityKey representing the entity to be loaded.
+ The load options.
+ The loaded entity, or null.
+
+
+
+ Performs the process of loading an entity from the configured underlying datasource.
+
+ The load event
+ The persister for the entity being requested for load
+ The EntityKey representing the entity to be loaded.
+ The load options.
+ The object loaded from the datasource, or null if not found.
+
+
+
+ Attempts to locate the entity in the session-level cache.
+
+ The load event
+ The EntityKey representing the entity to be loaded.
+ The load options.
+ The entity from the session-level cache, or null.
+
+ If allowed to return nulls, then if the entity happens to be found in
+ the session cache, we check the entity type for proper handling
+ of entity hierarchies.
+ If checkDeleted was set to true, then if the entity is found in the
+ session-level cache, it's current status within the session cache
+ is checked to see if it has previously been scheduled for deletion.
+
+
+
+ Attempts to load the entity from the second-level cache.
+ The load event
+ The persister for the entity being requested for load
+ The load options.
+ The entity from the second-level cache, or null.
+
+
+
+ Defines the default lock event listeners used by hibernate to lock entities
+ in response to generated lock events.
+
+
+
+
+ Defines the contract for handling of lock events generated from a session.
+
+
+
+ Handle the given lock event.
+ The lock event to be handled.
+
+
+ Handle the given lock event.
+ The lock event to be handled.
+
+
+
+ Defines the default copy event listener used by hibernate for copying entities
+ in response to generated copy events.
+
+
+
+
+ Defines the contract for handling of merge events generated from a session.
+
+
+
+ Handle the given merge event.
+ The merge event to be handled.
+
+
+ Handle the given merge event.
+ The merge event to be handled.
+
+
+
+
+ Perform any cascades needed as part of this copy event.
+
+ The merge event being processed.
+ The persister of the entity being copied.
+ The entity being copied.
+ A cache of already copied instance.
+
+
+ Cascade behavior is redefined by this subclass, disable superclass behavior
+
+
+ Cascade behavior is redefined by this subclass, disable superclass behavior
+
+
+
+ Defines the default create event listener used by hibernate for creating
+ transient entities in response to generated create events.
+
+
+
+
+ Defines the contract for handling of create events generated from a session.
+
+
+
+ Handle the given create event.
+ The create event to be handled.
+
+
+ Handle the given create event.
+ The create event to be handled.
+
+
+
+ Handle the given create event.
+ The save event to be handled.
+
+
+
+ When persist is used as the cascade action, persistOnFlush should be used
+
+
+ Call interface if necessary
+
+
+
+ Occurs after an an entity instance is fully loaded.
+
+
+
+
+
+
+
+
+
+
+ Called before injecting property values into a newly
+ loaded entity instance.
+
+
+
+
+ Called before injecting property values into a newly loaded entity instance.
+
+
+
+
+
+
+
+
+
+
+ Defines the default refresh event listener used by hibernate for refreshing entities
+ in response to generated refresh events.
+
+
+
+
+ Defines the contract for handling of refresh events generated from a session.
+
+
+
+ Handle the given refresh event.
+ The refresh event to be handled.
+
+
+
+
+
+
+
+
+
+
+ Defines the default replicate event listener used by Hibernate to replicate
+ entities in response to generated replicate events.
+
+
+
+
+ Defines the contract for handling of replicate events generated from a session.
+
+
+
+ Handle the given replicate event.
+ The replicate event to be handled.
+
+
+ An event handler for save() events
+
+
+
+ Defines the default listener used by Hibernate for handling save-update events.
+
+
+
+
+ Defines the contract for handling of update events generated from a session.
+
+
+
+ Handle the given update event.
+ The update event to be handled.
+
+
+
+ The given save-update event named a transient entity.
+ Here, we will perform the save processing.
+
+ The save event to be handled.
+ The entity's identifier after saving.
+
+
+
+ Save the transient instance, assigning the right identifier
+
+ The initiating event.
+ The entity's identifier value after saving.
+
+
+
+ The given save-update event named a detached entity.
+ Here, we will perform the update processing.
+
+ The update event to be handled.
+
+
+ Determine the id to use for updating.
+ The entity.
+ The entity persister
+ The requested identifier
+ The entity mode.
+ The id.
+
+
+
+ Handles the calls needed to perform cascades as part of an update request
+ for the given entity.
+
+ The event currently being processed.
+ The defined persister for the entity being updated.
+ The entity being updated.
+
+
+ An event handler for update() events
+
+
+
+ If the user specified an id, assign it to the instance and use that,
+ otherwise use the id already assigned to the instance
+
+
+
+
+ A Visitor that determines if a dirty collection was found.
+
+
+
+
+ Reason for dirty collection
+
+
+
+ If it is a new application-instantiated collection, return true (does not occur anymore!)
+
+
+
+
+ If it is a component, recurse.
+
+
+
+
+ If it is a wrapped collection, ask the collection entry.
+
+
+
+
+
+
+
+ Gets a indicating if a dirty collection was found.
+
+ if a dirty collection was found.
+
+
+
+ Evict any collections referenced by the object from the session cache.
+ This will NOT pick up any collections that were dereferenced, so they
+ will be deleted (suboptimal but not exactly incorrect).
+
+
+
+
+ Process collections reachable from an entity.
+ This visitor assumes that wrap was already performed for the entity.
+
+
+
+
+ When a transient entity is passed to lock(), we must inspect all its collections and
+ 1. associate any uninitialized PersistentCollections with this session
+ 2. associate any initialized PersistentCollections with this session, using the existing snapshot
+ 3. throw an exception for each "new" collection
+
+
+
+
+ Abstract superclass of visitors that reattach collections
+
+
+
+
+ Reassociates uninitialized proxies with the session
+
+
+
+
+ Visit a many-to-one or one-to-one associated entity. Default superclass implementation is a no-op.
+
+
+
+
+
+
+
+ Has the owner of the collection changed since the collection was snapshotted and detached?
+
+
+
+
+ Reattach a detached (disassociated) initialized or uninitialized
+ collection wrapper, using a snapshot carried with the collection wrapper
+
+
+
+
+ Schedules a collection for deletion.
+
+ The persister representing the collection to be removed.
+ The collection key (differs from owner-id in the case of property-refs).
+ The session from which the request originated.
+
+
+
+ This version is slightly different in that here we need to assume that
+ the owner is not yet associated with the session, and thus we cannot
+ rely on the owner's EntityEntry snapshot...
+
+ The persister for the collection role being processed.
+
+
+
+
+ When an entity is passed to replicate(), and there is an existing row, we must
+ inspect all its collections and
+ 1. associate any uninitialized PersistentCollections with this session
+ 2. associate any initialized PersistentCollections with this session, using the existing snapshot
+ 3. execute a collection removal (SQL DELETE) for each null collection property or "new" collection
+
+
+
+
+ When an entity is passed to update(), we must inspect all its collections and
+ 1. associate any uninitialized PersistentCollections with this session
+ 2. associate any initialized PersistentCollections with this session, using the existing snapshot
+ 3. execute a collection removal (SQL DELETE) for each null collection property or "new" collection
+
+
+
+
+ Wrap collections in a Hibernate collection wrapper.
+
+
+
+ Defines a base class for events involving collections.
+
+
+
+ Defines a base class for Session generated events.
+
+
+
+
+ Returns the session event source for this event.
+ This is the underlying session from which this event was generated.
+
+
+
+
+ Constructs an event from the given event session.
+
+ The session event source.
+
+
+
+ Returns the session event source for this event.
+ This is the underlying session from which this event was generated.
+
+
+
+ Constructs an AbstractCollectionEvent object.
+ The collection persister.
+ The collection
+ The Session source
+ The owner that is affected by this event; can be null if unavailable
+
+ The ID for the owner that is affected by this event; can be null if unavailable
+ that is affected by this event; can be null if unavailable
+
+
+
+ Get the entity name for the collection owner entity that is affected by this event.
+
+ The entity name; if the owner is not in the PersistenceContext, the
+ returned value may be a superclass name, instead of the actual class name
+
+
+
+ The collection owner entity that is affected by this event.
+
+ Returns null if the entity is not in the persistence context
+ (e.g., because the collection from a detached entity was moved to a new owner)
+
+
+
+ Get the ID for the collection owner entity that is affected by this event.
+
+ Returns null if the ID cannot be obtained
+ from the collection's loaded key (e.g., a property-ref is used for the
+ collection and does not include the entity's ID)
+
+
+
+
+ Represents an operation we performed against the database.
+
+
+
+
+ Represents an operation we performed against the database.
+
+
+
+ The entity involved in the database operation.
+
+
+ The id to be used in the database operation.
+
+
+
+ The persister for the .
+
+
+
+ Constructs an event containing the pertinent information.
+ The session from which the event originated.
+ The entity to be invloved in the database operation.
+ The entity id to be invloved in the database operation.
+ The entity's persister.
+
+
+ The entity involved in the database operation.
+
+
+ The id to be used in the database operation.
+
+
+
+ The persister for the .
+
+
+
+
+ Represents an operation we are about to perform against the database.
+
+
+
+ The entity involved in the database operation.
+
+
+ The id to be used in the database operation.
+
+
+
+ The persister for the .
+
+
+
+ Constructs an event containing the pertinent information.
+ The session from which the event originated.
+ The entity to be invloved in the database operation.
+ The entity id to be invloved in the database operation.
+ The entity's persister.
+
+
+ The entity involved in the database operation.
+
+
+ The id to be used in the database operation.
+
+
+
+ The persister for the .
+
+
+
+ Defines an event class for the auto-flushing of a session.
+
+
+ Defines an event class for the flushing of a session.
+
+
+ Defines an event class for the deletion of an entity.
+
+
+ Constructs a new DeleteEvent instance.
+ The entity to be deleted.
+ The session from which the delete event was generated.
+
+
+
+
+ Returns the encapsulated entity to be deleed.
+
+
+
+ Defines an event class for the dirty-checking of a session.
+
+
+
+ A convience holder for all defined session event listeners.
+
+
+
+
+ Call on any listeners that implement
+ .
+
+
+
+
+ Defines an event class for the evicting of an entity.
+
+
+
+ Contract for listeners which require notification of SessionFactory closing,
+ presumably to destroy internal state.
+
+
+
+
+ Notification of shutdown.
+
+
+
+
+ The main runtime interface between a .NET application and NHibernate. This is the central
+ API class abstracting the notion of a persistence service.
+
+
+
+ The lifecycle of a ISession is bounded by the beginning and end of a logical
+ transaction. (Long transactions might span several database transactions.)
+
+
+ The main function of the ISession is to offer create, find and delete operations
+ for instances of mapped entity classes. Instances may exist in one of two states:
+
+ transient: not associated with any ISession
+ persistent: associated with a ISession
+
+
+
+ Transient instances may be made persistent by calling Save(), Insert(),
+ or Update(). Persistent instances may be made transient by calling Delete().
+ Any instance returned by a List(), Iterate(), Load(), or Create
+ method is persistent.
+
+
+ Save() results in an SQL INSERT, Delete()
+ in an SQL DELETE and Update() in an SQL UPDATE. Changes to
+ persistent instances are detected at flush time and also result in an SQL
+ UPDATE.
+
+
+ It is not intended that implementors be threadsafe. Instead each thread/transaction should obtain
+ its own instance from an ISessionFactory.
+
+
+ A ISession instance is serializable if its persistent classes are serializable
+
+
+ A typical transaction should use the following idiom:
+
+ ISession sess = factory.OpenSession();
+ ITransaction tx;
+ try {
+ tx = sess.BeginTransaction();
+ //do some work
+ ...
+ tx.Commit();
+ } catch (Exception e) {
+ if (tx != null) tx.Rollback();
+ throw;
+ } finally {
+ sess.Close();
+ }
+
+
+
+ If the ISession throws an exception, the transaction must be rolled back and the session
+ discarded. The internal state of the ISession might not be consistent with the database
+ after the exception occurs.
+
+
+
+
+
+
+ Force the ISession to flush.
+
+
+ Must be called at the end of a unit of work, before commiting the transaction and closing
+ the session (Transaction.Commit() calls this method). Flushing if the process
+ of synchronising the underlying persistent store with persistable state held in memory.
+
+
+
+
+ Disconnect the ISession from the current ADO.NET connection.
+
+
+ If the connection was obtained by Hibernate, close it or return it to the connection
+ pool. Otherwise return it to the application. This is used by applications which require
+ long transactions.
+
+ The connection provided by the application or
+
+
+
+ Obtain a new ADO.NET connection.
+
+
+ This is used by applications which require long transactions
+
+
+
+
+ Reconnect to the given ADO.NET connection.
+
+ This is used by applications which require long transactions
+ An ADO.NET connection
+
+
+
+ End the ISession by disconnecting from the ADO.NET connection and cleaning up.
+
+
+ It is not strictly necessary to Close() the ISession but you must
+ at least Disconnect() it.
+
+ The connection provided by the application or
+
+
+
+ Cancel execution of the current query.
+
+
+ May be called from one thread to stop execution of a query in another thread.
+ Use with care!
+
+
+
+
+ Does this ISession contain any changes which must be
+ synchronized with the database? Would any SQL be executed if
+ we flushed this session?
+
+
+
+
+ Return the identifier of an entity instance cached by the ISession
+
+
+ Throws an exception if the instance is transient or associated with a different
+ ISession
+
+ a persistent instance
+ the identifier
+
+
+
+ Is this instance associated with this Session?
+
+ an instance of a persistent class
+ true if the given instance is associated with this Session
+
+
+
+ Remove this instance from the session cache.
+
+
+ Changes to the instance will not be synchronized with the database.
+ This operation cascades to associated instances if the association is mapped
+ with cascade="all" or cascade="all-delete-orphan".
+
+ a persistent instance
+
+
+
+ Return the persistent instance of the given entity class with the given identifier,
+ obtaining the specified lock mode.
+
+ A persistent class
+ A valid identifier of an existing persistent instance of the class
+ The lock level
+ the persistent instance
+
+
+
+ Return the persistent instance of the given entity class with the given identifier,
+ obtaining the specified lock mode, assuming the instance exists.
+
+ The entity-name of a persistent class
+ a valid identifier of an existing persistent instance of the class
+ the lock level
+ the persistent instance or proxy
+
+
+
+ Return the persistent instance of the given entity class with the given identifier,
+ assuming that the instance exists.
+
+
+ You should not use this method to determine if an instance exists (use a query or
+ instead). Use this only to retrieve an instance
+ that you assume exists, where non-existence would be an actual error.
+
+ A persistent class
+ A valid identifier of an existing persistent instance of the class
+ The persistent instance or proxy
+
+
+
+ Return the persistent instance of the given entity class with the given identifier,
+ obtaining the specified lock mode.
+
+ A persistent class
+ A valid identifier of an existing persistent instance of the class
+ The lock level
+ the persistent instance
+
+
+
+ Return the persistent instance of the given entity class with the given identifier,
+ assuming that the instance exists.
+
+
+ You should not use this method to determine if an instance exists (use a query or
+ instead). Use this only to retrieve an instance that you
+ assume exists, where non-existence would be an actual error.
+
+ A persistent class
+ A valid identifier of an existing persistent instance of the class
+ The persistent instance or proxy
+
+
+
+ Return the persistent instance of the given with the given identifier,
+ assuming that the instance exists.
+
+ The entity-name of a persistent class
+ a valid identifier of an existing persistent instance of the class
+ The persistent instance or proxy
+
+ You should not use this method to determine if an instance exists (use
+ instead). Use this only to retrieve an instance that you assume exists, where non-existence
+ would be an actual error.
+
+
+
+
+ Read the persistent state associated with the given identifier into the given transient
+ instance.
+
+ An "empty" instance of the persistent class
+ A valid identifier of an existing persistent instance of the class
+
+
+
+ Persist all reachable transient objects, reusing the current identifier
+ values. Note that this will not trigger the Interceptor of the Session.
+
+ a detached instance of a persistent class
+
+
+
+
+ Persist the state of the given detached instance, reusing the current
+ identifier value. This operation cascades to associated instances if
+ the association is mapped with cascade="replicate".
+
+
+ a detached instance of a persistent class
+
+
+
+
+ Persist the given transient instance, first assigning a generated identifier.
+
+
+ Save will use the current value of the identifier property if the Assigned
+ generator is used.
+
+ A transient instance of a persistent class
+ The generated identifier
+
+
+
+ Persist the given transient instance, using the given identifier.
+
+ A transient instance of a persistent class
+ An unused valid identifier
+
+
+
+ Persist the given transient instance, first assigning a generated identifier. (Or
+ using the current value of the identifier property if the assigned
+ generator is used.)
+
+ The Entity name.
+ a transient instance of a persistent class
+ the generated identifier
+
+ This operation cascades to associated instances if the
+ association is mapped with cascade="save-update".
+
+
+
+
+ Either Save() or Update() the given instance, depending upon the value of
+ its identifier property.
+
+
+ By default the instance is always saved. This behaviour may be adjusted by specifying
+ an unsaved-value attribute of the identifier property mapping
+
+ A transient instance containing new or updated state
+
+
+
+ Either or
+ the given instance, depending upon resolution of the unsaved-value checks
+ (see the manual for discussion of unsaved-value checking).
+
+ The name of the entity
+ a transient or detached instance containing new or updated state
+
+
+
+ This operation cascades to associated instances if the association is mapped
+ with cascade="save-update".
+
+
+
+
+ Update the persistent instance with the identifier of the given transient instance.
+
+
+ If there is a persistent instance with the same identifier, an exception is thrown. If
+ the given transient instance has a identifier, an exception will be thrown.
+
+ A transient instance containing updated state
+
+
+
+ Update the persistent state associated with the given identifier.
+
+
+ An exception is thrown if there is a persistent instance with the same identifier
+ in the current session.
+
+ A transient instance containing updated state
+ Identifier of persistent instance
+
+
+
+ Update the persistent instance with the identifier of the given detached
+ instance.
+
+ The Entity name.
+ a detached instance containing updated state
+
+ If there is a persistent instance with the same identifier,
+ an exception is thrown. This operation cascades to associated instances
+ if the association is mapped with cascade="save-update".
+
+
+
+
+ Copy the state of the given object onto the persistent object with the same
+ identifier. If there is no persistent instance currently associated with
+ the session, it will be loaded. Return the persistent instance. If the
+ given instance is unsaved, save a copy of and return it as a newly persistent
+ instance. The given instance does not become associated with the session.
+ This operation cascades to associated instances if the association is mapped
+ with cascade="merge".
+ The semantics of this method are defined by JSR-220.
+
+ a detached instance with state to be copied
+ an updated persistent instance
+
+
+
+ Copy the state of the given object onto the persistent object with the same
+ identifier. If there is no persistent instance currently associated with
+ the session, it will be loaded. Return the persistent instance. If the
+ given instance is unsaved, save a copy of and return it as a newly persistent
+ instance. The given instance does not become associated with the session.
+ This operation cascades to associated instances if the association is mapped
+ with cascade="merge".
+ The semantics of this method are defined by JSR-220.
+ Name of the entity.
+ a detached instance with state to be copied
+ an updated persistent instance
+
+
+
+
+
+ Make a transient instance persistent. This operation cascades to associated
+ instances if the association is mapped with cascade="persist".
+ The semantics of this method are defined by JSR-220.
+
+ a transient instance to be made persistent
+
+
+
+ Make a transient instance persistent. This operation cascades to associated
+ instances if the association is mapped with cascade="persist".
+ The semantics of this method are defined by JSR-220.
+
+ Name of the entity.
+ a transient instance to be made persistent
+
+
+
+ Copy the state of the given object onto the persistent object with the same
+ identifier. If there is no persistent instance currently associated with
+ the session, it will be loaded. Return the persistent instance. If the
+ given instance is unsaved or does not exist in the database, save it and
+ return it as a newly persistent instance. Otherwise, the given instance
+ does not become associated with the session.
+
+ a transient instance with state to be copied
+ an updated persistent instance
+
+
+
+ Copy the state of the given object onto the persistent object with the
+ given identifier. If there is no persistent instance currently associated
+ with the session, it will be loaded. Return the persistent instance. If
+ there is no database row with the given identifier, save the given instance
+ and return it as a newly persistent instance. Otherwise, the given instance
+ does not become associated with the session.
+
+ a persistent or transient instance with state to be copied
+ the identifier of the instance to copy to
+ an updated persistent instance
+
+
+
+ Remove a persistent instance from the datastore.
+
+
+ The argument may be an instance associated with the receiving ISession or a
+ transient instance with an identifier associated with existing persistent state.
+
+ The instance to be removed
+
+
+
+ Remove a persistent instance from the datastore. The object argument may be
+ an instance associated with the receiving or a transient
+ instance with an identifier associated with existing persistent state.
+ This operation cascades to associated instances if the association is mapped
+ with cascade="delete".
+
+ The entity name for the instance to be removed.
+ the instance to be removed
+
+
+
+ Execute a query
+
+ A query expressed in Hibernate's query language
+ A distinct list of instances
+ See for implications of cache usage.
+
+
+
+ Execute a query, binding a value to a "?" parameter in the query string.
+
+ The query string
+ A value to be bound to a "?" placeholder
+ The Hibernate type of the value
+ A distinct list of instances
+ See for implications of cache usage.
+
+
+
+ Execute a query, binding an array of values to a "?" parameters in the query string.
+
+ The query string
+ An array of values to be bound to the "?" placeholders
+ An array of Hibernate types of the values
+ A distinct list of instances
+ See for implications of cache usage.
+
+
+
+ Execute a query and return the results in an interator.
+
+
+
+ If the query has multiple return values, values will be returned in an array of
+ type object[].
+
+
+ Entities returned as results are initialized on demand. The first SQL query returns
+ identifiers only. So Enumerator() is usually a less efficient way to retrieve
+ object than List().
+
+
+ The query string
+ An enumerator
+
+
+
+ Execute a query and return the results in an interator,
+ binding a value to a "?" parameter in the query string.
+
+
+
+ If the query has multiple return values, values will be returned in an array of
+ type object[].
+
+
+ Entities returned as results are initialized on demand. The first SQL query returns
+ identifiers only. So Enumerator() is usually a less efficient way to retrieve
+ object than List().
+
+
+ The query string
+ A value to be written to a "?" placeholder in the query string
+ The hibernate type of the value
+ An enumerator
+
+
+
+ Execute a query and return the results in an interator,
+ binding the values to "?"s parameters in the query string.
+
+
+
+ If the query has multiple return values, values will be returned in an array of
+ type object[].
+
+
+ Entities returned as results are initialized on demand. The first SQL query returns
+ identifiers only. So Enumerator() is usually a less efficient way to retrieve
+ object than List().
+
+
+ The query string
+ A list of values to be written to "?" placeholders in the query
+ A list of hibernate types of the values
+ An enumerator
+
+
+
+ Apply a filter to a persistent collection.
+
+
+ A filter is a Hibernate query that may refer to this, the collection element.
+ Filters allow efficient access to very large lazy collections. (Executing the filter
+ does not initialize the collection.)
+
+ A persistent collection to filter
+ A filter query string
+ The resulting collection
+
+
+
+ Apply a filter to a persistent collection, binding the given parameter to a "?" placeholder
+
+
+ A filter is a Hibernate query that may refer to this, the collection element.
+ Filters allow efficient access to very large lazy collections. (Executing the filter
+ does not initialize the collection.)
+
+ A persistent collection to filter
+ A filter query string
+ A value to be written to a "?" placeholder in the query
+ The hibernate type of value
+ A collection
+
+
+
+ Apply a filter to a persistent collection, binding the given parameters to "?" placeholders.
+
+
+ A filter is a Hibernate query that may refer to this, the collection element.
+ Filters allow efficient access to very large lazy collections. (Executing the filter
+ does not initialize the collection.)
+
+ A persistent collection to filter
+ A filter query string
+ The values to be written to "?" placeholders in the query
+ The hibernate types of the values
+ A collection
+
+
+
+ Delete all objects returned by the query.
+
+ The query string
+ Returns the number of objects deleted.
+
+
+
+ Delete all objects returned by the query.
+
+ The query string
+ A value to be written to a "?" placeholer in the query
+ The hibernate type of value.
+ The number of instances deleted
+
+
+
+ Delete all objects returned by the query.
+
+ The query string
+ A list of values to be written to "?" placeholders in the query
+ A list of Hibernate types of the values
+ The number of instances deleted
+
+
+
+ Obtain the specified lock level upon the given object.
+
+ A persistent instance
+ The lock level
+
+
+
+ Obtain the specified lock level upon the given object.
+
+ The Entity name.
+ a persistent or transient instance
+ the lock level
+
+ This may be used to perform a version check (), to upgrade to a pessimistic
+ lock (), or to simply reassociate a transient instance
+ with a session (). This operation cascades to associated
+ instances if the association is mapped with cascade="lock".
+
+
+
+
+ Re-read the state of the given instance from the underlying database.
+
+
+
+ It is inadvisable to use this to implement long-running sessions that span many
+ business tasks. This method is, however, useful in certain special circumstances.
+
+
+ For example,
+
+ Where a database trigger alters the object state upon insert or update
+ After executing direct SQL (eg. a mass update) in the same session
+ After inserting a Blob or Clob
+
+
+
+ A persistent instance
+
+
+
+ Re-read the state of the given instance from the underlying database, with
+ the given LockMode.
+
+
+ It is inadvisable to use this to implement long-running sessions that span many
+ business tasks. This method is, however, useful in certain special circumstances.
+
+ a persistent or transient instance
+ the lock mode to use
+
+
+
+ Determine the current lock mode of the given object
+
+ A persistent instance
+ The current lock mode
+
+
+
+ Begin a unit of work and return the associated ITransaction object.
+
+
+ If a new underlying transaction is required, begin the transaction. Otherwise
+ continue the new work in the context of the existing underlying transaction.
+ The class of the returned object is determined by
+ the property transaction_factory
+
+ A transaction instance
+
+
+
+ Begin a transaction with the specified isolationLevel
+
+ Isolation level for the new transaction
+ A transaction instance having the specified isolation level
+
+
+
+ Creates a new Criteria for the entity class.
+
+ The entity class
+ An ICriteria object
+
+
+
+ Creates a new Criteria for the entity class with a specific alias
+
+ The entity class
+ The alias of the entity
+ An ICriteria object
+
+
+
+ Creates a new Criteria for the entity class.
+
+ The class to Query
+ An ICriteria object
+
+
+
+ Creates a new Criteria for the entity class with a specific alias
+
+ The class to Query
+ The alias of the entity
+ An ICriteria object
+
+
+
+ Create a new Criteria instance, for the given entity name.
+
+ The name of the entity to Query
+ An ICriteria object
+
+
+
+ Create a new Criteria instance, for the given entity name,
+ with the given alias.
+
+ The name of the entity to Query
+ The alias of the entity
+ An ICriteria object
+
+
+
+ Create a new instance of Query for the given query string
+
+ A hibernate query string
+ The query
+
+
+
+ Create a new instance of Query for the given collection and filter string
+
+ A persistent collection
+ A hibernate query
+ A query
+
+
+
+ Obtain an instance of for a named query string defined in the
+ mapping file.
+
+ The name of a query defined externally.
+ An from a named query string.
+
+ The query can be either in HQL or SQL format.
+
+
+
+
+ Create a new instance of IQuery for the given SQL string.
+
+ a query expressed in SQL
+ a table alias that appears inside {} in the SQL string
+ the returned persistent class
+ An from the SQL string
+
+
+
+ Create a new instance of for the given SQL string.
+
+ a query expressed in SQL
+ an array of table aliases that appear inside {} in the SQL string
+ the returned persistent classes
+ An from the SQL string
+
+
+
+ Create a new instance of for the given SQL query string.
+
+ a query expressed in SQL
+ An from the SQL string
+
+
+
+ Completely clear the session. Evict all loaded instances and cancel all pending
+ saves, updates and deletions. Do not close open enumerables or instances of
+ ScrollableResults.
+
+
+
+
+ Return the persistent instance of the given entity class with the given identifier, or null
+ if there is no such persistent instance. (If the instance, or a proxy for the instance, is
+ already associated with the session, return that instance or proxy.)
+
+ a persistent class
+ an identifier
+ a persistent instance or null
+
+
+
+ Return the persistent instance of the given entity class with the given identifier, or null
+ if there is no such persistent instance. Obtain the specified lock mode if the instance
+ exists.
+
+ a persistent class
+ an identifier
+ the lock mode
+ a persistent instance or null
+
+
+
+ Return the persistent instance of the given named entity with the given identifier,
+ or null if there is no such persistent instance. (If the instance, or a proxy for the
+ instance, is already associated with the session, return that instance or proxy.)
+
+ the entity name
+ an identifier
+ a persistent instance or null
+
+
+
+ Strongly-typed version of
+
+
+
+
+ Strongly-typed version of
+
+
+
+
+ Return the entity name for a persistent entity
+
+ a persistent entity
+ the entity name
+
+
+
+ Enable the named filter for this current session.
+
+ The name of the filter to be enabled.
+ The Filter instance representing the enabled filter.
+
+
+
+ Retrieve a currently enabled filter by name.
+
+ The name of the filter to be retrieved.
+ The Filter instance representing the enabled filter.
+
+
+
+ Disable the named filter for the current session.
+
+ The name of the filter to be disabled.
+
+
+
+ Create a multi query, a query that can send several
+ queries to the server, and return all their results in a single
+ call.
+
+
+ An that can return
+ a list of all the results of all the queries.
+ Note that each query result is itself usually a list.
+
+
+
+
+ Sets the batch size of the session
+
+
+
+
+
+
+ Gets the session implementation.
+
+
+ This method is provided in order to get the NHibernate implementation of the session from wrapper implementions.
+ Implementors of the interface should return the NHibernate implementation of this method.
+
+
+ An NHibernate implementation of the interface
+
+
+
+
+ An that can return a list of all the results
+ of all the criterias.
+
+
+
+
+
+ Starts a new Session with the given entity mode in effect. This secondary
+ Session inherits the connection, transaction, and other context
+ information from the primary Session. It doesn't need to be flushed
+ or closed by the developer.
+
+ The entity mode to use for the new session.
+ The new session
+
+
+ The entity mode in effect for this session.
+
+
+
+ Determines at which points Hibernate automatically flushes the session.
+
+
+ For a readonly session, it is reasonable to set the flush mode to FlushMode.Never
+ at the start of the session (in order to achieve some extra performance).
+
+
+
+ The current cache mode.
+
+ Cache mode determines the manner in which this session can interact with
+ the second level cache.
+
+
+
+
+ Get the that created this instance.
+
+
+
+
+ Gets the ADO.NET connection.
+
+
+ Applications are responsible for calling commit/rollback upon the connection before
+ closing the ISession.
+
+
+
+
+ Is the ISession still open?
+
+
+
+
+ Is the ISession currently connected?
+
+
+
+
+ Get the current Unit of Work and return the associated ITransaction object.
+
+
+
+ Get the statistics for this session.
+
+
+
+ Instantiate an entity instance, using either an interceptor,
+ or the given persister
+
+
+
+ Force an immediate flush
+
+
+ Cascade merge an entity instance
+
+
+ Cascade persist an entity instance
+
+
+ Cascade persist an entity instance during the flush process
+
+
+ Cascade refresh an entity instance
+
+
+ Cascade copy an entity instance
+
+
+ Cascade delete an entity instance
+
+
+ Get the ActionQueue for this session
+
+
+
+ An event listener that requires access to mappings to
+ initialize state at initialization time.
+
+
+
+
+ An event that occurs when a collection wants to be initialized
+
+
+
+ Called after recreating a collection
+
+
+ Called after removing a collection
+
+
+ Called after updating a collection
+
+
+ Called after deleting an item from the datastore
+
+
+
+
+
+
+
+
+ Called after inserting an item in the datastore
+
+
+
+
+
+
+
+
+
+ Called after updating the datastore
+
+
+
+
+
+
+
+
+
+ Called before recreating a collection
+
+
+ Called before removing a collection
+
+
+ Called before updating a collection
+
+
+
+ Called before deleting an item from the datastore
+
+
+
+ Return true if the operation should be vetoed
+
+
+
+
+ Called before inserting an item in the datastore
+
+
+
+ Return true if the operation should be vetoed
+
+
+
+
+ Called before updating the datastore
+
+
+
+ Return true if the operation should be vetoed
+
+
+
+
+ Values for listener type property.
+
+
+
+ Not allowed in Xml. It represents the default value when an explicit type is assigned.
+
+
+ Xml value: auto-flush
+
+
+ Xml value: merge
+
+
+ Xml value: create
+
+
+ Xml value: create-onflush
+
+
+ Xml value: delete
+
+
+ Xml value: dirty-check
+
+
+ Xml value: evict
+
+
+ Xml value: flush
+
+
+ Xml value: flush-entity
+
+
+ Xml value: load
+
+
+ Xml value: load-collection
+
+
+ Xml value: lock
+
+
+ Xml value: refresh
+
+
+ Xml value: replicate
+
+
+ Xml value: save-update
+
+
+ Xml value: save
+
+
+ Xml value: pre-update
+
+
+ Xml value: update
+
+
+ Xml value: pre-load
+
+
+ Xml value: pre-delete
+
+
+ Xml value: pre-insert
+
+
+ Xml value: pre-collection-recreate
+
+
+ Xml value: pre-collection-remove
+
+
+ Xml value: pre-collection-update
+
+
+ Xml value: post-load
+
+
+ Xml value: post-insert
+
+
+ Xml value: post-update
+
+
+ Xml value: post-delete
+
+
+ Xml value: post-commit-update
+
+
+ Xml value: post-commit-insert
+
+
+ Xml value: post-commit-delete
+
+
+ Xml value: post-collection-recreate
+
+
+ Xml value: post-collection-remove
+
+
+ Xml value: post-collection-update
+
+
+ Defines an event class for the loading of an entity.
+
+
+
+ Defines an event class for the locking of an entity.
+
+
+
+
+ An event class for merge() and saveOrUpdateCopy()
+
+
+
+ An event class for persist()
+
+
+ An event that occurs after a collection is recreated
+
+
+ An event that occurs after a collection is removed
+
+
+ An event that occurs after a collection is updated
+
+
+
+ Occurs after deleting an item from the datastore
+
+
+
+
+ Occurs after inserting an item in the datastore
+
+
+
+
+ Occurs after an an entity instance is fully loaded.
+
+
+
+
+ Occurs after the datastore is updated
+
+
+
+ An event that occurs before a collection is recreated
+
+
+ An event that occurs before a collection is removed
+
+
+ An event that occurs before a collection is updated
+
+
+
+ Represents a pre-delete event, which occurs just prior to
+ performing the deletion of an entity from the database.
+
+
+
+
+ Constructs an event containing the pertinent information.
+
+ The entity to be deleted.
+ The id to use in the deletion.
+ The entity's state at deletion time.
+ The entity's persister.
+ The session from which the event originated.
+
+
+
+ This is the entity state at the
+ time of deletion (useful for optomistic locking and such).
+
+
+
+
+ Represents a pre-insert event, which occurs just prior to
+ performing the insert of an entity into the database.
+
+
+
+
+ These are the values to be inserted.
+
+
+
+
+ Called before injecting property values into a newly loaded entity instance.
+
+
+
+
+ Represents a pre-update event, which occurs just prior to
+ performing the update of an entity in the database.
+
+
+
+
+ Retrieves the state to be used in the update.
+
+
+
+
+ The old state of the entity at the time it was last loaded from the
+ database; can be null in the case of detached entities.
+
+
+
+
+ Defines an event class for the refreshing of an object.
+
+
+
+
+ Defines an event class for the replication of an entity.
+
+
+
+
+ An event class for saveOrUpdate()
+
+
+
+
+ Implementation of ADOException indicating problems with communicating with the
+ database (can also include incorrect ADO setup).
+
+
+
+
+ Wraps exceptions that occur during ADO.NET calls.
+
+
+ Exceptions thrown by various ADO.NET providers are not derived from
+ a common base class (SQLException in Java), so
+ is used instead in NHibernate.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+ The exception that is the cause of the current exception. If the innerException parameter
+ is not a null reference, the current exception is raised in a catch block that handles
+ the inner exception.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Collect data of an to be converted.
+
+
+
+
+ The to be converted.
+
+
+
+
+ An optional error message.
+
+
+
+
+ The SQL that generate the exception
+
+
+
+
+ Optional EntityName where available in the original exception context.
+
+
+
+
+ Optional EntityId where available in the original exception context.
+
+
+
+
+ Converts the given SQLException into Exception hierarchy, as well as performing
+ appropriate logging.
+
+ The converter to use.
+ The exception to convert.
+ An optional error message.
+ The SQL executed.
+ The converted .
+
+
+
+ Converts the given SQLException into Exception hierarchy, as well as performing
+ appropriate logging.
+
+ The converter to use.
+ The exception to convert.
+ An optional error message.
+ The converted .
+
+
+ For the given , locates the .
+ The exception from which to extract the
+ The , or null.
+
+
+
+ Implementation of ADOException indicating that the requested DML operation
+ resulted in a violation of a defined integrity constraint.
+
+
+
+
+ Returns the name of the violated constraint, if known.
+
+ The name of the violated constraint, or null if not known.
+
+
+
+ Implementation of ADOException indicating that evaluation of the
+ valid SQL statement against the given data resulted in some
+ illegal operation, mismatched types or incorrect cardinality.
+
+
+
+
+ The Configurable interface defines the contract for impls that
+ want to be configured prior to usage given the currently defined Hibernate properties.
+
+
+
+ Configure the component, using the given settings and properties.
+ All defined startup properties.
+
+
+
+ Defines a contract for implementations that know how to convert a
+ into NHibernate's hierarchy.
+
+
+ Inspired by Spring's SQLExceptionTranslator.
+
+ Implementations must have a constructor which takes a
+ parameter.
+
+ Implementations may implement if they need to perform
+ configuration steps prior to first use.
+
+
+
+
+
+ Convert the given into custom Exception.
+
+ Available information during exception throw.
+ The resulting Exception to throw.
+
+
+
+ Implementation of ADOException indicating a problem acquiring lock
+ on the database.
+
+
+
+ A factory for building SQLExceptionConverter instances.
+
+
+ Build a SQLExceptionConverter instance.
+ The defined dialect.
+ The configuration properties.
+ An appropriate instance.
+
+ First, looks for a property to see
+ if the configuration specified the class of a specific converter to use. If this
+ property is set, attempt to construct an instance of that class. If not set, or
+ if construction fails, the converter specific to the dialect will be used.
+
+
+
+
+ Builds a minimal converter. The instance returned here just always converts to .
+
+ The minimal converter.
+
+
+
+ Implementation of ADOException indicating that the SQL sent to the database
+ server was invalid (syntax error, invalid object references, etc).
+
+
+
+
+ A SQLExceptionConverter implementation which performs no conversion of
+ the underlying .
+ Interpretation of a SQL error based on
+ is not possible as using the ErrorCode (which is, however, vendor-
+ specific). Use of a ErrorCode-based converter should be preferred approach
+ for converting/interpreting SQLExceptions.
+
+
+
+ Handle an exception not converted to a specific type based on the SQLState.
+ The exception to be handled.
+ An optional message
+ Optionally, the sql being performed when the exception occurred.
+ The converted exception; should never be null.
+
+
+
+ Encapsulates the strategy required to execute various types of update, delete,
+ and insert statements issued through HQL.
+
+
+
+
+ Execute the sql managed by this executor using the given parameters.
+
+ Essentially bind information for this processing.
+ The session originating the request.
+ The number of entities updated/deleted.
+
+
+
+ True if this is a filter query (allow no FROM clause). *
+
+
+
+ Returns to the previous 'FROM' context.
+
+
+
+
+
+ Implementations will report or handle errors invoked by an ANTLR base parser.
+ Author: josh
+ Ported by: Steve Strong
+
+
+
+ all append invocations on the buf should go through this Output instance variable.
+ The value of this variable may be temporarily substitued by sql function processing code
+ to catch generated arguments.
+ This is because sql function templates need arguments as seperate string chunks
+ that will be assembled into the target dialect-specific function call.
+
+
+
+ Handles parser errors.
+
+
+
+
+ Add a aspace if the previous token was not a space or a parenthesis.
+
+
+
+
+ The default SQL writer.
+
+
+
+
+ Writes SQL fragments.
+
+
+
+ todo remove this hack
+ The parameter is either ", " or " , ". This is needed to pass sql generating tests as the old
+ sql generator uses " , " in the WHERE and ", " in SELECT.
+
+ @param comma either " , " or ", "
+
+
+
+ Abstract superclass of object loading (and querying) strategies.
+
+
+
+ This class implements useful common functionality that concrete loaders would delegate to.
+ It is not intended that this functionality would be directly accessed by client code (Hence,
+ all methods of this class are declared protected or private.) This class relies heavily upon the
+ interface, which is the contract between this class and
+ s that may be loaded by it.
+
+
+ The present implementation is able to load any number of columns of entities and at most
+ one collection role per query.
+
+
+
+
+
+
+ What lock mode does this load entities with?
+
+ A Collection of lock modes specified dynamically via the Query Interface
+
+
+
+
+ Append FOR UPDATE OF clause, if necessary. This
+ empty superclass implementation merely returns its first
+ argument.
+
+
+
+
+ Does this query return objects that might be already cached by
+ the session, whose lock mode may need upgrading.
+
+
+
+
+
+ Modify the SQL, adding lock hints and comments, if necessary
+
+
+
+
+ Execute an SQL query and attempt to instantiate instances of the class mapped by the given
+ persister from each row of the DataReader. If an object is supplied, will attempt to
+ initialize that object. If a collection is supplied, attempt to initialize that collection.
+
+
+
+
+ Loads a single row from the result set. This is the processing used from the
+ ScrollableResults where no collection fetches were encountered.
+
+ The result set from which to do the load.
+ The session from which the request originated.
+ The query parameters specified by the user.
+ Should proxies be generated
+ The loaded "row".
+
+
+
+
+ Read any collection elements contained in a single row of the result set
+
+
+
+
+ Get the actual object that is returned in the user-visible result list.
+
+
+ This empty implementation merely returns its first argument. This is
+ overridden by some subclasses.
+
+
+
+
+ For missing objects associated by one-to-one with another object in the
+ result set, register the fact that the the object is missing with the
+ session.
+
+
+
+
+ Read one collection element from the current row of the ADO.NET result set
+
+
+
+
+ If this is a collection initializer, we need to tell the session that a collection
+ is being initilized, to account for the possibility of the collection having
+ no elements (hence no rows in the result set).
+
+
+
+
+ Read a row of EntityKeys from the IDataReader into the given array.
+
+
+ Warning: this method is side-effecty. If an id is given, don't bother going
+ to the IDataReader
+
+
+
+
+ Check the version of the object in the IDataReader against
+ the object version in the session cache, throwing an exception
+ if the version numbers are different.
+
+
+
+
+
+ Resolve any ids for currently loaded objects, duplications within the IDataReader,
+ etc. Instanciate empty objects to be initialized from the IDataReader. Return an
+ array of objects (a row of results) and an array of booleans (by side-effect) that determine
+ wheter the corresponding object should be initialized
+
+
+
+
+ The entity instance is already in the session cache
+
+
+
+
+ The entity instance is not in the session cache
+
+
+
+
+ Hydrate the state of an object from the SQL IDataReader, into
+ an array of "hydrated" values (do not resolve associations yet),
+ and pass the hydrated state to the session.
+
+
+
+
+ Determine the concrete class of an instance for the IDataReader
+
+
+
+
+ Advance the cursor to the first required row of the IDataReader
+
+
+
+
+ Should we pre-process the SQL string, adding a dialect-specific
+ LIMIT clause.
+
+
+
+
+
+
+
+ Obtain an IDbCommand with all parameters pre-bound. Bind positional parameters,
+ named parameters, and limit parameters.
+
+
+ Creates an IDbCommand object and populates it with the values necessary to execute it against the
+ database to Load an Entity.
+
+ The to use for the IDbCommand.
+ TODO: find out where this is used...
+ The SessionImpl this Command is being prepared in.
+ A CommandWrapper wrapping an IDbCommand that is ready to be executed.
+
+
+
+ Some dialect-specific LIMIT clauses require the maximium last row number
+ (aka, first_row_number + total_row_count), while others require the maximum
+ returned row count (the total maximum number of rows to return).
+
+ The selection criteria
+ The dialect
+ The appropriate value to bind into the limit clause.
+
+
+
+ Bind parameters needed by the dialect-specific LIMIT clause
+
+ The number of parameters bound
+
+
+
+ Limits the number of rows returned by the Sql query if necessary.
+
+ The IDbCommand to limit.
+ The RowSelection that contains the MaxResults info.
+ TODO: This does not apply to ADO.NET at all
+
+
+
+ Bind all parameter values into the prepared statement in preparation for execution.
+
+ The ADO prepared statement
+ The encapsulation of the parameter values to be bound.
+ The position from which to start binding parameter values.
+ The originating session.
+ The number of ADO bind positions actually bound during this method execution.
+
+
+
+ Fetch a IDbCommand, call SetMaxRows and then execute it,
+ advance to the first result and return an SQL IDataReader
+
+ The to execute.
+ The to apply to the and .
+ true if result types need to be auto-discovered by the loader; false otherwise.
+ The to load in.
+
+ An IDataReader advanced to the first record in RowSelection.
+
+
+
+ Called by subclasses that load entities
+
+
+
+
+ Called by subclasses that batch load entities
+
+
+
+
+ Called by subclasses that load collections
+
+
+
+
+ Called by wrappers that batch initialize collections
+
+
+
+
+ Called by subclasses that batch initialize collections
+
+
+
+
+ Return the query results, using the query cache, called
+ by subclasses that implement cacheable queries
+
+
+
+
+
+
+
+
+
+ Actually execute a query, ignoring the query cache
+
+
+
+
+
+
+
+ Calculate and cache select-clause suffixes. Must be
+ called by subclasses after instantiation.
+
+
+
+ of
+
+
+
+ An array indicating whether the entities have eager property fetching
+ enabled.
+
+ Eager property fetching indicators.
+
+
+
+ An array of indexes of the entity that owns a one-to-one association
+ to the entity at the given index (-1 if there is no "owner")
+
+
+ The indexes contained here are relative to the result of .
+
+
+
+
+ An array of the owner types corresponding to the
+ returns. Indices indicating no owner would be null here.
+
+
+
+
+ Get the index of the entity that owns the collection, or -1
+ if there is no owner in the query results (i.e. in the case of a
+ collection initializer) or no collection.
+
+
+
+
+ Return false is this loader is a batch entity loader
+
+
+
+
+ Get the result set descriptor
+
+
+
+
+ The SqlString to be called; implemented by all subclasses
+
+
+
+ The setter was added so that class inheriting from Loader could write a
+ value using the Property instead of directly to the field.
+
+
+ The scope is protected internal because the needs to
+ be able to get the SqlString of the when
+ it is parsing a subquery.
+
+
+
+
+
+ An array of persisters of entity classes contained in each row of results;
+ implemented by all subclasses
+
+
+ The setter was added so that classes inheriting from Loader could write a
+ value using the Property instead of directly to the field.
+
+
+
+
+ An (optional) persister for a collection to be initialized; only collection loaders
+ return a non-null value
+
+
+
+
+ Get the SQL table aliases of entities whose
+ associations are subselect-loadable, returning
+ null if this loader does not support subselect
+ loading
+
+
+
+
+ Identifies the query for statistics reporting, if null,
+ no statistics will be reported
+
+
+
+
+ Utility method that generates 0_, 1_ suffixes. Subclasses don't
+ necessarily need to use this algorithm, but it is intended that
+ they will in most cases.
+
+
+
+
+ Returns the locations of all occurrences of the named parameter.
+
+
+
+
+
+
+
+
+ a collection of lock modes specified dynamically via the Query interface
+
+
+
+
+ Base class for nodes dealing 'is null' and 'is not null' operators.
+ todo : a good deal of this is copied from BinaryLogicOperatorNode; look at consolidating these code fragments
+
+ Author: Steve Ebersole
+ Ported by: Steve Strong
+
+
+
+
+ Represents a unary operator node.
+
+ Author: Steve Ebersole
+ Ported by: Steve Strong
+
+
+
+
+ A semantic analysis node, that points back to the main analyzer.
+ Authoer: josh
+ Ported by: Steve Strong
+
+
+
+
+ A base AST node for the intermediate tree.
+
+
+
+ The original text for the node, mostly for debugging.
+
+
+ The data type of this node. Null for 'no type'.
+
+
+
+ Retrieve the text to be used for rendering this particular node.
+
+ The session factory
+ The text to use for rendering
+
+
+
+ An interface for initializeable AST nodes.
+
+
+
+
+ Initializes the node with the parameter.
+
+ the initialization parameter.
+
+
+ A pointer back to the phase 2 processor.
+
+
+
+ Contract for nodes representing unary operators.
+
+ Author: Steve Ebersole
+ Ported by: Steve Strong
+
+
+
+
+ Contract for nodes representing operators (logic or arithmetic).
+ Author: Steve Ebersole
+ Ported by: Steve Strong
+
+
+
+
+ Called by the tree walker during hql-sql semantic analysis
+ after the operator sub-tree is completely built.
+
+
+
+
+ Retrieves the data type for the overall operator expression.
+
+ The expression's data type.
+
+
+
+ Retrieves the node representing the operator's single operand.
+
+
+
+
+ When (if) we need to expand a row value constructor, what is the type of connector to use between the
+ expansion fragments.
+
+ The expansion connector type.
+
+
+
+ When (if) we need to expand a row value constructor, what is the text of connector to use between the
+ expansion fragments.
+
+ The expansion connector text.
+
+
+
+ Convenience implementation of Statement to centralize common functionality.
+ Author: Steve Ebersole
+ Ported by: Steve Strong
+
+
+
+
+ Implementors will return additional display text, which will be used
+ by the ASTPrinter to display information (besides the node type and node
+ text).
+
+
+
+
+ Returns additional display text for the AST node.
+
+ The additional display text.
+
+
+
+ Common interface modeling the different HQL statements (i.e., INSERT, UPDATE, DELETE, SELECT).
+ Author: Steve Ebersole
+ Ported by: Steve Strong
+
+
+
+
+ The "phase 2" walker which generated this statement tree.
+
+
+
+
+ The main token type representing the type of this statement.
+
+
+
+
+ Does this statement require the StatementExecutor?
+ Essentially, at the JDBC level, does this require an executeUpdate()?
+
+
+
+
+ Returns additional display text for the AST node.
+
+ The additional display text.
+
+
+
+ Type definition for Statements which are restrictable via a where-clause (and
+ thus also having a from-clause).
+ Author: Steve Ebersole
+ Ported by: Steve Strong
+
+
+
+
+ Retreives the from-clause in effect for this statement; could be null if the from-clause
+ has not yet been parsed/generated.
+
+
+
+
+ Does this statement tree currently contain a where clause?
+ Returns True if a where-clause is found in the statement tree and
+ that where clause actually defines restrictions; false otherwise.
+
+
+
+
+ Retreives the where-clause defining the restriction(s) in effect for
+ this statement.
+ Note that this will generate a where-clause if one was not found, so caution
+ needs to taken prior to calling this that restrictions will actually exist
+ in the resulting statement tree (otherwise "unexpected end of subtree" errors
+ might occur during rendering).
+
+
+
+
+ Represents an element of a projection list, i.e. a select expression.
+ Author: josh
+ Ported by: Steve Strong
+
+
+
+
+ Appends AST nodes that represent the columns after the current AST node.
+ (e.g. 'as col0_O_')
+
+ The index of the select expression in the projection list.
+
+
+
+ Returns the data type of the select expression.
+
+
+
+
+ Returns the FROM element that this expression refers to.
+
+
+
+
+ Returns true if the element is a constructor (e.g. new Foo).
+
+
+
+
+ Returns true if this select expression represents an entity that can be returned.
+
+
+
+
+ Sets the text of the node.
+
+
+
+
+ Represents an aggregate function i.e. min, max, sum, avg.
+
+ Author: Joshua Davis
+ Ported by: Steve Strong
+
+
+
+
+ Encapsulates the information relating to an individual assignment within the
+ set clause of an HQL update statement. This information is used during execution
+ of the update statements when the updates occur against "multi-table" stuff.
+
+
+
+
+ Contract for nodes representing logcial BETWEEN (ternary) operators.
+
+
+
+
+ Nodes which represent binary arithmetic operators.
+
+
+
+
+ Contract for nodes representing binary operators.
+ Author: Steve Ebersole
+ Ported by: Steve Strong
+
+
+
+
+ The left-hand operand of the operator.
+
+
+
+
+ The right-hand operand of the operator.
+
+
+
+ Retrieves the left-hand operand of the operator.
+
+ @return The left-hand operand
+
+
+ Retrieves the right-hand operand of the operator.
+
+ @return The right-hand operand
+
+
+
+ Contract for nodes representing binary operators.
+ Author: Steve Ebersole
+ Ported by: Steve Strong
+
+
+
+
+ Performs the operator node initialization by seeking out any parameter
+ nodes and setting their expected type, if possible.
+
+
+
+ Mutate the subtree relating to a row-value-constructor to instead use
+ a series of ANDed predicates. This allows multi-column type comparisons
+ and explicit row-value-constructor syntax even on databases which do
+ not support row-value-constructor.
+
+ For example, here we'd mutate "... where (col1, col2) = ('val1', 'val2) ..." to
+ "... where col1 = 'val1' and col2 = 'val2' ..."
+
+ @param valueElements The number of elements in the row value constructor list.
+
+
+
+ Represents a boolean literal within a query.
+
+
+
+
+ Represents a literal.
+
+ Author: josh
+ Ported by: Steve Strong
+
+
+
+
+ Interface for nodes which wish to be made aware of any determined "expected
+ type" based on the context within they appear in the query.
+ Author: Steve Ebersole
+ Ported by: Steve Strong
+
+
+
+ Expected-types really only pertinent here for boolean literals...
+
+ @param expectedType
+
+
+
+ Represents a case ... when .. then ... else ... end expression in a select.
+
+
+
+
+ Represents a case ... when .. then ... else ... end expression in a select.
+
+ Author: Gavin King
+ Ported by: Steve Strong
+
+
+
+
+ Represents 'elements()' or 'indices()'.
+ Author: josh
+ Ported by: Steve strong
+
+
+
+
+ Represents a method call
+ Author: josh
+ Ported by: Steve Strong
+
+
+
+
+ Common behavior - a node that contains a list of select expressions.
+ Author: josh
+ Ported by: Steve Strong
+
+
+
+
+ Returns an array of SelectExpressions gathered from the children of the given parent AST node.
+
+
+
+
+ Returns an array of SelectExpressions gathered from the children of the given parent AST node.
+
+
+
+
+ Returns the first select expression node that should be considered when building the array of select
+ expressions.
+
+
+
+
+ Represents a COUNT expression in a select.
+ Author: josh
+ Ported by: Steve Strong
+
+
+
+
+ Defines a top-level AST node representing an HQL delete statement.
+
+
+
+
+ Represents a reference to a property or alias expression. This should duplicate the relevant behaviors in
+ PathExpressionParser.
+ Author: Joshua Davis
+ Ported by: Steve Strong
+
+
+
+
+ The contract for expression sub-trees that can resolve themselves.
+ Author: josh
+ Ported by: Steve Strong
+
+
+
+
+ Does the work of resolving an identifier or a dot
+
+
+
+
+ Does the work of resolving an identifier or a dot, but without a parent node
+
+
+
+
+ Does the work of resolving an identifier or a dot, but without a parent node or alias
+
+
+
+
+ Does the work of resolving inside of the scope of a function call
+
+
+
+
+ Does the work of resolving an an index [].
+
+
+
+
+ An AST node with a path property. This path property will be the fully qualified name.
+ Author: josh
+ Ported by: Steve Strong
+
+
+
+
+ Returns the full path name represented by the node.
+
+ the full path name represented by the node.
+
+
+
+ Sub-classes can override this method if they produce implied joins (e.g. DotNode).
+
+ an implied join created by this from reference.
+
+
+
+ The full path, to the root alias of this dot node.
+
+
+
+
+ The type of dereference that hapened (DEREF_xxx).
+
+
+
+
+ The identifier that is the name of the property.
+
+
+
+
+ The unresolved property path relative to this dot node.
+
+
+
+
+ The column names that this resolves to.
+
+
+
+
+ Fetch join or not.
+
+
+
+
+ The type of join to create. Default is an inner join.
+
+
+
+
+ Is the given property name a reference to the primary key of the associated
+ entity construed by the given entity type?
+ For example, consider a fragment like order.customer.id
+ (where order is a from-element alias). Here, we'd have:
+ propertyName = "id" AND
+ owningType = ManyToOneType(Customer)
+ and are being asked to determine whether "customer.id" is a reference
+ to customer's PK...
+
+ The name of the property to check.
+ The type represeting the entity "owning" the property
+ True if propertyName references the entity's (owningType->associatedEntity) primary key; false otherwise.
+
+
+
+ Sets the join type for this '.' node structure.
+
+
+
+
+ Returns the full path of the node.
+
+
+
+
+ Represents the 'FROM' part of a query or subquery, containing all mapped class references.
+ Author: josh
+ Ported by: Steve Strong
+
+
+
+
+ Counts the from elements as they are added.
+
+
+
+
+ All of the implicit FROM xxx JOIN yyy elements that are the destination of a collection. These are created from
+ index operators on collection property references.
+
+
+
+
+ Pointer to the parent FROM clause, if there is one.
+
+
+
+
+ Collection of FROM clauses of which this is the parent.
+
+
+
+
+ Convenience method to check whether a given token represents a from-element alias.
+
+ The potential from-element alias to check.
+ True if the possibleAlias is an alias to a from-element visible from this point in the query graph.
+
+
+
+ Returns true if the from node contains the class alias name.
+
+ The HQL class alias name.
+ true if the from node contains the class alias name.
+
+
+
+ Returns true if the from node contains the table alias name.
+
+ The SQL table alias name.
+ true if the from node contains the table alias name.
+
+
+
+ Adds a new from element to the from node.
+
+ The reference to the class.
+ The alias AST.
+ The new FROM element.
+
+
+
+ Retreives the from-element represented by the given alias.
+
+ The alias by which to locate the from-element.
+ The from-element assigned the given alias, or null if none.
+
+
+
+ Returns the list of from elements in order.
+
+ The list of from elements (instances of FromElement).
+
+
+
+ Returns the list of from elements that will be part of the result set.
+
+ the list of from elements that will be part of the result set.
+
+
+
+ Look for an existing implicit or explicit join by the given path.
+
+
+
+
+ Currently this is needed in order to deal with {@link FromElement FromElements} which
+ contain "hidden" JDBC parameters from applying filters.
+ Would love for this to go away, but that would require that Hibernate's
+ internal {@link org.hibernate.engine.JoinSequence join handling} be able to either:
+
render the same AST structures
+
render structures capable of being converted to these AST structures
+
+ In the interim, this allows us to at least treat these "hidden" parameters properly which is
+ the most pressing need.
+ Author: Steve Ebersole
+ Ported by: Steve Strong
+
+
+
+
+ Adds a parameter specification for a parameter encountered within this node. We use the term 'embedded' here
+ because of the fact that the parameter was simply encountered as part of the node's text; it does not exist
+ as part of a subtree as it might in a true AST.
+
+ The generated specification.
+
+
+
+ Retrieve all embedded parameter specifications.
+
+ All embedded parameter specifications; may return null.
+
+
+
+ Set the renderable text of this node.
+
+
+
+
+ Determine whether this node contans embedded parameters. The implication is that
+ {@link #getEmbeddedParameters()} is allowed to return null if this method returns false.
+
+
+
+
+ Returns the identifier select SQL fragment.
+
+ The total number of returned types.
+ The sequence of the current returned type.
+ the identifier select SQL fragment.
+
+
+
+ Returns the property select SQL fragment.
+
+ The total number of returned types.
+ The sequence of the current returned type.
+ the property select SQL fragment.
+
+
+
+ Render the identifier select, but in a 'scalar' context (i.e. generate the column alias).
+
+ the sequence of the returned type
+ the identifier select with the column alias.
+
+
+
+ Returns true if this FromElement was implied by a path, or false if this FROM element is explicitly declared in
+ the FROM clause.
+
+
+
+
+ Creates entity from elements.
+
+
+
+
+
+
+
+ Creates collection from elements.
+
+
+
+
+
+
+
+
+
+
+ Delegate that handles the type and join sequence information for a FromElement.
+ Author: josh
+ Ported by: Steve Strong
+
+
+
+
+ Returns the identifier select SQL fragment.
+
+ The total number of returned types.
+ The sequence of the current returned type.
+ the identifier select SQL fragment.
+
+
+
+ Render the identifier select, but in a 'scalar' context (i.e. generate the column alias).
+
+ the sequence of the returned type
+ the identifier select with the column alias.
+
+
+
+ Returns the property select SQL fragment.
+
+ The total number of returned types.
+ The sequence of the current returned type.
+
+ the property select SQL fragment.
+
+
+
+ Returns the type of a property, given it's name (the last part) and the full path.
+
+ The last part of the full path to the property.
+ The full property path.
+ The type
+
+
+
+ This accounts for a quirk in Queryable, where it sometimes generates ', ' in front of the
+ SQL fragment. :-P
+
+ A SQL fragment.
+ The fragment, without the leading comma and spaces.
+
+
+
+ Returns the Hibernate queryable implementation for the HQL class.
+
+
+
+
+ Insert a new node into both the Tree and the Node Array. Add DOWN and UP nodes if needed.
+
+ The parent node
+ The child node
+
+
+
+ Count the number of child nodes (including DOWNs and UPs) of a parent node
+
+ The index of the parent in the node array
+ The number of child nodes
+
+
+
+ Represents the [] operator and provides it's semantics.
+ Author: josh
+ Ported by: Steve Strong
+
+
+
+
+ Author: Steve Ebersole
+ Ported by: Steve Strong
+
+
+
+
+ Defines a top-level AST node representing an HQL "insert select" statement.
+
+
+
+ Performs detailed semantic validation on this insert statement tree.
+ Indicates validation failure.
+
+
+ Retreive this insert statement's into-clause.
+ The into-clause
+
+
+ Retreive this insert statement's select-clause.
+ The select-clause.
+
+
+
+ Represents an entity referenced in the INTO clause of an HQL
+ INSERT statement.
+
+ Author: Steve Ebersole
+ Ported by: Steve Strong
+
+
+
+
+ Returns additional display text for the AST node.
+
+ The additional display text.
+
+
+
+ Determine whether the two types are "assignment compatible".
+
+ The type defined in the into-clause.
+ The type defined in the select clause.
+ True if they are assignment compatible.
+
+
+
+ Interface for nodes which require access to the SessionFactory
+
+ Author: Steve Ebersole
+ Ported by: Steve Strong
+
+
+
+
+ IsNotNullLogicOperatorNode implementation
+
+ Author: Steve Ebersole
+ Ported by: Steve Strong
+
+
+
+
+ Represents a 'is null' check.
+
+
+
+
+ A node representing a static Java constant.
+
+ Author: Steve Ebersole
+ Ported by: Steve Strong
+
+
+
+
+ Implementation of OrderByClause.
+ Author: Steve Ebersole
+ Ported by: Steve Strong
+
+
+
+
+ Implementation of ParameterNode.
+ Author: Steve Ebersole
+ Ported by: Steve Strong
+
+
+
+
+ Locate the select clause that is part of this select statement.
+ Note, that this might return null as derived select clauses (i.e., no
+ select clause at the HQL-level) get generated much later than when we
+ get created; thus it depends upon lifecycle.
+
+ Our select clause, or null.
+
+
+
+ Represents the list of expressions in a SELECT clause.
+ Author: josh
+ Ported by: Steve Strong
+
+
+
+ Prepares a derived (i.e., not explicitly defined in the query) select clause.
+
+ @param fromClause The from clause to which this select clause is linked.
+
+
+ Prepares an explicitly defined select clause.
+
+ @param fromClause The from clause linked to this select clause.
+ @throws SemanticException
+
+
+
+ FromElements which need to be accounted for in the load phase (either for return or for fetch).
+
+
+
+
+ The column alias names being used in the generated SQL.
+
+
+
+
+ The constructor to use for dynamic instantiation queries.
+
+
+
+
+ The HQL aliases, or generated aliases
+
+
+
+
+ The types actually being returned from this query at the "object level".
+
+
+
+
+ A select expression that was generated by a FROM element.
+ Author: josh
+ Ported by: Steve Strong
+
+
+
+
+ Represents an SQL fragment in the AST.
+ Author: josh
+ Ported by: Steve Strong
+
+
+
+
+ Defines a top-level AST node representing an HQL update statement.
+
+
+
+
+ Generates class/table/column aliases during semantic analysis and SQL rendering.
+ Its essential purpose is to keep an internal counter to ensure that the
+ generated aliases are unique.
+
+
+
+
+ Appends child nodes to a parent efficiently.
+
+
+
+
+ Depth first iteration of an ANTLR AST.
+ Author: josh
+ Ported by: Steve Strong
+
+
+
+
+ Returns the 'list' representation with some brackets around it for debugging.
+
+ The tree.
+ The list representation of the tree.
+
+
+
+ Determine if a given node (test) is contained anywhere in the subtree
+ of another given node (fixture).
+
+ The node against which to be checked for children.
+ The node to be tested as being a subtree child of the parent.
+ True if child is contained in the parent's collection of children.
+
+
+
+ Finds the first node of the specified type in the chain of children.
+
+ The parent
+ The type to find.
+ The first node of the specified type, or null if not found.
+
+
+
+ Filters nodes in/out of a tree.
+
+ The node to check.
+ true to keep the node, false if the node should be filtered out.
+
+
+
+ Generates the scalar column AST nodes for a given array of SQL columns
+
+
+
+
+ Performs the post-processing of the join information gathered during semantic analysis.
+ The join generating classes are complex, this encapsulates some of the JoinSequence-related
+ code.
+ Author: Joshua Davis
+ Ported by: Steve Strong
+
+
+
+
+ Constructs a new JoinProcessor.
+
+ The walker to which we are bound, giving us access to needed resources.
+
+
+
+ Translates an AST join type (i.e., the token type) into a JoinFragment.XXX join type.
+
+ The AST join type (from HqlSqlWalker)
+ a JoinType.XXX join type.
+
+
+
+ Indicates that Float and Double literal values should
+ be treated using the SQL "exact" format (i.e., '.001')
+
+
+
+
+ Indicates that Float and Double literal values should
+ be treated using the SQL "approximate" format (i.e., '1E-3')
+
+
+
+
+ In what format should Float and Double literal values be sent
+ to the database?
+ See #EXACT, #APPROXIMATE
+
+
+
+
+ Traverse the AST tree depth first. Note that the AST passed in is not visited itself. Visitation starts
+ with its children.
+
+ ast
+
+
+
+ Turns a path into an AST.
+
+ The path.
+ The AST factory to use.
+ An HQL AST representing the path.
+
+
+
+ Creates synthetic and nodes based on the where fragment part of a JoinSequence.
+ Author: josh
+ Ported by: Steve Strong
+
+
+
+
+ Generates translators which uses the Antlr-based parser to perform
+ the translation.
+
+ Author: Gavin King
+ Ported by: Steve Strong
+
+
+
+
+ Facade for generation of
+ and instances.
+
+
+
+
+ Construct a instance
+ capable of translating an HQL query string.
+
+
+ The query-identifier (used in collection).
+ This is typically the same as the queryString parameter except for the case of
+ split polymorphic queries which result in multiple physical sql queries.
+
+ The query string to be translated
+ Currently enabled filters
+ The session factory
+ An appropriate translator.
+
+
+
+ Construct a instance capable of
+ translating an HQL filter string.
+
+
+ The query-identifier (used in collection).
+ This is typically the same as the queryString parameter except for the case of
+ split polymorphic queries which result in multiple physical sql queries.
+
+ The query string to be translated
+ Currently enabled filters
+ The session factory
+ An appropriate translator.
+
+
+
+ Look ahead for tokenizing is all lowercase, whereas the original case of an input stream is preserved.
+ Copied from http://www.antlr.org/wiki/pages/viewpage.action?pageId=1782
+
+
+
+
+ Provides a map of collection function names to the corresponding property names.
+ Authoer: josh
+ Ported by: Steve Strong
+
+
+
+
+ A problem occurred translating a Hibernate query to SQL due to invalid query syntax, etc.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+ The exception that is the cause of the current exception. If the innerException parameter
+ is not a null reference, the current exception is raised in a catch block that handles
+ the inner exception.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+ The query that contains the error.
+
+
+
+ Initializes a new instance of the class.
+
+
+ The exception that is the cause of the current exception. If the innerException parameter
+ is not a null reference, the current exception is raised in a catch block that handles
+ the inner exception.
+
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Sets the serialization info for after
+ getting the info from the base Exception.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Gets or sets the of HQL that caused the Exception.
+
+
+
+
+ Gets a message that describes the current .
+
+ The error message that explains the reason for this exception including the HQL.
+
+
+
+ An error handler that counts parsing errors and warnings.
+
+
+
+
+ Defines the behavior of an error handler for the HQL parsers.
+ Author: josh
+ Ported by: Steve Strong
+
+
+
+
+ A custom token class for the HQL grammar.
+
+
+
+
+ The previous token type.
+
+
+
+
+ Public constructor
+
+
+
+
+ Returns a string representation of the object.
+
+ The debug string
+
+
+
+ Indicates if the token could be an identifier.
+
+
+
+
+ Gets or Sets the type of the token, remembering the previous type on Sets.
+
+
+
+
+ Returns the previous token type.
+
+
+
+
+ Exception thrown when an invalid path is found in a query.
+ Author: josh
+ Ported by: Steve Strong
+
+
+
+
+ Specialized interface for filters.
+
+
+
+
+ Defines the constract of an HQL->SQL translator.
+
+
+
+
+ Compile a "normal" query. This method may be called multiple times. Subsequent invocations are no-ops.
+
+ Defined query substitutions.
+ Does this represent a shallow (scalar or entity-id) select?
+ There was a problem parsing the query string.
+ There was a problem querying defined mappings.
+
+
+
+ Perform a list operation given the underlying query definition.
+
+ The session owning this query.
+ The query bind parameters.
+ The query list results.
+
+
+
+
+ Perform a bulk update/delete operation given the underlying query defintion.
+
+ The query bind parameters.
+ The session owning this query.
+ The number of entities updated or deleted.
+
+
+
+
+ Returns the column names in the generated SQL.
+
+ the column names in the generated SQL.
+
+
+
+ Information about any parameters encountered during translation.
+
+
+
+
+ The set of query spaces (table names) that the query referrs to.
+
+
+
+
+ The SQL string generated by the translator.
+
+
+
+
+ The HQL string processed by the translator.
+
+
+
+
+ Returns the filters enabled for this query translator.
+
+ Filters enabled for this query execution.
+
+
+
+ Returns an array of Types represented in the query result.
+
+ Query return types.
+
+
+
+ Returns an array of HQL aliases
+
+ Returns an array of HQL aliases
+
+
+
+ Does the translated query contain collection fetches?
+
+ True if the query does contain collection fetched; false otherwise.
+
+
+
+ Compile a filter. This method may be called multiple
+ times. Subsequent invocations are no-ops.
+
+ the role name of the collection used as the basis for the filter.
+ Defined query substitutions.
+ Does this represent a shallow (scalar or entity-id) select?
+
+
+
+ Creates a new AST-based query translator.
+
+ The query-identifier (used in stats collection)
+ The hql query to translate
+ Currently enabled filters
+ The session factory constructing this translator instance.
+
+
+
+ Compile a "normal" query. This method may be called multiple
+ times. Subsequent invocations are no-ops.
+
+ Defined query substitutions.
+ Does this represent a shallow (scalar or entity-id) select?
+
+
+
+ Compile a filter. This method may be called multiple
+ times. Subsequent invocations are no-ops.
+
+ the role name of the collection used as the basis for the filter.
+ Defined query substitutions.
+ Does this represent a shallow (scalar or entity-id) select?
+
+
+
+ Performs both filter and non-filter compiling.
+
+ Defined query substitutions.
+ Does this represent a shallow (scalar or entity-id) select?
+ the role name of the collection used as the basis for the filter, NULL if this is not a filter.
+
+
+
+ Construct a new SessionFactoryHelperExtensions instance.
+
+ The SessionFactory impl to be encapsulated.
+
+
+
+ Locate a registered sql function by name.
+
+ The name of the function to locate
+ The sql function, or null if not found.
+
+
+
+ Locate a registered sql function by name.
+
+ The name of the function to locate
+ The sql function, or throws QueryException if no matching sql functions could be found.
+
+
+
+ Find the function return type given the function name and the first argument expression node.
+
+ The function name.
+ The first argument expression.
+ the function return type given the function name and the first argument expression node.
+
+
+
+ Given a (potentially unqualified) class name, locate its imported qualified name.
+
+ The potentially unqualified class name
+ The qualified class name.
+
+
+
+ Does the given persister define a physical discriminator column
+ for the purpose of inheritence discrimination?
+
+ The persister to be checked.
+ True if the persister does define an actual discriminator column.
+
+
+
+ Locate the collection persister by the collection role.
+
+ The collection role name.
+ The defined CollectionPersister for this collection role, or null.
+
+
+
+ Determine the name of the property for the entity encapsulated by the
+ given type which represents the id or unique-key.
+
+ The type representing the entity.
+ The corresponding property name
+
+
+
+ Retrieves the column names corresponding to the collection elements for the given
+ collection role.
+
+ The collection role
+ The sql column-qualification alias (i.e., the table alias)
+ the collection element columns
+
+
+
+ Essentially the same as GetElementType, but requiring that the
+ element type be an association type.
+
+ The collection type to be checked.
+ The AssociationType of the elements of the collection.
+
+
+
+ Locate the collection persister by the collection role, requiring that
+ such a persister exist.
+
+ The collection role name.
+ The defined CollectionPersister for this collection role.
+
+
+
+ Locate the persister by class or entity name, requiring that such a persister
+ exist.
+
+ The class or entity name
+ The defined persister for this entity
+
+
+
+ Given a (potentially unqualified) class name, locate its persister.
+
+ The (potentially unqualified) class name.
+ The defined persister for this class, or null if none found.
+
+
+
+ Given a (potentially unqualified) class name, locate its persister.
+
+ The session factory implementor.
+ The (potentially unqualified) class name.
+ The defined persister for this class, or null if none found.
+
+
+
+ Locate the persister by class or entity name.
+
+ The class or entity name
+ The defined persister for this entity, or null if none found.
+
+
+
+ Create a join sequence rooted at the given collection.
+
+ The persister for the collection at which the join should be rooted.
+ The alias to use for qualifying column references.
+ The generated join sequence.
+
+
+
+ Generate an empty join sequence instance.
+
+ The generated join sequence.
+
+
+
+ Generate a join sequence representing the given association type.
+
+ Should implicit joins (theta-style) or explicit joins (ANSI-style) be rendered
+ The type representing the thing to be joined into.
+ The table alias to use in qualifing the join conditions
+ The type of join to render (inner, outer, etc)
+ The columns making up the condition of the join.
+ The generated join sequence.
+
+
+
+ Retreive a PropertyMapping describing the given collection role.
+
+ The collection role for whcih to retrieve the property mapping.
+ The property mapping.
+
+
+
+ Given a collection type, determine the Type representing elements
+ within instances of that collection.
+
+ The collection type to be checked.
+ The Type of the elements of the collection.
+
+
+
+ Generates translators which uses the older hand-written parser to perform the translation.
+
+
+
+
+ Parses the hibernate query into its constituent clauses.
+
+
+
+
+ A parser is a state machine that accepts a string of tokens,
+ bounded by start() and end() and modifies a QueryTranslator. Parsers
+ are NOT intended to be threadsafe. They SHOULD be reuseable
+ for more than one token stream.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Parses the from clause of a hibernate query, looking for tables and
+ aliases for the SQL query.
+
+
+
+
+
+
+
+ FromPathExpressionParser
+
+
+
+
+ Parses an expression of the form foo.bar.baz and builds up an expression
+ involving two less table joins than there are path components.
+
+
+
+
+
+
+
+
+
+ NOTE: we avoid joining to the next table if the named property is just the foreign key value
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Used to hold column type in nested functions.
+
+
+
+
+ Parses the GROUP BY clause of an aggregate query
+
+
+
+
+ Parses the having clause of a hibernate query and translates it to an
+ SQL having clause.
+
+
+
+ Parses the where clause of a hibernate query and translates it to an
+ SQL where clause.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Parses the ORDER BY clause of a query
+
+
+
+
+
+
+ HQL lexical analyzer (not really a parser)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ An instance of QueryTranslator translates a Hibernate query string to SQL.
+
+
+
+ Construct a query translator
+
+ A unique identifier for the query of which this
+ translation is part; typically this is the original, user-supplied query string.
+
+
+ The "preprocessed" query string; at the very least
+ already processed by {@link org.hibernate.hql.QuerySplitter}.
+
+ Any enabled filters.
+ The session factory.
+
+
+
+ Construct a query translator
+
+
+
+
+ Compile a subquery
+
+
+
+
+
+ Compile a "normal" query. This method may be called multiple
+ times. Subsequent invocations are no-ops.
+
+
+
+
+ Compile a filter. This method may be called multiple
+ times. Subsequent invocations are no-ops.
+
+
+
+
+ Compile the query (generate the SQL).
+
+
+
+
+ WARNING: side-effecty
+
+
+
+
+ Extract the complete clause of function.
+
+ The list of tokens
+ The index of the list that represent the founded function.
+ String trepresentation of each token.
+ Each token can be string or SqlString
+
+
+ Used for collection filters
+
+
+
+
+
+
+ Persisters for the return values of a List style query
+
+
+ The Persisters stored by QueryTranslator have to be . The
+ setter will attempt to cast the ILoadable array passed in into an
+ IQueryable array.
+
+
+
+
+ Types of the return values of an Enumerate() style query.
+ Return an array of s.
+
+
+
+
+
+
+
+ Is this query called by Scroll() or Iterate()?
+
+ true if it is, false if it is called by find() or list()
+
+
+
+
+
+
+
+
+
+ Parsers the select clause of a hibernate query, looking
+ for a table (well, really class) alias.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Wraps SessionFactoryImpl, adding more lookup behaviors and encapsulating some of the error handling.
+
+
+
+
+ Locate the collection persister by the collection role.
+
+ The collection role name.
+ The defined CollectionPersister for this collection role, or null.
+
+
+
+ Locate the persister by class or entity name, requiring that such a persister
+ exists
+
+ The class or entity name
+ The defined persister for this entity
+
+
+
+ Locate the persister by class or entity name.
+
+ The class or entity name
+ The defined persister for this entity, or null if none found.
+
+
+
+ Retreive a PropertyMapping describing the given collection role.
+
+ The collection role for whcih to retrieve the property mapping.
+ The property mapping.
+
+
+
+ Provides utility methods for generating HQL / SQL names.
+ Shared by both the 'classic' and 'new' query translators.
+
+
+
+
+ Handle Hibernate "implicit" polymorphism, by translating the query string into
+ several "concrete" queries against mapped classes.
+
+
+
+
+
+
+
+
+ Contract for providing callback access to a ,
+ typically from the .
+
+
+
+ Retrieve the next value from the underlying source.
+
+
+
+ Encapsulates definition of the underlying data structure backing a sequence-style generator.
+
+
+
+
+ A callback to be able to get the next value from the underlying
+ structure as needed.
+
+ The session.
+ The next value.
+
+
+
+ Prepare this structure for use. Called sometime after instantiation,
+ but before first use.
+
+ The optimizer being applied to the generator.
+
+
+ Commands needed to create the underlying structures.
+ The database dialect being used.
+ The creation commands.
+
+
+ Commands needed to drop the underlying structures.
+ The database dialect being used.
+ The drop commands.
+
+
+ The name of the database structure (table or sequence).
+
+
+ How many times has this structure been accessed through this reference?
+
+
+ The configured increment size
+
+
+
+ Performs optimization on an optimizable identifier generator. Typically
+ this optimization takes the form of trying to ensure we do not have to
+ hit the database on each and every request to get an identifier value.
+
+
+
+ Optimizers work on constructor injection. They should provide
+ a constructor with the following arguments.
+
+ - The return type for the generated values.
+ - int The increment size.
+
+
+
+
+ Generate an identifier value accounting for this specific optimization.
+
+ Callback to access the underlying value source.
+ The generated identifier value.
+
+
+
+ A common means to access the last value obtained from the underlying
+ source. This is intended for testing purposes, since accessing the
+ unerlying database source directly is much more difficult.
+
+
+ The last value we obtained from the underlying source;
+ -1 indicates we have not yet consulted with the source.
+
+
+
+
+ Defined increment size.
+
+ The increment size.
+
+
+
+
+ Are increments to be applied to the values stored in the underlying
+ value source?
+
+
+ True if the values in the source are to be incremented
+ according to the defined increment size; false otherwise, in which
+ case the increment is totally an in memory construct.
+
+
+
+
+ Describes a sequence.
+
+
+
+
+ An that requires creation of database objects
+ All s that also implement
+ An have access to a special mapping parameter: schema
+
+
+
+
+ The general contract between a class that generates unique
+ identifiers and the .
+
+
+
+ It is not intended that this interface ever be exposed to the
+ application. It is intended that users implement this interface
+ to provide custom identifier generation strategies.
+
+
+ Implementors should provide a public default constructor.
+
+
+ Implementations that accept configuration parameters should also
+ implement .
+
+
+ Implementors must be threadsafe.
+
+
+
+
+
+ Generate a new identifier
+
+ The this id is being generated in.
+ The entity for which the id is being generated.
+ The new identifier
+
+
+
+ The SQL required to create the underlying database objects
+
+ The to help with creating the sql.
+
+ An array of objects that contain the sql to create the
+ necessary database objects.
+
+
+
+
+ The SQL required to remove the underlying database objects
+
+ The to help with creating the sql.
+
+ A that will drop the database objects.
+
+
+
+
+ Return a key unique to the underlying database objects.
+
+
+ A key unique to the underlying database objects.
+
+
+ Prevents us from trying to create/remove them multiple times
+
+
+
+
+ An IdentiferGenerator that supports "configuration".
+
+
+
+
+ Configure this instance, given the values of parameters
+ specified by the user as <param> elements.
+ This method is called just once, followed by instantiation.
+
+ The the identifier should be.
+ An of Param values that are keyed by parameter name.
+ The to help with Configuration.
+
+
+
+ Describes a table used to mimic sequence behavior
+
+
+
+
+ Abstract InsertGeneratedIdentifierDelegate implementation where the
+ underlying strategy causes the generated identitifer to be returned as an
+ effect of performing the insert statement. Thus, there is no need for an
+ additional sql statement to determine the generated identitifer.
+
+
+
+
+ Responsible for handling delegation relating to variants in how
+ insert-generated-identifier generator strategies dictate processing:
+
+
building the sql insert statement
+
determination of the generated identifier value
+
+
+
+
+
+ Build a specific to the delegate's mode
+ of handling generated key values.
+
+ The insert object.
+
+
+
+ Perform the indicated insert SQL statement and determine the identifier value generated.
+
+
+
+
+ The generated identifier value.
+
+
+
+ Abstract InsertGeneratedIdentifierDelegate implementation where the
+ underlying strategy requires an subsequent select after the insert
+ to determine the generated identifier.
+
+
+
+ Extract the generated key value from the given result set.
+ The session
+ The result set containing the generated primay key values.
+ The entity being saved.
+ The generated identifier
+
+
+ Bind any required parameter values into the SQL command .
+ The session
+ The prepared command
+ The entity being saved.
+
+
+ Get the SQL statement to be used to retrieve generated key values.
+ The SQL command string
+
+
+
+ Types of any required parameter values into the SQL command .
+
+
+
+
+ Nothing more than a distinguishing subclass of Insert used to indicate
+ intent.
+ Some subclasses of this also provided some additional
+ functionality or semantic to the genernated SQL statement string.
+
+
+
+
+ A class that builds an INSERT sql statement.
+
+
+
+
+
+
+
+ Builds a SqlString from the internal data.
+
+ A valid SqlString that can be converted into an IDbCommand
+
+
+
+ Adds the Property's columns to the INSERT sql
+
+ The column name for the Property
+ The IType of the property.
+ The SqlInsertBuilder.
+ The column will be associated with a parameter.
+
+
+
+ Add a column with a specific value to the INSERT sql
+
+ The name of the Column to add.
+ The value to set for the column.
+ The NHibernateType to use to convert the value to a sql string.
+ The SqlInsertBuilder.
+
+
+
+ Add a column with a specific value to the INSERT sql
+
+ The name of the Column to add.
+ A valid sql string to set as the value of the column.
+ The SqlInsertBuilder.
+
+
+
+ Specialized IdentifierGeneratingInsert which appends the database
+ specific clause which signifies to return generated IDENTITY values
+ to the end of the insert statement.
+
+
+
+
+ Disable comments on insert.
+
+
+
+
+ implementation where the
+ underlying strategy causes the generated identitifer to be returned, as an
+ effect of performing the insert statement, in a Output parameter.
+ Thus, there is no need for an additional sql statement to determine the generated identitifer.
+
+
+
+
+ Specialized IdentifierGeneratingInsert which appends the database
+ specific clause which signifies to return generated identifier values
+ to the end of the insert statement.
+
+
+
+
+
+
+ The IdentityGenerator for autoincrement/identity key generation.
+
+ The this id is being generated in.
+ The entity the id is being generated for.
+
+ IdentityColumnIndicator Indicates to the Session that identity (i.e. identity/autoincrement column)
+ key generation should be used.
+
+
+
+
+ An that returns the current identifier
+ assigned to an instance.
+
+
+
+ This id generation strategy is specified in the mapping file as
+ <generator class="assigned" />
+
+
+
+
+
+ Generates a new identifier by getting the value of the identifier
+ for the obj parameter.
+
+ The this id is being generated in.
+ The entity for which the id is being generated.
+ The value that was assigned to the mapped id's property.
+
+ Thrown when a is passed in as the obj or
+ if the identifier of obj is null.
+
+
+
+
+ An that returns a Int64 constructed from the system
+ time and a counter value. Not safe for use in a clustser!
+
+
+
+
+ An that uses the value of
+ the id property of an associated object
+
+
+
+ This id generation strategy is specified in the mapping file as
+
+ <generator class="foreign">
+ <param name="property">AssociatedObject</param>
+ </generator>
+
+
+ The mapping parameter property is required.
+
+
+
+
+ Generates an identifer from the value of a Property.
+
+ The this id is being generated in.
+ The entity for which the id is being generated.
+
+ The identifier value from the associated object or
+ if the session
+ already contains obj.
+
+
+
+
+ Configures the ForeignGenerator by reading the value of property
+ from the parms parameter.
+
+ The the identifier should be.
+ An of Param values that are keyed by parameter name.
+ The to help with Configuration.
+
+ Thrown if the key property is not found in the parms parameter.
+
+
+
+
+ An that generates values
+ using a strategy suggested Jimmy Nilsson's
+ article
+ on informit.com.
+
+
+
+ This id generation strategy is specified in the mapping file as
+ <generator class="guid.comb" />
+
+
+ The comb algorithm is designed to make the use of GUIDs as Primary Keys, Foreign Keys,
+ and Indexes nearly as efficient as ints.
+
+
+ This code was contributed by Donald Mull.
+
+
+
+
+
+ Generate a new using the comb algorithm.
+
+ The this id is being generated in.
+ The entity for which the id is being generated.
+ The new identifier as a .
+
+
+
+ Generate a new using the comb algorithm.
+
+
+
+
+ An that generates values
+ using Guid.NewGuid().
+
+
+
+ This id generation strategy is specified in the mapping file as
+ <generator class="guid" />
+
+
+
+
+
+ Generate a new for the identifier.
+
+ The this id is being generated in.
+ The entity for which the id is being generated.
+ The new identifier as a .
+
+
+
+ Thrown by implementation class when ID generation fails
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+ The exception that is the cause of the current exception. If the innerException parameter
+ is not a null reference, the current exception is raised in a catch block that handles
+ the inner exception.
+
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Factory methods for IdentifierGenerator framework.
+
+
+
The built in strategies for identifier generation in NHibernate are:
+
+
+ strategy
+ Implementation of strategy
+
+
+ assigned
+
+
+
+ counter
+
+
+
+ foreign
+
+
+
+ guid
+
+
+
+ guid.comb
+
+
+
+ guid.native
+
+
+
+ hilo
+
+
+
+ identity
+
+
+
+ native
+
+ Chooses between ,
+ , and based on the
+ 's capabilities.
+
+
+
+ seqhilo
+
+
+
+ sequence
+
+
+
+ uuid.hex
+
+
+
+ uuid.string
+
+
+
+
+
+
+ Get the generated identifier when using identity columns
+ The to read the identifier value from.
+ The the value should be converted to.
+ The the value is retrieved in.
+ The value for the identifier.
+
+
+
+ Gets the value of the identifier from the and
+ ensures it is the correct .
+
+ The to read the identifier value from.
+ The the value should be converted to.
+ The the value is retrieved in.
+
+ The value for the identifier.
+
+
+ Thrown if there is any problem getting the value from the
+ or with converting it to the .
+
+
+
+
+ An where the key is the strategy and
+ the value is the for the strategy.
+
+
+
+
+ When this is returned by Generate() it indicates that the object
+ has already been saved.
+
+
+ String.Empty
+
+
+
+
+ When this is return
+
+
+
+
+ Initializes the static fields in .
+
+
+
+
+ Creates an from the named strategy.
+
+
+ The name of the generator to create. This can be one of the NHibernate abbreviations (ie - native,
+ sequence, guid.comb, etc...), a full class name if the Type is in the NHibernate assembly, or
+ a full type name if the strategy is in an external assembly.
+
+ The that the retured identifier should be.
+ An of <param> values from the mapping.
+ The to help with Configuration.
+
+ An instantiated and configured .
+
+
+ Thrown if there are any exceptions while creating the .
+
+
+
+
+ Create the correct boxed for the identifier.
+
+ The value of the new identifier.
+ The the identifier should be.
+
+ The identifier value converted to the .
+
+
+ The type parameter must be an , ,
+ or .
+
+
+
+
+ An that indicates to the that identity
+ (ie. identity/autoincrement column) key generation should be used.
+
+
+
+ This id generation strategy is specified in the mapping file as
+ <generator class="identity" />
+ or if the database natively supports identity columns
+ <generator class="native" />
+
+
+ This indicates to NHibernate that the database generates the id when
+ the entity is inserted.
+
+
+
+
+
+ Delegate for dealing with IDENTITY columns where the dialect supports returning
+ the generated IDENTITY value directly from the insert statement.
+
+
+
+
+ Delegate for dealing with IDENTITY columns where the dialect requires an
+ additional command execution to retrieve the generated IDENTITY value
+
+
+
+ The configuration parameter holding the entity name
+
+
+
+ An IIdentifierGenerator that returns a Int64, constructed by
+ counting from the maximum primary key value at startup. Not safe for use in a
+ cluster!
+
+
+
+ java author Gavin King, .NET port Mark Holden
+
+
+ Mapping parameters supported, but not usually needed: table, column.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The configuration parameter holding the schema name
+
+
+
+ The configuration parameter holding the table name for the
+ generated id
+
+
+
+
+ The configuration parameter holding the table names for all
+ tables for which the id must be unique
+
+
+
+
+ The configuration parameter holding the primary key column
+ name of the generated id
+
+
+
+ The configuration parameter holding the catalog name
+
+
+
+ A persister that may have an identity assigned by execution of a SQL INSERT.
+
+
+
+
+ Get a SQL select string that performs a select based on a unique
+ key determined by the given property name).
+
+
+ The name of the property which maps to the
+ column(s) to use in the select statement restriction.
+
+ The SQL select string
+
+
+
+ Get the database-specific SQL command to retrieve the last
+ generated IDENTITY value.
+
+
+
+ The names of the primary key columns in the root table.
+ The primary key column names.
+
+
+
+ Get the identifier type
+
+
+
+
+ Generates Guid values using the server side Guid function.
+
+
+
+
+ A generator that selects the just inserted row to determine the identifier
+ value assigned by the database. The correct row is located using a unique key.
+
+ One mapping parameter is required: key (unless a natural-id is defined in the mapping).
+
+
+ The delegate for the select generation strategy.
+
+
+
+ An that generates Int64 values using an
+ oracle-style sequence. A higher performance algorithm is
+ .
+
+
+
+ This id generation strategy is specified in the mapping file as
+
+ <generator class="sequence">
+ <param name="sequence">uid_sequence</param>
+ <param name="schema">db_schema</param>
+ </generator>
+
+
+
+ The sequence parameter is required while the schema is optional.
+
+
+
+
+
+ The name of the sequence parameter.
+
+
+
+
+ The parameters parameter, appended to the create sequence DDL.
+ For example (Oracle): INCREMENT BY 1 START WITH 1 MAXVALUE 100 NOCACHE.
+
+
+
+
+ Configures the SequenceGenerator by reading the value of sequence and
+ schema from the parms parameter.
+
+ The the identifier should be.
+ An of Param values that are keyed by parameter name.
+ The to help with Configuration.
+
+
+
+ Generate an , , or
+ for the identifier by using a database sequence.
+
+ The this id is being generated in.
+ The entity for which the id is being generated.
+ The new identifier as a , , or .
+
+
+
+ The SQL required to create the database objects for a SequenceGenerator.
+
+ The to help with creating the sql.
+
+ An array of objects that contain the Dialect specific sql to
+ create the necessary database objects for the SequenceGenerator.
+
+
+
+
+ The SQL required to remove the underlying database objects for a SequenceGenerator.
+
+ The to help with creating the sql.
+
+ A that will drop the database objects for the SequenceGenerator.
+
+
+
+
+ Return a key unique to the underlying database objects for a SequenceGenerator.
+
+
+ The configured sequence name.
+
+
+
+
+ An that combines a hi/lo algorithm with an underlying
+ oracle-style sequence that generates hi values.
+
+
+
+ This id generation strategy is specified in the mapping file as
+
+ <generator class="seqhilo">
+ <param name="sequence">uid_sequence</param>
+ <param name="max_lo">max_lo_value</param>
+ <param name="schema">db_schema</param>
+ </generator>
+
+
+
+ The sequence parameter is required, the max_lo and schema are optional.
+
+
+ The user may specify a max_lo value to determine how often new hi values are
+ fetched. If sequences are not avaliable, TableHiLoGenerator might be an
+ alternative.
+
+
+
+
+
+ The name of the maximum low value parameter.
+
+
+
+
+ Configures the SequenceHiLoGenerator by reading the value of sequence, max_lo,
+ and schema from the parms parameter.
+
+ The the identifier should be.
+ An of Param values that are keyed by parameter name.
+ The to help with Configuration.
+
+
+
+ Generate an , , or
+ for the identifier by using a database sequence.
+
+ The this id is being generated in.
+ The entity for which the id is being generated.
+ The new identifier as a , , or .
+
+
+
+ A generator which combines sequence generation with immediate retrieval
+ by attaching a output parameter to the SQL command
+ In this respect it works much like ANSI-SQL IDENTITY generation.
+
+
+
+
+ An that uses a database table to store the last
+ generated value.
+
+
+
+ It is not intended that applications use this strategy directly. However,
+ it may be used to build other (efficient) strategies. The return type is
+ System.Int32
+
+
+ The hi value MUST be fetched in a seperate transaction to the ISession
+ transaction so the generator must be able to obtain a new connection and commit it.
+ Hence this implementation may not be used when the user is supplying connections.
+
+
+ The mapping parameters table and column are required.
+
+
+
+
+
+ An additional where clause that is added to
+ the queries against the table.
+
+
+
+
+ The name of the column parameter.
+
+
+
+
+ The name of the table parameter.
+
+
+
+ Default column name
+
+
+ Default table name
+
+
+
+ Configures the TableGenerator by reading the value of table,
+ column, and schema from the parms parameter.
+
+ The the identifier should be.
+ An of Param values that are keyed by parameter name.
+ The to help with Configuration.
+
+
+
+ Generate a , , or
+ for the identifier by selecting and updating a value in a table.
+
+ The this id is being generated in.
+ The entity for which the id is being generated.
+ The new identifier as a , , or .
+
+
+
+ The SQL required to create the database objects for a TableGenerator.
+
+ The to help with creating the sql.
+
+ An array of objects that contain the Dialect specific sql to
+ create the necessary database objects and to create the first value as 1
+ for the TableGenerator.
+
+
+
+
+ The SQL required to remove the underlying database objects for a TableGenerator.
+
+ The to help with creating the sql.
+
+ A that will drop the database objects for the TableGenerator.
+
+
+
+
+ Return a key unique to the underlying database objects for a TableGenerator.
+
+
+ The configured table name.
+
+
+
+
+ An that returns an Int64, constructed using
+ a hi/lo algorithm.
+
+
+
+ This id generation strategy is specified in the mapping file as
+
+ <generator class="hilo">
+ <param name="table">table</param>
+ <param name="column">id_column</param>
+ <param name="max_lo">max_lo_value</param>
+ <param name="schema">db_schema</param>
+ </generator>
+
+
+
+ The table and column parameters are required, the max_lo and
+ schema are optional.
+
+
+ The hi value MUST be fecthed in a seperate transaction to the ISession
+ transaction so the generator must be able to obtain a new connection and
+ commit it. Hence this implementation may not be used when the user is supplying
+ connections. In that case a would be a
+ better choice (where supported).
+
+
+
+
+
+ The name of the max lo parameter.
+
+
+
+
+ Configures the TableHiLoGenerator by reading the value of table,
+ column, max_lo, and schema from the parms parameter.
+
+ The the identifier should be.
+ An of Param values that are keyed by parameter name.
+ The to help with Configuration.
+
+
+
+ Generate a for the identifier by selecting and updating a value in a table.
+
+ The this id is being generated in.
+ The entity for which the id is being generated.
+ The new identifier as a .
+
+
+
+ An that returns a string of length
+ 32, 36, or 38 depending on the configuration.
+
+
+
+ This id generation strategy is specified in the mapping file as
+
+ <generator class="uuid.hex">
+ <param name="format">format_string</param>
+ <param name="seperator">seperator_string</param>
+ </generator>
+
+
+
+ The format and seperator parameters are optional.
+
+
+ The identifier string will consist of only hex digits. Optionally, the identifier string
+ may be generated with enclosing characters and seperators between each component
+ of the UUID. If there are seperators then the string length will be 36. If a format
+ that has enclosing brackets is used, then the string length will be 38.
+
+
+ format is either
+ "N" (xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx),
+ "D" (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx),
+ "B" ({xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}),
+ or "P" ((xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)). These formats are described in
+ the Guid.ToString(String) method.
+ If no format is specified the default is "N".
+
+
+ seperator is the char that will replace the "-" if specified. If no value is
+ configured then the default seperator for the format will be used. If the format "D", "B", or
+ "P" is specified, then the seperator will replace the "-". If the format is "N" then this
+ parameter will be ignored.
+
+
+ This class is based on
+
+
+
+
+
+ Generate a new for the identifier using the "uuid.hex" algorithm.
+
+ The this id is being generated in.
+ The entity for which the id is being generated.
+ The new identifier as a .
+
+
+
+ Configures the UUIDHexGenerator by reading the value of format and
+ seperator from the parms parameter.
+
+ The the identifier should be.
+ An of Param values that are keyed by parameter name.
+ The to help with Configuration.
+
+
+
+ Generate a Guid into a string using the format.
+
+ A new Guid string
+
+
+
+ An that returns a string of length
+ 16.
+
+
+
+ This id generation strategy is specified in the mapping file as
+ <generator class="uuid.string" />
+
+
+ The identifier string will NOT consist of only alphanumeric characters. Use
+ this only if you don't mind unreadable identifiers.
+
+
+ This impelementation was known to be incompatible with Postgres.
+
+
+
+
+
+ Generate a new for the identifier using the "uuid.string" algorithm.
+
+ The this id is being generated in.
+ The entity for which the id is being generated.
+ The new identifier as a .
+
+
+
+ Base class to create queries in "detached mode" where the NHibernate session is not available.
+
+
+
+
+ The behaviour of each method is basically the same of methods.
+ The main difference is on :
+ If you mix with named parameters setter, if same param name are found,
+ the value of the parameter setter override the value read from the POCO.
+
+
+
+
+ Interface to create queries in "detached mode" where the NHibernate session is not available.
+ All methods have the same semantics as the corresponding methods of the interface.
+
+
+
+
+ Get an executable instance of ,
+ to actually run the query.
+
+
+
+ Set the maximum number of rows to retrieve.
+
+ The maximum number of rows to retreive.
+
+
+
+ Sets the first row to retrieve.
+
+ The first row to retreive.
+
+
+
+ Enable caching of this query result set.
+
+ Should the query results be cacheable?
+
+
+ Set the name of the cache region.
+ The name of a query cache region, or
+ for the default query cache
+
+
+
+ Entities retrieved by this query will be loaded in
+ a read-only mode where Hibernate will never dirty-check
+ them or make changes persistent.
+
+ Enable/Disable read -only mode
+
+
+
+ The timeout for the underlying ADO query
+
+
+
+
+ Set a fetch size for the underlying ADO query.
+ the fetch size
+
+
+
+ Set the lockmode for the objects idententified by the
+ given alias that appears in the FROM clause.
+
+ alias a query alias, or this for a collection filter
+
+
+
+ Add a comment to the generated SQL.
+ a human-readable string
+
+
+
+ Bind a value to an indexed parameter.
+
+ Position of the parameter in the query, numbered from 0
+ The possibly null parameter value
+ The Hibernate type
+
+
+
+ Bind a value to a named query parameter
+
+ The name of the parameter
+ The possibly null parameter value
+ The NHibernate .
+
+
+
+ Bind a value to an indexed parameter, guessing the Hibernate type from
+ the class of the given object.
+
+ The position of the parameter in the query, numbered from 0
+ The non-null parameter value
+
+
+
+ Bind a value to a named query parameter, guessing the NHibernate
+ from the class of the given object.
+
+ The name of the parameter
+ The non-null parameter value
+
+
+
+ Bind multiple values to a named query parameter. This is useful for binding a list
+ of values to an expression such as foo.bar in (:value_list)
+
+ The name of the parameter
+ A collection of values to list
+ The Hibernate type of the values
+
+
+
+ Bind multiple values to a named query parameter, guessing the Hibernate
+ type from the class of the first object in the collection. This is useful for binding a list
+ of values to an expression such as foo.bar in (:value_list)
+
+ The name of the parameter
+ A collection of values to list
+
+
+
+ Bind the property values of the given object to named parameters of the query,
+ matching property names with parameter names and mapping property types to
+ Hibernate types using heuristics.
+
+ Any POCO
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a array to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a array.
+
+
+
+ Bind an instance of a array to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a array.
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ A non-null instance of a .
+ The name of the parameter
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a mapped persistent class to an indexed parameter.
+
+ Position of the parameter in the query string, numbered from 0
+ A non-null instance of a persistent class
+
+
+
+ Bind an instance of a mapped persistent class to a named parameter.
+
+ The name of the parameter
+ A non-null instance of a persistent class
+
+
+
+ Bind an instance of a persistent enumeration class to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a persistent enumeration
+
+
+
+ Bind an instance of a persistent enumeration class to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a persistent enumeration
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ An instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ An instance of a .
+
+
+
+ Override the current session flush mode, just for this query.
+
+
+
+
+ Set a strategy for handling the query results. This can be used to change
+ "shape" of the query result.
+
+
+
+
+ Set the value to ignore unknown parameters names.
+
+ True to ignore unknown parameters names.
+
+
+ Override the current session cache mode, just for this query.
+ The cache mode to use.
+ this (for method chaining)
+
+
+
+ Interface for DetachedQuery implementors.
+
+
+ When you are working with queries in "detached mode" you may need some additional services like clone,
+ copy of parameters from another query and so on.
+
+
+
+
+ Copy all properties to a given .
+
+ The given .
+
+ Usually the implementation use to set properties to the .
+ This mean that existing properties are merged/overriden.
+
+
+
+
+ Set only parameters to a given .
+
+ The given .
+
+ Existing parameters are merged/overriden.
+
+
+
+
+ Override all properties reading new values from a given .
+
+ The given origin.
+
+
+
+ Override all parameters reading new values from a given .
+
+ The given origin.
+
+
+ Override the current session cache mode, just for this query.
+ The cache mode to use.
+ this (for method chaining)
+
+
+
+ Fill all properties.
+
+ The .
+
+ Query properties are overriden/merged.
+
+
+
+
+ Copy all properties to a given .
+
+ The given .
+
+ The method use to set properties of .
+
+
+
+
+ Set only parameters to a given .
+
+ The given .
+
+ The method use to set properties of .
+ Existing parameters in are merged/overriden.
+
+
+
+
+ Clear all existing parameters and copy new parameters from a given origin.
+
+ The origin of parameters.
+ The current instance
+ If is null.
+
+
+
+ Abstract implementation of the IQuery interface.
+
+
+
+
+ An object-oriented representation of a NHibernate query.
+
+
+ An IQuery instance is obtained by calling ISession.CreateQuery(). This interface
+ exposes some extra functionality beyond that provided by ISession.Iterate() and
+ ISession.List();
+
+
+ A particulare page of the result set may be selected by calling
+ SetMaxResults(), SetFirstResult(). The generated sql
+ depends on the capabilities of the . Some
+ Dialects are for databases that have built in paging (LIMIT) and those capabilities
+ will be used to limit the number of records returned by the sql statement.
+ If the database does not support LIMITs then all of the records will be returned,
+ but the objects created will be limited to the specific results requested.
+
+ Named query parameters may be used
+
+
+ Named query parameters are tokens of the form :name in the query string. A value is bound
+ to the Int32 parameter :foo by calling
+
+ SetParameter("foo", foo, NHibernateUtil.Int32);
+
+ for example. A name may appear multiple times in the query string.
+
+
+ Unnamed parameters ? are also supported. To bind a value to an unnamed
+ parameter use a Set method that accepts an Int32 positional argument - numbered from
+ zero.
+
+
+ You may not mix and match unnamed parameters and named parameters in the same query.
+
+
+ Queries are executed by calling List() or Iterate(). A query
+ may be re-executed by subsequent invocations. Its lifespan is, however, bounded by the lifespan
+ of the ISession that created it.
+
+
+ Implementors are not intended to be threadsafe.
+
+
+
+
+
+ Return the query results as an . If the query contains multiple results
+ per row, the results are returned in an instance of object[].
+
+
+
+ Entities returned as results are initialized on demand. The first SQL query returns
+ identifiers only.
+
+
+ This is a good strategy to use if you expect a high number of the objects
+ returned to be already loaded in the or in the 2nd level cache.
+
+
+
+
+
+ Strongly-typed version of .
+
+
+
+
+
+
+ Return the query results as an . If the query contains multiple results per row,
+ the results are returned in an instance of object[].
+
+ The filled with the results.
+
+ This is a good strategy to use if you expect few of the objects being returned are already loaded
+ or if you want to fill the 2nd level cache.
+
+
+
+
+ Return the query results an place them into the .
+
+ The to place the results in.
+
+
+
+ Strongly-typed version of .
+
+
+
+
+ Convenience method to return a single instance that matches
+ the query, or null if the query returns no results.
+
+ the single result or
+
+ Thrown when there is more than one matching result.
+
+
+
+
+ Strongly-typed version of .
+
+
+
+
+ Execute the update or delete statement.
+
+ The number of entities updated or deleted.
+
+
+
+ Set the maximum number of rows to retrieve.
+
+ The maximum number of rows to retreive.
+
+
+
+ Sets the first row to retrieve.
+
+ The first row to retreive.
+
+
+
+ Entities retrieved by this query will be loaded in
+ a read-only mode where Hibernate will never dirty-check
+ them or make changes persistent.
+
+
+
+
+ Enable caching of this query result set.
+
+ Should the query results be cacheable?
+
+
+ Set the name of the cache region.
+ The name of a query cache region, or
+ for the default query cache
+
+
+
+ The timeout for the underlying ADO query
+
+
+
+
+ Set a fetch size for the underlying ADO query.
+ the fetch size
+
+
+
+ Set the lockmode for the objects idententified by the
+ given alias that appears in the FROM clause.
+
+ alias a query alias, or this for a collection filter
+
+
+
+ Add a comment to the generated SQL.
+ a human-readable string
+
+
+
+ Override the current session flush mode, just for this query.
+
+
+
+ Override the current session cache mode, just for this query.
+ The cache mode to use.
+ this (for method chaining)
+
+
+
+ Bind a value to an indexed parameter.
+
+ Position of the parameter in the query, numbered from 0
+ The possibly null parameter value
+ The Hibernate type
+
+
+
+ Bind a value to a named query parameter
+
+ The name of the parameter
+ The possibly null parameter value
+ The NHibernate .
+
+
+
+ Bind a value to an indexed parameter.
+
+ Position of the parameter in the query, numbered from 0
+ The possibly null parameter value
+ The parameter's
+
+
+
+ Bind a value to a named query parameter
+
+ The name of the parameter
+ The possibly null parameter value
+ The parameter's
+
+
+
+ Bind a value to an indexed parameter, guessing the Hibernate type from
+ the class of the given object.
+
+ The position of the parameter in the query, numbered from 0
+ The non-null parameter value
+
+
+
+ Bind a value to a named query parameter, guessing the NHibernate
+ from the class of the given object.
+
+ The name of the parameter
+ The non-null parameter value
+
+
+
+ Bind multiple values to a named query parameter. This is useful for binding a list
+ of values to an expression such as foo.bar in (:value_list)
+
+ The name of the parameter
+ A collection of values to list
+ The Hibernate type of the values
+
+
+
+ Bind multiple values to a named query parameter, guessing the Hibernate
+ type from the class of the first object in the collection. This is useful for binding a list
+ of values to an expression such as foo.bar in (:value_list)
+
+ The name of the parameter
+ A collection of values to list
+
+
+
+ Bind multiple values to a named query parameter. This is useful for binding
+ a list of values to an expression such as foo.bar in (:value_list).
+
+ the name of the parameter
+ a collection of values to list
+ the Hibernate type of the values
+
+
+
+ Bind multiple values to a named query parameter. The Hibernate type of the parameter is
+ first detected via the usage/position in the query and if not sufficient secondly
+ guessed from the class of the first object in the array. This is useful for binding a list of values
+ to an expression such as foo.bar in (:value_list).
+
+ the name of the parameter
+ a collection of values to list
+
+
+
+ Bind the property values of the given object to named parameters of the query,
+ matching property names with parameter names and mapping property types to
+ Hibernate types using heuristics.
+
+ Any PONO
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a array to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a array.
+
+
+
+ Bind an instance of a array to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a array.
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ A non-null instance of a .
+ The name of the parameter
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a persistent enumeration class to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a persistent enumeration
+
+
+
+ Bind an instance of a persistent enumeration class to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a persistent enumeration
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to an indexed parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The position of the parameter in the query string, numbered from 0
+ An instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ An instance of a .
+
+
+
+ Bind an instance of a mapped persistent class to an indexed parameter.
+
+ Position of the parameter in the query string, numbered from 0
+ A non-null instance of a persistent class
+
+
+
+ Bind an instance of a mapped persistent class to a named parameter.
+
+ The name of the parameter
+ A non-null instance of a persistent class
+
+
+
+ Set a strategy for handling the query results. This can be used to change
+ "shape" of the query result.
+
+
+
+
+ Get a enumerable that when enumerated will execute
+ a batch of queries in a single database roundtrip
+
+
+
+
+
+
+ Get an IFutureValue instance, whose value can be retrieved through
+ its Value property. The query is not executed until the Value property
+ is retrieved, which will execute other Future queries as well in a
+ single roundtrip
+
+
+
+
+
+
+ The query string
+
+
+
+
+ The Hibernate types of the query result set.
+
+
+
+ Return the HQL select clause aliases (if any)
+ an array of aliases as strings
+
+
+
+ The names of all named parameters of the query
+
+ The parameter names, in no particular order
+
+
+
+ Perform parameter validation. Used prior to executing the encapsulated query.
+
+
+ if true, the first ? will not be verified since
+ its needed for e.g. callable statements returning a out parameter
+
+
+
+
+ Guesses the from the param's value.
+
+ The object to guess the of.
+ An for the object.
+
+ Thrown when the param is null because the
+ can't be guess from a null value.
+
+
+
+
+ Guesses the from the .
+
+ The to guess the of.
+ An for the .
+
+ Thrown when the clazz is null because the
+ can't be guess from a null type.
+
+
+
+
+ Warning: adds new parameters to the argument by side-effect, as well as mutating the query string!
+
+
+
+
+ Warning: adds new parameters to the argument by side-effect, as well as mutating the query string!
+
+
+
+ Override the current session cache mode, just for this query.
+
+ The cache mode to use.
+ this (for method chaining)
+
+
+ Functionality common to stateless and stateful sessions
+
+
+
+ Implementation of the interface for collection filters.
+
+
+
+
+ Default implementation of the ,
+ for "ordinary" HQL queries (not collection filters)
+
+
+
+
+
+ Implementation of the interface
+
+
+
+
+ Criteria is a simplified API for retrieving entities by composing
+ objects.
+
+
+
+ Using criteria is a very convenient approach for functionality like "search" screens
+ where there is a variable number of conditions to be placed upon the result set.
+
+
+ The Session is a factory for ICriteria. Expression instances are usually obtained via
+ the factory methods on . eg:
+
+
+ IList cats = session.CreateCriteria(typeof(Cat))
+ .Add( Expression.Like("name", "Iz%") )
+ .Add( Expression.Gt( "weight", minWeight ) )
+ .AddOrder( Order.Asc("age") )
+ .List();
+
+ You may navigate associations using or .
+
+ IList cats = session.CreateCriteria(typeof(Cat))
+ .CreateCriteria("kittens")
+ .Add( Expression.like("name", "Iz%") )
+ .List();
+
+
+ You may specify projection and aggregation using Projection
+ instances obtained via the factory methods on Projections.
+
+ IList cats = session.CreateCriteria(typeof(Cat))
+ .setProjection( Projections.ProjectionList()
+ .Add( Projections.RowCount() )
+ .Add( Projections.Avg("weight") )
+ .Add( Projections.Max("weight") )
+ .Add( Projections.Min("weight") )
+ .Add( Projections.GroupProperty("color") )
+ )
+ .AddOrder( Order.Asc("color") )
+ .List();
+
+
+
+
+
+
+ Used to specify that the query results will be a projection (scalar in
+ nature). Implicitly specifies the projection result transformer.
+
+ The projection representing the overall "shape" of the
+ query results.
+ This instance (for method chaining)
+
+
+ The individual components contained within the given
+ determines the overall "shape" of the query result.
+
+
+
+
+
+ Add an Expression to constrain the results to be retrieved.
+
+
+
+
+
+
+ An an Order to the result set
+
+
+
+
+
+ Specify an association fetching strategy. Currently, only
+ one-to-many and one-to-one associations are supported.
+
+ A dot seperated property path.
+ The Fetch mode.
+
+
+
+
+ Set the lock mode of the current entity
+
+ the lock mode
+
+
+
+
+ Set the lock mode of the aliased entity
+
+ an alias
+ the lock mode
+
+
+
+
+ Join an association, assigning an alias to the joined entity
+
+
+
+
+
+
+
+ Join an association using the specified join-type, assigning an alias to the joined
+ association
+
+
+
+ The type of join to use.
+ this (for method chaining)
+
+
+
+ Create a new , "rooted" at the associated entity
+
+
+
+
+
+
+ Create a new , "rooted" at the associated entity,
+ using the specified join type.
+
+ A dot-seperated property path
+ The type of join to use
+ The created "sub criteria"
+
+
+
+ Create a new , "rooted" at the associated entity,
+ assigning the given alias
+
+
+
+
+
+
+
+ Create a new , "rooted" at the associated entity,
+ assigning the given alias and using the specified join type.
+
+ A dot-separated property path
+ The alias to assign to the joined association (for later reference).
+ The type of join to use.
+ The created "sub criteria"
+
+
+
+ Set a strategy for handling the query results. This determines the
+ "shape" of the query result set.
+
+
+
+
+
+
+
+
+
+ Set a limit upon the number of objects to be retrieved
+
+
+
+
+
+ Set the first result to be retrieved
+
+
+
+
+ Set a fetch size for the underlying ADO query.
+ the fetch size
+ this (for method chaining)
+
+
+
+ Set a timeout for the underlying ADO.NET query
+
+
+
+
+
+
+ Enable caching of this query result set
+
+
+
+
+
+
+ Set the name of the cache region.
+
+ the name of a query cache region, or
+ for the default query cache
+
+
+
+ Add a comment to the generated SQL.
+ a human-readable string
+ this (for method chaining)
+
+
+ Override the flush mode for this particular query.
+ The flush mode to use.
+ this (for method chaining)
+
+
+ Override the cache mode for this particular query.
+ The cache mode to use.
+ this (for method chaining)
+
+
+
+ Get the results
+
+
+
+
+
+ Convenience method to return a single instance that matches
+ the query, or null if the query returns no results.
+
+ the single result or
+
+ If there is more than one matching result
+
+
+
+
+ Get a enumerable that when enumerated will execute
+ a batch of queries in a single database roundtrip
+
+
+
+
+
+
+ Get an IFutureValue instance, whose value can be retrieved through
+ its Value property. The query is not executed until the Value property
+ is retrieved, which will execute other Future queries as well in a
+ single roundtrip
+
+
+
+
+
+
+ Get the results and fill the
+
+ The list to fill with the results.
+
+
+
+ Strongly-typed version of .
+
+
+
+
+ Strongly-typed version of .
+
+
+
+
+ Clear all orders from criteria.
+
+
+
+
+ Allows to get a sub criteria by path.
+ Will return null if the criteria does not exists.
+
+ The path.
+
+
+
+ Alows to get a sub criteria by alias.
+ Will return null if the criteria does not exists
+
+ The alias.
+
+
+
+
+ Gets the root entity type if available, throws otherwise
+
+
+ This is an NHibernate specific method, used by several dependent
+ frameworks for advance integration with NHibernate.
+
+
+
+
+ Get the alias of the entity encapsulated by this criteria instance.
+
+ The alias for the encapsulated entity.
+
+
+ Override the cache mode for this particular query.
+ The cache mode to use.
+ this (for method chaining)
+
+
+ Override the cache mode for this particular query.
+ The cache mode to use.
+ this (for method chaining)
+
+
+
+ The Clone is supported only by a root criteria.
+
+ The clone of the root criteria.
+
+
+
+ Error handling in this case will only kick in if we cannot set values on the TLS
+ this is usally the case if we are called from the finalizer, since this is something
+ that we do only for logging, we ignore the error.
+
+
+
+
+ Expose the batch functionality in ADO.Net 2.0
+ Microsoft in its wisdom decided to make my life hard and mark it internal.
+ Through the use of Reflection and some delegates magic, I opened up the functionality.
+
+ Observable performance benefits are 50%+ when used, so it is really worth it.
+
+
+
+
+ Append a command to the batch
+
+
+
+
+
+ Executes the batch
+
+
+ This seems to be returning the total number of affected rows in all queries
+
+
+
+
+ Return the batch command to be executed
+
+
+
+
+ The number of commands batched in this instance
+
+
+
+
+ Append a command to the batch
+
+
+
+
+
+ This is required because SqlClient.SqlCommandSet will throw if
+ the command has no parameters.
+
+
+
+
+
+ Executes the batch
+
+
+ This seems to be returning the total number of affected rows in all queries
+
+
+
+
+ Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
+
+ 2
+
+
+
+ Return the batch command to be executed
+
+
+
+
+ The number of commands batched in this instance
+
+
+
+
+ Named query in "detached mode" where the NHibernate session is not available.
+
+
+
+
+
+
+
+
+ Create a new instance of for a named query string defined in the mapping file.
+
+ The name of a query defined externally.
+
+ The query can be either in HQL or SQL format.
+
+
+
+
+ Get an executable instance of , to actually run the query.
+
+
+
+
+ Creates a new DetachedNamedQuery that is a deep copy of the current instance.
+
+ The clone.
+
+
+
+ Get the query name.
+
+
+
+
+ Query in "detached mode" where the NHibernate session is not available.
+
+
+
+
+
+
+
+ Create a new instance of for the given query string.
+
+ A hibernate query string
+
+
+
+ Get an executable instance of , to actually run the query.
+
+
+
+
+ Creates a new DetachedQuery that is a deep copy of the current instance.
+
+ The clone.
+
+
+
+ Get the HQL string.
+
+
+
+
+ Provides an wrapper over the results of an .
+
+
+ This is the IteratorImpl in H2.0.3
+
+
+
+
+ Create an wrapper over an .
+
+ The to enumerate over.
+ The used to create the .
+ The to use to load objects.
+ The s contained in the .
+ The names of the columns in the .
+ The that should be applied to the .
+ Instantiator of the result holder (used for "select new SomeClass(...)" queries).
+
+ The should already be positioned on the first record in .
+
+
+
+
+ Returns an enumerator that can iterate through the query results.
+
+
+ An that can be used to iterate through the query results.
+
+
+
+
+ Advances the enumerator to the next element of the query results.
+
+
+ if the enumerator was successfully advanced to the next query results
+ ; if the enumerator has passed the end of the query results.
+
+
+
+
+
+
+
+ A flag to indicate if Dispose() has been called.
+
+
+
+
+ Finalizer that ensures the object is correctly disposed of.
+
+
+
+
+ Takes care of freeing the managed and unmanaged resources that
+ this class is responsible for.
+
+
+
+
+ Takes care of freeing the managed and unmanaged resources that
+ this class is responsible for.
+
+ Indicates if this EnumerableImpl is being Disposed of or Finalized.
+
+ The command is closed and the reader is disposed. This allows other ADO.NET
+ related actions to occur without needing to move all the way through the
+ EnumerableImpl.
+
+
+
+
+ Gets the current element in the query results.
+
+
+ The current element in the query results which is either an object or
+ an object array.
+
+
+ If the only returns one type of Entity then an object will
+ be returned. If this is a multi-column resultset then an object array will be
+ returned.
+
+
+
+
+
+
+
+
+ Type definition of Filter. Filter defines the user's view into enabled dynamic filters,
+ allowing them to set filter parameter values.
+
+
+
+
+ Set the named parameter's value list for this filter.
+
+ The parameter's name.
+ The values to be applied.
+ This FilterImpl instance (for method chaining).
+
+
+
+ Set the named parameter's value list for this filter. Used
+ in conjunction with IN-style filter criteria.
+
+ The parameter's name.
+ The values to be expanded into an SQL IN list.
+ This FilterImpl instance (for method chaining).
+
+
+
+ Set the named parameter's value list for this filter. Used
+ in conjunction with IN-style filter criteria.
+
+ The parameter's name.
+ The values to be expanded into an SQL IN list.
+ This FilterImpl instance (for method chaining).
+
+
+
+ Perform validation of the filter state. This is used to verify the
+ state of the filter after its enablement and before its use.
+
+
+
+
+
+ Get the name of this filter.
+
+ This filter's name.
+
+
+
+ Get the filter definition containing additional information about the
+ filter (such as default-condition and expected parameter names/types).
+
+ The filter definition
+
+
+
+ Set the named parameter's value for this filter.
+
+ The parameter's name.
+ The value to be applied.
+ This FilterImpl instance (for method chaining).
+
+
+
+ Set the named parameter's value list for this filter. Used
+ in conjunction with IN-style filter criteria.
+
+ The parameter's name.
+ The values to be expanded into an SQL IN list.
+ This FilterImpl instance (for method chaining).
+
+
+
+ Set the named parameter's value list for this filter. Used
+ in conjunction with IN-style filter criteria.
+
+ The parameter's name.
+ The values to be expanded into an SQL IN list.
+ This FilterImpl instance (for method chaining).
+
+
+
+ Perform validation of the filter state. This is used to verify the
+ state of the filter after its enablement and before its use.
+
+
+
+
+ Get the name of this filter.
+
+
+
+
+ Helper methods for rendering log messages and exception messages
+
+
+
+
+ Generate small message that can be used in traces and exception messages.
+
+ The to create the string from.
+ The identifier of the object.
+ A descriptive in the format of [classname#id]
+
+
+
+ Generate small message that can be used in traces and exception messages.
+
+ The for the class in question.
+ The identifier of the object.
+ The .
+ A descriptive in the format of [classname#id]
+
+
+
+ Generate small message that can be used in traces and exception messages.
+
+ The for the class in question.
+ The identifier of the object.
+ The .
+ The NHibernate type of the identifier.
+ A descriptive in the format of [classname#id]
+
+
+
+ Generate small message that can be used in traces and exception messages.
+
+ The for the class in question
+ The id
+ A descriptive in the form [FooBar#id]
+
+
+
+ Generate small message that can be used in traces and exception messages.
+
+ The for the class in question
+ A descriptive in the form [FooBar]
+
+
+
+ Generate small message that can be used in traces and exception messages.
+
+ The for the class in question
+ The id
+ A descriptive in the form [collectionrole#id]
+
+
+
+ Generate an info message string relating to a given property value
+ for an entity.
+
+ The entity name
+ The name of the property
+ The property value.
+ An info string, in the form [Foo.bars#1]
+
+
+
+ Generate an info message string relating to a particular managed
+ collection.
+
+ The persister for the collection
+ The id value of the owner
+ The session factory
+ An info string, in the form [Foo.bars#1]
+
+
+
+ Generate an info message string relating to a particular entity,
+ based on the given entityName and id.
+
+ The defined entity name.
+ The entity id value.
+ An info string, in the form [FooBar#1].
+
+
+
+ Combines several queries into a single DB call
+
+
+
+
+ Get all the results
+
+
+
+
+ Adds the specified criteria to the query. The result will be contained in a
+
+ Return results in a
+ The criteria.
+
+
+
+
+ Adds the specified criteria to the query. The result will be contained in a
+
+ The criteria.
+
+
+
+
+ Adds the specified criteria to the query, and associates it with the given key. The result will be contained in a
+
+ The key
+ The criteria
+
+
+
+
+ Adds the specified detached criteria. The result will be contained in a
+
+ The detached criteria.
+
+
+
+
+ Adds the specified detached criteria, and associates it with the given key. The result will be contained in a
+
+ The key
+ The detached criteria
+
+
+
+
+ Adds the specified criteria to the query
+
+ The criteria.
+
+
+
+
+ Adds the specified criteria to the query, and associates it with the given key
+
+ The key
+ The criteria
+
+
+
+
+ Adds the specified detached criteria.
+
+ The detached criteria.
+
+
+
+
+ Adds the specified detached criteria, and associates it with the given key
+
+ The key
+ The detached criteria
+
+
+
+
+ Sets whatevert this criteria is cacheable.
+
+ if set to true [cachable].
+
+
+
+ Set the cache region for thie criteria
+
+ The region
+
+
+
+
+ Force a cache refresh
+
+
+
+
+
+
+ Sets the result transformer for all the results in this mutli criteria instance
+
+ The result transformer.
+
+
+
+
+ Returns the result of one of the Criteria based on the key
+
+ The key
+
+
+
+
+ Initializes a new instance of the class.
+
+ The session.
+ The factory.
+
+
+
+ Combines sevaral queries into a single database call
+
+
+
+
+ Get all the results
+
+
+
+
+ Adds the specified criteria to the query. The result will be contained in a
+
+ Return results in a
+ The criteria.
+
+
+
+
+ Add the specified HQL query to the multi query. The result will be contained in a
+
+
+
+
+ Add the specified HQL query to the multi query, and associate it with the given key. The result will be contained in a
+
+
+
+
+
+
+
+ Add the specified HQL Query to the multi query, and associate it with the given key. The result will be contained in a
+
+
+
+
+
+
+
+ Add the specified HQL query to the multi query. The result will be contained in a
+
+
+
+
+ Add a named query to the multi query. The result will be contained in a
+
+
+
+
+ Add a named query to the multi query, and associate it with the given key. The result will be contained in a
+
+
+
+
+
+
+
+ Add the specified HQL query to the multi query, and associate it with the given key
+
+
+
+
+
+
+
+ Add the specified HQL query to the multi query
+
+
+
+
+ Add the specified HQL Query to the multi query, and associate it with the given key
+
+
+
+
+
+
+
+ Add the specified HQL query to the multi query
+
+
+
+
+ Add a named query to the multi query
+
+
+
+
+ Add a named query to the multi query, and associate it with the given key
+
+
+
+
+
+
+
+ Enable caching of this query result set.
+
+ Should the query results be cacheable?
+
+
+ Set the name of the cache region.
+ The name of a query cache region, or
+ for the default query cache
+
+
+ Should the query force a refresh of the specified query cache region?
+ This is particularly useful in cases where underlying data may have been
+ updated via a seperate process (i.e., not modified through Hibernate) and
+ allows the application to selectively refresh the query cache regions
+ based on its knowledge of those events.
+ Should the query result in a forcible refresh of
+ the query cache?
+
+
+
+ The timeout for the underlying ADO query
+
+
+
+
+
+ Bind a value to a named query parameter
+
+ The name of the parameter
+ The possibly null parameter value
+ The NHibernate .
+
+
+
+ Bind a value to a named query parameter, guessing the NHibernate
+ from the class of the given object.
+
+ The name of the parameter
+ The non-null parameter value
+
+
+
+ Bind multiple values to a named query parameter. This is useful for binding a list
+ of values to an expression such as foo.bar in (:value_list)
+
+ The name of the parameter
+ A collection of values to list
+ The Hibernate type of the values
+
+
+
+ Bind multiple values to a named query parameter, guessing the Hibernate
+ type from the class of the first object in the collection. This is useful for binding a list
+ of values to an expression such as foo.bar in (:value_list)
+
+ The name of the parameter
+ A collection of values to list
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a array to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a array.
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ A non-null instance of a .
+ The name of the parameter
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a mapped persistent class to a named parameter.
+
+ The name of the parameter
+ A non-null instance of a persistent class
+
+
+
+ Bind an instance of a persistent enumeration class to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a persistent enumeration
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ An instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Bind an instance of a to a named parameter
+ using an NHibernate .
+
+ The name of the parameter
+ A non-null instance of a .
+
+
+
+ Override the current session flush mode, just for this query.
+
+
+
+
+ Set a strategy for handling the query results. This can be used to change
+ "shape" of the query result.
+
+
+
+
+ Returns the result of one of the Criteria based on the key
+
+ The key
+
+
+
+
+ Return the query results of all the queries
+
+
+
+
+
+
+ an actual entity object, not a proxy!
+
+
+
+
+
+ Concrete implementation of a SessionFactory.
+
+
+ Has the following responsibilities:
+
+
+ Caches configuration settings (immutably)
+
+ Caches "compiled" mappings - ie.
+ and
+
+
+ Caches "compiled" queries (memory sensitive cache)
+
+
+ Manages PreparedStatements/IDbCommands - how true in NH?
+
+
+ Delegates IDbConnection management to the
+
+
+ Factory for instances of
+
+
+
+ This class must appear immutable to clients, even if it does all kinds of caching
+ and pooling under the covers. It is crucial that the class is not only thread safe
+ , but also highly concurrent. Synchronization must be used extremely sparingly.
+
+
+
+
+
+
+
+
+
+
+ NH specific : to avoid the use of entityName for generic implementation
+
+ this is a shortcut.
+
+
+
+ Gets the hql query identified by the name.
+
+ The name of that identifies the query.
+
+ A hql query or if the named
+ query does not exist.
+
+
+
+ Get the return aliases of a query
+
+
+
+ Return the names of all persistent (mapped) classes that extend or implement the
+ given class or interface, accounting for implicit/explicit polymorphism settings
+ and excluding mapped subclasses/joined-subclasses of other classes in the result.
+
+
+
+
+
+
+
+
+
+
+ Closes the session factory, releasing all held resources.
+
+ cleans up used cache regions and "stops" the cache provider.
+ close the ADO.NET connection
+
+
+
+
+ Get a new stateless session.
+
+
+ Get a new stateless session for the given ADO.NET connection.
+
+
+
+
+
+
+
+
+ Statistics SPI
+
+
+ Get the statistics for this session factory
+
+
+
+ Gets the ICurrentSessionContext instance attached to this session factory.
+
+
+
+
+ Delegate to handle the scenario of an entity not found by a specified id.
+
+
+
+
+ Delegate method to handle the scenario of an entity not found.
+
+ The entityName (may be the class fullname)
+ The requested id not founded.
+
+
+
+ Resolves lookups and deserialization.
+
+
+
+ This is used heavily be Deserialization. Currently a SessionFactory is not really serialized.
+ All that is serialized is it's name and uid. During Deserializaiton the serialized SessionFactory
+ is converted to the one contained in this object. So if you are serializing across AppDomains
+ you should make sure that "name" is specified for the SessionFactory in the hbm.xml file and that the
+ other AppDomain has a configured SessionFactory with the same name. If
+ you are serializing in the same AppDomain then there will be no problem because the uid will
+ be in this object.
+
+
+
+
+
+
+
+
+ Adds an Instance of the SessionFactory to the local "cache".
+
+ The identifier of the ISessionFactory.
+ The name of the ISessionFactory.
+ The ISessionFactory.
+ The configured properties for the ISessionFactory.
+
+
+
+ Removes the Instance of the SessionFactory from the local "cache".
+
+ The identifier of the ISessionFactory.
+ The name of the ISessionFactory.
+ The configured properties for the ISessionFactory.
+
+
+
+ Returns a Named Instance of the SessionFactory from the local "cache" identified by name.
+
+ The name of the ISessionFactory.
+ An instantiated ISessionFactory.
+
+
+
+ Returns an Instance of the SessionFactory from the local "cache" identified by UUID.
+
+ The identifier of the ISessionFactory.
+ An instantiated ISessionFactory.
+
+
+
+ We always set the result to use a thread static variable, on the face of it,
+ it looks like it is not a valid choice, since ASP.Net and WCF may decide to switch
+ threads on us. But, since SessionIdLoggingContext is only used inside NH calls, and since
+ NH calls are never async, this isn't an issue for us.
+ In addition to that, attempting to match to the current context has proven to be performance hit.
+
+
+
+
+ Concrete implementation of a Session, also the central, organizing component
+ of Hibernate's internal implementation.
+
+
+ Exposes two interfaces: ISession itself, to the application and ISessionImplementor
+ to other components of hibernate. This is where the hard stuff is...
+ NOT THREADSAFE
+
+
+
+
+ Constructor used to recreate the Session during the deserialization.
+
+
+
+
+ This is needed because we have to do some checking before the serialization process
+ begins. I don't know how to add logic in ISerializable.GetObjectData and have .net
+ write all of the serializable fields out.
+
+
+
+
+ Verify the ISession can be serialized and write the fields to the Serializer.
+
+
+
+
+ The fields are marked with [NonSerializable] as just a point of reference. This method
+ has complete control and what is serialized and those attributes are ignored. However,
+ this method should be in synch with the attributes for easy readability.
+
+
+
+
+ Once the entire object graph has been deserialized then we can hook the
+ collections, proxies, and entities back up to the ISession.
+
+
+
+
+
+ Constructor used for OpenSession(...) processing, as well as construction
+ of sessions for GetCurrentSession().
+
+ The user-supplied connection to use for this session.
+ The factory from which this session was obtained
+ NOT USED
+ The timestamp for this session
+ The interceptor to be applied to this session
+ The entity-mode for this session
+ Should we auto flush before completion of transaction
+ Should we auto close after completion of transaction
+ The mode by which we should release JDBC connections.
+
+
+
+ Constructor used in building "child sessions".
+
+ The parent Session
+ The entity mode
+
+
+
+ Close the session and release all resources
+
+ Do not call this method inside a transaction scope, use Dispose instead, since
+ Close() is not aware of distributed transactions
+
+
+
+
+
+ Ensure that the locks are downgraded to
+ and that all of the softlocks in the have
+ been released.
+
+
+
+
+ Save a transient object. An id is generated, assigned to the object and returned
+
+
+
+
+
+
+ Save a transient object with a manually assigned ID
+
+
+
+
+
+
+ Delete a persistent object
+
+
+
+
+ Delete a persistent object (by explicit entity name)
+
+
+
+ Retrieve a list of persistent objects using a Hibernate query
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Give the interceptor an opportunity to override the default instantiation
+
+
+
+
+
+
+ Force an immediate flush
+
+
+ Cascade merge an entity instance
+
+
+ Cascade persist an entity instance
+
+
+ Cascade persist an entity instance during the flush process
+
+
+ Cascade refresh an entity instance
+
+
+ Cascade copy an entity instance
+
+
+ Cascade delete an entity instance
+
+
+
+ detect in-memory changes, determine if the changes are to tables
+ named in the query and, if so, complete execution the flush
+
+
+
+
+
+
+ Load the data for the object with the specified id into a newly created object
+ using "for update", if supported. A new key will be assigned to the object.
+ This should return an existing proxy where appropriate.
+
+ If the object does not exist in the database, an exception is thrown.
+
+
+
+
+
+
+ Thrown when the object with the specified id does not exist in the database.
+
+
+
+
+ Load the data for the object with the specified id into a newly created object
+ using "for update", if supported. A new key will be assigned to the object.
+ This should return an existing proxy where appropriate.
+
+ If the object does not exist in the database, null is returned.
+
+
+
+
+
+
+
+
+ Load the data for the object with the specified id into a newly created object.
+ This is only called when lazily initializing a proxy.
+ Do NOT return a proxy.
+
+
+
+
+ Return the object with the specified id or throw exception if no row with that id exists. Defer the load,
+ return a new proxy or return an existing proxy if possible. Do not check if the object was deleted.
+
+
+
+
+
+
+
+ This can be called from commit() or at the start of a List() method.
+
+ Perform all the necessary SQL statements in a sensible order, to allow
+ users to repect foreign key constraints:
+
+ Inserts, in the order they were performed
+ Updates
+ Deletion of collection elements
+ Insertion of collection elements
+ Deletes, in the order they were performed
+
+
+
+ Go through all the persistent objects and look for collections they might be
+ holding. If they had a nonpersistable collection, substitute a persistable one
+
+
+
+
+
+ Not for internal use
+
+
+
+
+
+
+ Get the id value for an object that is actually associated with the session.
+ This is a bit stricter than GetEntityIdentifierIfNotUnsaved().
+
+
+
+
+
+
+ called by a collection that wants to initialize itself
+
+
+
+
+
+
+
+
+
+ Finalizer that ensures the object is correctly disposed of.
+
+
+
+
+ Perform a soft (distributed transaction aware) close of the session
+
+
+
+
+ Takes care of freeing the managed and unmanaged resources that
+ this class is responsible for.
+
+ Indicates if this Session is being Disposed of or Finalized.
+
+ If this Session is being Finalized (isDisposing==false) then make sure not
+ to call any methods that could potentially bring this Session back to life.
+
+
+
+
+ remove any hard references to the entity that are held by the infrastructure
+ (references held by application or other persistant instances are okay)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Get the ActionQueue for this session
+
+
+
+
+
+
+ Gets if the ISession is connected.
+
+
+ if the ISession is connected.
+
+
+ An ISession is considered connected if there is an (regardless
+ of its state) or if it the field connect is true. Meaning that it will connect
+ at the next operation that requires a connection.
+
+
+
+ Get the statistics for this session.
+
+
+ Retrieves the configured event listeners from this event source.
+
+
+
+ Implements SQL query passthrough
+
+
+ An example mapping is:
+
+ <sql-query-name name="mySqlQuery">
+ <return alias="person" class="eg.Person" />
+ SELECT {person}.NAME AS {person.name}, {person}.AGE AS {person.age}, {person}.SEX AS {person.sex}
+ FROM PERSON {person} WHERE {person}.NAME LIKE 'Hiber%'
+ </sql-query-name>
+
+
+
+
+
+ Declare a "root" entity, without specifying an alias
+
+
+
+
+ Declare a "root" entity
+
+
+
+
+ Declare a "root" entity, specifying a lock mode
+
+
+
+
+ Declare a "root" entity, without specifying an alias
+
+
+
+
+ Declare a "root" entity
+
+
+
+
+ Declare a "root" entity, specifying a lock mode
+
+
+
+
+ Declare a "joined" entity
+
+
+
+
+ Declare a "joined" entity, specifying a lock mode
+
+
+
+
+ Declare a scalar query result
+
+
+
+
+ Use a predefined named ResultSetMapping
+
+
+
+ Constructs a SQLQueryImpl given a sql query defined in the mappings.
+ The representation of the defined sql-query.
+ The session to which this SQLQueryImpl belongs.
+ Metadata about parameters found in the query.
+
+
+
+ A command-oriented API for performing bulk operations against a database.
+
+
+ A stateless session does not implement a first-level cache nor
+ interact with any second-level cache, nor does it implement
+ transactional write-behind or automatic dirty checking, nor do
+ operations cascade to associated instances. Collections are
+ ignored by a stateless session. Operations performed via a
+ stateless session bypass Hibernate's event model and
+ interceptors. Stateless sessions are vulnerable to data
+ aliasing effects, due to the lack of a first-level cache.
+
+ For certain kinds of transactions, a stateless session may
+ perform slightly faster than a stateful session.
+
+
+
+ Close the stateless session and release the ADO.NET connection.
+
+
+ Insert a entity.
+ A new transient instance
+ the identifier of the instance
+
+
+ Insert a row.
+ The entityName for the entity to be inserted
+ a new transient instance
+ the identifier of the instance
+
+
+ Update a entity.
+ a detached entity instance
+
+
+ Update a entity.
+ The entityName for the entity to be updated
+ a detached entity instance
+
+
+ Delete a entity.
+ a detached entity instance
+
+
+ Delete a entity.
+ The entityName for the entity to be deleted
+ a detached entity instance
+
+
+ Retrieve a entity.
+ a detached entity instance
+
+
+ Retrieve a entity.
+
+
+ a detached entity instance
+
+
+
+
+ Retrieve a entity, obtaining the specified lock mode.
+
+ a detached entity instance
+
+
+
+ Retrieve a entity, obtaining the specified lock mode.
+
+ a detached entity instance
+
+
+
+ Refresh the entity instance state from the database.
+
+ The entity to be refreshed.
+
+
+
+ Refresh the entity instance state from the database.
+
+ The entityName for the entity to be refreshed.
+ The entity to be refreshed.
+
+
+
+ Refresh the entity instance state from the database.
+
+ The entity to be refreshed.
+ The LockMode to be applied.
+
+
+
+ Refresh the entity instance state from the database.
+
+ The entityName for the entity to be refreshed.
+ The entity to be refreshed.
+ The LockMode to be applied.
+
+
+
+ Create a new instance of Query for the given HQL query string.
+
+ Entities returned by the query are detached.
+
+
+
+ Obtain an instance of for a named query string defined in
+ the mapping file.
+
+
+ The query can be either in HQL or SQL format.
+ Entities returned by the query are detached.
+
+
+
+
+ Create a new instance, for the given entity class,
+ or a superclass of an entity class.
+
+ A class, which is persistent, or has persistent subclasses
+ The .
+ Entities returned by the query are detached.
+
+
+
+ Create a new instance, for the given entity class,
+ or a superclass of an entity class, with the given alias.
+
+ A class, which is persistent, or has persistent subclasses
+ The alias of the entity
+ The .
+ Entities returned by the query are detached.
+
+
+
+ Create a new instance, for the given entity class,
+ or a superclass of an entity class.
+
+ A class, which is persistent, or has persistent subclasses
+ The .
+ Entities returned by the query are detached.
+
+
+
+ Create a new instance, for the given entity class,
+ or a superclass of an entity class, with the given alias.
+
+ A class, which is persistent, or has persistent subclasses
+ The alias of the entity
+ The .
+ Entities returned by the query are detached.
+
+
+
+ Create a new instance, for the given entity name.
+
+ The entity name.
+ The .
+ Entities returned by the query are detached.
+
+
+
+ Create a new instance, for the given entity name,
+ with the given alias.
+
+ The entity name.
+ The alias of the entity
+ The .
+ Entities returned by the query are detached.
+
+
+
+ Create a new instance of for the given SQL query string.
+ Entities returned by the query are detached.
+
+ a SQL query
+ The
+
+
+ Begin a NHibernate transaction.
+
+
+ Get the current Hibernate transaction.
+
+
+
+ Returns the current ADO.NET connection associated with this instance.
+
+
+ If the session is using aggressive connection release (as in a
+ CMT environment), it is the application's responsibility to
+ close the connection returned by this call. Otherwise, the
+ application should not close the connection.
+
+
+
+ Close the stateless session and release the ADO.NET connection.
+
+
+ Insert a entity.
+ A new transient instance
+ the identifier of the instance
+
+
+ Insert a row.
+ The entityName for the entity to be inserted
+ a new transient instance
+ the identifier of the instance
+
+
+ Update a entity.
+ a detached entity instance
+
+
+ Update a entity.
+ The entityName for the entity to be updated
+ a detached entity instance
+
+
+ Delete a entity.
+ a detached entity instance
+
+
+ Delete a entity.
+ The entityName for the entity to be deleted
+ a detached entity instance
+
+
+ Retrieve a entity.
+ a detached entity instance
+
+
+ Retrieve a entity.
+
+
+ a detached entity instance
+
+
+
+
+ Retrieve a entity, obtaining the specified lock mode.
+
+ a detached entity instance
+
+
+
+ Retrieve a entity, obtaining the specified lock mode.
+
+ a detached entity instance
+
+
+
+ Refresh the entity instance state from the database.
+
+ The entity to be refreshed.
+
+
+
+ Refresh the entity instance state from the database.
+
+ The entityName for the entity to be refreshed.
+ The entity to be refreshed.
+
+
+
+ Refresh the entity instance state from the database.
+
+ The entity to be refreshed.
+ The LockMode to be applied.
+
+
+
+ Refresh the entity instance state from the database.
+
+ The entityName for the entity to be refreshed.
+ The entity to be refreshed.
+ The LockMode to be applied.
+
+
+
+ Create a new instance, for the given entity class,
+ or a superclass of an entity class.
+
+ A class, which is persistent, or has persistent subclasses
+ The .
+ Entities returned by the query are detached.
+
+
+
+ Create a new instance, for the given entity class,
+ or a superclass of an entity class, with the given alias.
+
+ A class, which is persistent, or has persistent subclasses
+ The alias of the entity
+ The .
+ Entities returned by the query are detached.
+
+
+
+ Create a new instance, for the given entity name.
+
+ The entity name.
+ The .
+ Entities returned by the query are detached.
+
+
+
+ Create a new instance, for the given entity name,
+ with the given alias.
+
+ The entity name.
+ The alias of the entity
+ The .
+ Entities returned by the query are detached.
+
+
+ Begin a NHibernate transaction.
+
+
+
+ Finalizer that ensures the object is correctly disposed of.
+
+
+
+
+ Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
+
+ 2
+
+
+ Get the current Hibernate transaction.
+
+
+ Contract for field interception handlers.
+
+
+ Use to associate the entity to which we are bound to the given session.
+ The session to which we are now associated.
+
+
+ The the given field initialized for the entity to which we are bound?
+ The name of the field to check
+ True if the given field is initialized; otherwise false.
+
+
+ Forcefully mark the entity as being dirty.
+
+
+ Clear the internal dirty flag.
+
+
+ Is the entity considered dirty?
+ True if the entity is dirty; otherwise false.
+
+
+ Is the entity to which we are bound completely initialized?
+
+
+ Helper class for dealing with enhanced entity classes.
+
+
+ Marker value for uninitialized properties
+
+
+ Contract for controlling how lazy properties get initialized.
+
+
+ Initialize the property, and return its new value
+
+
+
+ Walker for collections of values and many-to-many associations
+
+
+
+
+ Superclass of walkers for collection initializers
+
+
+
+
+
+
+
+ Add on association (one-to-one, many-to-one, or a collection) to a list
+ of associations to be fetched by outerjoin (if necessary)
+
+
+
+
+ Add on association (one-to-one, many-to-one, or a collection) to a list
+ of associations to be fetched by outerjoin
+
+
+
+
+ For an entity class, return a list of associations to be fetched by outerjoin
+
+
+
+
+ For a collection role, return a list of associations to be fetched by outerjoin
+
+
+
+
+ For a collection role, return a list of associations to be fetched by outerjoin
+
+
+
+
+ For an entity class, add to a list of associations to be fetched
+ by outerjoin
+
+
+
+
+ For a component, add to a list of associations to be fetched by outerjoin
+
+
+
+
+ For a composite element, add to a list of associations to be fetched by outerjoin
+
+
+
+
+ Extend the path by the given property name
+
+
+
+
+ Get the join type (inner, outer, etc) or -1 if the
+ association should not be joined. Override on
+ subclasses.
+
+
+
+
+ Use an inner join if it is a non-null association and this
+ is the "first" join in a series
+
+
+
+
+ Does the mapping, and Hibernate default semantics, specify that
+ this association should be fetched by outer joining
+
+
+
+
+ Override on subclasses to enable or suppress joining
+ of certain association types
+
+
+
+
+ Used to detect circularities in the joined graph, note that
+ this method is side-effecty
+
+
+
+
+ Used to detect circularities in the joined graph, note that
+ this method is side-effecty
+
+
+
+
+ Should we join this association?
+
+
+
+
+ Generate a sequence of LEFT OUTER JOIN clauses for the given associations.
+
+
+
+
+ Count the number of instances of IJoinable which are actually
+ also instances of ILoadable, or are one-to-many associations
+
+
+
+
+ Count the number of instances of which
+ are actually also instances of
+ which are being fetched by outer join
+
+
+
+
+ Get the order by string required for collection fetching
+
+
+
+
+ Render the where condition for a (batch) load by identifier / collection key
+
+
+
+
+ Generate a select list of columns containing all properties of the entity classes
+
+
+
+
+ Uniquely identifier a foreign key, so that we don't
+ join it more than once, and create circularities
+
+
+
+
+ We can use an inner join for first many-to-many association
+
+
+
+
+ Loads a collection of values or a many-to-many association.
+
+
+ The collection persister must implement . For
+ other collections, create a customized subclass of
+
+
+
+
+
+ Superclass for loaders that initialize collections
+
+
+
+
+
+
+ Implements logic for walking a tree of associated classes.
+
+
+ Generates an SQL select string containing all properties of those classes.
+ Tablse are joined using an ANSI-style left outer join.
+
+
+
+
+ An interface for collection loaders
+
+
+
+
+
+
+ Initialize the given collection
+
+
+
+
+ "Batch" loads collections, using multiple foreign key values in the SQL Where clause
+
+
+
+
+
+
+ Walker for one-to-many associations
+
+
+
+
+
+ Loads one-to-many associations
+
+
+ The collection persister must implement .
+ For other collections, create a customized subclass of .
+
+
+
+
+ Implements subselect fetching for a collection
+
+
+
+ Implements subselect fetching for a one to many association
+
+
+
+
+ A for queries.
+
+
+
+
+
+ The superclass deliberately excludes collections
+
+
+
+
+ Don't bother with the discriminator, unless overridden by subclass
+
+
+
+
+ Use the discriminator, to narrow the select to instances
+ of the queried subclass, also applying any filters.
+
+
+
+
+ A Loader for queries.
+
+
+ Note that criteria
+ queries are more like multi-object Load()s than like HQL queries.
+
+
+
+
+ Get the names of the columns constrained
+ by this criterion.
+
+
+
+
+ Get the a typed value for the given property value.
+
+
+
+
+ Get the aliases of the columns constrained
+ by this criterion (for use in ORDER BY clause).
+
+
+
+ Implements Hibernate's built-in support for native SQL queries.
+ This support is built on top of the notion of "custom queries"...
+
+
+
+ Extension point allowing any SQL query with named and positional parameters
+ to be executed by Hibernate, returning managed entities, collections and
+ simple scalar values.
+
+
+
+ The SQL query string to be performed.
+
+
+
+ Any query spaces to apply to the query execution. Query spaces are
+ used in Hibernate's auto-flushing mechanism to determine which
+ entities need to be checked for pending changes.
+
+
+
+
+ A map representing positions within the supplied query to
+ which we need to bind named parameters.
+
+
+ Optional, may return null if no named parameters.
+ The structure of the returned map (if one) as follows:
+
+
The keys into the map are the named parameter names
+
The corresponding value is either an if the
+ parameter occurs only once in the query; or a List of int if the
+ parameter occurs more than once
+
+
+
+
+
+ A collection of descriptors describing the
+ ADO result set to be expected and how to map this result set.
+
+
+
+
+ Substitues ADO parameter placeholders (?) for all encountered
+ parameter specifications. It also tracks the positions of these
+ parameter specifications within the query string. This accounts for
+ ordinal-params, named-params, and ejb3-positional-params.
+
+ The query string.
+ The SQL query with parameter substitution complete.
+
+
+ Spefically a fetch return that refers to a collection association.
+
+
+ Represents a return which names a fetched association.
+
+
+ Represents some non-scalar (entity/collection) return within the query result.
+
+
+ Represents a return in a custom query.
+
+
+ Retrieves the return descriptor for the owner of this fetch.
+
+
+ The name of the property on the owner which represents this association.
+
+
+
+ Represents a return which names a collection role; it
+ is used in defining a custom query for loading an entity's
+ collection in non-fetching scenarios (i.e., loading the collection
+ itself as the "root" of the result).
+
+
+
+ Returns the class owning the collection.
+
+
+ Returns the name of the property representing the collection from the .
+
+
+
+ that uses columnnames instead of generated aliases.
+ Aliases can still be overwritten via <return-property>
+
+
+
+
+ Type definition of CollectionAliases.
+
+
+
+
+ Returns the suffixed result-set column-aliases for columns making
+ up the key for this collection (i.e., its FK to its owner).
+
+ The key result-set column aliases.
+
+
+
+ Returns the suffixed result-set column-aliases for the columns
+ making up the collection's index (map or list).
+
+ The index result-set column aliases.
+
+
+
+ Returns the suffixed result-set column-aliases for the columns
+ making up the collection's elements.
+
+ The element result-set column aliases.
+
+
+
+ Returns the suffixed result-set column-aliases for the column
+ defining the collection's identifier (if any).
+
+ The identifier result-set column aliases.
+
+
+
+ Returns the suffix used to unique the column aliases for this
+ particular alias set.
+
+ The uniqued column alias suffix.
+
+
+
+ Returns the suffixed result-set column-aliases for columns making up the key for this collection (i.e., its FK to
+ its owner).
+
+ The key result-set column aliases.
+
+
+
+ Returns the suffixed result-set column-aliases for the columns making up the collection's index (map or list).
+
+ The index result-set column aliases.
+
+
+
+ Returns the suffixed result-set column-aliases for the columns making up the collection's elements.
+
+ The element result-set column aliases.
+
+
+
+ Returns the suffixed result-set column-aliases for the column defining the collection's identifier (if any).
+
+ The identifier result-set column aliases.
+
+
+
+ Returns the suffix used to unique the column aliases for this particular alias set.
+
+ The uniqued column alias suffix.
+
+
+
+ that chooses the column names over the alias names.
+
+
+
+
+ EntityAliases which handles the logic of selecting user provided aliases (via return-property),
+ before using the default aliases.
+
+
+
+
+ Metadata describing the SQL result set column aliases
+ for a particular entity
+
+
+
+
+ The result set column aliases for the property columns of a subclass
+
+
+
+
+ The result set column aliases for the primary key columns
+
+
+
+
+ The result set column aliases for the discriminator columns
+
+
+
+
+ The result set column aliases for the version columns
+
+
+
+
+ The result set column alias for the Oracle row id
+
+
+
+
+ The result set column aliases for the property columns
+
+
+
+
+ Calculate and cache select-clause suffixes.
+
+
+
+
+ Extension point for loaders which use a SQL result set with "unexpected" column aliases.
+
+
+
+ Build a logical result row.
+
+ Entity data defined as "root returns" and already handled by the normal Loader mechanism.
+
+ The ADO result set (positioned at the row currently being processed).
+ Does this query have an associated .
+ The session from which the query request originated.
+ The logical result row
+
+ At this point, Loader has already processed all non-scalar result data. We
+ just need to account for scalar result data here...
+
+
+
+
+ Encapsulates the metadata available from the database result set.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The result set.
+
+
+
+ Gets the column count in the result set.
+
+ The column count.
+
+
+
+ Gets the (zero-based) position of the column with the specified name.
+
+ Name of the column.
+ The column position.
+
+
+
+ Gets the name of the column at the specified position.
+
+ The (zero-based) position.
+ The column name.
+
+
+
+ Gets the Hibernate type of the specified column.
+
+ The column position.
+ The Hibernate type.
+
+
+ Specifically a fetch return that refers to an entity association.
+
+
+
+ Represents a return which names a "root" entity.
+
+
+ A root entity means it is explicitly a "column" in the result, as opposed to
+ a fetched association.
+
+
+
+ Represent a scalar (AKA simple value) return within a query result.
+
+
+
+ Abstract superclass for entity loaders that use outer joins
+
+
+
+
+ Loads entities for a
+
+
+
+
+ Load an entity instance. If OptionalObject is supplied, load the entity
+ state into the given (uninitialized) object
+
+
+
+
+ "Batch" loads entities, using multiple primary key values in the
+ SQL where clause.
+
+
+
+
+
+ A walker for loaders that fetch entities
+
+
+
+
+
+ Disable outer join fetching if this loader obtains an
+ upgrade lock mode
+
+
+
+
+ Load an entity using outerjoin fetching to fetch associated entities.
+
+
+ The must implement . For other entities,
+ create a customized subclass of .
+
+
+
+
+ CollectionAliases which handles the logic of selecting user provided aliases (via return-property),
+ before using the default aliases.
+
+
+
+
+ Returns the suffixed result-set column-aliases for columns making up the key for this collection (i.e., its FK to
+ its owner).
+
+
+
+
+ Returns the suffixed result-set column-aliases for the columns making up the collection's index (map or list).
+
+
+
+
+ Returns the suffixed result-set column-aliases for the columns making up the collection's elements.
+
+
+
+
+ Returns the suffixed result-set column-aliases for the column defining the collection's identifier (if any).
+
+
+
+
+ Returns the suffix used to unique the column aliases for this particular alias set.
+
+
+
+
+ Get the position of the join with the given alias in the
+ list of joins
+
+
+
+
+ Convenience base class for AuxiliaryDatabaseObjects.
+
+
+ This implementation performs dialect scoping checks strictly based on
+ dialect name comparisons. Custom implementations might want to do
+ instanceof-type checks.
+
+
+
+
+ Auxiliary database objects (i.e., triggers, stored procedures, etc) defined
+ in the mappings. Allows Hibernate to manage their lifecycle as part of
+ creating/dropping the schema.
+
+
+
+
+ Operations to create/drop the mapping element in the database.
+
+
+
+
+ When implemented by a class, generates the SQL string to create
+ the mapping element in the database.
+
+ The to use for SQL rules.
+
+
+
+
+ A string that contains the SQL to create an object.
+
+
+
+
+ When implemented by a class, generates the SQL string to drop
+ the mapping element from the database.
+
+ The to use for SQL rules.
+
+
+
+ A string that contains the SQL to drop an object.
+
+
+
+
+ Add the given dialect name to the scope of dialects to which
+ this database object applies.
+
+ The name of a dialect.
+
+
+
+ Does this database object apply to the given dialect?
+
+ The dialect to check against.
+ True if this database object does apply to the given dialect.
+
+
+
+ Gets called by NHibernate to pass the configured type parameters to the implementation.
+
+
+
+
+ A NHibernate any type.
+
+
+ Polymorphic association to one of several tables.
+
+
+
+
+ Any value that maps to columns.
+
+
+
+
+ Represents an identifying key of a table: the value for primary key
+ of an entity, or a foreign key of a collection or join table or
+ joined subclass table.
+
+
+
+
+ A value is anything that is persisted by value, instead of
+ by reference. It is essentially a Hibernate IType, together
+ with zero or more columns. Values are wrapped by things with
+ higher level semantics, for example properties, collections,
+ classes.
+
+
+
+
+
+
+
+
+
+ Determines if the Value is part of a valid mapping.
+
+ The to validate.
+
+ if the Value is part of a valid mapping,
+ otherwise.
+
+
+
+ Mainly used to make sure that Value maps to the correct number
+ of columns.
+
+
+
+
+ Gets the number of columns that this value spans in the table.
+
+
+
+
+ Gets an of objects
+ that this value is stored in.
+
+
+
+
+ Gets the to read/write the Values.
+
+
+
+
+ Gets the this Value is stored in.
+
+
+
+
+ Gets a indicating if this Value is unique.
+
+
+
+
+ Gets a indicating if this Value can have
+ null values.
+
+
+
+
+ Gets a indicating if this is a SimpleValue
+ that does not involve foreign keys.
+
+
+
+
+ Get or set the identifier type name
+
+
+
+
+ Get or set the metatype
+
+
+
+
+ Represent the relation between a meta-value and the related entityName
+
+
+
+
+ An array has a primary key consisting of the key columns + index column
+
+
+
+
+ A list has a primary key consisting of the key columns + index column
+
+
+
+
+ Indexed collections include IList, IDictionary, Arrays
+ and primitive Arrays.
+
+
+
+
+ Base class that stores the mapping information for <array>, <bag>,
+ <id-bag>, <list>, <map>, and <set>
+ collections.
+
+
+ Subclasses are responsible for the specialization required for the particular
+ collection style.
+
+
+
+
+ Any mapping with an outer-join attribute
+
+
+
+
+ Defines mapping elements to which filters may be applied.
+
+
+
+
+ Gets or sets a indicating if this is a
+ mapping for a generic collection.
+
+
+ if a collection from the System.Collections.Generic namespace
+ should be used, if a collection from the System.Collections
+ namespace should be used.
+
+
+ This has no affect on any versions of the .net framework before .net-2.0.
+
+
+
+
+ Gets or sets an array of that contains the arguments
+ needed to construct an instance of a closed type.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The that contains this list mapping.
+
+
+
+ Gets the appropriate that is
+ specialized for this list mapping.
+
+
+
+
+ Mapping for a property of a .NET class (entity
+ or component).
+
+
+
+ Common interface for things that can handle meta attributes.
+
+
+
+ Retrieve the
+
+ The attribute name
+ The if exists; null otherwise
+
+
+
+ Meta-Attribute collection.
+
+
+
+
+ Gets the number of columns this property uses in the db.
+
+
+
+
+ Gets an of s.
+
+
+
+
+ Gets or Sets the name of the Property in the class.
+
+
+
+
+
+
+
+ A bag permits duplicates, so it has no primary key
+
+
+
+
+ A bag permits duplicates, so it has no primary key.
+
+ The that contains this bag mapping.
+
+
+
+ Gets the appropriate that is
+ specialized for this bag mapping.
+
+
+
+
+ Represents the mapping to a column in a database.
+
+
+
+
+ Initializes a new instance of .
+
+
+
+
+ Initializes a new instance of .
+
+ The name of the column.
+
+
+
+ Gets the name of this Column in quoted form if it is necessary.
+
+
+ The that knows how to quote
+ the column name.
+
+
+ The column name in a form that is safe to use inside of a SQL statement.
+ Quoted if it needs to be, not quoted if it does not need to be.
+
+
+
+ For any column name, generate an alias that is unique
+ to that column name, and also 10 characters or less
+ in length.
+
+
+
+ Gets the name of the data type for the column.
+
+ The to use to get the valid data types.
+
+
+ The name of the data type for the column.
+
+
+ If the mapping file contains a value of the attribute sql-type this will
+ return the string contained in that attribute. Otherwise it will use the
+ typename from the of the object.
+
+
+
+
+ Determines if this instance of and a specified object,
+ which must be a Column can be considered the same.
+
+ An that should be a .
+
+ if the name of this Column and the other Column are the same,
+ otherwise .
+
+
+
+
+ Determines if this instance of and the specified Column
+ can be considered the same.
+
+ A to compare to this Column.
+
+ if the name of this Column and the other Column are the same,
+ otherwise .
+
+
+
+
+ Returns the hash code for this instance.
+
+
+
+ returns quoted name as it would be in the mapping file.
+
+
+ Shallow copy, the value is not copied
+
+
+
+ Gets or sets the length of the datatype in the database.
+
+ The length of the datatype in the database.
+
+
+
+ Gets or sets the name of the column in the database.
+
+
+ The name of the column in the database. The get does
+ not return a Quoted column name.
+
+
+
+ If a value is passed in that is wrapped by ` then
+ NHibernate will Quote the column whenever SQL is generated
+ for it. How the column is quoted depends on the Dialect.
+
+
+ The value returned by the getter is not Quoted. To get the
+ column name in quoted form use .
+
+
+
+
+
+ Gets or sets if the column can have null values in it.
+
+ if the column can have a null value in it.
+
+
+
+ Gets or sets the index of the column in the .
+
+
+ The index of the column in the .
+
+
+
+
+ Gets or sets if the column contains unique values.
+
+ if the column contains unique values.
+
+
+
+ Gets or sets the sql data type name of the column.
+
+
+ The sql data type name of the column.
+
+
+ This is usually read from the sql-type attribute.
+
+
+
+
+ Gets or sets if the column needs to be quoted in SQL statements.
+
+ if the column is quoted.
+
+
+
+ Gets or sets whether the column is unique.
+
+
+
+
+ Gets or sets a check constraint on the column
+
+
+
+
+ Do we have a check constraint?
+
+
+
+
+ The underlying columns SqlType.
+
+
+ If null, it is because the sqltype code is unknown.
+
+ Use to retreive the sqltypecode used
+ for the columns associated Value/Type.
+
+
+
+
+ The mapping for a component, composite element, composite identifier,
+ etc.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Base class for relational constraints in the database.
+
+
+
+
+ Adds the to the of
+ Columns that are part of the constraint.
+
+ The to include in the Constraint.
+
+
+
+ Generates the SQL string to drop this Constraint in the database.
+
+ The to use for SQL rules.
+
+
+
+ A string that contains the SQL to drop this Constraint.
+
+
+
+
+ Generates the SQL string to create this Constraint in the database.
+
+ The to use for SQL rules.
+
+
+
+
+ A string that contains the SQL to create this Constraint.
+
+
+
+
+ When implemented by a class, generates the SQL string to create the named
+ Constraint in the database.
+
+ The to use for SQL rules.
+ The name to use as the identifier of the constraint in the database.
+
+
+
+ A string that contains the SQL to create the named Constraint.
+
+
+
+
+ Gets or sets the Name used to identify the constraint in the database.
+
+ The Name used to identify the constraint in the database.
+
+
+
+ Gets an of objects that are part of the constraint.
+
+
+ An of objects that are part of the constraint.
+
+
+
+
+ Gets the number of columns that this Constraint contains.
+
+
+ The number of columns that this Constraint contains.
+
+
+
+
+ Gets or sets the this Constraint is in.
+
+
+ The this Constraint is in.
+
+
+
+
+ Represents a Table in a database that an object gets mapped against.
+
+
+
+
+ Initializes a new instance of .
+
+
+
+
+ Generates the SQL string to create this Table in the database.
+
+ The to use for SQL rules.
+
+
+
+
+ A string that contains the SQL to create this Table, Primary Key Constraints
+ , and Unique Key Constraints.
+
+
+
+
+ Generates the SQL string to drop this Table in the database.
+
+ The to use for SQL rules.
+
+
+
+ A string that contains the SQL to drop this Table and to cascade the drop to
+ the constraints if the database supports it.
+
+
+
+
+ Gets the schema qualified name of the Table.
+
+ The that knows how to Quote the Table name.
+ The name of the table qualified with the schema if one is specified.
+
+
+
+ Gets the schema qualified name of the Table using the specified qualifier
+
+ The that knows how to Quote the Table name.
+ The catalog name.
+ The schema name.
+ A String representing the Qualified name.
+ If this were used with MSSQL it would return a dbo.table_name.
+
+
+ returns quoted name as it would be in the mapping file.
+
+
+
+ Gets the name of this Table in quoted form if it is necessary.
+
+
+ The that knows how to quote the Table name.
+
+
+ The Table name in a form that is safe to use inside of a SQL statement.
+ Quoted if it needs to be, not quoted if it does not need to be.
+
+
+
+ returns quoted name as it is in the mapping file.
+
+
+
+ Gets the schema for this table in quoted form if it is necessary.
+
+
+ The that knows how to quote the table name.
+
+
+ The schema name for this table in a form that is safe to use inside
+ of a SQL statement. Quoted if it needs to be, not quoted if it does not need to be.
+
+
+
+
+ Gets the at the specified index.
+
+ The index of the Column to get.
+
+ The at the specified index.
+
+
+
+
+ Adds the to the of
+ Columns that are part of the Table.
+
+ The to include in the Table.
+
+
+
+ Gets the identified by the name.
+
+ The name of the to get.
+
+ The identified by the name. If the
+ identified by the name does not exist then it is created.
+
+
+
+
+ Gets the identified by the name.
+
+ The name of the to get.
+
+ The identified by the name. If the
+ identified by the name does not exist then it is created.
+
+
+
+
+ Create a for the columns in the Table.
+
+
+ An of objects.
+
+
+
+ A for the columns in the Table.
+
+
+ This does not necessarily create a , if
+ one already exists for the columns then it will return an
+ existing .
+
+
+
+
+ Generates a unique string for an of
+ objects.
+
+ An of objects.
+
+ An unique string for the objects.
+
+
+
+
+ Sets the Identifier of the Table.
+
+ The that represents the Identifier.
+
+
+
+
+
+
+
+
+ Return the column which is identified by column provided as argument.
+ column with atleast a name.
+
+ The underlying column or null if not inside this table.
+ Note: the instance *can* be different than the input parameter, but the name will be the same.
+
+
+
+
+ Gets or sets the name of the Table in the database.
+
+
+ The name of the Table in the database. The get does
+ not return a Quoted Table name.
+
+
+
+ If a value is passed in that is wrapped by ` then
+ NHibernate will Quote the Table whenever SQL is generated
+ for it. How the Table is quoted depends on the Dialect.
+
+
+ The value returned by the getter is not Quoted. To get the
+ column name in quoted form use .
+
+
+
+
+
+ Gets the number of columns that this Table contains.
+
+
+ The number of columns that this Table contains.
+
+
+
+
+ Gets an of objects that
+ are part of the Table.
+
+
+ An of objects that are
+ part of the Table.
+
+
+
+
+ Gets an of objects that
+ are part of the Table.
+
+
+ An of objects that are
+ part of the Table.
+
+
+
+
+ Gets an of objects that
+ are part of the Table.
+
+
+ An of objects that are
+ part of the Table.
+
+
+
+
+ Gets an of objects that
+ are part of the Table.
+
+
+ An of objects that are
+ part of the Table.
+
+
+
+
+ Gets or sets the of the Table.
+
+ The of the Table.
+
+
+
+ Gets or sets the schema the table is in.
+
+
+ The schema the table is in or if no schema is specified.
+
+
+
+
+ Gets the unique number of the Table.
+
+ The unique number of the Table.
+
+
+
+ Gets or sets if the column needs to be quoted in SQL statements.
+
+ if the column is quoted.
+
+
+
+ A value which is "typed" by reference to some other value
+ (for example, a foreign key is typed by the referenced primary key).
+
+
+
+
+ A Foreign Key constraint in the database.
+
+
+
+
+ Generates the SQL string to create the named Foreign Key Constraint in the database.
+
+ The to use for SQL rules.
+ The name to use as the identifier of the constraint in the database.
+
+
+
+ A string that contains the SQL to create the named Foreign Key Constraint.
+
+
+
+
+ Get the SQL string to drop this Constraint in the database.
+
+ The to use for SQL rules.
+
+
+
+ A string that contains the SQL to drop this Constraint.
+
+
+
+
+ Validates that columnspan of the foreignkey and the primarykey is the same.
+ Furthermore it aligns the length of the underlying tables columns.
+
+
+
+
+ Gets or sets the that the Foreign Key is referencing.
+
+ The the Foreign Key is referencing.
+
+ Thrown when the number of columns in this Foreign Key is not the same
+ amount of columns as the Primary Key in the ReferencedTable.
+
+
+
+ Does this foreignkey reference the primary key of the reference table
+
+
+
+ A formula is a derived column value.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ An PersistentIdentifierBag has a primary key consistenting of just
+ the identifier column.
+
+
+
+
+ A collection with a synthetic "identifier" column.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ An Index in the database.
+
+
+
+
+ Generates the SQL string to create this Index in the database.
+
+ The to use for SQL rules.
+
+
+
+
+ A string that contains the SQL to create this Index.
+
+
+
+
+ Generates the SQL string to drop this Index in the database.
+
+ The to use for SQL rules.
+
+
+
+ A string that contains the SQL to drop this Index.
+
+
+
+
+ Adds the to the of
+ Columns that are part of the Index.
+
+ The to include in the Index.
+
+
+
+ Gets or sets the this Index is in.
+
+
+ The this Index is in.
+
+
+
+
+ Gets an of objects that are
+ part of the Index.
+
+
+ An of objects that are
+ part of the Index.
+
+
+
+
+ Gets or sets the Name used to identify the Index in the database.
+
+ The Name used to identify the Index in the database.
+
+
+
+ Declaration of a System.Type mapped with the <subclass> or
+ <joined-subclass> element.
+
+
+
+
+ Base class for the mapped by <class> and a
+ that is mapped by <subclass> or
+ <joined-subclass>.
+
+
+
+
+
+
+
+
+
+
+ Adds a to the class hierarchy.
+
+ The to add to the hierarchy.
+
+
+
+ Change the property definition or add a new property definition
+
+ The to add.
+
+
+
+ Adds a that is implemented by a subclass.
+
+ The implemented by a subclass.
+
+
+
+ Adds a that a subclass is stored in.
+
+ The the subclass is stored in.
+
+
+
+ Creates the for the
+ this type is persisted in.
+
+ The that is used to Alias columns.
+
+
+
+ Given a property path, locate the appropriate referenceable property reference.
+
+
+ A referenceable property is a property which can be a target of a foreign-key
+ mapping (an identifier or explicitly named in a property-ref).
+
+ The property path to resolve into a property reference.
+ The property reference (never null).
+ If the property could not be found.
+
+
+
+
+
+
+
+
+
+ Gets the that is being mapped.
+
+ The that is being mapped.
+
+ The value of this is set by the name attribute on the <class>
+ element.
+
+
+
+
+ Gets or sets the to use as a Proxy.
+
+ The to use as a Proxy.
+
+ The value of this is set by the proxy attribute.
+
+
+
+
+ Gets or Sets if the Insert Sql is built dynamically.
+
+ if the Sql is built at runtime.
+
+ The value of this is set by the dynamic-insert attribute.
+
+
+
+
+ Gets or Sets if the Update Sql is built dynamically.
+
+ if the Sql is built at runtime.
+
+ The value of this is set by the dynamic-update attribute.
+
+
+
+
+ Gets or Sets the value to use as the discriminator for the Class.
+
+
+ A value that distinguishes this subclass in the database.
+
+
+ The value of this is set by the discriminator-value attribute. Each <subclass>
+ in a hierarchy must define a unique discriminator-value. The default value
+ is the class name if no value is supplied.
+
+
+
+
+ Gets the number of subclasses that inherit either directly or indirectly.
+
+ The number of subclasses that inherit from this PersistentClass.
+
+
+
+ Iterate over subclasses in a special 'order', most derived subclasses first.
+
+
+ It will recursively go through Subclasses so that if a SubclassType has Subclasses
+ it will pick those up also.
+
+
+
+
+ Gets an of objects
+ that directly inherit from this PersistentClass.
+
+
+ An of objects
+ that directly inherit from this PersistentClass.
+
+
+
+
+ When implemented by a class, gets a boolean indicating if this
+ mapped class is inherited from another.
+
+
+ if this class is a subclass or joined-subclass
+ that inherited from another class.
+
+
+
+
+ When implemented by a class, gets a boolean indicating if the mapped class
+ has a version property.
+
+ if there is a <version> property.
+
+
+
+ When implemented by a class, gets an
+ of objects that this mapped class contains.
+
+
+ An of objects that
+ this mapped class contains.
+
+
+ This is all of the properties of this mapped class and each mapped class that
+ it is inheriting from.
+
+
+
+
+ When implemented by a class, gets an
+ of objects that this mapped class reads from
+ and writes to.
+
+
+ An of objects that
+ this mapped class reads from and writes to.
+
+
+ This is all of the tables of this mapped class and each mapped class that
+ it is inheriting from.
+
+
+
+
+ Gets an of objects that
+ this mapped class contains and that all of its subclasses contain.
+
+
+ An of objects that
+ this mapped class contains and that all of its subclasses contain.
+
+
+
+
+ Gets an of all of the objects that the
+ subclass finds its information in.
+
+ An of objects.
+ It adds the TableClosureIterator and the subclassTables into the IEnumerable.
+
+
+
+ When implemented by a class, gets or sets the of the Persister.
+
+
+
+
+ When implemented by a class, gets the of the class
+ that is mapped in the class element.
+
+
+ The of the class that is mapped in the class element.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Build a collection of properties which are "referenceable".
+
+
+ See for a discussion of "referenceable".
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Build an iterator over the properties defined on this class. The returned
+ iterator only accounts for "normal" properties (i.e. non-identifier
+ properties).
+
+
+ An of objects.
+
+
+ Differs from in that the iterator
+ we return here will include properties defined as part of a join.
+
+
+
+
+ Build an enumerable over the properties defined on this class which
+ are not defined as part of a join.
+ As with the returned iterator only accounts
+ for non-identifier properties.
+
+ An enumerable over the non-joined "normal" properties.
+
+
+
+
+
+
+
+
+ Gets a boolean indicating if this PersistentClass has any subclasses.
+
+ if this PeristentClass has any subclasses.
+
+
+
+ Gets or Sets the that this class is stored in.
+
+ The this class is stored in.
+
+ The value of this is set by the table attribute.
+
+
+
+
+ When implemented by a class, gets or set a boolean indicating
+ if the mapped class has properties that can be changed.
+
+ if the object is mutable.
+
+ The value of this is set by the mutable attribute.
+
+
+
+
+ When implemented by a class, gets a boolean indicating
+ if the mapped class has a Property for the id.
+
+ if there is a Property for the id.
+
+
+
+ When implemented by a class, gets or sets the
+ that is used as the id.
+
+
+ The that is used as the id.
+
+
+
+
+ When implemented by a class, gets or sets the
+ that contains information about the identifier.
+
+ The that contains information about the identifier.
+
+
+
+ When implemented by a class, gets or sets the
+ that is used as the version.
+
+ The that is used as the version.
+
+
+
+ When implemented by a class, gets or sets the
+ that contains information about the discriminator.
+
+ The that contains information about the discriminator.
+
+
+
+ When implemented by a class, gets or sets if the mapped class has subclasses or is
+ a subclass.
+
+
+ if the mapped class has subclasses or is a subclass.
+
+
+
+
+ When implemented by a class, gets or sets the CacheConcurrencyStrategy
+ to use to read/write instances of the persistent class to the Cache.
+
+ The CacheConcurrencyStrategy used with the Cache.
+
+
+
+ When implemented by a class, gets or sets the
+ that this mapped class is extending.
+
+
+ The that this mapped class is extending.
+
+
+
+
+ When implemented by a class, gets or sets a boolean indicating if
+ explicit polymorphism should be used in Queries.
+
+
+ if only classes queried on should be returned,
+ if any class in the heirarchy should implicitly be returned.
+
+ The value of this is set by the polymorphism attribute.
+
+
+
+
+
+
+
+
+
+ When implemented by a class, gets or sets a boolean indicating if the identifier is
+ embedded in the class.
+
+ if the class identifies itself.
+
+ An embedded identifier is true when using a composite-id specifying
+ properties of the class as the key-property instead of using a class
+ as the composite-id.
+
+
+
+
+ When implemented by a class, gets the of the class
+ that is mapped in the class element.
+
+
+ The of the class that is mapped in the class element.
+
+
+
+
+ When implemented by a class, gets or sets the
+ that contains information about the Key.
+
+ The that contains information about the Key.
+
+
+
+ When implemented by a class, gets or sets the sql string that should
+ be a part of the where clause.
+
+
+ The sql string that should be a part of the where clause.
+
+
+ The value of this is set by the where attribute.
+
+
+
+
+ Gets or sets a boolean indicating if only values in the discriminator column that
+ are mapped will be included in the sql.
+
+ if the mapped discriminator values should be forced.
+
+ The value of this is set by the force attribute on the discriminator element.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The that is the superclass.
+
+
+
+ Add the to this PersistentClass.
+
+ The to add.
+
+ This also adds the to the Superclass' collection
+ of SubclassType Properties.
+
+
+
+
+ Adds a that is implemented by a subclass.
+
+ The implemented by a subclass.
+
+ This also adds the to the Superclass' collection
+ of SubclassType Properties.
+
+
+
+
+ Adds a that a subclass is stored in.
+
+ The the subclass is stored in.
+
+ This also adds the to the Superclass' collection
+ of SubclassType Tables.
+
+
+
+
+
+
+
+
+
+ Gets a boolean indicating if this mapped class is inherited from another.
+
+
+ because this is a SubclassType.
+
+
+
+
+ Gets an of objects that this mapped class contains.
+
+
+ An of objects that
+ this mapped class contains.
+
+
+ This is all of the properties of this mapped class and each mapped class that
+ it is inheriting from.
+
+
+
+
+ Gets an of objects that this
+ mapped class reads from and writes to.
+
+
+ An of objects that
+ this mapped class reads from and writes to.
+
+
+ This is all of the tables of this mapped class and each mapped class that
+ it is inheriting from.
+
+
+
+
+ Gets a boolean indicating if the mapped class has a version property.
+
+ if for the Superclass there is a Property for a version.
+
+
+
+
+
+
+
+
+ Gets the of the class
+ that is mapped in the class element.
+
+
+ The of the Superclass that is mapped in the class element.
+
+
+
+
+
+
+
+
+
+ Gets or sets the CacheConcurrencyStrategy
+ to use to read/write instances of the persistent class to the Cache.
+
+ The CacheConcurrencyStrategy used with the Cache.
+
+
+
+ Gets the of the class that is mapped in the class element.
+
+
+ The of the Superclass that is mapped in the class element.
+
+
+
+
+ Gets or sets the that this mapped class is extending.
+
+
+ The that this mapped class is extending.
+
+
+
+
+ Gets or sets the that is used as the id.
+
+
+ The from the Superclass that is used as the id.
+
+
+
+
+ Gets or sets the that contains information about the identifier.
+
+ The from the Superclass that contains information about the identifier.
+
+
+
+ Gets a boolean indicating if the mapped class has a Property for the id.
+
+ if in the Superclass there is a Property for the id.
+
+
+
+ Gets or sets the that contains information about the discriminator.
+
+ The from the Superclass that contains information about the discriminator.
+
+
+
+ Gets or set a boolean indicating if the mapped class has properties that can be changed.
+
+ if the Superclass is mutable.
+
+
+
+ Gets or sets if the mapped class is a subclass.
+
+
+ since this mapped class is a subclass.
+
+
+ The setter should not be used to set the value to anything but .
+
+
+
+
+ Gets or sets the that is used as the version.
+
+ The from the Superclass that is used as the version.
+
+
+
+ Gets or sets a boolean indicating if the identifier is
+ embedded in the class.
+
+ if the Superclass has an embedded identifier.
+
+ An embedded identifier is true when using a composite-id specifying
+ properties of the class as the key-property instead of using a class
+ as the composite-id.
+
+
+
+
+ Gets or sets the that contains information about the Key.
+
+ The that contains information about the Key.
+
+
+
+ Gets or sets a boolean indicating if explicit polymorphism should be used in Queries.
+
+
+ The value of the Superclasses IsExplicitPolymorphism property.
+
+
+
+
+ Gets the sql string that should be a part of the where clause.
+
+
+ The sql string that should be a part of the where clause.
+
+
+ Thrown when the setter is called. The where clause can not be set on the
+ SubclassType, only the RootClass.
+
+
+
+
+ Gets or Sets the that this class is stored in.
+
+ The this class is stored in.
+
+ This also adds the to the Superclass' collection
+ of SubclassType Tables.
+
+
+
+
+
+
+
+
+ A many-to-one association mapping
+
+
+
+ A simple-point association (ie. a reference to another entity).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A map has a primary key consisting of the key columns
+ + index columns.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The that contains this map mapping.
+
+
+
+ Gets the appropriate that is
+ specialized for this list mapping.
+
+
+
+
+ A meta attribute is a named value or values.
+
+
+
+
+ A mapping for a one-to-many association.
+
+
+
+
+
+
+
+
+
+ No foreign key element for a one-to-many
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A mapping for a one-to-one association.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A Primary Key constraint in the database.
+
+
+
+
+ Generates the SQL string to create the Primary Key Constraint in the database.
+
+ The to use for SQL rules.
+
+
+ A string that contains the SQL to create the Primary Key Constraint.
+
+
+
+
+ Generates the SQL string to create the named Primary Key Constraint in the database.
+
+ The to use for SQL rules.
+ The name to use as the identifier of the constraint in the database.
+
+
+
+ A string that contains the SQL to create the named Primary Key Constraint.
+
+
+
+
+ Get the SQL string to drop this Constraint in the database.
+
+ The to use for SQL rules.
+
+
+
+ A string that contains the SQL to drop this Constraint.
+
+
+
+
+ A primitive array has a primary key consisting
+ of the key columns + index column.
+
+
+
+
+ Indicates whether given properties are generated by the database and, if
+ so, at what time(s) they are generated.
+
+
+
+
+ Values for this property are never generated by the database.
+
+
+
+
+ Values for this property are generated by the database on insert.
+
+
+
+
+ Values for this property are generated by the database on both insert and update.
+
+
+
+
+ Declaration of a System.Type mapped with the <class> element that
+ is the root class of a table-per-subclass, or table-per-concrete-class
+ inheritance heirarchy.
+
+
+
+
+ The default name of the column for the Identifier
+
+ id is the default column name for the Identifier.
+
+
+
+ The default name of the column for the Discriminator
+
+ class is the default column name for the Discriminator.
+
+
+
+ Adds a to the class hierarchy.
+
+ The to add to the hierarchy.
+
+ When a is added this mapped class has the property
+ set to .
+
+
+
+
+
+
+
+
+
+
+ Gets a boolean indicating if this mapped class is inherited from another.
+
+
+ because this is the root mapped class.
+
+
+
+
+ Gets an of objects that this mapped class contains.
+
+
+ An of objects that
+ this mapped class contains.
+
+
+
+
+ Gets an of objects that this
+ mapped class reads from and writes to.
+
+
+ An of objects that
+ this mapped class reads from and writes to.
+
+
+ There is only one in the since
+ this is the root class.
+
+
+
+
+ Gets a boolean indicating if the mapped class has a version property.
+
+ if there is a Property for a version.
+
+
+
+ Gets the of the class
+ that is mapped in the class element.
+
+
+ The of the class this mapped class.
+
+
+
+
+ Gets or sets a boolean indicating if the identifier is
+ embedded in the class.
+
+ if the class identifies itself.
+
+ An embedded identifier is true when using a composite-id specifying
+ properties of the class as the key-property instead of using a class
+ as the composite-id.
+
+
+
+
+ Gets or sets the cache region name.
+
+ The region name used with the Cache.
+
+
+
+
+
+
+
+
+ Gets or sets the that is used as the id.
+
+
+ The that is used as the id.
+
+
+
+
+ Gets or sets the that contains information about the identifier.
+
+ The that contains information about the identifier.
+
+
+
+ Gets a boolean indicating if the mapped class has a Property for the id.
+
+ if there is a Property for the id.
+
+
+
+ Gets or sets the that contains information about the discriminator.
+
+ The that contains information about the discriminator.
+
+
+
+ Gets or sets if the mapped class has subclasses.
+
+
+ if the mapped class has subclasses.
+
+
+
+
+ Gets the of the class that is mapped in the class element.
+
+
+ this since this is the root mapped class.
+
+
+
+
+ Gets or sets a boolean indicating if explicit polymorphism should be used in Queries.
+
+
+ if only classes queried on should be returned,
+ if any class in the hierarchy should implicitly be returned.
+
+
+
+
+ Gets or sets the that is used as the version.
+
+ The that is used as the version.
+
+
+
+ Gets or set a boolean indicating if the mapped class has properties that can be changed.
+
+ if the object is mutable.
+
+
+
+ Gets or sets the that this mapped class is extending.
+
+
+ since this is the root class.
+
+
+ Thrown when the setter is called. The Superclass can not be set on the
+ RootClass, only the SubclassType can have a Superclass set.
+
+
+
+
+ Gets or sets the that contains information about the Key.
+
+ The that contains information about the Key.
+
+
+
+
+
+
+
+
+ Gets or sets a boolean indicating if only values in the discriminator column that
+ are mapped will be included in the sql.
+
+ if the mapped discriminator values should be forced.
+
+
+
+ Gets or sets the sql string that should be a part of the where clause.
+
+
+ The sql string that should be a part of the where clause.
+
+
+
+
+ Gets or sets the CacheConcurrencyStrategy
+ to use to read/write instances of the persistent class to the Cache.
+
+ The CacheConcurrencyStrategy used with the Cache.
+
+
+
+ A Set with no nullable element columns will have a primary
+ key consisting of all table columns (ie - key columns +
+ element columns).
+
+
+
+
+ A simple implementation of AbstractAuxiliaryDatabaseObject in which the CREATE and DROP strings are
+ provided up front.
+
+
+ Contains simple facilities for templating the catalog and schema
+ names into the provided strings.
+ This is the form created when the mapping documents use <create/> and <drop/>.
+
+
+
+ Placeholder for typedef information
+
+
+
+ An Unique Key constraint in the database.
+
+
+
+
+ Generates the SQL string to create the Unique Key Constraint in the database.
+
+ The to use for SQL rules.
+ A string that contains the SQL to create the Unique Key Constraint.
+
+
+
+ Generates the SQL string to create the Unique Key Constraint in the database.
+
+ The to use for SQL rules.
+
+
+
+
+ A string that contains the SQL to create the Unique Key Constraint.
+
+
+
+
+ Get the SQL string to drop this Constraint in the database.
+
+ The to use for SQL rules.
+
+
+
+ A string that contains the SQL to drop this Constraint.
+
+
+
+
+ Exposes entity class metadata to the application
+
+
+
+
+ Get the type of a particular (named) property
+
+
+ Return the values of the mapped properties of the object
+
+
+
+ The persistent class
+
+
+
+
+ Create a class instance initialized with the given identifier
+
+
+
+
+ Get the value of a particular (named) property
+
+
+
+ Extract the property values from the given entity.
+ The entity from which to extract the property values.
+ The entity-mode of the given entity
+ The property values.
+
+
+
+ Set the value of a particular (named) property
+
+
+
+
+ Set the given values to the mapped properties of the given object
+
+
+
+
+ Get the identifier of an instance (throw an exception if no identifier property)
+
+
+
+
+ Set the identifier of an instance (or do nothing if no identifier property)
+
+
+
+ Does the class implement the interface?
+
+
+ Does the class implement the interface?
+
+
+
+ Get the version number (or timestamp) from the object's version property
+ (or return null if not versioned)
+
+
+
+
+ The name of the entity
+
+
+
+
+ The name of the identifier property (or return null)
+
+
+
+
+ The names of the class' persistent properties
+
+
+
+
+ The identifier Hibernate type
+
+
+
+
+ The Hibernate types of the classes properties
+
+
+
+
+ Are instances of this class mutable?
+
+
+
+
+ Are instances of this class versioned by a timestamp or version number column?
+
+
+
+
+ Gets the index of the version property
+
+
+
+
+ Get the nullability of the class' persistent properties
+
+
+
+ Get the "laziness" of the properties of this class
+
+
+ Which properties hold the natural id?
+
+
+ Does this entity extend a mapped superclass?
+
+
+ Does the class support dynamic proxies?
+
+
+ Does the class have an identifier property?
+
+
+ Does this entity declare a natural id?
+
+
+ Does this entity have mapped subclasses?
+
+
+
+ Exposes collection metadata to the application
+
+
+
+
+ The collection key type
+
+
+
+
+ The collection element type
+
+
+
+
+ The collection index type (or null if the collection has no index)
+
+
+
+
+ Is the collection indexed?
+
+
+
+
+ The name of this collection role
+
+
+
+
+ Is the collection an array?
+
+
+
+
+ Is the collection a primitive array?
+
+
+
+
+ Is the collection lazily initialized?
+
+
+
+
+ An additional contract for parameters which originate from parameters explicitly encountered in the source statement
+ (HQL or native-SQL).
+ Author: Steve Ebersole
+ Ported by: Steve Strong
+
+
+
+
+ Maintains information relating to parameters which need to get bound into a
+ JDBC {@link PreparedStatement}.
+ Author: Steve Ebersole
+ Ported by: Steve Strong
+
+
+
+
+ Bind the appropriate value into the given statement at the specified position.
+
+ The statement into which the value should be bound.
+ The defined values for the current query execution.
+ The session against which the current execution is occuring.
+ The position from which to start binding value(s).
+ The number of sql bind positions "eaten" by this bind operation.
+
+
+
+ Render this parameter into displayable info (for logging, etc).
+
+ The displayable info
+
+
+
+ Get or set the type which we are expeting for a bind into this parameter based
+ on translated contextual information.
+
+
+
+
+ Retrieves the line number on which this parameter occurs in the source query.
+
+
+
+
+ Retrieves the column number (within the {@link #getSourceLine()}) where this parameter occurs.
+
+
+
+
+ Constructs an AbstractExplicitParameterSpecification.
+
+ sourceLine
+ sourceColumn
+
+
+
+ Creates a specialized collection-filter collection-key parameter spec.
+
+ The collection role being filtered.
+ The mapped collection-key type.
+ The position within QueryParameters where we can find the appropriate param value to bind.
+
+
+
+ Constructs a parameter specification for a particular filter parameter.
+
+ The name of the filter
+ The name of the parameter
+ The paremeter type specified on the filter metadata
+
+
+
+ Parameter bind specification for an explicit named parameter.
+ Author: Steve Ebersole
+ Ported by: Steve Strong
+
+
+
+
+ Constructs a named parameter bind specification.
+
+ sourceLine
+ sourceColumn
+ The named parameter name.
+
+
+
+ Bind the appropriate value into the given statement at the specified position.
+
+ The statement into which the value should be bound.
+ The defined values for the current query execution.
+ The session against which the current execution is occuring.
+ The position from which to start binding value(s).
+ The number of sql bind positions "eaten" by this bind operation.
+
+
+
+ Getter for property 'name'.
+
+
+
+
+ Defines the information available for parameters encountered during
+ query translation through the antlr-based parser.
+ Author: Steve Ebersole
+ Ported by: Steve Strong
+
+
+
+
+ Parameter bind specification for an explicit positional (or ordinal) parameter.
+ Author: Steve Ebersole
+ Ported by: Steve Strong
+
+
+
+
+ Constructs a position/ordinal parameter bind specification.
+
+ sourceLine
+ sourceColumn
+ The position in the source query, relative to the other source positional parameters.
+
+
+
+ Bind the appropriate value into the given statement at the specified position.
+
+ The statement into which the value should be bound.
+ The defined values for the current query execution.
+ The session against which the current execution is occuring.
+ The position from which to start binding value(s).
+ The number of sql bind positions "eaten" by this bind operation.
+
+
+
+ Getter for property 'hqlPosition'.
+
+
+
+
+ Summary description for AbstractCollectionPersister.
+
+
+
+
+ A collection role that may be queried or loaded by outer join.
+
+
+
+
+ Abstraction of all mappings that define properties: entities, collection elements.
+
+
+
+
+ Given a component path expression, get the type of the property
+
+
+
+
+
+
+ Given a component path expression, get the type of the property.
+
+
+
+ true if a type was found, false if not
+
+
+
+ Given a query alias and a property path, return the qualified column name
+
+
+
+
+
+
+ Given a property path, return the corresponding column name(s).
+
+
+
+ Get the type of the thing containing the properties
+
+
+
+
+ Anything that can be loaded by outer join - namely persisters for classes or collections.
+
+
+
+
+ All columns to select, when loading.
+
+
+
+
+ Get the where clause part of any joins (optional operation)
+
+
+
+
+
+
+
+
+ Get the from clause part of any joins (optional operation)
+
+
+
+
+
+
+
+
+ Get the where clause filter, given a query alias and considering enabled session filters
+
+
+
+
+ Very, very, very ugly...
+
+ Does this persister "consume" entity column aliases in the result
+ set?
+
+
+
+ Very, very, very ugly...
+
+ Does this persister "consume" collection column aliases in the result
+ set?
+
+
+
+ An identifying name; a class name or collection role name.
+
+
+
+
+ The columns to join on.
+
+
+
+
+ Is this instance actually a ICollectionPersister?
+
+
+
+
+ The table to join to.
+
+
+
+
+ A strategy for persisting a collection role.
+
+
+ Defines a contract between the persistence strategy and the actual persistent collection framework
+ and session. Does not define operations that are required for querying collections, or loading by outer join.
+
+ Implements persistence of a collection instance while the instance is
+ referenced in a particular role.
+
+ This class is highly coupled to the
+ hierarchy, since double dispatch is used to load and update collection
+ elements.
+
+ May be considered an immutable view of the mapping object
+
+
+
+
+ Initialize the given collection with the given key
+
+
+
+
+
+
+ Read the key from a row of the
+
+
+
+
+ Read the element from a row of the
+
+
+
+
+ Read the index from a row of the
+
+
+
+
+ Read the identifier from a row of the
+
+
+
+
+ Completely remove the persistent state of the collection
+
+
+
+
+
+
+ (Re)create the collection's persistent state
+
+
+
+
+
+
+
+ Delete the persistent state of any elements that were removed from the collection
+
+
+
+
+
+
+
+ Update the persistent state of any elements that were modified
+
+
+
+
+
+
+
+ Insert the persistent state of any new collection elements
+
+
+
+
+
+
+
+ Generates the collection's key column aliases, based on the given
+ suffix.
+
+ The suffix to use in the key column alias generation.
+ The key column aliases.
+
+
+
+ Generates the collection's index column aliases, based on the given
+ suffix.
+
+ The suffix to use in the index column alias generation.
+ The index column aliases, or null if not indexed.
+
+
+
+ Generates the collection's element column aliases, based on the given
+ suffix.
+
+ The suffix to use in the element column alias generation.
+ The element column aliases.
+
+
+
+ Generates the collection's identifier column aliases, based on the given
+ suffix.
+
+ The suffix to use in the identifier column alias generation.
+ The identifier column aliases.
+
+
+
+ Get the cache
+
+
+
+ Get the cache structure
+
+
+
+ Get the associated IType
+
+
+
+
+ Get the "key" type (the type of the foreign key)
+
+
+
+
+ Get the "index" type for a list or map (optional operation)
+
+
+
+
+ Get the "element" type
+
+
+
+
+ Return the element class of an array, or null otherwise
+
+
+
+
+ Is this an array or primitive values?
+
+
+
+
+ Is this an array?
+
+
+
+ Is this a one-to-many association?
+
+
+
+ Is this a many-to-many association? Note that this is mainly
+ a convenience feature as the single persister does not
+ contain all the information needed to handle a many-to-many
+ itself, as internally it is looked at as two many-to-ones.
+
+
+
+
+ Is this collection lazily initialized?
+
+
+
+
+ Is this collection "inverse", so state changes are not propogated to the database.
+
+
+
+
+ Get the name of this collection role (the fully qualified class name, extended by a "property path")
+
+
+
+ Get the persister of the entity that "owns" this collection
+
+
+
+ Get the surrogate key generation strategy (optional operation)
+
+
+
+
+ Get the type of the surrogate key
+
+
+
+ Get the "space" that holds the persistent state
+
+
+
+ Is cascade delete handled by the database-level
+ foreign key constraint definition?
+
+
+
+
+ Does this collection cause version increment of the owning entity?
+
+
+
+ Can the elements of this collection change?
+
+
+
+ Is this collection role cacheable
+
+
+
+
+ Is this an "indexed" collection? (list or map)
+
+
+
+
+ Does this collection implement "orphan delete"?
+
+
+
+
+ Is this an ordered collection? (An ordered collection is
+ ordered by the initialization operation, not by sorting
+ that happens in memory, as in the case of a sorted collection.)
+
+
+
+
+ Generate a list of collection index and element columns
+
+
+
+
+ Get the names of the collection index columns if
+ this is an indexed collection (optional operation),
+ aliased by the given table alias
+
+
+
+
+ Get the names of the collection element columns (or the primary
+ key columns in the case of a one-to-many association),
+ aliased by the given table alias
+
+
+
+
+ Get the extra where clause filter SQL
+
+
+
+
+
+
+ Get the order by SQL
+
+
+
+
+
+
+ Get the order-by to be applied at the target table of a many to many
+
+ The alias for the many-to-many target table
+ Appropriate order-by fragment or empty string.
+
+
+
+ Get the index formulas if this is an indexed collection
+ (optional operation)
+
+
+
+
+ Get the persister of the element class, if this is a
+ collection of entities (optional operation). Note that
+ for a one-to-many association, the returned persister
+ must be OuterJoinLoadable.
+
+
+
+
+ Should we load this collection role by outer joining?
+
+
+
+
+ Get the names of the collection index columns if this is an indexed collection (optional operation)
+
+
+
+
+ Get the names of the collection element columns (or the primary key columns in the case of a one-to-many association)
+
+
+
+
+ Does this collection role have a where clause filter?
+
+
+
+
+ Reads the Element from the IDataReader. The IDataReader will probably only contain
+ the id of the Element.
+
+ See ReadElementIdentifier for an explanation of why this method will be depreciated.
+
+
+
+ Perform an SQL INSERT, and then retrieve a generated identifier.
+
+ the id of the collection entry
+
+ This form is used for PostInsertIdentifierGenerator-style ids (IDENTITY, select, etc).
+
+
+
+
+ Return the element class of an array, or null otherwise
+
+
+
+
+ Get the name of this collection role (the fully qualified class name,
+ extended by a "property path")
+
+
+
+
+ Collection persister for collections of values and many-to-many associations.
+
+
+
+
+ Generate the SQL DELETE that deletes all rows
+
+
+
+
+
+ Generate the SQL INSERT that creates a new row
+
+
+
+
+
+ Generate the SQL UPDATE that updates a row
+
+
+
+
+
+ Generate the SQL DELETE that deletes a particular row
+
+
+
+
+
+ Create the
+
+
+
+
+ Summary description for CollectionPropertyMapping.
+
+
+
+
+ The names of all the collection properties.
+
+
+
+
+ Summary description for CompositeElementPropertyMapping.
+
+
+
+
+ Base implementation of a PropertyMapping.
+
+
+
+
+ Summary description for ElementPropertyMapping.
+
+
+
+
+ Summary description for OneToManyPersister.
+
+
+
+
+ Generate the SQL UPDATE that updates all the foreign keys to null
+
+
+
+
+
+ Generate the SQL UPDATE that updates a foreign key to a value
+
+
+
+
+
+ Not needed for one-to-many association
+
+
+
+
+
+ Generate the SQL UPDATE that updates a particular row's foreign
+ key to null
+
+
+
+
+
+ Create the
+
+
+
+
+ Superclass for built-in mapping strategies. Implements functionalty common to both mapping
+ strategies
+
+
+ May be considered an immutable view of the mapping object
+
+
+
+
+ A ClassPersister that may be loaded by outer join using
+ the OuterJoinLoader hierarchy and may be an element
+ of a one-to-many association.
+
+
+
+
+ Implemented by ClassPersister that uses Loader. There are several optional
+ operations used only by loaders that inherit OuterJoinLoader
+
+
+
+
+ Concrete IEntityPersisters implement mapping and persistence logic for a particular class.
+
+
+ Implementors must be threadsafe (preferably immutable) and must provide a constructor of type
+ matching the signature of: (PersistentClass, SessionFactoryImplementor)
+
+
+
+
+ Finish the initialization of this object, once all ClassPersisters have been
+ instantiated. Called only once, before any other method.
+
+
+
+
+ Determine whether the given name represents a subclass entity
+ (or this entity itself) of the entity mapped by this persister.
+
+ The entity name to be checked.
+
+ True if the given entity name represents either the entity mapped by this persister or one of its subclass entities;
+ false otherwise.
+
+
+
+
+ Get the type of a particular property
+
+
+
+
+
+ Locate the property-indices of all properties considered to be dirty.
+ The current state of the entity (the state to be checked).
+ The previous state of the entity (the state to be checked against).
+ The entity for which we are checking state dirtiness.
+ The session in which the check is ccurring.
+ or the indices of the dirty properties
+
+
+ Locate the property-indices of all properties considered to be dirty.
+ The old state of the entity.
+ The current state of the entity.
+ The entity for which we are checking state modification.
+ The session in which the check is ccurring.
+ return or the indicies of the modified properties
+
+
+
+ Retrieve the current state of the natural-id properties from the database.
+
+
+ The identifier of the entity for which to retrieve the naturak-id values.
+
+
+ The session from which the request originated.
+
+ The natural-id snapshot.
+
+
+
+ Load an instance of the persistent class.
+
+
+
+
+ Do a version check (optional operation)
+
+
+
+
+ Persist an instance
+
+
+
+
+ Persist an instance, using a natively generated identifier (optional operation)
+
+
+
+
+ Delete a persistent instance
+
+
+
+
+ Update a persistent instance
+
+ The id.
+ The fields.
+ The dirty fields.
+ if set to [has dirty collection].
+ The old fields.
+ The old version.
+ The obj.
+ The rowId
+ The session.
+
+
+
+ Get the current database state of the object, in a "hydrated" form, without resolving identifiers
+
+
+
+ if select-before-update is not enabled or not supported
+
+
+
+ Get the current version of the object, or return null if there is no row for
+ the given identifier. In the case of unversioned data, return any object
+ if the row exists.
+
+
+
+
+
+
+ Try to discover the entity mode from the entity instance
+
+
+ Has the class actually been bytecode instrumented?
+
+
+ Called just after the entities properties have been initialized
+
+
+ Called just after the entity has been reassociated with the session
+
+
+
+ Create a new proxy instance
+
+
+
+
+
+
+ Is this a new transient instance?
+
+
+ Return the values of the insertable properties of the object (including backrefs)
+
+
+
+ Perform a select to retrieve the values of any generated properties
+ back from the database, injecting these generated values into the
+ given entity as well as writing this state to the persistence context.
+
+
+ Note, that because we update the persistence context here, callers
+ need to take care that they have already written the initial snapshot
+ to the persistence context before calling this method.
+
+ The entity's id value.
+ The entity for which to get the state.
+ The entity state (at the time of Save).
+ The session.
+
+
+
+ Perform a select to retrieve the values of any generated properties
+ back from the database, injecting these generated values into the
+ given entity as well as writing this state to the persistence context.
+
+
+ Note, that because we update the persistence context here, callers
+ need to take care that they have already written the initial snapshot
+ to the persistence context before calling this method.
+
+ The entity's id value.
+ The entity for which to get the state.
+ The entity state (at the time of Save).
+ The session.
+
+
+
+ The persistent class, or null
+
+
+
+
+ Does the class implement the ILifecycle inteface?
+
+
+
+
+ Does the class implement the IValidatable interface?
+
+
+
+
+ Get the proxy interface that instances of this concrete class will be cast to
+
+
+
+
+ Set the given values to the mapped properties of the given object
+
+
+
+
+ Set the value of a particular property
+
+
+
+
+ Return the values of the mapped properties of the object
+
+
+
+
+ Get the value of a particular property
+
+
+
+
+ Get the value of a particular property
+
+
+
+
+ Get the identifier of an instance ( throw an exception if no identifier property)
+
+
+
+
+ Set the identifier of an instance (or do nothing if no identifier property)
+
+ The object to set the Id property on.
+ The value to set the Id property to.
+ The EntityMode
+
+
+
+ Get the version number (or timestamp) from the object's version property (or return null if not versioned)
+
+
+
+
+ Create a class instance initialized with the given identifier
+
+
+
+
+ Determines whether the specified entity is an instance of the class
+ managed by this persister.
+
+ The entity.
+ The EntityMode
+
+ if the specified entity is an instance; otherwise, .
+
+
+
+ Does the given instance have any uninitialized lazy properties?
+
+
+
+ Set the identifier and version of the given instance back
+ to its "unsaved" value, returning the id
+
+
+
+ Get the persister for an instance of this class or a subclass
+
+
+
+ Check the version value trough .
+
+ The snapshot entity state
+ The result of .
+ NHibernate-specific feature, not present in H3.2
+
+
+
+ The ISessionFactory to which this persister "belongs".
+
+
+
+
+ Returns an object that identifies the space in which identifiers of
+ this entity hierarchy are unique.
+
+
+
+
+ The entity name which this persister maps.
+
+
+
+
+ Retrieve the underlying entity metamodel instance...
+
+ The metamodel
+
+
+
+ Returns an array of objects that identify spaces in which properties of
+ this entity are persisted, for instances of this class only.
+
+ The property spaces.
+
+ For most implementations, this returns the complete set of table names
+ to which instances of the mapped entity are persisted (not accounting
+ for superclass entity mappings).
+
+
+
+
+ Returns an array of objects that identify spaces in which properties of
+ this entity are persisted, for instances of this class and its subclasses.
+
+
+ Much like , except that here we include subclass
+ entity spaces.
+
+ The query spaces.
+
+
+
+ Are instances of this class mutable?
+
+
+
+
+ Determine whether the entity is inherited one or more other entities.
+ In other words, is this entity a subclass of other entities.
+
+ True if other entities extend this entity; false otherwise.
+
+
+
+ Is the identifier assigned before the insert by an IDGenerator or is it returned
+ by the Insert() method?
+
+
+ This determines which form of Insert() will be called.
+
+
+
+
+ Are instances of this class versioned by a timestamp or version number column?
+
+
+
+
+ Get the type of versioning (optional operation)
+
+
+
+
+ Which property holds the version number? (optional operation)
+
+
+
+
+ If the entity defines a natural id (), which
+ properties make up the natural id.
+
+
+ The indices of the properties making of the natural id; or
+ null, if no natural id is defined.
+
+
+
+
+ Return the IIdentifierGenerator for the class
+
+
+
+
+ Get the Hibernate types of the class properties
+
+
+
+
+ Get the names of the class properties - doesn't have to be the names of the actual
+ .NET properties (used for XML generation only)
+
+
+
+
+ Gets if the Property is insertable.
+
+ if the Property's value can be inserted.
+
+ This is for formula columns and if the user sets the insert attribute on the <property> element.
+
+
+
+ Which of the properties of this class are database generated values on insert?
+
+
+ Which of the properties of this class are database generated values on update?
+
+
+
+ Properties that may be dirty (and thus should be dirty-checked). These
+ include all updatable properties and some associations.
+
+
+
+
+ Get the nullability of the properties of this class
+
+
+
+
+ Get the "versionability" of the properties of this class (is the property optimistic-locked)
+
+ if the property is optimistic-locked; otherwise, .
+
+
+
+ Get the cascade styles of the properties (optional operation)
+
+
+
+
+ Get the identifier type
+
+
+
+
+ Get the name of the indentifier property (or return null) - need not return the
+ name of an actual .NET property
+
+
+
+
+ Should we always invalidate the cache instead of recaching updated state
+
+
+
+
+ Should lazy properties of this entity be cached?
+
+
+
+
+ Get the cache (optional operation)
+
+
+
+ Get the cache structure
+
+
+
+ Get the user-visible metadata for the class (optional operation)
+
+
+
+
+ Is batch loading enabled?
+
+
+
+ Is select snapshot before update enabled?
+
+
+
+ Does this entity contain a version property that is defined
+ to be database generated?
+
+
+
+
+ Does this class support dynamic proxies?
+
+
+
+
+ Do instances of this class contain collections?
+
+
+
+
+ Determine whether any properties of this entity are considered mutable.
+
+
+ True if any properties of the entity are mutable; false otherwise (meaning none are).
+
+
+
+
+ Determine whether this entity contains references to persistent collections
+ which are fetchable by subselect?
+
+
+ True if the entity contains collections fetchable by subselect; false otherwise.
+
+
+
+
+ Does this class declare any cascading save/update/deletes?
+
+
+
+
+ Does the class have a property holding the identifier value?
+
+
+
+
+ Determine whether detahced instances of this entity carry their own
+ identifier value.
+
+
+ True if either (1) or
+ (2) the identifier is an embedded composite identifier; false otherwise.
+
+
+ The other option is the deprecated feature where users could supply
+ the id during session calls.
+
+
+
+
+ Determine whether this entity defines a natural identifier.
+
+ True if the entity defines a natural id; false otherwise.
+
+
+
+ Determine whether this entity defines any lazy properties (ala
+ bytecode instrumentation).
+
+
+ True if the entity has properties mapped as lazy; false otherwise.
+
+
+
+
+ Gets if the Property is updatable
+
+ if the Property's value can be updated.
+
+ This is for formula columns and if the user sets the update attribute on the <property> element.
+
+
+
+
+ Does this class have a cache?
+
+
+
+
+ Does this entity define any properties as being database-generated on insert?
+
+
+
+
+ Does this entity define any properties as being database-generated on update?
+
+
+
+
+ Get the concrete subclass corresponding to the given discriminator value
+
+
+
+
+ Get the result set aliases used for the identifier columns, given a suffix
+
+
+
+
+ Get the result set aliases used for the property columns, given a suffix (properties of this class, only).
+
+
+
+
+ Get the result set column names mapped for this property (properties of this class, only).
+
+
+
+
+ Get the alias used for the discriminator column, given a suffix
+
+
+
+
+ Retrieve property values from one row of a result set
+
+
+
+
+ The discriminator type
+
+
+
+
+ Get the names of columns used to persist the identifier
+
+
+
+
+ Get the name of the column used as a discriminator
+
+
+
+
+ Does the persistent class have subclasses?
+
+
+
+ Does the result set contain rowids?
+
+
+
+ Generate a list of collection index and element columns
+
+
+
+
+
+
+
+ How many properties are there, for this class and all subclasses? (optional operation)
+
+
+
+
+
+ May this property be fetched using an SQL outerjoin?
+
+
+
+
+
+
+ Get the cascade style of this (subclass closure) property
+
+
+
+
+ Is this property defined on a subclass of the mapped class?
+
+
+
+
+
+
+ Get an array of the types of all properties of all subclasses (optional operation)
+
+
+
+
+
+
+ Get the name of the numbered property of the class or a subclass
+ (optional operation)
+
+
+
+
+
+
+ Is the numbered property of the class of subclass nullable?
+
+
+
+
+ Return the column names used to persist all properties of all sublasses of the persistent class
+ (optional operation)
+
+
+
+
+ Return the table name used to persist the numbered property of
+ the class or a subclass
+ (optional operation)
+
+
+
+
+ Given the number of a property of a subclass, and a table alias, return the aliased column names
+ (optional operation)
+
+
+
+
+
+
+
+ Get the main from table fragment, given a query alias (optional operation)
+
+
+
+
+
+
+ Get the column names for the given property path
+
+
+
+
+ Get the table name for the given property path
+
+
+
+
+ Return the alised identifier column names
+
+
+
+
+ Extends the generic ILoadable contract to add operations required by HQL
+
+
+
+
+ Given a query alias and an identifying suffix, render the intentifier select fragment.
+
+
+
+
+
+
+
+ Given a query alias and an identifying suffix, render the property select fragment.
+
+
+
+
+ Given a property name, determine the number of the table which contains the column
+ to which this property is mapped.
+
+ The name of the property.
+ The number of the table to which the property is mapped.
+
+ Note that this is not relative to the results from {@link #getConstraintOrderedTableNameClosure()}.
+ It is relative to the subclass table name closure maintained internal to the persister (yick!).
+ It is also relative to the indexing used to resolve {@link #getSubclassTableName}...
+
+
+
+ Determine whether the given property is declared by our
+ mapped class, our super class, or one of our subclasses...
+
+ Note: the method is called 'subclass property...' simply
+ for consistency sake (e.g. {@link #getSubclassPropertyTableNumber}
+
+ The property name.
+ The property declarer
+
+
+
+ Get the name of the table with the given index from the internal array.
+
+ The index into the internal array.
+
+
+
+
+ The alias used for any filter conditions (mapped where-fragments or
+ enabled-filters).
+
+ The root alias
+ The alias used for "filter conditions" within the where clause.
+
+ This may or may not be different from the root alias depending upon the
+ inheritance mapping strategy.
+
+
+
+
+ Is this class explicit polymorphism only?
+
+
+
+
+ The class that this class is mapped as a subclass of - not necessarily the direct superclass
+
+
+
+
+ The discriminator value for this particular concrete subclass, as a string that may be
+ embedded in a select statement
+
+
+
+
+ The discriminator value for this particular concrete subclass
+
+ The DiscriminatorValue is specific of NH since we are using strongly typed parameters for SQL query.
+
+
+
+ Is the inheritance hierarchy described by this persister contained across
+ multiple tables?
+
+ True if the inheritance hierarchy is spread across multiple tables; false otherwise.
+
+
+
+ Get the names of all tables used in the hierarchy (up and down) ordered such
+ that deletes in the given order would not cause constraint violations.
+
+ The ordered array of table names.
+
+
+
+ For each table specified in , get
+ the columns that define the key between the various hierarchy classes.
+
+
+ The first dimension here corresponds to the table indexes returned in
+ .
+
+ The second dimension should have the same length across all the elements in
+ the first dimension. If not, that'd be a problem ;)
+
+
+
+
+ Get the name of the temporary table to be used to (potentially) store id values
+ when performing bulk update/deletes.
+
+ The appropriate temporary table name.
+
+
+
+ Get the appropriate DDL command for generating the temporary table to
+ be used to (potentially) store id values when performing bulk update/deletes.
+
+ The appropriate temporary table creation command.
+
+
+ Is the version property included in insert statements?
+
+
+
+ Describes a class that may be loaded via a unique key.
+
+
+
+
+ Load an instance of the persistent class, by a unique key other than the primary key.
+
+
+
+
+ Get the property number of the unique key property
+
+
+
+
+ A class persister that supports queries expressed in the platform native SQL dialect.
+
+
+
+
+ Returns the column alias names used to persist/query the numbered property of the class or a subclass (optional operation).
+
+
+
+
+ Return the column names used to persist/query the named property of the class or a subclass (optional operation).
+
+
+
+
+ All columns to select, when loading.
+
+
+
+
+ Get the type
+
+
+
+
+ Contract for things that can be locked via a .
+
+
+ Currently only the root table gets locked, except for the case of HQL and Criteria queries
+ against dialects which do not support either (1) FOR UPDATE OF or (2) support hint locking
+ (in which case *all* queried tables would be locked).
+
+
+
+
+ Get the SQL alias this persister would use for the root table
+ given the passed driving alias.
+
+
+ The driving alias; or the alias for the table mapped by this persister in the hierarchy.
+
+ The root table alias.
+
+
+
+ Locks are always applied to the "root table".
+
+
+
+
+ Get the names of columns on the root table used to persist the identifier.
+
+
+
+
+ For versioned entities, get the name of the column (again, expected on the
+ root table) used to store the version values.
+
+
+
+
+ To build the SQL command in pessimistic lock
+
+
+
+
+ Decide which tables need to be updated
+
+ The indices of all the entity properties considered dirty.
+ Whether any collections owned by the entity which were considered dirty.
+ Array of booleans indicating which table require updating.
+
+ The return here is an array of boolean values with each index corresponding
+ to a given table in the scope of this persister.
+
+
+
+
+ Generate the SQL that selects the version number by id
+
+
+
+
+ Retrieve the version number
+
+
+
+
+ Warning:
+ When there are duplicated property names in the subclasses
+ of the class, this method may return the wrong table
+ number for the duplicated subclass property (note that
+ SingleTableEntityPersister defines an overloaded form
+ which takes the entity name.
+
+
+
+
+ Get the column names for the numbered property of this class
+
+
+
+
+ Must be called by subclasses, at the end of their constructors
+
+
+
+ Generate the SQL that updates a row by id (and version)
+
+
+ Generate the SQL that inserts a row
+
+
+ Marshall the fields of a persistent instance to a prepared statement
+
+
+
+ Unmarshall the fields of a persistent instance from a result set,
+ without resolving associations or collections
+
+
+
+
+ Perform an SQL INSERT, and then retrieve a generated identifier.
+
+
+ This form is used for PostInsertIdentifierGenerator-style ids (IDENTITY, select, etc).
+
+
+
+
+ Perform an SQL INSERT.
+
+
+ This for is used for all non-root tables as well as the root table
+ in cases where the identifier value is known before the insert occurs.
+
+
+
+ Perform an SQL UPDATE or SQL INSERT
+
+
+
+ Perform an SQL DELETE
+
+
+
+
+ Load an instance using the appropriate loader (as determined by
+
+
+
+
+ Transform the array of property indexes to an array of booleans, true when the property is dirty
+
+
+
+ Which properties appear in the SQL update? (Initialized, updateable ones!)
+
+
+
+ Determines whether the specified entity is an instance of the class
+ managed by this persister.
+
+ The entity.
+ The entity mode.
+
+ if the specified entity is an instance; otherwise, .
+
+
+
+
+ The queries that delete rows by id (and version)
+
+
+
+
+ The queries that insert rows with a given id
+
+
+
+
+ The queries that update rows by id (and version)
+
+
+
+
+ The query that inserts a row, letting the database generate an id
+
+ The IDENTITY-based insertion query.
+
+
+
+ We can't immediately add to the cache if we have formulas
+ which must be evaluated, or if we have the possibility of
+ two concurrent updates to the same item being merged on
+ the database. This can happen if (a) the item is not
+ versioned and either (b) we have dynamic update enabled
+ or (c) we have multiple tables holding the state of the
+ item.
+
+
+
+ The property name of the "special" identifier property in HQL
+
+
+
+ A IEntityPersister implementing the normalized "table-per-subclass" mapping strategy
+
+
+
+
+ Constructs the NormalizedEntityPerister for the PersistentClass.
+
+ The PersistentClass to create the EntityPersister for.
+ The configured .
+ The SessionFactory that this EntityPersister will be stored in.
+ The mapping used to retrieve type information.
+
+
+
+ Find the Index of the table name from a list of table names.
+
+ The name of the table to find.
+ The array of table names
+ The Index of the table in the array.
+ Thrown when the tableName specified can't be found
+
+
+
+ Not really a Loader, just a wrapper around a named query.
+
+
+
+
+ Default implementation of the ClassPersister interface. Implements the
+ "table-per-class hierarchy" mapping strategy for an entity class.
+
+
+
+ Generate the SQL that selects a row by id
+
+
+
+ Factory for IEntityPersister and ICollectionPersister instances.
+
+
+
+
+ Creates a built in Entity Persister or a custom Persister.
+
+
+
+
+ Creates a specific Persister - could be a built in or custom persister.
+
+
+
+
+ A Strategy for converting a mapped property name to a Field name.
+
+
+
+
+ When implemented by a class, converts the Property's name into a Field name
+
+ The name of the mapped property.
+ The name of the Field.
+
+
+ Represents a "back-reference" to the id of a collection owner.
+
+
+
+ Abstracts the notion of a "property". Defines a strategy for accessing the
+ value of a mapped property.
+
+
+
+
+ When implemented by a class, create a "getter" for the mapped property.
+
+ The to find the Property in.
+ The name of the mapped Property to get.
+
+ The to use to get the value of the Property from an
+ instance of the .
+
+ Thrown when a Property specified by the propertyName could not
+ be found in the .
+
+
+
+
+ When implemented by a class, create a "setter" for the mapped property.
+
+ The to find the Property in.
+ The name of the mapped Property to set.
+
+ The to use to set the value of the Property on an
+ instance of the .
+
+
+ Thrown when a Property specified by the propertyName could not
+ be found in the .
+
+
+
+
+ Allow embedded and custom accessors to define if the ReflectionOptimizer can be used.
+
+
+
+ The Setter implementation for id backrefs.
+
+
+
+ Sets values of a particular mapped property.
+
+
+
+
+ When implemented by a class, sets the value of the Property/Field on the object.
+
+ The object to set the Property value in.
+ The value to set the Property to.
+
+ Thrown when there is a problem setting the value in the target.
+
+
+
+
+ When implemented by a class, gets the name of the Property.
+
+ The name of the Property or .
+
+ This is an optional operation - if it is not implemented then
+ is an acceptable value to return.
+
+
+
+
+ When implemented by a class, gets the for the set
+ accessor of the property.
+
+
+ This is an optional operation - if the is not
+ for a property set then is an acceptable value to return.
+ It is used by the proxies to determine which setter to intercept for the
+ identifier property.
+
+
+
+ The Getter implementation for id backrefs.
+
+
+
+ Gets values of a particular mapped property.
+
+
+
+
+ When implemented by a class, gets the value of the Property/Field from the object.
+
+ The object to get the Property/Field value from.
+
+ The value of the Property for the target.
+
+
+ Thrown when there is a problem getting the value from the target.
+
+
+
+ Get the property value from the given owner instance.
+ The instance containing the value to be retrieved.
+ a map of merged persistent instances to detached instances
+ The session from which this request originated.
+ The extracted value.
+
+
+
+ When implemented by a class, gets the that the Property/Field returns.
+
+ The that the Property returns.
+
+
+
+ When implemented by a class, gets the name of the Property.
+
+ The name of the Property or .
+
+ This is an optional operation - if the is not
+ for a Property get then is an acceptable value to return.
+
+
+
+
+ When implemented by a class, gets the for the get
+ accessor of the property.
+
+
+ This is an optional operation - if the is not
+ for a property get then is an acceptable value to return.
+ It is used by the proxies to determine which getter to intercept for the
+ identifier property.
+
+
+
+
+ Accesses mapped property values via a get/set pair, which may be nonpublic.
+ The default (and recommended strategy).
+
+
+
+
+ Create a for the mapped property.
+
+ The to find the Property in.
+ The name of the mapped Property to get.
+
+ The to use to get the value of the Property from an
+ instance of the .
+
+ Thrown when a Property specified by the propertyName could not
+ be found in the .
+
+
+
+
+ Create a for the mapped property.
+
+ The to find the Property in.
+ The name of the mapped Property to get.
+
+ The to use to set the value of the Property on an
+ instance of the .
+
+
+ Thrown when a Property specified by the propertyName could not
+ be found in the .
+
+
+
+
+ Helper method to find the Property get.
+
+ The to find the Property in.
+ The name of the mapped Property to get.
+
+ The for the Property get or
+ if the Property could not be found.
+
+
+
+
+ Helper method to find the Property set.
+
+ The to find the Property in.
+ The name of the mapped Property to set.
+
+ The for the Property set or
+ if the Property could not be found.
+
+
+
+
+ An for a Property get.
+
+
+
+
+ An that can emit IL to get the property value.
+
+
+
+
+ Emit IL to get the property value from the object on top of the stack.
+
+
+
+
+ Initializes a new instance of .
+
+ The that contains the Property get.
+ The for reflection.
+ The name of the Property.
+
+
+
+ Gets the value of the Property from the object.
+
+ The object to get the Property value from.
+
+ The value of the Property for the target.
+
+
+
+
+ Gets the that the Property returns.
+
+ The that the Property returns.
+
+
+
+ Gets the name of the Property.
+
+ The name of the Property.
+
+
+
+ Gets the for the Property.
+
+
+ The for the Property.
+
+
+
+
+ An for a Property set.
+
+
+
+
+ An that can emit IL to set the property value.
+
+
+
+
+ Emit IL to set the property of an object to the value. The object
+ is loaded onto the stack first, then the value, then this method
+ is called.
+
+
+
+
+ Initializes a new instance of .
+
+ The that contains the Property set.
+ The for reflection.
+ The name of the mapped Property.
+
+
+
+ Sets the value of the Property on the object.
+
+ The object to set the Property value in.
+ The value to set the Property to.
+
+ Thrown when there is a problem setting the value in the target.
+
+
+
+
+ Gets the name of the mapped Property.
+
+ The name of the mapped Property or .
+
+
+
+ Gets the for the mapped Property.
+
+ The for the mapped Property.
+
+
+
+ Implementation of for fields that are the
+ camelCase version of the PropertyName
+
+
+
+
+ Converts the Property's name into a Field name by making the first character
+ lower case.
+
+ The name of the mapped property.
+ The name of the Field in CamelCase format.
+
+
+
+ Implementation of for fields that are prefixed with
+ an underscore and the PropertyName is changed to camelCase.
+
+
+
+
+ Converts the Property's name into a Field name by making the first character
+ of the propertyName lowercase and prefixing it with an underscore.
+
+ The name of the mapped property.
+ The name of the Field in CamelCase format prefixed with an underscore.
+
+
+
+ Access the mapped property by using a Field to get and set the value.
+
+
+ The is useful when you expose getter and setters
+ for a Property, but they have extra code in them that shouldn't be executed when NHibernate
+ is setting or getting the values for loads or saves.
+
+
+
+
+ Initializes a new instance of .
+
+
+
+
+ Initializes a new instance of .
+
+ The to use.
+
+
+
+ Create a to get the value of the mapped Property
+ through a Field.
+
+ The to find the Property in.
+ The name of the mapped Property to get.
+
+ The to use to get the value of the Property from an
+ instance of the .
+
+ Thrown when a Field specified by the propertyName could not
+ be found in the .
+
+
+
+
+ Create a to set the value of the mapped Property
+ through a Field.
+
+ The to find the mapped Property in.
+ The name of the mapped Property to set.
+
+ The to use to set the value of the Property on an
+ instance of the .
+
+
+ Thrown when a Field for the Property specified by the propertyName using the
+ could not be found in the .
+
+
+
+
+ Helper method to find the Field.
+
+ The to find the Field in.
+ The name of the Field to find.
+
+ The for the field.
+
+
+ Thrown when a field could not be found.
+
+
+
+
+ Converts the mapped property's name into a Field using
+ the if one exists.
+
+ The name of the Property.
+ The name of the Field.
+
+
+
+ Gets the used to convert the name of the
+ mapped Property in the hbm.xml file to the name of the field in the class.
+
+ The or .
+
+
+
+ An that uses a Field instead of the Property get.
+
+
+
+
+ Initializes a new instance of .
+
+ The that contains the field to use for the Property get.
+ The for reflection.
+ The name of the Field.
+
+
+
+ Gets the value of the Field from the object.
+
+ The object to get the Field value from.
+
+ The value of the Field for the target.
+
+
+
+
+ Gets the that the Field returns.
+
+ The that the Field returns.
+
+
+
+ Gets the name of the Property.
+
+ since this is a Field - not a Property.
+
+
+
+ Gets the for the Property.
+
+ since this is a Field - not a Property.
+
+
+
+ An that uses a Field instead of the Property set.
+
+
+
+
+ Initializes a new instance of .
+
+ The that contains the Field to use for the Property set.
+ The for reflection.
+ The name of the Field.
+
+
+
+ Sets the value of the Field on the object.
+
+ The object to set the Field value in.
+ The value to set the Field to.
+
+ Thrown when there is a problem setting the value in the target.
+
+
+
+
+ Gets the name of the Property.
+
+ since this is a Field - not a Property.
+
+
+
+ Gets the for the Property.
+
+ since this is a Field - not a Property.
+
+
+ Represents a "back-reference" to the index of a collection.
+
+
+ Constructs a new instance of IndexPropertyAccessor.
+ The collection role which this back ref references.
+ The owner entity name.
+
+
+ The Setter implementation for index backrefs.
+
+
+ The Getter implementation for index backrefs.
+
+
+
+ Implementation of for fields that are
+ the PropertyName in all LowerCase characters.
+
+
+
+
+ Converts the Property's name into a Field name by making the all characters
+ of the propertyName lowercase.
+
+ The name of the mapped property.
+ The name of the Field in lowercase.
+
+
+
+ Implementation of for fields that are prefixed with
+ an underscore and the PropertyName is changed to lower case.
+
+
+
+
+ Converts the Property's name into a Field name by making the all characters
+ of the propertyName lowercase and prefixing it with an underscore.
+
+ The name of the mapped property.
+ The name of the Field in lowercase prefixed with an underscore.
+
+
+ Used to declare properties not represented at the pojo level
+
+
+ A Getter which will always return null. It should not be called anyway.
+
+
+ A Setter which will just do nothing.
+
+
+
+ Access the mapped property through a Property get to get the value
+ and go directly to the Field to set the value.
+
+
+ This is most useful because Classes can provider a get for the Property
+ that is the <id> but tell NHibernate there is no setter for the Property
+ so the value should be written directly to the field.
+
+
+
+
+ Initializes a new instance of .
+
+ The to use.
+
+
+
+ Creates an to get the value from the Property.
+
+ The to find the Property in.
+ The name of the mapped Property to get.
+
+ The to use to get the value of the Property from an
+ instance of the .
+
+ Thrown when a Property specified by the propertyName could not
+ be found in the .
+
+
+
+
+ Create a to set the value of the mapped Property
+ through a Field.
+
+ The to find the mapped Property in.
+ The name of the mapped Property to set.
+
+ The to use to set the value of the Property on an
+ instance of the .
+
+
+ Thrown when a Field for the Property specified by the propertyName using the
+ could not be found in the .
+
+
+
+
+ Converts the Property's name into a Field name by making the first character
+ of the propertyName uppercase and prefixing it with the letter 'm'.
+
+ The name of the mapped property.
+ The name of the Field in PascalCase format prefixed with an 'm'.
+
+
+
+ Implementation of for fields that are prefixed with
+ an m_ and the first character in PropertyName capitalized.
+
+
+
+
+ Converts the Property's name into a Field name by making the first character
+ of the propertyName uppercase and prefixing it with the letter 'm'
+ and an underscore.
+
+ The name of the mapped property.
+ The name of the Field in PascalCase format prefixed with an 'm' and an underscore.
+
+
+
+ Implementation of for fields that are prefixed with
+ an _ and the first character in PropertyName capitalized.
+
+
+
+
+ Converts the Property's name into a Field name by making the first character
+ of the propertyName uppercase and prefixing it with an underscore.
+
+ The name of the mapped property.
+ The name of the Field in PascalCase format prefixed with an underscore.
+
+
+
+ Factory for creating the various PropertyAccessor strategies.
+
+
+
+
+ Initializes the static members in .
+
+
+
+
+ Gets or creates the specified by the type.
+
+
+ The specified by the type.
+
+
+ The built in ways of accessing the values of Properties in your domain class are:
+
+
+
+ Access Method
+ How NHibernate accesses the Mapped Class.
+
+
+ property
+
+ The name attribute is the name of the Property. This is the
+ default implementation.
+
+
+
+ field
+
+ The name attribute is the name of the field. If you have any Properties
+ in the Mapped Class those will be bypassed and NHibernate will go straight to the
+ field. This is a good option if your setters have business rules attached to them
+ or if you don't want to expose a field through a Getter & Setter.
+
+
+
+ nosetter
+
+ The name attribute is the name of the Property. NHibernate will use the
+ Property's get method to retrieve the value and will use the field
+ to set the value. This is a good option for <id> Properties because this access method
+ allows users of the Class to get the value of the Id but not set the value.
+
+
+
+ readonly
+
+ The name attribute is the name of the Property. NHibernate will use the
+ Property's get method to retrieve the value but will never set the value back in the domain.
+ This is used for read-only calculated properties with only a get method.
+
+
+
+ Assembly Qualified Name
+
+ If NHibernate's built in s are not what is needed for your
+ situation then you are free to build your own. Provide an Assembly Qualified Name so that
+ NHibernate can call Activator.CreateInstance(AssemblyQualifiedName) to create it.
+
+
+
+
+ In order for the nosetter to know the name of the field to access NHibernate needs to know
+ what the naming strategy is. The following naming strategies are built into NHibernate:
+
+
+
+ Naming Strategy
+ How NHibernate converts the value of the name attribute to a field name.
+
+
+ camelcase
+
+ The name attribute should be changed to CamelCase to find the field.
+ <property name="Foo" ... > finds a field foo.
+
+
+
+ camelcase-underscore
+
+ The name attribute should be changed to CamelCase and prefixed with
+ an underscore to find the field.
+ <property name="Foo" ... > finds a field _foo.
+
+
+
+ pascalcase-underscore
+
+ The name attribute should be prefixed with an underscore
+ to find the field.
+ <property name="Foo" ... > finds a field _Foo.
+
+
+
+ pascalcase-m-underscore
+
+ The name attribute should be prefixed with an 'm' and underscore
+ to find the field.
+ <property name="Foo" ... > finds a field m_Foo.
+
+
+
+ pascalcase-m
+
+ The name attribute should be prefixed with an 'm'.
+ <property name="Foo" ... > finds a field mFoo.
+
+
+
+ lowercase
+
+ The name attribute should be changed to lowercase to find the field.
+ <property name="FooBar" ... > finds a field foobar.
+
+
+
+ lowercase-underscore
+
+ The name attribute should be changed to lowercase and prefixed with
+ and underscore to find the field.
+ <property name="FooBar" ... > finds a field _foobar.
+
+
+
+
+ The naming strategy can also be appended at the end of the field access method. Where
+ this could be useful is a scenario where you do expose a get and set method in the Domain Class
+ but NHibernate should only use the fields.
+
+
+ With a naming strategy and a get/set for the Property available the user of the Domain Class
+ could write an Hql statement from Foo as foo where foo.SomeProperty = 'a'. If no naming
+ strategy was specified the Hql statement would have to be from Foo as foo where foo._someProperty
+ (assuming CamelCase with an underscore field naming strategy is used).
+
+
+
+
+ Retrieves a PropertyAccessor instance based on the given property definition and entity mode.
+ The property for which to retrieve an accessor.
+ The mode for the resulting entity.
+ An appropriate accessor.
+
+
+
+ Access the mapped property through a Property get to get the value
+ and do nothing to set the value.
+
+
+ This is useful to allow calculated properties in the domain that will never
+ be recovered from the DB but can be used for querying.
+
+
+
+
+ Initializes a new instance of .
+
+
+
+
+ Creates an to get the value from the Property.
+
+ The to find the Property in.
+ The name of the mapped Property to get.
+
+ The to use to get the value of the Property from an
+ instance of the .
+
+ Thrown when a Property specified by the propertyName could not
+ be found in the .
+
+
+
+
+ Create a to do nothing when trying to
+ se the value of the mapped Property
+
+ The to find the mapped Property in.
+ The name of the mapped Property to set.
+
+ An instance of .
+
+
+
+
+ Responsible for accessing property values represented as a XmlElement
+ or XmlAttribute.
+
+
+
+ For nodes like "@bar"
+
+
+ Defines the strategy for getting property values out of a dom4j Node.
+
+
+ Get the declared type
+
+
+ Optional operation (return null)
+
+
+ Optional operation (return null)
+
+
+ For nodes like "@bar"
+
+
+ Optional operation (return null)
+
+
+ Optional operation (return null)
+
+
+ For nodes like "foo/@bar"
+
+
+ For nodes like "foo/@bar"
+
+
+ For nodes like "foo"
+
+
+ For nodes like "foo"
+
+
+ For nodes like "."
+
+
+ For nodes like "."
+
+
+ Lazy initializer for "dynamic-map" entity representations.
+
+
+
+ Provides the base functionality to Handle Member calls into a dynamically
+ generated NHibernate Proxy.
+
+
+ This could be an extension point later if the .net framework ever gets a Proxy
+ class that is similar to the java.lang.reflect.Proxy or if a library similar
+ to cglib was made in .net.
+
+
+
+
+ Perform an ImmediateLoad of the actual object for the Proxy.
+
+
+ Thrown when the Proxy has no Session or the Session is closed or disconnected.
+
+
+
+
+ Return the Underlying Persistent Object, initializing if necessary.
+
+ The Persistent Object this proxy is Proxying.
+
+
+
+ Return the Underlying Persistent Object in a given , or null.
+
+ The Session to get the object from.
+ The Persistent Object this proxy is Proxying, or .
+
+
+
+
+
+ Get the entity name
+
+
+
+
+
+
+
+
+
+
+
+
+ If this is returned by Invoke then the subclass needs to Invoke the
+ method call against the object that is being proxied.
+
+
+
+
+ Create a LazyInitializer to handle all of the Methods/Properties that are called
+ on the Proxy.
+
+ The entityName
+ The Id of the Object we are Proxying.
+ The ISession this Proxy is in.
+
+
+
+ Perform an ImmediateLoad of the actual object for the Proxy.
+
+
+ Thrown when the Proxy has no Session or the Session is closed or disconnected.
+
+
+
+
+ Return the Underlying Persistent Object, initializing if necessary.
+
+ The Persistent Object this proxy is Proxying.
+
+
+
+ Return the Underlying Persistent Object in a given , or null.
+
+ The Session to get the object from.
+ The Persistent Object this proxy is Proxying, or .
+
+
+
+
+
+
+
+
+ Proxy for "dynamic-map" entity representations.
+
+
+
+ A marker interface so NHibernate can know if it is dealing with
+ an object that is a Proxy.
+
+
+
+ This interface should not be implemented by anything other than
+ the Dynamically generated Proxy. If it is implemented by a class then
+ NHibernate will think that class is a Proxy and will not work.
+
+
+ It has to be public scope because
+ the Proxies are created in a separate DLL than NHibernate.
+
+
+
+
+ Get the underlying lazy initialization handler.
+
+
+ Contract for run-time, proxy-based lazy initialization proxies.
+
+
+ Called immediately after instantiation of this factory.
+
+ The name of the entity for which this factory should generate proxies.
+
+
+ The entity class for which to generate proxies; not always the same as the entityName.
+
+
+ The interfaces to expose in the generated proxy;
+ is already included in this collection.
+
+
+ Reference to the identifier getter method; invocation on this method should not force initialization
+
+
+ Reference to the identifier setter method; invocation on this method should not force initialization
+
+
+ For composite identifier types, a reference to
+ the type of the identifier
+ property; again accessing the id should generally not cause
+ initialization - but need to bear in mind key-many-to-one
+ mappings.
+
+ Indicates a problem completing post
+
+ Essentially equivalent to constructor injection, but contracted
+ here via interface.
+
+
+
+
+ Create a new proxy
+
+ The id value for the proxy to be generated.
+ The session to which the generated proxy will be associated.
+ The generated proxy.
+ Indicates problems generating requested proxy.
+
+
+ Lazy initializer for POCOs
+
+
+
+ Adds all of the information into the SerializationInfo that is needed to
+ reconstruct the proxy during deserialization or to replace the proxy
+ with the instantiated target.
+
+
+ This will only be called if the Dynamic Proxy generator does not handle serialization
+ itself or delegates calls to the method GetObjectData to the LazyInitializer.
+
+
+
+
+ Invokes the method if this is something that the LazyInitializer can handle
+ without the underlying proxied object being instantiated.
+
+ The name of the method/property to Invoke.
+ The arguments to pass the method/property.
+ The proxy object that the method is being invoked on.
+
+ The result of the Invoke if the underlying proxied object is not needed. If the
+ underlying proxied object is needed then it returns the result
+ which indicates that the Proxy will need to forward to the real implementation.
+
+
+
+
+ Convenient common implementation for ProxyFactory
+
+
+
+
+ Proxeability validator.
+
+
+
+
+ Validates whether can be specified as the base class
+ (or an interface) for a dynamically-generated proxy.
+
+ The type to validate.
+
+ A collection of errors messages, if any, or if none were found.
+
+
+ When the configuration property "use_proxy_validator" is set to true(default), the result of this method
+ is used to throw a detailed exception about the proxeability of the given .
+
+
+
+
+ Validate if a single method can be intercepted by proxy.
+
+ The given method to check.
+ if the method can be intercepted by proxy.
+ otherwise.
+
+
+ This method can be used internally by the and is used
+ by to log errors when
+ a property accessor can't be intercepted by proxy.
+ The validation of property accessors is fairly enough if you ecampsulate each property.
+
+
+
+
+ Validates whether can be specified as the base class
+ (or an interface) for a dynamically-generated proxy.
+
+ The type to validate.
+
+ A collection of errors messages, if any, or if none were found.
+
+
+
+
+ NHibernateProxyHelper provides convenience methods for working with
+ objects that might be instances of Classes or the Proxied version of
+ the Class.
+
+
+
+
+ Get the class of an instance or the underlying class of a proxy (without initializing the proxy!).
+ It is almost always better to use the entity name!
+
+ The object to get the type of.
+ The Underlying Type for the object regardless of if it is a Proxy.
+
+
+
+ Get the true, underlying class of a proxied persistent class. This operation
+ will NOT initialize the proxy and thus may return an incorrect result.
+
+ a persistable object or proxy
+ guessed class of the instance
+
+ This method is approximate match for Session.bestGuessEntityName in H3.2
+
+
+
+
+ Aliases tables and fields for Sql Statements.
+
+
+ Several methods of this class take an additional
+ parameter, while their Java counterparts
+ do not. The dialect is used to correctly quote and unquote identifiers.
+ Java versions do the quoting and unquoting themselves and fail to
+ consider dialect-specific rules, such as escaping closing brackets in
+ identifiers on MS SQL 2000.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ An ANSI SQL CASE expression.
+ case when ... then ... end as ...
+
+ This class looks StringHelper.SqlParameter safe...
+
+
+ Abstract SQL case fragment renderer
+
+
+
+ An ANSI-style Join.
+
+
+
+
+
+
+
+ Sets the op
+
+ The op to set
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ An Oracle-style DECODE function.
+
+ decode(pkvalue, key1, 1, key2, 2, ..., 0)
+
+
+
+
+
+
+
+ Represents an SQL for update of ... nowait statement
+
+
+
+
+ An Informix-style (theta) Join
+
+
+
+
+ Represents an ... in (...) expression
+
+
+
+
+ Add a value to the value list. Value may be a string,
+ a , or one of special values
+ or .
+
+
+
+
+
+
+
+ An Oracle-style (theta) Join
+
+
+
+
+ This method is a bit of a hack, and assumes
+ that the column on the "right" side of the
+ join appears on the "left" side of the
+ operator, which is extremely weird if this
+ was a normal join condition, but is natural
+ for a filter.
+
+
+
+
+ A placeholder for an ADO.NET parameter in an .
+
+
+
+
+ We need to know what the position of the parameter was in a query
+ before we rearranged the query.
+ This is used only by dialects that rearrange the query, unfortunately,
+ the MS SQL 2005 dialect have to re shuffle the query (and ruin positional parameter
+ support) because the SQL 2005 and 2008 SQL dialects have a completely broken
+ support for paging, which is just a tad less important than SELECT.
+ See NH-1528
+
+
+
+
+ Generates an array of parameters for the given SqlTypes.
+
+ The number of parameters to generate.
+ An array of objects
+
+
+
+ Determines whether this instance and the specified object
+ are of the same type and have the same values.
+
+ An object to compare to this instance.
+
+ if the object equals the current instance.
+
+
+
+
+ Gets a hash code for the parameter.
+
+
+ An value for the hash code.
+
+
+
+
+ Used as a placeholder when parsing HQL or SQL queries.
+
+
+
+
+ Summary description for QueryJoinFragment.
+
+
+
+
+ Summary description for QuerySelect.
+
+
+
+
+ Certain databases don't like spaces around these operators.
+
+
+ This needs to contain both a plain string and a
+ SqlString version of the operator because the portions in
+ the WHERE clause will come in as SqlStrings since there
+ might be parameters, other portions of the clause come in
+ as strings since there are no parameters.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Adds a string containing a valid "order by" sql statement
+ to this QuerySelect
+
+ The "order by" sql statement.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Represents part of an SQL SELECT clause
+
+
+
+
+ Equivalent to ToSqlStringFragment.
+
+
+
+ In H3, it is called ToFragmentString(). It appears to be
+ functionally equivalent as ToSqlStringFragment() here.
+
+
+
+
+ The base class for all of the SqlBuilders.
+
+
+
+
+ Converts the ColumnNames and ColumnValues to a WhereFragment
+
+ The names of the Columns to Add to the WhereFragment
+ A SqlString that contains the WhereFragment
+ This just calls the overloaded ToWhereFragment() with the operator as " = " and the tableAlias null.
+
+
+
+ Converts the ColumnNames and ColumnValues to a WhereFragment
+
+ The Alias for the Table.
+ The names of the Columns to Add to the WhereFragment
+ A SqlString that contains the WhereFragment
+ This defaults the op to " = "
+
+
+
+ Converts the ColumnNames and ColumnValues to a WhereFragment
+
+ The names of the Columns to Add to the WhereFragment
+ The operator to use between the names & values. For example " = " or "!="
+ A SqlString that contains the WhereFragment
+
+
+
+ Converts the ColumnNames and ColumnValues to a WhereFragment
+
+ The Alias for the Table.
+ The names of the Columns to Add to the WhereFragment
+ The operator to use between the names & values. For example " = " or "!="
+ A SqlString that contains the WhereFragment
+
+
+
+ A class that builds an DELETE sql statement.
+
+
+
+
+ Sets the IdentityColumn for the DELETE sql to use.
+
+ An array of the column names for the Property
+ The IType of the Identity Property.
+ The SqlDeleteBuilder.
+
+
+
+ Sets the VersionColumn for the DELETE sql to use.
+
+ An array of the column names for the Property
+ The IVersionType of the Version Property.
+ The SqlDeleteBuilder.
+
+
+
+ Adds the columns for the Type to the WhereFragment
+
+ The names of the columns to add.
+ The IType of the property.
+ The operator to put between the column name and value.
+ The SqlDeleteBuilder
+
+
+
+ Adds a string to the WhereFragement
+
+ A well formed sql statement with no parameters.
+ The SqlDeleteBuilder
+
+
+
+ Builds a SELECT SQL statement.
+
+
+
+
+ Sets the text that should appear after the FROM
+
+ The fromClause to set
+ The SqlSelectBuilder
+
+
+
+ Sets the text that should appear after the FROM
+
+ The name of the Table to get the data from
+ The Alias to use for the table name.
+ The SqlSelectBuilder
+
+
+
+ Sets the text that should appear after the FROM
+
+ The fromClause in a SqlString
+ The SqlSelectBuilder
+
+
+
+ Sets the text that should appear after the ORDER BY.
+
+ The orderByClause to set
+ The SqlSelectBuilder
+
+
+
+ Sets the text that should appear after the GROUP BY.
+
+ The groupByClause to set
+ The SqlSelectBuilder
+
+
+
+ Sets the SqlString for the OUTER JOINs.
+
+
+ All of the Sql needs to be included in the SELECT. No OUTER JOINS will automatically be
+ added.
+
+ The outerJoinsAfterFrom to set
+ The outerJoinsAfterWhere to set
+ The SqlSelectBuilder
+
+
+
+ Sets the text for the SELECT
+
+ The selectClause to set
+ The SqlSelectBuilder
+
+
+
+ Sets the text for the SELECT
+
+ The selectClause to set
+ The SqlSelectBuilder
+
+
+
+ Sets the criteria to use for the WHERE. It joins all of the columnNames together with an AND.
+
+
+ The names of the columns
+ The Hibernate Type
+ The SqlSelectBuilder
+
+
+
+ Sets the prebuilt SqlString to the Where clause
+
+ The SqlString that contains the sql and parameters to add to the WHERE
+ This SqlSelectBuilder
+
+
+
+ Sets the criteria to use for the WHERE. It joins all of the columnNames together with an AND.
+
+
+ The names of the columns
+ The Hibernate Type
+ The SqlSelectBuilder
+
+
+
+ Sets the prebuilt SqlString to the Having clause
+
+ The SqlString that contains the sql and parameters to add to the HAVING
+ This SqlSelectBuilder
+
+
+
+ ToSqlString() is named ToStatementString() in H3
+
+
+
+
+
+
+
+
+ Summary description for SqlSimpleSelectBuilder.
+
+
+
+
+
+
+
+
+
+
+
+ Adds a columnName to the SELECT fragment.
+
+ The name of the column to add.
+ The SqlSimpleSelectBuilder
+
+
+
+ Adds a columnName and its Alias to the SELECT fragment.
+
+ The name of the column to add.
+ The alias to use for the column
+ The SqlSimpleSelectBuilder
+
+
+
+ Adds an array of columnNames to the SELECT fragment.
+
+ The names of the columns to add.
+ The SqlSimpleSelectBuilder
+
+
+
+ Adds an array of columnNames with their Aliases to the SELECT fragment.
+
+ The names of the columns to add.
+ The aliases to use for the columns
+ The SqlSimpleSelectBuilder
+
+
+
+ Gets the Alias that should be used for the column
+
+ The name of the column to get the Alias for.
+ The Alias if one exists, null otherwise
+
+
+
+ Sets the IdentityColumn for the SELECT sql to use.
+
+ An array of the column names for the Property
+ The IType of the Identity Property.
+ The SqlSimpleSelectBuilder.
+
+
+
+ Sets the VersionColumn for the SELECT sql to use.
+
+ An array of the column names for the Property
+ The IVersionType of the Version Property.
+ The SqlSimpleSelectBuilder.
+
+
+
+ Set the Order By fragment of the Select Command
+
+ The OrderBy fragment. It should include the SQL "ORDER BY"
+ The SqlSimpleSelectBuilder
+
+
+
+ Adds the columns for the Type to the WhereFragment
+
+ The names of the columns to add.
+ The IType of the property.
+ The operator to put between the column name and value.
+ The SqlSimpleSelectBuilder
+
+
+
+
+
+
+ This is a non-modifiable SQL statement that is ready to be prepared
+ and sent to the Database for execution.
+
+
+
+ If you need to modify this object pass it to a and
+ get a new object back from it.
+
+
+
+
+
+ Appends the SqlString parameter to the end of the current SqlString to create a
+ new SqlString object.
+
+ The SqlString to append.
+ A new SqlString object.
+
+ A SqlString object is immutable so this returns a new SqlString. If multiple Appends
+ are called it is better to use the SqlStringBuilder.
+
+
+
+
+ Appends the string parameter to the end of the current SqlString to create a
+ new SqlString object.
+
+ The string to append.
+ A new SqlString object.
+
+ A SqlString object is immutable so this returns a new SqlString. If multiple Appends
+ are called it is better to use the SqlStringBuilder.
+
+
+
+
+ Compacts the SqlString into the fewest parts possible.
+
+ A new SqlString.
+
+ Combines all SqlParts that are strings and next to each other into
+ one SqlPart.
+
+
+
+
+ Determines whether the end of this instance matches the specified String.
+
+ A string to seek at the end.
+ if the end of this instance matches value; otherwise,
+
+
+
+ Replaces all occurrences of a specified in this instance,
+ with another specified .
+
+ A String to be replaced.
+ A String to replace all occurrences of oldValue.
+
+ A new SqlString with oldValue replaced by the newValue. The new SqlString is
+ in the compacted form.
+
+
+
+
+ Determines whether the beginning of this SqlString matches the specified System.String,
+ using case-insensitive comparison.
+
+ The System.String to seek
+ true if the SqlString starts with the value.
+
+
+
+ Retrieves a substring from this instance. The substring starts at a specified character position.
+
+ The starting character position of a substring in this instance.
+
+ A new SqlString to the substring that begins at startIndex in this instance.
+
+
+ If the startIndex is greater than the length of the SqlString then is returned.
+
+
+
+
+ Returns the index of the first occurrence of , case-insensitive.
+
+ Text to look for in the . Must be in lower
+ case.
+
+ The text must be located entirely in a string part of the .
+ Searching for "a ? b" in an consisting of
+ "a ", Parameter, " b" will result in no matches.
+
+ The index of the first occurrence of , or -1
+ if not found.
+
+
+
+ Removes all occurrences of white space characters from the beginning and end of this instance.
+
+
+ A new SqlString equivalent to this instance after white space characters
+ are removed from the beginning and end.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns the SqlString in a string where it looks like
+ SELECT col1, col2 FROM table WHERE col1 = ?
+
+
+ The question mark is used as the indicator of a parameter because at
+ this point we are not using the specific provider so we don't know
+ how that provider wants our parameters formatted.
+
+ A provider-neutral version of the CommandText
+
+
+
+ Returns substring of this SqlString starting with the specified
+ . If the text is not found, returns an
+ empty, not-null SqlString.
+
+
+ The method performs case-insensitive comparison, so the
+ passed should be in lower case.
+
+
+
+
+ Parse SQL in and create a SqlString representing it.
+
+
+ Parameter marks in single quotes will be correctly skipped, but otherwise the
+ lexer is very simple and will not parse double quotes or escape sequences
+ correctly, for example.
+
+
+
+
+ Gets the number of SqlParts contained in this SqlString.
+
+ The number of SqlParts contained in this SqlString.
+
+
+
+ The SqlStringBuilder is used to construct a SqlString.
+
+
+
+ The SqlString is a nonmutable class so it can't have sql parts added
+ to it. Instead this class should be used to generate a new SqlString.
+ The SqlStringBuilder is to SqlString what the StringBuilder is to
+ a String.
+
+
+ This is different from the original version of SqlString because this does not
+ hold the sql string in the form of "column1=@column1" instead it uses an array to
+ build the sql statement such that
+ object[0] = "column1="
+ object[1] = ref to column1 parameter
+
+
+ What this allows us to do is to delay the generating of the parameter for the sql
+ until the very end - making testing dialect indifferent. Right now all of our test
+ to make sure the correct sql is getting built are specific to MsSql2000Dialect.
+
+
+
+
+
+ Create an empty StringBuilder with the default capacity.
+
+
+
+
+ Create a StringBuilder with a specific capacity.
+
+ The number of parts expected.
+
+
+
+ Create a StringBuilder to modify the SqlString
+
+ The SqlString to modify.
+
+
+
+ Adds the preformatted sql to the SqlString that is being built.
+
+ The string to add.
+ This SqlStringBuilder
+
+
+
+ Adds the Parameter to the SqlString that is being built.
+ The correct operator should be added before the Add(Parameter) is called
+ because there will be no operator ( such as "=" ) placed between the last Add call
+ and this Add call.
+
+ The Parameter to add.
+ This SqlStringBuilder
+
+
+
+ Attempts to discover what type of object this is and calls the appropriate
+ method.
+
+ The part to add when it is not known if it is a Parameter, String, or SqlString.
+ This SqlStringBuilder.
+ Thrown when the part is not a Parameter, String, or SqlString.
+
+
+
+ Adds an existing SqlString to this SqlStringBuilder. It does NOT add any
+ prefix, postfix, operator, or wrap around this. It is equivalent to just
+ adding a string.
+
+ The SqlString to add to this SqlStringBuilder
+ This SqlStringBuilder
+ This calls the overloaded Add(sqlString, null, null, null, false)
+
+
+
+ Adds an existing SqlString to this SqlStringBuilder
+
+ The SqlString to add to this SqlStringBuilder
+ String to put at the beginning of the combined SqlString.
+ How these Statements should be junctioned "AND" or "OR"
+ String to put at the end of the combined SqlString.
+ This SqlStringBuilder
+
+ This calls the overloaded Add method with an array of SqlStrings and wrapStatment=false
+ so it will not be wrapped with a "(" and ")"
+
+
+
+
+ Adds existing SqlStrings to this SqlStringBuilder
+
+ The SqlStrings to combine.
+ String to put at the beginning of the combined SqlString.
+ How these SqlStrings should be junctioned "AND" or "OR"
+ String to put at the end of the combined SqlStrings.
+ This SqlStringBuilder
+ This calls the overloaded Add method with wrapStatement=true
+
+
+
+ Adds existing SqlStrings to this SqlStringBuilder
+
+ The SqlStrings to combine.
+ String to put at the beginning of the combined SqlStrings.
+ How these SqlStrings should be junctioned "AND" or "OR"
+ String to put at the end of the combined SqlStrings.
+ Wrap each SqlStrings with "(" and ")"
+ This SqlStringBuilder
+
+
+
+ Insert a string containing sql into the SqlStringBuilder at the specified index.
+
+ The zero-based index at which the sql should be inserted.
+ The string containing sql to insert.
+ This SqlStringBuilder
+
+
+
+ Insert a Parameter into the SqlStringBuilder at the specified index.
+
+ The zero-based index at which the Parameter should be inserted.
+ The Parameter to insert.
+ This SqlStringBuilder
+
+
+
+ Removes the string or Parameter at the specified index.
+
+ The zero-based index of the item to remove.
+ This SqlStringBuilder
+
+
+
+ Converts the mutable SqlStringBuilder into the immutable SqlString.
+
+ The SqlString that was built.
+
+
+
+ Gets the number of SqlParts in this SqlStringBuilder.
+
+
+ The number of SqlParts in this SqlStringBuilder.
+
+
+
+
+ Gets or Sets the element at the index
+
+ Returns a string or Parameter.
+
+
+
+
+ A class that builds an UPDATE sql statement.
+
+
+
+
+ Add a column with a specific value to the UPDATE sql
+
+ The name of the Column to add.
+ The value to set for the column.
+ The NHibernateType to use to convert the value to a sql string.
+ The SqlUpdateBuilder.
+
+
+
+ Add a column with a specific value to the UPDATE sql
+
+ The name of the Column to add.
+ A valid sql string to set as the value of the column.
+ The SqlUpdateBuilder.
+
+
+
+ Adds columns with a specific value to the UPDATE sql
+
+ The names of the Columns to add.
+ A valid sql string to set as the value of the column. This value is assigned to each column.
+ The SqlUpdateBuilder.
+
+
+
+ Adds the Property's columns to the UPDATE sql
+
+ An array of the column names for the Property
+ The IType of the property.
+ The SqlUpdateBuilder.
+
+
+
+ Adds the Property's updatable columns to the UPDATE sql
+
+ An array of the column names for the Property
+ An array of updatable column flags. If this array is null, all supplied columns are considered updatable.
+ The IType of the property.
+ The SqlUpdateBuilder.
+
+
+
+ Sets the IdentityColumn for the UPDATE sql to use.
+
+ An array of the column names for the Property
+ The IType of the Identity Property.
+ The SqlUpdateBuilder.
+
+
+
+ Sets the VersionColumn for the UPDATE sql to use.
+
+ An array of the column names for the Property
+ The IVersionType of the Version Property.
+ The SqlUpdateBuilder.
+
+
+
+ Adds the columns for the Type to the WhereFragment
+
+ The names of the columns to add.
+ The IType of the property.
+ The operator to put between the column name and value.
+ The SqlUpdateBuilder
+
+
+
+ Adds a string to the WhereFragment
+
+ A well formed sql string with no parameters.
+ The SqlUpdateBuilder
+
+
+
+
+
+
+ Given an SQL SELECT statement, parse it to extract clauses starting with
+ FROM, up to and not including ORDER BY (known collectively
+ as a subselect clause).
+
+
+
+
+ Contains the subselect clause as it is being built.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The parts of an to extract the subselect clause from.
+
+
+
+ Looks for a FROM clause in the
+ and adds the clause to the result if found.
+
+ A or a .
+ if the part contained a FROM clause,
+ otherwise.
+
+
+
+ Returns the subselect clause of the statement
+ being processed.
+
+ An containing
+ the subselect clause of the original SELECT
+ statement.
+
+
+
+ Allows us to construct SQL WHERE fragments
+
+
+
+
+ Describes the details of a with the
+ information required to to generate an .
+
+
+ This can store the length of the string that the can hold.
+ If no value is provided for the length then the Driver is responsible for
+ setting the properties on the correctly.
+
+
+
+
+ This is the base class that adds information to the
+ for the and
+ to use.
+
+
+
+ The uses the SqlType to get enough
+ information to create an .
+
+
+ The use the SqlType to convert the
+ to the appropriate sql type for SchemaExport.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The length of the string the should hold.
+
+
+
+ Describes the details of a with the
+ information required to generate an .
+
+
+ This can store the length of the string that the can hold.
+ If no value is provided for the length then the Driver is responsible for
+ setting the properties on the correctly.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The length of the string the should hold.
+
+
+
+ Describes the details of a that is stored in
+ a BLOB column with the information required to generate
+ an .
+
+
+
+ This can store the length of the binary data that the can hold.
+ If no value is provided for the length then the Driver is responsible for
+ setting the properties on the correctly.
+
+
+ This is only needed by DataProviders (SqlClient) that need to specify a Size for the
+ IDbDataParameter. Most DataProvider(Oralce) don't need to set the Size so a
+ BinarySqlType would work just fine.
+
+
+
+
+
+ Describes the details of a with the
+ information required to to generate an .
+
+
+ This can store the binary data that the can hold.
+ If no value is provided for the length then the Driver is responsible for
+ setting the properties on the correctly.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The length of the binary data the should hold
+
+
+
+ SqlTypeFactory provides Singleton access to the SqlTypes.
+
+
+
+
+ Describes the details of a that is stored in
+ a CLOB column with the information required to generate
+ an .
+
+
+
+ This can store the length of the binary data that the can hold.
+ If no value is provided for the length then the Driver is responsible for
+ setting the properties on the correctly.
+
+
+ This is only needed by DataProviders (SqlClient) that need to specify a Size for the
+ IDbDataParameter. Most DataProvider(Oralce) don't need to set the Size so a
+ StringSqlType would work just fine.
+
+
+
+
+
+ Describes the details of a with the
+ information required to generate an .
+
+
+ This can store the length of the string that the can hold.
+ If no value is provided for the length then the Driver is responsible for
+ setting the properties on the correctly.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The length of the string the should hold.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The length of the string the should hold.
+
+
+
+ Describes the details of a with the
+ information required to to generate an .
+
+
+ This can store the length of the string that the can hold.
+ If no value is provided for the length then the Driver is responsible for
+ setting the properties on the correctly.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The length of the string the should hold.
+
+
+
+ Statistics for a particular "category" (a named entity,
+ collection role, second level cache region or query).
+
+
+
+ Collection related statistics
+
+
+ Entity related statistics
+
+
+
+ Information about the first-level (session) cache for a particular session instance
+
+
+
+ Get the number of entity instances associated with the session
+
+
+ Get the number of collection instances associated with the session
+
+
+ Get the set of all EntityKeys.
+
+
+ Get the set of all CollectionKeys.
+
+
+
+ Statistics for a particular .
+ Beware of metrics, they are dependent of the precision:
+
+
+
+ Reset all statistics
+
+
+ Find entity statistics per name
+ entity name
+ EntityStatistics object
+
+
+ Get collection statistics per role
+ collection role
+ CollectionStatistics
+
+
+ Second level cache statistics per region
+ region name
+ SecondLevelCacheStatistics
+
+
+ Query statistics from query string (HQL or SQL)
+ query string
+ QueryStatistics
+
+
+ log in info level the main statistics
+
+
+ Global number of entity deletes
+
+
+ Global number of entity inserts
+
+
+ Global number of entity loads
+
+
+ Global number of entity fetchs
+
+
+ Global number of entity updates
+
+
+ Global number of executed queries
+
+
+ The of the slowest query.
+
+
+ The query string for the slowest query.
+
+
+ The global number of cached queries successfully retrieved from cache
+
+
+ The global number of cached queries *not* found in cache
+
+
+ The global number of cacheable queries put in cache
+
+
+ Get the global number of flush executed by sessions (either implicit or explicit)
+
+
+
+ Get the global number of connections asked by the sessions
+ (the actual number of connections used may be much smaller depending
+ whether you use a connection pool or not)
+
+
+
+ Global number of cacheable entities/collections successfully retrieved from the cache
+
+
+ Global number of cacheable entities/collections not found in the cache and loaded from the database.
+
+
+ Global number of cacheable entities/collections put in the cache
+
+
+ Global number of sessions closed
+
+
+ Global number of sessions opened
+
+
+ Global number of collections loaded
+
+
+ Global number of collections fetched
+
+
+ Global number of collections updated
+
+
+ Global number of collections removed
+
+
+ Global number of collections recreated
+
+
+ Start time
+
+
+ Enable/Disable statistics logs (this is a dynamic parameter)
+
+
+ All executed query strings
+
+
+ The names of all entities
+
+
+ The names of all collection roles
+
+
+ Get all second-level cache region names
+
+
+ The number of transactions we know to have been successful
+
+
+ The number of transactions we know to have completed
+
+
+ The number of prepared statements that were acquired
+
+
+ The number of prepared statements that were released
+
+
+ The number of StaleObjectStateExceptions that occurred
+
+
+
+ The OperationThreshold to a value greater than to enable logging of long running operations.
+
+ Operations that exceed the level will be logged.
+
+
+ Statistics SPI for the NHibernate core
+
+
+ Query statistics (HQL and SQL)
+ Note that for a cached query, the cache miss is equals to the db count
+
+
+ Add statistics report of a DB query
+ rows count returned
+ time taken
+
+
+ Second level cache statistics of a specific region
+
+
+
+ Not ported yet
+
+
+
+
+ Not ported yet
+
+
+
+
+ Not ported yet
+
+
+
+
+ Not ported yet
+
+
+
+
+ Contract for delegates responsible for managing connection used by the hbm2ddl tools.
+
+
+
+
+ Prepare the helper for use.
+
+
+
+
+ Release any resources held by this helper.
+
+
+
+
+ Get a reference to the connection we are using.
+
+
+
+
+ A implementation based on an internally
+ built and managed .
+
+
+
+
+ Generates ddl to export table schema for a configured Configuration to the database
+
+
+ This Class can be used directly or the command line wrapper NHibernate.Tool.hbm2ddl.exe can be
+ used when a dll can not be directly used.
+
+
+
+
+ Create a schema exported for a given Configuration
+
+ The NHibernate Configuration to generate the schema from.
+
+
+
+ Create a schema exporter for the given Configuration, with the given
+ database connection properties
+
+ The NHibernate Configuration to generate the schema from.
+ The Properties to use when connecting to the Database.
+
+
+
+ Set the output filename. The generated script will be written to this file
+
+ The name of the file to output the ddl to.
+ The SchemaExport object.
+
+
+
+ Set the end of statement delimiter
+
+ The end of statement delimiter.
+ The SchemaExport object.
+
+
+
+ Run the schema creation script
+
+ if the ddl should be outputted in the Console.
+ if the ddl should be executed against the Database.
+
+ This is a convenience method that calls and sets
+ the justDrop parameter to false.
+
+
+
+
+ Run the drop schema script
+
+ if the ddl should be outputted in the Console.
+ if the ddl should be executed against the Database.
+
+ This is a convenience method that calls and sets
+ the justDrop parameter to true.
+
+
+
+
+ Executes the Export of the Schema in the given connection
+
+ if the ddl should be outputted in the Console.
+ if the ddl should be executed against the Database.
+ if only the ddl to drop the Database objects should be executed.
+
+ The connection to use when executing the commands when export is .
+ Must be an opened connection. The method doesn't close the connection.
+
+ The writer used to output the generated schema
+
+ This method allows for both the drop and create ddl script to be executed.
+ This overload is provided mainly to enable use of in memory databases.
+ It does NOT close the given connection!
+
+
+
+
+ Executes the Export of the Schema.
+
+ if the ddl should be outputted in the Console.
+ if the ddl should be executed against the Database.
+ if only the ddl to drop the Database objects should be executed.
+
+ This method allows for both the drop and create ddl script to be executed.
+
+
+
+
+ Execute the schema updates
+
+
+
+
+ Execute the schema updates
+
+ The action to write the each schema line.
+ Commit the script to DB
+
+
+
+ Returns a List of all Exceptions which occured during the export.
+
+
+
+
+ Perform the validations.
+
+
+
+ A implementation based on an explicitly supplied
+ connection.
+
+
+
+
+ A implementation based on a provided
+ . Essentially, ensures that the connection
+ gets cleaned up, but that the provider itself remains usable since it
+ was externally provided to us.
+
+
+
+
+ An abstract factory for instances.
+ Concrete implementations are specified by transaction.factory_class
+ configuration property.
+
+ Implementors must be threadsafe and should declare a public default constructor.
+
+
+
+
+
+ Configure from the given properties
+
+
+
+
+
+ Create a new transaction and return it without starting it.
+
+
+
+
+ This is used as a marker interface for the different
+ transaction context required for each session
+
+
+
+
+ Wraps an ADO.NET to implement
+ the interface.
+
+
+
+
+ Allows the application to define units of work, while maintaining abstraction from the
+ underlying transaction implementation
+
+
+ A transaction is associated with a ISession and is usually instanciated by a call to
+ ISession.BeginTransaction(). A single session might span multiple transactions since
+ the notion of a session (a conversation between the application and the datastore) is of
+ coarser granularity than the notion of a transaction. However, it is intended that there be
+ at most one uncommitted ITransaction associated with a particular ISession
+ at a time. Implementors are not intended to be threadsafe.
+
+
+
+
+ Begin the transaction with the default isolation level.
+
+
+
+
+ Begin the transaction with the specified isolation level.
+
+ Isolation level of the transaction
+
+
+
+ Flush the associated ISession and end the unit of work.
+
+
+ This method will commit the underlying transaction if and only if the transaction
+ was initiated by this object.
+
+
+
+
+ Force the underlying transaction to roll back.
+
+
+
+
+ Enlist the in the current Transaction.
+
+ The to enlist.
+
+ It is okay for this to be a no op implementation.
+
+
+
+
+ Register a user synchronization callback for this transaction.
+
+ The callback to register.
+
+
+
+ Is the transaction in progress
+
+
+
+
+ Was the transaction rolled back or set to rollback only?
+
+
+
+
+ Was the transaction successfully committed?
+
+
+ This method could return even after successful invocation of Commit()
+
+
+
+
+ Initializes a new instance of the class.
+
+ The the Transaction is for.
+
+
+
+ Enlist the in the current .
+
+ The to enlist in this Transaction.
+
+
+ This takes care of making sure the 's Transaction property
+ contains the correct or if there is no
+ Transaction for the ISession - ie BeginTransaction() not called.
+
+
+ This method may be called even when the transaction is disposed.
+
+
+
+
+
+ Begins the on the
+ used by the .
+
+
+ Thrown if there is any problems encountered while trying to create
+ the .
+
+
+
+
+ Commits the by flushing the
+ and committing the .
+
+
+ Thrown if there is any exception while trying to call Commit() on
+ the underlying .
+
+
+
+
+ Rolls back the by calling the method Rollback
+ on the underlying .
+
+
+ Thrown if there is any exception while trying to call Rollback() on
+ the underlying .
+
+
+
+
+ A flag to indicate if Disose() has been called.
+
+
+
+
+ Finalizer that ensures the object is correctly disposed of.
+
+
+
+
+ Takes care of freeing the managed and unmanaged resources that
+ this class is responsible for.
+
+
+
+
+ Takes care of freeing the managed and unmanaged resources that
+ this class is responsible for.
+
+ Indicates if this AdoTransaction is being Disposed of or Finalized.
+
+ If this AdoTransaction is being Finalized (isDisposing==false) then make sure not
+ to call any methods that could potentially bring this AdoTransaction back to life.
+
+
+
+
+ Gets a indicating if the transaction was rolled back.
+
+
+ if the had Rollback called
+ without any exceptions.
+
+
+
+
+ Gets a indicating if the transaction was committed.
+
+
+ if the had Commit called
+ without any exceptions.
+
+
+
+
+ A mimic to the javax.transaction.Synchronization callback to enable
+
+
+
+
+ Implementors define a strategy for transforming criteria query
+ results into the actual application-visible query result list.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Result transformer that allows to transform a result to
+ a user specified class which will be populated via setter
+ methods or fields matching the alias names.
+
+
+
+ IList resultWithAliasedBean = s.CreateCriteria(typeof(Enrollment))
+ .CreateAlias("Student", "st")
+ .CreateAlias("Course", "co")
+ .SetProjection( Projections.ProjectionList()
+ .Add( Projections.Property("co.Description"), "CourseDescription" )
+ )
+ .SetResultTransformer( new AliasToBeanResultTransformer(typeof(StudentDTO)) )
+ .List();
+
+ StudentDTO dto = (StudentDTO)resultWithAliasedBean[0];
+
+
+
+
+
+ Tranforms each result row from a tuple into a , such that what
+ you end up with is a of .
+
+
+
+
+ Each row of results is a map () from alias to values/entities
+
+
+
+ Each row of results is a
+
+
+
+ Creates a resulttransformer that will inject aliased values into instances
+ of via property methods or fields.
+
+
+
+ Support for tuplizers relating to components.
+
+
+
+ Defines further responsibilities regarding tuplization based on
+ a mapped components.
+
+
+ ComponentTuplizer implementations should have the following constructor signature:
+ (org.hibernate.mapping.Component)
+
+
+
+
+ A tuplizer defines the contract for things which know how to manage
+ a particular representation of a piece of data, given that
+ representation's (the entity-mode
+ essentially defining which representation).
+
+
+ If that given piece of data is thought of as a data structure, then a tuplizer
+ is the thing which knows how to:
+
+ create such a data structure appropriately
+ extract values from and inject values into such a data structure
+
+
+ For example, a given piece of data might be represented as a POCO class.
+ Here, it's representation and entity-mode is POCO. Well a tuplizer for POCO
+ entity-modes would know how to:
+
+ create the data structure by calling the POCO's constructor
+ extract and inject values through getters/setter, or by direct field access, etc
+
+
+ That same piece of data might also be represented as a DOM structure, using
+ the tuplizer associated with the XML entity-mode, which would generate instances
+ of as the data structure and know how to access the
+ values as either nested s or as s.
+
+
+
+
+
+
+ Extract the current values contained on the given entity.
+
+ The entity from which to extract values.
+ The current property values.
+ HibernateException
+
+
+ Inject the given values into the given entity.
+ The entity.
+ The values to be injected.
+
+
+ Extract the value of a particular property from the given entity.
+ The entity from which to extract the property value.
+ The index of the property for which to extract the value.
+ The current value of the given property on the given entity.
+
+
+ Generate a new, empty entity.
+ The new, empty entity instance.
+
+
+
+ Is the given object considered an instance of the the entity (acconting
+ for entity-mode) managed by this tuplizer.
+
+ The object to be checked.
+ True if the object is considered as an instance of this entity within the given mode.
+
+
+
+ Return the pojo class managed by this tuplizer.
+
+ The persistent class.
+
+ Need to determine how to best handle this for the Tuplizers for EntityModes
+ other than POCO.
+
+
+
+ Retrieve the current value of the parent property.
+
+ The component instance from which to extract the parent property value.
+
+ The current value of the parent property.
+
+
+ Set the value of the parent property.
+ The component instance on which to set the parent.
+ The parent to be set on the component.
+ The current session factory.
+
+
+ Does the component managed by this tuuplizer contain a parent property?
+ True if the component does contain a parent property; false otherwise.
+
+
+ This method does not populate the component parent
+
+
+
+ Handles mapping s to ComponentTuplizers.
+
+ Most of the handling is really in the super class; here we just create
+ the tuplizers and add them to the superclass
+
+
+
+ Centralizes handling of to mappings.
+
+
+ Given a supposed instance of an entity/component, guess its entity mode.
+ The supposed instance of the entity/component.
+ The guessed entity mode.
+
+
+
+ Locate the contained tuplizer responsible for the given entity-mode. If
+ no such tuplizer is defined on this mapping, then return null.
+
+ The entity-mode for which the caller wants a tuplizer.
+ The tuplizer, or null if not found.
+
+
+ Locate the tuplizer contained within this mapping which is responsible
+ for the given entity-mode. If no such tuplizer is defined on this
+ mapping, then an exception is thrown.
+
+
+ The entity-mode for which the caller wants a tuplizer.
+
+ The tuplizer.
+
+ HibernateException Unable to locate the requested tuplizer.
+
+
+ Centralizes metamodel information about a component.
+
+
+
+ A specific to the dynamic-map entity mode.
+
+
+
+
+ A specific to the POCO entity mode.
+
+
+
+ Support for tuplizers relating to entities.
+
+
+
+ Defines further responsibilities regarding tuplization based on a mapped entity.
+
+
+ EntityTuplizer implementations should have the following constructor signature:
+ (, )
+
+
+
+ Create an entity instance initialized with the given identifier.
+ The identifier value for the entity to be instantiated.
+ The instantiated entity.
+
+
+ Extract the identifier value from the given entity.
+ The entity from which to extract the identifier value.
+ The identifier value.
+
+
+
+ Inject the identifier value into the given entity.
+
+ The entity to inject with the identifier value.
+ The value to be injected as the identifier.
+ Has no effect if the entity does not define an identifier property
+
+
+
+ Inject the given identifier and version into the entity, in order to
+ "roll back" to their original values.
+
+
+ The identifier value to inject into the entity.
+ The version value to inject into the entity.
+
+
+ Extract the value of the version property from the given entity.
+ The entity from which to extract the version value.
+ The value of the version property, or null if not versioned.
+
+
+ Inject the value of a particular property.
+ The entity into which to inject the value.
+ The property's index.
+ The property value to inject.
+
+
+ Inject the value of a particular property.
+ The entity into which to inject the value.
+ The name of the property.
+ The property value to inject.
+
+
+ Extract the values of the insertable properties of the entity (including backrefs)
+ The entity from which to extract.
+ a map of instances being merged to merged instances
+ The session in which the resuest is being made.
+ The insertable property values.
+
+
+ Extract the value of a particular property from the given entity.
+ The entity from which to extract the property value.
+ The name of the property for which to extract the value.
+ The current value of the given property on the given entity.
+
+
+ Called just after the entities properties have been initialized.
+ The entity being initialized.
+ Are defined lazy properties currently unfecthed
+ The session initializing this entity.
+
+
+
+ Generates an appropriate proxy representation of this entity for this entity-mode.
+
+ The id of the instance for which to generate a proxy.
+ The session to which the proxy should be bound.
+ The generate proxies.
+
+
+ Does the given entity instance have any currently uninitialized lazy properties?
+ The entity to be check for uninitialized lazy properties.
+ True if uninitialized lazy properties were found; false otherwise.
+
+
+
+ Does the class managed by this tuplizer implement
+ the interface.
+
+ True if the ILifecycle interface is implemented; false otherwise.
+
+
+
+ Does the class managed by this tuplizer implement
+ the interface.
+
+ True if the IValidatable interface is implemented; false otherwise.
+
+
+ Returns the java class to which generated proxies will be typed.
+ The .NET class to which generated proxies will be typed
+
+
+ Is it an instrumented POCO?
+
+
+ Does this entity, for this mode, present a possibility for proxying?
+ True if this tuplizer can generate proxies for this entity.
+
+
+ Constructs a new AbstractEntityTuplizer instance.
+ The "interpreted" information relating to the mapped entity.
+ The parsed "raw" mapping data relating to the given entity.
+
+
+ Build an appropriate Getter for the given property.
+ The property to be accessed via the built Getter.
+ The entity information regarding the mapped entity owning this property.
+ An appropriate Getter instance.
+
+
+ Build an appropriate Setter for the given property.
+ The property to be accessed via the built Setter.
+ The entity information regarding the mapped entity owning this property.
+ An appropriate Setter instance.
+
+
+ Build an appropriate Instantiator for the given mapped entity.
+ The mapping information regarding the mapped entity.
+ An appropriate Instantiator instance.
+
+
+ Build an appropriate ProxyFactory for the given mapped entity.
+ The mapping information regarding the mapped entity.
+ The constructed Getter relating to the entity's id property.
+ The constructed Setter relating to the entity's id property.
+ An appropriate ProxyFactory instance.
+
+
+ Extract a component property value.
+ The component property types.
+ The component instance itself.
+ The property path for the property to be extracted.
+ The property value extracted.
+
+
+ Return the entity-mode handled by this tuplizer instance.
+
+
+ Retrieves the defined entity-name for the tuplized entity.
+
+
+
+ Retrieves the defined entity-names for any subclasses defined for this entity.
+
+
+
+
+ Handles mapping s to s.
+
+
+ Most of the handling is really in the super class; here we just create
+ the tuplizers and add them to the superclass
+
+
+
+
+ Instantiates a EntityEntityModeToTuplizerMapping based on the given
+ entity mapping and metamodel definitions.
+
+ The entity mapping definition.
+ The entity metamodel definition.
+
+
+ An specific to the POCO entity mode.
+
+
+ Contract for implementors responsible for instantiating entity/component instances.
+
+
+ Perform the requested entity instantiation.
+ The id of the entity to be instantiated.
+ An appropriately instantiated entity.
+ This form is never called for component instantiation, only entity instantiation.
+
+
+ Perform the requested instantiation.
+ The instantiated data structure.
+
+
+
+ Performs check to see if the given object is an instance of the entity
+ or component which this Instantiator instantiates.
+
+ The object to be checked.
+ True is the object does represent an instance of the underlying entity/component.
+
+
+
+ Represents a defined entity identifier property within the Hibernate
+ runtime-metamodel.
+
+
+ Author: Steve Ebersole
+
+
+
+
+ Defines the basic contract of a Property within the runtime metamodel.
+
+
+
+
+ Constructor for Property instances.
+
+ The name by which the property can be referenced within its owner.
+ The node name to use for XML-based representation of this property.
+ The Hibernate Type of this property.
+
+
+
+ Construct a non-virtual identifier property.
+
+ The name of the property representing the identifier within
+ its owning entity.
+ The node name to use for XML-based representation of this
+ property.
+ The Hibernate Type for the identifier property.
+ Is this an embedded identifier.
+ The value which, if found as the value on the identifier
+ property, represents new (i.e., un-saved) instances of the owning entity.
+ The generator to use for id value generation.
+
+
+
+ Construct a virtual IdentifierProperty.
+
+ The Hibernate Type for the identifier property.
+ Is this an embedded identifier.
+ The value which, if found as the value on the identifier
+ property, represents new (i.e., un-saved) instances of the owning entity.
+ The generator to use for id value generation.
+
+
+
+ Defines a POCO-based instantiator for use from the tuplizers.
+
+
+
+ Responsible for generation of runtime metamodel representations.
+ Makes distinction between identifier, version, and other (standard) properties.
+
+
+ Author: Steve Ebersole
+
+
+
+
+ Generates an IdentifierProperty representation of the for a given entity mapping.
+
+ The mapping definition of the entity.
+ The identifier value generator to use for this identifier.
+ The appropriate IdentifierProperty definition.
+
+
+
+ Generates a VersionProperty representation for an entity mapping given its
+ version mapping Property.
+
+ The version mapping Property.
+ Is property lazy loading currently available.
+ The appropriate VersionProperty definition.
+
+
+
+ Generate a "standard" (i.e., non-identifier and non-version) based on the given
+ mapped property.
+
+ The mapped property.
+ Is property lazy loading currently available.
+ The appropriate StandardProperty definition.
+
+
+
+ Represents a basic property within the Hibernate runtime-metamodel.
+
+
+ Author: Steve Ebersole
+
+
+
+
+ Constructs StandardProperty instances.
+
+ The name by which the property can be referenced within
+ its owner.
+ The node name to use for XML-based representation of this
+ property.
+ The Hibernate Type of this property.
+ Should this property be handled lazily?
+ Is this property an insertable value?
+ Is this property an updateable value?
+ Is this property generated in the database on insert?
+ Is this property generated in the database on update?
+ Is this property a nullable value?
+ Is this property a checkable value?
+ Is this property a versionable value?
+ The cascade style for this property's value.
+ Any fetch mode defined for this property
+
+
+
+ Represents a version property within the Hibernate runtime-metamodel.
+
+
+ Author: Steve Ebersole
+
+
+
+
+ Constructs VersionProperty instances.
+
+ The name by which the property can be referenced within
+ its owner.
+ The node name to use for XML-based representation of this
+ property.
+ The Hibernate Type of this property.
+ Should this property be handled lazily?
+ Is this property an insertable value?
+ Is this property an updateable value?
+ Is this property generated in the database on insert?
+ Is this property generated in the database on update?
+ Is this property a nullable value?
+ Is this property a checkable value?
+ Is this property a versionable value?
+ The cascade style for this property's value.
+ The value which, if found as the value of
+ this (i.e., the version) property, represents new (i.e., un-saved)
+ instances of the owning entity.
+
+
+ Logic to bind stream of byte into a VARBINARY
+
+
+
+ Superclass for mutable nullable types.
+
+
+
+
+ Superclass of single-column nullable types.
+
+
+ Maps the Property to a single column that is capable of storing nulls in it. If a .net Struct is
+ used it will be created with its unitialized value and then on Update the uninitialized value of
+ the Struct will be written to the column - not .
+
+
+
+
+ The base implementation of the interface.
+ Mapping of the built in Type hierarchy.
+
+
+
+
+ Disassembles the object into a cacheable representation.
+
+ The value to disassemble.
+ The is not used by this method.
+ optional parent entity object (needed for collections)
+ The disassembled, deep cloned state of the object
+
+ This method calls DeepCopy if the value is not null.
+
+
+
+
+ Reconstructs the object from its cached "disassembled" state.
+
+ The disassembled state from the cache
+ The is not used by this method.
+ The parent Entity object is not used by this method
+ The assembled object.
+
+ This method calls DeepCopy if the value is not null.
+
+
+
+
+ Should the parent be considered dirty, given both the old and current
+ field or element value?
+
+ The old value
+ The current value
+ The is not used by this method.
+ true if the field is dirty
+ This method uses IType.Equals(object, object) to determine the value of IsDirty.
+
+
+
+ Retrives an instance of the mapped class, or the identifier of an entity
+ or collection from a .
+
+ The that contains the values.
+
+ The names of the columns in the that contain the
+ value to populate the IType with.
+
+ the session
+ The parent Entity
+ An identifier or actual object mapped by this IType.
+
+ This method uses the IType.NullSafeGet(IDataReader, string[], ISessionImplementor, object) method
+ to Hydrate this .
+
+
+
+
+ Maps identifiers to Entities or Collections.
+
+ An identifier or value returned by Hydrate()
+ The is not used by this method.
+ The parent Entity is not used by this method.
+ The value.
+
+ There is nothing done in this method other than return the value parameter passed in.
+
+
+
+
+ Says whether the value has been modified
+
+
+
+
+ When implemented by a class, returns a deep copy of the persistent
+ state, stopping at entities and at collections.
+ A Collection element or Entity fieldThe entityMode.The session factory.A deep copy of the object.
+
+
+
+ When implemented by a class, returns the SqlTypes for the columns mapped by this IType.
+ The that uses this IType.An array of s.
+
+
+
+ When implemented by a class, returns how many columns are used to persist this type.
+ The that uses this IType.The number of columns this IType spans.MappingException
+
+
+
+
+
+
+
+
+
+ When implemented by a class, puts the value/values from the mapped
+ class into the .
+ The to put the values into.The object that contains the values.The index of the to start writing the values to.Indicates which columns are to be set.
+ Implementors should handle possibility of null values.
+ A multi-column type should be written to parameters starting from .
+
+
+
+
+ When implemented by a class, puts the value/values from the mapped
+ class into the .
+
+ The to put the values into.
+ The object that contains the values.
+ The index of the to start writing the values to.
+
+ Implementors should handle possibility of null values.
+ A multi-column type should be written to parameters starting from .
+
+
+
+
+ When implemented by a class, a representation of the value to be
+ embedded in an XML element
+ The object that contains the values.An Xml formatted string.
+
+
+
+ Gets a value indicating if the is an .
+
+ false - by default an is not an .
+
+
+
+ Gets a value indicating if the is a .
+
+ false - by default an is not a .
+
+
+
+ Gets a value indicating if the is an .
+
+ false - by default an is not an .
+
+
+
+ Gets a value indicating if the is a .
+
+ false - by default an is not a .
+
+
+
+ Gets a value indicating if the implementation is an "object" type
+
+ false - by default an is not a "object" type.
+
+
+
+ When implemented by a class, gets the value indicating if the objects
+ of this IType are mutable.
+ true if the objects mapped by this IType are mutable.
+ With respect to the referencing object...
+ Entities and Collections are considered immutable because they manage their own internal state.
+
+
+
+
+ When implemented by a class, gets the abbreviated name of the type.
+ The NHibernate type name.
+
+
+
+ When implemented by a class, gets the returned
+ by the NullSafeGet() methods.
+
+ The from the .NET framework.
+
+ This is used to establish the class of an array of this Itype
+
+
+
+
+ Initialize a new instance of the NullableType class using a
+ .
+
+ The underlying .
+ This is used when the Property is mapped to a single column.
+
+
+
+ When implemented by a class, put the value from the mapped
+ Property into to the .
+
+ The to put the value into.
+ The object that contains the value.
+ The index of the to start writing the values to.
+
+ Implementors do not need to handle possibility of null values because this will
+ only be called from after
+ it has checked for nulls.
+
+
+
+
+ When implemented by a class, gets the object in the
+ for the Property.
+
+ The that contains the value.
+ The index of the field to get the value from.
+ An object with the value from the database.
+
+
+
+ When implemented by a class, gets the object in the
+ for the Property.
+
+ The that contains the value.
+ The name of the field to get the value from.
+ An object with the value from the database.
+
+ Most implementors just call the
+ overload of this method.
+
+
+
+
+ A representation of the value to be embedded in an XML element
+
+ The object that contains the values.
+
+ An Xml formatted string.
+
+
+
+ When implemented by a class, a representation of the value to be
+ embedded in an XML element
+ The object that contains the values.An Xml formatted string.
+
+
+ This implementation forwards the call to if the parameter
+ value is not null.
+
+
+ It has been "sealed" because the Types inheriting from
+ do not need and should not override this method. All of their implementation
+ should be in .
+
+
+
+
+
+ Parse the XML representation of an instance
+
+ XML string to parse, guaranteed to be non-empty
+
+
+
+
+ When implemented by a class, puts the value/values from the mapped
+ class into the .
+
+ The to put the values into.
+ The object that contains the values.
+ The index of the to start writing the values to.
+
+ Implementors should handle possibility of null values.
+ A multi-column type should be written to parameters starting from .
+
+
+
+ This implementation forwards the call to .
+
+
+ It has been "sealed" because the Types inheriting from
+ do not need to and should not override this method. All of their implementation
+ should be in .
+
+
+
+
+
+ Puts the value from the mapped class into the .
+
+ The to put the values into.
+ The object that contains the values.
+ The index of the to write the value to.
+
+
+ This method checks to see if value is null, if it is then the value of
+ is written to the .
+
+
+ If the value is not null, then the method
+ is called and that method is responsible for setting the value.
+
+
+
+
+
+ When implemented by a class, gets an instance of the object mapped by
+ this IType from the .
+ The that contains the values
+ The names of the columns in the that contain the
+ value to populate the IType with.
+ The object mapped by this IType.
+ Implementors should handle possibility of null values.
+
+
+ This has been sealed because no other class should override it. This
+ method calls for a single value.
+ It only takes the first name from the string[] names parameter - that is a
+ safe thing to do because a Nullable Type only has one field.
+
+
+
+
+ Extracts the values of the fields from the DataReader
+
+ The DataReader positioned on the correct record
+ An array of field names.
+ The value off the field from the DataReader
+
+ In this class this just ends up passing the first name to the NullSafeGet method
+ that takes a string, not a string[].
+
+ I don't know why this method is in here - it doesn't look like anybody that inherits
+ from NullableType overrides this...
+
+ TODO: determine if this is needed
+
+
+
+
+ Gets the value of the field from the .
+
+ The positioned on the correct record.
+ The name of the field to get the value from.
+ The value of the field.
+
+
+ This method checks to see if value is null, if it is then the null is returned
+ from this method.
+
+
+ If the value is not null, then the method
+ is called and that method is responsible for retrieving the value.
+
+
+
+
+
+ When implemented by a class, gets an instance of the object
+ mapped by this IType from the .
+ The that contains the valuesThe name of the column in the that contains the
+ value to populate the IType with.The object mapped by this IType.
+ Implementations should handle possibility of null values.
+ This method might be called if the IType is known to be a single-column type.
+
+
+
+ This implementation forwards the call to .
+
+
+ It has been "sealed" because the Types inheriting from
+ do not need to and should not override this method. All of their implementation
+ should be in .
+
+
+
+
+
+ When implemented by a class, returns the SqlTypes for the columns mapped by this IType.
+ The that uses this IType.An array of s.
+
+
+ This implementation forwards the call to .
+
+
+ It has been "sealed" because the Types inheriting from
+ do not need to and should not override this method because they map to a single
+ column. All of their implementation should be in .
+
+
+
+
+
+ Returns the number of columns spanned by this
+
+ A always returns 1.
+
+ This has the hard coding of 1 in there because, by definition of this class,
+ a NullableType can only map to one column in a table.
+
+
+
+
+ Determines whether the specified is equal to this
+ .
+
+ The to compare with this NullableType.
+ true if the SqlType and Name properties are the same.
+
+
+
+ Serves as a hash function for the ,
+ suitable for use in hashing algorithms and data structures like a hash table.
+
+
+ A hash code that is based on the 's
+ hash code and the 's hash code.
+
+
+
+ Gets the underlying for
+ the column mapped by this .
+
+ The underlying .
+
+ This implementation should be suitable for all subclasses unless they need to
+ do some special things to get the value. There are no built in s
+ that override this Property.
+
+
+
+
+ Initialize a new instance of the MutableType class using a
+ .
+
+ The underlying .
+
+
+
+ Gets the value indicating if this IType is mutable.
+
+ true - a is mutable.
+
+ This has been "sealed" because any subclasses are expected to be mutable. If
+ the type is immutable then they should inherit from .
+
+
+
+
+ An that may be used to version data.
+
+
+
+
+ When implemented by a class, increments the version.
+
+ The current version
+ The current session, if available.
+ an instance of the that has been incremented.
+
+
+
+ When implemented by a class, gets an initial version.
+
+ The current session, if available.
+ An instance of the type.
+
+
+
+ Are the two version values considered equal?
+
+ One value to check.
+ The other value to check.
+ true if the values are equal, false otherwise.
+
+
+
+ Get a comparator for the version numbers
+
+
+
+ Convert the byte[] into the expected object type
+
+
+ Convert the object into the internal byte[] representation
+
+
+
+ Common base class for and .
+
+
+
+
+ Superclass of types.
+
+
+
+
+ Superclass of nullable immutable types.
+
+
+
+
+ Initialize a new instance of the ImmutableType class using a
+ .
+
+ The underlying .
+
+
+
+ Gets the value indicating if this IType is mutable.
+
+ false - an is not mutable.
+
+ This has been "sealed" because any subclasses are expected to be immutable. If
+ the type is mutable then they should inherit from .
+
+
+
+
+ An that may appear as an SQL literal
+
+
+
+
+ When implemented by a class, return a representation
+ of the value, suitable for embedding in an SQL statement
+
+ The object to convert to a string for the SQL statement.
+
+ A string that contains a well formed SQL Statement.
+
+
+
+ Initialize a new instance of the PrimitiveType class using a .
+
+ The underlying .
+
+
+
+ When implemented by a class, return a representation
+ of the value, suitable for embedding in an SQL statement
+
+ The object to convert to a string for the SQL statement.
+
+ A string that containts a well formed SQL Statement.
+
+
+
+ A representation of the value to be embedded in an XML element
+
+ The object that contains the values.
+
+ An Xml formatted string.
+
+ This just calls so if there is
+ a possibility of this PrimitiveType having any characters
+ that need to be encoded then this method should be overridden.
+
+
+
+
+ An IType that may be used for a discriminator column.
+
+
+ This interface contains no new methods but does require that an
+ that will be used in a discriminator column must implement
+ both the and interfaces.
+
+
+
+
+ An that may be used as an identifier.
+
+
+
+
+ When implemented by a class, converts the xml string from the
+ mapping file to the .NET object.
+
+ The value of discriminator-value or unsaved-value attribute.
+ The string converted to the object.
+
+ This method needs to be able to handle any string. It should not just
+ call System.Type.Parse without verifying that it is a parsable value
+ for the System.Type.
+
+
+
+
+ Base class for enum types.
+
+
+
+
+ Maps a Property
+ to a DbType.AnsiStringFixedLength column.
+
+
+
+
+ Maps a Property
+ to a column.
+
+
+
+
+
+
+
+ Handles "any" mappings and the old deprecated "object" type.
+
+
+ The identifierType is any NHibernate IType that can be serailized by default.
+ For example, you can specify the identifierType as an Int32 or a custom identifier
+ type that you built. The identifierType matches to one or many columns.
+
+ The metaType maps to a single column. By default it stores the name of the Type
+ that the Identifier identifies.
+
+ For example, we can store a link to any table. It will have the results
+ class_name id_col1
+ ========================================
+ Simple, AssemblyName 5
+ DiffClass, AssemblyName 5
+ Simple, AssemblyName 4
+
+ You can also provide you own type that might map the name of the class to a table
+ with a giant switch statemet or a good naming convention for your class->table. The
+ data stored might look like
+ class_name id_col1
+ ========================================
+ simple_table 5
+ diff_table 5
+ simple_table 4
+
+
+
+
+
+ Enables other Component-like types to hold collections and have cascades, etc.
+
+
+
+
+ Get the values of the component properties of
+ a component instance
+
+
+
+
+ Optional Operation
+
+
+
+
+ Optional operation
+
+
+
+ Get the types of the component properties
+
+
+ Get the names of the component properties
+
+
+
+ Optional operation
+
+ nullability of component properties
+
+
+
+ An that represents some kind of association between entities.
+
+
+
+
+ Get the "persister" for this association - a class or collection persister
+
+
+
+
+
+ Get the entity name of the associated entity
+
+
+
+ Get the "filtering" SQL fragment that is applied in the
+ SQL on clause, in addition to the usual join condition.
+
+
+
+
+ When implemented by a class, gets the type of foreign key directionality
+ of this association.
+
+ The of this association.
+
+
+
+ Is the primary key of the owning entity table
+ to be used in the join?
+
+
+
+
+ Get the name of the property in the owning entity
+ that provides the join key (null if the identifier)
+
+
+
+
+ The name of a unique property of the associated entity
+ that provides the join key (null if the identifier of
+ an entity, or key of a collection)
+
+
+
+
+ Do we dirty check this association, even when there are
+ no columns to be updated.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Not really relevant to AnyType, since it cannot be "joined"
+
+
+
+
+ An that maps an collection
+ to the database.
+
+
+
+
+ The base class for an that maps collections
+ to the database.
+
+
+
+
+ Initializes a new instance of a class for
+ a specific role.
+
+ The role the persistent collection is in.
+
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+
+
+
+
+
+ Instantiate an uninitialized collection wrapper or holder. Callers MUST add the holder to the
+ persistence context!
+
+ The session from which the request is originating.
+ The underlying collection persister (metadata)
+ The owner key.
+ The instantiated collection.
+
+
+
+ Wrap the naked collection instance in a wrapper, or instantiate a
+ holder. Callers MUST add the holder to the persistence context!
+
+ The session from which the request is originating.
+ The bare collection to be wrapped.
+
+ A subclass of that wraps the non NHibernate collection.
+
+
+
+
+ Get the key value from the owning entity instance, usually the identifier, but might be some
+ other unique key, in the case of property-ref
+
+
+
+
+ Get the id value from the owning entity key, usually the same as the key, but might be some
+ other property, in the case of property-ref
+
+ The collection owner key
+ The session from which the request is originating.
+
+ The collection owner's id, if it can be obtained from the key;
+ otherwise, null is returned
+
+
+
+
+ Instantiate an empty instance of the "underlying" collection (not a wrapper),
+ but with the given anticipated size (i.e. accounting for initial capacity
+ and perhaps load factor).
+
+
+ The anticipated size of the instantiated collection after we are done populating it.
+
+ A newly instantiated collection to be wrapped.
+
+
+
+ Get an iterator over the element set of the collection, which may not yet be wrapped
+
+ The collection to be iterated
+ The session from which the request is originating.
+ The iterator.
+
+
+
+ Get an iterator over the element set of the collection in POCO mode
+
+ The collection to be iterated
+ The iterator.
+
+
+
+ We always need to dirty check the collection because we sometimes
+ need to increment version number of owner and also because of
+ how assemble/disassemble is implemented for uks
+
+
+
+
+ Initializes a new instance of a class for
+ a specific role.
+
+ The role the persistent collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+ The of the element contained in the array.
+
+
+ This creates a bag that is non-generic.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Wraps a in a .
+
+ The for the collection to be a part of.
+ The unwrapped array.
+
+ An that wraps the non NHibernate .
+
+
+
+
+ The for the element.
+
+
+
+
+
+
+
+ An that maps an collection
+ using bag semantics to the database.
+
+
+
+
+ Initializes a new instance of a class for
+ a specific role.
+
+ The role the persistent collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+
+
+
+
+ Instantiates a new for the bag.
+
+ The current for the bag.
+
+
+ A new .
+
+
+
+ Wraps an in a NHibernate .
+
+ The for the collection to be a part of.
+ The unwrapped .
+
+ An that wraps the non NHibernate .
+
+
+
+
+
+
+
+ Maps a System.Byte[] Property to an column that can store a BLOB.
+
+
+ This is only needed by DataProviders (SqlClient) that need to specify a Size for the
+ IDbDataParameter. Most DataProvider(Oralce) don't need to set the Size so a BinaryType
+ would work just fine.
+
+
+
+
+ BinaryType.
+
+
+
+
+
+
+
+ Maps a Property
+ to a column.
+
+
+
+
+ Initialize a new instance of the BooleanType
+
+ This is used when the Property is mapped to a native boolean type.
+
+
+
+ Initialize a new instance of the BooleanType class using a
+ .
+
+ The underlying .
+
+ This is used when the Property is mapped to a string column
+ that stores true or false as a string.
+
+
+
+
+ Maps a property
+ to a column.
+
+
+
+
+ Maps a Property
+ to a column.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Maps a Property
+ to a DbType.StringFixedLength column.
+
+
+
+
+ ClassMetaType is a NH specific type to support "any" with meta-type="class"
+
+
+ It work like a MetaType where the key is the entity-name it self
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This method does not populate the component parent
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Summary description for CompositeCustomType.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Maps a Property
+ to a column.
+
+
+ CultureInfoType stores the culture name (not the Culture ID) of the
+ in the DB.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Maps a Property
+ to a column.
+
+
+
+
+ A custom type for mapping user-written classes that implement
+ .
+
+
+
+
+
+
+ Adapts IUserType to the generic IType interface.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Maps a Property to a
+
+
+
+
+ Maps a Property to a column that
+ stores date & time down to the accuracy of a second.
+
+
+ This only stores down to a second, so if you are looking for the most accurate
+ date and time storage your provider can give you use the .
+ or the
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Maps a Property to a
+
+
+
+
+
+
+
+ Maps the Year, Month, and Day of a Property to a
+ column
+
+
+
+
+
+
+
+
+
+ An extension of which
+ maps to the database's current timestamp, rather than the vm's
+ current timestamp.
+
+
+ Note: May/may-not cause issues on dialects which do not properly support
+ a true notion of timestamp
+
+
+
+
+ This is almost the exact same type as the DateTime except it can be used
+ in the version column, stores it to the accuracy the database supports,
+ and will default to the value of DateTime.Now if the value is null.
+
+
+
+ The value stored in the database depends on what your data provider is capable
+ of storing. So there is a possibility that the DateTime you save will not be
+ the same DateTime you get back when you check DateTime.Equals(DateTime) because
+ they will have their milliseconds off.
+
+
+ For example - SQL Server 2000 is only accurate to 3.33 milliseconds. So if
+ NHibernate writes a value of 01/01/98 23:59:59.995 to the Prepared Command, MsSql
+ will store it as 1998-01-01 23:59:59.997.
+
+
+ Please review the documentation of your Database server.
+
+
+
+
+
+ Sets the value of this Type in the IDbCommand.
+
+ The IDbCommand to add the Type's value to.
+ The value of the Type.
+ The index of the IDataParameter in the IDbCommand.
+
+ No null values will be written to the IDbCommand for this Type.
+
+
+
+
+ Maps a Property
+ to a column.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A reference to an entity class
+
+
+
+ Constructs the requested entity type mapping.
+ The name of the associated entity.
+
+ The property-ref name, or null if we
+ reference the PK of the associated entity.
+
+ Is eager fetching enabled.
+ Should values of this mapping be embedded in XML modes?
+
+ Is unwrapping of proxies allowed for this association; unwrapping
+ says to return the "implementation target" of lazy prooxies; typically only possible
+ with lazy="no-proxy".
+
+
+
+ Two entities are considered the same when their instances are the same.
+ One entity instance
+ Another entity instance
+ The entity mode.
+ True if x == y; false otherwise.
+
+
+
+ Get the identifier value of an instance or proxy.
+
+ Intended only for loggin purposes!!!
+
+ The object from which to extract the identifier.
+ The entity persister
+ The entity mode
+ The extracted identifier.
+
+
+
+ Converts the id contained in the to an object.
+
+ The that contains the query results.
+ A string array of column names that contain the id.
+ The this is occurring in.
+ The object that this Entity will be a part of.
+
+ An instance of the object or if the identifer was null.
+
+
+
+ Retrieves the {@link Joinable} defining the associated entity.
+ The session factory.
+ The associated joinable
+
+
+
+ Determine the type of either (1) the identifier if we reference the
+ associated entity's PK or (2) the unique key to which we refer (i.e.
+ the property-ref).
+
+ The mappings...
+ The appropriate type.
+
+
+
+ The name of the property on the associated entity to which our FK refers
+
+ The mappings...
+ The appropriate property name.
+
+
+ Convenience method to locate the identifier type of the associated entity.
+ The mappings...
+ The identifier type
+
+
+ Convenience method to locate the identifier type of the associated entity.
+ The originating session
+ The identifier type
+
+
+
+ Resolves the identifier to the actual object.
+
+
+
+
+ Resolve an identifier or unique key value
+
+
+
+
+
+
+
+ The name of the associated entity.
+ The session factory, for resolution.
+ The associated entity name.
+
+
+ The name of the associated entity.
+ The associated entity name.
+
+
+
+ Load an instance by a unique key that is not the primary key.
+
+ The name of the entity to load
+ The name of the property defining the uniqie key.
+ The unique key property value.
+ The originating session.
+ The loaded entity
+
+
+ Explicitly, an entity type is an entity type
+ True.
+
+
+
+ This returns the wrong class for an entity with a proxy, or for a named
+ entity. Theoretically it should return the proxy class, but it doesn't.
+
+ The problem here is that we do not necessarily have a ref to the associated
+ entity persister (nor to the session factory, to look it up) which is really
+ needed to "do the right thing" here...
+
+
+
+
+
+
+
+
+
+
+ When implemented by a class, gets the type of foreign key directionality
+ of this association.
+
+ The of this association.
+
+
+
+ Is the foreign key the primary key of the table?
+
+
+
+
+ Converts the given enum instance into a basic type.
+
+
+
+
+
+
+ Maps a to a
+ DbType.String.
+
+
+ If your database should store the
+ using the named values in the enum instead of the underlying values
+ then subclass this .
+
+
+ All that needs to be done is to provide a default constructor that
+ NHibernate can use to create the specific type. For example, if
+ you had an enum defined as.
+
+
+
+ public enum MyEnum
+ {
+ On,
+ Off,
+ Dimmed
+ }
+
+
+
+ all that needs to be written for your enum string type is:
+
+
+
+ public class MyEnumStringType : NHibernate.Type.EnumStringType
+ {
+ public MyEnumStringType()
+ : base( typeof( MyEnum ) )
+ {
+ }
+ }
+
+
+
+ The mapping would look like:
+
+
+
+ ...
+ <property name="Status" type="MyEnumStringType, AssemblyContaining" />
+ ...
+
+
+
+ The TestFixture that shows the working code can be seen
+ in NHibernate.Test.TypesTest.EnumStringTypeFixture.cs
+ , NHibernate.Test.TypesTest.EnumStringClass.cs
+ , and NHibernate.Test.TypesTest.EnumStringClass.hbm.xml
+
+
+
+
+
+ Hardcoding of 255 for the maximum length
+ of the Enum name that will be saved to the db.
+
+
+ 255 because that matches the default length that hbm2ddl will
+ use to create the column.
+
+
+
+
+ Initializes a new instance of .
+
+ The of the Enum.
+
+
+
+ Initializes a new instance of .
+
+ The of the Enum.
+ The length of the string that can be written to the column.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This appends enumstring - to the beginning of the underlying
+ enums name so that could still be stored
+ using the underlying value through the
+ also.
+
+
+
+
+ Represents directionality of the foreign key constraint
+
+
+
+
+ A foreign key from parent to child
+
+
+
+
+ A foreign key from child to parent
+
+
+
+
+ Should we cascade at this cascade point?
+
+
+
+
+ An that maps an collection
+ to the database using bag semantics.
+
+
+
+
+ Initializes a new instance of a class for
+ a specific role.
+
+ The role the persistent collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+
+
+
+ Instantiates a new for the bag.
+
+ The current for the bag.
+ The current for the bag.
+
+
+
+
+ Wraps an in a .
+
+ The for the collection to be a part of.
+ The unwrapped .
+
+ An that wraps the non NHibernate .
+
+
+
+
+ An that maps an collection
+ using bag semantics with an identifier to the database.
+
+
+
+
+ Initializes a new instance of a class for
+ a specific role.
+
+ The role the persistent collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+
+
+
+
+ Instantiates a new for the identifier bag.
+
+ The current for the identifier bag.
+
+
+
+
+
+
+ Wraps an in a .
+
+ The for the collection to be a part of.
+ The unwrapped .
+
+ An that wraps the non NHibernate .
+
+
+
+
+
+
+
+ An that maps an collection
+ to the database using list semantics.
+
+
+
+
+ An that maps an collection
+ using list semantics to the database.
+
+
+
+
+ Initializes a new instance of a class for
+ a specific role.
+
+ The role the persistent collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+
+
+
+
+ Instantiates a new for the bag.
+
+ The current for the bag.
+
+
+ A new .
+
+
+
+ Wraps an exist in a NHibernate .
+
+ The for the collection to be a part of.
+ The unwrapped .
+
+ An that wraps the non NHibernate .
+
+
+
+
+
+
+
+ Initializes a new instance of a class for
+ a specific role.
+
+ The role the persistent collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+
+
+
+ Instantiates a new for the list.
+
+ The current for the list.
+ The current for the list.
+
+
+
+
+ Wraps an in a .
+
+ The for the collection to be a part of.
+ The unwrapped .
+
+ An that wraps the non NHibernate .
+
+
+
+
+ An that maps an collection
+ to the database.
+
+
+
+
+ An that maps an collection
+ to the database.
+
+
+
+
+ Initializes a new instance of a class for
+ a specific role.
+
+ The role the persistent collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+
+
+
+
+ Instantiates a new for the map.
+
+ The current for the map.
+
+
+
+
+
+
+ Wraps an in a .
+
+ The for the collection to be a part of.
+ The unwrapped .
+
+ An that wraps the non NHibernate .
+
+
+
+
+
+
+
+ Initializes a new instance of a class for
+ a specific role.
+
+ The role the persistent collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+
+
+
+ Instantiates a new for the map.
+
+ The current for the map.
+
+ Not used.
+
+
+
+
+ Wraps an in a .
+
+ The for the collection to be a part of.
+ The unwrapped .
+
+ An that wraps the
+ non NHibernate .
+
+
+
+
+ An that maps a sorted collection
+ to the database.
+
+
+
+
+ An that maps an collection
+ to the database.
+
+
+
+
+ An that maps an collection
+ to the database.
+
+
+
+
+ Initializes a new instance of a class for
+ a specific role.
+
+ The role the persistent collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+
+
+
+
+ Instantiates a new for the set.
+
+ The current for the set.
+
+
+
+
+
+
+ Wraps an in a .
+
+ The for the collection to be a part of.
+ The unwrapped .
+
+ An that wraps the non NHibernate .
+
+
+
+
+
+
+
+
+
+ Initializes a new instance of a class for
+ a specific role.
+
+ The role the persistent collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+
+
+
+ Instantiates a new for the set.
+
+ The current for the set.
+ The current for the set.
+
+
+
+
+ Wraps an in a .
+
+ The for the collection to be a part of.
+ The unwrapped .
+
+ An that wraps the non NHibernate .
+
+
+
+
+ Initializes a new instance of a class for
+ a specific role.
+
+ The role the persistent collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+
+
+
+ An that maps a sorted collection
+ to the database.
+
+
+
+
+ Initializes a new instance of a class for
+ a specific role.
+
+ The role the persistent collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+ The to use to compare
+ set elements.
+
+
+
+ Maps a Property
+ to a column.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Maps a Property
+ to a column.
+
+
+
+
+
+
+
+
+
+
+ Maps a Property
+ to a column.
+
+
+
+
+
+
+
+
+
+
+ Maps a Property
+ to a column.
+
+
+
+
+
+
+
+
+
+
+ A many-to-one association to an entity
+
+
+
+
+ Hydrates the Identifier from .
+
+ The that contains the query results.
+ A string array of column names to read from.
+ The this is occurring in.
+ The object that this Entity will be a part of.
+
+ An instantiated object that used as the identifier of the type.
+
+
+
+
+ A one-to-one association to an entity
+
+
+
+
+ We don't need to dirty check one-to-one because of how
+ assemble/disassemble is implemented and because a one-to-one
+ association is never dirty
+
+
+
+
+ A implemented using a collection that maintains
+ the order in which elements are inserted into it.
+
+
+
+
+ Initializes a new instance of a class.
+
+ The role the persistent collection is in.
+
+
+
+
+
+ A implemented using a collection that maintains
+ the order in which elements are inserted into it.
+
+
+
+
+ Initializes a new instance of a class
+
+ The role the persistent collection is in.
+
+
+
+
+
+ PersistentEnumType
+
+
+
+
+ Gets an instance of the Enum
+
+ The underlying value of an item in the Enum.
+
+ An instance of the Enum set to the code value.
+
+
+
+
+ Gets the correct value for the Enum.
+
+ The value to convert (an enum instance).
+ A boxed version of the code, converted to the correct type.
+
+ This handles situations where the DataProvider returns the value of the Enum
+ from the db in the wrong underlying type. It uses to
+ convert it to the correct type.
+
+
+
+
+ Maps a Property
+ to a column.
+
+
+
+
+
+
+
+
+
+
+ Maps an instance of a that has the
+ to a column.
+
+
+
+ The SerializableType should be used when you know that Bytes are
+ not going to be greater than 8,000.
+
+
+ The base class is because the data is stored in
+ a byte[]. The System.Array does not have a nice "equals" method so we must
+ do a custom implementation.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Thrown when a property cannot be serialized/deserialized
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+ The exception that is the cause of the current exception. If the innerException parameter
+ is not a null reference, the current exception is raised in a catch block that handles
+ the inner exception.
+
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Maps a Property to an
+ column.
+
+
+ Verify through your database's documentation if there is a column type that
+ matches up with the capabilities of
+
+
+
+
+
+
+
+
+
+
+ Extends the to provide sorting.
+
+
+
+
+ Initializes a new instance of a class for
+ a specific role using the to do the sorting.
+
+ The role the persistent collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+ The to use for the sorting.
+
+
+
+
+ Extends the to provide sorting.
+
+
+
+
+ Initializes a new instance of a class for
+ a specific role using the to do the sorting.
+
+ The role the persistent collection is in.
+ The name of the property in the
+ owner object containing the collection ID, or if it is
+ the primary key.
+ The to use for the sorting.
+
+
+
+
+ A one-to-one association that maps to specific formula(s)
+ instead of the primary key column of the owning entity.
+
+
+
+
+ Maps a Property to an
+ column that can store a CLOB.
+
+
+ This is only needed by DataProviders (SqlClient) that need to specify a Size for the
+ IDbDataParameter. Most DataProvider(Oralce) don't need to set the Size so a StringType
+ would work just fine.
+
+
+
+
+ Maps a to a column.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Maps a Property to an column
+ that stores the DateTime using the Ticks property.
+
+
+ This is the recommended way to "timestamp" a column.
+ The System.DateTime.Ticks is accurate to 100-nanosecond intervals.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Maps a Property to an column
+ This is an extra way to map a . You already have
+ but mapping against a .
+
+
+
+
+ Maps a Property to an column
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Maps a Property to an DateTime column that only stores the
+ Hours, Minutes, and Seconds of the DateTime as significant.
+ Also you have for handling, the NHibernate Type ,
+ the which maps to a .
+
+
+
+ This defaults the Date to "1753-01-01" - that should not matter because
+ using this Type indicates that you don't care about the Date portion of the DateTime.
+
+
+ A more appropriate choice to store the duration/time is the .
+ The underlying tends to be handled differently by different
+ DataProviders.
+
+
+
+
+
+ Maps a to a 1 char column
+ that stores a 'T'/'F' to indicate true/false.
+
+
+ If you are using schema-export to generate your tables then you need
+ to set the column attributes: length=1 or sql-type="char(1)".
+
+ This needs to be done because in Java's JDBC there is a type for CHAR and
+ in ADO.NET there is not one specifically for char, so you need to tell schema
+ export to create a char(1) column.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Used internally to obtain instances of IType.
+
+
+ Applications should use static methods and constants on NHibernate.NHibernateUtil if the default
+ IType is good enough. For example, the TypeFactory should only be used when the String needs
+ to have a length of 300 instead of 255. At this point NHibernate.String does not get you the
+ correct IType. Instead use TypeFactory.GetString(300) and keep a local variable that holds
+ a reference to the IType.
+
+
+
+
+
+
+
+ Register other Default .NET type
+
+
+ These type will be used, as default, even when the "type" attribute was NOT specified in the mapping
+
+
+
+
+ Register other NO Default .NET type
+
+
+ These type will be used only when the "type" attribute was is specified in the mapping.
+ These are in here because needed to NO override default CLR types and be available in mappings
+
+
+
+
+ Gets the classification of the Type based on the string.
+
+ The name of the Type to get the classification for.
+ The Type of Classification
+
+ This parses through the string and makes the assumption that no class
+ name and no assembly name will contain the "(".
+
+ If it finds
+ the "(" and then finds a "," afterwards then it is a
+ TypeClassification.PrecisionScale.
+
+
+ If it finds the "("
+ and doesn't find a "," afterwards, then it is a
+ TypeClassification.Length.
+
+
+ If it doesn't find the "(" then it assumes that it is a
+ TypeClassification.Plain.
+
+
+
+
+
+ Given the name of a Hibernate type such as Decimal, Decimal(19,0)
+ , Int32, or even NHibernate.Type.DecimalType, NHibernate.Type.DecimalType(19,0),
+ NHibernate.Type.Int32Type, then return an instance of NHibernate.Type.IType
+
+ The name of the type.
+ The instance of the IType that the string represents.
+
+ This method will return null if the name is not found in the basicNameMap.
+
+
+
+
+ Uses heuristics to deduce a NHibernate type given a string naming the
+ type.
+
+
+ An instance of NHibernate.Type.IType
+
+ When looking for the NHibernate type it will look in the cache of the Basic types first.
+ If it doesn't find it in the cache then it uses the typeName to get a reference to the
+ Class (Type in .NET). Once we get the reference to the .NET class we check to see if it
+ implements IType, ICompositeUserType, IUserType, ILifecycle (Association), or
+ IPersistentEnum. If none of those are implemented then we will serialize the Type to the
+ database using NHibernate.Type.SerializableType(typeName)
+
+
+
+
+ Uses heuristics to deduce a NHibernate type given a string naming the
+ type.
+
+ the type name
+ parameters for the type
+ An instance of NHibernate.Type.IType
+
+
+
+ Gets the BinaryType with the specified length.
+
+ The length of the data to store in the database.
+ A BinaryType
+
+ In addition to returning the BinaryType it will also ensure that it has
+ been added to the basicNameMap with the keys Byte[](length) and
+ NHibernate.Type.BinaryType(length).
+
+
+
+
+ Gets the SerializableType for the specified Type
+
+ The Type that will be Serialized to the database.
+ A SerializableType
+
+
+ In addition to returning the SerializableType it will also ensure that it has
+ been added to the basicNameMap with the keys Type.FullName (the result
+ of IType.Name and Type.AssemblyQualifiedName. This is different
+ from the other items put in the basicNameMap because it is uses the AQN and the
+ FQN as opposed to the short name used in the maps and the FQN.
+
+
+ Since this method calls the method
+ GetSerializableType(System.Type, Int32)
+ with the default length, those keys will also be added.
+
+
+
+
+
+ A one-to-one association type for the given class and cascade style.
+
+
+
+
+ A many-to-one association type for the given class and cascade style.
+
+
+
+
+
+
+ A many-to-one association type for the given class and cascade style.
+
+
+
+
+ A many-to-one association type for the given class and cascade style.
+
+
+
+ Deep copy a series of values from one array to another...
+ The values to copy (the source)
+ The value types
+ an array indicating which values to include in the copy
+ The array into which to copy the values
+ The originating session
+
+
+ Apply the operation across a series of values.
+ The values
+ The value types
+ The originating session
+
+
+
+ Determine if any of the given field values are dirty,
+ returning an array containing indexes of
+ the dirty fields or null if no fields are dirty.
+
+
+
+
+ Determine if any of the given field values are modified,
+ returning an array containing indexes of
+ the dirty fields or null if no fields are modified.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Apply the {@link Type#disassemble} operation across a series of values.
+ The values
+ The value types
+ An array indicating which values to include in the disassembled state
+ The originating session
+ The entity "owning" the values
+ The disassembled state
+
+
+
+ Apply the operation across a series of values.
+
+ The source of the state
+ The target into which to replace the source values.
+ The value types
+ The originating session
+ The entity "owning" the values
+ Represent a cache of already replaced state
+ The replaced state
+
+
+
+ Apply the
+ operation across a series of values.
+
+ The source of the state
+ The target into which to replace the source values.
+ The value types
+ The originating session
+ The entity "owning" the values
+ A map representing a cache of already replaced state
+ FK directionality to be applied to the replacement
+ The replaced state
+
+
+
+ Apply the
+ operation across a series of values, as
+ long as the corresponding is an association.
+
+ The source of the state
+ The target into which to replace the source values.
+ The value types
+ The originating session
+ The entity "owning" the values
+ A map representing a cache of already replaced state
+ FK directionality to be applied to the replacement
+ The replaced state
+
+ If the corresponding type is a component type, then apply
+ across the component subtypes but do not replace the component value itself.
+
+
+
+
+ Maps the Assembly Qualified Name of a to a
+ column.
+
+
+
+
+
+
+
+ Initialize a new instance of the TypeType class using a
+ .
+
+ The underlying .
+
+
+
+ Gets the in the for the Property.
+
+ The that contains the value.
+ The index of the field to get the value from.
+ The from the database.
+
+ Thrown when the value in the database can not be loaded as a
+
+
+
+
+ Gets the in the for the Property.
+
+ The that contains the value.
+ The name of the field to get the value from.
+ The from the database.
+
+ This just calls gets the index of the name in the IDataReader
+ and calls the overloaded version
+ (IDataReader, Int32).
+
+
+ Thrown when the value in the database can not be loaded as a
+
+
+
+
+ Puts the Assembly Qualified Name of the
+ Property into to the .
+
+ The to put the value into.
+ The that contains the value.
+ The index of the to start writing the value to.
+
+ This uses the method of the
+ object to do the work.
+
+
+
+
+ A representation of the value to be embedded in an XML element
+
+ The that contains the values.
+
+ An Xml formatted string that contains the Assembly Qualified Name.
+
+
+
+ Gets the that will be returned
+ by the NullSafeGet() methods.
+
+
+ A from the .NET framework.
+
+
+
+
+
+
+
+ Maps a Property
+ to a column.
+
+
+
+
+
+
+
+
+
+
+ Maps a Property
+ to a column.
+
+
+
+
+
+
+
+
+
+
+ Maps a Property
+ to a column.
+
+
+
+
+
+
+
+ Maps a to a 1 char column
+ that stores a 'Y'/'N' to indicate true/false.
+
+
+ If you are using schema-export to generate your tables then you need
+ to set the column attributes: length=1 or sql-type="char(1)".
+
+ This needs to be done because in Java's JDBC there is a type for CHAR and
+ in ADO.NET there is not one specifically for char, so you need to tell schema
+ export to create a char(1) column.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A UserType that may be dereferenced in a query.
+ This interface allows a custom type to define "properties".
+ These need not necessarily correspond to physical .NET style properties.
+
+ A ICompositeUserType may be used in almost every way
+ that a component may be used. It may even contain many-to-one
+ associations.
+
+ Implementors must be immutable and must declare a public
+ default constructor.
+
+ Unlike UserType, cacheability does not depend upon
+ serializability. Instead, Assemble() and
+ Disassemble() provide conversion to/from a cacheable
+ representation.
+
+
+
+
+ Get the value of a property
+
+ an instance of class mapped by this "type"
+
+ the property value
+
+
+
+ Set the value of a property
+
+ an instance of class mapped by this "type"
+
+ the value to set
+
+
+
+ Compare two instances of the class mapped by this type for persistence
+ "equality", ie. equality of persistent state.
+
+
+
+
+
+
+
+ Get a hashcode for the instance, consistent with persistence "equality"
+
+
+
+
+ Retrieve an instance of the mapped class from a IDataReader. Implementors
+ should handle possibility of null values.
+
+ IDataReader
+ the column names
+
+ the containing entity
+
+
+
+
+ Write an instance of the mapped class to a prepared statement.
+ Implementors should handle possibility of null values.
+ A multi-column type should be written to parameters starting from index.
+
+
+
+
+
+
+
+
+ Return a deep copy of the persistent state, stopping at entities and at collections.
+
+ generally a collection element or entity field
+
+
+
+
+ Transform the object into its cacheable representation.
+ At the very least this method should perform a deep copy.
+ That may not be enough for some implementations, method should perform a deep copy. That may not be enough for some implementations, however; for example, associations must be cached as identifier values. (optional operation)
+
+ the object to be cached
+
+
+
+
+
+ Reconstruct an object from the cacheable representation.
+ At the very least this method should perform a deep copy. (optional operation)
+
+ the object to be cached
+
+
+
+
+
+
+ During merge, replace the existing (target) value in the entity we are merging to
+ with a new (original) value from the detached entity we are merging. For immutable
+ objects, or null values, it is safe to simply return the first parameter. For
+ mutable objects, it is safe to return a copy of the first parameter. However, since
+ composite user types often define component values, it might make sense to recursively
+ replace component values in the target object.
+
+
+
+
+ Get the "property names" that may be used in a query.
+
+
+
+
+ Get the corresponding "property types"
+
+
+
+
+ The class returned by NullSafeGet().
+
+
+
+
+ Are objects of this type mutable?
+
+
+
+
+ A custom type that may function as an identifier or discriminator
+ type, or may be marshalled to and from an XML document.
+
+
+
+
+ The interface to be implemented by user-defined types.
+
+
+
+ The interface abstracts user code from future changes to the interface,
+ simplifies the implementation of custom types and hides certain "internal interfaces from
+ user code.
+
+
+ Implementers must be immutable and must declare a public default constructor.
+
+
+ The actual class mapped by a IUserType may be just about anything. However, if it is to
+ be cacheble by a persistent cache, it must be serializable.
+
+
+ Alternatively, custom types could implement directly or extend one of the
+ abstract classes in NHibernate.Type. This approach risks future incompatible changes
+ to classes or interfaces in the package.
+
+
+
+
+
+ Compare two instances of the class mapped by this type for persistent "equality"
+ ie. equality of persistent state
+
+
+
+
+
+
+
+ Get a hashcode for the instance, consistent with persistence "equality"
+
+
+
+
+ Retrieve an instance of the mapped class from a JDBC resultset.
+ Implementors should handle possibility of null values.
+
+ a IDataReader
+ column names
+ the containing entity
+
+ HibernateException
+
+
+
+ Write an instance of the mapped class to a prepared statement.
+ Implementors should handle possibility of null values.
+ A multi-column type should be written to parameters starting from index.
+
+ a IDbCommand
+ the object to write
+ command parameter index
+ HibernateException
+
+
+
+ Return a deep copy of the persistent state, stopping at entities and at collections.
+
+ generally a collection element or entity field
+ a copy
+
+
+
+ During merge, replace the existing () value in the entity
+ we are merging to with a new () value from the detached
+ entity we are merging. For immutable objects, or null values, it is safe to simply
+ return the first parameter. For mutable objects, it is safe to return a copy of the
+ first parameter. For objects with component values, it might make sense to
+ recursively replace component values.
+
+ the value from the detached entity being merged
+ the value in the managed entity
+ the managed entity
+ the value to be merged
+
+
+
+ Reconstruct an object from the cacheable representation. At the very least this
+ method should perform a deep copy if the type is mutable. (optional operation)
+
+ the object to be cached
+ the owner of the cached object
+ a reconstructed object from the cachable representation
+
+
+
+ Transform the object into its cacheable representation. At the very least this
+ method should perform a deep copy if the type is mutable. That may not be enough
+ for some implementations, however; for example, associations must be cached as
+ identifier values. (optional operation)
+
+ the object to be cached
+ a cacheable representation of the object
+
+
+
+ The SQL types for the columns mapped by this type.
+
+
+
+
+ The type returned by NullSafeGet()
+
+
+
+
+ Are objects of this type mutable?
+
+
+
+
+ Parse a string representation of this value, as it appears
+ in an XML document.
+
+
+
+
+ Return an SQL literal representation of the value
+
+
+
+
+ Return a string representation of this value, as it
+ should appear in an XML document
+
+
+
+
+ Marker interface for user types which want to perform custom
+ logging of their corresponding values
+
+
+
+ Generate a loggable string representation of the collection (value).
+ The collection to be logged; guaranteed to be non-null and initialized.
+ The factory.
+ The loggable string representation.
+
+
+
+ Support for parameterizable types. A UserType or CustomUserType may be
+ made parameterizable by implementing this interface. Parameters for a
+ type may be set by using a nested type element for the property element
+
+
+
+
+ Gets called by Hibernate to pass the configured type parameters to
+ the implementation.
+
+
+
+
+ Instantiate an uninitialized instance of the collection wrapper
+
+
+
+
+ Wrap an instance of a collection
+
+
+
+
+ Return an over the elements of this collection - the passed collection
+ instance may or may not be a wrapper
+
+
+
+
+ Optional operation. Does the collection contain the entity instance?
+
+
+
+
+ Optional operation. Return the index of the entity in the collection.
+
+
+
+
+ Replace the elements of a collection with the elements of another collection
+
+
+
+
+ Instantiate an empty instance of the "underlying" collection (not a wrapper),
+ but with the given anticipated size (i.e. accounting for initial size
+ and perhaps load factor).
+
+
+ The anticipated size of the instantiated collection
+ after we are done populating it. Note, may be negative to indicate that
+ we not yet know anything about the anticipated size (i.e., when initializing
+ from a result set row by row).
+
+
+
+
+ A user type that may be used for a version property.
+
+
+
+
+ Generate an initial version.
+
+ The session from which this request originates. May be
+ null; currently this only happens during startup when trying to determine
+ the "unsaved value" of entities.
+ an instance of the type
+
+
+
+ Increment the version.
+
+ The session from which this request originates.
+ the current version
+ an instance of the type
+
+
+
+ Helper class that contains common array functions and
+ data structures used through out NHibernate.
+
+
+
+
+ Sets item at position to .
+ Expands the list by adding values, if needed.
+
+
+
+
+ Computes a hash code for .
+
+ The hash code is computed as the sum of hash codes of
+ individual elements, so that the value is independent of the
+ collection iteration order.
+
+
+
+
+ Creates a that uses case-insensitive string comparison
+ associated with invariant culture.
+
+
+ This is different from the method in
+ in that the latter uses the current culture and is thus vulnerable to the "Turkish I" problem.
+
+
+
+
+ Creates a that uses case-insensitive string comparison
+ associated with invariant culture.
+
+
+ This is different from the method in
+ in that the latter uses the current culture and is thus vulnerable to the "Turkish I" problem.
+
+
+
+
+ Computes a hash code for .
+
+ The hash code is computed as the sum of hash codes of
+ individual elements, so that the value is independent of the
+ collection iteration order.
+
+
+
+
+ A read-only dictionary that is always empty and permits lookup by key.
+
+
+
+
+ A read-only dictionary that is always empty and permits lookup by key.
+
+
+
+
+ Utility class implementing ToString for collections. All ToString
+ overloads call element.ToString().
+
+
+ To print collections of entities or typed values, use
+ .
+
+
+
+
+
+
+
+ Get only filters enabled for many-to-one association.
+
+ All enabled filters
+ A new for filters enabled for many to one.
+
+
+
+ An where keys are compared by object identity, rather than equals.
+
+ All external users of this class need to have no knowledge of the IdentityKey - it is all
+ hidden by this class.
+
+
+
+ Do NOT use a System.Value type as the key for this Hashtable - only classes. See
+ the google thread
+ about why using System.Value is a bad thing.
+
+
+ If I understand it correctly, the first call to get an object defined by a DateTime("2003-01-01")
+ would box the DateTime and return the identity key for the box. If you were to get that Key and
+ unbox it into a DateTime struct, then the next time you passed it in as the Key the IdentityMap
+ would box it again (into a different box) and it would have a different IdentityKey - so you would
+ not get the same value for the same DateTime value.
+
+
+
+
+
+ Create a new instance of the IdentityMap that has no
+ iteration order.
+
+ A new IdentityMap based on a Hashtable.
+
+
+
+ Create a new instance of the IdentityMap that has an
+ iteration order of the order the objects were added
+ to the Map.
+
+ A new IdentityMap based on ListDictionary.
+
+
+
+ Return the Dictionary Entries (as instances of DictionaryEntry in a collection
+ that is safe from concurrent modification). Ie - we may safely add new instances
+ to the underlying IDictionary during enumeration of the Values.
+
+ The IDictionary to get the enumeration safe list.
+ A Collection of DictionaryEntries
+
+
+
+ Create the IdentityMap class with the correct class for the IDictionary.
+ Unsorted = Hashtable
+ Sorted = ListDictionary
+
+ A class that implements the IDictionary for storing the objects.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Verifies that we are not using a System.ValueType as the Key in the Dictionary
+
+ The object that will be the key.
+ An object that is safe to be a key.
+ Thrown when the obj is a System.ValueType
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns the Keys used in this IdentityMap
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Provides a snapshot VIEW in the form of a List of the contents of the IdentityMap.
+ You can safely iterate over this VIEW and modify the actual IdentityMap because the
+ VIEW is a copy of the contents, not a reference to the existing Map.
+
+ Contains a copy (not that actual instance stored) of the DictionaryEntries in a List.
+
+
+
+
+ Set implementation that use == instead of equals() as its comparison mechanism
+ that base its implementation of IdentityMap
+
+
+
+
+ Combines multiple objects implementing into one.
+
+
+
+
+ Creates an IEnumerable object from multiple IEnumerables.
+
+ The IEnumerables to join together.
+
+
+
+
+
+
+
+
+
+
+
+
+ A flag to indicate if Dispose() has been called.
+
+
+
+
+ Finalizer that ensures the object is correctly disposed of.
+
+
+
+
+ Takes care of freeing the managed and unmanaged resources that
+ this class is responsible for.
+
+
+
+
+ Takes care of freeing the managed and unmanaged resources that
+ this class is responsible for.
+
+ Indicates if this JoinedEnumerable is being Disposed of or Finalized.
+
+ The command is closed and the reader is disposed. This allows other ADO.NET
+ related actions to occur without needing to move all the way through the
+ EnumerableImpl.
+
+
+
+
+
+
+
+ A map of objects whose mapping entries are sequenced based on the order in which they were
+ added. This data structure has fast O(1) search time, deletion time, and insertion time
+
+
+ This class is not thread safe.
+ This class is not a really replication of JDK LinkedHashMap{K, V},
+ this class is an adaptation of SequencedHashMap with generics.
+
+
+
+
+ Initializes a new instance of the class that is empty,
+ has the default initial capacity, and uses the default equality comparer for the key type.
+
+
+
+
+ Initializes a new instance of the class that is empty,
+ has the specified initial capacity, and uses the default equality comparer for the key type.
+
+ The initial number of elements that the can contain.
+
+
+
+ Initializes a new instance of the class that is empty, has the default initial capacity, and uses the specified .
+
+ The implementation to use when comparing keys, or null to use the default EqualityComparer for the type of the key.
+
+
+
+ Initializes a new instance of the class that is empty, has the specified initial capacity, and uses the specified .
+
+ The initial number of elements that the can contain.
+ The implementation to use when comparing keys, or null to use the default EqualityComparer for the type of the key.
+
+
+
+ An implementation of a Map which has a maximum size and uses a Least Recently Used
+ algorithm to remove items from the Map when the maximum size is reached and new items are added.
+
+
+
+
+ A map of objects whose mapping entries are sequenced based on the order in which they were
+ added. This data structure has fast O(1) search time, deletion time, and insertion time
+
+
+ This class is not thread safe.
+
+
+
+
+ Construct an empty sentinel used to hold the head (sentinel.next) and the tail (sentinal.prev)
+ of the list. The sentinal has a key and value
+
+
+
+
+
+ Sentinel used to hold the head and tail of the list of entries
+
+
+
+
+ Map of keys to entries
+
+
+
+
+ Holds the number of modifications that have occurred to the map, excluding modifications
+ made through a collection view's iterator.
+
+
+
+
+ Construct a new sequenced hash map with default initial size and load factor
+
+
+
+
+ Construct a new sequenced hash map with the specified initial size and default load factor
+
+ the initial size for the hash table
+
+
+
+ Construct a new sequenced hash map with the specified initial size and load factor
+
+ the initial size for the hashtable
+ the load factor for the hash table
+
+
+
+ Construct a new sequenced hash map with the specified initial size, hash code provider
+ and comparer
+
+ the initial size for the hashtable
+
+
+
+
+ Creates an empty Hashtable with the default initial capacity and using the default load factor,
+ the specified hash code provider and the specified comparer
+
+
+
+
+
+ Creates an empty Hashtable with the default initial capacity and using the default load factor,
+ the specified hash code provider and the specified comparer
+
+ the initial size for the hashtable
+ the load factor for the hash table
+
+
+
+
+ Removes an internal entry from the linked list. THis does not remove it from the underlying
+ map.
+
+
+
+
+
+ Inserts a new internal entry to the tail of the linked list. This does not add the
+ entry to the underlying map.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Remove the Entry identified by the Key if it exists.
+
+ The Key to remove.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Return only the Key of the DictionaryEntry
+
+
+
+
+ Return only the Value of the DictionaryEntry
+
+
+
+
+ Return the full DictionaryEntry
+
+
+
+
+ Summary description for ObjectUtils.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Helper class for Reflection related code.
+
+
+
+
+ Determine if the specified overrides the
+ implementation of Equals from
+
+ The to reflect.
+ if any type in the hierarchy overrides Equals(object).
+
+
+
+ Determine if the specified overrides the
+ implementation of GetHashCode from
+
+ The to reflect.
+ if any type in the hierarchy overrides GetHashCode().
+
+
+
+ Finds the for the property in the .
+
+ The to find the property in.
+ The name of the Property to find.
+ The name of the property access strategy.
+ The to get the value of the Property.
+
+ This one takes a propertyAccessor name as we might know the correct strategy by now so we avoid Exceptions which are costly
+
+
+
+
+ Get the NHibernate for the named property of the .
+
+ The to find the Property in.
+ The name of the property/field to find in the class.
+ The name of the property accessor for the property.
+
+ The NHibernate for the named property.
+
+
+
+
+ Get the for the named property of a type.
+
+ The to find the property in.
+ The name of the property/field to find in the class.
+ The name of the property accessor for the property.
+ The for the named property.
+
+
+
+ Get the for the named property of a type.
+
+ The FullName to find the property in.
+ The name of the property/field to find in the class.
+ The name of the property accessor for the property.
+ The for the named property.
+
+
+
+ Returns a reference to the Type.
+
+ The name of the class or a fully qualified name.
+ The Type for the Class.
+
+
+
+ Load a System.Type given is't name.
+
+ The class FullName or AssemblyQualifiedName
+ The System.Type
+
+ If the don't represent an
+ the method try to find the System.Type scanning all Assemblies of the .
+
+ If no System.Type was found for .
+
+
+
+ Returns a from an already loaded Assembly or an
+ Assembly that is loaded with a partial name.
+
+ An .
+ if an exception should be thrown
+ in case of an error, otherwise.
+
+ A object that represents the specified type,
+ or if the type cannot be loaded.
+
+
+ Attempts to get a reference to the type from an already loaded assembly. If the
+ type cannot be found then the assembly is loaded using
+ .
+
+
+
+
+ Returns the value of the static field of .
+
+ The .
+ The name of the field in the .
+ The value contained in the field, or if the type or the field does not exist.
+
+
+
+ Gets the default no arg constructor for the .
+
+ The to find the constructor for.
+
+ The for the no argument constructor, or if the
+ type is an abstract class.
+
+
+ Thrown when there is a problem calling the method GetConstructor on .
+
+
+
+
+ Finds the constructor that takes the parameters.
+
+ The to find the constructor in.
+ The objects to use to find the appropriate constructor.
+
+ An that can be used to create the type with
+ the specified parameters.
+
+
+ Thrown when no constructor with the correct signature can be found.
+
+
+
+
+ Determines if the is a non creatable class.
+
+ The to check.
+ if the is an Abstract Class or an Interface.
+
+
+
+ Unwraps the supplied
+ and returns the inner exception preserving the stack trace.
+
+
+ The to unwrap.
+
+ The unwrapped exception.
+
+
+
+ Try to find a method in a given type.
+
+ The given type.
+ The method info.
+ The found method or null.
+
+ The , in general, become from another .
+
+
+
+
+ Try to find a method in a serie of given types.
+
+ The serie of types where find.
+ The method info.
+ The found method or null.
+
+ The , in general, become from another .
+
+
+
+
+ Used to ensure a collection filtering a given IEnumerable by a certain type.
+
+ The type used like filter.
+
+
+
+ Cache following a "Most Recently Used" (MRU) algorithm for maintaining a
+ bounded in-memory size; the "Least Recently Used" (LRU) entry is the first
+ available for removal from the cache.
+
+
+ This implementation uses a bounded MRU Map to limit the in-memory size of
+ the cache. Thus the size of this cache never grows beyond the stated size.
+
+
+
+
+ Cache following a "Most Recently Used" (MRY) algorithm for maintaining a
+ bounded in-memory size; the "Least Recently Used" (LRU) entry is the first
+ available for removal from the cache.
+
+
+ This implementation uses a "soft limit" to the in-memory size of the cache,
+ meaning that all cache entries are kept within a completely
+ {@link java.lang.ref.SoftReference}-based map with the most recently utilized
+ entries additionally kept in a hard-reference manner to prevent those cache
+ entries soft references from becoming enqueued by the garbage collector.
+ Thus the actual size of this cache impl can actually grow beyond the stated
+ max size bound as long as GC is not actively seeking soft references for
+ enqueuement.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Just a façade for calling string.Split()
+ We don't use our StringTokenizer because string.Split() is
+ more efficient (but it only works when we don't want to retrieve the delimiters)
+
+ separators for the tokens of the list
+ the string that will be broken into tokens
+
+
+
+
+ Splits the String using the StringTokenizer.
+
+ separators for the tokens of the list
+ the string that will be broken into tokens
+ true to include the separators in the tokens.
+
+
+ This is more powerful than Split because you have the option of including or
+ not including the separators in the tokens.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Takes a fully qualified type name and returns the full name of the
+ Class - includes namespaces.
+
+
+
+
+
+
+ Takes a fully qualified type name (can include the assembly) and just returns
+ the name of the Class.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Converts a in the format of "true", "t", "false", or "f" to
+ a .
+
+ The string to convert.
+
+ The value converted to a .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Counts the unquoted instances of the character.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Generate a nice alias for the given class name or collection role
+ name and unique integer. Subclasses do not have to use
+ aliases of this form.
+
+ an alias of the form foo1_
+
+
+
+ Returns the interned string equal to if there is one, or
+ otherwise.
+
+ A
+ A
+
+
+
+ A StringTokenizer java like object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns an unmodifiable view of the specified IDictionary.
+ This method allows modules to provide users with "read-only" access to internal dictionary.
+ Query operations on the returned dictionary "read through" to the specified dictionary,
+ and attempts to modify the returned dictionary,
+ whether direct or via its collection views, result in an .
+
+ The type of keys in the dictionary.
+ The type of values in the dictionary.
+
+
+
+ Initializes a new instance of the UnmodifiableDictionary class that contains elements wrapped
+ from the specified IDictionary.
+
+ The whose elements are wrapped.
+
+
+
+ Count of elements in the collection. Unreliable!
+
+
+
+
+ Indicates failure of an assertion: a possible bug in NHibernate
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+ The exception that is the cause of the current exception. If the innerException parameter
+ is not a null reference, the current exception is raised in a catch block that handles
+ the inner exception.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Controls how the session interacts with the second-level
+ cache and query cache.
+
+
+
+
+ The session will never interact with the cache, except to invalidate
+ cache items when updates occur
+
+
+
+
+ The session will never read items from the cache, but will add items
+ to the cache as it reads them from the database.
+
+
+
+
+ The session may read items from the cache, but will not add items,
+ except to invalidate items when updates occur
+
+
+
+ The session may read items from the cache, and add items to the cache
+
+
+
+ The session will never read items from the cache, but will add items
+ to the cache as it reads them from the database. In this mode, the
+ effect of hibernate.cache.use_minimal_puts is bypassed, in
+ order to force a cache refresh
+
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ The exception that is the cause of the current exception. If the innerException parameter
+ is not a null reference, the current exception is raised in a catch block that handles
+ the inner exception.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+ The exception that is the cause of the current exception. If the innerException parameter
+ is not a null reference, the current exception is raised in a catch block that handles
+ the inner exception.
+
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Transforms Criteria queries
+
+
+
+
+ Returns a clone of the original criteria, which will return the count
+ of rows that are returned by the original criteria query.
+
+
+
+
+ Returns a clone of the original criteria, which will return the count
+ of rows that are returned by the original criteria query.
+
+
+
+
+ Creates an exact clone of the criteria
+
+
+
+
+
+ Creates an exact clone of the criteria
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+ The name of the duplicate object
+ The type of the duplicate object
+
+
+
+ Initializes a new instance of the class.
+
+ The name of the duplicate object
+ The type of the duplicate object
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ The type of the duplicated object
+
+
+
+
+ The name of the duplicated object
+
+
+
+
+ Allows user code to inspect and/or change property values before they are written and after they
+ are read from the database
+
+
+
+ There might be a single instance of IInterceptor for a SessionFactory, or a new
+ instance might be specified for each ISession. Whichever approach is used, the interceptor
+ must be serializable if the ISession is to be serializable. This means that SessionFactory
+ -scoped interceptors should implement ReadResolve().
+
+
+ The ISession may not be invoked from a callback (nor may a callback cause a collection or
+ proxy to be lazily initialized).
+
+
+
+
+
+ Called just before an object is initialized
+
+
+
+
+
+
+
+ The interceptor may change the state, which will be propagated to the persistent
+ object. Note that when this method is called, entity will be an empty
+ uninitialized instance of the class.
+ if the user modified the state in any way
+
+
+
+ Called when an object is detected to be dirty, during a flush.
+
+
+
+
+
+
+
+
+ The interceptor may modify the detected currentState, which will be propagated to
+ both the database and the persistent object. Note that all flushes end in an actual
+ synchronization with the database, in which as the new currentState will be propagated
+ to the object, but not necessarily (immediately) to the database. It is strongly recommended
+ that the interceptor not modify the previousState.
+
+ if the user modified the currentState in any way
+
+
+
+ Called before an object is saved
+
+
+
+
+
+
+
+ The interceptor may modify the state, which will be used for the SQL INSERT
+ and propagated to the persistent object
+
+ if the user modified the state in any way
+
+
+
+ Called before an object is deleted
+
+
+
+
+
+
+
+ It is not recommended that the interceptor modify the state.
+
+
+
+ Called before a collection is (re)created.
+
+
+ Called before a collection is deleted.
+
+
+ Called before a collection is updated.
+
+
+
+ Called before a flush
+
+ The entities
+
+
+
+ Called after a flush that actually ends in execution of the SQL statements required to
+ synchronize in-memory state with the database.
+
+ The entitites
+
+
+
+ Called when a transient entity is passed to SaveOrUpdate.
+
+
+ The return value determines if the object is saved
+
+ - the entity is passed to Save(), resulting in an INSERT
+ - the entity is passed to Update(), resulting in an UPDATE
+ - Hibernate uses the unsaved-value mapping to determine if the object is unsaved
+
+
+ A transient entity
+ Boolean or to choose default behaviour
+
+
+
+ Called from Flush(). The return value determines whether the entity is updated
+
+
+
+ an array of property indicies - the entity is dirty
+ an empty array - the entity is not dirty
+ - use Hibernate's default dirty-checking algorithm
+
+
+ A persistent entity
+
+
+
+
+
+ An array of dirty property indicies or to choose default behavior
+
+
+
+ Instantiate the entity class. Return to indicate that Hibernate should use the default
+ constructor of the class
+
+ the name of the entity
+ The type of entity instance to be returned.
+ the identifier of the new instance
+ An instance of the class, or to choose default behaviour
+
+ The identifier property of the returned instance
+ should be initialized with the given identifier.
+
+
+
+ Get the entity name for a persistent or transient instance
+ an entity instance
+ the name of the entity
+
+
+ Get a fully loaded entity instance that is cached externally
+ the name of the entity
+ the instance identifier
+ a fully initialized entity
+
+
+
+ Called when a NHibernate transaction is begun via the NHibernate
+ API. Will not be called if transactions are being controlled via some other mechanism.
+
+
+
+
+ Called before a transaction is committed (but not before rollback).
+
+
+
+
+ Called after a transaction is committed or rolled back.
+
+
+
+ Called when sql string is being prepared.
+ sql to be prepared
+ original or modified sql
+
+
+
+ Called when a session-scoped (and only session scoped) interceptor is attached
+ to a session
+
+
+ session-scoped-interceptor is an instance of the interceptor used only for one session.
+ The use of singleton-interceptor may cause problems in multi-thread scenario.
+
+
+
+
+
+ Defines the representation modes available for entities.
+
+
+
+ Represents a fetching strategy.
+
+
+ This is used together with the API to specify
+ runtime fetching strategies.
+
+ For Hql queries, use the FETCH keyword instead.
+
+
+
+
+
+ Default to the setting configured in the mapping file.
+
+
+
+
+ Fetch eagerly, using a separate select. Equivalent to
+ fetch="select" (and outer-join="false")
+
+
+
+
+ Fetch using an outer join. Equivalent to
+ fetch="join" (and outer-join="true")
+
+
+
+
+ Indicates that an expected getter or setter method could not be found on a class
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+ The exception that is the cause of the current exception. If the innerException parameter
+ is not a null reference, the current exception is raised in a catch block that handles
+ the inner exception.
+
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Represents a flushing strategy.
+
+
+ The flush process synchronizes database state with session state by detecting state
+ changes and executing SQL statements
+
+
+
+
+ Special value for unspecified flush mode (like in Java).
+
+
+
+
+ The ISession is never flushed unless Flush() is explicitly
+ called by the application. This mode is very efficient for read only
+ transactions
+
+
+
+
+ The ISession is flushed when Transaction.Commit() is called
+
+
+
+
+ The ISession is sometimes flushed before query execution in order to
+ ensure that queries never return stale state. This is the default flush mode.
+
+
+
+
+ The is flushed before every query. This is
+ almost always unnecessary and inefficient.
+
+
+
+
+ Provides XML marshalling for classes registered with a SessionFactory
+
+
+
+ Hibernate defines a generic XML format that may be used to represent any class
+ (hibernate-generic.dtd). The user configures an XSLT stylesheet for marshalling
+ data from this generic format to an application and/or user readable format. By default,
+ Hibernate will use hibernate-default.xslt which maps data to a useful human-
+ readable format.
+
+
+ The property xml.output_stylesheet specifies a user-written stylesheet.
+ Hibernate will attempt to load the stylesheet from the classpath first and if not found,
+ will attempt to load it as a file
+
+
+ It is not intended that implementors be threadsafe
+
+
+
+
+
+ Add an object to the output document.
+
+ A transient or persistent instance
+ Databinder
+
+
+
+ Add a collection of objects to the output document
+
+ A collection of transient or persistent instance
+ Databinder
+
+
+
+ Output the generic XML representation of the bound objects
+
+ Generic Xml representation
+
+
+
+ Output the generic XML Representation of the bound objects
+ to a XmlDocument
+
+ A generic Xml tree
+
+
+
+ Output the custom XML representation of the bound objects
+
+ Custom Xml representation
+
+
+
+ Output the custom XML representation of the bound objects as
+ an XmlDocument
+
+ A custom Xml Tree
+
+
+
+ Controls whether bound objects (and their associated objects) that are lazily instanciated
+ are explicityl initialized or left as they are
+
+ True to explicitly initilize lazy objects, false to leave them in the state they are in
+
+
+
+ Performs a null safe comparison using "==" instead of Object.Equals()
+
+ First object to compare.
+ Second object to compare.
+
+ true if x is the same instance as y or if both are null references; otherwise, false.
+
+
+ This is Lazy collection safe since it uses ,
+ unlike Object.Equals() which currently causes NHibernate to load up the collection.
+ This behaivior of Collections is likely to change because Java's collections override Equals() and
+ .net's collections don't. So in .net there is no need to override Equals() and
+ GetHashCode() on the NHibernate Collection implementations.
+
+
+
+
+ Thrown if Hibernate can't instantiate an entity or component class at runtime.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+ The exception that is the cause of the current exception. If the innerException parameter
+ is not a null reference, the current exception is raised in a catch block that handles
+ the inner exception.
+
+ The that NHibernate was trying to instantiate.
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Sets the serialization info for after
+ getting the info from the base Exception.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Gets the that NHibernate was trying to instantiate.
+
+
+
+
+ Gets a message that describes the current .
+
+
+ The error message that explains the reason for this exception and the Type that
+ was trying to be instantiated.
+
+
+
+
+ Thrown when an invalid type is specified as a proxy for a class.
+ The exception is also thrown when a class is specified as lazy,
+ but cannot be used as a proxy for itself.
+
+
+
+
+ A problem occurred trying to lazily initialize a collection or proxy (for example the session
+ was closed) or iterate query results.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The name of the entity where the exception was thrown
+ The id of the entity where the exception was thrown
+ The message that describes the error.
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+
+
+ Initializes a new instance of the class.
+
+
+ The exception that is the cause of the current exception. If the innerException parameter
+ is not a null reference, the current exception is raised in a catch block that handles
+ the inner exception.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+ The exception that is the cause of the current exception. If the innerException parameter
+ is not a null reference, the current exception is raised in a catch block that handles
+ the inner exception.
+
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Instances represent a lock mode for a row of a relational database table.
+
+
+ It is not intended that users spend much time worrying about locking since Hibernate
+ usually obtains exactly the right lock level automatically. Some "advanced" users may
+ wish to explicitly specify lock levels.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Is this lock mode more restrictive than the given lock mode?
+
+
+
+
+
+ Is this lock mode less restrictive than the given lock mode?
+
+
+
+
+
+ No lock required.
+
+
+ If an object is requested with this lock mode, a Read lock
+ might be obtained if necessary.
+
+
+
+
+ A shared lock.
+
+
+ Objects are loaded in Read mode by default
+
+
+
+
+ An upgrade lock.
+
+
+ Objects loaded in this lock mode are materialized using an
+ SQL SELECT ... FOR UPDATE
+
+
+
+
+ Attempt to obtain an upgrade lock, using an Oracle-style
+ SELECT ... FOR UPGRADE NOWAIT.
+
+
+ The semantics of this lock mode, once obtained, are the same as Upgrade
+
+
+
+
+ A Write lock is obtained when an object is updated or inserted.
+
+
+ This is not a valid mode for Load() or Lock().
+
+
+
+
+ Similar to except that, for versioned entities,
+ it results in a forced version increment.
+
+
+
+
+ Provides access to the full range of NHibernate built-in types.
+ IType instances may be used to bind values to query parameters.
+ Also a factory for new Blobs and Clobs.
+
+
+
+
+ Guesses the IType of this object
+
+ The obj.
+
+
+
+
+ Guesses the IType by the type
+
+ The type.
+
+
+
+
+ NHibernate Ansi String type
+
+
+
+
+ NHibernate binary type
+
+
+
+
+ NHibernate binary blob type
+
+
+
+
+ NHibernate boolean type
+
+
+
+
+ NHibernate byte type
+
+
+
+
+ NHibernate character type
+
+
+
+
+ NHibernate Culture Info type
+
+
+
+
+ NHibernate date type
+
+
+
+
+ NHibernate date type
+
+
+
+
+ NHibernate date type
+
+
+
+
+ NHibernate date type
+
+
+
+
+ NHibernate decimal type
+
+
+
+
+ NHibernate double type
+
+
+
+
+ NHibernate Currency type (System.Decimal - DbType.Currency)
+
+
+
+
+ NHibernate Guid type.
+
+
+
+
+ NHibernate System.Int16 (short in C#) type
+
+
+
+
+ NHibernate System.Int32 (int in C#) type
+
+
+
+
+ NHibernate System.Int64 (long in C#) type
+
+
+
+
+ NHibernate System.SByte type
+
+
+
+
+ NHibernate System.UInt16 (ushort in C#) type
+
+
+
+
+ NHibernate System.UInt32 (uint in C#) type
+
+
+
+
+ NHibernate System.UInt64 (ulong in C#) type
+
+
+
+
+ NHibernate System.Single (float in C#) Type
+
+
+
+
+ NHibernate String type
+
+
+
+
+ NHibernate string clob type
+
+
+
+
+ NHibernate Time type
+
+
+
+
+ NHibernate Ticks type
+
+
+
+
+ NHibernate Ticks type
+
+
+
+
+ NHibernate Ticks type
+
+
+
+
+ NHibernate Timestamp type
+
+
+
+
+ NHibernate TrueFalse type
+
+
+
+
+ NHibernate YesNo type
+
+
+
+
+ NHibernate class type
+
+
+
+
+ NHibernate class meta type for association of kind any.
+
+
+
+
+
+ NHibernate serializable type
+
+
+
+
+ NHibernate System.Object type
+
+
+
+
+ A NHibernate persistent enum type
+
+
+
+
+
+
+ A NHibernate serializable type
+
+
+
+
+
+
+ A NHibernate serializable type
+
+ a type mapping to a single column
+ the entity identifier type
+
+
+
+
+ A NHibernate persistent object (entity) type
+
+ a mapped entity class
+
+
+
+
+ A NHibernate persistent object (entity) type
+
+ a mapped entity class
+
+
+
+ A Hibernate persistent object (entity) type.
+ a mapped entity class
+
+
+
+ A NHibernate custom type
+
+ a class that implements UserType
+
+
+
+
+ Force initialization of a proxy or persistent collection.
+
+ a persistable object, proxy, persistent collection or null
+ if we can't initialize the proxy at this time, eg. the Session was closed
+
+
+
+ Is the proxy or persistent collection initialized?
+
+ a persistable object, proxy, persistent collection or null
+ true if the argument is already initialized, or is not a proxy or collection
+
+
+
+ Get the true, underlying class of a proxied persistent class. This operation
+ will initialize a proxy by side-effect.
+
+ a persistable object or proxy
+ the true class of the instance
+
+
+
+ Close an obtained from an
+ returned by NHibernate immediately, instead of waiting until the session is
+ closed or disconnected.
+
+
+
+
+ Close an returned by NHibernate immediately,
+ instead of waiting until the session is closed or disconnected.
+
+
+
+
+ Check if the property is initialized. If the named property does not exist
+ or is not persistent, this method always returns true.
+
+ The potential proxy
+ the name of a persistent attribute of the object
+
+ true if the named property of the object is not listed as uninitialized;
+ false if the object is an uninitialized proxy, or the named property is uninitialized
+
+
+
+
+ This exception is thrown when an operation would
+ break session-scoped identity. This occurs if the
+ user tries to associate two different instances of
+ the same class with a particular identifier,
+ in the scope of a single .
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+ The identifier of the object that caused the exception.
+ The EntityName of the object attempted to be loaded.
+
+
+
+ Initializes a new instance of the class.
+
+ The identifier of the object that caused the exception.
+ The EntityName of the object attempted to be loaded.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Sets the serialization info for after
+ getting the info from the base Exception.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Thrown when the application calls IQuery.UniqueResult()
+ and the query returned more than one result. Unlike all other NHibernate
+ exceptions, this one is recoverable!
+
+
+
+
+ Initializes a new instance of the class.
+
+ The number of items in the result.
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Thrown when the user tries to pass a deleted object to the ISession.
+
+
+
+
+ Thrown when Hibernate could not resolve an object by id, especially when
+ loading an association.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The identifier of the object that caused the exception.
+ The of the object attempted to be loaded.
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+ The identifier of the object that caused the exception.
+ The of the object attempted to be loaded.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Thrown when ISession.Load() fails to select a row with
+ the given primary key (identifier value). This exception might not
+ be thrown when Load() is called, even if there was no
+ row on the database, because Load() returns a proxy if
+ possible. Applications should use ISession.Get() to test if
+ a row exists in the database.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The identifier of the object that was attempting to be loaded.
+ The that NHibernate was trying to find a row for in the database.
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Thrown when the user passes a persistent instance to a ISession method that expects a
+ transient instance
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ A problem occurred accessing a property of an instance of a persistent class by reflection
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+ The exception that is the cause of the current exception. If the innerException parameter
+ is not a null reference, the current exception is raised in a catch block that handles
+ the inner exception.
+
+ A indicating if this was a "setter" operation.
+ The that NHibernate was trying find the Property or Field in.
+ The mapped property name that was trying to be accessed.
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Sets the serialization info for after
+ getting the info from the base Exception.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Gets the that NHibernate was trying find the Property or Field in.
+
+
+
+
+ Gets a message that describes the current .
+
+
+ The error message that explains the reason for this exception and
+ information about the mapped property and its usage.
+
+
+
+
+ Indicates that an expected getter or setter method could not be found on a class
+
+
+
+
+ Initializes a new instance of the class,
+ used when a property get/set accessor is missing.
+
+ The that is missing the property
+ The name of the missing property
+ The type of the missing accessor
+ ("getter" or "setter")
+
+
+
+ Initializes a new instance of the class,
+ used when a field is missing.
+
+ The that is missing the field
+ The name of the missing property
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+ The that NHibernate was trying to access.
+ The name of the Property that was being get/set.
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Sets the serialization info for after
+ getting the info from the base Exception.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Represents a replication strategy.
+
+
+
+
+
+ Throw an exception when a row already exists
+
+
+
+
+ Ignore replicated entities when a row already exists
+
+
+
+
+ When a row already exists, choose the latest version
+
+
+
+
+ Overwrite existing rows when a row already exists
+
+
+
+
+ Thrown when a version number check failed, indicating that the
+ contained stale data (when using long transactions with
+ versioning).
+
+
+
+
+ Initializes a new instance of the class.
+
+ The EntityName that NHibernate was trying to update in the database.
+ The identifier of the object that is stale.
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Sets the serialization info for after
+ getting the info from the base Exception.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Gets the EntityName that NHibernate was trying to update in the database.
+
+
+
+
+ Gets the identifier of the object that is stale.
+
+
+
+
+ Gets a message that describes the current .
+
+ The error message that explains the reason for this exception.
+
+
+
+ Indicated that a transaction could not be begun, committed, or rolled back
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+ The exception that is the cause of the current exception. If the innerException parameter
+ is not a null reference, the current exception is raised in a catch block that handles
+ the inner exception.
+
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Throw when the user passes a transient instance to a ISession method that expects
+ a persistent instance
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Used when a user provided type does not match the expected one
+
+
+
+
+ Thrown when ISession.Load() selects a row with the given primary key (identifier value)
+ but the row's discriminator value specifies a different subclass from the one requested
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message that describes the error.
+ The identifier of the object that was being loaded.
+ The name of entity that NHibernate was told to load.
+
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Sets the serialization info for after
+ getting the info from the base Exception.
+
+
+ The that holds the serialized object
+ data about the exception being thrown.
+
+
+ The that contains contextual information about the source or destination.
+
+
+
+
+ Gets the identifier of the object that was being loaded.
+
+
+
+
+ Gets the name of entity that NHibernate was told to load.
+
+
+
+
+ Gets a message that describes the current .
+
+ The error message that explains the reason for this exception.
+
+
+
diff --git a/lib/NHibernate21/net/4.0/log4net.dll b/lib/NHibernate21/net/4.0/log4net.dll
new file mode 100644
index 00000000..ffc57e11
Binary files /dev/null and b/lib/NHibernate21/net/4.0/log4net.dll differ
diff --git a/lib/NHibernate21/net/4.0/log4net.license.txt b/lib/NHibernate21/net/4.0/log4net.license.txt
new file mode 100644
index 00000000..29f81d81
--- /dev/null
+++ b/lib/NHibernate21/net/4.0/log4net.license.txt
@@ -0,0 +1,201 @@
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/lib/NHibernate21/net/4.0/log4net.xml b/lib/NHibernate21/net/4.0/log4net.xml
new file mode 100644
index 00000000..fab7af26
--- /dev/null
+++ b/lib/NHibernate21/net/4.0/log4net.xml
@@ -0,0 +1,28655 @@
+
+
+
+ log4net
+
+
+
+
+ Appender that logs to a database.
+
+
+
+ appends logging events to a table within a
+ database. The appender can be configured to specify the connection
+ string by setting the property.
+ The connection type (provider) can be specified by setting the
+ property. For more information on database connection strings for
+ your specific database see http://www.connectionstrings.com/.
+
+
+ Records are written into the database either using a prepared
+ statement or a stored procedure. The property
+ is set to (System.Data.CommandType.Text) to specify a prepared statement
+ or to (System.Data.CommandType.StoredProcedure) to specify a stored
+ procedure.
+
+
+ The prepared statement text or the name of the stored procedure
+ must be set in the property.
+
+
+ The prepared statement or stored procedure can take a number
+ of parameters. Parameters are added using the
+ method. This adds a single to the
+ ordered list of parameters. The
+ type may be subclassed if required to provide database specific
+ functionality. The specifies
+ the parameter name, database type, size, and how the value should
+ be generated using a .
+
+
+
+ An example of a SQL Server table that could be logged to:
+
+ CREATE TABLE [dbo].[Log] (
+ [ID] [int] IDENTITY (1, 1) NOT NULL ,
+ [Date] [datetime] NOT NULL ,
+ [Thread] [varchar] (255) NOT NULL ,
+ [Level] [varchar] (20) NOT NULL ,
+ [Logger] [varchar] (255) NOT NULL ,
+ [Message] [varchar] (4000) NOT NULL
+ ) ON [PRIMARY]
+
+
+
+ An example configuration to log to the above table:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Julian Biddle
+ Nicko Cadell
+ Gert Driesen
+ Lance Nehring
+
+
+
+ Abstract base class implementation of that
+ buffers events in a fixed size buffer.
+
+
+
+ This base class should be used by appenders that need to buffer a
+ number of events before logging them. For example the
+ buffers events and then submits the entire contents of the buffer to
+ the underlying database in one go.
+
+
+ Subclasses should override the
+ method to deliver the buffered events.
+
+ The BufferingAppenderSkeleton maintains a fixed size cyclic
+ buffer of events. The size of the buffer is set using
+ the property.
+
+ A is used to inspect
+ each event as it arrives in the appender. If the
+ triggers, then the current buffer is sent immediately
+ (see ). Otherwise the event
+ is stored in the buffer. For example, an evaluator can be used to
+ deliver the events immediately when an ERROR event arrives.
+
+
+ The buffering appender can be configured in a mode.
+ By default the appender is NOT lossy. When the buffer is full all
+ the buffered events are sent with .
+ If the property is set to true then the
+ buffer will not be sent when it is full, and new events arriving
+ in the appender will overwrite the oldest event in the buffer.
+ In lossy mode the buffer will only be sent when the
+ triggers. This can be useful behavior when you need to know about
+ ERROR events but not about events with a lower level, configure an
+ evaluator that will trigger when an ERROR event arrives, the whole
+ buffer will be sent which gives a history of events leading up to
+ the ERROR event.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Abstract base class implementation of .
+
+
+
+ This class provides the code for common functionality, such
+ as support for threshold filtering and support for general filters.
+
+
+ Appenders can also implement the interface. Therefore
+ they would require that the method
+ be called after the appenders properties have been configured.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Implement this interface for your own strategies for printing log statements.
+
+
+
+ Implementors should consider extending the
+ class which provides a default implementation of this interface.
+
+
+ Appenders can also implement the interface. Therefore
+ they would require that the method
+ be called after the appenders properties have been configured.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Closes the appender and releases resources.
+
+
+
+ Releases any resources allocated within the appender such as file handles,
+ network connections, etc.
+
+
+ It is a programming error to append to a closed appender.
+
+
+
+
+
+ Log the logging event in Appender specific way.
+
+ The event to log
+
+
+ This method is called to log a message into this appender.
+
+
+
+
+
+ Gets or sets the name of this appender.
+
+ The name of the appender.
+
+ The name uniquely identifies the appender.
+
+
+
+
+ Interface for appenders that support bulk logging.
+
+
+
+ This interface extends the interface to
+ support bulk logging of objects. Appenders
+ should only implement this interface if they can bulk log efficiently.
+
+
+ Nicko Cadell
+
+
+
+ Log the array of logging events in Appender specific way.
+
+ The events to log
+
+
+ This method is called to log an array of events into this appender.
+
+
+
+
+
+ Interface used to delay activate a configured object.
+
+
+
+ This allows an object to defer activation of its options until all
+ options have been set. This is required for components which have
+ related options that remain ambiguous until all are set.
+
+
+ If a component implements this interface then the method
+ must be called by the container after its all the configured properties have been set
+ and before the component can be used.
+
+
+ Nicko Cadell
+
+
+
+ Activate the options that were previously set with calls to properties.
+
+
+
+ This allows an object to defer activation of its options until all
+ options have been set. This is required for components which have
+ related options that remain ambiguous until all are set.
+
+
+ If a component implements this interface then this method must be called
+ after its properties have been set before the component can be used.
+
+
+
+
+
+ Initial buffer size
+
+
+
+
+ Maximum buffer size before it is recycled
+
+
+
+
+ Default constructor
+
+
+ Empty default constructor
+
+
+
+
+ Finalizes this appender by calling the implementation's
+ method.
+
+
+
+ If this appender has not been closed then the Finalize method
+ will call .
+
+
+
+
+
+ Initialize the appender based on the options set
+
+
+
+ This is part of the delayed object
+ activation scheme. The method must
+ be called on this object after the configuration properties have
+ been set. Until is called this
+ object is in an undefined state and must not be used.
+
+
+ If any of the configuration properties are modified then
+ must be called again.
+
+
+
+
+
+ Closes the appender and release resources.
+
+
+
+ Release any resources allocated within the appender such as file handles,
+ network connections, etc.
+
+
+ It is a programming error to append to a closed appender.
+
+
+ This method cannot be overridden by subclasses. This method
+ delegates the closing of the appender to the
+ method which must be overridden in the subclass.
+
+
+
+
+
+ Performs threshold checks and invokes filters before
+ delegating actual logging to the subclasses specific
+ method.
+
+ The event to log.
+
+
+ This method cannot be overridden by derived classes. A
+ derived class should override the method
+ which is called by this method.
+
+
+ The implementation of this method is as follows:
+
+
+
+
+
+ Checks that the severity of the
+ is greater than or equal to the of this
+ appender.
+
+
+
+ Checks that the chain accepts the
+ .
+
+
+
+
+ Calls and checks that
+ it returns true.
+
+
+
+
+ If all of the above steps succeed then the
+ will be passed to the abstract method.
+
+
+
+
+
+ Performs threshold checks and invokes filters before
+ delegating actual logging to the subclasses specific
+ method.
+
+ The array of events to log.
+
+
+ This method cannot be overridden by derived classes. A
+ derived class should override the method
+ which is called by this method.
+
+
+ The implementation of this method is as follows:
+
+
+
+
+
+ Checks that the severity of the
+ is greater than or equal to the of this
+ appender.
+
+
+
+ Checks that the chain accepts the
+ .
+
+
+
+
+ Calls and checks that
+ it returns true.
+
+
+
+
+ If all of the above steps succeed then the
+ will be passed to the method.
+
+
+
+
+
+ Test if the logging event should we output by this appender
+
+ the event to test
+ true if the event should be output, false if the event should be ignored
+
+
+ This method checks the logging event against the threshold level set
+ on this appender and also against the filters specified on this
+ appender.
+
+
+ The implementation of this method is as follows:
+
+
+
+
+
+ Checks that the severity of the
+ is greater than or equal to the of this
+ appender.
+
+
+
+ Checks that the chain accepts the
+ .
+
+
+
+
+
+
+
+
+ Adds a filter to the end of the filter chain.
+
+ the filter to add to this appender
+
+
+ The Filters are organized in a linked list.
+
+
+ Setting this property causes the new filter to be pushed onto the
+ back of the filter chain.
+
+
+
+
+
+ Clears the filter list for this appender.
+
+
+
+ Clears the filter list for this appender.
+
+
+
+
+
+ Checks if the message level is below this appender's threshold.
+
+ to test against.
+
+
+ If there is no threshold set, then the return value is always true.
+
+
+
+ true if the meets the
+ requirements of this appender.
+
+
+
+
+ Is called when the appender is closed. Derived classes should override
+ this method if resources need to be released.
+
+
+
+ Releases any resources allocated within the appender such as file handles,
+ network connections, etc.
+
+
+ It is a programming error to append to a closed appender.
+
+
+
+
+
+ Subclasses of should implement this method
+ to perform actual logging.
+
+ The event to append.
+
+
+ A subclass must implement this method to perform
+ logging of the .
+
+ This method will be called by
+ if all the conditions listed for that method are met.
+
+
+ To restrict the logging of events in the appender
+ override the method.
+
+
+
+
+
+ Append a bulk array of logging events.
+
+ the array of logging events
+
+
+ This base class implementation calls the
+ method for each element in the bulk array.
+
+
+ A sub class that can better process a bulk array of events should
+ override this method in addition to .
+
+
+
+
+
+ Called before as a precondition.
+
+
+
+ This method is called by
+ before the call to the abstract method.
+
+
+ This method can be overridden in a subclass to extend the checks
+ made before the event is passed to the method.
+
+
+ A subclass should ensure that they delegate this call to
+ this base class if it is overridden.
+
+
+ true if the call to should proceed.
+
+
+
+ Renders the to a string.
+
+ The event to render.
+ The event rendered as a string.
+
+
+ Helper method to render a to
+ a string. This appender must have a
+ set to render the to
+ a string.
+
+ If there is exception data in the logging event and
+ the layout does not process the exception, this method
+ will append the exception text to the rendered string.
+
+
+ Where possible use the alternative version of this method
+ .
+ That method streams the rendering onto an existing Writer
+ which can give better performance if the caller already has
+ a open and ready for writing.
+
+
+
+
+
+ Renders the to a string.
+
+ The event to render.
+ The TextWriter to write the formatted event to
+
+
+ Helper method to render a to
+ a string. This appender must have a
+ set to render the to
+ a string.
+
+ If there is exception data in the logging event and
+ the layout does not process the exception, this method
+ will append the exception text to the rendered string.
+
+
+ Use this method in preference to
+ where possible. If, however, the caller needs to render the event
+ to a string then does
+ provide an efficient mechanism for doing so.
+
+
+
+
+
+ The layout of this appender.
+
+
+ See for more information.
+
+
+
+
+ The name of this appender.
+
+
+ See for more information.
+
+
+
+
+ The level threshold of this appender.
+
+
+
+ There is no level threshold filtering by default.
+
+
+ See for more information.
+
+
+
+
+
+ It is assumed and enforced that errorHandler is never null.
+
+
+
+ It is assumed and enforced that errorHandler is never null.
+
+
+ See for more information.
+
+
+
+
+
+ The first filter in the filter chain.
+
+
+
+ Set to null initially.
+
+
+ See for more information.
+
+
+
+
+
+ The last filter in the filter chain.
+
+
+ See for more information.
+
+
+
+
+ Flag indicating if this appender is closed.
+
+
+ See for more information.
+
+
+
+
+ The guard prevents an appender from repeatedly calling its own DoAppend method
+
+
+
+
+ StringWriter used to render events
+
+
+
+
+ Gets or sets the threshold of this appender.
+
+
+ The threshold of the appender.
+
+
+
+ All log events with lower level than the threshold level are ignored
+ by the appender.
+
+
+ In configuration files this option is specified by setting the
+ value of the option to a level
+ string, such as "DEBUG", "INFO" and so on.
+
+
+
+
+
+ Gets or sets the for this appender.
+
+ The of the appender
+
+
+ The provides a default
+ implementation for the property.
+
+
+
+
+
+ The filter chain.
+
+ The head of the filter chain filter chain.
+
+
+ Returns the head Filter. The Filters are organized in a linked list
+ and so all Filters on this Appender are available through the result.
+
+
+
+
+
+ Gets or sets the for this appender.
+
+ The layout of the appender.
+
+
+ See for more information.
+
+
+
+
+
+
+ Gets or sets the name of this appender.
+
+ The name of the appender.
+
+
+ The name uniquely identifies the appender.
+
+
+
+
+
+ Tests if this appender requires a to be set.
+
+
+
+ In the rather exceptional case, where the appender
+ implementation admits a layout but can also work without it,
+ then the appender should return true.
+
+
+ This default implementation always returns true.
+
+
+
+ true if the appender requires a layout object, otherwise false.
+
+
+
+
+ The default buffer size.
+
+
+ The default size of the cyclic buffer used to store events.
+ This is set to 512 by default.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ Protected default constructor to allow subclassing.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ the events passed through this appender must be
+ fixed by the time that they arrive in the derived class' SendBuffer method.
+
+
+ Protected constructor to allow subclassing.
+
+
+ The should be set if the subclass
+ expects the events delivered to be fixed even if the
+ is set to zero, i.e. when no buffering occurs.
+
+
+
+
+
+ Flush the currently buffered events
+
+
+
+ Flushes any events that have been buffered.
+
+
+ If the appender is buffering in mode then the contents
+ of the buffer will NOT be flushed to the appender.
+
+
+
+
+
+ Flush the currently buffered events
+
+ set to true to flush the buffer of lossy events
+
+
+ Flushes events that have been buffered. If is
+ false then events will only be flushed if this buffer is non-lossy mode.
+
+
+ If the appender is buffering in mode then the contents
+ of the buffer will only be flushed if is true.
+ In this case the contents of the buffer will be tested against the
+ and if triggering will be output. All other buffered
+ events will be discarded.
+
+
+ If is true then the buffer will always
+ be emptied by calling this method.
+
+
+
+
+
+ Initialize the appender based on the options set
+
+
+
+ This is part of the delayed object
+ activation scheme. The method must
+ be called on this object after the configuration properties have
+ been set. Until is called this
+ object is in an undefined state and must not be used.
+
+
+ If any of the configuration properties are modified then
+ must be called again.
+
+
+
+
+
+ Close this appender instance.
+
+
+
+ Close this appender instance. If this appender is marked
+ as not then the remaining events in
+ the buffer must be sent when the appender is closed.
+
+
+
+
+
+ This method is called by the method.
+
+ the event to log
+
+
+ Stores the in the cyclic buffer.
+
+
+ The buffer will be sent (i.e. passed to the
+ method) if one of the following conditions is met:
+
+
+
+ The cyclic buffer is full and this appender is
+ marked as not lossy (see )
+
+
+ An is set and
+ it is triggered for the
+ specified.
+
+
+
+ Before the event is stored in the buffer it is fixed
+ (see ) to ensure that
+ any data referenced by the event will be valid when the buffer
+ is processed.
+
+
+
+
+
+ Sends the contents of the buffer.
+
+ The first logging event.
+ The buffer containing the events that need to be send.
+
+
+ The subclass must override .
+
+
+
+
+
+ Sends the events.
+
+ The events that need to be send.
+
+
+ The subclass must override this method to process the buffered events.
+
+
+
+
+
+ The size of the cyclic buffer used to hold the logging events.
+
+
+ Set to by default.
+
+
+
+
+ The cyclic buffer used to store the logging events.
+
+
+
+
+ The triggering event evaluator that causes the buffer to be sent immediately.
+
+
+ The object that is used to determine if an event causes the entire
+ buffer to be sent immediately. This field can be null, which
+ indicates that event triggering is not to be done. The evaluator
+ can be set using the property. If this appender
+ has the ( property) set to
+ true then an must be set.
+
+
+
+
+ Indicates if the appender should overwrite events in the cyclic buffer
+ when it becomes full, or if the buffer should be flushed when the
+ buffer is full.
+
+
+ If this field is set to true then an must
+ be set.
+
+
+
+
+ The triggering event evaluator filters discarded events.
+
+
+ The object that is used to determine if an event that is discarded should
+ really be discarded or if it should be sent to the appenders.
+ This field can be null, which indicates that all discarded events will
+ be discarded.
+
+
+
+
+ Value indicating which fields in the event should be fixed
+
+
+ By default all fields are fixed
+
+
+
+
+ The events delivered to the subclass must be fixed.
+
+
+
+
+ Gets or sets a value that indicates whether the appender is lossy.
+
+
+ true if the appender is lossy, otherwise false. The default is false.
+
+
+
+ This appender uses a buffer to store logging events before
+ delivering them. A triggering event causes the whole buffer
+ to be send to the remote sink. If the buffer overruns before
+ a triggering event then logging events could be lost. Set
+ to false to prevent logging events
+ from being lost.
+
+ If is set to true then an
+ must be specified.
+
+
+
+
+ Gets or sets the size of the cyclic buffer used to hold the
+ logging events.
+
+
+ The size of the cyclic buffer used to hold the logging events.
+
+
+
+ The option takes a positive integer
+ representing the maximum number of logging events to collect in
+ a cyclic buffer. When the is reached,
+ oldest events are deleted as new events are added to the
+ buffer. By default the size of the cyclic buffer is 512 events.
+
+
+ If the is set to a value less than
+ or equal to 1 then no buffering will occur. The logging event
+ will be delivered synchronously (depending on the
+ and properties). Otherwise the event will
+ be buffered.
+
+
+
+
+
+ Gets or sets the that causes the
+ buffer to be sent immediately.
+
+
+ The that causes the buffer to be
+ sent immediately.
+
+
+
+ The evaluator will be called for each event that is appended to this
+ appender. If the evaluator triggers then the current buffer will
+ immediately be sent (see ).
+
+ If is set to true then an
+ must be specified.
+
+
+
+
+ Gets or sets the value of the to use.
+
+
+ The value of the to use.
+
+
+
+ The evaluator will be called for each event that is discarded from this
+ appender. If the evaluator triggers then the current buffer will immediately
+ be sent (see ).
+
+
+
+
+
+ Gets or sets a value indicating if only part of the logging event data
+ should be fixed.
+
+
+ true if the appender should only fix part of the logging event
+ data, otherwise false. The default is false.
+
+
+
+ Setting this property to true will cause only part of the
+ event data to be fixed and serialized. This will improve performance.
+
+
+ See for more information.
+
+
+
+
+
+ Gets or sets a the fields that will be fixed in the event
+
+
+ The event fields that will be fixed before the event is buffered
+
+
+
+ The logging event needs to have certain thread specific values
+ captured before it can be buffered. See
+ for details.
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Public default constructor to initialize a new instance of this class.
+
+
+
+
+ Initialize the appender based on the options set
+
+
+
+ This is part of the delayed object
+ activation scheme. The method must
+ be called on this object after the configuration properties have
+ been set. Until is called this
+ object is in an undefined state and must not be used.
+
+
+ If any of the configuration properties are modified then
+ must be called again.
+
+
+
+
+
+ Override the parent method to close the database
+
+
+
+ Closes the database command and database connection.
+
+
+
+
+
+ Inserts the events into the database.
+
+ The events to insert into the database.
+
+
+ Insert all the events specified in the
+ array into the database.
+
+
+
+
+
+ Adds a parameter to the command.
+
+ The parameter to add to the command.
+
+
+ Adds a parameter to the ordered list of command parameters.
+
+
+
+
+
+ Writes the events to the database using the transaction specified.
+
+ The transaction that the events will be executed under.
+ The array of events to insert into the database.
+
+
+ The transaction argument can be null if the appender has been
+ configured not to use transactions. See
+ property for more information.
+
+
+
+
+
+ Formats the log message into database statement text.
+
+ The event being logged.
+
+ This method can be overridden by subclasses to provide
+ more control over the format of the database statement.
+
+
+ Text that can be passed to a .
+
+
+
+
+ Connects to the database.
+
+
+
+
+ Retrieves the class type of the ADO.NET provider.
+
+
+
+ Gets the Type of the ADO.NET provider to use to connect to the
+ database. This method resolves the type specified in the
+ property.
+
+
+ Subclasses can override this method to return a different type
+ if necessary.
+
+
+ The of the ADO.NET provider
+
+
+
+ Prepares the database command and initialize the parameters.
+
+
+
+
+ Flag to indicate if we are using a command object
+
+
+
+ Set to true when the appender is to use a prepared
+ statement or stored procedure to insert into the database.
+
+
+
+
+
+ The list of objects.
+
+
+
+ The list of objects.
+
+
+
+
+
+ The security context to use for privileged calls
+
+
+
+
+ The that will be used
+ to insert logging events into a database.
+
+
+
+
+ The database command.
+
+
+
+
+ Database connection string.
+
+
+
+
+ String type name of the type name.
+
+
+
+
+ The text of the command.
+
+
+
+
+ The command type.
+
+
+
+
+ Indicates whether to use transactions when writing to the database.
+
+
+
+
+ Indicates whether to use transactions when writing to the database.
+
+
+
+
+ Gets or sets the database connection string that is used to connect to
+ the database.
+
+
+ The database connection string used to connect to the database.
+
+
+
+ The connections string is specific to the connection type.
+ See for more information.
+
+
+ Connection string for MS Access via ODBC:
+ "DSN=MS Access Database;UID=admin;PWD=;SystemDB=C:\data\System.mdw;SafeTransactions = 0;FIL=MS Access;DriverID = 25;DBQ=C:\data\train33.mdb"
+
+ Another connection string for MS Access via ODBC:
+ "Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\Work\cvs_root\log4net-1.2\access.mdb;UID=;PWD=;"
+
+ Connection string for MS Access via OLE DB:
+ "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Work\cvs_root\log4net-1.2\access.mdb;User Id=;Password=;"
+
+
+
+
+ Gets or sets the type name of the connection
+ that should be created.
+
+
+ The type name of the connection.
+
+
+
+ The type name of the ADO.NET provider to use.
+
+
+ The default is to use the OLE DB provider.
+
+
+ Use the OLE DB Provider. This is the default value.
+ System.Data.OleDb.OleDbConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ Use the MS SQL Server Provider.
+ System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ Use the ODBC Provider.
+ Microsoft.Data.Odbc.OdbcConnection,Microsoft.Data.Odbc,version=1.0.3300.0,publicKeyToken=b77a5c561934e089,culture=neutral
+ This is an optional package that you can download from
+ http://msdn.microsoft.com/downloads
+ search for ODBC .NET Data Provider.
+
+ Use the Oracle Provider.
+ System.Data.OracleClient.OracleConnection, System.Data.OracleClient, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+ This is an optional package that you can download from
+ http://msdn.microsoft.com/downloads
+ search for .NET Managed Provider for Oracle.
+
+
+
+
+ Gets or sets the command text that is used to insert logging events
+ into the database.
+
+
+ The command text used to insert logging events into the database.
+
+
+
+ Either the text of the prepared statement or the
+ name of the stored procedure to execute to write into
+ the database.
+
+
+ The property determines if
+ this text is a prepared statement or a stored procedure.
+
+
+
+
+
+ Gets or sets the command type to execute.
+
+
+ The command type to execute.
+
+
+
+ This value may be either (System.Data.CommandType.Text) to specify
+ that the is a prepared statement to execute,
+ or (System.Data.CommandType.StoredProcedure) to specify that the
+ property is the name of a stored procedure
+ to execute.
+
+
+ The default value is (System.Data.CommandType.Text).
+
+
+
+
+
+ Should transactions be used to insert logging events in the database.
+
+
+ true if transactions should be used to insert logging events in
+ the database, otherwise false. The default value is true.
+
+
+
+ Gets or sets a value that indicates whether transactions should be used
+ to insert logging events in the database.
+
+
+ When set a single transaction will be used to insert the buffered events
+ into the database. Otherwise each event will be inserted without using
+ an explicit transaction.
+
+
+
+
+
+ Gets or sets the used to call the NetSend method.
+
+
+ The used to call the NetSend method.
+
+
+
+ Unless a specified here for this appender
+ the is queried for the
+ security context to use. The default behavior is to use the security context
+ of the current thread.
+
+
+
+
+
+ Should this appender try to reconnect to the database on error.
+
+
+ true if the appender should try to reconnect to the database after an
+ error has occurred, otherwise false. The default value is false,
+ i.e. not to try to reconnect.
+
+
+
+ The default behaviour is for the appender not to try to reconnect to the
+ database if an error occurs. Subsequent logging events are discarded.
+
+
+ To force the appender to attempt to reconnect to the database set this
+ property to true.
+
+
+ When the appender attempts to connect to the database there may be a
+ delay of up to the connection timeout specified in the connection string.
+ This delay will block the calling application's thread.
+ Until the connection can be reestablished this potential delay may occur multiple times.
+
+
+
+
+
+ Gets or sets the underlying .
+
+
+ The underlying .
+
+
+ creates a to insert
+ logging events into a database. Classes deriving from
+ can use this property to get or set this . Use the
+ underlying returned from if
+ you require access beyond that which provides.
+
+
+
+
+ Parameter type used by the .
+
+
+
+ This class provides the basic database parameter properties
+ as defined by the interface.
+
+ This type can be subclassed to provide database specific
+ functionality. The two methods that are called externally are
+ and .
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ Default constructor for the AdoNetAppenderParameter class.
+
+
+
+
+ Prepare the specified database command object.
+
+ The command to prepare.
+
+
+ Prepares the database command object by adding
+ this parameter to its collection of parameters.
+
+
+
+
+
+ Renders the logging event and set the parameter value in the command.
+
+ The command containing the parameter.
+ The event to be rendered.
+
+
+ Renders the logging event using this parameters layout
+ object. Sets the value of the parameter on the command object.
+
+
+
+
+
+ The name of this parameter.
+
+
+
+
+ The database type for this parameter.
+
+
+
+
+ Flag to infer type rather than use the DbType
+
+
+
+
+ The precision for this parameter.
+
+
+
+
+ The scale for this parameter.
+
+
+
+
+ The size for this parameter.
+
+
+
+
+ The to use to render the
+ logging event into an object for this parameter.
+
+
+
+
+ Gets or sets the name of this parameter.
+
+
+ The name of this parameter.
+
+
+
+ The name of this parameter. The parameter name
+ must match up to a named parameter to the SQL stored procedure
+ or prepared statement.
+
+
+
+
+
+ Gets or sets the database type for this parameter.
+
+
+ The database type for this parameter.
+
+
+
+ The database type for this parameter. This property should
+ be set to the database type from the
+ enumeration. See .
+
+
+ This property is optional. If not specified the ADO.NET provider
+ will attempt to infer the type from the value.
+
+
+
+
+
+
+ Gets or sets the precision for this parameter.
+
+
+ The precision for this parameter.
+
+
+
+ The maximum number of digits used to represent the Value.
+
+
+ This property is optional. If not specified the ADO.NET provider
+ will attempt to infer the precision from the value.
+
+
+
+
+
+
+ Gets or sets the scale for this parameter.
+
+
+ The scale for this parameter.
+
+
+
+ The number of decimal places to which Value is resolved.
+
+
+ This property is optional. If not specified the ADO.NET provider
+ will attempt to infer the scale from the value.
+
+
+
+
+
+
+ Gets or sets the size for this parameter.
+
+
+ The size for this parameter.
+
+
+
+ The maximum size, in bytes, of the data within the column.
+
+
+ This property is optional. If not specified the ADO.NET provider
+ will attempt to infer the size from the value.
+
+
+
+
+
+
+ Gets or sets the to use to
+ render the logging event into an object for this
+ parameter.
+
+
+ The used to render the
+ logging event into an object for this parameter.
+
+
+
+ The that renders the value for this
+ parameter.
+
+
+ The can be used to adapt
+ any into a
+ for use in the property.
+
+
+
+
+
+ Appends logging events to the terminal using ANSI color escape sequences.
+
+
+
+ AnsiColorTerminalAppender appends log events to the standard output stream
+ or the error output stream using a layout specified by the
+ user. It also allows the color of a specific level of message to be set.
+
+
+ This appender expects the terminal to understand the VT100 control set
+ in order to interpret the color codes. If the terminal or console does not
+ understand the control codes the behavior is not defined.
+
+
+ By default, all output is written to the console's standard output stream.
+ The property can be set to direct the output to the
+ error stream.
+
+
+ NOTE: This appender writes each message to the System.Console.Out or
+ System.Console.Error that is set at the time the event is appended.
+ Therefore it is possible to programmatically redirect the output of this appender
+ (for example NUnit does this to capture program output). While this is the desired
+ behavior of this appender it may have security implications in your application.
+
+
+ When configuring the ANSI colored terminal appender, a mapping should be
+ specified to map a logging level to a color. For example:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The Level is the standard log4net logging level and ForeColor and BackColor can be any
+ of the following values:
+
+ Blue
+ Green
+ Red
+ White
+ Yellow
+ Purple
+ Cyan
+
+ These color values cannot be combined together to make new colors.
+
+
+ The attributes can be any combination of the following:
+
+ Brightforeground is brighter
+ Dimforeground is dimmer
+ Underscoremessage is underlined
+ Blinkforeground is blinking (does not work on all terminals)
+ Reverseforeground and background are reversed
+ Hiddenoutput is hidden
+ Strikethroughmessage has a line through it
+
+ While any of these attributes may be combined together not all combinations
+ work well together, for example setting both Bright and Dim attributes makes
+ no sense.
+
+
+ Patrick Wagstrom
+ Nicko Cadell
+
+
+
+ The to use when writing to the Console
+ standard output stream.
+
+
+
+ The to use when writing to the Console
+ standard output stream.
+
+
+
+
+
+ The to use when writing to the Console
+ standard error output stream.
+
+
+
+ The to use when writing to the Console
+ standard error output stream.
+
+
+
+
+
+ Ansi code to reset terminal
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ The instance of the class is set up to write
+ to the standard output stream.
+
+
+
+
+ Add a mapping of level to color
+
+ The mapping to add
+
+
+ Add a mapping to this appender.
+ Each mapping defines the foreground and background colours
+ for a level.
+
+
+
+
+
+ This method is called by the method.
+
+ The event to log.
+
+
+ Writes the event to the console.
+
+
+ The format of the output will depend on the appender's layout.
+
+
+
+
+
+ Initialize the options for this appender
+
+
+
+ Initialize the level to color mappings set on this appender.
+
+
+
+
+
+ Flag to write output to the error stream rather than the standard output stream
+
+
+
+
+ Mapping from level object to color value
+
+
+
+
+ Target is the value of the console output stream.
+
+
+ Target is the value of the console output stream.
+ This is either "Console.Out" or "Console.Error".
+
+
+
+ Target is the value of the console output stream.
+ This is either "Console.Out" or "Console.Error".
+
+
+
+
+
+ This appender requires a to be set.
+
+ true
+
+
+ This appender requires a to be set.
+
+
+
+
+
+ The enum of possible display attributes
+
+
+
+ The following flags can be combined together to
+ form the ANSI color attributes.
+
+
+
+
+
+
+ text is bright
+
+
+
+
+ text is dim
+
+
+
+
+ text is underlined
+
+
+
+
+ text is blinking
+
+
+ Not all terminals support this attribute
+
+
+
+
+ text and background colors are reversed
+
+
+
+
+ text is hidden
+
+
+
+
+ text is displayed with a strikethrough
+
+
+
+
+ The enum of possible foreground or background color values for
+ use with the color mapping method
+
+
+
+ The output can be in one for the following ANSI colors.
+
+
+
+
+
+
+ color is black
+
+
+
+
+ color is red
+
+
+
+
+ color is green
+
+
+
+
+ color is yellow
+
+
+
+
+ color is blue
+
+
+
+
+ color is magenta
+
+
+
+
+ color is cyan
+
+
+
+
+ color is white
+
+
+
+
+ A class to act as a mapping between the level that a logging call is made at and
+ the color it should be displayed as.
+
+
+
+ Defines the mapping between a level and the color it should be displayed in.
+
+
+
+
+
+ An entry in the
+
+
+
+ This is an abstract base class for types that are stored in the
+ object.
+
+
+ Nicko Cadell
+
+
+
+ Default protected constructor
+
+
+
+ Default protected constructor
+
+
+
+
+
+ Initialize any options defined on this entry
+
+
+
+ Should be overridden by any classes that need to initialise based on their options
+
+
+
+
+
+ The level that is the key for this mapping
+
+
+ The that is the key for this mapping
+
+
+
+ Get or set the that is the key for this
+ mapping subclass.
+
+
+
+
+
+ Initialize the options for the object
+
+
+
+ Combine the and together
+ and append the attributes.
+
+
+
+
+
+ The mapped foreground color for the specified level
+
+
+
+ Required property.
+ The mapped foreground color for the specified level
+
+
+
+
+
+ The mapped background color for the specified level
+
+
+
+ Required property.
+ The mapped background color for the specified level
+
+
+
+
+
+ The color attributes for the specified level
+
+
+
+ Required property.
+ The color attributes for the specified level
+
+
+
+
+
+ The combined , and
+ suitable for setting the ansi terminal color.
+
+
+
+
+ A strongly-typed collection of objects.
+
+ Nicko Cadell
+
+
+
+ Creates a read-only wrapper for a AppenderCollection instance.
+
+ list to create a readonly wrapper arround
+
+ An AppenderCollection wrapper that is read-only.
+
+
+
+
+ An empty readonly static AppenderCollection
+
+
+
+
+ Initializes a new instance of the AppenderCollection class
+ that is empty and has the default initial capacity.
+
+
+
+
+ Initializes a new instance of the AppenderCollection class
+ that has the specified initial capacity.
+
+
+ The number of elements that the new AppenderCollection is initially capable of storing.
+
+
+
+
+ Initializes a new instance of the AppenderCollection class
+ that contains elements copied from the specified AppenderCollection.
+
+ The AppenderCollection whose elements are copied to the new collection.
+
+
+
+ Initializes a new instance of the AppenderCollection class
+ that contains elements copied from the specified array.
+
+ The array whose elements are copied to the new list.
+
+
+
+ Initializes a new instance of the AppenderCollection class
+ that contains elements copied from the specified collection.
+
+ The collection whose elements are copied to the new list.
+
+
+
+ Allow subclasses to avoid our default constructors
+
+
+
+
+
+
+ Copies the entire AppenderCollection to a one-dimensional
+ array.
+
+ The one-dimensional array to copy to.
+
+
+
+ Copies the entire AppenderCollection to a one-dimensional
+ array, starting at the specified index of the target array.
+
+ The one-dimensional array to copy to.
+ The zero-based index in at which copying begins.
+
+
+
+ Adds a to the end of the AppenderCollection.
+
+ The to be added to the end of the AppenderCollection.
+ The index at which the value has been added.
+
+
+
+ Removes all elements from the AppenderCollection.
+
+
+
+
+ Creates a shallow copy of the .
+
+ A new with a shallow copy of the collection data.
+
+
+
+ Determines whether a given is in the AppenderCollection.
+
+ The to check for.
+ true if is found in the AppenderCollection; otherwise, false.
+
+
+
+ Returns the zero-based index of the first occurrence of a
+ in the AppenderCollection.
+
+ The to locate in the AppenderCollection.
+
+ The zero-based index of the first occurrence of
+ in the entire AppenderCollection, if found; otherwise, -1.
+
+
+
+
+ Inserts an element into the AppenderCollection at the specified index.
+
+ The zero-based index at which should be inserted.
+ The to insert.
+
+ is less than zero
+ -or-
+ is equal to or greater than .
+
+
+
+
+ Removes the first occurrence of a specific from the AppenderCollection.
+
+ The to remove from the AppenderCollection.
+
+ The specified was not found in the AppenderCollection.
+
+
+
+
+ Removes the element at the specified index of the AppenderCollection.
+
+ The zero-based index of the element to remove.
+
+ is less than zero
+ -or-
+ is equal to or greater than .
+
+
+
+
+ Returns an enumerator that can iterate through the AppenderCollection.
+
+ An for the entire AppenderCollection.
+
+
+
+ Adds the elements of another AppenderCollection to the current AppenderCollection.
+
+ The AppenderCollection whose elements should be added to the end of the current AppenderCollection.
+ The new of the AppenderCollection.
+
+
+
+ Adds the elements of a array to the current AppenderCollection.
+
+ The array whose elements should be added to the end of the AppenderCollection.
+ The new of the AppenderCollection.
+
+
+
+ Adds the elements of a collection to the current AppenderCollection.
+
+ The collection whose elements should be added to the end of the AppenderCollection.
+ The new of the AppenderCollection.
+
+
+
+ Sets the capacity to the actual number of elements.
+
+
+
+
+ Return the collection elements as an array
+
+ the array
+
+
+
+ is less than zero
+ -or-
+ is equal to or greater than .
+
+
+
+
+ is less than zero
+ -or-
+ is equal to or greater than .
+
+
+
+
+ Gets the number of elements actually contained in the AppenderCollection.
+
+
+
+
+ Gets a value indicating whether access to the collection is synchronized (thread-safe).
+
+ true if access to the ICollection is synchronized (thread-safe); otherwise, false.
+
+
+
+ Gets an object that can be used to synchronize access to the collection.
+
+
+
+
+ Gets or sets the at the specified index.
+
+ The zero-based index of the element to get or set.
+
+ is less than zero
+ -or-
+ is equal to or greater than .
+
+
+
+
+ Gets a value indicating whether the collection has a fixed size.
+
+ true if the collection has a fixed size; otherwise, false. The default is false
+
+
+
+ Gets a value indicating whether the IList is read-only.
+
+ true if the collection is read-only; otherwise, false. The default is false
+
+
+
+ Gets or sets the number of elements the AppenderCollection can contain.
+
+
+
+
+ Supports type-safe iteration over a .
+
+
+
+
+
+ Advances the enumerator to the next element in the collection.
+
+
+ true if the enumerator was successfully advanced to the next element;
+ false if the enumerator has passed the end of the collection.
+
+
+ The collection was modified after the enumerator was created.
+
+
+
+
+ Sets the enumerator to its initial position, before the first element in the collection.
+
+
+
+
+ Gets the current element in the collection.
+
+
+
+
+ Type visible only to our subclasses
+ Used to access protected constructor
+
+
+
+
+
+ A value
+
+
+
+
+ Supports simple iteration over a .
+
+
+
+
+
+ Initializes a new instance of the Enumerator class.
+
+
+
+
+
+ Advances the enumerator to the next element in the collection.
+
+
+ true if the enumerator was successfully advanced to the next element;
+ false if the enumerator has passed the end of the collection.
+
+
+ The collection was modified after the enumerator was created.
+
+
+
+
+ Sets the enumerator to its initial position, before the first element in the collection.
+
+
+
+
+ Gets the current element in the collection.
+
+
+
+
+
+
+
+
+ Appends log events to the ASP.NET system.
+
+
+
+
+ Diagnostic information and tracing messages that you specify are appended to the output
+ of the page that is sent to the requesting browser. Optionally, you can view this information
+ from a separate trace viewer (Trace.axd) that displays trace information for every page in a
+ given application.
+
+
+ Trace statements are processed and displayed only when tracing is enabled. You can control
+ whether tracing is displayed to a page, to the trace viewer, or both.
+
+
+ The logging event is passed to the or
+ method depending on the level of the logging event.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ Default constructor.
+
+
+
+
+
+ Write the logging event to the ASP.NET trace
+
+ the event to log
+
+
+ Write the logging event to the ASP.NET trace
+ HttpContext.Current.Trace
+ ().
+
+
+
+
+
+ This appender requires a to be set.
+
+ true
+
+
+ This appender requires a to be set.
+
+
+
+
+
+ Buffers events and then forwards them to attached appenders.
+
+
+
+ The events are buffered in this appender until conditions are
+ met to allow the appender to deliver the events to the attached
+ appenders. See for the
+ conditions that cause the buffer to be sent.
+
+ The forwarding appender can be used to specify different
+ thresholds and filters for the same appender at different locations
+ within the hierarchy.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Interface for attaching appenders to objects.
+
+
+
+ Interface for attaching, removing and retrieving appenders.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Attaches an appender.
+
+ The appender to add.
+
+
+ Add the specified appender. The implementation may
+ choose to allow or deny duplicate appenders.
+
+
+
+
+
+ Gets an attached appender with the specified name.
+
+ The name of the appender to get.
+
+ The appender with the name specified, or null if no appender with the
+ specified name is found.
+
+
+
+ Returns an attached appender with the specified.
+ If no appender with the specified name is found null will be
+ returned.
+
+
+
+
+
+ Removes all attached appenders.
+
+
+
+ Removes and closes all attached appenders
+
+
+
+
+
+ Removes the specified appender from the list of attached appenders.
+
+ The appender to remove.
+ The appender removed from the list
+
+
+ The appender removed is not closed.
+ If you are discarding the appender you must call
+ on the appender removed.
+
+
+
+
+
+ Removes the appender with the specified name from the list of appenders.
+
+ The name of the appender to remove.
+ The appender removed from the list
+
+
+ The appender removed is not closed.
+ If you are discarding the appender you must call
+ on the appender removed.
+
+
+
+
+
+ Gets all attached appenders.
+
+
+ A collection of attached appenders.
+
+
+
+ Gets a collection of attached appenders.
+ If there are no attached appenders the
+ implementation should return an empty
+ collection rather than null.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ Default constructor.
+
+
+
+
+
+ Closes the appender and releases resources.
+
+
+
+ Releases any resources allocated within the appender such as file handles,
+ network connections, etc.
+
+
+ It is a programming error to append to a closed appender.
+
+
+
+
+
+ Send the events.
+
+ The events that need to be send.
+
+
+ Forwards the events to the attached appenders.
+
+
+
+
+
+ Adds an to the list of appenders of this
+ instance.
+
+ The to add to this appender.
+
+
+ If the specified is already in the list of
+ appenders, then it won't be added again.
+
+
+
+
+
+ Looks for the appender with the specified name.
+
+ The name of the appender to lookup.
+
+ The appender with the specified name, or null.
+
+
+
+ Get the named appender attached to this buffering appender.
+
+
+
+
+
+ Removes all previously added appenders from this appender.
+
+
+
+ This is useful when re-reading configuration information.
+
+
+
+
+
+ Removes the specified appender from the list of appenders.
+
+ The appender to remove.
+ The appender removed from the list
+
+ The appender removed is not closed.
+ If you are discarding the appender you must call
+ on the appender removed.
+
+
+
+
+ Removes the appender with the specified name from the list of appenders.
+
+ The name of the appender to remove.
+ The appender removed from the list
+
+ The appender removed is not closed.
+ If you are discarding the appender you must call
+ on the appender removed.
+
+
+
+
+ Implementation of the interface
+
+
+
+
+ Gets the appenders contained in this appender as an
+ .
+
+
+ If no appenders can be found, then an
+ is returned.
+
+
+ A collection of the appenders in this appender.
+
+
+
+
+ Appends logging events to the console.
+
+
+
+ ColoredConsoleAppender appends log events to the standard output stream
+ or the error output stream using a layout specified by the
+ user. It also allows the color of a specific type of message to be set.
+
+
+ By default, all output is written to the console's standard output stream.
+ The property can be set to direct the output to the
+ error stream.
+
+
+ NOTE: This appender writes directly to the application's attached console
+ not to the System.Console.Out or System.Console.ErrorTextWriter.
+ The System.Console.Out and System.Console.Error streams can be
+ programmatically redirected (for example NUnit does this to capture program output).
+ This appender will ignore these redirections because it needs to use Win32
+ API calls to colorize the output. To respect these redirections the
+ must be used.
+
+
+ When configuring the colored console appender, mapping should be
+ specified to map a logging level to a color. For example:
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The Level is the standard log4net logging level and ForeColor and BackColor can be any
+ combination of the following values:
+
+ Blue
+ Green
+ Red
+ White
+ Yellow
+ Purple
+ Cyan
+ HighIntensity
+
+
+
+ Rick Hobbs
+ Nicko Cadell
+
+
+
+ The to use when writing to the Console
+ standard output stream.
+
+
+
+ The to use when writing to the Console
+ standard output stream.
+
+
+
+
+
+ The to use when writing to the Console
+ standard error output stream.
+
+
+
+ The to use when writing to the Console
+ standard error output stream.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ The instance of the class is set up to write
+ to the standard output stream.
+
+
+
+
+ Initializes a new instance of the class
+ with the specified layout.
+
+ the layout to use for this appender
+
+ The instance of the class is set up to write
+ to the standard output stream.
+
+
+
+
+ Initializes a new instance of the class
+ with the specified layout.
+
+ the layout to use for this appender
+ flag set to true to write to the console error stream
+
+ When is set to true, output is written to
+ the standard error output stream. Otherwise, output is written to the standard
+ output stream.
+
+
+
+
+ Add a mapping of level to color - done by the config file
+
+ The mapping to add
+
+
+ Add a mapping to this appender.
+ Each mapping defines the foreground and background colors
+ for a level.
+
+
+
+
+
+ This method is called by the method.
+
+ The event to log.
+
+
+ Writes the event to the console.
+
+
+ The format of the output will depend on the appender's layout.
+
+
+
+
+
+ Initialize the options for this appender
+
+
+
+ Initialize the level to color mappings set on this appender.
+
+
+
+
+
+ Flag to write output to the error stream rather than the standard output stream
+
+
+
+
+ Mapping from level object to color value
+
+
+
+
+ The console output stream writer to write to
+
+
+
+ This writer is not thread safe.
+
+
+
+
+
+ Target is the value of the console output stream.
+ This is either "Console.Out" or "Console.Error".
+
+
+ Target is the value of the console output stream.
+ This is either "Console.Out" or "Console.Error".
+
+
+
+ Target is the value of the console output stream.
+ This is either "Console.Out" or "Console.Error".
+
+
+
+
+
+ This appender requires a to be set.
+
+ true
+
+
+ This appender requires a to be set.
+
+
+
+
+
+ The enum of possible color values for use with the color mapping method
+
+
+
+ The following flags can be combined together to
+ form the colors.
+
+
+
+
+
+
+ color is blue
+
+
+
+
+ color is green
+
+
+
+
+ color is red
+
+
+
+
+ color is white
+
+
+
+
+ color is yellow
+
+
+
+
+ color is purple
+
+
+
+
+ color is cyan
+
+
+
+
+ color is intensified
+
+
+
+
+ A class to act as a mapping between the level that a logging call is made at and
+ the color it should be displayed as.
+
+
+
+ Defines the mapping between a level and the color it should be displayed in.
+
+
+
+
+
+ Initialize the options for the object
+
+
+
+ Combine the and together.
+
+
+
+
+
+ The mapped foreground color for the specified level
+
+
+
+ Required property.
+ The mapped foreground color for the specified level.
+
+
+
+
+
+ The mapped background color for the specified level
+
+
+
+ Required property.
+ The mapped background color for the specified level.
+
+
+
+
+
+ The combined and suitable for
+ setting the console color.
+
+
+
+
+ Appends logging events to the console.
+
+
+
+ ConsoleAppender appends log events to the standard output stream
+ or the error output stream using a layout specified by the
+ user.
+
+
+ By default, all output is written to the console's standard output stream.
+ The property can be set to direct the output to the
+ error stream.
+
+
+ NOTE: This appender writes each message to the System.Console.Out or
+ System.Console.Error that is set at the time the event is appended.
+ Therefore it is possible to programmatically redirect the output of this appender
+ (for example NUnit does this to capture program output). While this is the desired
+ behavior of this appender it may have security implications in your application.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ The to use when writing to the Console
+ standard output stream.
+
+
+
+ The to use when writing to the Console
+ standard output stream.
+
+
+
+
+
+ The to use when writing to the Console
+ standard error output stream.
+
+
+
+ The to use when writing to the Console
+ standard error output stream.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ The instance of the class is set up to write
+ to the standard output stream.
+
+
+
+
+ Initializes a new instance of the class
+ with the specified layout.
+
+ the layout to use for this appender
+
+ The instance of the class is set up to write
+ to the standard output stream.
+
+
+
+
+ Initializes a new instance of the class
+ with the specified layout.
+
+ the layout to use for this appender
+ flag set to true to write to the console error stream
+
+ When is set to true, output is written to
+ the standard error output stream. Otherwise, output is written to the standard
+ output stream.
+
+
+
+
+ This method is called by the method.
+
+ The event to log.
+
+
+ Writes the event to the console.
+
+
+ The format of the output will depend on the appender's layout.
+
+
+
+
+
+ Target is the value of the console output stream.
+ This is either "Console.Out" or "Console.Error".
+
+
+ Target is the value of the console output stream.
+ This is either "Console.Out" or "Console.Error".
+
+
+
+ Target is the value of the console output stream.
+ This is either "Console.Out" or "Console.Error".
+
+
+
+
+
+ This appender requires a to be set.
+
+ true
+
+
+ This appender requires a to be set.
+
+
+
+
+
+ Appends log events to the system.
+
+
+
+ The application configuration file can be used to control what listeners
+ are actually used. See the MSDN documentation for the
+ class for details on configuring the
+ debug system.
+
+
+ Events are written using the
+ method. The event's logger name is passed as the value for the category name to the Write method.
+
+
+ Nicko Cadell
+
+
+
+ Initializes a new instance of the .
+
+
+
+ Default constructor.
+
+
+
+
+
+ Initializes a new instance of the
+ with a specified layout.
+
+ The layout to use with this appender.
+
+
+ Obsolete constructor.
+
+
+
+
+
+ Writes the logging event to the system.
+
+ The event to log.
+
+
+ Writes the logging event to the system.
+ If is true then the
+ is called.
+
+
+
+
+
+ Immediate flush means that the underlying writer or output stream
+ will be flushed at the end of each append operation.
+
+
+
+ Immediate flush is slower but ensures that each append request is
+ actually written. If is set to
+ false, then there is a good chance that the last few
+ logs events are not actually written to persistent media if and
+ when the application crashes.
+
+
+ The default value is true.
+
+
+
+
+ Gets or sets a value that indicates whether the appender will
+ flush at the end of each write.
+
+
+ The default behavior is to flush at the end of each
+ write. If the option is set tofalse, then the underlying
+ stream can defer writing to physical medium to a later time.
+
+
+ Avoiding the flush operation at the end of each append results
+ in a performance gain of 10 to 20 percent. However, there is safety
+ trade-off involved in skipping flushing. Indeed, when flushing is
+ skipped, then it is likely that the last few log events will not
+ be recorded on disk when the application exits. This is a high
+ price to pay even for a 20% performance gain.
+
+
+
+
+
+ This appender requires a to be set.
+
+ true
+
+
+ This appender requires a to be set.
+
+
+
+
+
+ Writes events to the system event log.
+
+
+
+ The EventID of the event log entry can be
+ set using the EventLogEventID property ()
+ on the .
+
+
+ There is a limit of 32K characters for an event log message
+
+
+ When configuring the EventLogAppender a mapping can be
+ specified to map a logging level to an event log entry type. For example:
+
+
+ <mapping>
+ <level value="ERROR" />
+ <eventLogEntryType value="Error" />
+ </mapping>
+ <mapping>
+ <level value="DEBUG" />
+ <eventLogEntryType value="Information" />
+ </mapping>
+
+
+ The Level is the standard log4net logging level and eventLogEntryType can be any value
+ from the enum, i.e.:
+
+ Erroran error event
+ Warninga warning event
+ Informationan informational event
+
+
+
+ Aspi Havewala
+ Douglas de la Torre
+ Nicko Cadell
+ Gert Driesen
+ Thomas Voss
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ Default constructor.
+
+
+
+
+
+ Initializes a new instance of the class
+ with the specified .
+
+ The to use with this appender.
+
+
+ Obsolete constructor.
+
+
+
+
+
+ Add a mapping of level to - done by the config file
+
+ The mapping to add
+
+
+ Add a mapping to this appender.
+ Each mapping defines the event log entry type for a level.
+
+
+
+
+
+ Initialize the appender based on the options set
+
+
+
+ This is part of the delayed object
+ activation scheme. The method must
+ be called on this object after the configuration properties have
+ been set. Until is called this
+ object is in an undefined state and must not be used.
+
+
+ If any of the configuration properties are modified then
+ must be called again.
+
+
+
+
+
+ Create an event log source
+
+
+ Uses different API calls under NET_2_0
+
+
+
+
+ This method is called by the
+ method.
+
+ the event to log
+
+ Writes the event to the system event log using the
+ .
+
+ If the event has an EventID property (see )
+ set then this integer will be used as the event log event id.
+
+
+ There is a limit of 32K characters for an event log message
+
+
+
+
+
+ Get the equivalent for a
+
+ the Level to convert to an EventLogEntryType
+ The equivalent for a
+
+ Because there are fewer applicable
+ values to use in logging levels than there are in the
+ this is a one way mapping. There is
+ a loss of information during the conversion.
+
+
+
+
+ The log name is the section in the event logs where the messages
+ are stored.
+
+
+
+
+ Name of the application to use when logging. This appears in the
+ application column of the event log named by .
+
+
+
+
+ The name of the machine which holds the event log. This is
+ currently only allowed to be '.' i.e. the current machine.
+
+
+
+
+ Mapping from level object to EventLogEntryType
+
+
+
+
+ The security context to use for privileged calls
+
+
+
+
+ The name of the log where messages will be stored.
+
+
+ The string name of the log where messages will be stored.
+
+
+ This is the name of the log as it appears in the Event Viewer
+ tree. The default value is to log into the Application
+ log, this is where most applications write their events. However
+ if you need a separate log for your application (or applications)
+ then you should set the appropriately.
+ This should not be used to distinguish your event log messages
+ from those of other applications, the
+ property should be used to distinguish events. This property should be
+ used to group together events into a single log.
+
+
+
+
+
+ Property used to set the Application name. This appears in the
+ event logs when logging.
+
+
+ The string used to distinguish events from different sources.
+
+
+ Sets the event log source property.
+
+
+
+
+ This property is used to return the name of the computer to use
+ when accessing the event logs. Currently, this is the current
+ computer, denoted by a dot "."
+
+
+ The string name of the machine holding the event log that
+ will be logged into.
+
+
+ This property cannot be changed. It is currently set to '.'
+ i.e. the local machine. This may be changed in future.
+
+
+
+
+ Gets or sets the used to write to the EventLog.
+
+
+ The used to write to the EventLog.
+
+
+
+ The system security context used to write to the EventLog.
+
+
+ Unless a specified here for this appender
+ the is queried for the
+ security context to use. The default behavior is to use the security context
+ of the current thread.
+
+
+
+
+
+ This appender requires a to be set.
+
+ true
+
+
+ This appender requires a to be set.
+
+
+
+
+
+ A class to act as a mapping between the level that a logging call is made at and
+ the color it should be displayed as.
+
+
+
+ Defines the mapping between a level and its event log entry type.
+
+
+
+
+
+ The for this entry
+
+
+
+ Required property.
+ The for this entry
+
+
+
+
+
+ Appends logging events to a file.
+
+
+
+ Logging events are sent to the file specified by
+ the property.
+
+
+ The file can be opened in either append or overwrite mode
+ by specifying the property.
+ If the file path is relative it is taken as relative from
+ the application base directory. The file encoding can be
+ specified by setting the property.
+
+
+ The layout's and
+ values will be written each time the file is opened and closed
+ respectively. If the property is
+ then the file may contain multiple copies of the header and footer.
+
+
+ This appender will first try to open the file for writing when
+ is called. This will typically be during configuration.
+ If the file cannot be opened for writing the appender will attempt
+ to open the file again each time a message is logged to the appender.
+ If the file cannot be opened for writing when a message is logged then
+ the message will be discarded by this appender.
+
+
+ The supports pluggable file locking models via
+ the property.
+ The default behavior, implemented by
+ is to obtain an exclusive write lock on the file until this appender is closed.
+ The alternative model, , only holds a
+ write lock while the appender is writing a logging event.
+
+
+ Nicko Cadell
+ Gert Driesen
+ Rodrigo B. de Oliveira
+ Douglas de la Torre
+ Niall Daley
+
+
+
+ Sends logging events to a .
+
+
+
+ An Appender that writes to a .
+
+
+ This appender may be used stand alone if initialized with an appropriate
+ writer, however it is typically used as a base class for an appender that
+ can open a to write to.
+
+
+ Nicko Cadell
+ Gert Driesen
+ Douglas de la Torre
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ Default constructor.
+
+
+
+
+
+ Initializes a new instance of the class and
+ sets the output destination to a new initialized
+ with the specified .
+
+ The layout to use with this appender.
+ The to output to.
+
+
+ Obsolete constructor.
+
+
+
+
+
+ Initializes a new instance of the class and sets
+ the output destination to the specified .
+
+ The layout to use with this appender
+ The to output to
+
+ The must have been previously opened.
+
+
+
+ Obsolete constructor.
+
+
+
+
+
+ This method determines if there is a sense in attempting to append.
+
+
+
+ This method checked if an output target has been set and if a
+ layout has been set.
+
+
+ false if any of the preconditions fail.
+
+
+
+ This method is called by the
+ method.
+
+ The event to log.
+
+
+ Writes a log statement to the output stream if the output stream exists
+ and is writable.
+
+
+ The format of the output will depend on the appender's layout.
+
+
+
+
+
+ This method is called by the
+ method.
+
+ The array of events to log.
+
+
+ This method writes all the bulk logged events to the output writer
+ before flushing the stream.
+
+
+
+
+
+ Close this appender instance. The underlying stream or writer is also closed.
+
+
+ Closed appenders cannot be reused.
+
+
+
+
+ Writes the footer and closes the underlying .
+
+
+
+ Writes the footer and closes the underlying .
+
+
+
+
+
+ Closes the underlying .
+
+
+
+ Closes the underlying .
+
+
+
+
+
+ Clears internal references to the underlying
+ and other variables.
+
+
+
+ Subclasses can override this method for an alternate closing behavior.
+
+
+
+
+
+ Writes a footer as produced by the embedded layout's property.
+
+
+
+ Writes a footer as produced by the embedded layout's property.
+
+
+
+
+
+ Writes a header produced by the embedded layout's property.
+
+
+
+ Writes a header produced by the embedded layout's property.
+
+
+
+
+
+ Called to allow a subclass to lazily initialize the writer
+
+
+
+ This method is called when an event is logged and the or
+ have not been set. This allows a subclass to
+ attempt to initialize the writer multiple times.
+
+
+
+
+
+ This is the where logging events
+ will be written to.
+
+
+
+
+ Immediate flush means that the underlying
+ or output stream will be flushed at the end of each append operation.
+
+
+
+ Immediate flush is slower but ensures that each append request is
+ actually written. If is set to
+ false, then there is a good chance that the last few
+ logging events are not actually persisted if and when the application
+ crashes.
+
+
+ The default value is true.
+
+
+
+
+
+ Gets or set whether the appender will flush at the end
+ of each append operation.
+
+
+
+ The default behavior is to flush at the end of each
+ append operation.
+
+
+ If this option is set to false, then the underlying
+ stream can defer persisting the logging event to a later
+ time.
+
+
+
+ Avoiding the flush operation at the end of each append results in
+ a performance gain of 10 to 20 percent. However, there is safety
+ trade-off involved in skipping flushing. Indeed, when flushing is
+ skipped, then it is likely that the last few log events will not
+ be recorded on disk when the application exits. This is a high
+ price to pay even for a 20% performance gain.
+
+
+
+
+ Sets the where the log output will go.
+
+
+
+ The specified must be open and writable.
+
+
+ The will be closed when the appender
+ instance is closed.
+
+
+ Note: Logging to an unopened will fail.
+
+
+
+
+
+ Gets or set the and the underlying
+ , if any, for this appender.
+
+
+ The for this appender.
+
+
+
+
+ This appender requires a to be set.
+
+ true
+
+
+ This appender requires a to be set.
+
+
+
+
+
+ Gets or sets the where logging events
+ will be written to.
+
+
+ The where logging events are written.
+
+
+
+ This is the where logging events
+ will be written to.
+
+
+
+
+
+ Default constructor
+
+
+
+ Default constructor
+
+
+
+
+
+ Construct a new appender using the layout, file and append mode.
+
+ the layout to use with this appender
+ the full path to the file to write to
+ flag to indicate if the file should be appended to
+
+
+ Obsolete constructor.
+
+
+
+
+
+ Construct a new appender using the layout and file specified.
+ The file will be appended to.
+
+ the layout to use with this appender
+ the full path to the file to write to
+
+
+ Obsolete constructor.
+
+
+
+
+
+ Activate the options on the file appender.
+
+
+
+ This is part of the delayed object
+ activation scheme. The method must
+ be called on this object after the configuration properties have
+ been set. Until is called this
+ object is in an undefined state and must not be used.
+
+
+ If any of the configuration properties are modified then
+ must be called again.
+
+
+ This will cause the file to be opened.
+
+
+
+
+
+ Closes any previously opened file and calls the parent's .
+
+
+
+ Resets the filename and the file stream.
+
+
+
+
+
+ Called to initialize the file writer
+
+
+
+ Will be called for each logged message until the file is
+ successfully opened.
+
+
+
+
+
+ This method is called by the
+ method.
+
+ The event to log.
+
+
+ Writes a log statement to the output stream if the output stream exists
+ and is writable.
+
+
+ The format of the output will depend on the appender's layout.
+
+
+
+
+
+ This method is called by the
+ method.
+
+ The array of events to log.
+
+
+ Acquires the output file locks once before writing all the events to
+ the stream.
+
+
+
+
+
+ Writes a footer as produced by the embedded layout's property.
+
+
+
+ Writes a footer as produced by the embedded layout's property.
+
+
+
+
+
+ Writes a header produced by the embedded layout's property.
+
+
+
+ Writes a header produced by the embedded layout's property.
+
+
+
+
+
+ Closes the underlying .
+
+
+
+ Closes the underlying .
+
+
+
+
+
+ Closes the previously opened file.
+
+
+
+ Writes the to the file and then
+ closes the file.
+
+
+
+
+
+ Sets and opens the file where the log output will go. The specified file must be writable.
+
+ The path to the log file. Must be a fully qualified path.
+ If true will append to fileName. Otherwise will truncate fileName
+
+
+ Calls but guarantees not to throw an exception.
+ Errors are passed to the .
+
+
+
+
+
+ Sets and opens the file where the log output will go. The specified file must be writable.
+
+ The path to the log file. Must be a fully qualified path.
+ If true will append to fileName. Otherwise will truncate fileName
+
+
+ If there was already an opened file, then the previous file
+ is closed first.
+
+
+ This method will ensure that the directory structure
+ for the specified exists.
+
+
+
+
+
+ Sets the quiet writer used for file output
+
+ the file stream that has been opened for writing
+
+
+ This implementation of creates a
+ over the and passes it to the
+ method.
+
+
+ This method can be overridden by sub classes that want to wrap the
+ in some way, for example to encrypt the output
+ data using a System.Security.Cryptography.CryptoStream.
+
+
+
+
+
+ Sets the quiet writer being used.
+
+ the writer over the file stream that has been opened for writing
+
+
+ This method can be overridden by sub classes that want to
+ wrap the in some way.
+
+
+
+
+
+ Convert a path into a fully qualified path.
+
+ The path to convert.
+ The fully qualified path.
+
+
+ Converts the path specified to a fully
+ qualified path. If the path is relative it is
+ taken as relative from the application base
+ directory.
+
+
+
+
+
+ Flag to indicate if we should append to the file
+ or overwrite the file. The default is to append.
+
+
+
+
+ The name of the log file.
+
+
+
+
+ The encoding to use for the file stream.
+
+
+
+
+ The security context to use for privileged calls
+
+
+
+
+ The stream to log to. Has added locking semantics
+
+
+
+
+ The locking model to use
+
+
+
+
+ Gets or sets the path to the file that logging will be written to.
+
+
+ The path to the file that logging will be written to.
+
+
+
+ If the path is relative it is taken as relative from
+ the application base directory.
+
+
+
+
+
+ Gets or sets a flag that indicates whether the file should be
+ appended to or overwritten.
+
+
+ Indicates whether the file should be appended to or overwritten.
+
+
+
+ If the value is set to false then the file will be overwritten, if
+ it is set to true then the file will be appended to.
+
+ The default value is true.
+
+
+
+
+ Gets or sets used to write to the file.
+
+
+ The used to write to the file.
+
+
+
+ The default encoding set is
+ which is the encoding for the system's current ANSI code page.
+
+
+
+
+
+ Gets or sets the used to write to the file.
+
+
+ The used to write to the file.
+
+
+
+ Unless a specified here for this appender
+ the is queried for the
+ security context to use. The default behavior is to use the security context
+ of the current thread.
+
+
+
+
+
+ Gets or sets the used to handle locking of the file.
+
+
+ The used to lock the file.
+
+
+
+ Gets or sets the used to handle locking of the file.
+
+
+ There are two built in locking models, and .
+ The former locks the file from the start of logging to the end and the
+ later lock only for the minimal amount of time when logging each message.
+
+
+ The default locking model is the .
+
+
+
+
+
+ Write only that uses the
+ to manage access to an underlying resource.
+
+
+
+
+ True asynchronous writes are not supported, the implementation forces a synchronous write.
+
+
+
+
+ Exception base type for log4net.
+
+
+
+ This type extends . It
+ does not add any new functionality but does differentiate the
+ type of exception being thrown.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Constructor
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+
+ Constructor
+
+ A message to include with the exception.
+
+
+ Initializes a new instance of the class with
+ the specified message.
+
+
+
+
+
+ Constructor
+
+ A message to include with the exception.
+ A nested exception to include.
+
+
+ Initializes a new instance of the class
+ with the specified message and inner exception.
+
+
+
+
+
+ Serialization constructor
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+
+
+
+ Locking model base class
+
+
+
+ Base class for the locking models available to the derived loggers.
+
+
+
+
+
+ Open the output file
+
+ The filename to use
+ Whether to append to the file, or overwrite
+ The encoding to use
+
+
+ Open the file specified and prepare for logging.
+ No writes will be made until is called.
+ Must be called before any calls to ,
+ and .
+
+
+
+
+
+ Close the file
+
+
+
+ Close the file. No further writes will be made.
+
+
+
+
+
+ Acquire the lock on the file
+
+ A stream that is ready to be written to.
+
+
+ Acquire the lock on the file in preparation for writing to it.
+ Return a stream pointing to the file.
+ must be called to release the lock on the output file.
+
+
+
+
+
+ Release the lock on the file
+
+
+
+ Release the lock on the file. No further writes will be made to the
+ stream until is called again.
+
+
+
+
+
+ Gets or sets the for this LockingModel
+
+
+ The for this LockingModel
+
+
+
+ The file appender this locking model is attached to and working on
+ behalf of.
+
+
+ The file appender is used to locate the security context and the error handler to use.
+
+
+ The value of this property will be set before is
+ called.
+
+
+
+
+
+ Hold an exclusive lock on the output file
+
+
+
+ Open the file once for writing and hold it open until is called.
+ Maintains an exclusive lock on the file during this time.
+
+
+
+
+
+ Open the file specified and prepare for logging.
+
+ The filename to use
+ Whether to append to the file, or overwrite
+ The encoding to use
+
+
+ Open the file specified and prepare for logging.
+ No writes will be made until is called.
+ Must be called before any calls to ,
+ and .
+
+
+
+
+
+ Close the file
+
+
+
+ Close the file. No further writes will be made.
+
+
+
+
+
+ Acquire the lock on the file
+
+ A stream that is ready to be written to.
+
+
+ Does nothing. The lock is already taken
+
+
+
+
+
+ Release the lock on the file
+
+
+
+ Does nothing. The lock will be released when the file is closed.
+
+
+
+
+
+ Acquires the file lock for each write
+
+
+
+ Opens the file once for each / cycle,
+ thus holding the lock for the minimal amount of time. This method of locking
+ is considerably slower than but allows
+ other processes to move/delete the log file whilst logging continues.
+
+
+
+
+
+ Prepares to open the file when the first message is logged.
+
+ The filename to use
+ Whether to append to the file, or overwrite
+ The encoding to use
+
+
+ Open the file specified and prepare for logging.
+ No writes will be made until is called.
+ Must be called before any calls to ,
+ and .
+
+
+
+
+
+ Close the file
+
+
+
+ Close the file. No further writes will be made.
+
+
+
+
+
+ Acquire the lock on the file
+
+ A stream that is ready to be written to.
+
+
+ Acquire the lock on the file in preparation for writing to it.
+ Return a stream pointing to the file.
+ must be called to release the lock on the output file.
+
+
+
+
+
+ Release the lock on the file
+
+
+
+ Release the lock on the file. No further writes will be made to the
+ stream until is called again.
+
+
+
+
+
+ This appender forwards logging events to attached appenders.
+
+
+
+ The forwarding appender can be used to specify different thresholds
+ and filters for the same appender at different locations within the hierarchy.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ Default constructor.
+
+
+
+
+
+ Closes the appender and releases resources.
+
+
+
+ Releases any resources allocated within the appender such as file handles,
+ network connections, etc.
+
+
+ It is a programming error to append to a closed appender.
+
+
+
+
+
+ Forward the logging event to the attached appenders
+
+ The event to log.
+
+
+ Delivers the logging event to all the attached appenders.
+
+
+
+
+
+ Forward the logging events to the attached appenders
+
+ The array of events to log.
+
+
+ Delivers the logging events to all the attached appenders.
+
+
+
+
+
+ Adds an to the list of appenders of this
+ instance.
+
+ The to add to this appender.
+
+
+ If the specified is already in the list of
+ appenders, then it won't be added again.
+
+
+
+
+
+ Looks for the appender with the specified name.
+
+ The name of the appender to lookup.
+
+ The appender with the specified name, or null.
+
+
+
+ Get the named appender attached to this appender.
+
+
+
+
+
+ Removes all previously added appenders from this appender.
+
+
+
+ This is useful when re-reading configuration information.
+
+
+
+
+
+ Removes the specified appender from the list of appenders.
+
+ The appender to remove.
+ The appender removed from the list
+
+ The appender removed is not closed.
+ If you are discarding the appender you must call
+ on the appender removed.
+
+
+
+
+ Removes the appender with the specified name from the list of appenders.
+
+ The name of the appender to remove.
+ The appender removed from the list
+
+ The appender removed is not closed.
+ If you are discarding the appender you must call
+ on the appender removed.
+
+
+
+
+ Implementation of the interface
+
+
+
+
+ Gets the appenders contained in this appender as an
+ .
+
+
+ If no appenders can be found, then an
+ is returned.
+
+
+ A collection of the appenders in this appender.
+
+
+
+
+ Logs events to a local syslog service.
+
+
+
+ This appender uses the POSIX libc library functions openlog, syslog, and closelog.
+ If these functions are not available on the local system then this appender will not work!
+
+
+ The functions openlog, syslog, and closelog are specified in SUSv2 and
+ POSIX 1003.1-2001 standards. These are used to log messages to the local syslog service.
+
+
+ This appender talks to a local syslog service. If you need to log to a remote syslog
+ daemon and you cannot configure your local syslog service to do this you may be
+ able to use the to log via UDP.
+
+
+ Syslog messages must have a facility and and a severity. The severity
+ is derived from the Level of the logging event.
+ The facility must be chosen from the set of defined syslog
+ values. The facilities list is predefined
+ and cannot be extended.
+
+
+ An identifier is specified with each log message. This can be specified
+ by setting the property. The identity (also know
+ as the tag) must not contain white space. The default value for the
+ identity is the application name (from ).
+
+
+ Rob Lyon
+ Nicko Cadell
+
+
+
+ Initializes a new instance of the class.
+
+
+ This instance of the class is set up to write
+ to a local syslog service.
+
+
+
+
+ Add a mapping of level to severity
+
+ The mapping to add
+
+
+ Adds a to this appender.
+
+
+
+
+
+ Initialize the appender based on the options set.
+
+
+
+ This is part of the delayed object
+ activation scheme. The method must
+ be called on this object after the configuration properties have
+ been set. Until is called this
+ object is in an undefined state and must not be used.
+
+
+ If any of the configuration properties are modified then
+ must be called again.
+
+
+
+
+
+ This method is called by the method.
+
+ The event to log.
+
+
+ Writes the event to a remote syslog daemon.
+
+
+ The format of the output will depend on the appender's layout.
+
+
+
+
+
+ Close the syslog when the appender is closed
+
+
+
+ Close the syslog when the appender is closed
+
+
+
+
+
+ Translates a log4net level to a syslog severity.
+
+ A log4net level.
+ A syslog severity.
+
+
+ Translates a log4net level to a syslog severity.
+
+
+
+
+
+ Generate a syslog priority.
+
+ The syslog facility.
+ The syslog severity.
+ A syslog priority.
+
+
+
+ The facility. The default facility is .
+
+
+
+
+ The message identity
+
+
+
+
+ Marshaled handle to the identity string. We have to hold on to the
+ string as the openlog and syslog APIs just hold the
+ pointer to the ident and dereference it for each log message.
+
+
+
+
+ Mapping from level object to syslog severity
+
+
+
+
+ Open connection to system logger.
+
+
+
+
+ Generate a log message.
+
+
+
+ The libc syslog method takes a format string and a variable argument list similar
+ to the classic printf function. As this type of vararg list is not supported
+ by C# we need to specify the arguments explicitly. Here we have specified the
+ format string with a single message argument. The caller must set the format
+ string to "%s".
+
+
+
+
+
+ Close descriptor used to write to system logger.
+
+
+
+
+ Message identity
+
+
+
+ An identifier is specified with each log message. This can be specified
+ by setting the property. The identity (also know
+ as the tag) must not contain white space. The default value for the
+ identity is the application name (from ).
+
+
+
+
+
+ Syslog facility
+
+
+ Set to one of the values. The list of
+ facilities is predefined and cannot be extended. The default value
+ is .
+
+
+
+
+ This appender requires a to be set.
+
+ true
+
+
+ This appender requires a to be set.
+
+
+
+
+
+ syslog severities
+
+
+
+ The log4net Level maps to a syslog severity using the
+ method and the
+ class. The severity is set on .
+
+
+
+
+
+ system is unusable
+
+
+
+
+ action must be taken immediately
+
+
+
+
+ critical conditions
+
+
+
+
+ error conditions
+
+
+
+
+ warning conditions
+
+
+
+
+ normal but significant condition
+
+
+
+
+ informational
+
+
+
+
+ debug-level messages
+
+
+
+
+ syslog facilities
+
+
+
+ The syslog facility defines which subsystem the logging comes from.
+ This is set on the property.
+
+
+
+
+
+ kernel messages
+
+
+
+
+ random user-level messages
+
+
+
+
+ mail system
+
+
+
+
+ system daemons
+
+
+
+
+ security/authorization messages
+
+
+
+
+ messages generated internally by syslogd
+
+
+
+
+ line printer subsystem
+
+
+
+
+ network news subsystem
+
+
+
+
+ UUCP subsystem
+
+
+
+
+ clock (cron/at) daemon
+
+
+
+
+ security/authorization messages (private)
+
+
+
+
+ ftp daemon
+
+
+
+
+ NTP subsystem
+
+
+
+
+ log audit
+
+
+
+
+ log alert
+
+
+
+
+ clock daemon
+
+
+
+
+ reserved for local use
+
+
+
+
+ reserved for local use
+
+
+
+
+ reserved for local use
+
+
+
+
+ reserved for local use
+
+
+
+
+ reserved for local use
+
+
+
+
+ reserved for local use
+
+
+
+
+ reserved for local use
+
+
+
+
+ reserved for local use
+
+
+
+
+ A class to act as a mapping between the level that a logging call is made at and
+ the syslog severity that is should be logged at.
+
+
+
+ A class to act as a mapping between the level that a logging call is made at and
+ the syslog severity that is should be logged at.
+
+
+
+
+
+ The mapped syslog severity for the specified level
+
+
+
+ Required property.
+ The mapped syslog severity for the specified level
+
+
+
+
+
+ Stores logging events in an array.
+
+
+
+ The memory appender stores all the logging events
+ that are appended in an in-memory array.
+
+
+ Use the method to get
+ the current list of events that have been appended.
+
+
+ Use the method to clear the
+ current list of events.
+
+
+ Julian Biddle
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ Default constructor.
+
+
+
+
+
+ Gets the events that have been logged.
+
+ The events that have been logged
+
+
+ Gets the events that have been logged.
+
+
+
+
+
+ This method is called by the method.
+
+ the event to log
+
+ Stores the in the events list.
+
+
+
+
+ Clear the list of events
+
+
+ Clear the list of events
+
+
+
+
+ The list of events that have been appended.
+
+
+
+
+ Value indicating which fields in the event should be fixed
+
+
+ By default all fields are fixed
+
+
+
+
+ Gets or sets a value indicating whether only part of the logging event
+ data should be fixed.
+
+
+ true if the appender should only fix part of the logging event
+ data, otherwise false. The default is false.
+
+
+
+ Setting this property to true will cause only part of the event
+ data to be fixed and stored in the appender, hereby improving performance.
+
+
+ See for more information.
+
+
+
+
+
+ Gets or sets the fields that will be fixed in the event
+
+
+
+ The logging event needs to have certain thread specific values
+ captured before it can be buffered. See
+ for details.
+
+
+
+
+
+ Logs entries by sending network messages using the
+ native function.
+
+
+
+ You can send messages only to names that are active
+ on the network. If you send the message to a user name,
+ that user must be logged on and running the Messenger
+ service to receive the message.
+
+
+ The receiver will get a top most window displaying the
+ messages one at a time, therefore this appender should
+ not be used to deliver a high volume of messages.
+
+
+ The following table lists some possible uses for this appender :
+
+
+
+
+ Action
+ Property Value(s)
+
+
+ Send a message to a user account on the local machine
+
+
+ = <name of the local machine>
+
+
+ = <user name>
+
+
+
+
+ Send a message to a user account on a remote machine
+
+
+ = <name of the remote machine>
+
+
+ = <user name>
+
+
+
+
+ Send a message to a domain user account
+
+
+ = <name of a domain controller | uninitialized>
+
+
+ = <user name>
+
+
+
+
+ Send a message to all the names in a workgroup or domain
+
+
+ = <workgroup name | domain name>*
+
+
+
+
+ Send a message from the local machine to a remote machine
+
+
+ = <name of the local machine | uninitialized>
+
+
+ = <name of the remote machine>
+
+
+
+
+
+
+ Note : security restrictions apply for sending
+ network messages, see
+ for more information.
+
+
+
+
+ An example configuration section to log information
+ using this appender from the local machine, named
+ LOCAL_PC, to machine OPERATOR_PC :
+
+
+
+
+
+
+
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ The DNS or NetBIOS name of the server on which the function is to execute.
+
+
+
+
+ The sender of the network message.
+
+
+
+
+ The message alias to which the message should be sent.
+
+
+
+
+ The security context to use for privileged calls
+
+
+
+
+ Initializes the appender.
+
+
+ The default constructor initializes all fields to their default values.
+
+
+
+
+ Initialize the appender based on the options set.
+
+
+
+ This is part of the delayed object
+ activation scheme. The method must
+ be called on this object after the configuration properties have
+ been set. Until is called this
+ object is in an undefined state and must not be used.
+
+
+ If any of the configuration properties are modified then
+ must be called again.
+
+
+ The appender will be ignored if no was specified.
+
+
+ The required property was not specified.
+
+
+
+ This method is called by the method.
+
+ The event to log.
+
+
+ Sends the event using a network message.
+
+
+
+
+
+ Sends a buffer of information to a registered message alias.
+
+ The DNS or NetBIOS name of the server on which the function is to execute.
+ The message alias to which the message buffer should be sent
+ The originator of the message.
+ The message text.
+ The length, in bytes, of the message text.
+
+
+ The following restrictions apply for sending network messages:
+
+
+
+
+ Platform
+ Requirements
+
+
+ Windows NT
+
+
+ No special group membership is required to send a network message.
+
+
+ Admin, Accounts, Print, or Server Operator group membership is required to
+ successfully send a network message on a remote server.
+
+
+
+
+ Windows 2000 or later
+
+
+ If you send a message on a domain controller that is running Active Directory,
+ access is allowed or denied based on the access control list (ACL) for the securable
+ object. The default ACL permits only Domain Admins and Account Operators to send a network message.
+
+
+ On a member server or workstation, only Administrators and Server Operators can send a network message.
+
+
+
+
+
+
+ For more information see Security Requirements for the Network Management Functions.
+
+
+
+
+ If the function succeeds, the return value is zero.
+
+
+
+
+
+ Gets or sets the sender of the message.
+
+
+ The sender of the message.
+
+
+ If this property is not specified, the message is sent from the local computer.
+
+
+
+
+ Gets or sets the message alias to which the message should be sent.
+
+
+ The recipient of the message.
+
+
+ This property should always be specified in order to send a message.
+
+
+
+
+ Gets or sets the DNS or NetBIOS name of the remote server on which the function is to execute.
+
+
+ DNS or NetBIOS name of the remote server on which the function is to execute.
+
+
+
+ For Windows NT 4.0 and earlier, the string should begin with \\.
+
+
+ If this property is not specified, the local computer is used.
+
+
+
+
+
+ Gets or sets the used to call the NetSend method.
+
+
+ The used to call the NetSend method.
+
+
+
+ Unless a specified here for this appender
+ the is queried for the
+ security context to use. The default behavior is to use the security context
+ of the current thread.
+
+
+
+
+
+ This appender requires a to be set.
+
+ true
+
+
+ This appender requires a to be set.
+
+
+
+
+
+ Appends log events to the OutputDebugString system.
+
+
+
+ OutputDebugStringAppender appends log events to the
+ OutputDebugString system.
+
+
+ The string is passed to the native OutputDebugString
+ function.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ Default constructor.
+
+
+
+
+
+ Write the logging event to the output debug string API
+
+ the event to log
+
+
+ Write the logging event to the output debug string API
+
+
+
+
+
+ Stub for OutputDebugString native method
+
+ the string to output
+
+
+ Stub for OutputDebugString native method
+
+
+
+
+
+ This appender requires a to be set.
+
+ true
+
+
+ This appender requires a to be set.
+
+
+
+
+
+ Logs events to a remote syslog daemon.
+
+
+
+ The BSD syslog protocol is used to remotely log to
+ a syslog daemon. The syslogd listens for for messages
+ on UDP port 514.
+
+
+ The syslog UDP protocol is not authenticated. Most syslog daemons
+ do not accept remote log messages because of the security implications.
+ You may be able to use the LocalSyslogAppender to talk to a local
+ syslog service.
+
+
+ There is an RFC 3164 that claims to document the BSD Syslog Protocol.
+ This RFC can be seen here: http://www.faqs.org/rfcs/rfc3164.html.
+ This appender generates what the RFC calls an "Original Device Message",
+ i.e. does not include the TIMESTAMP or HOSTNAME fields. By observation
+ this format of message will be accepted by all current syslog daemon
+ implementations. The daemon will attach the current time and the source
+ hostname or IP address to any messages received.
+
+
+ Syslog messages must have a facility and and a severity. The severity
+ is derived from the Level of the logging event.
+ The facility must be chosen from the set of defined syslog
+ values. The facilities list is predefined
+ and cannot be extended.
+
+
+ An identifier is specified with each log message. This can be specified
+ by setting the property. The identity (also know
+ as the tag) must not contain white space. The default value for the
+ identity is the application name (from ).
+
+
+ Rob Lyon
+ Nicko Cadell
+
+
+
+ Sends logging events as connectionless UDP datagrams to a remote host or a
+ multicast group using an .
+
+
+
+ UDP guarantees neither that messages arrive, nor that they arrive in the correct order.
+
+
+ To view the logging results, a custom application can be developed that listens for logging
+ events.
+
+
+ When decoding events send via this appender remember to use the same encoding
+ to decode the events as was used to send the events. See the
+ property to specify the encoding to use.
+
+
+
+ This example shows how to log receive logging events that are sent
+ on IP address 244.0.0.1 and port 8080 to the console. The event is
+ encoded in the packet as a unicode string and it is decoded as such.
+
+ IPEndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any, 0);
+ UdpClient udpClient;
+ byte[] buffer;
+ string loggingEvent;
+
+ try
+ {
+ udpClient = new UdpClient(8080);
+
+ while(true)
+ {
+ buffer = udpClient.Receive(ref remoteEndPoint);
+ loggingEvent = System.Text.Encoding.Unicode.GetString(buffer);
+ Console.WriteLine(loggingEvent);
+ }
+ }
+ catch(Exception e)
+ {
+ Console.WriteLine(e.ToString());
+ }
+
+
+ Dim remoteEndPoint as IPEndPoint
+ Dim udpClient as UdpClient
+ Dim buffer as Byte()
+ Dim loggingEvent as String
+
+ Try
+ remoteEndPoint = new IPEndPoint(IPAddress.Any, 0)
+ udpClient = new UdpClient(8080)
+
+ While True
+ buffer = udpClient.Receive(ByRef remoteEndPoint)
+ loggingEvent = System.Text.Encoding.Unicode.GetString(buffer)
+ Console.WriteLine(loggingEvent)
+ Wend
+ Catch e As Exception
+ Console.WriteLine(e.ToString())
+ End Try
+
+
+ An example configuration section to log information using this appender to the
+ IP 224.0.0.1 on port 8080:
+
+
+
+
+
+
+
+
+
+ Gert Driesen
+ Nicko Cadell
+
+
+
+ Initializes a new instance of the class.
+
+
+ The default constructor initializes all fields to their default values.
+
+
+
+
+ Initialize the appender based on the options set.
+
+
+
+ This is part of the delayed object
+ activation scheme. The method must
+ be called on this object after the configuration properties have
+ been set. Until is called this
+ object is in an undefined state and must not be used.
+
+
+ If any of the configuration properties are modified then
+ must be called again.
+
+
+ The appender will be ignored if no was specified or
+ an invalid remote or local TCP port number was specified.
+
+
+ The required property was not specified.
+ The TCP port number assigned to or is less than or greater than .
+
+
+
+ This method is called by the method.
+
+ The event to log.
+
+
+ Sends the event using an UDP datagram.
+
+
+ Exceptions are passed to the .
+
+
+
+
+
+ Closes the UDP connection and releases all resources associated with
+ this instance.
+
+
+
+ Disables the underlying and releases all managed
+ and unmanaged resources associated with the .
+
+
+
+
+
+ Initializes the underlying connection.
+
+
+
+ The underlying is initialized and binds to the
+ port number from which you intend to communicate.
+
+
+ Exceptions are passed to the .
+
+
+
+
+
+ The IP address of the remote host or multicast group to which
+ the logging event will be sent.
+
+
+
+
+ The TCP port number of the remote host or multicast group to
+ which the logging event will be sent.
+
+
+
+
+ The cached remote endpoint to which the logging events will be sent.
+
+
+
+
+ The TCP port number from which the will communicate.
+
+
+
+
+ The instance that will be used for sending the
+ logging events.
+
+
+
+
+ The encoding to use for the packet.
+
+
+
+
+ Gets or sets the IP address of the remote host or multicast group to which
+ the underlying should sent the logging event.
+
+
+ The IP address of the remote host or multicast group to which the logging event
+ will be sent.
+
+
+
+ Multicast addresses are identified by IP class D addresses (in the range 224.0.0.0 to
+ 239.255.255.255). Multicast packets can pass across different networks through routers, so
+ it is possible to use multicasts in an Internet scenario as long as your network provider
+ supports multicasting.
+
+
+ Hosts that want to receive particular multicast messages must register their interest by joining
+ the multicast group. Multicast messages are not sent to networks where no host has joined
+ the multicast group. Class D IP addresses are used for multicast groups, to differentiate
+ them from normal host addresses, allowing nodes to easily detect if a message is of interest.
+
+
+ Static multicast addresses that are needed globally are assigned by IANA. A few examples are listed in the table below:
+
+
+
+
+ IP Address
+ Description
+
+
+ 224.0.0.1
+
+
+ Sends a message to all system on the subnet.
+
+
+
+
+ 224.0.0.2
+
+
+ Sends a message to all routers on the subnet.
+
+
+
+
+ 224.0.0.12
+
+
+ The DHCP server answers messages on the IP address 224.0.0.12, but only on a subnet.
+
+
+
+
+
+
+ A complete list of actually reserved multicast addresses and their owners in the ranges
+ defined by RFC 3171 can be found at the IANA web site.
+
+
+ The address range 239.0.0.0 to 239.255.255.255 is reserved for administrative scope-relative
+ addresses. These addresses can be reused with other local groups. Routers are typically
+ configured with filters to prevent multicast traffic in this range from flowing outside
+ of the local network.
+
+
+
+
+
+ Gets or sets the TCP port number of the remote host or multicast group to which
+ the underlying should sent the logging event.
+
+
+ An integer value in the range to
+ indicating the TCP port number of the remote host or multicast group to which the logging event
+ will be sent.
+
+
+ The underlying will send messages to this TCP port number
+ on the remote host or multicast group.
+
+ The value specified is less than or greater than .
+
+
+
+ Gets or sets the TCP port number from which the underlying will communicate.
+
+
+ An integer value in the range to
+ indicating the TCP port number from which the underlying will communicate.
+
+
+
+ The underlying will bind to this port for sending messages.
+
+
+ Setting the value to 0 (the default) will cause the udp client not to bind to
+ a local port.
+
+
+ The value specified is less than or greater than .
+
+
+
+ Gets or sets used to write the packets.
+
+
+ The used to write the packets.
+
+
+
+ The used to write the packets.
+
+
+
+
+
+ Gets or sets the underlying .
+
+
+ The underlying .
+
+
+ creates a to send logging events
+ over a network. Classes deriving from can use this
+ property to get or set this . Use the underlying
+ returned from if you require access beyond that which
+ provides.
+
+
+
+
+ Gets or sets the cached remote endpoint to which the logging events should be sent.
+
+
+ The cached remote endpoint to which the logging events will be sent.
+
+
+ The method will initialize the remote endpoint
+ with the values of the and
+ properties.
+
+
+
+
+ This appender requires a to be set.
+
+ true
+
+
+ This appender requires a to be set.
+
+
+
+
+
+ Syslog port 514
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ This instance of the class is set up to write
+ to a remote syslog daemon.
+
+
+
+
+ Add a mapping of level to severity
+
+ The mapping to add
+
+
+ Add a mapping to this appender.
+
+
+
+
+
+ This method is called by the method.
+
+ The event to log.
+
+
+ Writes the event to a remote syslog daemon.
+
+
+ The format of the output will depend on the appender's layout.
+
+
+
+
+
+ Initialize the options for this appender
+
+
+
+ Initialize the level to syslog severity mappings set on this appender.
+
+
+
+
+
+ Translates a log4net level to a syslog severity.
+
+ A log4net level.
+ A syslog severity.
+
+
+ Translates a log4net level to a syslog severity.
+
+
+
+
+
+ Generate a syslog priority.
+
+ The syslog facility.
+ The syslog severity.
+ A syslog priority.
+
+
+ Generate a syslog priority.
+
+
+
+
+
+ The facility. The default facility is .
+
+
+
+
+ The message identity
+
+
+
+
+ Mapping from level object to syslog severity
+
+
+
+
+ Message identity
+
+
+
+ An identifier is specified with each log message. This can be specified
+ by setting the property. The identity (also know
+ as the tag) must not contain white space. The default value for the
+ identity is the application name (from ).
+
+
+
+
+
+ Syslog facility
+
+
+ Set to one of the values. The list of
+ facilities is predefined and cannot be extended. The default value
+ is .
+
+
+
+
+ syslog severities
+
+
+
+ The syslog severities.
+
+
+
+
+
+ system is unusable
+
+
+
+
+ action must be taken immediately
+
+
+
+
+ critical conditions
+
+
+
+
+ error conditions
+
+
+
+
+ warning conditions
+
+
+
+
+ normal but significant condition
+
+
+
+
+ informational
+
+
+
+
+ debug-level messages
+
+
+
+
+ syslog facilities
+
+
+
+ The syslog facilities
+
+
+
+
+
+ kernel messages
+
+
+
+
+ random user-level messages
+
+
+
+
+ mail system
+
+
+
+
+ system daemons
+
+
+
+
+ security/authorization messages
+
+
+
+
+ messages generated internally by syslogd
+
+
+
+
+ line printer subsystem
+
+
+
+
+ network news subsystem
+
+
+
+
+ UUCP subsystem
+
+
+
+
+ clock (cron/at) daemon
+
+
+
+
+ security/authorization messages (private)
+
+
+
+
+ ftp daemon
+
+
+
+
+ NTP subsystem
+
+
+
+
+ log audit
+
+
+
+
+ log alert
+
+
+
+
+ clock daemon
+
+
+
+
+ reserved for local use
+
+
+
+
+ reserved for local use
+
+
+
+
+ reserved for local use
+
+
+
+
+ reserved for local use
+
+
+
+
+ reserved for local use
+
+
+
+
+ reserved for local use
+
+
+
+
+ reserved for local use
+
+
+
+
+ reserved for local use
+
+
+
+
+ A class to act as a mapping between the level that a logging call is made at and
+ the syslog severity that is should be logged at.
+
+
+
+ A class to act as a mapping between the level that a logging call is made at and
+ the syslog severity that is should be logged at.
+
+
+
+
+
+ The mapped syslog severity for the specified level
+
+
+
+ Required property.
+ The mapped syslog severity for the specified level
+
+
+
+
+
+ Delivers logging events to a remote logging sink.
+
+
+
+ This Appender is designed to deliver events to a remote sink.
+ That is any object that implements the
+ interface. It delivers the events using .NET remoting. The
+ object to deliver events to is specified by setting the
+ appenders property.
+
+ The RemotingAppender buffers events before sending them. This allows it to
+ make more efficient use of the remoting infrastructure.
+
+ Once the buffer is full the events are still not sent immediately.
+ They are scheduled to be sent using a pool thread. The effect is that
+ the send occurs asynchronously. This is very important for a
+ number of non obvious reasons. The remoting infrastructure will
+ flow thread local variables (stored in the ),
+ if they are marked as , across the
+ remoting boundary. If the server is not contactable then
+ the remoting infrastructure will clear the
+ objects from the . To prevent a logging failure from
+ having side effects on the calling application the remoting call must be made
+ from a separate thread to the one used by the application. A
+ thread is used for this. If no thread is available then
+ the events will block in the thread pool manager until a thread is available.
+
+ Because the events are sent asynchronously using pool threads it is possible to close
+ this appender before all the queued events have been sent.
+ When closing the appender attempts to wait until all the queued events have been sent, but
+ this will timeout after 30 seconds regardless.
+
+ If this appender is being closed because the
+ event has fired it may not be possible to send all the queued events. During process
+ exit the runtime limits the time that a
+ event handler is allowed to run for. If the runtime terminates the threads before
+ the queued events have been sent then they will be lost. To ensure that all events
+ are sent the appender must be closed before the application exits. See
+ for details on how to shutdown
+ log4net programmatically.
+
+
+ Nicko Cadell
+ Gert Driesen
+ Daniel Cazzulino
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ Default constructor.
+
+
+
+
+
+ Initialize the appender based on the options set
+
+
+
+ This is part of the delayed object
+ activation scheme. The method must
+ be called on this object after the configuration properties have
+ been set. Until is called this
+ object is in an undefined state and must not be used.
+
+
+ If any of the configuration properties are modified then
+ must be called again.
+
+
+
+
+
+ Send the contents of the buffer to the remote sink.
+
+
+ The events are not sent immediately. They are scheduled to be sent
+ using a pool thread. The effect is that the send occurs asynchronously.
+ This is very important for a number of non obvious reasons. The remoting
+ infrastructure will flow thread local variables (stored in the ),
+ if they are marked as , across the
+ remoting boundary. If the server is not contactable then
+ the remoting infrastructure will clear the
+ objects from the . To prevent a logging failure from
+ having side effects on the calling application the remoting call must be made
+ from a separate thread to the one used by the application. A
+ thread is used for this. If no thread is available then
+ the events will block in the thread pool manager until a thread is available.
+
+ The events to send.
+
+
+
+ Override base class close.
+
+
+
+ This method waits while there are queued work items. The events are
+ sent asynchronously using work items. These items
+ will be sent once a thread pool thread is available to send them, therefore
+ it is possible to close the appender before all the queued events have been
+ sent.
+
+ This method attempts to wait until all the queued events have been sent, but this
+ method will timeout after 30 seconds regardless.
+
+ If the appender is being closed because the
+ event has fired it may not be possible to send all the queued events. During process
+ exit the runtime limits the time that a
+ event handler is allowed to run for.
+
+
+
+
+ A work item is being queued into the thread pool
+
+
+
+
+ A work item from the thread pool has completed
+
+
+
+
+ Send the contents of the buffer to the remote sink.
+
+
+ This method is designed to be used with the .
+ This method expects to be passed an array of
+ objects in the state param.
+
+ the logging events to send
+
+
+
+ The URL of the remote sink.
+
+
+
+
+ The local proxy (.NET remoting) for the remote logging sink.
+
+
+
+
+ The number of queued callbacks currently waiting or executing
+
+
+
+
+ Event used to signal when there are no queued work items
+
+
+ This event is set when there are no queued work items. In this
+ state it is safe to close the appender.
+
+
+
+
+ Gets or sets the URL of the well-known object that will accept
+ the logging events.
+
+
+ The well-known URL of the remote sink.
+
+
+
+ The URL of the remoting sink that will accept logging events.
+ The sink must implement the
+ interface.
+
+
+
+
+
+ Interface used to deliver objects to a remote sink.
+
+
+ This interface must be implemented by a remoting sink
+ if the is to be used
+ to deliver logging events to the sink.
+
+
+
+
+ Delivers logging events to the remote sink
+
+ Array of events to log.
+
+
+ Delivers logging events to the remote sink
+
+
+
+
+
+ Appender that rolls log files based on size or date or both.
+
+
+
+ RollingFileAppender can roll log files based on size or date or both
+ depending on the setting of the property.
+ When set to the log file will be rolled
+ once its size exceeds the .
+ When set to the log file will be rolled
+ once the date boundary specified in the property
+ is crossed.
+ When set to the log file will be
+ rolled once the date boundary specified in the property
+ is crossed, but within a date boundary the file will also be rolled
+ once its size exceeds the .
+ When set to the log file will be rolled when
+ the appender is configured. This effectively means that the log file can be
+ rolled once per program execution.
+
+
+ A of few additional optional features have been added:
+
+ Attach date pattern for current log file
+ Backup number increments for newer files
+ Infinite number of backups by file size
+
+
+
+
+
+ For large or infinite numbers of backup files a
+ greater than zero is highly recommended, otherwise all the backup files need
+ to be renamed each time a new backup is created.
+
+
+ When Date/Time based rolling is used setting
+ to will reduce the number of file renamings to few or none.
+
+
+
+
+
+ Changing or without clearing
+ the log file directory of backup files will cause unexpected and unwanted side effects.
+
+
+
+
+ If Date/Time based rolling is enabled this appender will attempt to roll existing files
+ in the directory without a Date/Time tag based on the last write date of the base log file.
+ The appender only rolls the log file when a message is logged. If Date/Time based rolling
+ is enabled then the appender will not roll the log file at the Date/Time boundary but
+ at the point when the next message is logged after the boundary has been crossed.
+
+
+
+ The extends the and
+ has the same behavior when opening the log file.
+ The appender will first try to open the file for writing when
+ is called. This will typically be during configuration.
+ If the file cannot be opened for writing the appender will attempt
+ to open the file again each time a message is logged to the appender.
+ If the file cannot be opened for writing when a message is logged then
+ the message will be discarded by this appender.
+
+
+ When rolling a backup file necessitates deleting an older backup file the
+ file to be deleted is moved to a temporary name before being deleted.
+
+
+
+
+ A maximum number of backup files when rolling on date/time boundaries is not supported.
+
+
+
+ Nicko Cadell
+ Gert Driesen
+ Aspi Havewala
+ Douglas de la Torre
+ Edward Smit
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ Default constructor.
+
+
+
+
+
+ Sets the quiet writer being used.
+
+
+ This method can be overridden by sub classes.
+
+ the writer to set
+
+
+
+ Write out a logging event.
+
+ the event to write to file.
+
+
+ Handles append time behavior for RollingFileAppender. This checks
+ if a roll over either by date (checked first) or time (checked second)
+ is need and then appends to the file last.
+
+
+
+
+
+ Write out an array of logging events.
+
+ the events to write to file.
+
+
+ Handles append time behavior for RollingFileAppender. This checks
+ if a roll over either by date (checked first) or time (checked second)
+ is need and then appends to the file last.
+
+
+
+
+
+ Performs any required rolling before outputting the next event
+
+
+
+ Handles append time behavior for RollingFileAppender. This checks
+ if a roll over either by date (checked first) or time (checked second)
+ is need and then appends to the file last.
+
+
+
+
+
+ Creates and opens the file for logging. If
+ is false then the fully qualified name is determined and used.
+
+ the name of the file to open
+ true to append to existing file
+
+ This method will ensure that the directory structure
+ for the specified exists.
+
+
+
+
+ Get the current output file name
+
+ the base file name
+ the output file name
+
+ The output file name is based on the base fileName specified.
+ If is set then the output
+ file name is the same as the base file passed in. Otherwise
+ the output file depends on the date pattern, on the count
+ direction or both.
+
+
+
+
+ Determines curSizeRollBackups (only within the current roll point)
+
+
+
+
+ Generates a wildcard pattern that can be used to find all files
+ that are similar to the base file name.
+
+
+
+
+
+
+ Builds a list of filenames for all files matching the base filename plus a file
+ pattern.
+
+
+
+
+
+
+ Initiates a roll over if needed for crossing a date boundary since the last run.
+
+
+
+
+ Initializes based on existing conditions at time of .
+
+
+
+ Initializes based on existing conditions at time of .
+ The following is done
+
+ determine curSizeRollBackups (only within the current roll point)
+ initiates a roll over if needed for crossing a date boundary since the last run.
+
+
+
+
+
+
+ Does the work of bumping the 'current' file counter higher
+ to the highest count when an incremental file name is seen.
+ The highest count is either the first file (when count direction
+ is greater than 0) or the last file (when count direction less than 0).
+ In either case, we want to know the highest count that is present.
+
+
+
+
+
+
+ Takes a list of files and a base file name, and looks for
+ 'incremented' versions of the base file. Bumps the max
+ count up to the highest count seen.
+
+
+
+
+
+
+ Calculates the RollPoint for the datePattern supplied.
+
+ the date pattern to calculate the check period for
+ The RollPoint that is most accurate for the date pattern supplied
+
+ Essentially the date pattern is examined to determine what the
+ most suitable roll point is. The roll point chosen is the roll point
+ with the smallest period that can be detected using the date pattern
+ supplied. i.e. if the date pattern only outputs the year, month, day
+ and hour then the smallest roll point that can be detected would be
+ and hourly roll point as minutes could not be detected.
+
+
+
+
+ Initialize the appender based on the options set
+
+
+
+ This is part of the delayed object
+ activation scheme. The method must
+ be called on this object after the configuration properties have
+ been set. Until is called this
+ object is in an undefined state and must not be used.
+
+
+ If any of the configuration properties are modified then
+ must be called again.
+
+
+ Sets initial conditions including date/time roll over information, first check,
+ scheduledFilename, and calls to initialize
+ the current number of backups.
+
+
+
+
+
+ Rollover the file(s) to date/time tagged file(s).
+
+ set to true if the file to be rolled is currently open
+
+
+ Rollover the file(s) to date/time tagged file(s).
+ Resets curSizeRollBackups.
+ If fileIsOpen is set then the new file is opened (through SafeOpenFile).
+
+
+
+
+
+ Renames file to file .
+
+ Name of existing file to roll.
+ New name for file.
+
+
+ Renames file to file . It
+ also checks for existence of target file and deletes if it does.
+
+
+
+
+
+ Test if a file exists at a specified path
+
+ the path to the file
+ true if the file exists
+
+
+ Test if a file exists at a specified path
+
+
+
+
+
+ Deletes the specified file if it exists.
+
+ The file to delete.
+
+
+ Delete a file if is exists.
+ The file is first moved to a new filename then deleted.
+ This allows the file to be removed even when it cannot
+ be deleted, but it still can be moved.
+
+
+
+
+
+ Implements file roll base on file size.
+
+
+
+ If the maximum number of size based backups is reached
+ (curSizeRollBackups == maxSizeRollBackups) then the oldest
+ file is deleted -- its index determined by the sign of countDirection.
+ If countDirection < 0, then files
+ {File.1, ..., File.curSizeRollBackups -1}
+ are renamed to {File.2, ...,
+ File.curSizeRollBackups}. Moreover, File is
+ renamed File.1 and closed.
+
+
+ A new file is created to receive further log output.
+
+
+ If maxSizeRollBackups is equal to zero, then the
+ File is truncated with no backup files created.
+
+
+ If maxSizeRollBackups < 0, then File is
+ renamed if needed and no files are deleted.
+
+
+
+
+
+ Implements file roll.
+
+ the base name to rename
+
+
+ If the maximum number of size based backups is reached
+ (curSizeRollBackups == maxSizeRollBackups) then the oldest
+ file is deleted -- its index determined by the sign of countDirection.
+ If countDirection < 0, then files
+ {File.1, ..., File.curSizeRollBackups -1}
+ are renamed to {File.2, ...,
+ File.curSizeRollBackups}.
+
+
+ If maxSizeRollBackups is equal to zero, then the
+ File is truncated with no backup files created.
+
+
+ If maxSizeRollBackups < 0, then File is
+ renamed if needed and no files are deleted.
+
+
+ This is called by to rename the files.
+
+
+
+
+
+ Get the start time of the next window for the current rollpoint
+
+ the current date
+ the type of roll point we are working with
+ the start time for the next roll point an interval after the currentDateTime date
+
+
+ Returns the date of the next roll point after the currentDateTime date passed to the method.
+
+
+ The basic strategy is to subtract the time parts that are less significant
+ than the rollpoint from the current time. This should roll the time back to
+ the start of the time window for the current rollpoint. Then we add 1 window
+ worth of time and get the start time of the next window for the rollpoint.
+
+
+
+
+
+ This object supplies the current date/time. Allows test code to plug in
+ a method to control this class when testing date/time based rolling.
+
+
+
+
+ The date pattern. By default, the pattern is set to ".yyyy-MM-dd"
+ meaning daily rollover.
+
+
+
+
+ The actual formatted filename that is currently being written to
+ or will be the file transferred to on roll over
+ (based on staticLogFileName).
+
+
+
+
+ The timestamp when we shall next recompute the filename.
+
+
+
+
+ Holds date of last roll over
+
+
+
+
+ The type of rolling done
+
+
+
+
+ The default maximum file size is 10MB
+
+
+
+
+ There is zero backup files by default
+
+
+
+
+ How many sized based backups have been made so far
+
+
+
+
+ The rolling file count direction.
+
+
+
+
+ The rolling mode used in this appender.
+
+
+
+
+ Cache flag set if we are rolling by date.
+
+
+
+
+ Cache flag set if we are rolling by size.
+
+
+
+
+ Value indicating whether to always log to the same file.
+
+
+
+
+ FileName provided in configuration. Used for rolling properly
+
+
+
+
+ The 1st of January 1970 in UTC
+
+
+
+
+ Gets or sets the date pattern to be used for generating file names
+ when rolling over on date.
+
+
+ The date pattern to be used for generating file names when rolling
+ over on date.
+
+
+
+ Takes a string in the same format as expected by
+ .
+
+
+ This property determines the rollover schedule when rolling over
+ on date.
+
+
+
+
+
+ Gets or sets the maximum number of backup files that are kept before
+ the oldest is erased.
+
+
+ The maximum number of backup files that are kept before the oldest is
+ erased.
+
+
+
+ If set to zero, then there will be no backup files and the log file
+ will be truncated when it reaches .
+
+
+ If a negative number is supplied then no deletions will be made. Note
+ that this could result in very slow performance as a large number of
+ files are rolled over unless is used.
+
+
+ The maximum applies to each time based group of files and
+ not the total.
+
+
+
+
+
+ Gets or sets the maximum size that the output file is allowed to reach
+ before being rolled over to backup files.
+
+
+ The maximum size in bytes that the output file is allowed to reach before being
+ rolled over to backup files.
+
+
+
+ This property is equivalent to except
+ that it is required for differentiating the setter taking a
+ argument from the setter taking a
+ argument.
+
+
+ The default maximum file size is 10MB (10*1024*1024).
+
+
+
+
+
+ Gets or sets the maximum size that the output file is allowed to reach
+ before being rolled over to backup files.
+
+
+ The maximum size that the output file is allowed to reach before being
+ rolled over to backup files.
+
+
+
+ This property allows you to specify the maximum size with the
+ suffixes "KB", "MB" or "GB" so that the size is interpreted being
+ expressed respectively in kilobytes, megabytes or gigabytes.
+
+
+ For example, the value "10KB" will be interpreted as 10240 bytes.
+
+
+ The default maximum file size is 10MB.
+
+
+ If you have the option to set the maximum file size programmatically
+ consider using the property instead as this
+ allows you to set the size in bytes as a .
+
+
+
+
+
+ Gets or sets the rolling file count direction.
+
+
+ The rolling file count direction.
+
+
+
+ Indicates if the current file is the lowest numbered file or the
+ highest numbered file.
+
+
+ By default newer files have lower numbers ( < 0),
+ i.e. log.1 is most recent, log.5 is the 5th backup, etc...
+
+
+ >= 0 does the opposite i.e.
+ log.1 is the first backup made, log.5 is the 5th backup made, etc.
+ For infinite backups use >= 0 to reduce
+ rollover costs.
+
+ The default file count direction is -1.
+
+
+
+
+ Gets or sets the rolling style.
+
+ The rolling style.
+
+
+ The default rolling style is .
+
+
+ When set to this appender's
+ property is set to false, otherwise
+ the appender would append to a single file rather than rolling
+ the file each time it is opened.
+
+
+
+
+
+ Gets or sets a value indicating whether to always log to
+ the same file.
+
+
+ true if always should be logged to the same file, otherwise false.
+
+
+
+ By default file.log is always the current file. Optionally
+ file.log.yyyy-mm-dd for current formatted datePattern can by the currently
+ logging file (or file.log.curSizeRollBackup or even
+ file.log.yyyy-mm-dd.curSizeRollBackup).
+
+
+ This will make time based rollovers with a large number of backups
+ much faster as the appender it won't have to rename all the backups!
+
+
+
+
+
+ Style of rolling to use
+
+
+
+ Style of rolling to use
+
+
+
+
+
+ Roll files once per program execution
+
+
+
+ Roll files once per program execution.
+ Well really once each time this appender is
+ configured.
+
+
+ Setting this option also sets AppendToFile to
+ false on the RollingFileAppender, otherwise
+ this appender would just be a normal file appender.
+
+
+
+
+
+ Roll files based only on the size of the file
+
+
+
+
+ Roll files based only on the date
+
+
+
+
+ Roll files based on both the size and date of the file
+
+
+
+
+ The code assumes that the following 'time' constants are in a increasing sequence.
+
+
+
+ The code assumes that the following 'time' constants are in a increasing sequence.
+
+
+
+
+
+ Roll the log not based on the date
+
+
+
+
+ Roll the log for each minute
+
+
+
+
+ Roll the log for each hour
+
+
+
+
+ Roll the log twice a day (midday and midnight)
+
+
+
+
+ Roll the log each day (midnight)
+
+
+
+
+ Roll the log each week
+
+
+
+
+ Roll the log each month
+
+
+
+
+ This interface is used to supply Date/Time information to the .
+
+
+ This interface is used to supply Date/Time information to the .
+ Used primarily to allow test classes to plug themselves in so they can
+ supply test date/times.
+
+
+
+
+ Gets the current time.
+
+ The current time.
+
+
+ Gets the current time.
+
+
+
+
+
+ Default implementation of that returns the current time.
+
+
+
+
+ Gets the current time.
+
+ The current time.
+
+
+ Gets the current time.
+
+
+
+
+
+ Send an e-mail when a specific logging event occurs, typically on errors
+ or fatal errors.
+
+
+
+ The number of logging events delivered in this e-mail depend on
+ the value of option. The
+ keeps only the last
+ logging events in its
+ cyclic buffer. This keeps memory requirements at a reasonable level while
+ still delivering useful application context.
+
+
+ Authentication and setting the server Port are only available on the MS .NET 1.1 runtime.
+ For these features to be enabled you need to ensure that you are using a version of
+ the log4net assembly that is built against the MS .NET 1.1 framework and that you are
+ running the your application on the MS .NET 1.1 runtime. On all other platforms only sending
+ unauthenticated messages to a server listening on port 25 (the default) is supported.
+
+
+ Authentication is supported by setting the property to
+ either or .
+ If using authentication then the
+ and properties must also be set.
+
+
+ To set the SMTP server port use the property. The default port is 25.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Default constructor
+
+
+
+ Default constructor
+
+
+
+
+
+ Sends the contents of the cyclic buffer as an e-mail message.
+
+ The logging events to send.
+
+
+
+ Send the email message
+
+ the body text to include in the mail
+
+
+
+ Gets or sets a semicolon-delimited list of recipient e-mail addresses.
+
+
+ A semicolon-delimited list of e-mail addresses.
+
+
+
+ A semicolon-delimited list of recipient e-mail addresses.
+
+
+
+
+
+ Gets or sets the e-mail address of the sender.
+
+
+ The e-mail address of the sender.
+
+
+
+ The e-mail address of the sender.
+
+
+
+
+
+ Gets or sets the subject line of the e-mail message.
+
+
+ The subject line of the e-mail message.
+
+
+
+ The subject line of the e-mail message.
+
+
+
+
+
+ Gets or sets the name of the SMTP relay mail server to use to send
+ the e-mail messages.
+
+
+ The name of the e-mail relay server. If SmtpServer is not set, the
+ name of the local SMTP server is used.
+
+
+
+ The name of the e-mail relay server. If SmtpServer is not set, the
+ name of the local SMTP server is used.
+
+
+
+
+
+ Obsolete
+
+
+ Use the BufferingAppenderSkeleton Fix methods instead
+
+
+
+ Obsolete property.
+
+
+
+
+
+ The mode to use to authentication with the SMTP server
+
+
+ Authentication is only available on the MS .NET 1.1 runtime.
+
+ Valid Authentication mode values are: ,
+ , and .
+ The default value is . When using
+ you must specify the
+ and to use to authenticate.
+ When using the Windows credentials for the current
+ thread, if impersonating, or the process will be used to authenticate.
+
+
+
+
+
+ The username to use to authenticate with the SMTP server
+
+
+ Authentication is only available on the MS .NET 1.1 runtime.
+
+ A and must be specified when
+ is set to ,
+ otherwise the username will be ignored.
+
+
+
+
+
+ The password to use to authenticate with the SMTP server
+
+
+ Authentication is only available on the MS .NET 1.1 runtime.
+
+ A and must be specified when
+ is set to ,
+ otherwise the password will be ignored.
+
+
+
+
+
+ The port on which the SMTP server is listening
+
+
+ Server Port is only available on the MS .NET 1.1 runtime.
+
+ The port on which the SMTP server is listening. The default
+ port is 25. The Port can only be changed when running on
+ the MS .NET 1.1 runtime.
+
+
+
+
+
+ Gets or sets the priority of the e-mail message
+
+
+ One of the values.
+
+
+
+ Sets the priority of the e-mails generated by this
+ appender. The default priority is .
+
+
+ If you are using this appender to report errors then
+ you may want to set the priority to .
+
+
+
+
+
+ This appender requires a to be set.
+
+ true
+
+
+ This appender requires a to be set.
+
+
+
+
+
+ Values for the property.
+
+
+
+ SMTP authentication modes.
+
+
+
+
+
+ No authentication
+
+
+
+
+ Basic authentication.
+
+
+ Requires a username and password to be supplied
+
+
+
+
+ Integrated authentication
+
+
+ Uses the Windows credentials from the current thread or process to authenticate.
+
+
+
+
+ Send an email when a specific logging event occurs, typically on errors
+ or fatal errors. Rather than sending via smtp it writes a file into the
+ directory specified by . This allows services such
+ as the IIS SMTP agent to manage sending the messages.
+
+
+
+ The configuration for this appender is identical to that of the SMTPAppender,
+ except that instead of specifying the SMTPAppender.SMTPHost you specify
+ .
+
+
+ The number of logging events delivered in this e-mail depend on
+ the value of option. The
+ keeps only the last
+ logging events in its
+ cyclic buffer. This keeps memory requirements at a reasonable level while
+ still delivering useful application context.
+
+
+ Niall Daley
+ Nicko Cadell
+
+
+
+ Default constructor
+
+
+
+ Default constructor
+
+
+
+
+
+ Sends the contents of the cyclic buffer as an e-mail message.
+
+ The logging events to send.
+
+
+ Sends the contents of the cyclic buffer as an e-mail message.
+
+
+
+
+
+ Activate the options on this appender.
+
+
+
+ This is part of the delayed object
+ activation scheme. The method must
+ be called on this object after the configuration properties have
+ been set. Until is called this
+ object is in an undefined state and must not be used.
+
+
+ If any of the configuration properties are modified then
+ must be called again.
+
+
+
+
+
+ Convert a path into a fully qualified path.
+
+ The path to convert.
+ The fully qualified path.
+
+
+ Converts the path specified to a fully
+ qualified path. If the path is relative it is
+ taken as relative from the application base
+ directory.
+
+
+
+
+
+ The security context to use for privileged calls
+
+
+
+
+ Gets or sets a semicolon-delimited list of recipient e-mail addresses.
+
+
+ A semicolon-delimited list of e-mail addresses.
+
+
+
+ A semicolon-delimited list of e-mail addresses.
+
+
+
+
+
+ Gets or sets the e-mail address of the sender.
+
+
+ The e-mail address of the sender.
+
+
+
+ The e-mail address of the sender.
+
+
+
+
+
+ Gets or sets the subject line of the e-mail message.
+
+
+ The subject line of the e-mail message.
+
+
+
+ The subject line of the e-mail message.
+
+
+
+
+
+ Gets or sets the path to write the messages to.
+
+
+
+ Gets or sets the path to write the messages to. This should be the same
+ as that used by the agent sending the messages.
+
+
+
+
+
+ Gets or sets the used to write to the pickup directory.
+
+
+ The used to write to the pickup directory.
+
+
+
+ Unless a specified here for this appender
+ the is queried for the
+ security context to use. The default behavior is to use the security context
+ of the current thread.
+
+
+
+
+
+ This appender requires a to be set.
+
+ true
+
+
+ This appender requires a to be set.
+
+
+
+
+
+ Appender that allows clients to connect via Telnet to receive log messages
+
+
+
+ The TelnetAppender accepts socket connections and streams logging messages
+ back to the client.
+ The output is provided in a telnet-friendly way so that a log can be monitored
+ over a TCP/IP socket.
+ This allows simple remote monitoring of application logging.
+
+
+ The default is 23 (the telnet port).
+
+
+ Keith Long
+ Nicko Cadell
+
+
+
+ Default constructor
+
+
+
+ Default constructor
+
+
+
+
+
+ Overrides the parent method to close the socket handler
+
+
+
+ Closes all the outstanding connections.
+
+
+
+
+
+ Initialize the appender based on the options set.
+
+
+
+ This is part of the delayed object
+ activation scheme. The method must
+ be called on this object after the configuration properties have
+ been set. Until is called this
+ object is in an undefined state and must not be used.
+
+
+ If any of the configuration properties are modified then
+ must be called again.
+
+
+ Create the socket handler and wait for connections
+
+
+
+
+
+ Writes the logging event to each connected client.
+
+ The event to log.
+
+
+ Writes the logging event to each connected client.
+
+
+
+
+
+ Gets or sets the TCP port number on which this will listen for connections.
+
+
+ An integer value in the range to
+ indicating the TCP port number on which this will listen for connections.
+
+
+
+ The default value is 23 (the telnet port).
+
+
+ The value specified is less than
+ or greater than .
+
+
+
+ This appender requires a to be set.
+
+ true
+
+
+ This appender requires a to be set.
+
+
+
+
+
+ Helper class to manage connected clients
+
+
+
+ The SocketHandler class is used to accept connections from
+ clients. It is threaded so that clients can connect/disconnect
+ asynchronously.
+
+
+
+
+
+ Opens a new server port on
+
+ the local port to listen on for connections
+
+
+ Creates a socket handler on the specified local server port.
+
+
+
+
+
+ Sends a string message to each of the connected clients
+
+ the text to send
+
+
+ Sends a string message to each of the connected clients
+
+
+
+
+
+ Add a client to the internal clients list
+
+ client to add
+
+
+
+ Remove a client from the internal clients list
+
+ client to remove
+
+
+
+ Callback used to accept a connection on the server socket
+
+ The result of the asynchronous operation
+
+
+ On connection adds to the list of connections
+ if there are two many open connections you will be disconnected
+
+
+
+
+
+ Close all network connections
+
+
+
+ Make sure we close all network connections
+
+
+
+
+
+ Test if this handler has active connections
+
+
+ true if this handler has active connections
+
+
+
+ This property will be true while this handler has
+ active connections, that is at least one connection that
+ the handler will attempt to send a message to.
+
+
+
+
+
+ Class that represents a client connected to this handler
+
+
+
+ Class that represents a client connected to this handler
+
+
+
+
+
+ Create this for the specified
+
+ the client's socket
+
+
+ Opens a stream writer on the socket.
+
+
+
+
+
+ Write a string to the client
+
+ string to send
+
+
+ Write a string to the client
+
+
+
+
+
+ Cleanup the clients connection
+
+
+
+ Close the socket connection.
+
+
+
+
+
+ Appends log events to the system.
+
+
+
+ The application configuration file can be used to control what listeners
+ are actually used. See the MSDN documentation for the
+ class for details on configuring the
+ trace system.
+
+
+ Events are written using the System.Diagnostics.Trace.Write(string,string)
+ method. The event's logger name is passed as the value for the category name to the Write method.
+
+
+ Compact Framework
+ The Compact Framework does not support the
+ class for any operation except Assert. When using the Compact Framework this
+ appender will write to the system rather than
+ the Trace system. This appender will therefore behave like the .
+
+
+ Douglas de la Torre
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Initializes a new instance of the .
+
+
+
+ Default constructor.
+
+
+
+
+
+ Initializes a new instance of the
+ with a specified layout.
+
+ The layout to use with this appender.
+
+
+ Obsolete constructor.
+
+
+
+
+
+ Writes the logging event to the system.
+
+ The event to log.
+
+
+ Writes the logging event to the system.
+
+
+
+
+
+ Immediate flush means that the underlying writer or output stream
+ will be flushed at the end of each append operation.
+
+
+
+ Immediate flush is slower but ensures that each append request is
+ actually written. If is set to
+ false, then there is a good chance that the last few
+ logs events are not actually written to persistent media if and
+ when the application crashes.
+
+
+ The default value is true.
+
+
+
+
+ Gets or sets a value that indicates whether the appender will
+ flush at the end of each write.
+
+
+ The default behavior is to flush at the end of each
+ write. If the option is set tofalse, then the underlying
+ stream can defer writing to physical medium to a later time.
+
+
+ Avoiding the flush operation at the end of each append results
+ in a performance gain of 10 to 20 percent. However, there is safety
+ trade-off involved in skipping flushing. Indeed, when flushing is
+ skipped, then it is likely that the last few log events will not
+ be recorded on disk when the application exits. This is a high
+ price to pay even for a 20% performance gain.
+
+
+
+
+
+ This appender requires a to be set.
+
+ true
+
+
+ This appender requires a to be set.
+
+
+
+
+
+ Assembly level attribute that specifies a domain to alias to this assembly's repository.
+
+
+
+ AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute.
+
+
+ An assembly's logger repository is defined by its ,
+ however this can be overridden by an assembly loaded before the target assembly.
+
+
+ An assembly can alias another assembly's domain to its repository by
+ specifying this attribute with the name of the target domain.
+
+
+ This attribute can only be specified on the assembly and may be used
+ as many times as necessary to alias all the required domains.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Assembly level attribute that specifies a repository to alias to this assembly's repository.
+
+
+
+ An assembly's logger repository is defined by its ,
+ however this can be overridden by an assembly loaded before the target assembly.
+
+
+ An assembly can alias another assembly's repository to its repository by
+ specifying this attribute with the name of the target repository.
+
+
+ This attribute can only be specified on the assembly and may be used
+ as many times as necessary to alias all the required repositories.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Initializes a new instance of the class with
+ the specified repository to alias to this assembly's repository.
+
+ The repository to alias to this assemby's repository.
+
+
+ Initializes a new instance of the class with
+ the specified repository to alias to this assembly's repository.
+
+
+
+
+
+ Gets or sets the repository to alias to this assemby's repository.
+
+
+ The repository to alias to this assemby's repository.
+
+
+
+ The name of the repository to alias to this assemby's repository.
+
+
+
+
+
+ Initializes a new instance of the class with
+ the specified domain to alias to this assembly's repository.
+
+ The domain to alias to this assemby's repository.
+
+
+ Obsolete. Use instead of .
+
+
+
+
+
+ Use this class to quickly configure a .
+
+
+
+ Allows very simple programmatic configuration of log4net.
+
+
+ Only one appender can be configured using this configurator.
+ The appender is set at the root of the hierarchy and all logging
+ events will be delivered to that appender.
+
+
+ Appenders can also implement the interface. Therefore
+ they would require that the method
+ be called after the appenders properties have been configured.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ Uses a private access modifier to prevent instantiation of this class.
+
+
+
+
+
+ Initializes the log4net system with a default configuration.
+
+
+
+ Initializes the log4net logging system using a
+ that will write to Console.Out. The log messages are
+ formatted using the layout object
+ with the
+ layout style.
+
+
+
+
+
+ Initializes the log4net system using the specified appender.
+
+ The appender to use to log all logging events.
+
+
+ Initializes the log4net system using the specified appender.
+
+
+
+
+
+ Initializes the with a default configuration.
+
+ The repository to configure.
+
+
+ Initializes the specified repository using a
+ that will write to Console.Out. The log messages are
+ formatted using the layout object
+ with the
+ layout style.
+
+
+
+
+
+ Initializes the using the specified appender.
+
+ The repository to configure.
+ The appender to use to log all logging events.
+
+
+ Initializes the using the specified appender.
+
+
+
+
+
+ Base class for all log4net configuration attributes.
+
+
+ This is an abstract class that must be extended by
+ specific configurators. This attribute allows the
+ configurator to be parameterized by an assembly level
+ attribute.
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Constructor used by subclasses.
+
+ the ordering priority for this configurator
+
+
+ The is used to order the configurator
+ attributes before they are invoked. Higher priority configurators are executed
+ before lower priority ones.
+
+
+
+
+
+ Configures the for the specified assembly.
+
+ The assembly that this attribute was defined on.
+ The repository to configure.
+
+
+ Abstract method implemented by a subclass. When this method is called
+ the subclass should configure the .
+
+
+
+
+
+ Compare this instance to another ConfiguratorAttribute
+
+ the object to compare to
+ see
+
+
+ Compares the priorities of the two instances.
+ Sorts by priority in descending order. Objects with the same priority are
+ randomly ordered.
+
+
+
+
+
+ Assembly level attribute that specifies the logging domain for the assembly.
+
+
+
+ DomainAttribute is obsolete. Use RepositoryAttribute instead of DomainAttribute.
+
+
+ Assemblies are mapped to logging domains. Each domain has its own
+ logging repository. This attribute specified on the assembly controls
+ the configuration of the domain. The property specifies the name
+ of the domain that this assembly is a part of. The
+ specifies the type of the repository objects to create for the domain. If
+ this attribute is not specified and a is not specified
+ then the assembly will be part of the default shared logging domain.
+
+
+ This attribute can only be specified on the assembly and may only be used
+ once per assembly.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Assembly level attribute that specifies the logging repository for the assembly.
+
+
+
+ Assemblies are mapped to logging repository. This attribute specified
+ on the assembly controls
+ the configuration of the repository. The property specifies the name
+ of the repository that this assembly is a part of. The
+ specifies the type of the object
+ to create for the assembly. If this attribute is not specified or a
+ is not specified then the assembly will be part of the default shared logging repository.
+
+
+ This attribute can only be specified on the assembly and may only be used
+ once per assembly.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ Default constructor.
+
+
+
+
+
+ Initialize a new instance of the class
+ with the name of the repository.
+
+ The name of the repository.
+
+
+ Initialize the attribute with the name for the assembly's repository.
+
+
+
+
+
+ Gets or sets the name of the logging repository.
+
+
+ The string name to use as the name of the repository associated with this
+ assembly.
+
+
+
+ This value does not have to be unique. Several assemblies can share the
+ same repository. They will share the logging configuration of the repository.
+
+
+
+
+
+ Gets or sets the type of repository to create for this assembly.
+
+
+ The type of repository to create for this assembly.
+
+
+
+ The type of the repository to create for the assembly.
+ The type must implement the
+ interface.
+
+
+ This will be the type of repository created when
+ the repository is created. If multiple assemblies reference the
+ same repository then the repository is only created once using the
+ of the first assembly to call into the
+ repository.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ Obsolete. Use RepositoryAttribute instead of DomainAttribute.
+
+
+
+
+
+ Initialize a new instance of the class
+ with the name of the domain.
+
+ The name of the domain.
+
+
+ Obsolete. Use RepositoryAttribute instead of DomainAttribute.
+
+
+
+
+
+ Use this class to initialize the log4net environment using an Xml tree.
+
+
+
+ DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator.
+
+
+ Configures a using an Xml tree.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Private constructor
+
+
+
+
+ Automatically configures the log4net system based on the
+ application's configuration settings.
+
+
+
+ DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator.
+
+ Each application has a configuration file. This has the
+ same name as the application with '.config' appended.
+ This file is XML and calling this function prompts the
+ configurator to look in that file for a section called
+ log4net that contains the configuration data.
+
+
+
+
+ Automatically configures the using settings
+ stored in the application's configuration file.
+
+
+
+ DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator.
+
+ Each application has a configuration file. This has the
+ same name as the application with '.config' appended.
+ This file is XML and calling this function prompts the
+ configurator to look in that file for a section called
+ log4net that contains the configuration data.
+
+ The repository to configure.
+
+
+
+ Configures log4net using a log4net element
+
+
+
+ DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator.
+
+ Loads the log4net configuration from the XML element
+ supplied as .
+
+ The element to parse.
+
+
+
+ Configures the using the specified XML
+ element.
+
+
+
+ DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator.
+
+ Loads the log4net configuration from the XML element
+ supplied as .
+
+ The repository to configure.
+ The element to parse.
+
+
+
+ Configures log4net using the specified configuration file.
+
+ The XML file to load the configuration from.
+
+
+ DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator.
+
+
+ The configuration file must be valid XML. It must contain
+ at least one element called log4net that holds
+ the log4net configuration data.
+
+
+ The log4net configuration file can possible be specified in the application's
+ configuration file (either MyAppName.exe.config for a
+ normal application on Web.config for an ASP.NET application).
+
+
+ The following example configures log4net using a configuration file, of which the
+ location is stored in the application's configuration file :
+
+
+ using log4net.Config;
+ using System.IO;
+ using System.Configuration;
+
+ ...
+
+ DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"]));
+
+
+ In the .config file, the path to the log4net can be specified like this :
+
+
+
+
+
+
+
+
+
+
+
+
+ Configures log4net using the specified configuration file.
+
+ A stream to load the XML configuration from.
+
+
+ DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator.
+
+
+ The configuration data must be valid XML. It must contain
+ at least one element called log4net that holds
+ the log4net configuration data.
+
+
+ Note that this method will NOT close the stream parameter.
+
+
+
+
+
+ Configures the using the specified configuration
+ file.
+
+ The repository to configure.
+ The XML file to load the configuration from.
+
+
+ DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator.
+
+
+ The configuration file must be valid XML. It must contain
+ at least one element called log4net that holds
+ the configuration data.
+
+
+ The log4net configuration file can possible be specified in the application's
+ configuration file (either MyAppName.exe.config for a
+ normal application on Web.config for an ASP.NET application).
+
+
+ The following example configures log4net using a configuration file, of which the
+ location is stored in the application's configuration file :
+
+
+ using log4net.Config;
+ using System.IO;
+ using System.Configuration;
+
+ ...
+
+ DOMConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"]));
+
+
+ In the .config file, the path to the log4net can be specified like this :
+
+
+
+
+
+
+
+
+
+
+
+
+ Configures the using the specified configuration
+ file.
+
+ The repository to configure.
+ The stream to load the XML configuration from.
+
+
+ DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator.
+
+
+ The configuration data must be valid XML. It must contain
+ at least one element called log4net that holds
+ the configuration data.
+
+
+ Note that this method will NOT close the stream parameter.
+
+
+
+
+
+ Configures log4net using the file specified, monitors the file for changes
+ and reloads the configuration if a change is detected.
+
+ The XML file to load the configuration from.
+
+
+ DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator.
+
+
+ The configuration file must be valid XML. It must contain
+ at least one element called log4net that holds
+ the configuration data.
+
+
+ The configuration file will be monitored using a
+ and depends on the behavior of that class.
+
+
+ For more information on how to configure log4net using
+ a separate configuration file, see .
+
+
+
+
+
+
+ Configures the using the file specified,
+ monitors the file for changes and reloads the configuration if a change
+ is detected.
+
+ The repository to configure.
+ The XML file to load the configuration from.
+
+
+ DOMConfigurator is obsolete. Use XmlConfigurator instead of DOMConfigurator.
+
+
+ The configuration file must be valid XML. It must contain
+ at least one element called log4net that holds
+ the configuration data.
+
+
+ The configuration file will be monitored using a
+ and depends on the behavior of that class.
+
+
+ For more information on how to configure log4net using
+ a separate configuration file, see .
+
+
+
+
+
+
+ Assembly level attribute to configure the .
+
+
+
+ AliasDomainAttribute is obsolete. Use AliasRepositoryAttribute instead of AliasDomainAttribute.
+
+
+ This attribute may only be used at the assembly scope and can only
+ be used once per assembly.
+
+
+ Use this attribute to configure the
+ without calling one of the
+ methods.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Assembly level attribute to configure the .
+
+
+
+ This attribute may only be used at the assembly scope and can only
+ be used once per assembly.
+
+
+ Use this attribute to configure the
+ without calling one of the
+ methods.
+
+
+ If neither of the or
+ properties are set the configuration is loaded from the application's .config file.
+ If set the property takes priority over the
+ property. The property
+ specifies a path to a file to load the config from. The path is relative to the
+ application's base directory; .
+ The property is used as a postfix to the assembly file name.
+ The config file must be located in the application's base directory; .
+ For example in a console application setting the to
+ config has the same effect as not specifying the or
+ properties.
+
+
+ The property can be set to cause the
+ to watch the configuration file for changes.
+
+
+
+ Log4net will only look for assembly level configuration attributes once.
+ When using the log4net assembly level attributes to control the configuration
+ of log4net you must ensure that the first call to any of the
+ methods is made from the assembly with the configuration
+ attributes.
+
+
+ If you cannot guarantee the order in which log4net calls will be made from
+ different assemblies you must use programmatic configuration instead, i.e.
+ call the method directly.
+
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Default constructor
+
+
+
+ Default constructor
+
+
+
+
+
+ Configures the for the specified assembly.
+
+ The assembly that this attribute was defined on.
+ The repository to configure.
+
+
+ Configure the repository using the .
+ The specified must extend the
+ class otherwise the will not be able to
+ configure it.
+
+
+ The does not extend .
+
+
+
+ Attempt to load configuration from the local file system
+
+ The assembly that this attribute was defined on.
+ The repository to configure.
+
+
+
+ Configure the specified repository using a
+
+ The repository to configure.
+ the FileInfo pointing to the config file
+
+
+
+ Attempt to load configuration from a URI
+
+ The assembly that this attribute was defined on.
+ The repository to configure.
+
+
+
+ Gets or sets the filename of the configuration file.
+
+
+ The filename of the configuration file.
+
+
+
+ If specified, this is the name of the configuration file to use with
+ the . This file path is relative to the
+ application base directory ().
+
+
+ The takes priority over the .
+
+
+
+
+
+ Gets or sets the extension of the configuration file.
+
+
+ The extension of the configuration file.
+
+
+
+ If specified this is the extension for the configuration file.
+ The path to the config file is built by using the application
+ base directory (),
+ the assembly file name and the config file extension.
+
+
+ If the is set to MyExt then
+ possible config file names would be: MyConsoleApp.exe.MyExt or
+ MyClassLibrary.dll.MyExt.
+
+
+ The takes priority over the .
+
+
+
+
+
+ Gets or sets a value indicating whether to watch the configuration file.
+
+
+ true if the configuration should be watched, false otherwise.
+
+
+
+ If this flag is specified and set to true then the framework
+ will watch the configuration file and will reload the config each time
+ the file is modified.
+
+
+ The config file can only be watched if it is loaded from local disk.
+ In a No-Touch (Smart Client) deployment where the application is downloaded
+ from a web server the config file may not reside on the local disk
+ and therefore it may not be able to watch it.
+
+
+ Watching configuration is not supported on the SSCLI.
+
+
+
+
+
+ Class to register for the log4net section of the configuration file
+
+
+ The log4net section of the configuration file needs to have a section
+ handler registered. This is the section handler used. It simply returns
+ the XML element that is the root of the section.
+
+
+ Example of registering the log4net section handler :
+
+
+
+
+
+
+ log4net configuration XML goes here
+
+
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Initializes a new instance of the class.
+
+
+
+ Default constructor.
+
+
+
+
+
+ Parses the configuration section.
+
+ The configuration settings in a corresponding parent configuration section.
+ The configuration context when called from the ASP.NET configuration system. Otherwise, this parameter is reserved and is a null reference.
+ The for the log4net section.
+ The for the log4net section.
+
+
+ Returns the containing the configuration data,
+
+
+
+
+
+ Assembly level attribute that specifies a plugin to attach to
+ the repository.
+
+
+
+ Specifies the type of a plugin to create and attach to the
+ assembly's repository. The plugin type must implement the
+ interface.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Interface used to create plugins.
+
+
+
+ Interface used to create a plugin.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Creates the plugin object.
+
+ the new plugin instance
+
+
+ Create and return a new plugin instance.
+
+
+
+
+
+ Initializes a new instance of the class
+ with the specified type.
+
+ The type name of plugin to create.
+
+
+ Create the attribute with the plugin type specified.
+
+
+ Where possible use the constructor that takes a .
+
+
+
+
+
+ Initializes a new instance of the class
+ with the specified type.
+
+ The type of plugin to create.
+
+
+ Create the attribute with the plugin type specified.
+
+
+
+
+
+ Creates the plugin object defined by this attribute.
+
+
+
+ Creates the instance of the object as
+ specified by this attribute.
+
+
+ The plugin object.
+
+
+
+ Returns a representation of the properties of this object.
+
+
+
+ Overrides base class method to
+ return a representation of the properties of this object.
+
+
+ A representation of the properties of this object
+
+
+
+ Gets or sets the type for the plugin.
+
+
+ The type for the plugin.
+
+
+
+ The type for the plugin.
+
+
+
+
+
+ Gets or sets the type name for the plugin.
+
+
+ The type name for the plugin.
+
+
+
+ The type name for the plugin.
+
+
+ Where possible use the property instead.
+
+
+
+
+
+ Assembly level attribute to configure the .
+
+
+
+ This attribute may only be used at the assembly scope and can only
+ be used once per assembly.
+
+
+ Use this attribute to configure the
+ without calling one of the
+ methods.
+
+
+ Nicko Cadell
+
+
+
+ Construct provider attribute with type specified
+
+ the type of the provider to use
+
+
+ The provider specified must subclass the
+ class.
+
+
+
+
+
+ Configures the SecurityContextProvider
+
+ The assembly that this attribute was defined on.
+ The repository to configure.
+
+
+ Creates a provider instance from the specified.
+ Sets this as the default security context provider .
+
+
+
+
+
+ Gets or sets the type of the provider to use.
+
+
+ the type of the provider to use.
+
+
+
+ The provider specified must subclass the
+ class.
+
+
+
+
+
+ Use this class to initialize the log4net environment using an Xml tree.
+
+
+
+ Configures a using an Xml tree.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Private constructor
+
+
+
+
+ Automatically configures the log4net system based on the
+ application's configuration settings.
+
+
+
+ Each application has a configuration file. This has the
+ same name as the application with '.config' appended.
+ This file is XML and calling this function prompts the
+ configurator to look in that file for a section called
+ log4net that contains the configuration data.
+
+
+ To use this method to configure log4net you must specify
+ the section
+ handler for the log4net configuration section. See the
+ for an example.
+
+
+
+
+
+
+ Automatically configures the using settings
+ stored in the application's configuration file.
+
+
+
+ Each application has a configuration file. This has the
+ same name as the application with '.config' appended.
+ This file is XML and calling this function prompts the
+ configurator to look in that file for a section called
+ log4net that contains the configuration data.
+
+
+ To use this method to configure log4net you must specify
+ the section
+ handler for the log4net configuration section. See the
+ for an example.
+
+
+ The repository to configure.
+
+
+
+ Configures log4net using a log4net element
+
+
+
+ Loads the log4net configuration from the XML element
+ supplied as .
+
+
+ The element to parse.
+
+
+
+ Configures the using the specified XML
+ element.
+
+
+ Loads the log4net configuration from the XML element
+ supplied as .
+
+ The repository to configure.
+ The element to parse.
+
+
+
+ Configures log4net using the specified configuration file.
+
+ The XML file to load the configuration from.
+
+
+ The configuration file must be valid XML. It must contain
+ at least one element called log4net that holds
+ the log4net configuration data.
+
+
+ The log4net configuration file can possible be specified in the application's
+ configuration file (either MyAppName.exe.config for a
+ normal application on Web.config for an ASP.NET application).
+
+
+ The first element matching <configuration> will be read as the
+ configuration. If this file is also a .NET .config file then you must specify
+ a configuration section for the log4net element otherwise .NET will
+ complain. Set the type for the section handler to , for example:
+
+
+
+
+
+
+
+ The following example configures log4net using a configuration file, of which the
+ location is stored in the application's configuration file :
+
+
+ using log4net.Config;
+ using System.IO;
+ using System.Configuration;
+
+ ...
+
+ XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"]));
+
+
+ In the .config file, the path to the log4net can be specified like this :
+
+
+
+
+
+
+
+
+
+
+
+
+ Configures log4net using the specified configuration URI.
+
+ A URI to load the XML configuration from.
+
+
+ The configuration data must be valid XML. It must contain
+ at least one element called log4net that holds
+ the log4net configuration data.
+
+
+ The must support the URI scheme specified.
+
+
+
+
+
+ Configures log4net using the specified configuration data stream.
+
+ A stream to load the XML configuration from.
+
+
+ The configuration data must be valid XML. It must contain
+ at least one element called log4net that holds
+ the log4net configuration data.
+
+
+ Note that this method will NOT close the stream parameter.
+
+
+
+
+
+ Configures the using the specified configuration
+ file.
+
+ The repository to configure.
+ The XML file to load the configuration from.
+
+
+ The configuration file must be valid XML. It must contain
+ at least one element called log4net that holds
+ the configuration data.
+
+
+ The log4net configuration file can possible be specified in the application's
+ configuration file (either MyAppName.exe.config for a
+ normal application on Web.config for an ASP.NET application).
+
+
+ The first element matching <configuration> will be read as the
+ configuration. If this file is also a .NET .config file then you must specify
+ a configuration section for the log4net element otherwise .NET will
+ complain. Set the type for the section handler to , for example:
+
+
+
+
+
+
+
+ The following example configures log4net using a configuration file, of which the
+ location is stored in the application's configuration file :
+
+
+ using log4net.Config;
+ using System.IO;
+ using System.Configuration;
+
+ ...
+
+ XmlConfigurator.Configure(new FileInfo(ConfigurationSettings.AppSettings["log4net-config-file"]));
+
+
+ In the .config file, the path to the log4net can be specified like this :
+
+
+
+
+
+
+
+
+
+
+
+
+ Configures the using the specified configuration
+ URI.
+
+ The repository to configure.
+ A URI to load the XML configuration from.
+
+
+ The configuration data must be valid XML. It must contain
+ at least one element called log4net that holds
+ the configuration data.
+
+
+ The must support the URI scheme specified.
+
+
+
+
+
+ Configures the using the specified configuration
+ file.
+
+ The repository to configure.
+ The stream to load the XML configuration from.
+
+
+ The configuration data must be valid XML. It must contain
+ at least one element called log4net that holds
+ the configuration data.
+
+
+ Note that this method will NOT close the stream parameter.
+
+
+
+
+
+ Configures log4net using the file specified, monitors the file for changes
+ and reloads the configuration if a change is detected.
+
+ The XML file to load the configuration from.
+
+
+ The configuration file must be valid XML. It must contain
+ at least one element called log4net that holds
+ the configuration data.
+
+
+ The configuration file will be monitored using a
+ and depends on the behavior of that class.
+
+
+ For more information on how to configure log4net using
+ a separate configuration file, see .
+
+
+
+
+
+
+ Configures the using the file specified,
+ monitors the file for changes and reloads the configuration if a change
+ is detected.
+
+ The repository to configure.
+ The XML file to load the configuration from.
+
+
+ The configuration file must be valid XML. It must contain
+ at least one element called log4net that holds
+ the configuration data.
+
+
+ The configuration file will be monitored using a
+ and depends on the behavior of that class.
+
+
+ For more information on how to configure log4net using
+ a separate configuration file, see .
+
+
+
+
+
+
+ Configures the specified repository using a log4net element.
+
+ The hierarchy to configure.
+ The element to parse.
+
+
+ Loads the log4net configuration from the XML element
+ supplied as .
+
+
+ This method is ultimately called by one of the Configure methods
+ to load the configuration from an .
+
+
+
+
+
+ Class used to watch config files.
+
+
+
+ Uses the to monitor
+ changes to a specified file. Because multiple change notifications
+ may be raised when the file is modified, a timer is used to
+ compress the notifications into a single event. The timer
+ waits for time before delivering
+ the event notification. If any further
+ change notifications arrive while the timer is waiting it
+ is reset and waits again for to
+ elapse.
+
+
+
+
+
+ The default amount of time to wait after receiving notification
+ before reloading the config file.
+
+
+
+
+ Watch a specified config file used to configure a repository
+
+ The repository to configure.
+ The configuration file to watch.
+
+
+ Watch a specified config file used to configure a repository
+
+
+
+
+
+ Holds the FileInfo used to configure the XmlConfigurator
+
+
+
+
+ Holds the repository being configured.
+
+
+
+
+ The timer used to compress the notification events.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The repository to configure.
+ The configuration file to watch.
+
+
+ Initializes a new instance of the class.
+
+
+
+
+
+ Event handler used by .
+
+ The firing the event.
+ The argument indicates the file that caused the event to be fired.
+
+
+ This handler reloads the configuration from the file when the event is fired.
+
+
+
+
+
+ Event handler used by .
+
+ The firing the event.
+ The argument indicates the file that caused the event to be fired.
+
+
+ This handler reloads the configuration from the file when the event is fired.
+
+
+
+
+
+ Called by the timer when the configuration has been updated.
+
+ null
+
+
+
+ The implementation of the interface suitable
+ for use with the compact framework
+
+
+
+ This implementation is a simple
+ mapping between repository name and
+ object.
+
+
+ The .NET Compact Framework 1.0 does not support retrieving assembly
+ level attributes therefore unlike the DefaultRepositorySelector
+ this selector does not examine the calling assembly for attributes.
+
+
+ Nicko Cadell
+
+
+
+ Interface used by the to select the .
+
+
+
+ The uses a
+ to specify the policy for selecting the correct
+ to return to the caller.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Gets the for the specified assembly.
+
+ The assembly to use to lookup to the
+ The for the assembly.
+
+
+ Gets the for the specified assembly.
+
+
+ How the association between and
+ is made is not defined. The implementation may choose any method for
+ this association. The results of this method must be repeatable, i.e.
+ when called again with the same arguments the result must be the
+ save value.
+
+
+
+
+
+ Gets the named .
+
+ The name to use to lookup to the .
+ The named
+
+ Lookup a named . This is the repository created by
+ calling .
+
+
+
+
+ Creates a new repository for the assembly specified.
+
+ The assembly to use to create the domain to associate with the .
+ The type of repository to create, must implement .
+ The repository created.
+
+
+ The created will be associated with the domain
+ specified such that a call to with the
+ same assembly specified will return the same repository instance.
+
+
+ How the association between and
+ is made is not defined. The implementation may choose any method for
+ this association.
+
+
+
+
+
+ Creates a new repository with the name specified.
+
+ The name to associate with the .
+ The type of repository to create, must implement .
+ The repository created.
+
+
+ The created will be associated with the name
+ specified such that a call to with the
+ same name will return the same repository instance.
+
+
+
+
+
+ Test if a named repository exists
+
+ the named repository to check
+ true if the repository exists
+
+
+ Test if a named repository exists. Use
+ to create a new repository and to retrieve
+ a repository.
+
+
+
+
+
+ Gets an array of all currently defined repositories.
+
+
+ An array of the instances created by
+ this .
+
+
+ Gets an array of all of the repositories created by this selector.
+
+
+
+
+
+ Event to notify that a logger repository has been created.
+
+
+ Event to notify that a logger repository has been created.
+
+
+
+ Event raised when a new repository is created.
+ The event source will be this selector. The event args will
+ be a which
+ holds the newly created .
+
+
+
+
+
+ Create a new repository selector
+
+ the type of the repositories to create, must implement
+
+
+ Create an new compact repository selector.
+ The default type for repositories must be specified,
+ an appropriate value would be .
+
+
+ throw if is null
+ throw if does not implement
+
+
+
+ Get the for the specified assembly
+
+ not used
+ The default
+
+
+ The argument is not used. This selector does not create a
+ separate repository for each assembly.
+
+
+ As a named repository is not specified the default repository is
+ returned. The default repository is named log4net-default-repository.
+
+
+
+
+
+ Get the named
+
+ the name of the repository to lookup
+ The named
+
+
+ Get the named . The default
+ repository is log4net-default-repository. Other repositories
+ must be created using the .
+ If the named repository does not exist an exception is thrown.
+
+
+ throw if is null
+ throw if the does not exist
+
+
+
+ Create a new repository for the assembly specified
+
+ not used
+ the type of repository to create, must implement
+ the repository created
+
+
+ The argument is not used. This selector does not create a
+ separate repository for each assembly.
+
+
+ If the is null then the
+ default repository type specified to the constructor is used.
+
+
+ As a named repository is not specified the default repository is
+ returned. The default repository is named log4net-default-repository.
+
+
+
+
+
+ Create a new repository for the repository specified
+
+ the repository to associate with the
+ the type of repository to create, must implement .
+ If this param is null then the default repository type is used.
+ the repository created
+
+
+ The created will be associated with the repository
+ specified such that a call to with the
+ same repository specified will return the same repository instance.
+
+
+ If the named repository already exists an exception will be thrown.
+
+
+ If is null then the default
+ repository type specified to the constructor is used.
+
+
+ throw if is null
+ throw if the already exists
+
+
+
+ Test if a named repository exists
+
+ the named repository to check
+ true if the repository exists
+
+
+ Test if a named repository exists. Use
+ to create a new repository and to retrieve
+ a repository.
+
+
+
+
+
+ Gets a list of objects
+
+ an array of all known objects
+
+
+ Gets an array of all of the repositories created by this selector.
+
+
+
+
+
+ Notify the registered listeners that the repository has been created
+
+ The repository that has been created
+
+
+ Raises the LoggerRepositoryCreatedEvent
+ event.
+
+
+
+
+
+ Event to notify that a logger repository has been created.
+
+
+ Event to notify that a logger repository has been created.
+
+
+
+ Event raised when a new repository is created.
+ The event source will be this selector. The event args will
+ be a which
+ holds the newly created .
+
+
+
+
+
+ The default implementation of the interface.
+
+
+
+ Uses attributes defined on the calling assembly to determine how to
+ configure the hierarchy for the repository.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Creates a new repository selector.
+
+ The type of the repositories to create, must implement
+
+
+ Create an new repository selector.
+ The default type for repositories must be specified,
+ an appropriate value would be .
+
+
+ is .
+ does not implement .
+
+
+
+ Gets the for the specified assembly.
+
+ The assembly use to lookup the .
+
+
+ The type of the created and the repository
+ to create can be overridden by specifying the
+ attribute on the .
+
+
+ The default values are to use the
+ implementation of the interface and to use the
+ as the name of the repository.
+
+
+ The created will be automatically configured using
+ any attributes defined on
+ the .
+
+
+ The for the assembly
+ is .
+
+
+
+ Gets the for the specified repository.
+
+ The repository to use to lookup the .
+ The for the specified repository.
+
+
+ Returns the named repository. If is null
+ a is thrown. If the repository
+ does not exist a is thrown.
+
+
+ Use to create a repository.
+
+
+ is .
+ does not exist.
+
+
+
+ Create a new repository for the assembly specified
+
+ the assembly to use to create the repository to associate with the .
+ The type of repository to create, must implement .
+ The repository created.
+
+
+ The created will be associated with the repository
+ specified such that a call to with the
+ same assembly specified will return the same repository instance.
+
+
+ The type of the created and
+ the repository to create can be overridden by specifying the
+ attribute on the
+ . The default values are to use the
+ implementation of the
+ interface and to use the
+ as the name of the repository.
+
+
+ The created will be automatically
+ configured using any
+ attributes defined on the .
+
+
+ If a repository for the already exists
+ that repository will be returned. An error will not be raised and that
+ repository may be of a different type to that specified in .
+ Also the attribute on the
+ assembly may be used to override the repository type specified in
+ .
+
+
+ is .
+
+
+
+ Creates a new repository for the assembly specified.
+
+ the assembly to use to create the repository to associate with the .
+ The type of repository to create, must implement .
+ The name to assign to the created repository
+ Set to true to read and apply the assembly attributes
+ The repository created.
+
+
+ The created will be associated with the repository
+ specified such that a call to with the
+ same assembly specified will return the same repository instance.
+
+
+ The type of the created and
+ the repository to create can be overridden by specifying the
+ attribute on the
+ . The default values are to use the
+ implementation of the
+ interface and to use the
+ as the name of the repository.
+
+
+ The created will be automatically
+ configured using any
+ attributes defined on the .
+
+
+ If a repository for the already exists
+ that repository will be returned. An error will not be raised and that
+ repository may be of a different type to that specified in .
+ Also the attribute on the
+ assembly may be used to override the repository type specified in
+ .
+
+
+ is .
+
+
+
+ Creates a new repository for the specified repository.
+
+ The repository to associate with the .
+ The type of repository to create, must implement .
+ If this param is then the default repository type is used.
+ The new repository.
+
+
+ The created will be associated with the repository
+ specified such that a call to with the
+ same repository specified will return the same repository instance.
+
+
+ is .
+ already exists.
+
+
+
+ Test if a named repository exists
+
+ the named repository to check
+ true if the repository exists
+
+
+ Test if a named repository exists. Use
+ to create a new repository and to retrieve
+ a repository.
+
+
+
+
+
+ Gets a list of objects
+
+ an array of all known objects
+
+
+ Gets an array of all of the repositories created by this selector.
+
+
+
+
+
+ Aliases a repository to an existing repository.
+
+ The repository to alias.
+ The repository that the repository is aliased to.
+
+
+ The repository specified will be aliased to the repository when created.
+ The repository must not already exist.
+
+
+ When the repository is created it must utilize the same repository type as
+ the repository it is aliased to, otherwise the aliasing will fail.
+
+
+
+ is .
+ -or-
+ is .
+
+
+
+
+ Notifies the registered listeners that the repository has been created.
+
+ The repository that has been created.
+
+
+ Raises the event.
+
+
+
+
+
+ Gets the repository name and repository type for the specified assembly.
+
+ The assembly that has a .
+ in/out param to hold the repository name to use for the assembly, caller should set this to the default value before calling.
+ in/out param to hold the type of the repository to create for the assembly, caller should set this to the default value before calling.
+ is .
+
+
+
+ Configures the repository using information from the assembly.
+
+ The assembly containing
+ attributes which define the configuration for the repository.
+ The repository to configure.
+
+ is .
+ -or-
+ is .
+
+
+
+
+ Loads the attribute defined plugins on the assembly.
+
+ The assembly that contains the attributes.
+ The repository to add the plugins to.
+
+ is .
+ -or-
+ is .
+
+
+
+
+ Loads the attribute defined aliases on the assembly.
+
+ The assembly that contains the attributes.
+ The repository to alias to.
+
+ is .
+ -or-
+ is .
+
+
+
+
+ Event to notify that a logger repository has been created.
+
+
+ Event to notify that a logger repository has been created.
+
+
+
+ Event raised when a new repository is created.
+ The event source will be this selector. The event args will
+ be a which
+ holds the newly created .
+
+
+
+
+
+ Defined error codes that can be passed to the method.
+
+
+
+ Values passed to the method.
+
+
+ Nicko Cadell
+
+
+
+ A general error
+
+
+
+
+ Error while writing output
+
+
+
+
+ Failed to flush file
+
+
+
+
+ Failed to close file
+
+
+
+
+ Unable to open output file
+
+
+
+
+ No layout specified
+
+
+
+
+ Failed to parse address
+
+
+
+
+ Appenders may delegate their error handling to an .
+
+
+
+ Error handling is a particularly tedious to get right because by
+ definition errors are hard to predict and to reproduce.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Handles the error and information about the error condition is passed as
+ a parameter.
+
+ The message associated with the error.
+ The that was thrown when the error occurred.
+ The error code associated with the error.
+
+
+ Handles the error and information about the error condition is passed as
+ a parameter.
+
+
+
+
+
+ Prints the error message passed as a parameter.
+
+ The message associated with the error.
+ The that was thrown when the error occurred.
+
+
+ See .
+
+
+
+
+
+ Prints the error message passed as a parameter.
+
+ The message associated with the error.
+
+
+ See .
+
+
+
+
+
+ Interface for objects that require fixing.
+
+
+
+ Interface that indicates that the object requires fixing before it
+ can be taken outside the context of the appender's
+ method.
+
+
+ When objects that implement this interface are stored
+ in the context properties maps
+ and
+ are fixed
+ (see ) the
+ method will be called.
+
+
+ Nicko Cadell
+
+
+
+ Get a portable version of this object
+
+ the portable instance of this object
+
+
+ Get a portable instance object that represents the current
+ state of this object. The portable object can be stored
+ and logged from any thread with identical results.
+
+
+
+
+
+ Interface that all loggers implement
+
+
+
+ This interface supports logging events and testing if a level
+ is enabled for logging.
+
+
+ These methods will not throw exceptions. Note to implementor, ensure
+ that the implementation of these methods cannot allow an exception
+ to be thrown to the caller.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ This generic form is intended to be used by wrappers.
+
+ The declaring type of the method that is
+ the stack boundary into the logging system for this call.
+ The level of the message to be logged.
+ The message object to log.
+ the exception to log, including its stack trace. Pass null to not log an exception.
+
+
+ Generates a logging event for the specified using
+ the and .
+
+
+
+
+
+ This is the most generic printing method that is intended to be used
+ by wrappers.
+
+ The event being logged.
+
+
+ Logs the specified logging event through this logger.
+
+
+
+
+
+ Checks if this logger is enabled for a given passed as parameter.
+
+ The level to check.
+
+ true if this logger is enabled for level, otherwise false.
+
+
+
+ Test if this logger is going to log events of the specified .
+
+
+
+
+
+ Gets the name of the logger.
+
+
+ The name of the logger.
+
+
+
+ The name of this logger
+
+
+
+
+
+ Gets the where this
+ Logger instance is attached to.
+
+
+ The that this logger belongs to.
+
+
+
+ Gets the where this
+ Logger instance is attached to.
+
+
+
+
+
+ Base interface for all wrappers
+
+
+
+ Base interface for all wrappers.
+
+
+ All wrappers must implement this interface.
+
+
+ Nicko Cadell
+
+
+
+ Get the implementation behind this wrapper object.
+
+
+ The object that in implementing this object.
+
+
+
+ The object that in implementing this
+ object. The Logger object may not
+ be the same object as this object because of logger decorators.
+ This gets the actual underlying objects that is used to process
+ the log events.
+
+
+
+
+
+ Delegate used to handle logger repository creation event notifications
+
+ The which created the repository.
+ The event args
+ that holds the instance that has been created.
+
+
+ Delegate used to handle logger repository creation event notifications.
+
+
+
+
+
+ Provides data for the event.
+
+
+
+ A
+ event is raised every time a is created.
+
+
+
+
+
+ The created
+
+
+
+
+ Construct instance using specified
+
+ the that has been created
+
+
+ Construct instance using specified
+
+
+
+
+
+ The that has been created
+
+
+ The that has been created
+
+
+
+ The that has been created
+
+
+
+
+
+ Test if an triggers an action
+
+
+
+ Implementations of this interface allow certain appenders to decide
+ when to perform an appender specific action.
+
+
+ The action or behavior triggered is defined by the implementation.
+
+
+ Nicko Cadell
+
+
+
+ Test if this event triggers the action
+
+ The event to check
+ true if this event triggers the action, otherwise false
+
+
+ Return true if this event triggers the action
+
+
+
+
+
+ Defines the default set of levels recognized by the system.
+
+
+
+ Each has an associated .
+
+
+ Levels have a numeric that defines the relative
+ ordering between levels. Two Levels with the same
+ are deemed to be equivalent.
+
+
+ The levels that are recognized by log4net are set for each
+ and each repository can have different levels defined. The levels are stored
+ in the on the repository. Levels are
+ looked up by name from the .
+
+
+ When logging at level INFO the actual level used is not but
+ the value of LoggerRepository.LevelMap["INFO"]. The default value for this is
+ , but this can be changed by reconfiguring the level map.
+
+
+ Each level has a in addition to its . The
+ is the string that is written into the output log. By default
+ the display name is the same as the level name, but this can be used to alias levels
+ or to localize the log output.
+
+
+ Some of the predefined levels recognized by the system are:
+
+
+
+ .
+
+
+ .
+
+
+ .
+
+
+ .
+
+
+ .
+
+
+ .
+
+
+ .
+
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Constructor
+
+ Integer value for this level, higher values represent more severe levels.
+ The string name of this level.
+ The display name for this level. This may be localized or otherwise different from the name
+
+
+ Initializes a new instance of the class with
+ the specified level name and value.
+
+
+
+
+
+ Constructor
+
+ Integer value for this level, higher values represent more severe levels.
+ The string name of this level.
+
+
+ Initializes a new instance of the class with
+ the specified level name and value.
+
+
+
+
+
+ Returns the representation of the current
+ .
+
+
+ A representation of the current .
+
+
+
+ Returns the level .
+
+
+
+
+
+ Compares levels.
+
+ The object to compare against.
+ true if the objects are equal.
+
+
+ Compares the levels of instances, and
+ defers to base class if the target object is not a
+ instance.
+
+
+
+
+
+ Returns a hash code
+
+ A hash code for the current .
+
+
+ Returns a hash code suitable for use in hashing algorithms and data
+ structures like a hash table.
+
+
+ Returns the hash code of the level .
+
+
+
+
+
+ Compares this instance to a specified object and returns an
+ indication of their relative values.
+
+ A instance or to compare with this instance.
+
+ A 32-bit signed integer that indicates the relative order of the
+ values compared. The return value has these meanings:
+
+
+ Value
+ Meaning
+
+
+ Less than zero
+ This instance is less than .
+
+
+ Zero
+ This instance is equal to .
+
+
+ Greater than zero
+
+ This instance is greater than .
+ -or-
+ is .
+
+
+
+
+
+
+ must be an instance of
+ or ; otherwise, an exception is thrown.
+
+
+ is not a .
+
+
+
+ Returns a value indicating whether a specified
+ is greater than another specified .
+
+ A
+ A
+
+ true if is greater than
+ ; otherwise, false.
+
+
+
+ Compares two levels.
+
+
+
+
+
+ Returns a value indicating whether a specified
+ is less than another specified .
+
+ A
+ A
+
+ true if is less than
+ ; otherwise, false.
+
+
+
+ Compares two levels.
+
+
+
+
+
+ Returns a value indicating whether a specified
+ is greater than or equal to another specified .
+
+ A
+ A
+
+ true if is greater than or equal to
+ ; otherwise, false.
+
+
+
+ Compares two levels.
+
+
+
+
+
+ Returns a value indicating whether a specified
+ is less than or equal to another specified .
+
+ A
+ A
+
+ true if is less than or equal to
+ ; otherwise, false.
+
+
+
+ Compares two levels.
+
+
+
+
+
+ Returns a value indicating whether two specified
+ objects have the same value.
+
+ A or .
+ A or .
+
+ true if the value of is the same as the
+ value of ; otherwise, false.
+
+
+
+ Compares two levels.
+
+
+
+
+
+ Returns a value indicating whether two specified
+ objects have different values.
+
+ A or .
+ A or .
+
+ true if the value of is different from
+ the value of ; otherwise, false.
+
+
+
+ Compares two levels.
+
+
+
+
+
+ Compares two specified instances.
+
+ The first to compare.
+ The second to compare.
+
+ A 32-bit signed integer that indicates the relative order of the
+ two values compared. The return value has these meanings:
+
+
+ Value
+ Meaning
+
+
+ Less than zero
+ is less than .
+
+
+ Zero
+ is equal to .
+
+
+ Greater than zero
+ is greater than .
+
+
+
+
+
+ Compares two levels.
+
+
+
+
+
+ The level designates a higher level than all the rest.
+
+
+
+
+ The level designates very severe error events.
+ System unusable, emergencies.
+
+
+
+
+ The level designates very severe error events
+ that will presumably lead the application to abort.
+
+
+
+
+ The level designates very severe error events.
+ Take immediate action, alerts.
+
+
+
+
+ The level designates very severe error events.
+ Critical condition, critical.
+
+
+
+
+ The level designates very severe error events.
+
+
+
+
+ The level designates error events that might
+ still allow the application to continue running.
+
+
+
+
+ The level designates potentially harmful
+ situations.
+
+
+
+
+ The level designates informational messages
+ that highlight the progress of the application at the highest level.
+
+
+
+
+ The level designates informational messages that
+ highlight the progress of the application at coarse-grained level.
+
+
+
+
+ The level designates fine-grained informational
+ events that are most useful to debug an application.
+
+
+
+
+ The level designates fine-grained informational
+ events that are most useful to debug an application.
+
+
+
+
+ The level designates fine-grained informational
+ events that are most useful to debug an application.
+
+
+
+
+ The level designates fine-grained informational
+ events that are most useful to debug an application.
+
+
+
+
+ The level designates fine-grained informational
+ events that are most useful to debug an application.
+
+
+
+
+ The level designates fine-grained informational
+ events that are most useful to debug an application.
+
+
+
+
+ The level designates the lowest level possible.
+
+
+
+
+ Gets the name of this level.
+
+
+ The name of this level.
+
+
+
+ Gets the name of this level.
+
+
+
+
+
+ Gets the value of this level.
+
+
+ The value of this level.
+
+
+
+ Gets the value of this level.
+
+
+
+
+
+ Gets the display name of this level.
+
+
+ The display name of this level.
+
+
+
+ Gets the display name of this level.
+
+
+
+
+
+ A strongly-typed collection of objects.
+
+ Nicko Cadell
+
+
+
+ Creates a read-only wrapper for a LevelCollection instance.
+
+ list to create a readonly wrapper arround
+
+ A LevelCollection wrapper that is read-only.
+
+
+
+
+ Initializes a new instance of the LevelCollection class
+ that is empty and has the default initial capacity.
+
+
+
+
+ Initializes a new instance of the LevelCollection class
+ that has the specified initial capacity.
+
+
+ The number of elements that the new LevelCollection is initially capable of storing.
+
+
+
+
+ Initializes a new instance of the LevelCollection class
+ that contains elements copied from the specified LevelCollection.
+
+ The LevelCollection whose elements are copied to the new collection.
+
+
+
+ Initializes a new instance of the LevelCollection class
+ that contains elements copied from the specified array.
+
+ The array whose elements are copied to the new list.
+
+
+
+ Initializes a new instance of the LevelCollection class
+ that contains elements copied from the specified collection.
+
+ The collection whose elements are copied to the new list.
+
+
+
+ Allow subclasses to avoid our default constructors
+
+
+
+
+
+ Copies the entire LevelCollection to a one-dimensional
+ array.
+
+ The one-dimensional array to copy to.
+
+
+
+ Copies the entire LevelCollection to a one-dimensional
+ array, starting at the specified index of the target array.
+
+ The one-dimensional array to copy to.
+ The zero-based index in at which copying begins.
+
+
+
+ Adds a to the end of the LevelCollection.
+
+ The to be added to the end of the LevelCollection.
+ The index at which the value has been added.
+
+
+
+ Removes all elements from the LevelCollection.
+
+
+
+
+ Creates a shallow copy of the .
+
+ A new with a shallow copy of the collection data.
+
+
+
+ Determines whether a given is in the LevelCollection.
+
+ The to check for.
+ true if is found in the LevelCollection; otherwise, false.
+
+
+
+ Returns the zero-based index of the first occurrence of a
+ in the LevelCollection.
+
+ The to locate in the LevelCollection.
+
+ The zero-based index of the first occurrence of
+ in the entire LevelCollection, if found; otherwise, -1.
+
+
+
+
+ Inserts an element into the LevelCollection at the specified index.
+
+ The zero-based index at which should be inserted.
+ The to insert.
+
+ is less than zero
+ -or-
+ is equal to or greater than .
+
+
+
+
+ Removes the first occurrence of a specific from the LevelCollection.
+
+ The to remove from the LevelCollection.
+
+ The specified was not found in the LevelCollection.
+
+
+
+
+ Removes the element at the specified index of the LevelCollection.
+
+ The zero-based index of the element to remove.
+
+ is less than zero
+ -or-
+ is equal to or greater than .
+
+
+
+
+ Returns an enumerator that can iterate through the LevelCollection.
+
+ An for the entire LevelCollection.
+
+
+
+ Adds the elements of another LevelCollection to the current LevelCollection.
+
+ The LevelCollection whose elements should be added to the end of the current LevelCollection.
+ The new of the LevelCollection.
+
+
+
+ Adds the elements of a array to the current LevelCollection.
+
+ The array whose elements should be added to the end of the LevelCollection.
+ The new of the LevelCollection.
+
+
+
+ Adds the elements of a collection to the current LevelCollection.
+
+ The collection whose elements should be added to the end of the LevelCollection.
+ The new of the LevelCollection.
+
+
+
+ Sets the capacity to the actual number of elements.
+
+
+
+
+ is less than zero
+ -or-
+ is equal to or greater than .
+
+
+
+
+ is less than zero
+ -or-
+ is equal to or greater than .
+
+
+
+
+ Gets the number of elements actually contained in the LevelCollection.
+
+
+
+
+ Gets a value indicating whether access to the collection is synchronized (thread-safe).
+
+ true if access to the ICollection is synchronized (thread-safe); otherwise, false.
+
+
+
+ Gets an object that can be used to synchronize access to the collection.
+
+
+
+
+ Gets or sets the at the specified index.
+
+ The zero-based index of the element to get or set.
+
+ is less than zero
+ -or-
+ is equal to or greater than .
+
+
+
+
+ Gets a value indicating whether the collection has a fixed size.
+
+ true if the collection has a fixed size; otherwise, false. The default is false
+
+
+
+ Gets a value indicating whether the IList is read-only.
+
+ true if the collection is read-only; otherwise, false. The default is false
+
+
+
+ Gets or sets the number of elements the LevelCollection can contain.
+
+
+
+
+ Supports type-safe iteration over a .
+
+
+
+
+ Advances the enumerator to the next element in the collection.
+
+
+ true if the enumerator was successfully advanced to the next element;
+ false if the enumerator has passed the end of the collection.
+
+
+ The collection was modified after the enumerator was created.
+
+
+
+
+ Sets the enumerator to its initial position, before the first element in the collection.
+
+
+
+
+ Gets the current element in the collection.
+
+
+
+
+ Type visible only to our subclasses
+ Used to access protected constructor
+
+
+
+
+ A value
+
+
+
+
+ Supports simple iteration over a .
+
+
+
+
+ Initializes a new instance of the Enumerator class.
+
+
+
+
+
+ Advances the enumerator to the next element in the collection.
+
+
+ true if the enumerator was successfully advanced to the next element;
+ false if the enumerator has passed the end of the collection.
+
+
+ The collection was modified after the enumerator was created.
+
+
+
+
+ Sets the enumerator to its initial position, before the first element in the collection.
+
+
+
+
+ Gets the current element in the collection.
+
+
+
+
+ An evaluator that triggers at a threshold level
+
+
+
+ This evaluator will trigger if the level of the event
+ passed to
+ is equal to or greater than the
+ level.
+
+
+ Nicko Cadell
+
+
+
+ The threshold for triggering
+
+
+
+
+ Create a new evaluator using the threshold.
+
+
+
+ Create a new evaluator using the threshold.
+
+
+ This evaluator will trigger if the level of the event
+ passed to
+ is equal to or greater than the
+ level.
+
+
+
+
+
+ Create a new evaluator using the specified threshold.
+
+ the threshold to trigger at
+
+
+ Create a new evaluator using the specified threshold.
+
+
+ This evaluator will trigger if the level of the event
+ passed to
+ is equal to or greater than the
+ level.
+
+
+
+
+
+ Is this the triggering event?
+
+ The event to check
+ This method returns true, if the event level
+ is equal or higher than the .
+ Otherwise it returns false
+
+
+ This evaluator will trigger if the level of the event
+ passed to
+ is equal to or greater than the
+ level.
+
+
+
+
+
+ the threshold to trigger at
+
+
+ The that will cause this evaluator to trigger
+
+
+
+ This evaluator will trigger if the level of the event
+ passed to
+ is equal to or greater than the
+ level.
+
+
+
+
+
+ Mapping between string name and Level object
+
+
+
+ Mapping between string name and object.
+ This mapping is held separately for each .
+ The level name is case insensitive.
+
+
+ Nicko Cadell
+
+
+
+ Mapping from level name to Level object. The
+ level name is case insensitive
+
+
+
+
+ Construct the level map
+
+
+
+ Construct the level map.
+
+
+
+
+
+ Clear the internal maps of all levels
+
+
+
+ Clear the internal maps of all levels
+
+
+
+
+
+ Create a new Level and add it to the map
+
+ the string to display for the Level
+ the level value to give to the Level
+
+
+ Create a new Level and add it to the map
+
+
+
+
+
+
+ Create a new Level and add it to the map
+
+ the string to display for the Level
+ the level value to give to the Level
+ the display name to give to the Level
+
+
+ Create a new Level and add it to the map
+
+
+
+
+
+ Add a Level to the map
+
+ the Level to add
+
+
+ Add a Level to the map
+
+
+
+
+
+ Lookup a named level from the map
+
+ the name of the level to lookup is taken from this level.
+ If the level is not set on the map then this level is added
+ the level in the map with the name specified
+
+
+ Lookup a named level from the map. The name of the level to lookup is taken
+ from the property of the
+ argument.
+
+
+ If no level with the specified name is found then the
+ argument is added to the level map
+ and returned.
+
+
+
+
+
+ Lookup a by name
+
+ The name of the Level to lookup
+ a Level from the map with the name specified
+
+
+ Returns the from the
+ map with the name specified. If the no level is
+ found then null is returned.
+
+
+
+
+
+ Return all possible levels as a list of Level objects.
+
+ all possible levels as a list of Level objects
+
+
+ Return all possible levels as a list of Level objects.
+
+
+
+
+
+ The internal representation of caller location information.
+
+
+
+ This class uses the System.Diagnostics.StackTrace class to generate
+ a call stack. The caller's information is then extracted from this stack.
+
+
+ The System.Diagnostics.StackTrace class is not supported on the
+ .NET Compact Framework 1.0 therefore caller location information is not
+ available on that framework.
+
+
+ The System.Diagnostics.StackTrace class has this to say about Release builds:
+
+
+ "StackTrace information will be most informative with Debug build configurations.
+ By default, Debug builds include debug symbols, while Release builds do not. The
+ debug symbols contain most of the file, method name, line number, and column
+ information used in constructing StackFrame and StackTrace objects. StackTrace
+ might not report as many method calls as expected, due to code transformations
+ that occur during optimization."
+
+
+ This means that in a Release build the caller information may be incomplete or may
+ not exist at all! Therefore caller location information cannot be relied upon in a Release build.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ When location information is not available the constant
+ NA is returned. Current value of this string
+ constant is ?.
+
+
+
+
+ Constructor
+
+ The declaring type of the method that is
+ the stack boundary into the logging system for this call.
+
+
+ Initializes a new instance of the
+ class based on the current thread.
+
+
+
+
+
+ Constructor
+
+ The fully qualified class name.
+ The method name.
+ The file name.
+ The line number of the method within the file.
+
+
+ Initializes a new instance of the
+ class with the specified data.
+
+
+
+
+
+ Gets the fully qualified class name of the caller making the logging
+ request.
+
+
+ The fully qualified class name of the caller making the logging
+ request.
+
+
+
+ Gets the fully qualified class name of the caller making the logging
+ request.
+
+
+
+
+
+ Gets the file name of the caller.
+
+
+ The file name of the caller.
+
+
+
+ Gets the file name of the caller.
+
+
+
+
+
+ Gets the line number of the caller.
+
+
+ The line number of the caller.
+
+
+
+ Gets the line number of the caller.
+
+
+
+
+
+ Gets the method name of the caller.
+
+
+ The method name of the caller.
+
+
+
+ Gets the method name of the caller.
+
+
+
+
+
+ Gets all available caller information
+
+
+ All available caller information, in the format
+ fully.qualified.classname.of.caller.methodName(Filename:line)
+
+
+
+ Gets all available caller information, in the format
+ fully.qualified.classname.of.caller.methodName(Filename:line)
+
+
+
+
+
+ Static manager that controls the creation of repositories
+
+
+
+ Static manager that controls the creation of repositories
+
+
+ This class is used by the wrapper managers (e.g. )
+ to provide access to the objects.
+
+
+ This manager also holds the that is used to
+ lookup and create repositories. The selector can be set either programmatically using
+ the property, or by setting the log4net.RepositorySelector
+ AppSetting in the applications config file to the fully qualified type name of the
+ selector to use.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Private constructor to prevent instances. Only static methods should be used.
+
+
+
+ Private constructor to prevent instances. Only static methods should be used.
+
+
+
+
+
+ Hook the shutdown event
+
+
+
+ On the full .NET runtime, the static constructor hooks up the
+ AppDomain.ProcessExit and AppDomain.DomainUnload> events.
+ These are used to shutdown the log4net system as the application exits.
+
+
+
+
+
+ Register for ProcessExit and DomainUnload events on the AppDomain
+
+
+
+ This needs to be in a separate method because the events make
+ a LinkDemand for the ControlAppDomain SecurityPermission. Because
+ this is a LinkDemand it is demanded at JIT time. Therefore we cannot
+ catch the exception in the method itself, we have to catch it in the
+ caller.
+
+
+
+
+
+ Return the default instance.
+
+ the repository to lookup in
+ Return the default instance
+
+
+ Gets the for the repository specified
+ by the argument.
+
+
+
+
+
+ Returns the default instance.
+
+ The assembly to use to lookup the repository.
+ The default instance.
+
+
+
+ Return the default instance.
+
+ the repository to lookup in
+ Return the default instance
+
+
+ Gets the for the repository specified
+ by the argument.
+
+
+
+
+
+ Returns the default instance.
+
+ The assembly to use to lookup the repository.
+ The default instance.
+
+
+ Returns the default instance.
+
+
+
+
+
+ Returns the named logger if it exists.
+
+ The repository to lookup in.
+ The fully qualified logger name to look for.
+
+ The logger found, or null if the named logger does not exist in the
+ specified repository.
+
+
+
+ If the named logger exists (in the specified repository) then it
+ returns a reference to the logger, otherwise it returns
+ null.
+
+
+
+
+
+ Returns the named logger if it exists.
+
+ The assembly to use to lookup the repository.
+ The fully qualified logger name to look for.
+
+ The logger found, or null if the named logger does not exist in the
+ specified assembly's repository.
+
+
+
+ If the named logger exists (in the specified assembly's repository) then it
+ returns a reference to the logger, otherwise it returns
+ null.
+
+
+
+
+
+ Returns all the currently defined loggers in the specified repository.
+
+ The repository to lookup in.
+ All the defined loggers.
+
+
+ The root logger is not included in the returned array.
+
+
+
+
+
+ Returns all the currently defined loggers in the specified assembly's repository.
+
+ The assembly to use to lookup the repository.
+ All the defined loggers.
+
+
+ The root logger is not included in the returned array.
+
+
+
+
+
+ Retrieves or creates a named logger.
+
+ The repository to lookup in.
+ The name of the logger to retrieve.
+ The logger with the name specified.
+
+
+ Retrieves a logger named as the
+ parameter. If the named logger already exists, then the
+ existing instance will be returned. Otherwise, a new instance is
+ created.
+
+
+ By default, loggers do not have a set level but inherit
+ it from the hierarchy. This is one of the central features of
+ log4net.
+
+
+
+
+
+ Retrieves or creates a named logger.
+
+ The assembly to use to lookup the repository.
+ The name of the logger to retrieve.
+ The logger with the name specified.
+
+
+ Retrieves a logger named as the
+ parameter. If the named logger already exists, then the
+ existing instance will be returned. Otherwise, a new instance is
+ created.
+
+
+ By default, loggers do not have a set level but inherit
+ it from the hierarchy. This is one of the central features of
+ log4net.
+
+
+
+
+
+ Shorthand for .
+
+ The repository to lookup in.
+ The of which the fullname will be used as the name of the logger to retrieve.
+ The logger with the name specified.
+
+
+ Gets the logger for the fully qualified name of the type specified.
+
+
+
+
+
+ Shorthand for .
+
+ the assembly to use to lookup the repository
+ The of which the fullname will be used as the name of the logger to retrieve.
+ The logger with the name specified.
+
+
+ Gets the logger for the fully qualified name of the type specified.
+
+
+
+
+
+ Shuts down the log4net system.
+
+
+
+ Calling this method will safely close and remove all
+ appenders in all the loggers including root contained in all the
+ default repositories.
+
+
+ Some appenders need to be closed before the application exists.
+ Otherwise, pending logging events might be lost.
+
+
+ The shutdown method is careful to close nested
+ appenders before closing regular appenders. This is allows
+ configurations where a regular appender is attached to a logger
+ and again to a nested appender.
+
+
+
+
+
+ Shuts down the repository for the repository specified.
+
+ The repository to shutdown.
+
+
+ Calling this method will safely close and remove all
+ appenders in all the loggers including root contained in the
+ repository for the specified.
+
+
+ Some appenders need to be closed before the application exists.
+ Otherwise, pending logging events might be lost.
+
+
+ The shutdown method is careful to close nested
+ appenders before closing regular appenders. This is allows
+ configurations where a regular appender is attached to a logger
+ and again to a nested appender.
+
+
+
+
+
+ Shuts down the repository for the repository specified.
+
+ The assembly to use to lookup the repository.
+
+
+ Calling this method will safely close and remove all
+ appenders in all the loggers including root contained in the
+ repository for the repository. The repository is looked up using
+ the specified.
+
+
+ Some appenders need to be closed before the application exists.
+ Otherwise, pending logging events might be lost.
+
+
+ The shutdown method is careful to close nested
+ appenders before closing regular appenders. This is allows
+ configurations where a regular appender is attached to a logger
+ and again to a nested appender.
+
+
+
+
+
+ Resets all values contained in this repository instance to their defaults.
+
+ The repository to reset.
+
+
+ Resets all values contained in the repository instance to their
+ defaults. This removes all appenders from all loggers, sets
+ the level of all non-root loggers to null,
+ sets their additivity flag to true and sets the level
+ of the root logger to . Moreover,
+ message disabling is set its default "off" value.
+
+
+
+
+
+ Resets all values contained in this repository instance to their defaults.
+
+ The assembly to use to lookup the repository to reset.
+
+
+ Resets all values contained in the repository instance to their
+ defaults. This removes all appenders from all loggers, sets
+ the level of all non-root loggers to null,
+ sets their additivity flag to true and sets the level
+ of the root logger to . Moreover,
+ message disabling is set its default "off" value.
+
+
+
+
+
+ Creates a repository with the specified name.
+
+ The name of the repository, this must be unique amongst repositories.
+ The created for the repository.
+
+
+ CreateDomain is obsolete. Use CreateRepository instead of CreateDomain.
+
+
+ Creates the default type of which is a
+ object.
+
+
+ The name must be unique. Repositories cannot be redefined.
+ An will be thrown if the repository already exists.
+
+
+ The specified repository already exists.
+
+
+
+ Creates a repository with the specified name.
+
+ The name of the repository, this must be unique amongst repositories.
+ The created for the repository.
+
+
+ Creates the default type of which is a
+ object.
+
+
+ The name must be unique. Repositories cannot be redefined.
+ An will be thrown if the repository already exists.
+
+
+ The specified repository already exists.
+
+
+
+ Creates a repository with the specified name and repository type.
+
+ The name of the repository, this must be unique to the repository.
+ A that implements
+ and has a no arg constructor. An instance of this type will be created to act
+ as the for the repository specified.
+ The created for the repository.
+
+
+ CreateDomain is obsolete. Use CreateRepository instead of CreateDomain.
+
+
+ The name must be unique. Repositories cannot be redefined.
+ An Exception will be thrown if the repository already exists.
+
+
+ The specified repository already exists.
+
+
+
+ Creates a repository with the specified name and repository type.
+
+ The name of the repository, this must be unique to the repository.
+ A that implements
+ and has a no arg constructor. An instance of this type will be created to act
+ as the for the repository specified.
+ The created for the repository.
+
+
+ The name must be unique. Repositories cannot be redefined.
+ An Exception will be thrown if the repository already exists.
+
+
+ The specified repository already exists.
+
+
+
+ Creates a repository for the specified assembly and repository type.
+
+ The assembly to use to get the name of the repository.
+ A that implements
+ and has a no arg constructor. An instance of this type will be created to act
+ as the for the repository specified.
+ The created for the repository.
+
+
+ CreateDomain is obsolete. Use CreateRepository instead of CreateDomain.
+
+
+ The created will be associated with the repository
+ specified such that a call to with the
+ same assembly specified will return the same repository instance.
+
+
+
+
+
+ Creates a repository for the specified assembly and repository type.
+
+ The assembly to use to get the name of the repository.
+ A that implements
+ and has a no arg constructor. An instance of this type will be created to act
+ as the for the repository specified.
+ The created for the repository.
+
+
+ The created will be associated with the repository
+ specified such that a call to with the
+ same assembly specified will return the same repository instance.
+
+
+
+
+
+ Gets an array of all currently defined repositories.
+
+ An array of all the known objects.
+
+
+ Gets an array of all currently defined repositories.
+
+
+
+
+
+ Internal method to get pertinent version info.
+
+ A string of version info.
+
+
+
+ Called when the event fires
+
+ the that is exiting
+ null
+
+
+ Called when the event fires.
+
+
+ When the event is triggered the log4net system is .
+
+
+
+
+
+ Called when the event fires
+
+ the that is exiting
+ null
+
+
+ Called when the event fires.
+
+
+ When the event is triggered the log4net system is .
+
+
+
+
+
+ Initialize the default repository selector
+
+
+
+
+ Gets or sets the repository selector used by the .
+
+
+ The repository selector used by the .
+
+
+
+ The repository selector () is used by
+ the to create and select repositories
+ ().
+
+
+ The caller to supplies either a string name
+ or an assembly (if not supplied the assembly is inferred using
+ ).
+
+
+ This context is used by the selector to lookup a specific repository.
+
+
+ For the full .NET Framework, the default repository is DefaultRepositorySelector;
+ for the .NET Compact Framework CompactRepositorySelector is the default
+ repository.
+
+
+
+
+
+ Implementation of the interface.
+
+
+
+ This class should be used as the base for all wrapper implementations.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Constructs a new wrapper for the specified logger.
+
+ The logger to wrap.
+
+
+ Constructs a new wrapper for the specified logger.
+
+
+
+
+
+ The logger that this object is wrapping
+
+
+
+
+ Gets the implementation behind this wrapper object.
+
+
+ The object that this object is implementing.
+
+
+
+ The Logger object may not be the same object as this object
+ because of logger decorators.
+
+
+ This gets the actual underlying objects that is used to process
+ the log events.
+
+
+
+
+
+ Portable data structure used by
+
+
+
+ Portable data structure used by
+
+
+ Nicko Cadell
+
+
+
+ The logger name.
+
+
+
+ The logger name.
+
+
+
+
+
+ Level of logging event.
+
+
+
+ Level of logging event. Level cannot be Serializable
+ because it is a flyweight. Due to its special serialization it
+ cannot be declared final either.
+
+
+
+
+
+ The application supplied message.
+
+
+
+ The application supplied message of logging event.
+
+
+
+
+
+ The name of thread
+
+
+
+ The name of thread in which this logging event was generated
+
+
+
+
+
+ The time the event was logged
+
+
+
+ The TimeStamp is stored in the local time zone for this computer.
+
+
+
+
+
+ Location information for the caller.
+
+
+
+ Location information for the caller.
+
+
+
+
+
+ String representation of the user
+
+
+
+ String representation of the user's windows name,
+ like DOMAIN\username
+
+
+
+
+
+ String representation of the identity.
+
+
+
+ String representation of the current thread's principal identity.
+
+
+
+
+
+ The string representation of the exception
+
+
+
+ The string representation of the exception
+
+
+
+
+
+ String representation of the AppDomain.
+
+
+
+ String representation of the AppDomain.
+
+
+
+
+
+ Additional event specific properties
+
+
+
+ A logger or an appender may attach additional
+ properties to specific events. These properties
+ have a string key and an object value.
+
+
+
+
+
+ Flags passed to the property
+
+
+
+ Flags passed to the property
+
+
+ Nicko Cadell
+
+
+
+ Fix the MDC
+
+
+
+
+ Fix the NDC
+
+
+
+
+ Fix the rendered message
+
+
+
+
+ Fix the thread name
+
+
+
+
+ Fix the callers location information
+
+
+ CAUTION: Very slow to generate
+
+
+
+
+ Fix the callers windows user name
+
+
+ CAUTION: Slow to generate
+
+
+
+
+ Fix the domain friendly name
+
+
+
+
+ Fix the callers principal name
+
+
+ CAUTION: May be slow to generate
+
+
+
+
+ Fix the exception text
+
+
+
+
+ Fix the event properties
+
+
+
+
+ No fields fixed
+
+
+
+
+ All fields fixed
+
+
+
+
+ Partial fields fixed
+
+
+
+ This set of partial fields gives good performance. The following fields are fixed:
+
+
+
+
+
+
+
+
+
+
+
+
+ The internal representation of logging events.
+
+
+
+ When an affirmative decision is made to log then a
+ instance is created. This instance
+ is passed around to the different log4net components.
+
+
+ This class is of concern to those wishing to extend log4net.
+
+
+ Some of the values in instances of
+ are considered volatile, that is the values are correct at the
+ time the event is delivered to appenders, but will not be consistent
+ at any time afterwards. If an event is to be stored and then processed
+ at a later time these volatile values must be fixed by calling
+ . There is a performance penalty
+ for incurred by calling but it
+ is essential to maintaining data consistency.
+
+
+ Nicko Cadell
+ Gert Driesen
+ Douglas de la Torre
+ Daniel Cazzulino
+
+
+
+ The key into the Properties map for the host name value.
+
+
+
+
+ The key into the Properties map for the thread identity value.
+
+
+
+
+ The key into the Properties map for the user name value.
+
+
+
+
+ Initializes a new instance of the class
+ from the supplied parameters.
+
+ The declaring type of the method that is
+ the stack boundary into the logging system for this call.
+ The repository this event is logged in.
+ The name of the logger of this event.
+ The level of this event.
+ The message of this event.
+ The exception for this event.
+
+
+ Except , and ,
+ all fields of LoggingEvent are filled when actually needed. Call
+ to cache all data locally
+ to prevent inconsistencies.
+
+ This method is called by the log4net framework
+ to create a logging event.
+
+
+
+
+
+ Initializes a new instance of the class
+ using specific data.
+
+ The declaring type of the method that is
+ the stack boundary into the logging system for this call.
+ The repository this event is logged in.
+ Data used to initialize the logging event.
+ The fields in the struct that have already been fixed.
+
+
+ This constructor is provided to allow a
+ to be created independently of the log4net framework. This can
+ be useful if you require a custom serialization scheme.
+
+
+ Use the method to obtain an
+ instance of the class.
+
+
+ The parameter should be used to specify which fields in the
+ struct have been preset. Fields not specified in the
+ will be captured from the environment if requested or fixed.
+
+
+
+
+
+ Initializes a new instance of the class
+ using specific data.
+
+ The declaring type of the method that is
+ the stack boundary into the logging system for this call.
+ The repository this event is logged in.
+ Data used to initialize the logging event.
+
+
+ This constructor is provided to allow a
+ to be created independently of the log4net framework. This can
+ be useful if you require a custom serialization scheme.
+
+
+ Use the method to obtain an
+ instance of the class.
+
+
+ This constructor sets this objects flags to ,
+ this assumes that all the data relating to this event is passed in via the
+ parameter and no other data should be captured from the environment.
+
+
+
+
+
+ Initializes a new instance of the class
+ using specific data.
+
+ Data used to initialize the logging event.
+
+
+ This constructor is provided to allow a
+ to be created independently of the log4net framework. This can
+ be useful if you require a custom serialization scheme.
+
+
+ Use the method to obtain an
+ instance of the class.
+
+
+ This constructor sets this objects flags to ,
+ this assumes that all the data relating to this event is passed in via the
+ parameter and no other data should be captured from the environment.
+
+
+
+
+
+ Serialization constructor
+
+ The that holds the serialized object data.
+ The that contains contextual information about the source or destination.
+
+
+ Initializes a new instance of the class
+ with serialized data.
+
+
+
+
+
+ Ensure that the repository is set.
+
+ the value for the repository
+
+
+
+ Write the rendered message to a TextWriter
+
+ the writer to write the message to
+
+
+ Unlike the property this method
+ does store the message data in the internal cache. Therefore
+ if called only once this method should be faster than the
+ property, however if the message is
+ to be accessed multiple times then the property will be more efficient.
+
+
+
+
+
+ Serializes this object into the provided.
+
+ The to populate with data.
+ The destination for this serialization.
+
+
+ The data in this event must be fixed before it can be serialized.
+
+
+ The method must be called during the
+ method call if this event
+ is to be used outside that method.
+
+
+
+
+
+ Gets the portable data for this .
+
+ The for this event.
+
+
+ A new can be constructed using a
+ instance.
+
+
+ Does a fix of the data
+ in the logging event before returning the event data.
+
+
+
+
+
+ Gets the portable data for this .
+
+ The set of data to ensure is fixed in the LoggingEventData
+ The for this event.
+
+
+ A new can be constructed using a
+ instance.
+
+
+
+
+
+ Returns this event's exception's rendered using the
+ .
+
+
+ This event's exception's rendered using the .
+
+
+
+ Obsolete. Use instead.
+
+
+
+
+
+ Returns this event's exception's rendered using the
+ .
+
+
+ This event's exception's rendered using the .
+
+
+
+ Returns this event's exception's rendered using the
+ .
+
+
+
+
+
+ Fix instance fields that hold volatile data.
+
+
+
+ Some of the values in instances of
+ are considered volatile, that is the values are correct at the
+ time the event is delivered to appenders, but will not be consistent
+ at any time afterwards. If an event is to be stored and then processed
+ at a later time these volatile values must be fixed by calling
+ . There is a performance penalty
+ incurred by calling but it
+ is essential to maintaining data consistency.
+
+
+ Calling is equivalent to
+ calling passing the parameter
+ false.
+
+
+ See for more
+ information.
+
+
+
+
+
+ Fixes instance fields that hold volatile data.
+
+ Set to true to not fix data that takes a long time to fix.
+
+
+ Some of the values in instances of
+ are considered volatile, that is the values are correct at the
+ time the event is delivered to appenders, but will not be consistent
+ at any time afterwards. If an event is to be stored and then processed
+ at a later time these volatile values must be fixed by calling
+ . There is a performance penalty
+ for incurred by calling but it
+ is essential to maintaining data consistency.
+
+
+ The param controls the data that
+ is fixed. Some of the data that can be fixed takes a long time to
+ generate, therefore if you do not require those settings to be fixed
+ they can be ignored by setting the param
+ to true. This setting will ignore the
+ and settings.
+
+
+ Set to false to ensure that all
+ settings are fixed.
+
+
+
+
+
+ Fix the fields specified by the parameter
+
+ the fields to fix
+
+
+ Only fields specified in the will be fixed.
+ Fields will not be fixed if they have previously been fixed.
+ It is not possible to 'unfix' a field.
+
+
+
+
+
+ Lookup a composite property in this event
+
+ the key for the property to lookup
+ the value for the property
+
+
+ This event has composite properties that combine together properties from
+ several different contexts in the following order:
+
+
+ this events properties
+
+ This event has that can be set. These
+ properties are specific to this event only.
+
+
+
+ the thread properties
+
+ The that are set on the current
+ thread. These properties are shared by all events logged on this thread.
+
+
+
+ the global properties
+
+ The that are set globally. These
+ properties are shared by all the threads in the AppDomain.
+
+
+
+
+
+
+
+
+ Get all the composite properties in this event
+
+ the containing all the properties
+
+
+ See for details of the composite properties
+ stored by the event.
+
+
+ This method returns a single containing all the
+ properties defined for this event.
+
+
+
+
+
+ The internal logging event data.
+
+
+
+
+ The internal logging event data.
+
+
+
+
+ The internal logging event data.
+
+
+
+
+ The fully qualified Type of the calling
+ logger class in the stack frame (i.e. the declaring type of the method).
+
+
+
+
+ The application supplied message of logging event.
+
+
+
+
+ The exception that was thrown.
+
+
+ This is not serialized. The string representation
+ is serialized instead.
+
+
+
+
+ The repository that generated the logging event
+
+
+ This is not serialized.
+
+
+
+
+ The fix state for this event
+
+
+ These flags indicate which fields have been fixed.
+ Not serialized.
+
+
+
+
+ Indicated that the internal cache is updateable (ie not fixed)
+
+
+ This is a seperate flag to m_fixFlags as it allows incrementel fixing and simpler
+ changes in the caching strategy.
+
+
+
+
+ Gets the time when the current process started.
+
+
+ This is the time when this process started.
+
+
+
+ The TimeStamp is stored in the local time zone for this computer.
+
+
+ Tries to get the start time for the current process.
+ Failing that it returns the time of the first call to
+ this property.
+
+
+ Note that AppDomains may be loaded and unloaded within the
+ same process without the process terminating and therefore
+ without the process start time being reset.
+
+
+
+
+
+ Gets the of the logging event.
+
+
+ The of the logging event.
+
+
+
+ Gets the of the logging event.
+
+
+
+
+
+ Gets the time of the logging event.
+
+
+ The time of the logging event.
+
+
+
+ The TimeStamp is stored in the local time zone for this computer.
+
+
+
+
+
+ Gets the name of the logger that logged the event.
+
+
+ The name of the logger that logged the event.
+
+
+
+ Gets the name of the logger that logged the event.
+
+
+
+
+
+ Gets the location information for this logging event.
+
+
+ The location information for this logging event.
+
+
+
+ The collected information is cached for future use.
+
+
+ See the class for more information on
+ supported frameworks and the different behavior in Debug and
+ Release builds.
+
+
+
+
+
+ Gets the message object used to initialize this event.
+
+
+ The message object used to initialize this event.
+
+
+
+ Gets the message object used to initialize this event.
+ Note that this event may not have a valid message object.
+ If the event is serialized the message object will not
+ be transferred. To get the text of the message the
+ property must be used
+ not this property.
+
+
+ If there is no defined message object for this event then
+ null will be returned.
+
+
+
+
+
+ Gets the exception object used to initialize this event.
+
+
+ The exception object used to initialize this event.
+
+
+
+ Gets the exception object used to initialize this event.
+ Note that this event may not have a valid exception object.
+ If the event is serialized the exception object will not
+ be transferred. To get the text of the exception the
+ method must be used
+ not this property.
+
+
+ If there is no defined exception object for this event then
+ null will be returned.
+
+
+
+
+
+ The that this event was created in.
+
+
+
+ The that this event was created in.
+
+
+
+
+
+ Gets the message, rendered through the .
+
+
+ The message rendered through the .
+
+
+
+ The collected information is cached for future use.
+
+
+
+
+
+ Gets the name of the current thread.
+
+
+ The name of the current thread, or the thread ID when
+ the name is not available.
+
+
+
+ The collected information is cached for future use.
+
+
+
+
+
+ Gets the name of the current user.
+
+
+ The name of the current user, or NOT AVAILABLE when the
+ underlying runtime has no support for retrieving the name of the
+ current user.
+
+
+
+ Calls WindowsIdentity.GetCurrent().Name to get the name of
+ the current windows user.
+
+
+ To improve performance, we could cache the string representation of
+ the name, and reuse that as long as the identity stayed constant.
+ Once the identity changed, we would need to re-assign and re-render
+ the string.
+
+
+ However, the WindowsIdentity.GetCurrent() call seems to
+ return different objects every time, so the current implementation
+ doesn't do this type of caching.
+
+
+ Timing for these operations:
+
+
+
+ Method
+ Results
+
+
+ WindowsIdentity.GetCurrent()
+ 10000 loops, 00:00:00.2031250 seconds
+
+
+ WindowsIdentity.GetCurrent().Name
+ 10000 loops, 00:00:08.0468750 seconds
+
+
+
+ This means we could speed things up almost 40 times by caching the
+ value of the WindowsIdentity.GetCurrent().Name property, since
+ this takes (8.04-0.20) = 7.84375 seconds.
+
+
+
+
+
+ Gets the identity of the current thread principal.
+
+
+ The string name of the identity of the current thread principal.
+
+
+
+ Calls System.Threading.Thread.CurrentPrincipal.Identity.Name to get
+ the name of the current thread principal.
+
+
+
+
+
+ Gets the AppDomain friendly name.
+
+
+ The AppDomain friendly name.
+
+
+
+ Gets the AppDomain friendly name.
+
+
+
+
+
+ Additional event specific properties.
+
+
+ Additional event specific properties.
+
+
+
+ A logger or an appender may attach additional
+ properties to specific events. These properties
+ have a string key and an object value.
+
+
+ This property is for events that have been added directly to
+ this event. The aggregate properties (which include these
+ event properties) can be retrieved using
+ and .
+
+
+ Once the properties have been fixed this property
+ returns the combined cached properties. This ensures that updates to
+ this property are always reflected in the underlying storage. When
+ returning the combined properties there may be more keys in the
+ Dictionary than expected.
+
+
+
+
+
+ The fixed fields in this event
+
+
+ The set of fields that are fixed in this event
+
+
+
+ Fields will not be fixed if they have previously been fixed.
+ It is not possible to 'unfix' a field.
+
+
+
+
+
+ Implementation of wrapper interface.
+
+
+
+ This implementation of the interface
+ forwards to the held by the base class.
+
+
+ This logger has methods to allow the caller to log at the following
+ levels:
+
+
+
+ DEBUG
+
+ The and methods log messages
+ at the DEBUG level. That is the level with that name defined in the
+ repositories . The default value
+ for this level is . The
+ property tests if this level is enabled for logging.
+
+
+
+ INFO
+
+ The and methods log messages
+ at the INFO level. That is the level with that name defined in the
+ repositories . The default value
+ for this level is . The
+ property tests if this level is enabled for logging.
+
+
+
+ WARN
+
+ The and methods log messages
+ at the WARN level. That is the level with that name defined in the
+ repositories . The default value
+ for this level is . The
+ property tests if this level is enabled for logging.
+
+
+
+ ERROR
+
+ The and methods log messages
+ at the ERROR level. That is the level with that name defined in the
+ repositories . The default value
+ for this level is . The
+ property tests if this level is enabled for logging.
+
+
+
+ FATAL
+
+ The and methods log messages
+ at the FATAL level. That is the level with that name defined in the
+ repositories . The default value
+ for this level is . The
+ property tests if this level is enabled for logging.
+
+
+
+
+ The values for these levels and their semantic meanings can be changed by
+ configuring the for the repository.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ The ILog interface is use by application to log messages into
+ the log4net framework.
+
+
+
+ Use the to obtain logger instances
+ that implement this interface. The
+ static method is used to get logger instances.
+
+
+ This class contains methods for logging at different levels and also
+ has properties for determining if those logging levels are
+ enabled in the current configuration.
+
+
+ This interface can be implemented in different ways. This documentation
+ specifies reasonable behavior that a caller can expect from the actual
+ implementation, however different implementations reserve the right to
+ do things differently.
+
+
+ Simple example of logging messages
+
+ ILog log = LogManager.GetLogger("application-log");
+
+ log.Info("Application Start");
+ log.Debug("This is a debug message");
+
+ if (log.IsDebugEnabled)
+ {
+ log.Debug("This is another debug message");
+ }
+
+
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+ Log a message object with the level.
+
+ Log a message object with the level.
+
+ The message object to log.
+
+
+ This method first checks if this logger is DEBUG
+ enabled by comparing the level of this logger with the
+ level. If this logger is
+ DEBUG enabled, then it converts the message object
+ (passed as parameter) to a string by invoking the appropriate
+ . It then
+ proceeds to call all the registered appenders in this logger
+ and also higher in the hierarchy depending on the value of
+ the additivity flag.
+
+ WARNING Note that passing an
+ to this method will print the name of the
+ but no stack trace. To print a stack trace use the
+ form instead.
+
+
+
+
+
+
+
+ Log a message object with the level including
+ the stack trace of the passed
+ as a parameter.
+
+ The message object to log.
+ The exception to log, including its stack trace.
+
+
+ See the form for more detailed information.
+
+
+
+
+
+
+ Log a formatted string with the level.
+
+ Logs a formatted message string with the level.
+
+ A String containing zero or more format items
+ An Object array containing zero or more objects to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+
+ Logs a formatted message string with the level.
+
+ A String containing zero or more format items
+ An Object to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+
+ Logs a formatted message string with the level.
+
+ A String containing zero or more format items
+ An Object to format
+ An Object to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+
+ Logs a formatted message string with the level.
+
+ A String containing zero or more format items
+ An Object to format
+ An Object to format
+ An Object to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+
+ Logs a formatted message string with the level.
+
+ An that supplies culture-specific formatting information
+ A String containing zero or more format items
+ An Object array containing zero or more objects to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+ Log a message object with the level.
+
+ Logs a message object with the level.
+
+
+
+ This method first checks if this logger is INFO
+ enabled by comparing the level of this logger with the
+ level. If this logger is
+ INFO enabled, then it converts the message object
+ (passed as parameter) to a string by invoking the appropriate
+ . It then
+ proceeds to call all the registered appenders in this logger
+ and also higher in the hierarchy depending on the value of the
+ additivity flag.
+
+ WARNING Note that passing an
+ to this method will print the name of the
+ but no stack trace. To print a stack trace use the
+ form instead.
+
+
+ The message object to log.
+
+
+
+
+
+ Logs a message object with the INFO level including
+ the stack trace of the passed
+ as a parameter.
+
+ The message object to log.
+ The exception to log, including its stack trace.
+
+
+ See the form for more detailed information.
+
+
+
+
+
+
+ Log a formatted message string with the level.
+
+ Logs a formatted message string with the level.
+
+ A String containing zero or more format items
+ An Object array containing zero or more objects to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+
+ Logs a formatted message string with the level.
+
+ A String containing zero or more format items
+ An Object to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+
+ Logs a formatted message string with the level.
+
+ A String containing zero or more format items
+ An Object to format
+ An Object to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+
+ Logs a formatted message string with the level.
+
+ A String containing zero or more format items
+ An Object to format
+ An Object to format
+ An Object to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+
+ Logs a formatted message string with the level.
+
+ An that supplies culture-specific formatting information
+ A String containing zero or more format items
+ An Object array containing zero or more objects to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+ Log a message object with the level.
+
+ Log a message object with the level.
+
+
+
+ This method first checks if this logger is WARN
+ enabled by comparing the level of this logger with the
+ level. If this logger is
+ WARN enabled, then it converts the message object
+ (passed as parameter) to a string by invoking the appropriate
+ . It then
+ proceeds to call all the registered appenders in this logger
+ and also higher in the hierarchy depending on the value of the
+ additivity flag.
+
+ WARNING Note that passing an
+ to this method will print the name of the
+ but no stack trace. To print a stack trace use the
+ form instead.
+
+
+ The message object to log.
+
+
+
+
+
+ Log a message object with the level including
+ the stack trace of the passed
+ as a parameter.
+
+ The message object to log.
+ The exception to log, including its stack trace.
+
+
+ See the form for more detailed information.
+
+
+
+
+
+
+ Log a formatted message string with the level.
+
+ Logs a formatted message string with the level.
+
+ A String containing zero or more format items
+ An Object array containing zero or more objects to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+
+ Logs a formatted message string with the level.
+
+ A String containing zero or more format items
+ An Object to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+
+ Logs a formatted message string with the level.
+
+ A String containing zero or more format items
+ An Object to format
+ An Object to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+
+ Logs a formatted message string with the level.
+
+ A String containing zero or more format items
+ An Object to format
+ An Object to format
+ An Object to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+
+ Logs a formatted message string with the level.
+
+ An that supplies culture-specific formatting information
+ A String containing zero or more format items
+ An Object array containing zero or more objects to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+ Log a message object with the level.
+
+ Logs a message object with the level.
+
+ The message object to log.
+
+
+ This method first checks if this logger is ERROR
+ enabled by comparing the level of this logger with the
+ level. If this logger is
+ ERROR enabled, then it converts the message object
+ (passed as parameter) to a string by invoking the appropriate
+ . It then
+ proceeds to call all the registered appenders in this logger
+ and also higher in the hierarchy depending on the value of the
+ additivity flag.
+
+ WARNING Note that passing an
+ to this method will print the name of the
+ but no stack trace. To print a stack trace use the
+ form instead.
+
+
+
+
+
+
+
+ Log a message object with the level including
+ the stack trace of the passed
+ as a parameter.
+
+ The message object to log.
+ The exception to log, including its stack trace.
+
+
+ See the form for more detailed information.
+
+
+
+
+
+
+ Log a formatted message string with the level.
+
+ Logs a formatted message string with the level.
+
+ A String containing zero or more format items
+ An Object array containing zero or more objects to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+
+ Logs a formatted message string with the level.
+
+ A String containing zero or more format items
+ An Object to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+
+ Logs a formatted message string with the level.
+
+ A String containing zero or more format items
+ An Object to format
+ An Object to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+
+ Logs a formatted message string with the level.
+
+ A String containing zero or more format items
+ An Object to format
+ An Object to format
+ An Object to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+
+ Logs a formatted message string with the level.
+
+ An that supplies culture-specific formatting information
+ A String containing zero or more format items
+ An Object array containing zero or more objects to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+ Log a message object with the level.
+
+ Log a message object with the level.
+
+
+
+ This method first checks if this logger is FATAL
+ enabled by comparing the level of this logger with the
+ level. If this logger is
+ FATAL enabled, then it converts the message object
+ (passed as parameter) to a string by invoking the appropriate
+ . It then
+ proceeds to call all the registered appenders in this logger
+ and also higher in the hierarchy depending on the value of the
+ additivity flag.
+
+ WARNING Note that passing an
+ to this method will print the name of the
+ but no stack trace. To print a stack trace use the
+ form instead.
+
+
+ The message object to log.
+
+
+
+
+
+ Log a message object with the level including
+ the stack trace of the passed
+ as a parameter.
+
+ The message object to log.
+ The exception to log, including its stack trace.
+
+
+ See the form for more detailed information.
+
+
+
+
+
+
+ Log a formatted message string with the level.
+
+ Logs a formatted message string with the level.
+
+ A String containing zero or more format items
+ An Object array containing zero or more objects to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+
+ Logs a formatted message string with the level.
+
+ A String containing zero or more format items
+ An Object to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+
+ Logs a formatted message string with the level.
+
+ A String containing zero or more format items
+ An Object to format
+ An Object to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+
+ Logs a formatted message string with the level.
+
+ A String containing zero or more format items
+ An Object to format
+ An Object to format
+ An Object to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+
+ Logs a formatted message string with the level.
+
+ An that supplies culture-specific formatting information
+ A String containing zero or more format items
+ An Object array containing zero or more objects to format
+
+
+ The message is formatted using the String.Format method. See
+ for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+
+
+ Checks if this logger is enabled for the level.
+
+
+ true if this logger is enabled for events, false otherwise.
+
+
+
+ This function is intended to lessen the computational cost of
+ disabled log debug statements.
+
+ For some ILog interface log, when you write:
+
+ log.Debug("This is entry number: " + i );
+
+
+ You incur the cost constructing the message, string construction and concatenation in
+ this case, regardless of whether the message is logged or not.
+
+
+ If you are worried about speed (who isn't), then you should write:
+
+
+ if (log.IsDebugEnabled)
+ {
+ log.Debug("This is entry number: " + i );
+ }
+
+
+ This way you will not incur the cost of parameter
+ construction if debugging is disabled for log. On
+ the other hand, if the log is debug enabled, you
+ will incur the cost of evaluating whether the logger is debug
+ enabled twice. Once in and once in
+ the . This is an insignificant overhead
+ since evaluating a logger takes about 1% of the time it
+ takes to actually log. This is the preferred style of logging.
+
+ Alternatively if your logger is available statically then the is debug
+ enabled state can be stored in a static variable like this:
+
+
+ private static readonly bool isDebugEnabled = log.IsDebugEnabled;
+
+
+ Then when you come to log you can write:
+
+
+ if (isDebugEnabled)
+ {
+ log.Debug("This is entry number: " + i );
+ }
+
+
+ This way the debug enabled state is only queried once
+ when the class is loaded. Using a private static readonly
+ variable is the most efficient because it is a run time constant
+ and can be heavily optimized by the JIT compiler.
+
+
+ Of course if you use a static readonly variable to
+ hold the enabled state of the logger then you cannot
+ change the enabled state at runtime to vary the logging
+ that is produced. You have to decide if you need absolute
+ speed or runtime flexibility.
+
+
+
+
+
+
+
+ Checks if this logger is enabled for the level.
+
+
+ true if this logger is enabled for events, false otherwise.
+
+
+ For more information see .
+
+
+
+
+
+
+
+ Checks if this logger is enabled for the level.
+
+
+ true if this logger is enabled for events, false otherwise.
+
+
+ For more information see .
+
+
+
+
+
+
+
+ Checks if this logger is enabled for the level.
+
+
+ true if this logger is enabled for events, false otherwise.
+
+
+ For more information see .
+
+
+
+
+
+
+
+ Checks if this logger is enabled for the level.
+
+
+ true if this logger is enabled for events, false otherwise.
+
+
+ For more information see .
+
+
+
+
+
+
+
+ Construct a new wrapper for the specified logger.
+
+ The logger to wrap.
+
+
+ Construct a new wrapper for the specified logger.
+
+
+
+
+
+ Virtual method called when the configuration of the repository changes
+
+ the repository holding the levels
+
+
+ Virtual method called when the configuration of the repository changes
+
+
+
+
+
+ Logs a message object with the DEBUG level.
+
+ The message object to log.
+
+
+ This method first checks if this logger is DEBUG
+ enabled by comparing the level of this logger with the
+ DEBUG level. If this logger is
+ DEBUG enabled, then it converts the message object
+ (passed as parameter) to a string by invoking the appropriate
+ . It then
+ proceeds to call all the registered appenders in this logger
+ and also higher in the hierarchy depending on the value of the
+ additivity flag.
+
+
+ WARNING Note that passing an
+ to this method will print the name of the
+ but no stack trace. To print a stack trace use the
+ form instead.
+
+
+
+
+
+ Logs a message object with the DEBUG level
+
+ The message object to log.
+ The exception to log, including its stack trace.
+
+
+ Logs a message object with the DEBUG level including
+ the stack trace of the passed
+ as a parameter.
+
+
+ See the form for more detailed information.
+
+
+
+
+
+
+ Logs a formatted message string with the DEBUG level.
+
+ A String containing zero or more format items
+ An Object array containing zero or more objects to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ The string is formatted using the
+ format provider. To specify a localized provider use the
+ method.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a formatted message string with the DEBUG level.
+
+ A String containing zero or more format items
+ An Object to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ The string is formatted using the
+ format provider. To specify a localized provider use the
+ method.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a formatted message string with the DEBUG level.
+
+ A String containing zero or more format items
+ An Object to format
+ An Object to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ The string is formatted using the
+ format provider. To specify a localized provider use the
+ method.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a formatted message string with the DEBUG level.
+
+ A String containing zero or more format items
+ An Object to format
+ An Object to format
+ An Object to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ The string is formatted using the
+ format provider. To specify a localized provider use the
+ method.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a formatted message string with the DEBUG level.
+
+ An that supplies culture-specific formatting information
+ A String containing zero or more format items
+ An Object array containing zero or more objects to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a message object with the INFO level.
+
+ The message object to log.
+
+
+ This method first checks if this logger is INFO
+ enabled by comparing the level of this logger with the
+ INFO level. If this logger is
+ INFO enabled, then it converts the message object
+ (passed as parameter) to a string by invoking the appropriate
+ . It then
+ proceeds to call all the registered appenders in this logger
+ and also higher in the hierarchy depending on the value of
+ the additivity flag.
+
+
+ WARNING Note that passing an
+ to this method will print the name of the
+ but no stack trace. To print a stack trace use the
+ form instead.
+
+
+
+
+
+ Logs a message object with the INFO level.
+
+ The message object to log.
+ The exception to log, including its stack trace.
+
+
+ Logs a message object with the INFO level including
+ the stack trace of the
+ passed as a parameter.
+
+
+ See the form for more detailed information.
+
+
+
+
+
+
+ Logs a formatted message string with the INFO level.
+
+ A String containing zero or more format items
+ An Object array containing zero or more objects to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ The string is formatted using the
+ format provider. To specify a localized provider use the
+ method.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a formatted message string with the INFO level.
+
+ A String containing zero or more format items
+ An Object to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ The string is formatted using the
+ format provider. To specify a localized provider use the
+ method.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a formatted message string with the INFO level.
+
+ A String containing zero or more format items
+ An Object to format
+ An Object to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ The string is formatted using the
+ format provider. To specify a localized provider use the
+ method.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a formatted message string with the INFO level.
+
+ A String containing zero or more format items
+ An Object to format
+ An Object to format
+ An Object to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ The string is formatted using the
+ format provider. To specify a localized provider use the
+ method.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a formatted message string with the INFO level.
+
+ An that supplies culture-specific formatting information
+ A String containing zero or more format items
+ An Object array containing zero or more objects to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a message object with the WARN level.
+
+ the message object to log
+
+
+ This method first checks if this logger is WARN
+ enabled by comparing the level of this logger with the
+ WARN level. If this logger is
+ WARN enabled, then it converts the message object
+ (passed as parameter) to a string by invoking the appropriate
+ . It then
+ proceeds to call all the registered appenders in this logger and
+ also higher in the hierarchy depending on the value of the
+ additivity flag.
+
+
+ WARNING Note that passing an to this
+ method will print the name of the but no
+ stack trace. To print a stack trace use the
+ form instead.
+
+
+
+
+
+ Logs a message object with the WARN level
+
+ The message object to log.
+ The exception to log, including its stack trace.
+
+
+ Logs a message object with the WARN level including
+ the stack trace of the
+ passed as a parameter.
+
+
+ See the form for more detailed information.
+
+
+
+
+
+
+ Logs a formatted message string with the WARN level.
+
+ A String containing zero or more format items
+ An Object array containing zero or more objects to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ The string is formatted using the
+ format provider. To specify a localized provider use the
+ method.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a formatted message string with the WARN level.
+
+ A String containing zero or more format items
+ An Object to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ The string is formatted using the
+ format provider. To specify a localized provider use the
+ method.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a formatted message string with the WARN level.
+
+ A String containing zero or more format items
+ An Object to format
+ An Object to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ The string is formatted using the
+ format provider. To specify a localized provider use the
+ method.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a formatted message string with the WARN level.
+
+ A String containing zero or more format items
+ An Object to format
+ An Object to format
+ An Object to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ The string is formatted using the
+ format provider. To specify a localized provider use the
+ method.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a formatted message string with the WARN level.
+
+ An that supplies culture-specific formatting information
+ A String containing zero or more format items
+ An Object array containing zero or more objects to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a message object with the ERROR level.
+
+ The message object to log.
+
+
+ This method first checks if this logger is ERROR
+ enabled by comparing the level of this logger with the
+ ERROR level. If this logger is
+ ERROR enabled, then it converts the message object
+ (passed as parameter) to a string by invoking the appropriate
+ . It then
+ proceeds to call all the registered appenders in this logger and
+ also higher in the hierarchy depending on the value of the
+ additivity flag.
+
+
+ WARNING Note that passing an to this
+ method will print the name of the but no
+ stack trace. To print a stack trace use the
+ form instead.
+
+
+
+
+
+ Logs a message object with the ERROR level
+
+ The message object to log.
+ The exception to log, including its stack trace.
+
+
+ Logs a message object with the ERROR level including
+ the stack trace of the
+ passed as a parameter.
+
+
+ See the form for more detailed information.
+
+
+
+
+
+
+ Logs a formatted message string with the ERROR level.
+
+ A String containing zero or more format items
+ An Object array containing zero or more objects to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ The string is formatted using the
+ format provider. To specify a localized provider use the
+ method.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a formatted message string with the ERROR level.
+
+ A String containing zero or more format items
+ An Object to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ The string is formatted using the
+ format provider. To specify a localized provider use the
+ method.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a formatted message string with the ERROR level.
+
+ A String containing zero or more format items
+ An Object to format
+ An Object to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ The string is formatted using the
+ format provider. To specify a localized provider use the
+ method.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a formatted message string with the ERROR level.
+
+ A String containing zero or more format items
+ An Object to format
+ An Object to format
+ An Object to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ The string is formatted using the
+ format provider. To specify a localized provider use the
+ method.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a formatted message string with the ERROR level.
+
+ An that supplies culture-specific formatting information
+ A String containing zero or more format items
+ An Object array containing zero or more objects to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a message object with the FATAL level.
+
+ The message object to log.
+
+
+ This method first checks if this logger is FATAL
+ enabled by comparing the level of this logger with the
+ FATAL level. If this logger is
+ FATAL enabled, then it converts the message object
+ (passed as parameter) to a string by invoking the appropriate
+ . It then
+ proceeds to call all the registered appenders in this logger and
+ also higher in the hierarchy depending on the value of the
+ additivity flag.
+
+
+ WARNING Note that passing an to this
+ method will print the name of the but no
+ stack trace. To print a stack trace use the
+ form instead.
+
+
+
+
+
+ Logs a message object with the FATAL level
+
+ The message object to log.
+ The exception to log, including its stack trace.
+
+
+ Logs a message object with the FATAL level including
+ the stack trace of the
+ passed as a parameter.
+
+
+ See the form for more detailed information.
+
+
+
+
+
+
+ Logs a formatted message string with the FATAL level.
+
+ A String containing zero or more format items
+ An Object array containing zero or more objects to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ The string is formatted using the
+ format provider. To specify a localized provider use the
+ method.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a formatted message string with the FATAL level.
+
+ A String containing zero or more format items
+ An Object to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ The string is formatted using the
+ format provider. To specify a localized provider use the
+ method.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a formatted message string with the FATAL level.
+
+ A String containing zero or more format items
+ An Object to format
+ An Object to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ The string is formatted using the
+ format provider. To specify a localized provider use the
+ method.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a formatted message string with the FATAL level.
+
+ A String containing zero or more format items
+ An Object to format
+ An Object to format
+ An Object to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ The string is formatted using the
+ format provider. To specify a localized provider use the
+ method.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Logs a formatted message string with the FATAL level.
+
+ An that supplies culture-specific formatting information
+ A String containing zero or more format items
+ An Object array containing zero or more objects to format
+
+
+ The message is formatted using the method. See
+ String.Format for details of the syntax of the format string and the behavior
+ of the formatting.
+
+
+ This method does not take an object to include in the
+ log event. To pass an use one of the
+ methods instead.
+
+
+
+
+
+ Event handler for the event
+
+ the repository
+ Empty
+
+
+
+ The fully qualified name of this declaring type not the type of any subclass.
+
+
+
+
+ Checks if this logger is enabled for the DEBUG
+ level.
+
+
+ true if this logger is enabled for DEBUG events,
+ false otherwise.
+
+
+
+ This function is intended to lessen the computational cost of
+ disabled log debug statements.
+
+
+ For some log Logger object, when you write:
+
+
+ log.Debug("This is entry number: " + i );
+
+
+ You incur the cost constructing the message, concatenation in
+ this case, regardless of whether the message is logged or not.
+
+
+ If you are worried about speed, then you should write:
+
+
+ if (log.IsDebugEnabled())
+ {
+ log.Debug("This is entry number: " + i );
+ }
+
+
+ This way you will not incur the cost of parameter
+ construction if debugging is disabled for log. On
+ the other hand, if the log is debug enabled, you
+ will incur the cost of evaluating whether the logger is debug
+ enabled twice. Once in IsDebugEnabled and once in
+ the Debug. This is an insignificant overhead
+ since evaluating a logger takes about 1% of the time it
+ takes to actually log.
+
+
+
+
+
+ Checks if this logger is enabled for the INFO level.
+
+
+ true if this logger is enabled for INFO events,
+ false otherwise.
+
+
+
+ See for more information and examples
+ of using this method.
+
+
+
+
+
+
+ Checks if this logger is enabled for the WARN level.
+
+
+ true if this logger is enabled for WARN events,
+ false otherwise.
+
+
+
+ See for more information and examples
+ of using this method.
+
+
+
+
+
+
+ Checks if this logger is enabled for the ERROR level.
+
+
+ true if this logger is enabled for ERROR events,
+ false otherwise.
+
+
+
+ See for more information and examples of using this method.
+
+
+
+
+
+
+ Checks if this logger is enabled for the FATAL level.
+
+
+ true if this logger is enabled for FATAL events,
+ false otherwise.
+
+
+
+ See for more information and examples of using this method.
+
+
+
+
+
+
+ A SecurityContext used by log4net when interacting with protected resources
+
+
+
+ A SecurityContext used by log4net when interacting with protected resources
+ for example with operating system services. This can be used to impersonate
+ a principal that has been granted privileges on the system resources.
+
+
+ Nicko Cadell
+
+
+
+ Impersonate this SecurityContext
+
+ State supplied by the caller
+ An instance that will
+ revoke the impersonation of this SecurityContext, or null
+
+
+ Impersonate this security context. Further calls on the current
+ thread should now be made in the security context provided
+ by this object. When the result
+ method is called the security
+ context of the thread should be reverted to the state it was in
+ before was called.
+
+
+
+
+
+ The providers default instances.
+
+
+
+ A configured component that interacts with potentially protected system
+ resources uses a to provide the elevated
+ privileges required. If the object has
+ been not been explicitly provided to the component then the component
+ will request one from this .
+
+
+ By default the is
+ an instance of which returns only
+ objects. This is a reasonable default
+ where the privileges required are not know by the system.
+
+
+ This default behavior can be overridden by subclassing the
+ and overriding the method to return
+ the desired objects. The default provider
+ can be replaced by programmatically setting the value of the
+ property.
+
+
+ An alternative is to use the log4net.Config.SecurityContextProviderAttribute
+ This attribute can be applied to an assembly in the same way as the
+ log4net.Config.XmlConfiguratorAttribute". The attribute takes
+ the type to use as the as an argument.
+
+
+ Nicko Cadell
+
+
+
+ The default provider
+
+
+
+
+ Protected default constructor to allow subclassing
+
+
+
+ Protected default constructor to allow subclassing
+
+
+
+
+
+ Create a SecurityContext for a consumer
+
+ The consumer requesting the SecurityContext
+ An impersonation context
+
+
+ The default implementation is to return a .
+
+
+ Subclasses should override this method to provide their own
+ behavior.
+
+
+
+
+
+ Gets or sets the default SecurityContextProvider
+
+
+ The default SecurityContextProvider
+
+
+
+ The default provider is used by configured components that
+ require a and have not had one
+ given to them.
+
+
+ By default this is an instance of
+ that returns objects.
+
+
+ The default provider can be set programmatically by setting
+ the value of this property to a sub class of
+ that has the desired behavior.
+
+
+
+
+
+ Delegate used to handle creation of new wrappers.
+
+ The logger to wrap in a wrapper.
+
+
+ Delegate used to handle creation of new wrappers. This delegate
+ is called from the
+ method to construct the wrapper for the specified logger.
+
+
+ The delegate to use is supplied to the
+ constructor.
+
+
+
+
+
+ Maps between logger objects and wrapper objects.
+
+
+
+ This class maintains a mapping between objects and
+ objects. Use the method to
+ lookup the for the specified .
+
+
+ New wrapper instances are created by the
+ method. The default behavior is for this method to delegate construction
+ of the wrapper to the delegate supplied
+ to the constructor. This allows specialization of the behavior without
+ requiring subclassing of this type.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Initializes a new instance of the
+
+ The handler to use to create the wrapper objects.
+
+
+ Initializes a new instance of the class with
+ the specified handler to create the wrapper objects.
+
+
+
+
+
+ Gets the wrapper object for the specified logger.
+
+ The wrapper object for the specified logger
+
+
+ If the logger is null then the corresponding wrapper is null.
+
+
+ Looks up the wrapper it it has previously been requested and
+ returns it. If the wrapper has never been requested before then
+ the virtual method is
+ called.
+
+
+
+
+
+ Creates the wrapper object for the specified logger.
+
+ The logger to wrap in a wrapper.
+ The wrapper object for the logger.
+
+
+ This implementation uses the
+ passed to the constructor to create the wrapper. This method
+ can be overridden in a subclass.
+
+
+
+
+
+ Called when a monitored repository shutdown event is received.
+
+ The that is shutting down
+
+
+ This method is called when a that this
+ is holding loggers for has signaled its shutdown
+ event . The default
+ behavior of this method is to release the references to the loggers
+ and their wrappers generated for this repository.
+
+
+
+
+
+ Event handler for repository shutdown event.
+
+ The sender of the event.
+ The event args.
+
+
+
+ Map of logger repositories to hashtables of ILogger to ILoggerWrapper mappings
+
+
+
+
+ The handler to use to create the extension wrapper objects.
+
+
+
+
+ Internal reference to the delegate used to register for repository shutdown events.
+
+
+
+
+ Gets the map of logger repositories.
+
+
+ Map of logger repositories.
+
+
+
+ Gets the hashtable that is keyed on . The
+ values are hashtables keyed on with the
+ value being the corresponding .
+
+
+
+
+
+ Formats a as "HH:mm:ss,fff".
+
+
+
+ Formats a in the format "HH:mm:ss,fff" for example, "15:49:37,459".
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Render a as a string.
+
+
+
+ Interface to abstract the rendering of a
+ instance into a string.
+
+
+ The method is used to render the
+ date to a text writer.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Formats the specified date as a string.
+
+ The date to format.
+ The writer to write to.
+
+
+ Format the as a string and write it
+ to the provided.
+
+
+
+
+
+ String constant used to specify AbsoluteTimeDateFormat in layouts. Current value is ABSOLUTE.
+
+
+
+
+ String constant used to specify DateTimeDateFormat in layouts. Current value is DATE.
+
+
+
+
+ String constant used to specify ISO8601DateFormat in layouts. Current value is ISO8601.
+
+
+
+
+ Renders the date into a string. Format is "HH:mm:ss".
+
+ The date to render into a string.
+ The string builder to write to.
+
+
+ Subclasses should override this method to render the date
+ into a string using a precision up to the second. This method
+ will be called at most once per second and the result will be
+ reused if it is needed again during the same second.
+
+
+
+
+
+ Renders the date into a string. Format is "HH:mm:ss,fff".
+
+ The date to render into a string.
+ The writer to write to.
+
+
+ Uses the method to generate the
+ time string up to the seconds and then appends the current
+ milliseconds. The results from are
+ cached and is called at most once
+ per second.
+
+
+ Sub classes should override
+ rather than .
+
+
+
+
+
+ Last stored time with precision up to the second.
+
+
+
+
+ Last stored time with precision up to the second, formatted
+ as a string.
+
+
+
+
+ Last stored time with precision up to the second, formatted
+ as a string.
+
+
+
+
+ Formats a as "dd MMM yyyy HH:mm:ss,fff"
+
+
+
+ Formats a in the format
+ "dd MMM yyyy HH:mm:ss,fff" for example,
+ "06 Nov 1994 15:49:37,459".
+
+
+ Nicko Cadell
+ Gert Driesen
+ Angelika Schnagl
+
+
+
+ Default constructor.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+
+ Formats the date without the milliseconds part
+
+ The date to format.
+ The string builder to write to.
+
+
+ Formats a DateTime in the format "dd MMM yyyy HH:mm:ss"
+ for example, "06 Nov 1994 15:49:37".
+
+
+ The base class will append the ",fff" milliseconds section.
+ This method will only be called at most once per second.
+
+
+
+
+
+ The format info for the invariant culture.
+
+
+
+
+ Formats the as "yyyy-MM-dd HH:mm:ss,fff".
+
+
+
+ Formats the specified as a string: "yyyy-MM-dd HH:mm:ss,fff".
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Default constructor
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+
+ Formats the date without the milliseconds part
+
+ The date to format.
+ The string builder to write to.
+
+
+ Formats the date specified as a string: "yyyy-MM-dd HH:mm:ss".
+
+
+ The base class will append the ",fff" milliseconds section.
+ This method will only be called at most once per second.
+
+
+
+
+
+ Formats the using the method.
+
+
+
+ Formats the using the method.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Constructor
+
+ The format string.
+
+
+ Initializes a new instance of the class
+ with the specified format string.
+
+
+ The format string must be compatible with the options
+ that can be supplied to .
+
+
+
+
+
+ Formats the date using .
+
+ The date to convert to a string.
+ The writer to write to.
+
+
+ Uses the date format string supplied to the constructor to call
+ the method to format the date.
+
+
+
+
+
+ The format string used to format the .
+
+
+
+ The format string must be compatible with the options
+ that can be supplied to .
+
+
+
+
+
+ This filter drops all .
+
+
+
+ You can add this filter to the end of a filter chain to
+ switch from the default "accept all unless instructed otherwise"
+ filtering behavior to a "deny all unless instructed otherwise"
+ behavior.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Subclass this type to implement customized logging event filtering
+
+
+
+ Users should extend this class to implement customized logging
+ event filtering. Note that and
+ , the parent class of all standard
+ appenders, have built-in filtering rules. It is suggested that you
+ first use and understand the built-in rules before rushing to write
+ your own custom filters.
+
+
+ This abstract class assumes and also imposes that filters be
+ organized in a linear chain. The
+ method of each filter is called sequentially, in the order of their
+ addition to the chain.
+
+
+ The method must return one
+ of the integer constants ,
+ or .
+
+
+ If the value is returned, then the log event is dropped
+ immediately without consulting with the remaining filters.
+
+
+ If the value is returned, then the next filter
+ in the chain is consulted. If there are no more filters in the
+ chain, then the log event is logged. Thus, in the presence of no
+ filters, the default behavior is to log all logging events.
+
+
+ If the value is returned, then the log
+ event is logged without consulting the remaining filters.
+
+
+ The philosophy of log4net filters is largely inspired from the
+ Linux ipchains.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Implement this interface to provide customized logging event filtering
+
+
+
+ Users should implement this interface to implement customized logging
+ event filtering. Note that and
+ , the parent class of all standard
+ appenders, have built-in filtering rules. It is suggested that you
+ first use and understand the built-in rules before rushing to write
+ your own custom filters.
+
+
+ This abstract class assumes and also imposes that filters be
+ organized in a linear chain. The
+ method of each filter is called sequentially, in the order of their
+ addition to the chain.
+
+
+ The method must return one
+ of the integer constants ,
+ or .
+
+
+ If the value is returned, then the log event is dropped
+ immediately without consulting with the remaining filters.
+
+
+ If the value is returned, then the next filter
+ in the chain is consulted. If there are no more filters in the
+ chain, then the log event is logged. Thus, in the presence of no
+ filters, the default behavior is to log all logging events.
+
+
+ If the value is returned, then the log
+ event is logged without consulting the remaining filters.
+
+
+ The philosophy of log4net filters is largely inspired from the
+ Linux ipchains.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Decide if the logging event should be logged through an appender.
+
+ The LoggingEvent to decide upon
+ The decision of the filter
+
+
+ If the decision is , then the event will be
+ dropped. If the decision is , then the next
+ filter, if any, will be invoked. If the decision is then
+ the event will be logged without consulting with other filters in
+ the chain.
+
+
+
+
+
+ Property to get and set the next filter
+
+
+ The next filter in the chain
+
+
+
+ Filters are typically composed into chains. This property allows the next filter in
+ the chain to be accessed.
+
+
+
+
+
+ Points to the next filter in the filter chain.
+
+
+
+ See for more information.
+
+
+
+
+
+ Initialize the filter with the options set
+
+
+
+ This is part of the delayed object
+ activation scheme. The method must
+ be called on this object after the configuration properties have
+ been set. Until is called this
+ object is in an undefined state and must not be used.
+
+
+ If any of the configuration properties are modified then
+ must be called again.
+
+
+ Typically filter's options become active immediately on set,
+ however this method must still be called.
+
+
+
+
+
+ Decide if the should be logged through an appender.
+
+ The to decide upon
+ The decision of the filter
+
+
+ If the decision is , then the event will be
+ dropped. If the decision is , then the next
+ filter, if any, will be invoked. If the decision is then
+ the event will be logged without consulting with other filters in
+ the chain.
+
+
+ This method is marked abstract and must be implemented
+ in a subclass.
+
+
+
+
+
+ Property to get and set the next filter
+
+
+ The next filter in the chain
+
+
+
+ Filters are typically composed into chains. This property allows the next filter in
+ the chain to be accessed.
+
+
+
+
+
+ Default constructor
+
+
+
+
+ Always returns the integer constant
+
+ the LoggingEvent to filter
+ Always returns
+
+
+ Ignores the event being logged and just returns
+ . This can be used to change the default filter
+ chain behavior from to . This filter
+ should only be used as the last filter in the chain
+ as any further filters will be ignored!
+
+
+
+
+
+ The return result from
+
+
+
+ The return result from
+
+
+
+
+
+ The log event must be dropped immediately without
+ consulting with the remaining filters, if any, in the chain.
+
+
+
+
+ This filter is neutral with respect to the log event.
+ The remaining filters, if any, should be consulted for a final decision.
+
+
+
+
+ The log event must be logged immediately without
+ consulting with the remaining filters, if any, in the chain.
+
+
+
+
+ This is a very simple filter based on matching.
+
+
+
+ The filter admits two options and
+ . If there is an exact match between the value
+ of the option and the of the
+ , then the method returns in
+ case the option value is set
+ to true, if it is false then
+ is returned. If the does not match then
+ the result will be .
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ flag to indicate if the filter should on a match
+
+
+
+
+ the to match against
+
+
+
+
+ Default constructor
+
+
+
+
+ Tests if the of the logging event matches that of the filter
+
+ the event to filter
+ see remarks
+
+
+ If the of the event matches the level of the
+ filter then the result of the function depends on the
+ value of . If it is true then
+ the function will return , it it is false then it
+ will return . If the does not match then
+ the result will be .
+
+
+
+
+
+ when matching
+
+
+
+ The property is a flag that determines
+ the behavior when a matching is found. If the
+ flag is set to true then the filter will the
+ logging event, otherwise it will the event.
+
+
+ The default is true i.e. to the event.
+
+
+
+
+
+ The that the filter will match
+
+
+
+ The level that this filter will attempt to match against the
+ level. If a match is found then
+ the result depends on the value of .
+
+
+
+
+
+ This is a simple filter based on matching.
+
+
+
+ The filter admits three options and
+ that determine the range of priorities that are matched, and
+ . If there is a match between the range
+ of priorities and the of the , then the
+ method returns in case the
+ option value is set to true, if it is false
+ then is returned. If there is no match, is returned.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Flag to indicate the behavior when matching a
+
+
+
+
+ the minimum value to match
+
+
+
+
+ the maximum value to match
+
+
+
+
+ Default constructor
+
+
+
+
+ Check if the event should be logged.
+
+ the logging event to check
+ see remarks
+
+
+ If the of the logging event is outside the range
+ matched by this filter then
+ is returned. If the is matched then the value of
+ is checked. If it is true then
+ is returned, otherwise
+ is returned.
+
+
+
+
+
+ when matching and
+
+
+
+ The property is a flag that determines
+ the behavior when a matching is found. If the
+ flag is set to true then the filter will the
+ logging event, otherwise it will the event.
+
+
+ The default is true i.e. to the event.
+
+
+
+
+
+ Set the minimum matched
+
+
+
+ The minimum level that this filter will attempt to match against the
+ level. If a match is found then
+ the result depends on the value of .
+
+
+
+
+
+ Sets the maximum matched
+
+
+
+ The maximum level that this filter will attempt to match against the
+ level. If a match is found then
+ the result depends on the value of .
+
+
+
+
+
+ Simple filter to match a string in the event's logger name.
+
+
+
+ The works very similar to the . It admits two
+ options and . If the
+ of the starts
+ with the value of the option, then the
+ method returns in
+ case the option value is set to true,
+ if it is false then is returned.
+
+
+ Daniel Cazzulino
+
+
+
+ Flag to indicate the behavior when we have a match
+
+
+
+
+ The logger name string to substring match against the event
+
+
+
+
+ Default constructor
+
+
+
+
+ Check if this filter should allow the event to be logged
+
+ the event being logged
+ see remarks
+
+
+ The rendered message is matched against the .
+ If the equals the beginning of
+ the incoming ()
+ then a match will have occurred. If no match occurs
+ this function will return
+ allowing other filters to check the event. If a match occurs then
+ the value of is checked. If it is
+ true then is returned otherwise
+ is returned.
+
+
+
+
+
+ when matching
+
+
+
+ The property is a flag that determines
+ the behavior when a matching is found. If the
+ flag is set to true then the filter will the
+ logging event, otherwise it will the event.
+
+
+ The default is true i.e. to the event.
+
+
+
+
+
+ The that the filter will match
+
+
+
+ This filter will attempt to match this value against logger name in
+ the following way. The match will be done against the beginning of the
+ logger name (using ). The match is
+ case sensitive. If a match is found then
+ the result depends on the value of .
+
+
+
+
+
+ Simple filter to match a keyed string in the
+
+
+
+ Simple filter to match a keyed string in the
+
+
+ As the MDC has been replaced with layered properties the
+ should be used instead.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Simple filter to match a string an event property
+
+
+
+ Simple filter to match a string in the value for a
+ specific event property
+
+
+ Nicko Cadell
+
+
+
+ Simple filter to match a string in the rendered message
+
+
+
+ Simple filter to match a string in the rendered message
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Flag to indicate the behavior when we have a match
+
+
+
+
+ The string to substring match against the message
+
+
+
+
+ A string regex to match
+
+
+
+
+ A regex object to match (generated from m_stringRegexToMatch)
+
+
+
+
+ Default constructor
+
+
+
+
+ Initialize and precompile the Regex if required
+
+
+
+ This is part of the delayed object
+ activation scheme. The method must
+ be called on this object after the configuration properties have
+ been set. Until is called this
+ object is in an undefined state and must not be used.
+
+
+ If any of the configuration properties are modified then
+ must be called again.
+
+
+
+
+
+ Check if this filter should allow the event to be logged
+
+ the event being logged
+ see remarks
+
+
+ The rendered message is matched against the .
+ If the occurs as a substring within
+ the message then a match will have occurred. If no match occurs
+ this function will return
+ allowing other filters to check the event. If a match occurs then
+ the value of is checked. If it is
+ true then is returned otherwise
+ is returned.
+
+
+
+
+
+ when matching or
+
+
+
+ The property is a flag that determines
+ the behavior when a matching is found. If the
+ flag is set to true then the filter will the
+ logging event, otherwise it will the event.
+
+
+ The default is true i.e. to the event.
+
+
+
+
+
+ Sets the static string to match
+
+
+
+ The string that will be substring matched against
+ the rendered message. If the message contains this
+ string then the filter will match. If a match is found then
+ the result depends on the value of .
+
+
+ One of or
+ must be specified.
+
+
+
+
+
+ Sets the regular expression to match
+
+
+
+ The regular expression pattern that will be matched against
+ the rendered message. If the message matches this
+ pattern then the filter will match. If a match is found then
+ the result depends on the value of .
+
+
+ One of or
+ must be specified.
+
+
+
+
+
+ The key to use to lookup the string from the event properties
+
+
+
+
+ Default constructor
+
+
+
+
+ Check if this filter should allow the event to be logged
+
+ the event being logged
+ see remarks
+
+
+ The event property for the is matched against
+ the .
+ If the occurs as a substring within
+ the property value then a match will have occurred. If no match occurs
+ this function will return
+ allowing other filters to check the event. If a match occurs then
+ the value of is checked. If it is
+ true then is returned otherwise
+ is returned.
+
+
+
+
+
+ The key to lookup in the event properties and then match against.
+
+
+
+ The key name to use to lookup in the properties map of the
+ . The match will be performed against
+ the value of this property if it exists.
+
+
+
+
+
+ Simple filter to match a string in the
+
+
+
+ Simple filter to match a string in the
+
+
+ As the MDC has been replaced with named stacks stored in the
+ properties collections the should
+ be used instead.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Default constructor
+
+
+
+ Sets the to "NDC".
+
+
+
+
+
+ Write the event appdomain name to the output
+
+
+
+ Writes the to the output writer.
+
+
+ Daniel Cazzulino
+ Nicko Cadell
+
+
+
+ Abstract class that provides the formatting functionality that
+ derived classes need.
+
+
+ Conversion specifiers in a conversion patterns are parsed to
+ individual PatternConverters. Each of which is responsible for
+ converting a logging event in a converter specific manner.
+
+ Nicko Cadell
+
+
+
+ Abstract class that provides the formatting functionality that
+ derived classes need.
+
+
+
+ Conversion specifiers in a conversion patterns are parsed to
+ individual PatternConverters. Each of which is responsible for
+ converting a logging event in a converter specific manner.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Initial buffer size
+
+
+
+
+ Maximum buffer size before it is recycled
+
+
+
+
+ Protected constructor
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+
+ Evaluate this pattern converter and write the output to a writer.
+
+ that will receive the formatted result.
+ The state object on which the pattern converter should be executed.
+
+
+ Derived pattern converters must override this method in order to
+ convert conversion specifiers in the appropriate way.
+
+
+
+
+
+ Set the next pattern converter in the chains
+
+ the pattern converter that should follow this converter in the chain
+ the next converter
+
+
+ The PatternConverter can merge with its neighbor during this method (or a sub class).
+ Therefore the return value may or may not be the value of the argument passed in.
+
+
+
+
+
+ Write the pattern converter to the writer with appropriate formatting
+
+ that will receive the formatted result.
+ The state object on which the pattern converter should be executed.
+
+
+ This method calls to allow the subclass to perform
+ appropriate conversion of the pattern converter. If formatting options have
+ been specified via the then this method will
+ apply those formattings before writing the output.
+
+
+
+
+
+ Fast space padding method.
+
+ to which the spaces will be appended.
+ The number of spaces to be padded.
+
+
+ Fast space padding method.
+
+
+
+
+
+ The option string to the converter
+
+
+
+
+ Write an dictionary to a
+
+ the writer to write to
+ a to use for object conversion
+ the value to write to the writer
+
+
+ Writes the to a writer in the form:
+
+
+ {key1=value1, key2=value2, key3=value3}
+
+
+ If the specified
+ is not null then it is used to render the key and value to text, otherwise
+ the object's ToString method is called.
+
+
+
+
+
+ Write an object to a
+
+ the writer to write to
+ a to use for object conversion
+ the value to write to the writer
+
+
+ Writes the Object to a writer. If the specified
+ is not null then it is used to render the object to text, otherwise
+ the object's ToString method is called.
+
+
+
+
+
+ Get the next pattern converter in the chain
+
+
+ the next pattern converter in the chain
+
+
+
+ Get the next pattern converter in the chain
+
+
+
+
+
+ Gets or sets the formatting info for this converter
+
+
+ The formatting info for this converter
+
+
+
+ Gets or sets the formatting info for this converter
+
+
+
+
+
+ Gets or sets the option value for this converter
+
+
+ The option for this converter
+
+
+
+ Gets or sets the option value for this converter
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Derived pattern converters must override this method in order to
+ convert conversion specifiers in the correct way.
+
+ that will receive the formatted result.
+ The on which the pattern converter should be executed.
+
+
+
+ Derived pattern converters must override this method in order to
+ convert conversion specifiers in the correct way.
+
+ that will receive the formatted result.
+ The state object on which the pattern converter should be executed.
+
+
+
+ Flag indicating if this converter handles exceptions
+
+
+ false if this converter handles exceptions
+
+
+
+
+ Flag indicating if this converter handles the logging event exception
+
+ false if this converter handles the logging event exception
+
+
+ If this converter handles the exception object contained within
+ , then this property should be set to
+ false. Otherwise, if the layout ignores the exception
+ object, then the property should be set to true.
+
+
+ Set this value to override a this default setting. The default
+ value is true, this converter does not handle the exception.
+
+
+
+
+
+ Write the event appdomain name to the output
+
+ that will receive the formatted result.
+ the event being logged
+
+
+ Writes the to the output .
+
+
+
+
+
+ Date pattern converter, uses a to format
+ the date of a .
+
+
+
+ Render the to the writer as a string.
+
+
+ The value of the determines
+ the formatting of the date. The following values are allowed:
+
+
+ Option value
+ Output
+
+
+ ISO8601
+
+ Uses the formatter.
+ Formats using the "yyyy-MM-dd HH:mm:ss,fff" pattern.
+
+
+
+ DATE
+
+ Uses the formatter.
+ Formats using the "dd MMM yyyy HH:mm:ss,fff" for example, "06 Nov 1994 15:49:37,459".
+
+
+
+ ABSOLUTE
+
+ Uses the formatter.
+ Formats using the "HH:mm:ss,yyyy" for example, "15:49:37,459".
+
+
+
+ other
+
+ Any other pattern string uses the formatter.
+ This formatter passes the pattern string to the
+ method.
+ For details on valid patterns see
+ DateTimeFormatInfo Class.
+
+
+
+
+
+ The is in the local time zone and is rendered in that zone.
+ To output the time in Universal time see .
+
+
+ Nicko Cadell
+
+
+
+ The used to render the date to a string
+
+
+
+ The used to render the date to a string
+
+
+
+
+
+ Initialize the converter pattern based on the property.
+
+
+
+ This is part of the delayed object
+ activation scheme. The method must
+ be called on this object after the configuration properties have
+ been set. Until is called this
+ object is in an undefined state and must not be used.
+
+
+ If any of the configuration properties are modified then
+ must be called again.
+
+
+
+
+
+ Convert the pattern into the rendered message
+
+ that will receive the formatted result.
+ the event being logged
+
+
+ Pass the to the
+ for it to render it to the writer.
+
+
+ The passed is in the local time zone.
+
+
+
+
+
+ Write the exception text to the output
+
+
+
+ If an exception object is stored in the logging event
+ it will be rendered into the pattern output with a
+ trailing newline.
+
+
+ If there is no exception then nothing will be output
+ and no trailing newline will be appended.
+ It is typical to put a newline before the exception
+ and to have the exception as the last data in the pattern.
+
+
+ Nicko Cadell
+
+
+
+ Default constructor
+
+
+
+
+ Write the exception text to the output
+
+ that will receive the formatted result.
+ the event being logged
+
+
+ If an exception object is stored in the logging event
+ it will be rendered into the pattern output with a
+ trailing newline.
+
+
+ If there is no exception then nothing will be output
+ and no trailing newline will be appended.
+ It is typical to put a newline before the exception
+ and to have the exception as the last data in the pattern.
+
+
+
+
+
+ Writes the caller location file name to the output
+
+
+
+ Writes the value of the for
+ the event to the output writer.
+
+
+ Nicko Cadell
+
+
+
+ Write the caller location file name to the output
+
+ that will receive the formatted result.
+ the event being logged
+
+
+ Writes the value of the for
+ the to the output .
+
+
+
+
+
+ Write the caller location info to the output
+
+
+
+ Writes the to the output writer.
+
+
+ Nicko Cadell
+
+
+
+ Write the caller location info to the output
+
+ that will receive the formatted result.
+ the event being logged
+
+
+ Writes the to the output writer.
+
+
+
+
+
+ Writes the event identity to the output
+
+
+
+ Writes the value of the to
+ the output writer.
+
+
+ Daniel Cazzulino
+ Nicko Cadell
+
+
+
+ Writes the event identity to the output
+
+ that will receive the formatted result.
+ the event being logged
+
+
+ Writes the value of the
+ to
+ the output .
+
+
+
+
+
+ Write the event level to the output
+
+
+
+ Writes the display name of the event
+ to the writer.
+
+
+ Nicko Cadell
+
+
+
+ Write the event level to the output
+
+ that will receive the formatted result.
+ the event being logged
+
+
+ Writes the of the
+ to the .
+
+
+
+
+
+ Write the caller location line number to the output
+
+
+
+ Writes the value of the for
+ the event to the output writer.
+
+
+ Nicko Cadell
+
+
+
+ Write the caller location line number to the output
+
+ that will receive the formatted result.
+ the event being logged
+
+
+ Writes the value of the for
+ the to the output .
+
+
+
+
+
+ Converter for logger name
+
+
+
+ Outputs the of the event.
+
+
+ Nicko Cadell
+
+
+
+ Converter to output and truncate '.' separated strings
+
+
+
+ This abstract class supports truncating a '.' separated string
+ to show a specified number of elements from the right hand side.
+ This is used to truncate class names that are fully qualified.
+
+
+ Subclasses should override the method to
+ return the fully qualified string.
+
+
+ Nicko Cadell
+
+
+
+ Initialize the converter
+
+
+
+ This is part of the delayed object
+ activation scheme. The method must
+ be called on this object after the configuration properties have
+ been set. Until is called this
+ object is in an undefined state and must not be used.
+
+
+ If any of the configuration properties are modified then
+ must be called again.
+
+
+
+
+
+ Get the fully qualified string data
+
+ the event being logged
+ the fully qualified name
+
+
+ Overridden by subclasses to get the fully qualified name before the
+ precision is applied to it.
+
+
+ Return the fully qualified '.' (dot/period) separated string.
+
+
+
+
+
+ Convert the pattern to the rendered message
+
+ that will receive the formatted result.
+ the event being logged
+
+ Render the to the precision
+ specified by the property.
+
+
+
+
+ Gets the fully qualified name of the logger
+
+ the event being logged
+ The fully qualified logger name
+
+
+ Returns the of the .
+
+
+
+
+
+ Writes the event message to the output
+
+
+
+ Uses the method
+ to write out the event message.
+
+
+ Nicko Cadell
+
+
+
+ Writes the event message to the output
+
+ that will receive the formatted result.
+ the event being logged
+
+
+ Uses the method
+ to write out the event message.
+
+
+
+
+
+ Write the method name to the output
+
+
+
+ Writes the caller location to
+ the output.
+
+
+ Nicko Cadell
+
+
+
+ Write the method name to the output
+
+ that will receive the formatted result.
+ the event being logged
+
+
+ Writes the caller location to
+ the output.
+
+
+
+
+
+ Converter to include event NDC
+
+
+
+ Outputs the value of the event property named NDC.
+
+
+ The should be used instead.
+
+
+ Nicko Cadell
+
+
+
+ Write the event NDC to the output
+
+ that will receive the formatted result.
+ the event being logged
+
+
+ As the thread context stacks are now stored in named event properties
+ this converter simply looks up the value of the NDC property.
+
+
+ The should be used instead.
+
+
+
+
+
+ Property pattern converter
+
+
+
+ Writes out the value of a named property. The property name
+ should be set in the
+ property.
+
+
+ If the is set to null
+ then all the properties are written as key value pairs.
+
+
+ Nicko Cadell
+
+
+
+ Write the property value to the output
+
+ that will receive the formatted result.
+ the event being logged
+
+
+ Writes out the value of a named property. The property name
+ should be set in the
+ property.
+
+
+ If the is set to null
+ then all the properties are written as key value pairs.
+
+
+
+
+
+ Converter to output the relative time of the event
+
+
+
+ Converter to output the time of the event relative to the start of the program.
+
+
+ Nicko Cadell
+
+
+
+ Write the relative time to the output
+
+ that will receive the formatted result.
+ the event being logged
+
+
+ Writes out the relative time of the event in milliseconds.
+ That is the number of milliseconds between the event
+ and the .
+
+
+
+
+
+ Helper method to get the time difference between two DateTime objects
+
+ start time (in the current local time zone)
+ end time (in the current local time zone)
+ the time difference in milliseconds
+
+
+
+ Converter to include event thread name
+
+
+
+ Writes the to the output.
+
+
+ Nicko Cadell
+
+
+
+ Write the ThreadName to the output
+
+ that will receive the formatted result.
+ the event being logged
+
+
+ Writes the to the .
+
+
+
+
+
+ Pattern converter for the class name
+
+
+
+ Outputs the of the event.
+
+
+ Nicko Cadell
+
+
+
+ Gets the fully qualified name of the class
+
+ the event being logged
+ The fully qualified type name for the caller location
+
+
+ Returns the of the .
+
+
+
+
+
+ Converter to include event user name
+
+ Douglas de la Torre
+ Nicko Cadell
+
+
+
+ Convert the pattern to the rendered message
+
+ that will receive the formatted result.
+ the event being logged
+
+
+
+ Write the TimeStamp to the output
+
+
+
+ Date pattern converter, uses a to format
+ the date of a .
+
+
+ Uses a to format the
+ in Universal time.
+
+
+ See the for details on the date pattern syntax.
+
+
+
+ Nicko Cadell
+
+
+
+ Write the TimeStamp to the output
+
+ that will receive the formatted result.
+ the event being logged
+
+
+ Pass the to the
+ for it to render it to the writer.
+
+
+ The passed is in the local time zone, this is converted
+ to Universal time before it is rendered.
+
+
+
+
+
+
+ A Layout that renders only the Exception text from the logging event
+
+
+
+ A Layout that renders only the Exception text from the logging event.
+
+
+ This Layout should only be used with appenders that utilize multiple
+ layouts (e.g. ).
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Extend this abstract class to create your own log layout format.
+
+
+
+ This is the base implementation of the
+ interface. Most layout objects should extend this class.
+
+
+
+
+
+ Subclasses must implement the
+ method.
+
+
+ Subclasses should set the in their default
+ constructor.
+
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Interface implemented by layout objects
+
+
+
+ An object is used to format a
+ as text. The method is called by an
+ appender to transform the into a string.
+
+
+ The layout can also supply and
+ text that is appender before any events and after all the events respectively.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Implement this method to create your own layout format.
+
+ The TextWriter to write the formatted event to
+ The event to format
+
+
+ This method is called by an appender to format
+ the as text and output to a writer.
+
+
+ If the caller does not have a and prefers the
+ event to be formatted as a then the following
+ code can be used to format the event into a .
+
+
+ StringWriter writer = new StringWriter();
+ Layout.Format(writer, loggingEvent);
+ string formattedEvent = writer.ToString();
+
+
+
+
+
+ The content type output by this layout.
+
+ The content type
+
+
+ The content type output by this layout.
+
+
+ This is a MIME type e.g. "text/plain".
+
+
+
+
+
+ The header for the layout format.
+
+ the layout header
+
+
+ The Header text will be appended before any logging events
+ are formatted and appended.
+
+
+
+
+
+ The footer for the layout format.
+
+ the layout footer
+
+
+ The Footer text will be appended after all the logging events
+ have been formatted and appended.
+
+
+
+
+
+ Flag indicating if this layout handle exceptions
+
+ false if this layout handles exceptions
+
+
+ If this layout handles the exception object contained within
+ , then the layout should return
+ false. Otherwise, if the layout ignores the exception
+ object, then the layout should return true.
+
+
+
+
+
+ The header text
+
+
+
+ See for more information.
+
+
+
+
+
+ The footer text
+
+
+
+ See for more information.
+
+
+
+
+
+ Flag indicating if this layout handles exceptions
+
+
+
+ false if this layout handles exceptions
+
+
+
+
+
+ Empty default constructor
+
+
+
+ Empty default constructor
+
+
+
+
+
+ Activate component options
+
+
+
+ This is part of the delayed object
+ activation scheme. The method must
+ be called on this object after the configuration properties have
+ been set. Until is called this
+ object is in an undefined state and must not be used.
+
+
+ If any of the configuration properties are modified then
+ must be called again.
+
+
+ This method must be implemented by the subclass.
+
+
+
+
+
+ Implement this method to create your own layout format.
+
+ The TextWriter to write the formatted event to
+ The event to format
+
+
+ This method is called by an appender to format
+ the as text.
+
+
+
+
+
+ The content type output by this layout.
+
+ The content type is "text/plain"
+
+
+ The content type output by this layout.
+
+
+ This base class uses the value "text/plain".
+ To change this value a subclass must override this
+ property.
+
+
+
+
+
+ The header for the layout format.
+
+ the layout header
+
+
+ The Header text will be appended before any logging events
+ are formatted and appended.
+
+
+
+
+
+ The footer for the layout format.
+
+ the layout footer
+
+
+ The Footer text will be appended after all the logging events
+ have been formatted and appended.
+
+
+
+
+
+ Flag indicating if this layout handles exceptions
+
+ false if this layout handles exceptions
+
+
+ If this layout handles the exception object contained within
+ , then the layout should return
+ false. Otherwise, if the layout ignores the exception
+ object, then the layout should return true.
+
+
+ Set this value to override a this default setting. The default
+ value is true, this layout does not handle the exception.
+
+
+
+
+
+ Default constructor
+
+
+
+ Constructs a ExceptionLayout
+
+
+
+
+
+ Activate component options
+
+
+
+ Part of the component activation
+ framework.
+
+
+ This method does nothing as options become effective immediately.
+
+
+
+
+
+ Gets the exception text from the logging event
+
+ The TextWriter to write the formatted event to
+ the event being logged
+
+
+ Write the exception string to the .
+ The exception string is retrieved from .
+
+
+
+
+
+ Interface for raw layout objects
+
+
+
+ Interface used to format a
+ to an object.
+
+
+ This interface should not be confused with the
+ interface. This interface is used in
+ only certain specialized situations where a raw object is
+ required rather than a formatted string. The
+ is not generally useful than this interface.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ Implement this method to create your own layout format.
+
+ The event to format
+ returns the formatted event
+
+
+ Implement this method to create your own layout format.
+
+
+
+
+
+ Adapts any to a
+
+
+
+ Where an is required this adapter
+ allows a to be specified.
+
+
+ Nicko Cadell
+ Gert Driesen
+
+
+
+ The layout to adapt
+
+
+
+
+ Construct a new adapter
+
+ the layout to adapt
+
+
+ Create the adapter for the specified .
+
+
+
+
+
+ Format the logging event as an object.
+
+ The event to format
+ returns the formatted event
+
+
+ Format the logging event as an object.
+
+
+ Uses the object supplied to
+ the constructor to perform the formatting.
+
+
+
+
+
+ A flexible layout configurable with pattern string.
+
+
+
+ The goal of this class is to a
+ as a string. The results
+ depend on the conversion pattern.
+
+
+ The conversion pattern is closely related to the conversion
+ pattern of the printf function in C. A conversion pattern is
+ composed of literal text and format control expressions called
+ conversion specifiers.
+
+
+ You are free to insert any literal text within the conversion
+ pattern.
+
+
+ Each conversion specifier starts with a percent sign (%) and is
+ followed by optional format modifiers and a conversion
+ pattern name. The conversion pattern name specifies the type of
+ data, e.g. logger, level, date, thread name. The format
+ modifiers control such things as field width, padding, left and
+ right justification. The following is a simple example.
+
+
+ Let the conversion pattern be "%-5level [%thread]: %message%newline" and assume
+ that the log4net environment was set to use a PatternLayout. Then the
+ statements
+
+
+ ILog log = LogManager.GetLogger(typeof(TestApp));
+ log.Debug("Message 1");
+ log.Warn("Message 2");
+
+ would yield the output
+
+ DEBUG [main]: Message 1
+ WARN [main]: Message 2
+
+
+ Note that there is no explicit separator between text and
+ conversion specifiers. The pattern parser knows when it has reached
+ the end of a conversion specifier when it reads a conversion
+ character. In the example above the conversion specifier
+ %-5level means the level of the logging event should be left
+ justified to a width of five characters.
+
+
+ The recognized conversion pattern names are:
+
+
+
+ Conversion Pattern Name
+ Effect
+
+
+ a
+ Equivalent to appdomain
+
+
+ appdomain
+
+ Used to output the friendly name of the AppDomain where the
+ logging event was generated.
+
+
+
+ c
+ Equivalent to logger
+
+
+ C
+ Equivalent to type
+
+
+ class
+ Equivalent to type
+
+
+ d
+ Equivalent to date
+
+
+ date
+
+
+ Used to output the date of the logging event in the local time zone.
+ To output the date in universal time use the %utcdate pattern.
+ The date conversion
+ specifier may be followed by a date format specifier enclosed
+ between braces. For example, %date{HH:mm:ss,fff} or
+ %date{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is
+ given then ISO8601 format is
+ assumed ().
+
+
+ The date format specifier admits the same syntax as the
+ time pattern string of the .
+
+
+ For better results it is recommended to use the log4net date
+ formatters. These can be specified using one of the strings
+ "ABSOLUTE", "DATE" and "ISO8601" for specifying
+ ,
+ and respectively
+ . For example,
+ %date{ISO8601} or %date{ABSOLUTE}.
+
+
+ These dedicated date formatters perform significantly
+ better than .
+
+
+
+
+ exception
+
+
+ Used to output the exception passed in with the log message.
+
+
+ If an exception object is stored in the logging event
+ it will be rendered into the pattern output with a
+ trailing newline.
+ If there is no exception then nothing will be output
+ and no trailing newline will be appended.
+ It is typical to put a newline before the exception
+ and to have the exception as the last data in the pattern.
+
+
+
+
+ F
+ Equivalent to file
+
+
+ file
+
+
+ Used to output the file name where the logging request was
+ issued.
+
+
+ WARNING Generating caller location information is
+ extremely slow. Its use should be avoided unless execution speed
+ is not an issue.
+
+
+ See the note below on the availability of caller location information.
+
+
+
+
+ identity
+
+
+ Used to output the user name for the currently active user
+ (Principal.Identity.Name).
+
+
+ WARNING Generating caller information is
+ extremely slow. Its use should be avoided unless execution speed
+ is not an issue.
+
+
+
+
+ l
+ Equivalent to location
+
+
+ L
+ Equivalent to line
+
+
+ location
+
+
+ Used to output location information of the caller which generated
+ the logging event.
+
+
+ The location information depends on the CLI implementation but
+ usually consists of the fully qualified name of the calling
+ method followed by the callers source the file name and line
+ number between parentheses.
+
+
+ The location information can be very useful. However, its
+ generation is extremely slow. Its use should be avoided
+ unless execution speed is not an issue.
+
+
+ See the note below on the availability of caller location information.
+
+
+
+
+ level
+
+
+ Used to output the level of the logging event.
+
+
+
+
+ line
+
+
+ Used to output the line number from where the logging request
+ was issued.
+
+
+ WARNING Generating caller location information is
+ extremely slow. Its use should be avoided unless execution speed
+ is not an issue.
+
+
+ See the note below on the availability of caller location information.
+
+
+
+
+ logger
+
+
+ Used to output the logger of the logging event. The
+ logger conversion specifier can be optionally followed by
+ precision specifier, that is a decimal constant in
+ brackets.
+
+
+ If a precision specifier is given, then only the corresponding
+ number of right most components of the logger name will be
+ printed. By default the logger name is printed in full.
+
+
+ For example, for the logger name "a.b.c" the pattern
+ %logger{2} will output "b.c".
+
+
+
+
+ m
+ Equivalent to message
+
+
+ M
+ Equivalent to method
+
+
+ message
+
+
+ Used to output the application supplied message associated with
+ the logging event.
+
+
+
+
+ mdc
+
+
+ The MDC (old name for the ThreadContext.Properties) is now part of the
+ combined event properties. This pattern is supported for compatibility
+ but is equivalent to property.
+
+
+
+
+ method
+
+
+ Used to output the method name where the logging request was
+ issued.
+
+
+ WARNING Generating caller location information is
+ extremely slow. Its use should be avoided unless execution speed
+ is not an issue.
+
+
+ See the note below on the availability of caller location information.
+
+
+
+
+ n
+ Equivalent to newline
+
+
+ newline
+
+
+ Outputs the platform dependent line separator character or
+ characters.
+
+
+ This conversion pattern offers the same performance as using
+ non-portable line separator strings such as "\n", or "\r\n".
+ Thus, it is the preferred way of specifying a line separator.
+
+
+
+
+ ndc
+
+
+ Used to output the NDC (nested diagnostic context) associated
+ with the thread that generated the logging event.
+
+
+
+
+ p
+ Equivalent to level
+
+
+ P
+ Equivalent to property
+
+
+ properties
+ Equivalent to property
+
+
+ property
+
+
+ Used to output the an event specific property. The key to
+ lookup must be specified within braces and directly following the
+ pattern specifier, e.g. %property{user} would include the value
+ from the property that is keyed by the string 'user'. Each property value
+ that is to be included in the log must be specified separately.
+ Properties are added to events by loggers or appenders. By default
+ the log4net:HostName property is set to the name of machine on
+ which the event was originally logged.
+
+
+ If no key is specified, e.g. %property then all the keys and their
+ values are printed in a comma separated list.
+
+
+ The properties of an event are combined from a number of different
+ contexts. These are listed below in the order in which they are searched.
+
+
+
+ the event properties
+
+ The event has that can be set. These
+ properties are specific to this event only.
+
+
+
+ the thread properties
+
+ The that are set on the current
+ thread. These properties are shared by all events logged on this thread.
+
+
+
+ the global properties
+
+ The that are set globally. These
+ properties are shared by all the threads in the AppDomain.
+
+
+
+
+
+
+
+ r
+ Equivalent to timestamp
+
+
+ t
+ Equivalent to thread
+
+
+ timestamp
+
+
+ Used to output the number of milliseconds elapsed since the start
+ of the application until the creation of the logging event.
+
+
+
+
+ thread
+
+
+ Used to output the name of the thread that generated the
+ logging event. Uses the thread number if no name is available.
+
+
+
+
+ type
+
+
+ Used to output the fully qualified type name of the caller
+ issuing the logging request. This conversion specifier
+ can be optionally followed by precision specifier, that
+ is a decimal constant in brackets.
+
+
+ If a precision specifier is given, then only the corresponding
+ number of right most components of the class name will be
+ printed. By default the class name is output in fully qualified form.
+
+
+ For example, for the class name "log4net.Layout.PatternLayout", the
+ pattern %type{1} will output "PatternLayout".
+
+
+ WARNING Generating the caller class information is
+ slow. Thus, its use should be avoided unless execution speed is
+ not an issue.
+
+
+ See the note below on the availability of caller location information.
+
+
+
+
+ u
+ Equivalent to identity
+
+
+ username
+
+
+ Used to output the WindowsIdentity for the currently
+ active user.
+
+
+ WARNING Generating caller WindowsIdentity information is
+ extremely slow. Its use should be avoided unless execution speed
+ is not an issue.
+
+
+
+
+ utcdate
+
+
+ Used to output the date of the logging event in universal time.
+ The date conversion
+ specifier may be followed by a date format specifier enclosed
+ between braces. For example, %utcdate{HH:mm:ss,fff} or
+ %utcdate{dd MMM yyyy HH:mm:ss,fff}. If no date format specifier is
+ given then ISO8601 format is
+ assumed ().
+
+
+ The date format specifier admits the same syntax as the
+ time pattern string of the .
+
+
+ For better results it is recommended to use the log4net date
+ formatters. These can be specified using one of the strings
+ "ABSOLUTE", "DATE" and "ISO8601" for specifying
+ ,
+ and respectively
+ . For example,
+ %utcdate{ISO8601} or %utcdate{ABSOLUTE}.
+
+
+ These dedicated date formatters perform significantly
+ better than .
+
+
+
+
+ w
+ Equivalent to username
+
+
+ x
+ Equivalent to ndc
+
+
+ X
+ Equivalent to mdc
+
+
+ %
+
+
+ The sequence %% outputs a single percent sign.
+
+
+
+
+
+ The single letter patterns are deprecated in favor of the
+ longer more descriptive pattern names.
+
+
+ By default the relevant information is output as is. However,
+ with the aid of format modifiers it is possible to change the
+ minimum field width, the maximum field width and justification.
+
+
+ The optional format modifier is placed between the percent sign
+ and the conversion pattern name.
+
+
+ The first optional format modifier is the left justification
+ flag which is just the minus (-) character. Then comes the
+ optional minimum field width modifier. This is a decimal
+ constant that represents the minimum number of characters to
+ output. If the data item requires fewer characters, it is padded on
+ either the left or the right until the minimum width is
+ reached. The default is to pad on the left (right justify) but you
+ can specify right padding with the left justification flag. The
+ padding character is space. If the data item is larger than the
+ minimum field width, the field is expanded to accommodate the
+ data. The value is never truncated.
+
+
+ This behavior can be changed using the maximum field
+ width modifier which is designated by a period followed by a
+ decimal constant. If the data item is longer than the maximum
+ field, then the extra characters are removed from the
+ beginning of the data item and not from the end. For
+ example, it the maximum field width is eight and the data item is
+ ten characters long, then the first two characters of the data item
+ are dropped. This behavior deviates from the printf function in C
+ where truncation is done from the end.
+
+
+ Below are various format modifier examples for the logger
+ conversion specifier.
+
+
+
+
+
Format modifier
+
left justify
+
minimum width
+
maximum width
+
comment
+
+
+
%20logger
+
false
+
20
+
none
+
+
+ Left pad with spaces if the logger name is less than 20
+ characters long.
+
+
+
+
+
%-20logger
+
true
+
20
+
none
+
+
+ Right pad with spaces if the logger
+ name is less than 20 characters long.
+
+
+
+
+
%.30logger
+
NA
+
none
+
30
+
+
+ Truncate from the beginning if the logger
+ name is longer than 30 characters.
+
+
+
+
+
%20.30logger
+
false
+
20
+
30
+
+
+ Left pad with spaces if the logger name is shorter than 20
+ characters. However, if logger name is longer than 30 characters,
+ then truncate from the beginning.
+
+
+
+
+
%-20.30logger
+
true
+
20
+
30
+
+
+ Right pad with spaces if the logger name is shorter than 20
+ characters. However, if logger name is longer than 30 characters,
+ then truncate from the beginning.
+
+
+ A instance is created by a
+ on behalf of the which then runs the
+ shell in a thread from the configured when the
+ scheduler determines that a has been triggered.
+
+
+
+
+
+
+ James House
+ Marko Lahma (.NET)
+
+
+
+ This interface should be implemented by any class whose instances are intended
+ to be executed by a thread.
+
+
+
+
+ This method has to be implemented in order that starting of the thread causes the object's
+ run method to be called in that separately executing thread.
+
+
+
+
+ Create a JobRunShell instance with the given settings.
+
+ A handle to the that produced
+ this .
+ The instance that should be made
+ available within the .
+ the that should be used by the
+ when making updates to the .
+
+
+
+ Initializes the job execution context with given scheduler and bundle.
+
+ The scheduler.
+ The bundle offired triggers.
+
+
+
+ Requests the Shutdown.
+
+
+
+
+ This method has to be implemented in order that starting of the thread causes the object's
+ run method to be called in that separately executing thread.
+
+
+
+
+ Runs begin procedures on this instance.
+
+
+
+
+ Completes the execution.
+
+ if set to true [successful execution].
+
+
+
+ Passivates this instance.
+
+
+
+
+ Completes the trigger retry loop.
+
+ The trigger.
+ The job detail.
+ The inst code.
+
+
+
+
+ Vetoeds the job retry loop.
+
+ The trigger.
+ The job detail.
+ The inst code.
+
+
+
+
+ This is the heart of Quartz, an indirect implementation of the
+ interface, containing methods to schedule s,
+ register instances, etc.
+
+
+
+
+
+ James House
+ Marko Lahma (.NET)
+
+
+
+ Starts this instance.
+
+
+
+
+ Standbies this instance.
+
+
+
+
+ Shutdowns this instance.
+
+
+
+
+ returns true if the given JobGroup
+ is paused
+
+ The scheduling context.
+
+
+
+
+
+ returns true if the given TriggerGroup
+ is paused
+
+
+
+
+
+
+
+ Initializes the class.
+
+
+
+
+ Get the global
+ that has the given name.
+
+
+
+
+
+
+ Create a with the given configuration
+ properties.
+
+
+
+
+
+ Bind the scheduler to remoting infrastructure.
+
+
+
+
+ Un-bind the scheduler from remoting infrastructure.
+
+
+
+
+ Adds an object that should be kept as reference to prevent
+ it from being garbage collected.
+
+ The obj.
+
+
+
+ Removes the object from garbae collection protected list.
+
+ The obj.
+
+
+
+
+ Starts the 's threads that fire s.
+
+ All s that have misfired will
+ be passed to the appropriate TriggerListener(s).
+
+
+
+
+
+ Temporarily halts the 's firing of s.
+
+ The scheduler is not destroyed, and can be re-started at any time.
+
+
+
+
+
+ Halts the 's firing of s,
+ and cleans up all resources associated with the QuartzScheduler.
+ Equivalent to .
+
+ The scheduler cannot be re-started.
+
+
+
+
+
+ Halts the 's firing of s,
+ and cleans up all resources associated with the QuartzScheduler.
+
+ The scheduler cannot be re-started.
+
+
+
+ if the scheduler will not allow this method
+ to return until all currently executing jobs have completed.
+
+
+
+
+ Validates the state.
+
+
+
+
+ Add the identified by the given
+ to the Scheduler, and
+ associate the given with it.
+
+ If the given Trigger does not reference any , then it
+ will be set to reference the Job passed with it into this method.
+
+
+
+
+
+ Schedule the given with the
+ identified by the 's settings.
+
+
+
+
+ Add the given to the Scheduler - with no associated
+ . The will be 'dormant' until
+ it is scheduled with a , or
+ is called for it.
+
+ The must by definition be 'durable', if it is not,
+ SchedulerException will be thrown.
+
+
+
+
+
+ Delete the identified from the Scheduler - and any
+ associated s.
+
+ true if the Job was found and deleted.
+
+
+
+ Remove the indicated from the
+ scheduler.
+
+
+
+
+ Remove (delete) the with the
+ given name, and store the new given one - which must be associated
+ with the same job.
+
+ The scheduling context.
+ The name of the to be removed.
+ The group name of the to be removed.
+ The new to be stored.
+
+ if a with the given
+ name and group was not found and removed from the store, otherwise
+ the first fire time of the newly scheduled trigger.
+
+
+
+
+ Creates a new positive random number
+
+ The last random obtained
+ Returns a new positive random number
+
+
+
+ Trigger the identified (Execute it now) - with a non-volatile trigger.
+
+
+
+
+ Trigger the identified (Execute it
+ now) - with a volatile trigger.
+
+
+
+
+ Pause the with the given name.
+
+
+
+
+ Pause all of the s in the given group.
+
+
+
+
+ Pause the with the given
+ name - by pausing all of its current s.
+
+
+
+
+ Pause all of the s in the
+ given group - by pausing all of their s.
+
+
+
+
+ Resume (un-pause) the with the given
+ name.
+
+ If the missed one or more fire-times, then the
+ 's misfire instruction will be applied.
+
+
+
+
+
+ Resume (un-pause) all of the s in the
+ given group.
+
+ If any missed one or more fire-times, then the
+ 's misfire instruction will be applied.
+
+
+
+
+
+ Gets the paused trigger groups.
+
+ The the job scheduling context.
+
+
+
+
+ Resume (un-pause) the with
+ the given name.
+
+ If any of the 's s missed one
+ or more fire-times, then the 's misfire
+ instruction will be applied.
+
+
+
+
+
+ Resume (un-pause) all of the s
+ in the given group.
+
+ If any of the s had s that
+ missed one or more fire-times, then the 's
+ misfire instruction will be applied.
+
+
+
+
+
+ Pause all triggers - equivalent of calling
+ on every group.
+
+ When is called (to un-pause), trigger misfire
+ instructions WILL be applied.
+
+
+
+
+
+
+
+ Resume (un-pause) all triggers - equivalent of calling
+ on every group.
+
+ If any missed one or more fire-times, then the
+ 's misfire instruction will be applied.
+
+
+
+
+
+
+ Get the names of all known groups.
+
+
+
+
+ Get the names of all the s in the
+ given group.
+
+
+
+
+ Get all s that are associated with the
+ identified .
+
+
+
+
+ Get the names of all known
+ groups.
+
+
+
+
+ Get the names of all the s in
+ the given group.
+
+
+
+
+ Get the for the
+ instance with the given name and group.
+
+
+
+
+ Get the instance with the given name and
+ group.
+
+
+
+
+ Get the current state of the identified .
+
+
+
+
+
+
+
+
+ Add (register) the given to the Scheduler.
+
+
+
+
+ Delete the identified from the Scheduler.
+
+ true if the Calendar was found and deleted.
+
+
+
+ Get the instance with the given name.
+
+
+
+
+ Get the names of all registered s.
+
+
+
+
+ Add the given to the
+ 'sglobal list.
+
+ Listeners in the 'global' list receive notification of execution events
+ for ALL s.
+
+
+
+
+
+ Add the given to the
+ 's list, of registered s.
+
+
+
+
+ Remove the given from the
+ 's list of global listeners.
+
+
+ true if the identifed listener was found in the list, and removed.
+
+
+
+
+ Remove the identifed from the 's
+ list of global listeners.
+
+
+ true if the identifed listener was found in the list, and removed.
+
+
+
+ Remove the identifed from
+ the 's list of registered listeners.
+
+
+ true if the identifed listener was found in the list, and removed.
+
+
+
+
+ Get the non-global that has the given name.
+
+
+
+
+ Add the given to the
+ 'sglobal list.
+
+ Listeners in the 'global' list receive notification of execution events
+ for ALL s.
+
+
+
+
+
+ Add the given to the
+ 's list, of registered s.
+
+
+
+
+ Remove the given from
+ the 's list of global listeners.
+
+
+ true if the identifed listener was found in the list, and removed.
+
+
+
+
+ Remove the identifed from the 's
+ list of global listeners.
+
+
+ true if the identifed listener was found in the list, and removed
+
+
+
+ Remove the identifed
+ from the 's list of registered listeners.
+
+
+ true if the identifed listener was found in the list, and removed.
+
+
+
+
+ Get the non-global
+ that has the given name.
+
+
+
+
+ Get the global that
+ has the given name.
+
+
+
+
+
+
+ Register the given with the
+ .
+
+
+
+
+ Remove the given from the
+ .
+
+
+ true if the identifed listener was found in the list, and removed.
+
+
+
+
+ Notifies the job store job complete.
+
+ The job scheduling context.
+ The trigger.
+ The detail.
+ The instruction code.
+
+
+
+ Notifies the scheduler thread.
+
+
+
+
+ Notifies the trigger listeners about fired trigger.
+
+ The job execution context.
+
+
+
+
+ Notifies the trigger listeners about misfired trigger.
+
+ The trigger.
+
+
+
+ Notifies the trigger listeners of completion.
+
+ The job executution context.
+ The instruction code to report to triggers.
+
+
+
+ Notifies the job listeners about job to be executed.
+
+ The jec.
+
+
+
+ Notifies the job listeners that job exucution was vetoed.
+
+ The job execution context.
+
+
+
+ Notifies the job listeners that job was executed.
+
+ The jec.
+ The je.
+
+
+
+ Notifies the scheduler listeners about scheduler error.
+
+ The MSG.
+ The se.
+
+
+
+ Notifies the scheduler listeners about job that was scheduled.
+
+ The trigger.
+
+
+
+ Notifies the scheduler listeners about job that was unscheduled.
+
+ Name of the trigger.
+ The trigger group.
+
+
+
+ Notifies the scheduler listeners about finalized trigger.
+
+ The trigger.
+
+
+
+ Notifies the scheduler listeners about paused trigger.
+
+ The name.
+ The group.
+
+
+
+ Notifies the scheduler listeners resumed trigger.
+
+ The name.
+ The group.
+
+
+
+ Notifies the scheduler listeners about paused job.
+
+ The name.
+ The group.
+
+
+
+ Notifies the scheduler listeners about resumed job.
+
+ The name.
+ The group.
+
+
+
+ Notifies the scheduler listeners about scheduler shutdown.
+
+
+
+
+ Interrupt all instances of the identified InterruptableJob.
+
+
+
+
+ Obtains a lifetime service object to control the lifetime policy for this instance.
+
+
+
+
+ Gets the version of the Quartz Scheduler.
+
+ The version.
+
+
+
+ Gets the version major.
+
+ The version major.
+
+
+
+ Gets the version minor.
+
+ The version minor.
+
+
+
+ Gets the version iteration.
+
+ The version iteration.
+
+
+
+ Gets the scheduler signaler.
+
+ The scheduler signaler.
+
+
+
+ Returns the name of the .
+
+
+
+
+ Returns the instance Id of the .
+
+
+
+
+ Returns the of the .
+
+
+
+
+ Gets or sets a value indicating whether to signal on scheduling change.
+
+
+ true if schduler should signal on scheduling change; otherwise, false.
+
+
+
+
+ Reports whether the is paused.
+
+
+
+
+ Gets the job store class.
+
+ The job store class.
+
+
+
+ Gets the thread pool class.
+
+ The thread pool class.
+
+
+
+ Gets the size of the thread pool.
+
+ The size of the thread pool.
+
+
+
+ Reports whether the has been Shutdown.
+
+
+
+
+ Return a list of objects that
+ represent all currently executing Jobs in this Scheduler instance.
+
+ This method is not cluster aware. That is, it will only return Jobs
+ currently executing in this Scheduler instance, not across the entire
+ cluster.
+
+
+ Note that the list returned is an 'instantaneous' snap-shot, and that as
+ soon as it's returned, the true list of executing jobs may be different.
+
+
+
+
+
+ Get a List containing all of the
+ s in the 'sglobal list.
+
+
+
+
+ Get a Set containing the names of all the non-global
+ s registered with the .
+
+
+
+
+ Get a list containing all of the
+ s in the 'sglobal list.
+
+
+
+
+ Get a Set containing the names of all the non-global
+ s registered with the .
+
+
+
+
+ Get a List containing all of the
+ s registered with the .
+
+
+
+
+ Gets or sets the job factory.
+
+ The job factory.
+
+
+
+ Gets the running since.
+
+ The running since.
+
+
+
+ Gets the number of jobs executed.
+
+ The number of jobs executed.
+
+
+
+ Gets a value indicating whether this scheduler supports persistence.
+
+ true if supports persistence; otherwise, false.
+
+
+
+ Helper class to start scheduler in a delayed fashion.
+
+
+
+
+ ErrorLogger - Scheduler Listener Class
+
+
+
+
+ A helpful abstract base class for implementors of
+ .
+
+
+ The methods in this class are empty so you only need to override the
+ subset for the events you care about.
+
+
+
+
+
+ The interface to be implemented by classes that want to be informed of major
+ events.
+
+
+
+
+ James House
+
+
+
+ Called by the when a
+ is scheduled.
+
+
+
+
+ Called by the when a
+ is unscheduled.
+
+
+
+
+ Called by the when a
+ has reached the condition in which it will never fire again.
+
+
+
+
+ Called by the when a
+ or group of s has been paused.
+
+ If a group was paused, then the parameter
+ will be null.
+
+
+ Name of the trigger.
+ The trigger group.
+
+
+
+ Called by the when a
+ or group of s has been un-paused.
+
+ If a group was resumed, then the parameter
+ will be null.
+
+
+ Name of the trigger.
+ The trigger group.
+
+
+
+ Called by the when a
+ or group of s has been paused.
+
+ If a group was paused, then the parameter will be
+ null. If all jobs were paused, then both parameters will be null.
+
+
+ Name of the job.
+ The job group.
+
+
+
+ Called by the when a
+ or group of s has been un-paused.
+
+ If a group was resumed, then the parameter will
+ be null. If all jobs were paused, then both parameters will be null.
+
+
+ The job group.
+
+
+
+ Called by the when a serious error has
+ occured within the scheduler - such as repeated failures in the ,
+ or the inability to instantiate a instance when its
+ has fired.
+
+ The property of the given SchedulerException
+ can be used to determine more specific information about the type of
+ error that was encountered.
+
+
+
+
+
+ Called by the to inform the listener
+ that it has Shutdown.
+
+
+
+
+ Get the for this
+ type's category. This should be used by subclasses for logging.
+
+
+
+
+ The interface to be implemented by classes that want to be informed when a
+ executes. In general, applications that use a
+ will not have use for this mechanism.
+
+
+
+
+
+
+ James House
+
+
+
+ Called by the when a
+ is about to be executed (an associated
+ has occured).
+
+ This method will not be invoked if the execution of the Job was vetoed
+ by a .
+
+
+
+
+
+
+ Called by the when a
+ was about to be executed (an associated
+ has occured), but a vetoed it's
+ execution.
+
+
+
+
+
+ Called by the after a
+ has been executed, and be for the associated 's
+ method has been called.
+
+
+
+
+ Get the name of the .
+
+
+
+
+ Contains all of the resources (,,
+ etc.) necessary to create a instance.
+
+
+ James House
+ Marko Lahma (.NET)
+
+
+
+ Gets the unique identifier.
+
+ Name of the scheduler.
+ The scheduler instance id.
+
+
+
+
+ Gets the unique identifier.
+
+
+
+
+
+ Add the given for the
+ to use. This method expects the plugin's
+ "initialize" method to be invoked externally (either before or after
+ this method is called).
+
+
+
+
+
+ Get or set the name for the .
+
+
+ if name is null or empty.
+
+
+
+
+ Get or set the instance Id for the .
+
+
+ if name is null or empty.
+
+
+
+
+ Get or set the name for the .
+
+
+ if name is null or empty.
+
+
+
+
+ Get or set the for the
+ to use.
+
+
+ if threadPool is null.
+
+
+
+
+ Get or set the for the
+ to use.
+
+
+ if jobStore is null.
+
+
+
+
+ Get or set the for the
+ to use.
+
+
+ if jobRunShellFactory is null.
+
+
+
+
+ Get the of all
+ s for the
+ to use.
+
+
+
+
+
+ Gets or sets a value indicating whether to make scheduler thread daemon.
+
+
+ true if scheduler should be thread daemon; otherwise, false.
+
+
+
+
+ Gets or sets the scheduler exporter.
+
+ The scheduler exporter.
+
+
+
+ The thread responsible for performing the work of firing
+ s that are registered with the .
+
+
+
+
+ James House
+ Marko Lahma (.NET)
+
+
+
+ Support class used to handle threads
+
+
+
+
+ The instance of System.Threading.Thread
+
+
+
+
+ Initializes a new instance of the QuartzThread class
+
+
+
+
+ Initializes a new instance of the Thread class.
+
+ The name of the thread
+
+
+
+ Initializes a new instance of the Thread class.
+
+ A ThreadStart delegate that references the methods to be invoked when this thread begins executing
+
+
+
+ Initializes a new instance of the Thread class.
+
+ A ThreadStart delegate that references the methods to be invoked when this thread begins executing
+ The name of the thread
+
+
+
+ This method has no functionality unless the method is overridden
+
+
+
+
+ Causes the operating system to change the state of the current thread instance to ThreadState.Running
+
+
+
+
+ Interrupts a thread that is in the WaitSleepJoin thread state
+
+
+
+
+ Blocks the calling thread until a thread terminates
+
+
+
+
+ Blocks the calling thread until a thread terminates or the specified time elapses
+
+ Time of wait in milliseconds
+
+
+
+ Blocks the calling thread until a thread terminates or the specified time elapses
+
+ Time of wait in milliseconds
+ Time of wait in nanoseconds
+
+
+
+ Resumes a thread that has been suspended
+
+
+
+
+ Raises a ThreadAbortException in the thread on which it is invoked,
+ to begin the process of terminating the thread. Calling this method
+ usually terminates the thread
+
+
+
+
+ Raises a ThreadAbortException in the thread on which it is invoked,
+ to begin the process of terminating the thread while also providing
+ exception information about the thread termination.
+ Calling this method usually terminates the thread.
+
+ An object that contains application-specific information, such as state, which can be used by the thread being aborted
+
+
+
+ Suspends the thread, if the thread is already suspended it has no effect
+
+
+
+
+ Obtain a string that represents the current object
+
+ A string that represents the current object
+
+
+
+ Gets the currently running thread
+
+ The currently running thread
+
+
+
+ Gets the current thread instance
+
+
+
+
+ Gets or sets the name of the thread
+
+
+
+
+ Gets or sets a value indicating the scheduling priority of a thread
+
+
+
+
+ Gets a value indicating the execution status of the current thread
+
+
+
+
+ Gets or sets a value indicating whether or not a thread is a background thread.
+
+
+
+
+ Gets the randomized idle wait time.
+
+ The randomized idle wait time.
+
+
+
+ Construct a new for the given
+ as a non-daemon
+ with normal priority.
+
+
+
+
+ Construct a new for the given
+ as a with the given
+ attributes.
+
+
+
+
+ Signals the main processing loop to pause at the next possible point.
+
+
+
+
+ Signals the main processing loop to pause at the next possible point.
+
+
+
+
+ Signals the main processing loop that a change in scheduling has been
+ made - in order to interrupt any sleeping that may be occuring while
+ waiting for the fire time to arrive.
+
+
+ the time when the newly scheduled trigger
+ will fire. If this method is being called do to some other even (rather
+ than scheduling a trigger), the caller should pass null.
+
+
+
+
+ The main processing loop of the .
+
+
+
+
+ Trigger retry loop that is executed on error condition.
+
+ The bndle.
+
+
+
+ Releases the trigger retry loop.
+
+ The trigger.
+
+
+
+ Gets the log.
+
+ The log.
+
+
+
+ Sets the idle wait time.
+
+ The idle wait time.
+
+
+
+ Gets a value indicating whether this is paused.
+
+ true if paused; otherwise, false.
+
+
+
+ Gets or sets the db failure retry interval.
+
+ The db failure retry interval.
+
+
+
+ An interface to be used by instances in order to
+ communicate signals back to the .
+
+ James House
+ Marko Lahma (.NET)
+
+
+
+ An interface to be used by instances in order to
+ communicate signals back to the .
+
+ James House
+
+
+
+ Notifies the scheduler about misfired trigger.
+
+ The trigger that misfired.
+
+
+
+ Notifies the scheduler about finalized trigger.
+
+ The trigger that has finalized.
+
+
+
+ Signals the scheduling change.
+
+
+
+
+ Notifies the scheduler about misfired trigger.
+
+ The trigger that misfired.
+
+
+
+ Notifies the scheduler about finalized trigger.
+
+ The trigger that has finalized.
+
+
+
+ Signals the scheduling change.
+
+
+
+
+ An object used to pass information about the 'client' to the .
+
+
+ James House
+ Marko Lahma (.NET)
+
+
+
+ get the instanceId in the cluster.
+
+
+ Set the instanceId.
+
+
+
+
+
+ Metadata information about specific ADO.NET driver library. Metadata is used to
+ create correct types of object instances to interact with the underlying
+ database.
+
+
+
+
+ Initializes this instance. Parses information and initializes startup
+ values.
+
+
+
+
+ Gets the name of the parameter which includes the parameter prefix for this
+ database.
+
+ Name of the parameter.
+
+
+ Gets or sets the name of the assembly that holds the connection library.
+ The name of the assembly.
+
+
+
+ Gets or sets the name of the product.
+
+ The name of the product.
+
+
+
+ Gets or sets the type of the connection.
+
+ The type of the connection.
+
+
+
+ Gets or sets the type of the command.
+
+ The type of the command.
+
+
+
+ Gets or sets the type of the parameter.
+
+ The type of the parameter.
+
+
+
+ Gets the type of the command builder.
+
+ The type of the command builder.
+
+
+ Gets the command builder's derive parameters method.
+ The command builder derive parameters method.
+
+
+
+ Gets or sets the parameter name prefix.
+
+ The parameter name prefix.
+
+
+
+ Gets or sets the type of the exception that is thrown when using driver
+ library.
+
+ The type of the exception.
+
+
+
+ Gets or sets a value indicating whether parameters are bind by name when using
+ ADO.NET parameters.
+
+ true if parameters are bind by name; otherwise, false.
+
+
+ Gets or sets the type of the database parameters.
+ The type of the parameter db.
+
+
+
+ Gets the parameter db type property.
+
+ The parameter db type property.
+
+
+
+ Gets the parameter is nullable property.
+
+ The parameter is nullable property.
+
+
+
+ Gets or sets the type of the db binary column. This is a string representation of
+ Enum element because this information is database driver specific.
+
+ The type of the db binary.
+
+
+ Gets the type of the db binary.
+ The type of the db binary.
+
+
+
+ Sets the name of the parameter db type property.
+
+ The name of the parameter db type property.
+
+
+
+ Gets or sets a value indicating whether [use parameter name prefix in parameter collection].
+
+
+ true if [use parameter name prefix in parameter collection]; otherwise, false.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns a new command object for executing SQL statments/Stored Procedures
+ against the database.
+
+ An new
+
+
+
+ Returns a new instance of the providers CommandBuilder class.
+
+ In .NET 1.1 there was no common base class or interface
+ for command builders, hence the return signature is object to
+ be portable (but more loosely typed) across .NET 1.1/2.0
+ A new Command Builder
+
+
+
+ Returns a new connection object to communicate with the database.
+
+ A new
+
+
+
+ Returns a new parameter object for binding values to parameter
+ placeholders in SQL statements or Stored Procedure variables.
+
+ A new
+
+
+
+ Shutdowns this instance.
+
+
+
+
+ Connection string used to create connections.
+
+
+
+
+ Registers DB metadata information for given provider name.
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ Name of the db provider.
+ The connection string.
+
+
+
+ Returns a new command object for executing SQL statments/Stored Procedures
+ against the database.
+
+ An new
+
+
+
+ Returns a new instance of the providers CommandBuilder class.
+
+ A new Command Builder
+ In .NET 1.1 there was no common base class or interface
+ for command builders, hence the return signature is object to
+ be portable (but more loosely typed) across .NET 1.1/2.0
+
+
+
+ Returns a new connection object to communicate with the database.
+
+ A new
+
+
+
+ Returns a new parameter object for binding values to parameter
+ placeholders in SQL statements or Stored Procedure variables.
+
+ A new
+
+
+
+ Shutdowns this instance.
+
+
+
+
+ Connection string used to create connections.
+
+
+
+
+
+ Gets the metadata.
+
+ The metadata.
+
+
+
+ Summary description for DbProviderFactory.
+
+
+
+
+ This interface can be implemented by any
+ class that needs to use the constants contained herein.
+
+ Jeffrey Wescott
+ James House
+
+
+ @deprecated Whether a trigger has misfired is no longer a state, but
+ rather now identified dynamically by whether the trigger's next fire
+ time is more than the misfire threshold time in the past.
+
+
+
+ This class contains utility functions for use in all delegate classes.
+
+ Jeffrey Wescott
+
+
+
+ Replace the table prefix in a query by replacing any occurrences of
+ "{0}" with the table prefix.
+
+ The unsubstitued query
+ The table prefix
+ The query, with proper table prefix substituted
+
+
+
+ Obtain a unique key for a given job.
+
+ The job name
+ The group containing the job
+
+ A unique key
+
+
+
+ Obtain a unique key for a given trigger.
+
+ The trigger name
+ The group containing the trigger
+ A unique key
+
+
+
+ Base class for database based lock handlers for providing thread/resource locking
+ in order to protect resources from being altered by multiple threads at the
+ same time.
+
+
+
+
+ This class extends
+ to include the query string constants in use by the
+ class.
+
+ Jeffrey Wescott
+
+
+
+ An interface for providing thread/resource locking in order to protect
+ resources from being altered by multiple threads at the same time.
+
+ James House
+
+
+
+ Grants a lock on the identified resource to the calling thread (blocking
+ until it is available).
+
+ true if the lock was obtained.
+
+
+
+ Release the lock on the identified resource if it is held by the calling
+ thread.
+
+
+
+
+ Determine whether the calling thread owns a lock on the identified
+ resource.
+
+
+
+
+ Whether this Semaphore implementation requires a database connection for
+ its lock management operations.
+
+
+
+
+
+
+
+ Interface for Quartz objects that need to know what the table prefix of
+ the tables used by a ADO.NET JobStore is.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The table prefix.
+ The SQL.
+ The default SQL.
+ The db provider.
+
+
+
+ Execute the SQL that will lock the proper database row.
+
+
+
+
+
+
+
+ Grants a lock on the identified resource to the calling thread (blocking
+ until it is available).
+
+
+
+
+ true if the lock was obtained.
+
+
+
+ Release the lock on the identified resource if it is held by the calling
+ thread.
+
+
+
+
+
+
+ Determine whether the calling thread owns a lock on the identified
+ resource.
+
+
+
+
+
+
+
+ Gets or sets the lock owners.
+
+ The lock owners.
+
+
+
+ Gets the log.
+
+ The log.
+
+
+
+ This Semaphore implementation does use the database.
+
+
+
+
+ Gets or sets the table prefix.
+
+ The table prefix.
+
+
+
+ A FirebirdDelegate specific driver delegate.
+
+ Marko Lahma
+
+
+
+ This is meant to be an abstract base class for most, if not all,
+ implementations. Subclasses should override only those methods that need
+ special handling for the DBMS driver in question.
+
+ Jeffrey Wescott
+ James House
+ Marko Lahma (.NET)
+
+
+
+ This is the base interface for all driver delegate classes.
+
+
+
+ This interface is very similar to the
+ interface except each method has an additional
+ parameter.
+
+
+ Unless a database driver has some extremely-DB-specific
+ requirements, any IDriverDelegate implementation classes should extend the
+ class.
+
+
+ Jeffrey Wescott
+ James House
+ Marko Lahma (.NET)
+
+
+
+ Update all triggers having one of the two given states, to the given new
+ state.
+
+ The DB Connection
+ The new state for the triggers
+ The first old state to update
+ The second old state to update
+ Number of rows updated
+
+
+
+ Get the names of all of the triggers that have misfired - according to
+ the given timestamp.
+
+ The DB Connection
+ The timestamp.
+ An array of objects
+
+
+
+ Get the names of all of the triggers in the given state that have
+ misfired - according to the given timestamp.
+
+ The DB Connection
+ The state.
+ The time stamp.
+ An array of objects
+
+
+
+ Get the names of all of the triggers in the given group and state that
+ have misfired - according to the given timestamp.
+
+ The DB Connection
+ Name of the group.
+ The state.
+ The timestamp.
+ An array of objects
+
+
+
+ Select all of the triggers for jobs that are requesting recovery. The
+ returned trigger objects will have unique "recoverXXX" trigger names and
+ will be in the trigger group.
+
+
+ In order to preserve the ordering of the triggers, the fire time will be
+ set from the ColumnFiredTime column in the TableFiredTriggers
+ table. The caller is responsible for calling
+ on each returned trigger. It is also up to the caller to insert the
+ returned triggers to ensure that they are fired.
+
+ The DB Connection
+ An array of objects
+
+
+
+ Delete all fired triggers.
+
+ The DB Connection
+ The number of rows deleted
+
+
+
+ Delete all fired triggers of the given instance.
+
+ The DB Connection
+ The instance id.
+ The number of rows deleted
+
+
+
+ Delete all volatile fired triggers.
+
+ The DB Connection
+ The number of rows deleted
+
+
+
+ Get the names of all of the triggers that are volatile.
+
+ The DB Connection
+ An array of see cref="Key" /> objects.
+
+
+
+ Get the names of all of the jobs that are volatile.
+
+ The DB Connection
+ An array of objects.
+
+
+
+ Insert the job detail record.
+
+ The DB Connection
+ The job to insert.
+ Number of rows inserted.
+
+
+
+ Update the job detail record.
+
+ The DB Connection.
+ The job to update.
+ Number of rows updated.
+
+
+
+ Get the names of all of the triggers associated with the given job.
+
+
+
+ The DB Connection
+ The job name
+ The job group
+
+
+
+ Delete all job listeners for the given job.
+
+ The DB Connection
+ The name of the job
+ The group containing the job
+ The number of rows deleted
+
+
+
+ Delete the job detail record for the given job.
+
+ The DB Connection
+ the name of the job
+ Name of the group.
+ the number of rows deleted
+
+
+
+ Check whether or not the given job is stateful.
+
+ The DB Connection
+ The name of the job
+ The group containing the job
+ true if the job exists and is stateful, false otherwise
+
+
+
+ Check whether or not the given job exists.
+
+ The DB Connection
+ Name of the job.
+ Name of the group.
+ true if the job exists, false otherwise
+
+
+
+ Update the job data map for the given job.
+
+ The DB Connection
+ The job.
+ the number of rows updated
+
+
+
+ Associate a listener with a job.
+
+ The DB Connection
+ The job to associate with the listener.
+ The listener to insert.
+ The number of rows inserted.
+
+
+
+ Get all of the listeners for a given job.
+
+
+
+ The DB Connection
+ The job name whose listeners are wanted
+ The group containing the job
+ array of listener names
+
+
+
+ Select the JobDetail object for a given job name / group name.
+
+ The DB Connection
+ The job name whose listeners are wanted
+ The group containing the job
+ The class load helper.
+ The populated JobDetail object
+
+
+
+ Select the total number of jobs stored.
+
+ The DB Connection
+ the total number of jobs stored
+
+
+
+ Select all of the job group names that are stored.
+
+ The DB Connection.
+ an array of group names
+
+
+
+ Select all of the jobs contained in a given group.
+
+ The DB Connection
+ The group containing the jobs
+ an array of job names
+
+
+
+ Insert the base trigger data.
+
+ The DB Connection
+ The trigger to insert.
+ The state that the trigger should be stored in.
+ The job detail.
+ The number of rows inserted
+
+
+
+ Insert the simple trigger data.
+
+ The DB Connection
+ The trigger to insert
+ The number of rows inserted
+
+
+
+ Insert the blob trigger data.
+
+ The DB Connection
+ The trigger to insert
+ The number of rows inserted
+
+
+
+ Insert the cron trigger data.
+
+ the DB Connection
+ The trigger.
+ the number of rows inserted
+
+
+
+ Update the base trigger data.
+
+ the DB Connection
+ The trigger.
+ The state.
+ The job detail.
+ the number of rows updated
+
+
+
+ Update the simple trigger data.
+
+ the DB Connection
+ The trigger.
+ the number of rows updated
+
+
+
+ Update the cron trigger data.
+
+ the DB Connection
+ The trigger.
+ the number of rows updated
+
+
+
+ Update the blob trigger data.
+
+ the DB Connection
+ The trigger.
+ the number of rows updated
+
+
+
+ Check whether or not a trigger exists.
+
+ the DB Connection
+ Name of the trigger.
+ Name of the group.
+ the number of rows updated
+
+
+
+ Update the state for a given trigger.
+
+ The DB Connection
+ The name of the trigger.
+ The group containing the trigger.
+ The new state for the trigger.
+ the number of rows updated
+
+
+
+ Update the given trigger to the given new state, if it is in the given
+ old state.
+
+ The DB connection
+ The name of the trigger.
+ The group containing the trigger
+ The new state for the trigger
+ The old state the trigger must be in
+ int the number of rows updated
+
+
+
+ Update the given trigger to the given new state, if it is one of the
+ given old states.
+
+ The DB connection
+ The name of the trigger
+ The group containing the trigger
+ The new state for the trigger
+ One of the old state the trigger must be in
+ One of the old state the trigger must be in
+ One of the old state the trigger must be in
+
+ int the number of rows updated
+
+ SQLException
+
+
+
+ Update the all triggers to the given new state, if they are in one of
+ the given old states AND its next fire time is before the given time.
+
+ The DB connection
+ The new state for the trigger
+ One of the old state the trigger must be in
+ One of the old state the trigger must be in
+ The time before which the trigger's next fire time must be
+ int the number of rows updated
+
+
+
+ Update all triggers in the given group to the given new state, if they
+ are in one of the given old states.
+
+ The DB connection
+ The group containing the trigger
+ The new state for the trigger
+ One of the old state the trigger must be in
+ One of the old state the trigger must be in
+ One of the old state the trigger must be in
+ The number of rows updated
+
+
+
+ Update all of the triggers of the given group to the given new state, if
+ they are in the given old state.
+
+ The DB connection
+ The group containing the triggers
+ The new state for the trigger group
+ The old state the triggers must be in.
+ int the number of rows updated
+
+
+
+ Update the states of all triggers associated with the given job.
+
+ The DB Connection
+ The name of the job.
+ The group containing the job.
+ The new state for the triggers.
+ The number of rows updated
+
+
+
+ Update the states of any triggers associated with the given job, that
+ are the given current state.
+
+ The DB Connection
+ The name of the job
+ The group containing the job
+ The new state for the triggers
+ The old state of the triggers
+ the number of rows updated
+
+
+
+ Delete all of the listeners associated with a given trigger.
+
+ The DB Connection
+ The name of the trigger whose listeners will be deleted
+ The name of the group containing the trigger
+ the number of rows deleted
+
+
+
+ Associate a listener with the given trigger.
+
+ The DB Connectio
+ The trigger
+ The name of the listener to associate with the trigger
+ the number of rows inserted
+
+
+
+ Select the listeners associated with a given trigger.
+
+ The DB Connection
+ The name of the trigger
+ The group containing the trigger
+ array of trigger listener names
+
+
+
+ Delete the simple trigger data for a trigger.
+
+ The DB Connection
+ The name of the trigger
+ The group containing the trigger
+ The number of rows deleted
+
+
+
+ Delete the BLOB trigger data for a trigger.
+
+ The DB Connection
+ The name of the trigger
+ The group containing the trigger
+ The number of rows deleted
+
+
+
+ Delete the cron trigger data for a trigger.
+
+ The DB Connection
+ The name of the trigger
+ The group containing the trigger
+ the number of rows deleted
+
+
+
+ Delete the base trigger data for a trigger.
+
+ The DB Connection
+ The name of the trigger
+ The group containing the trigger
+ the number of rows deleted
+
+
+
+ Select the number of triggers associated with a given job.
+
+ The DB Connection
+ The name of the job
+ The group containing the job
+ the number of triggers for the given job
+
+
+
+ Select the job to which the trigger is associated.
+
+ The DB Connection
+ The name of the trigger
+ The group containing the trigger
+ The load helper.
+
+ The object associated with the given trigger
+
+
+
+
+ Select the stateful jobs which are referenced by triggers in the given
+ trigger group.
+
+ The DB Connection
+ The trigger group.
+ a List of Keys to jobs.
+
+
+
+ Select the triggers for a job>
+
+ The DB Connection
+ The name of the trigger
+ The group containing the trigger
+ an array of objects associated with a given job.
+
+
+
+ Select the triggers for a calendar
+
+ The DB Connection.
+ Name of the calendar.
+
+ An array of objects associated with a given job.
+
+
+
+
+ Select a trigger.
+
+ The DB Connection.
+ The name of the trigger.
+ The group containing the trigger.
+ The object.
+
+
+
+
+ Select a trigger's JobDataMap.
+
+ The DB Connection.
+ The name of the trigger.
+ The group containing the trigger.
+ The of the Trigger, never null, but possibly empty.
+
+
+
+ Select a trigger's state value.
+
+ The DB Connection.
+ The name of the trigger.
+ The group containing the trigger.
+ The object.
+
+
+
+ Select a triggers status (state and next fire time).
+
+ The DB Connection.
+ The name of the trigger.
+ The group containing the trigger.
+ A object, or null
+
+
+
+ Select the total number of triggers stored.
+
+ The DB Connection.
+ The total number of triggers stored.
+
+
+
+ Select all of the trigger group names that are stored.
+
+ The DB Connection.
+ An array of group names.
+
+
+
+ Select all of the triggers contained in a given group.
+
+ The DB Connection.
+ The group containing the triggers.
+ An array of trigger names.
+
+
+
+ Select all of the triggers in a given state.
+
+ The DB Connection.
+ The state the triggers must be in.
+ An array of trigger s.
+
+
+
+ Inserts the paused trigger group.
+
+ The conn.
+ Name of the group.
+
+
+
+
+ Deletes the paused trigger group.
+
+ The conn.
+ Name of the group.
+
+
+
+
+ Deletes all paused trigger groups.
+
+ The conn.
+
+
+
+
+ Determines whether the specified trigger group is paused.
+
+ The conn.
+ Name of the group.
+
+ true if trigger group is paused; otherwise, false.
+
+
+
+
+ Selects the paused trigger groups.
+
+ The DB Connection.
+
+
+
+
+ Determines whether given trigger group already exists.
+
+ The conn.
+ Name of the group.
+
+ true if trigger group exists; otherwise, false.
+
+
+
+
+ Insert a new calendar.
+
+ The DB Connection.
+ The name for the new calendar.
+ The calendar.
+ The number of rows inserted.
+
+
+
+ Update a calendar.
+
+ The DB Connection.
+ The name for the new calendar.
+ The calendar.
+ The number of rows updated.
+
+
+
+ Check whether or not a calendar exists.
+
+ The DB Connection.
+ The name of the calendar.
+ true if the trigger exists, false otherwise.
+
+
+
+ Select a calendar.
+
+ The DB Connection.
+ The name of the calendar.
+ The Calendar.
+
+
+
+ Check whether or not a calendar is referenced by any triggers.
+
+ The DB Connection.
+ The name of the calendar.
+ true if any triggers reference the calendar, false otherwise
+
+
+
+ Delete a calendar.
+
+ The DB Connection
+ The name of the trigger.
+ The number of rows deleted.
+
+
+
+ Select the total number of calendars stored.
+
+ The DB Connection
+ The total number of calendars stored.
+
+
+
+ Select all of the stored calendars.
+
+ The DB Connection
+ An array of calendar names.
+
+
+
+ Select the trigger that will be fired at the given fire time.
+
+ The DB Connection
+ The time that the trigger will be fired.
+
+ A representing the
+ trigger that will be fired at the given fire time, or null if no
+ trigger will be fired at that time
+
+
+
+
+ Insert a fired trigger.
+
+ The DB Connection
+ The trigger.
+ The state that the trigger should be stored in.
+ The job detail.
+ The number of rows inserted.
+
+
+
+ Select the states of all fired-trigger records for a given trigger, or
+ trigger group if trigger name is .
+
+ The DB Connection
+ Name of the trigger.
+ Name of the group.
+ A list of FiredTriggerRecord objects.
+
+
+
+ Select the states of all fired-trigger records for a given job, or job
+ group if job name is .
+
+ The DB Connection
+ Name of the job.
+ Name of the group.
+ A List of FiredTriggerRecord objects.
+
+
+
+ Select the states of all fired-trigger records for a given scheduler
+ instance.
+
+ The DB Connection
+ Name of the instance.
+ A list of FiredTriggerRecord objects.
+
+
+
+ Delete a fired trigger.
+
+ The DB Connection
+ The fired trigger entry to delete.
+ The number of rows deleted.
+
+
+
+ Get the number instances of the identified job currently executing.
+
+ The DB Connection
+ Name of the job.
+ The job group.
+
+ The number instances of the identified job currently executing.
+
+
+
+
+ Insert a scheduler-instance state record.
+
+ The DB Connection
+ The instance id.
+ The check in time.
+ The interval.
+ The number of inserted rows.
+
+
+
+ Delete a scheduler-instance state record.
+
+ The DB Connection
+ The instance id.
+ The number of deleted rows.
+
+
+
+ Update a scheduler-instance state record.
+
+ The DB Connection
+ The instance id.
+ The check in time.
+ The number of updated rows.
+
+
+
+ A List of all current s.
+
+ If instanceId is not null, then only the record for the identified
+ instance will be returned.
+
+
+ The DB Connection
+ The instance id.
+
+
+
+
+ Select the next trigger which will fire to fire between the two given timestamps
+ in ascending order of fire time, and then descending by priority.
+
+ The conn.
+ highest value of of the triggers (exclusive)
+ highest value of of the triggers (inclusive)
+ A (never null, possibly empty) list of the identifiers (Key objects) of the next triggers to be fired.
+
+
+
+ Select the distinct instance names of all fired-trigger records.
+
+
+ This is useful when trying to identify orphaned fired triggers (a
+ fired trigger without a scheduler state record.)
+
+ The conn.
+
+
+
+
+ Counts the misfired triggers in states.
+
+ The conn.
+ The state1.
+ The state2.
+ The ts.
+
+
+
+
+ Selects the misfired triggers in states.
+
+ The conn.
+ The state1.
+ The state2.
+ The ts.
+ The count.
+ The result list.
+
+
+
+
+ Create new StdAdoDelegate instance.
+
+ the logger to use during execution
+ the prefix of all table names
+ The instance id.
+ The db provider.
+
+
+
+ Create new StdAdoDelegate instance.
+
+ the logger to use during execution
+ the prefix of all table names
+ The instance id.
+ The db provider.
+ if set to true [use properties].
+
+
+
+ Insert the job detail record.
+
+ the DB Connection
+ the new state for the triggers
+ the first old state to update
+ the second old state to update
+ number of rows updated
+
+
+
+ Get the names of all of the triggers that have misfired.
+
+ the DB Connection
+ The ts.
+ an array of objects
+
+
+
+ Select all of the triggers in a given state.
+
+ The DB Connection
+ The state the triggers must be in
+ an array of trigger s
+
+
+
+ Get the names of all of the triggers in the given state that have
+ misfired - according to the given timestamp.
+
+ The DB Connection
+ The state.
+ The time stamp.
+ An array of objects
+
+
+
+ Get the names of all of the triggers in the given states that have
+ misfired - according to the given timestamp. No more than count will
+ be returned.
+
+ The conn.
+ The state1.
+ The state2.
+ The ts.
+ The most misfired triggers to return, negative for all
+
+ Output parameter. A List of objects. Must not be null
+
+ Whether there are more misfired triggers left to find beyond the given count.
+
+
+
+ Get the number of triggers in the given states that have
+ misfired - according to the given timestamp.
+
+
+
+
+
+
+
+
+
+ Get the names of all of the triggers in the given group and state that
+ have misfired.
+
+ The DB Connection
+ Name of the group.
+ The state.
+ The timestamp.
+ an array of objects
+
+
+
+ Select all of the triggers for jobs that are requesting recovery. The
+ returned trigger objects will have unique "recoverXXX" trigger names and
+ will be in the
+ trigger group.
+
+
+ In order to preserve the ordering of the triggers, the fire time will be
+ set from the ColumnFiredTime column in the TableFiredTriggers
+ table. The caller is responsible for calling
+ on each returned trigger. It is also up to the caller to insert the
+ returned triggers to ensure that they are fired.
+
+ The DB Connection
+ an array of objects
+
+
+
+ Delete all fired triggers.
+
+ The DB Connection.
+ The number of rows deleted.
+
+
+
+ Delete all fired triggers of the given instance.
+
+ The DB Connection
+ The instance id.
+ The number of rows deleted
+
+
+
+ Insert the job detail record.
+
+ The DB Connection.
+ The job to insert.
+ Number of rows inserted.
+
+
+
+ Gets the db presentation for boolean value. Subclasses can overwrite this behaviour.
+
+ Value to map to database.
+
+
+
+
+ Update the job detail record.
+
+ The DB Connection.
+ The job to update.
+ Number of rows updated.
+
+
+
+ Get the names of all of the triggers associated with the given job.
+
+ The DB Connection.
+ The name of the job.
+ The group containing the job.
+ An array of objects
+
+
+
+ Delete all job listeners for the given job.
+
+ The DB Connection.
+ The name of the job.
+ The group containing the job.
+ The number of rows deleted.
+
+
+
+ Delete the job detail record for the given job.
+
+ the DB Connection
+ the name of the job
+ the group containing the job
+ the number of rows deleted
+
+
+
+ Check whether or not the given job is stateful.
+
+ the DB Connection
+ the name of the job
+ the group containing the job
+
+ true if the job exists and is stateful, false otherwise
+
+
+
+
+ Check whether or not the given job exists.
+
+ the DB Connection
+ the name of the job
+ the group containing the job
+ true if the job exists, false otherwise
+
+
+
+ Update the job data map for the given job.
+
+ The conn.
+ the job to update
+ the number of rows updated
+
+
+
+ Associate a listener with a job.
+
+ The DB Connection.
+ The job to associate with the listener.
+ The listener to insert.
+ The number of rows inserted.
+
+
+
+ Get all of the listeners for a given job.
+
+ The DB Connection.
+ The job name whose listeners are wanted.
+ The group containing the job.
+ Array of listener names.
+
+
+
+ Select the JobDetail object for a given job name / group name.
+
+ The DB Connection.
+ The job name whose listeners are wanted.
+ The group containing the job.
+ The load helper.
+ The populated JobDetail object.
+
+
+ build Map from java.util.Properties encoding.
+
+
+
+ Select the total number of jobs stored.
+
+ The DB Connection.
+ The total number of jobs stored.
+
+
+
+ Select all of the job group names that are stored.
+
+ The DB Connection.
+ An array of group names.
+
+
+
+ Select all of the jobs contained in a given group.
+
+ The DB Connection.
+ The group containing the jobs.
+ An array of job names.
+
+
+
+ Insert the base trigger data.
+
+ the DB Connection
+ the trigger to insert
+ the state that the trigger should be stored in
+ The job detail.
+ the number of rows inserted
+
+
+
+ Insert the simple trigger data.
+
+ The DB Connection.
+ The trigger to insert.
+ The number of rows inserted.
+
+
+
+ Insert the cron trigger data.
+
+ the DB Connection
+ the trigger to insert
+ the number of rows inserted
+
+
+
+ Insert the blob trigger data.
+
+ The DB Connection.
+ The trigger to insert.
+ The number of rows inserted.
+
+
+
+ Update the base trigger data.
+
+ The DB Connection.
+ The trigger to insert.
+ The state that the trigger should be stored in.
+ The job detail.
+ The number of rows updated.
+
+
+
+ Update the simple trigger data.
+
+ The DB Connection.
+ The trigger to insert.
+ The number of rows updated.
+
+
+
+ Update the cron trigger data.
+
+ The DB Connection.
+ The trigger to insert.
+ The number of rows updated.
+
+
+
+ Update the blob trigger data.
+
+ The DB Connection.
+ The trigger to insert.
+ The number of rows updated.
+
+
+
+ Check whether or not a trigger exists.
+
+ The DB Connection.
+ The name of the trigger.
+ The group containing the trigger.
+ true if the trigger exists, false otherwise
+
+
+
+ Update the state for a given trigger.
+
+ The DB Connection.
+ The name of the trigger.
+ The group containing the trigger.
+ The new state for the trigger.
+ The number of rows updated.
+
+
+
+ Update the given trigger to the given new state, if it is one of the
+ given old states.
+
+ The DB connection.
+ The name of the trigger.
+ The group containing the trigger.
+ The new state for the trigger.
+ One of the old state the trigger must be in.
+ One of the old state the trigger must be in.
+ One of the old state the trigger must be in.
+ The number of rows updated.
+
+
+
+ Update the all triggers to the given new state, if they are in one of
+ the given old states AND its next fire time is before the given time.
+
+ The DB connection
+ The new state for the trigger
+ One of the old state the trigger must be in
+ One of the old state the trigger must be in
+ The time before which the trigger's next fire time must be
+ int the number of rows updated
+
+
+
+ Update all triggers in the given group to the given new state, if they
+ are in one of the given old states.
+
+ The DB connection.
+ The group containing the trigger.
+ The new state for the trigger.
+ One of the old state the trigger must be in.
+ One of the old state the trigger must be in.
+ One of the old state the trigger must be in.
+ The number of rows updated.
+
+
+
+ Update the given trigger to the given new state, if it is in the given
+ old state.
+
+ the DB connection
+ the name of the trigger
+ the group containing the trigger
+ the new state for the trigger
+ the old state the trigger must be in
+ int the number of rows updated
+
+
+
+ Update all of the triggers of the given group to the given new state, if
+ they are in the given old state.
+
+ the DB connection
+ the group containing the triggers
+ the new state for the trigger group
+ the old state the triggers must be in
+ int the number of rows updated
+
+
+
+ Update the states of all triggers associated with the given job.
+
+ the DB Connection
+ the name of the job
+ the group containing the job
+ the new state for the triggers
+ the number of rows updated
+
+
+
+ Updates the state of the trigger states for job from other.
+
+ The conn.
+ Name of the job.
+ Name of the group.
+ The state.
+ The old state.
+
+
+
+
+ Delete all of the listeners associated with a given trigger.
+
+ the DB Connection
+ the name of the trigger whose listeners will be deleted
+ the name of the group containing the trigger
+ the number of rows deleted
+
+
+
+ Associate a listener with the given trigger.
+
+ the DB Connection
+ the trigger
+ the name of the listener to associate with the trigger
+ the number of rows inserted
+
+
+
+ Select the listeners associated with a given trigger.
+
+ the DB Connection
+ the name of the trigger
+ the group containing the trigger
+
+ array of trigger listener names
+
+
+
+
+ Delete the simple trigger data for a trigger.
+
+ the DB Connection
+ the name of the trigger
+ the group containing the trigger
+ the number of rows deleted
+
+
+
+ Delete the cron trigger data for a trigger.
+
+ the DB Connection
+ the name of the trigger
+ the group containing the trigger
+ the number of rows deleted
+
+
+
+ Delete the cron trigger data for a trigger.
+
+ the DB Connection
+ the name of the trigger
+ the group containing the trigger
+ the number of rows deleted
+
+
+
+ Delete the base trigger data for a trigger.
+
+ the DB Connection
+ the name of the trigger
+ the group containing the trigger
+ the number of rows deleted
+
+
+
+ Select the number of triggers associated with a given job.
+
+ the DB Connection
+ the name of the job
+ the group containing the job
+ the number of triggers for the given job
+
+
+
+ Select the job to which the trigger is associated.
+
+ the DB Connection
+ the name of the trigger
+ the group containing the trigger
+ The load helper.
+ The object associated with the given trigger
+
+
+
+ Select the triggers for a job
+
+ the DB Connection
+ the name of the trigger
+ the group containing the trigger
+
+ an array of objects
+ associated with a given job.
+
+
+
+
+ Select the triggers for a calendar
+
+ The DB Connection.
+ Name of the calendar.
+
+ An array of objects associated with a given job.
+
+
+
+
+ Selects the stateful jobs of trigger group.
+
+ The database connection.
+ Name of the group.
+
+
+
+
+ Select a trigger.
+
+ the DB Connection
+ the name of the trigger
+ the group containing the trigger
+ The object
+
+
+
+ Select a trigger's JobDataMap.
+
+ the DB Connection
+ the name of the trigger
+ the group containing the trigger
+ The of the Trigger, never null, but possibly empty.
+
+
+
+ Select a trigger's state value.
+
+ the DB Connection
+ the name of the trigger
+ the group containing the trigger
+ The object
+
+
+
+ Select a trigger status (state and next fire time).
+
+ the DB Connection
+ the name of the trigger
+ the group containing the trigger
+
+ a object, or null
+
+
+
+
+ Select the total number of triggers stored.
+
+ the DB Connection
+ the total number of triggers stored
+
+
+
+ Select all of the trigger group names that are stored.
+
+ the DB Connection
+
+ an array of group names
+
+
+
+
+ Select all of the triggers contained in a given group.
+
+ the DB Connection
+ the group containing the triggers
+
+ an array of trigger names
+
+
+
+
+ Inserts the paused trigger group.
+
+ The conn.
+ Name of the group.
+
+
+
+
+ Deletes the paused trigger group.
+
+ The conn.
+ Name of the group.
+
+
+
+
+ Deletes all paused trigger groups.
+
+ The conn.
+
+
+
+
+ Determines whether the specified trigger group is paused.
+
+ The conn.
+ Name of the group.
+
+ true if trigger group is paused; otherwise, false.
+
+
+
+
+ Determines whether given trigger group already exists.
+
+ The conn.
+ Name of the group.
+
+ true if trigger group exists; otherwise, false.
+
+
+
+
+ Insert a new calendar.
+
+ the DB Connection
+ The name for the new calendar.
+ The calendar.
+ the number of rows inserted
+ IOException
+
+
+
+ Update a calendar.
+
+ the DB Connection
+ The name for the new calendar.
+ The calendar.
+ the number of rows updated
+ IOException
+
+
+
+ Check whether or not a calendar exists.
+
+ the DB Connection
+ The name of the calendar.
+
+ true if the trigger exists, false otherwise
+
+
+
+
+ Select a calendar.
+
+ the DB Connection
+ The name of the calendar.
+ the Calendar
+ ClassNotFoundException
+ IOException
+
+
+
+ Check whether or not a calendar is referenced by any triggers.
+
+ the DB Connection
+ The name of the calendar.
+
+ true if any triggers reference the calendar, false otherwise
+
+
+
+
+ Delete a calendar.
+
+ the DB Connection
+ The name of the trigger.
+ the number of rows deleted
+
+
+
+ Select the total number of calendars stored.
+
+ the DB Connection
+ the total number of calendars stored
+
+
+
+ Select all of the stored calendars.
+
+ the DB Connection
+
+ an array of calendar names
+
+
+
+
+ Select the trigger that will be fired at the given fire time.
+
+ the DB Connection
+ the time that the trigger will be fired
+
+ a representing the
+ trigger that will be fired at the given fire time, or null if no
+ trigger will be fired at that time
+
+
+
+
+ Select the next trigger which will fire to fire between the two given timestamps
+ in ascending order of fire time, and then descending by priority.
+
+ The conn.
+ highest value of of the triggers (exclusive)
+ highest value of of the triggers (inclusive)
+ A (never null, possibly empty) list of the identifiers (Key objects) of the next triggers to be fired.
+
+
+
+ Gets the select next trigger to acquire SQL clause.
+ This can be overriden for a more performant, result limiting
+ SQL. For Example SQL Server, MySQL and SQLite support limiting returned rows.
+
+
+
+
+
+ Insert a fired trigger.
+
+ the DB Connection
+ the trigger
+ the state that the trigger should be stored in
+ The job.
+ the number of rows inserted
+
+
+
+ Select the states of all fired-trigger records for a given trigger, or
+ trigger group if trigger name is .
+
+ The DB connection.
+ Name of the trigger.
+ Name of the group.
+ a List of objects.
+
+
+
+ Select the states of all fired-trigger records for a given job, or job
+ group if job name is .
+
+ The DB connection.
+ Name of the job.
+ Name of the group.
+ a List of objects.
+
+
+
+ Select the states of all fired-trigger records for a given scheduler
+ instance.
+
+ The DB Connection
+ Name of the instance.
+ A list of FiredTriggerRecord objects.
+
+
+
+ Select the distinct instance names of all fired-trigger records.
+
+ The conn.
+
+
+ This is useful when trying to identify orphaned fired triggers (a
+ fired trigger without a scheduler state record.)
+
+
+
+
+ Delete a fired trigger.
+
+ the DB Connection
+ the fired trigger entry to delete
+ the number of rows deleted
+
+
+
+ Selects the job execution count.
+
+ The DB connection.
+ Name of the job.
+ The job group.
+
+
+
+
+ Delete all volatile fired triggers.
+
+ The DB Connection
+ The number of rows deleted
+
+
+
+ Inserts the state of the scheduler.
+
+ The conn.
+ The instance id.
+ The check in time.
+ The interval.
+
+
+
+
+ Deletes the state of the scheduler.
+
+ The database connection.
+ The instance id.
+
+
+
+
+ Updates the state of the scheduler.
+
+ The database connection.
+ The instance id.
+ The check in time.
+
+
+
+
+ A List of all current s.
+
+ If instanceId is not null, then only the record for the identified
+ instance will be returned.
+
+
+ The DB Connection
+ The instance id.
+
+
+
+
+ Replace the table prefix in a query by replacing any occurrences of
+ "{0}" with the table prefix.
+
+ The unsubstitued query
+ The query, with proper table prefix substituted
+
+
+
+ Create a serialized version of an Object.
+
+ the object to serialize
+ Serialized object as byte array.
+
+
+
+ Remove the transient data from and then create a serialized
+ version of a and returns the underlying bytes.
+
+ The data.
+ the serialized data as byte array
+
+
+
+ serialize
+
+ The data.
+
+
+
+
+ Convert the JobDataMap into a list of properties.
+
+
+
+
+ Convert the JobDataMap into a list of properties.
+
+
+
+
+ This method should be overridden by any delegate subclasses that need
+ special handling for BLOBs. The default implementation uses standard
+ ADO.NET operations.
+
+ The data reader, already queued to the correct row.
+ The column index for the BLOB.
+ The deserialized object from the DataReader BLOB.
+
+
+
+ Get the names of all of the triggers that are volatile.
+
+ The DB Connection
+ An array of objects.
+
+
+
+ Get the names of all of the jobs that are volatile.
+
+ The DB Connection
+ An array of objects.
+
+
+
+ This method should be overridden by any delegate subclasses that need
+ special handling for BLOBs for job details.
+
+ The result set, already queued to the correct row.
+ The column index for the BLOB.
+ The deserialized Object from the ResultSet BLOB.
+
+
+
+ Selects the paused trigger groups.
+
+ The DB Connection.
+
+
+
+
+ Gets the triggers to acquire limit.
+
+ The triggers to acquire limit.
+
+
+
+ Initializes a new instance of the class.
+
+ the logger to use during execution
+ the prefix of all table names
+ The instance id.
+ The db provider.
+
+
+
+ Initializes a new instance of the class.
+
+ The logger.
+ The table prefix.
+ The instance id.
+ The db provider.
+ if set to true [use properties].
+
+
+
+ Creates the SQL for select next trigger to acquire.
+
+
+
+
+ Gets the select next trigger to acquire SQL clause.
+ Firebird specific version with FIRST functionality
+
+
+
+
+
+ Conveys the state of a fired-trigger record.
+
+ James House
+
+
+
+ Gets or sets the fire instance id.
+
+ The fire instance id.
+
+
+
+ Gets or sets the fire timestamp.
+
+ The fire timestamp.
+
+
+
+ Gets or sets a value indicating whether [job is stateful].
+
+ true if [job is stateful]; otherwise, false.
+
+
+
+ Gets or sets the job key.
+
+ The job key.
+
+
+
+ Gets or sets the scheduler instance id.
+
+ The scheduler instance id.
+
+
+
+ Gets or sets the trigger key.
+
+ The trigger key.
+
+
+
+ Gets or sets the state of the fire instance.
+
+ The state of the fire instance.
+
+
+
+ Gets or sets a value indicating whether [job requests recovery].
+
+ true if [job requests recovery]; otherwise, false.
+
+
+
+ Gets or sets a value indicating whether [trigger is volatile].
+
+ true if [trigger is volatile]; otherwise, false.
+
+
+
+ Gets or sets the priority.
+
+ The priority.
+
+
+
+ Exception class for when a driver delegate cannot be found for a given
+ configuration, or lack thereof.
+
+ Jeffrey Wescott
+
+
+
+
+ Base class for exceptions thrown by the Quartz .
+
+
+ SchedulerExceptions may contain a reference to another
+ , which was the underlying cause of the SchedulerException.
+
+ James House
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The MSG.
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The class name is null or is zero (0).
+ The info parameter is null.
+
+
+
+ Initializes a new instance of the class.
+
+ The MSG.
+ The error code.
+
+
+
+ Initializes a new instance of the class.
+
+ The cause.
+
+
+
+ Initializes a new instance of the class.
+
+ The MSG.
+ The cause.
+
+
+
+ Initializes a new instance of the class.
+
+ The MSG.
+ The cause.
+ The error code.
+
+
+
+ Creates and returns a string representation of the current exception.
+
+
+ A string representation of the current exception.
+
+
+
+
+
+ Return the exception that is the underlying cause of this exception.
+ This may be used to find more detail about the cause of the error.
+
+ The underlying exception, or if there is not
+ one.
+
+
+
+
+ Get the error code associated with this exception.
+ This may be used to find more detail about the cause of the error.
+
+
+ One of the ERR_XXX constants defined in this class.
+
+
+
+
+ Determine if the specified error code is in the
+ category of errors.
+
+
+
+
+
+ Determine if the specified error code is in the
+ category of errors.
+
+
+
+
+
+ Determine if the specified error code is in the
+ category of errors.
+
+
+
+
+ Determine if the specified error code is in the
+ category of errors.
+
+
+
+
+ Determine if the specified error code is in the
+ category of errors.
+
+
+
+
+ Determine if the specified error code is in the
+ category of errors.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The class name is null or is zero (0).
+ The info parameter is null.
+
+
+
+ is meant to be used in an application-server
+ or other software framework environment that provides
+ container-managed-transactions. No commit / rollback will be handled by this class.
+
+
+ If you need commit / rollback, use
+ instead.
+
+ Jeffrey Wescott
+ James House
+ Srinivas Venkatarangaiah
+
+
+
+ Contains base functionality for ADO.NET-based JobStore implementations.
+
+ Jeffrey Wescott
+ James House
+ Marko Lahma (.NET)
+
+
+
+ The interface to be implemented by classes that want to provide a
+ and storage mechanism for the
+ 's use.
+
+
+ Storage of s and s should be keyed
+ on the combination of their name and group for uniqueness.
+
+
+
+
+
+
+
+ James House
+
+
+
+ Called by the QuartzScheduler before the is
+ used, in order to give the it a chance to Initialize.
+
+
+
+
+ Called by the QuartzScheduler to inform the that
+ the scheduler has started.
+
+
+
+
+ Called by the QuartzScheduler to inform the that
+ it should free up all of it's resources because the scheduler is
+ shutting down.
+
+
+
+
+ Store the given and .
+
+ The scheduling context.
+ The to be stored.
+ The to be stored.
+ ObjectAlreadyExistsException
+
+
+
+ returns true if the given JobGroup
+ is paused
+
+
+
+
+
+
+
+ returns true if the given TriggerGroup
+ is paused
+
+
+
+
+
+
+
+ Store the given .
+
+ The context.
+ The to be stored.
+
+ If , any existing in the
+ with the same name and group should be
+ over-written.
+
+
+
+
+ Remove (delete) the with the given
+ name, and any s that reference
+ it.
+
+
+ If removal of the results in an empty group, the
+ group should be removed from the 's list of
+ known group names.
+
+ The context.
+ The name of the to be removed.
+ The group name of the to be removed.
+
+ if a with the given name and
+ group was found and removed from the store.
+
+
+
+
+ Retrieve the for the given
+ .
+
+ The context.
+ The name of the to be retrieved.
+ The group name of the to be retrieved.
+
+ The desired , or null if there is no match.
+
+
+
+
+ Store the given .
+
+ The context.
+ The to be stored.
+ If , any existing in
+ the with the same name and group should
+ be over-written.
+ ObjectAlreadyExistsException
+
+
+
+ Remove (delete) the with the
+ given name.
+
+
+
+ If removal of the results in an empty group, the
+ group should be removed from the 's list of
+ known group names.
+
+
+ If removal of the results in an 'orphaned'
+ that is not 'durable', then the should be deleted
+ also.
+
+
+ The context.
+ The name of the to be removed.
+ The group name of the to be removed.
+
+ if a with the given
+ name and group was found and removed from the store.
+
+
+
+
+ Remove (delete) the with the
+ given name, and store the new given one - which must be associated
+ with the same job.
+
+ The context.
+ The name of the to be removed.
+ The group name of the to be removed.
+ The new to be stored.
+
+ if a with the given
+ name and group was found and removed from the store.
+
+
+
+
+ Retrieve the given .
+
+ The context.
+ The name of the to be retrieved.
+ The group name of the to be retrieved.
+
+ The desired , or null if there is no
+ match.
+
+
+
+
+ Store the given .
+
+ The context.
+ The name.
+ The to be stored.
+ If , any existing
+ in the with the same name and group
+ should be over-written.
+ If , any s existing
+ in the that reference an existing
+ Calendar with the same name with have their next fire time
+ re-computed with the new .
+ ObjectAlreadyExistsException
+
+
+
+ Remove (delete) the with the
+ given name.
+
+
+ If removal of the would result in
+ s pointing to non-existent calendars, then a
+ will be thrown.
+
+ The context.
+ The name of the to be removed.
+
+ if a with the given name
+ was found and removed from the store.
+
+
+
+
+ Retrieve the given .
+
+ The context.
+ The name of the to be retrieved.
+
+ The desired , or null if there is no
+ match.
+
+
+
+
+ Get the number of s that are
+ stored in the .
+
+ The context.
+
+
+
+
+ Get the number of s that are
+ stored in the .
+
+ The context.
+
+
+
+
+ Get the number of s that are
+ stored in the .
+
+ The context.
+
+
+
+
+ Get the names of all of the s that
+ have the given group name.
+
+ If there are no jobs in the given group name, the result should be a
+ zero-length array (not ).
+
+
+ The CTX.
+ Name of the group.
+
+
+
+
+ Get the names of all of the s
+ that have the given group name.
+
+ If there are no triggers in the given group name, the result should be a
+ zero-length array (not ).
+
+
+
+
+
+ Get the names of all of the
+ groups.
+
+ If there are no known group names, the result should be a zero-length
+ array (not ).
+
+
+
+
+
+ Get the names of all of the
+ groups.
+
+ If there are no known group names, the result should be a zero-length
+ array (not ).
+
+
+
+
+
+ Get the names of all of the s
+ in the .
+
+
+ If there are no Calendars in the given group name, the result should be
+ a zero-length array (not ).
+
+
+
+
+
+ Get all of the Triggers that are associated to the given Job.
+
+
+ If there are no matches, a zero-length array should be returned.
+
+
+
+
+ Get the current state of the identified .
+
+
+
+
+
+
+
+
+
+ Pause the with the given name.
+
+
+
+
+ Pause all of the s in the
+ given group.
+
+
+ The JobStore should "remember" that the group is paused, and impose the
+ pause on any new triggers that are added to the group while the group is
+ paused.
+
+
+
+
+ Pause the with the given name - by
+ pausing all of its current s.
+
+
+
+
+ Pause all of the s in the given
+ group - by pausing all of their s.
+
+ The JobStore should "remember" that the group is paused, and impose the
+ pause on any new jobs that are added to the group while the group is
+ paused.
+
+
+
+
+
+
+
+ Resume (un-pause) the with the
+ given name.
+
+
+ If the missed one or more fire-times, then the
+ 's misfire instruction will be applied.
+
+
+
+
+
+
+
+ Resume (un-pause) all of the s
+ in the given group.
+
+ If any missed one or more fire-times, then the
+ 's misfire instruction will be applied.
+
+
+
+
+
+ Gets the paused trigger groups.
+
+ The context.
+
+
+
+
+ Resume (un-pause) the with the
+ given name.
+
+ If any of the 's s missed one
+ or more fire-times, then the 's misfire
+ instruction will be applied.
+
+
+
+
+
+ Resume (un-pause) all of the s in
+ the given group.
+
+ If any of the s had s that
+ missed one or more fire-times, then the 's
+ misfire instruction will be applied.
+
+
+
+
+
+ Pause all triggers - equivalent of calling
+ on every group.
+
+ When is called (to un-pause), trigger misfire
+ instructions WILL be applied.
+
+
+
+
+
+
+ Resume (un-pause) all triggers - equivalent of calling
+ on every group.
+
+ If any missed one or more fire-times, then the
+ 's misfire instruction will be applied.
+
+
+
+
+
+
+
+ Get a handle to the next trigger to be fired, and mark it as 'reserved'
+ by the calling scheduler.
+
+ The context.
+ If > 0, the JobStore should only return a Trigger
+ that will fire no later than the time represented in this value as
+ milliseconds.
+
+
+
+
+
+
+ Inform the that the scheduler no longer plans to
+ fire the given , that it had previously acquired
+ (reserved).
+
+
+
+
+ Inform the that the scheduler is now firing the
+ given (executing its associated ),
+ that it had previously acquired (reserved).
+
+ null if the trigger or it's job or calendar no longer exist, or
+ if the trigger was not successfully put into the 'executing'
+ state.
+
+
+
+
+ Inform the that the scheduler has completed the
+ firing of the given (and the execution its
+ associated ), and that the
+ in the given should be updated if the
+ is stateful.
+
+
+
+
+ Supports the persistence.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets the connection and starts a new transaction.
+
+
+
+
+
+ Called by the QuartzScheduler before the is
+ used, in order to give it a chance to Initialize.
+
+
+
+
+
+
+
+ Called by the QuartzScheduler to inform the that
+ it should free up all of it's resources because the scheduler is
+ shutting down.
+
+
+
+
+ Removes all volatile data.
+
+
+
+
+ Removes all volatile data.
+
+
+
+
+ Will recover any failed or misfired jobs and clean up the data store as
+ appropriate.
+
+
+
+
+ Will recover any failed or misfired jobs and clean up the data store as
+ appropriate.
+
+
+
+
+ Store the given and .
+
+ SchedulingContext
+ Job to be stored.
+ Trigger to be stored.
+
+
+
+ returns true if the given JobGroup
+ is paused
+
+
+
+
+
+
+
+ returns true if the given TriggerGroup
+ is paused
+
+
+
+
+
+
+
+ Stores the given .
+
+
+ The to be stored.
+
+ If , any existing in the
+ with the same name & group should be over-written.
+
+
+
+
+ Insert or update a job.
+
+
+
+
+
+ Check existence of a given job.
+
+
+
+
+ Store the given .
+
+
+ The to be stored.
+
+ If , any existing in
+ the with the same name & group should
+ be over-written.
+
+
+ if a with the same name/group already
+ exists, and replaceExisting is set to false.
+
+
+
+
+ Insert or update a trigger.
+
+
+
+
+ Check existence of a given trigger.
+
+
+
+
+ Remove (delete) the with the given
+ name, and any s that reference
+ it.
+
+
+
+ If removal of the results in an empty group, the
+ group should be removed from the 's list of
+ known group names.
+
+
+ The name of the to be removed.
+ The group name of the to be removed.
+
+ if a with the given name &
+ group was found and removed from the store.
+
+
+
+
+ Delete a job and its listeners.
+
+
+
+
+
+
+ Delete a trigger, its listeners, and its Simple/Cron/BLOB sub-table entry.
+
+
+
+
+
+
+
+ Retrieve the for the given
+ .
+
+ The name of the to be retrieved.
+ The group name of the to be retrieved.
+ The desired , or null if there is no match.
+
+
+
+ Remove (delete) the with the
+ given name.
+
+
+
+
+ If removal of the results in an empty group, the
+ group should be removed from the 's list of
+ known group names.
+
+
+
+ If removal of the results in an 'orphaned'
+ that is not 'durable', then the should be deleted
+ also.
+
+
+ The name of the to be removed.
+ The group name of the to be removed.
+
+ if a with the given
+ name & group was found and removed from the store.
+
+
+
+
+
+
+
+ Retrieve the given .
+
+ The name of the to be retrieved.
+ The group name of the to be retrieved.
+ The desired , or null if there is no match.
+
+
+
+ Get the current state of the identified .
+
+
+
+
+
+
+
+
+
+ Gets the state of the trigger.
+
+ The conn.
+ The CTXT.
+ Name of the trigger.
+ Name of the group.
+
+
+
+
+ Store the given .
+
+ The name of the calendar.
+ The to be stored.
+
+ If , any existing
+ in the with the same name & group
+ should be over-written.
+
+
+ if a with the same name already
+ exists, and replaceExisting is set to false.
+
+
+
+
+ Remove (delete) the with the given name.
+
+
+ If removal of the would result in
+ s pointing to non-existent calendars, then a
+ will be thrown.
+
+ The name of the to be removed.
+
+ if a with the given name
+ was found and removed from the store.
+
+
+
+
+ Retrieve the given .
+
+ The name of the to be retrieved.
+ The desired , or null if there is no match.
+
+
+
+ Get the number of s that are
+ stored in the .
+
+
+
+
+ Get the number of s that are
+ stored in the .
+
+
+
+
+ Get the number of s that are
+ stored in the .
+
+
+
+
+ Get the names of all of the s that
+ have the given group name.
+
+
+ If there are no jobs in the given group name, the result should be a
+ zero-length array (not ).
+
+
+
+
+ Get the names of all of the s
+ that have the given group name.
+
+
+ If there are no triggers in the given group name, the result should be a
+ zero-length array (not ).
+
+
+
+
+ Get the names of all of the
+ groups.
+
+
+
+ If there are no known group names, the result should be a zero-length
+ array (not ).
+
+
+
+
+ Get the names of all of the
+ groups.
+
+
+
+ If there are no known group names, the result should be a zero-length
+ array (not ).
+
+
+
+
+ Get the names of all of the s
+ in the .
+
+
+ If there are no Calendars in the given group name, the result should be
+ a zero-length array (not ).
+
+
+
+
+ Get all of the Triggers that are associated to the given Job.
+
+
+ If there are no matches, a zero-length array should be returned.
+
+
+
+
+ Pause the with the given name.
+
+
+
+
+
+ Pause the with the given name.
+
+
+
+
+
+ Pause the with the given name - by
+ pausing all of its current s.
+
+
+
+
+
+ Pause all of the s in the given
+ group - by pausing all of their s.
+
+
+
+
+
+ Determines if a Trigger for the given job should be blocked.
+ State can only transition to StatePausedBlocked/StateBlocked from
+ StatePaused/StateWaiting respectively.
+
+ StatePausedBlocked, StateBlocked, or the currentState.
+
+
+
+ Resume (un-pause) the with the
+ given name.
+
+
+ If the missed one or more fire-times, then the
+ 's misfire instruction will be applied.
+
+
+
+
+
+ Resume (un-pause) the with the
+ given name.
+
+
+ If any of the 's s missed one
+ or more fire-times, then the 's misfire
+ instruction will be applied.
+
+
+
+
+
+ Resume (un-pause) all of the s in
+ the given group.
+
+
+ If any of the s had s that
+ missed one or more fire-times, then the 's
+ misfire instruction will be applied.
+
+
+
+
+
+ Pause all of the s in the given group.
+
+
+
+
+
+ Pause all of the s in the given group.
+
+
+
+
+
+ Pause all of the s in the
+ given group.
+
+
+
+
+
+ Resume (un-pause) all of the s
+ in the given group.
+
+ If any missed one or more fire-times, then the
+ 's misfire instruction will be applied.
+
+
+
+
+
+
+ Pause all triggers - equivalent of calling
+ on every group.
+
+ When is called (to un-pause), trigger misfire
+ instructions WILL be applied.
+
+
+
+
+
+
+
+ Resume (un-pause) all triggers - equivalent of calling
+ on every group.
+
+
+ If any missed one or more fire-times, then the
+ 's misfire instruction will be applied.
+
+
+
+
+
+ Resume (un-pause) all triggers - equivalent of calling
+ on every group.
+
+ If any missed one or more fire-times, then the
+ 's misfire instruction will be applied.
+
+
+
+
+
+
+ Get a handle to the next N triggers to be fired, and mark them as 'reserved'
+ by the calling scheduler.
+
+
+
+
+
+ Inform the that the scheduler no longer plans to
+ fire the given , that it had previously acquired
+ (reserved).
+
+
+
+
+ Inform the that the scheduler has completed the
+ firing of the given (and the execution its
+ associated ), and that the
+ in the given should be updated if the
+ is stateful.
+
+
+
+
+ Get a list of all scheduler instances in the cluster that may have failed.
+ This includes this scheduler if it is checking in for the first time.
+
+
+
+
+ Create dummy objects for fired triggers
+ that have no scheduler state record. Checkin timestamp and interval are
+ left as zero on these dummy objects.
+
+ List of all current s
+
+
+
+ Cleanup the given database connection. This means restoring
+ any modified auto commit or transaction isolation connection
+ attributes, and then closing the underlying connection.
+
+
+
+ This is separate from closeConnection() because the Spring
+ integration relies on being able to overload closeConnection() and
+ expects the same connection back that it originally returned
+ from the datasource.
+
+
+
+
+
+ Closes the supplied connection.
+
+ (Optional)
+
+
+
+ Rollback the supplied connection.
+
+ (Optional)
+
+ JobPersistenceException thrown if a SQLException occurs when the
+ connection is rolled back
+
+
+
+
+ Commit the supplied connection.
+
+ The CTH.
+ if set to true opens a new transaction.
+ JobPersistenceException thrown if a SQLException occurs when the
+
+
+
+ Execute the given callback in a transaction. Depending on the JobStore,
+ the surrounding transaction may be assumed to be already present
+ (managed).
+
+
+ This method just forwards to ExecuteInLock() with a null lockName.
+
+
+
+
+
+ Execute the given callback having aquired the given lock.
+ Depending on the JobStore, the surrounding transaction may be
+ assumed to be already present (managed). This version is just a
+ handy wrapper around executeInLock that doesn't require a return
+ value.
+
+
+ The name of the lock to aquire, for example
+ "TRIGGER_ACCESS". If null, then no lock is aquired, but the
+ lockCallback is still executed in a transaction.
+
+
+
+
+
+ Execute the given callback having aquired the given lock.
+ Depending on the JobStore, the surrounding transaction may be
+ assumed to be already present (managed).
+
+
+ The name of the lock to aquire, for example
+ "TRIGGER_ACCESS". If null, then no lock is aquired, but the
+ lockCallback is still executed in a transaction.
+
+
+
+
+ Execute the given callback having optionally aquired the given lock.
+ This uses the non-managed transaction connection. This version is just a
+ handy wrapper around executeInNonManagedTXLock that doesn't require a return
+ value.
+
+
+ The name of the lock to aquire, for example
+ "TRIGGER_ACCESS". If null, then no lock is aquired, but the
+ lockCallback is still executed in a non-managed transaction.
+
+
+
+
+
+ Execute the given callback having optionally aquired the given lock.
+ This uses the non-managed transaction connection.
+
+
+ The name of the lock to aquire, for example
+ "TRIGGER_ACCESS". If null, then no lock is aquired, but the
+ lockCallback is still executed in a non-managed transaction.
+
+
+
+
+ Get or set the datasource name.
+
+
+
+
+ Gets the log.
+
+ The log.
+
+
+
+ Get or sets the prefix that should be pre-pended to all table names.
+
+
+
+
+ Set whether string-only properties will be handled in JobDataMaps.
+
+
+
+
+ Get or set the instance Id of the Scheduler (must be unique within a cluster).
+
+
+
+
+ Get or set the instance Id of the Scheduler (must be unique within this server instance).
+
+
+
+
+ Get or set whether this instance is part of a cluster.
+
+
+
+
+ Get or set the frequency at which this instance "checks-in"
+ with the other instances of the cluster. -- Affects the rate of
+ detecting failed instances.
+
+
+
+
+ Get or set the maximum number of misfired triggers that the misfire handling
+ thread will try to recover at one time (within one transaction). The
+ default is 20.
+
+
+
+
+ Gets or sets the database retry interval.
+
+ The db retry interval.
+
+
+
+ Get or set whether this instance should use database-based thread
+ synchronization.
+
+
+
+
+ Whether or not to obtain locks when inserting new jobs/triggers.
+ Defaults to , which is safest - some db's (such as
+ MS SQLServer) seem to require this to avoid deadlocks under high load,
+ while others seem to do fine without.
+
+
+ Setting this property to will provide a
+ significant performance increase during the addition of new jobs
+ and triggers.
+
+
+
+
+ The time span by which a trigger must have missed its
+ next-fire-time, in order for it to be considered "misfired" and thus
+ have its misfire instruction applied.
+
+
+
+
+ Don't call set autocommit(false) on connections obtained from the
+ DataSource. This can be helpfull in a few situations, such as if you
+ have a driver that complains if it is called when it is already off.
+
+
+
+
+ Set the transaction isolation level of DB connections to sequential.
+
+
+
+
+ Whether or not the query and update to acquire a Trigger for firing
+ should be performed after obtaining an explicit DB lock (to avoid
+ possible race conditions on the trigger's db row). This is
+ is considered unnecessary for most databases (due to the nature of
+ the SQL update that is performed), and therefore a superfluous performance hit.
+
+
+
+
+ Get or set the ADO.NET driver delegate class name.
+
+
+
+
+ set the SQL statement to use to select and lock a row in the "locks"
+ table.
+
+
+
+
+
+ Get whether the threads spawned by this JobStore should be
+ marked as daemon. Possible threads include the
+ and the .
+
+
+
+
+
+ Get whether to check to see if there are Triggers that have misfired
+ before actually acquiring the lock to recover them. This should be
+ set to false if the majority of the time, there are are misfired
+ Triggers.
+
+
+
+
+
+ Get the driver delegate for DB operations.
+
+
+
+
+ Get whether String-only properties will be handled in JobDataMaps.
+
+
+
+
+ Indicates whether this job store supports persistence.
+
+
+
+
+
+
+ Implement this interface to provide the code to execute within
+ the a transaction template that has no return value.
+
+
+
+
+
+ Implement this interface to provide the code to execute within
+ the a transaction template. If no return value is required, execute
+ should just return null.
+
+
+
+
+
+
+
+ An interface for classes wishing to provide the service of loading classes
+ and resources within the scheduler...
+
+ James House
+
+
+
+ Called to give the ClassLoadHelper a chance to Initialize itself,
+ including the oportunity to "steal" the class loader off of the calling
+ thread, which is the thread that is initializing Quartz.
+
+
+
+
+ Return the class with the given name.
+
+
+
+
+ Finds a resource with a given name. This method returns null if no
+ resource with this name is found.
+
+ name of the desired resource
+
+ a java.net.URL object
+
+
+
+
+ Finds a resource with a given name. This method returns null if no
+ resource with this name is found.
+
+ name of the desired resource
+
+ a java.io.InputStream object
+
+
+
+
+ Helper class for returning the composite result of trying
+ to recover misfired jobs.
+
+
+
+
+ Initializes a new instance of the class.
+
+ if set to true [has more misfired triggers].
+ The processed misfired trigger count.
+
+
+
+
+ Gets a value indicating whether this instance has more misfired triggers.
+
+
+ true if this instance has more misfired triggers; otherwise, false.
+
+
+
+
+ Gets the processed misfired trigger count.
+
+ The processed misfired trigger count.
+
+
+
+ Called by the QuartzScheduler before the is
+ used, in order to give the it a chance to Initialize.
+
+
+
+
+
+
+ Called by the QuartzScheduler to inform the that
+ it should free up all of it's resources because the scheduler is
+ shutting down.
+
+
+
+
+ Gets the non managed TX connection.
+
+
+
+
+
+ Execute the given callback having optionally aquired the given lock.
+ Because CMT assumes that the connection is already part of a managed
+ transaction, it does not attempt to commit or rollback the
+ enclosing transaction.
+
+
+
+
+
+
+ The name of the lock to aquire, for example
+ "TRIGGER_ACCESS". If null, then no lock is aquired, but the
+ txCallback is still executed in a transaction.
+
+ Callback to execute.
+
+
+
+ Utility class to keep track of both active transaction
+ and connection.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The connection.
+ The transaction.
+
+
+
+ Gets or sets the connection.
+
+ The connection.
+
+
+
+ Gets or sets the transaction.
+
+ The transaction.
+
+
+
+ is meant to be used in a standalone environment.
+ Both commit and rollback will be handled by this class.
+
+ Jeffrey Wescott
+ James House
+
+
+
+ Called by the QuartzScheduler before the is
+ used, in order to give the it a chance to Initialize.
+
+
+
+
+
+
+ For , the non-managed TX connection is just
+ the normal connection because it is not CMT.
+
+
+
+
+
+ Execute the given callback having optionally aquired the given lock.
+ For , because it manages its own transactions
+ and only has the one datasource, this is the same behavior as
+ .
+
+
+ The name of the lock to aquire, for example "TRIGGER_ACCESS".
+ If null, then no lock is aquired, but the lockCallback is still
+ executed in a transaction.
+
+ Callback to execute.
+
+
+
+
+
+
+
+
+ Exception class for when there is a failure obtaining or releasing a
+ resource lock.
+
+
+ James House
+
+
+
+ An exception that is thrown to indicate that there has been a failure in the
+ scheduler's underlying persistence mechanism.
+
+ James House
+
+
+
+
+ Create a with the given message.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The class name is null or is zero (0).
+ The info parameter is null.
+
+
+
+ Create a with the given message
+ and error code.
+
+
+
+
+
+ Create a with the given message
+ and cause.
+
+
+
+
+
+ Create a with the given message,
+ cause and error code.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The class name is null or is zero (0).
+ The info parameter is null.
+
+
+
+ This is a driver delegate for the MySQL ADO.NET driver.
+
+ Marko Lahma
+
+
+
+ Initializes a new instance of the class.
+
+ the logger to use during execution
+ the prefix of all table names
+ The instance id.
+ The db provider.
+
+
+
+ Initializes a new instance of the class.
+
+ The logger.
+ The table prefix.
+ The instance id.
+ The db provider.
+ if set to true [use properties].
+
+
+
+ Gets the select next trigger to acquire SQL clause.
+ MySQL version with LIMIT support.
+
+
+
+
+
+ Exception class for when a driver delegate cannot be found for a given
+ configuration, or lack thereof.
+
+ Jeffrey Wescott
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The class name is null or is zero (0).
+ The info parameter is null.
+
+
+
+ This is a driver delegate for the Oracle database.
+
+ Marko Lahma
+
+
+
+ Initializes a new instance of the class.
+
+ the logger to use during execution
+ the prefix of all table names
+ The instance id.
+ The db provider.
+
+
+
+ Initializes a new instance of the class.
+
+ The logger.
+ The table prefix.
+ The instance id.
+ The db provider.
+ if set to true [use properties].
+
+
+
+ Creates the SQL for select next trigger to acquire.
+
+
+
+
+ Gets the select next trigger to acquire SQL clause.
+ Oracle version with rownum support.
+
+
+
+
+
+ This is a driver delegate for the PostgreSQL ADO.NET driver.
+
+ Marko Lahma
+
+
+
+ Initializes a new instance of the class.
+
+ The log.
+ The table prefix.
+ The instance id.
+ The db provider.
+
+
+
+ Initializes a new instance of the class.
+
+ The log.
+ The table prefix.
+ The instance id.
+ The db provider.
+ if set to true [use properties].
+
+
+
+ Gets the select next trigger to acquire SQL clause.
+ PostgreSQL version with LIMIT support.
+
+
+
+
+
+ Conveys a scheduler-instance state record.
+
+ James House
+
+
+
+ Gets or sets the checkin interval.
+
+ The checkin interval.
+
+
+
+ Gets or sets the checkin timestamp.
+
+ The checkin timestamp.
+
+
+
+ Gets or sets the scheduler instance id.
+
+ The scheduler instance id.
+
+
+
+ Internal in-memory lock handler for providing thread/resource locking in
+ order to protect resources from being altered by multiple threads at the
+ same time.
+
+ James House
+
+
+
+ Grants a lock on the identified resource to the calling thread (blocking
+ until it is available).
+
+ True if the lock was obtained.
+
+
+ Release the lock on the identified resource if it is held by the calling
+ thread.
+
+
+
+
+ Determine whether the calling thread owns a lock on the identified
+ resource.
+
+
+
+
+ Gets the thread locks.
+
+ The thread locks.
+
+
+
+ Whether this Semaphore implementation requires a database connection for
+ its lock management operations.
+
+
+
+
+
+
+
+
+ This is a driver delegate for the SQLiteDelegate ADO.NET driver.
+
+ Marko Lahma
+
+
+
+ Initializes a new instance of the class.
+
+ the logger to use during execution
+ the prefix of all table names
+ The instance id.
+ The db provider.
+
+
+
+ Initializes a new instance of the class.
+
+ The logger.
+ The table prefix.
+ The instance id.
+ The db provider.
+ if set to true [use properties].
+
+
+
+ Gets the select next trigger to acquire SQL clause.
+ SQLite version with LIMIT support.
+
+
+
+
+
+ A SQL Server specific driver delegate.
+
+ Marko Lahma
+
+
+
+ Initializes a new instance of the class.
+
+ the logger to use during execution
+ the prefix of all table names
+ The instance id.
+ The db provider.
+
+
+
+ Initializes a new instance of the class.
+
+ The logger.
+ The table prefix.
+ The instance id.
+ The db provider.
+ if set to true [use properties].
+
+
+
+ Creates the SQL for select next trigger to acquire.
+
+
+
+
+ Gets the select next trigger to acquire SQL clause.
+ SQL Server specific version with TOP functionality
+
+
+
+
+
+ Internal database based lock handler for providing thread/resource locking
+ in order to protect resources from being altered by multiple threads at the
+ same time.
+
+ James House
+
+
+
+ Initializes a new instance of the class.
+
+ The table prefix.
+ The select with lock SQL.
+
+
+
+ Execute the SQL select for update that will lock the proper database row.
+
+
+
+ Provide thread/resource locking in order to protect
+ resources from being altered by multiple threads at the same time using
+ a db row update.
+
+
+ Note: This Semaphore implementation is useful for databases that do
+ not support row locking via "SELECT FOR UPDATE" type syntax, for example
+ Microsoft SQLServer (MSSQL).
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Execute the SQL that will lock the proper database row.
+
+
+
+
+
+
+
+ This implementation of the Calendar excludes a set of days of the year. You
+ may use it to exclude bank holidays which are on the same date every year.
+
+
+
+ Juergen Donnerstag
+
+
+
+ This implementation of the Calendar may be used (you don't have to) as a
+ base class for more sophisticated one's. It merely implements the base
+ functionality required by each Calendar.
+
+
+ Regarded as base functionality is the treatment of base calendars. Base
+ calendar allow you to chain (stack) as much calendars as you may need. For
+ example to exclude weekends you may use WeeklyCalendar. In order to exclude
+ holidays as well you may define a WeeklyCalendar instance to be the base
+ calendar for HolidayCalendar instance.
+
+
+ Juergen Donnerstag
+ James House
+
+
+
+ An interface to be implemented by objects that define spaces of time during
+ which an associated may fire.
+
+
+ Calendars do not define actual fire times, but rather are used to limit a
+ from firing on its normal schedule if necessary. Most
+ Calendars include all times by default and allow the user to specify times to
+ exclude. As such, it is often useful to think of Calendars as being used to
+ exclude a block of time, as opposed to include
+ a block of time. (i.e. the schedule "fire every five minutes except on Sundays" could be
+ implemented with a and a which excludes Sundays)
+
+ James House
+ Juergen Donnerstag
+
+
+
+ Determine whether the given UTC time is 'included' by the
+ Calendar.
+
+
+
+
+ Determine the next UTC time that is 'included' by the
+ Calendar after the given UTC time.
+
+
+
+
+ Gets or sets a description for the instance - may be
+ useful for remembering/displaying the purpose of the calendar, though
+ the description has no meaning to Quartz.
+
+
+
+
+ Set a new base calendar or remove the existing one.
+ Get the base calendar.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The base calendar.
+
+
+
+ Initializes a new instance of the class.
+
+ The time zone.
+
+
+
+ Initializes a new instance of the class.
+
+ The base calendar.
+ The time zone.
+
+
+
+ checks whether two arrays have
+ the same length and
+ for any given place there are equal elements
+ in both arrays
+
+
+
+
+
+ Get the base calendar. Will be null, if not set.
+
+
+
+
+ Check if date/time represented by timeStamp is included. If included
+ return true. The implementation of BaseCalendar simply calls the base
+ calendars IsTimeIncluded() method if base calendar is set.
+
+
+
+
+
+ Determine the next UTC time (in milliseconds) that is 'included' by the
+ Calendar after the given time. Return the original value if timeStamp is
+ included. Return 0 if all days are excluded.
+
+
+
+
+
+ Gets or sets the time zone.
+
+ The time zone.
+
+
+
+ Gets or sets the description given to the instance by
+ its creator (if any).
+
+
+
+
+ Set a new base calendar or remove the existing one
+
+
+
+
+
+ Constructor
+
+
+
+
+ Constructor
+
+ The base calendar.
+
+
+
+ Return true, if day is defined to be exluded.
+
+
+
+
+ Redefine a certain day to be excluded (true) or included (false).
+
+
+
+
+ Determine whether the given UTC time (in milliseconds) is 'included' by the
+ Calendar.
+
+ Note that this Calendar is only has full-day precision.
+
+
+
+
+
+ Determine the next UTC time (in milliseconds) that is 'included' by the
+ Calendar after the given time. Return the original value if timeStampUtc is
+ included. Return 0 if all days are excluded.
+
+ Note that this Calendar is only has full-day precision.
+
+
+
+
+
+ Get or the array which defines the exclude-value of each day of month.
+ Setting will redefine the array of days excluded. The array must of size greater or
+ equal 31.
+
+
+
+
+ This implementation of the Calendar excludes the set of times expressed by a
+ given CronExpression.
+
+
+ For example, you could use this calendar to exclude all but business hours (8AM - 5PM) every
+ day using the expression "* * 0-7,18-23 ? * *".
+
+ It is important to remember that the cron expression here describes a set of
+ times to be excluded from firing. Whereas the cron expression in
+ CronTrigger describes a set of times that can
+ be included for firing. Thus, if a has a
+ given cron expression and is associated with a with
+ the same expression, the calendar will exclude all the times the
+ trigger includes, and they will cancel each other out.
+
+
+ Aaron Craven
+
+
+
+ Initializes a new instance of the class.
+
+ a String representation of the desired cron expression
+
+
+
+ Create a with the given cron expression and
+ .
+
+
+ the base calendar for this calendar instance
+ see BaseCalendar for more information on base
+ calendar functionality
+
+ a String representation of the desired cron expression
+
+
+
+ Create a with the given cron expression and
+ .
+
+
+ the base calendar for this calendar instance
+ see BaseCalendar for more information on base
+ calendar functionality
+
+ a String representation of the desired cron expression
+
+
+
+
+ Determine whether the given time is 'included' by the
+ Calendar.
+
+ the time to test
+ a boolean indicating whether the specified time is 'included' by the CronCalendar
+
+
+
+ Determine the next time that is 'included' by the
+ Calendar after the given time. Return the original value if timeStamp is
+ included. Return 0 if all days are excluded.
+
+
+
+
+
+
+ Returns a that represents the current .
+
+
+ A that represents the current .
+
+
+
+
+ Sets the cron expression for the calendar to a new value.
+
+ The expression.
+
+
+
+ Returns the object representation of the cron expression that defines the
+ dates and times this calendar excludes.
+
+
+
+
+ This implementation of the Calendar excludes (or includes - see below) a
+ specified time range each day.
+
+
+ For example, you could use this calendar to
+ exclude business hours (8AM - 5PM) every day. Each
+ only allows a single time range to be specified, and that time range may not
+ * cross daily boundaries (i.e. you cannot specify a time range from 8PM - 5AM).
+ If the property is (default),
+ the time range defines a range of times in which triggers are not allowed to
+ * fire. If is , the time range
+ is inverted: that is, all times outside the defined time range
+ are excluded.
+
+ Note when using , it behaves on the same principals
+ as, for example, WeeklyCalendar defines a set of days that are
+ excluded every week. Likewise, defines a
+ set of times that are excluded every day.
+
+
+ Mike Funk
+ Aaron Craven
+
+
+
+ Create a with a time range defined by the
+ specified strings and no baseCalendar.
+ and
+ must be in the format "HH:MM[:SS[:mmm]]" where:
+
+
+ HH is the hour of the specified time. The hour should be
+ specified using military (24-hour) time and must be in the range
+ 0 to 23.
+
+
+ MM is the minute of the specified time and must be in the range
+ 0 to 59.
+
+
+ SS is the second of the specified time and must be in the range
+ 0 to 59.
+
+
+ mmm is the millisecond of the specified time and must be in the
+ range 0 to 999.
+
+
items enclosed in brackets ('[', ']') are optional.
+
+ The time range starting time must be before the time range ending
+ time. Note this means that a time range may not cross daily
+ boundaries (10PM - 2AM)
+
+
+
+
+
+
+ Create a with a time range defined by the
+ specified strings and the specified baseCalendar.
+ and
+ must be in the format "HH:MM[:SS[:mmm]]" where:
+
+
+ HH is the hour of the specified time. The hour should be
+ specified using military (24-hour) time and must be in the range
+ 0 to 23.
+
+
+ MM is the minute of the specified time and must be in the range
+ 0 to 59.
+
+
+ SS is the second of the specified time and must be in the range
+ 0 to 59.
+
+
+ mmm is the millisecond of the specified time and must be in the
+ range 0 to 999.
+
+
+ items enclosed in brackets ('[', ']') are optional.
+
+
+ The time range starting time must be before the time range ending
+ time. Note this means that a time range may not cross daily
+ boundaries (10PM - 2AM)
+
+
+
+ The base calendar for this calendar instance see BaseCalendar for more
+ information on base calendar functionality.
+
+
+
+ Create a with a time range defined by the
+ specified values and no baseCalendar. Values are subject to
+ the following validations:
+
+
+ Hours must be in the range 0-23 and are expressed using military
+ (24-hour) time.
+
+
Minutes must be in the range 0-59
+
Seconds must be in the range 0-59
+
Milliseconds must be in the range 0-999
+
+ The time range starting time must be before the time range ending
+ time. Note this means that a time range may not cross daily
+ boundaries (10PM - 2AM)
+
+
+
+ The range starting hour of day.
+ The range starting minute.
+ The range starting second.
+ The range starting millis.
+ The range ending hour of day.
+ The range ending minute.
+ The range ending second.
+ The range ending millis.
+
+
+
+ Create a with a time range defined by the
+ specified values and the specified . Values are
+ subject to the following validations:
+
+
+ Hours must be in the range 0-23 and are expressed using military
+ (24-hour) time.
+
+
Minutes must be in the range 0-59
+
Seconds must be in the range 0-59
+
Milliseconds must be in the range 0-999
+
+ The time range starting time must be before the time range ending
+ time. Note this means that a time range may not cross daily
+ boundaries (10PM - 2AM)
+
+
+
+ The range starting hour of day.
+ The range starting minute.
+ The range starting second.
+ The range starting millis.
+ The range ending hour of day.
+ The range ending minute.
+ The range ending second.
+ The range ending millis.
+
+
+
+ Create a with a time range defined by the
+ specified s and no
+ baseCalendar. The Calendars are subject to the following
+ considerations:
+
+
+ Only the time-of-day fields of the specified Calendars will be
+ used (the date fields will be ignored)
+
+
+ The starting time must be before the ending time of the defined
+ time range. Note this means that a time range may not cross
+ daily boundaries (10PM - 2AM). (because only time fields are
+ are used, it is possible for two Calendars to represent a valid
+ time range and
+ rangeStartingCalendar.after(rangeEndingCalendar) == true)
+
+
+
+
+ The range starting calendar.
+ The range ending calendar.
+
+
+
+ Create a with a time range defined by the
+ specified s and the specified
+ . The Calendars are subject to the following
+ considerations:
+
+
+ Only the time-of-day fields of the specified Calendars will be
+ used (the date fields will be ignored)
+
+
+ The starting time must be before the ending time of the defined
+ time range. Note this means that a time range may not cross
+ daily boundaries (10PM - 2AM). (because only time fields are
+ are used, it is possible for two Calendars to represent a valid
+ time range and
+ rangeStartingCalendarUtc > rangeEndingCalendarUtc == true)
+
+
+
+ The range starting calendar.
+ The range ending calendar.
+
+
+
+ Create a with a time range defined by the
+ specified values and no baseCalendar. The values are
+ subject to the following considerations:
+
+
+ Only the time-of-day portion of the specified values will be
+ used
+
+
+ The starting time must be before the ending time of the defined
+ time range. Note this means that a time range may not cross
+ daily boundaries (10PM - 2AM). (because only time value are
+ are used, it is possible for the two values to represent a valid
+ time range and rangeStartingTime > rangeEndingTime)
+
+
+
+ The range starting time in millis.
+ The range ending time in millis.
+
+
+
+ Create a with a time range defined by the
+ specified values and the specified . The values
+ are subject to the following considerations:
+
+
+ Only the time-of-day portion of the specified values will be
+ used
+
+
+ The starting time must be before the ending time of the defined
+ time range. Note this means that a time range may not cross
+ daily boundaries (10PM - 2AM). (because only time value are
+ are used, it is possible for the two values to represent a valid
+ time range and rangeStartingTime > rangeEndingTime)
+
+
+
+ The range starting time in millis.
+ The range ending time in millis.
+
+
+
+ Determine whether the given time is 'included' by the
+ Calendar.
+
+
+
+
+
+
+ Determine the next time (in milliseconds) that is 'included' by the
+ Calendar after the given time. Return the original value if timeStamp is
+ included. Return 0 if all days are excluded.
+
+
+
+
+
+
+
+ Returns the start time of the time range of the day
+ specified in .
+
+
+ a DateTime representing the start time of the
+ time range for the specified date.
+
+
+
+
+ Returns the end time of the time range of the day
+ specified in
+
+
+ A DateTime representing the end time of the
+ time range for the specified date.
+
+
+
+
+ Returns a that represents the current .
+
+
+ A that represents the current .
+
+
+
+
+ Sets the time range for the to the times
+ represented in the specified Strings.
+
+ The range starting time string.
+ The range ending time string.
+
+
+
+ Sets the time range for the to the times
+ represented in the specified values.
+
+ The range starting hour of day.
+ The range starting minute.
+ The range starting second.
+ The range starting millis.
+ The range ending hour of day.
+ The range ending minute.
+ The range ending second.
+ The range ending millis.
+
+
+
+ Sets the time range for the to the times
+ represented in the specified s.
+
+ The range starting calendar.
+ The range ending calendar.
+
+
+
+ Sets the time range for the to the times
+ represented in the specified values.
+
+ The range starting time.
+ The range ending time.
+
+
+
+ Gets the start of day, practically zeroes time part.
+
+ The time.
+
+
+
+
+ Gets the end of day, pratically sets time parts to maximum allowed values.
+
+ The time.
+
+
+
+
+ Checks the specified values for validity as a set of time values.
+
+ The hour of day.
+ The minute.
+ The second.
+ The millis.
+
+
+
+ Indicates whether the time range represents an inverted time range (see
+ class description).
+
+ true if invert time range; otherwise, false.
+
+
+
+ This implementation of the Calendar stores a list of holidays (full days
+ that are excluded from scheduling).
+
+
+ The implementation DOES take the year into consideration, so if you want to
+ exclude July 4th for the next 10 years, you need to add 10 entries to the
+ exclude list.
+
+ Sharada Jambula
+ Juergen Donnerstag
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The base calendar.
+
+
+
+ Determine whether the given time (in milliseconds) is 'included' by the
+ Calendar.
+
+ Note that this Calendar is only has full-day precision.
+
+
+
+
+
+ Determine the next time (in milliseconds) that is 'included' by the
+ Calendar after the given time.
+
+ Note that this Calendar is only has full-day precision.
+
+
+
+
+
+ Add the given Date to the list of excluded days. Only the month, day and
+ year of the returned dates are significant.
+
+
+
+
+ Removes the excluded date.
+
+ The date to remove.
+
+
+
+ Returns a of Dates representing the excluded
+ days. Only the month, day and year of the returned dates are
+ significant.
+
+
+
+
+ This implementation of the Calendar excludes a set of days of the month. You
+ may use it to exclude every 1. of each month for example. But you may define
+ any day of a month.
+
+
+
+ Juergen Donnerstag
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Constructor
+
+ The base calendar.
+
+
+
+ Initialize internal variables
+
+
+
+
+ Return true, if mday is defined to be exluded.
+
+
+
+
+ Redefine a certain day of the month to be excluded (true) or included
+ (false).
+
+
+
+
+ Check if all days are excluded. That is no day is included.
+
+ boolean
+
+
+
+
+ Determine whether the given time (in milliseconds) is 'included' by the
+ Calendar.
+
+ Note that this Calendar is only has full-day precision.
+
+
+
+
+
+ Determine the next time (in milliseconds) that is 'included' by the
+ Calendar after the given time. Return the original value if timeStamp is
+ included. Return DateTime.MinValue if all days are excluded.
+
+ Note that this Calendar is only has full-day precision.
+
+
+
+
+
+ Get or set the array which defines the exclude-value of each day of month
+ Setting will redefine the array of days excluded. The array must of size greater or
+ equal 31.
+
+
+
+
+ This implementation of the Calendar excludes a set of days of the week. You
+ may use it to exclude weekends for example. But you may define any day of
+ the week.
+
+
+
+ Juergen Donnerstag
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The base calendar.
+
+
+
+ Initialize internal variables
+
+
+
+
+ Return true, if wday is defined to be exluded. E. g.
+ saturday and sunday.
+
+
+
+
+ Redefine a certain day of the week to be excluded (true) or included
+ (false). Use java.util.Calendar's constants like MONDAY to determine the
+ wday.
+
+
+
+
+ Check if all week ays are excluded. That is no day is included.
+
+
+
+
+ Determine whether the given time (in milliseconds) is 'included' by the
+ Calendar.
+
+ Note that this Calendar is only has full-day precision.
+
+
+
+
+
+ Determine the next time (in milliseconds) that is 'included' by the
+ Calendar after the given time. Return the original value if timeStamp is
+ included. Return DateTime.MinValue if all days are excluded.
+
+ Note that this Calendar is only has full-day precision.
+
+
+
+
+
+ Get the array with the week days.
+ Setting will redefine the array of days excluded. The array must of size greater or
+ equal 8. java.util.Calendar's constants like MONDAY should be used as
+ index. A value of true is regarded as: exclude it.
+
+
+
+
+ A singleton implementation of .
+
+
+ Here are some examples of using this class:
+
+ To create a scheduler that does not write anything to the database (is not
+ persistent), you can call :
+
+
+ DirectSchedulerFactory.Instance.CreateVolatileScheduler(10); // 10 threads
+ // don't forget to start the scheduler:
+ DirectSchedulerFactory.Instance.GetScheduler().Start();
+
+
+ Several create methods are provided for convenience. All create methods
+ eventually end up calling the create method with all the parameters:
+
+
+ public void createScheduler(String schedulerName, string schedulerInstanceId, ThreadPool threadPool, JobStore jobStore, string rmiRegistryHost, int rmiRegistryPort)
+
+
+ Here is an example of using this method:
+
+
+ // create the thread pool
+ SimpleThreadPool threadPool = new SimpleThreadPool(maxThreads, Thread.NORM_PRIORITY);
+ threadPool.Initialize();
+ // create the job store
+ JobStore jobStore = new RAMJobStore();
+ jobStore.Initialize();
+
+ DirectSchedulerFactory.Instance.CreateScheduler("My Quartz Scheduler", "My Instance", threadPool, jobStore, "localhost", 1099);
+ // don't forget to start the scheduler:
+ DirectSchedulerFactory.Instance.GetScheduler("My Quartz Scheduler", "My Instance").start();
+
+ >
+ Mohammad Rezaei
+ James House
+
+
+
+
+
+ Provides a mechanism for obtaining client-usable handles to
+ instances.
+
+
+
+ James House
+
+
+
+ Returns a client-usable handle to a .
+
+
+
+
+ Returns a handle to the Scheduler with the given name, if it exists.
+
+
+
+
+ Returns handles to all known Schedulers (made by any SchedulerFactory
+ within this app domain.).
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Creates an in memory job store ()
+ The thread priority is set to Thread.NORM_PRIORITY
+
+ The number of threads in the thread pool
+
+
+
+ Creates a proxy to a remote scheduler. This scheduler can be retrieved
+ via .
+
+ SchedulerException
+
+
+
+ Same as ,
+ with the addition of specifying the scheduler name and instance ID. This
+ scheduler can only be retrieved via .
+
+ The name for the scheduler.
+ The instance ID for the scheduler.
+
+ SchedulerException
+
+
+
+ Creates a scheduler using the specified thread pool and job store. This
+ scheduler can be retrieved via DirectSchedulerFactory#GetScheduler()
+
+
+ The thread pool for executing jobs
+
+
+ The type of job store
+
+ SchedulerException
+ if initialization failed
+
+
+
+
+ Same as DirectSchedulerFactory#createScheduler(ThreadPool threadPool, JobStore jobStore),
+ with the addition of specifying the scheduler name and instance ID. This
+ scheduler can only be retrieved via DirectSchedulerFactory#getScheduler(String)
+
+ The name for the scheduler.
+ The instance ID for the scheduler.
+ The thread pool for executing jobs
+ The type of job store
+
+
+
+ Creates a scheduler using the specified thread pool and job store and
+ binds it to RMI.
+
+ The name for the scheduler.
+ The instance ID for the scheduler.
+ The thread pool for executing jobs
+ The type of job store
+ The idle wait time. You can specify "-1" for
+ the default value, which is currently 30000 ms.
+ The db failure retry interval.
+
+
+
+ Creates a scheduler using the specified thread pool and job store and
+ binds it to RMI.
+
+ The name for the scheduler.
+ The instance ID for the scheduler.
+ The thread pool for executing jobs
+ The type of job store
+
+ The idle wait time. You can specify TimeSpan.Zero for
+ the default value, which is currently 30000 ms.
+ The db failure retry interval.
+
+
+
+ Returns a handle to the Scheduler produced by this factory.
+
+ you must call createRemoteScheduler or createScheduler methods before
+ calling getScheduler()
+
+
+
+ SchedulerException
+
+
+
+ Returns a handle to the Scheduler with the given name, if it exists.
+
+
+
+
+ Gets the log.
+
+ The log.
+
+
+
+ Gets the instance.
+
+ The instance.
+
+
+
+ Returns a handle to all known Schedulers (made by any
+ StdSchedulerFactory instance.).
+
+
+
+
+
+ An implementation of the interface that remotely
+ proxies all method calls to the equivalent call on a given
+ instance, via remoting or similar technology.
+
+
+
+
+ James House
+
+
+
+ This is the main interface of a Quartz Scheduler.
+
+
+
+ A maintains a registry of
+ s and s. Once
+ registered, the is responsible for executing
+ s when their associated s
+ fire (when their scheduled time arrives).
+
+
+ instances are produced by a
+ . A scheduler that has already been
+ created/initialized can be found and used through the same factory that
+ produced it. After a has been created, it is in
+ "stand-by" mode, and must have its method
+ called before it will fire any s.
+
+
+ s are to be created by the 'client program', by
+ defining a class that implements the interface.
+ objects are then created (also by the client) to
+ define a individual instances of the .
+ instances can then be registered with the
+ via the %IScheduler.ScheduleJob(JobDetail,
+ Trigger)% or %IScheduler.AddJob(JobDetail, bool)% method.
+
+
+ s can then be defined to fire individual
+ instances based on given schedules.
+ s are most useful for one-time firings, or
+ firing at an exact moment in time, with N repeats with a given delay between
+ them. s allow scheduling based on time of day,
+ day of week, day of month, and month of year.
+
+
+ s and s have a name and
+ group associated with them, which should uniquely identify them within a single
+ . The 'group' feature may be useful for creating
+ logical groupings or categorizations of s and
+ s. If you don't have need for assigning a group to a
+ given s of s, then you can use
+ the constant defined on
+ this interface.
+
+
+ Stored s can also be 'manually' triggered through the
+ use of the %IScheduler.TriggerJob(string, string)% function.
+
+
+ Client programs may also be interested in the 'listener' interfaces that are
+ available from Quartz. The interface provides
+ notifications of executions. The
+ interface provides notifications of
+ firings. The
+ interface provides notifications of events and
+ errors.
+
+
+ The setup/configuration of a instance is very
+ customizable. Please consult the documentation distributed with Quartz.
+
+
+
+
+
+
+
+
+
+
+
+ returns true if the given JobGroup
+ is paused
+
+
+
+
+
+
+ returns true if the given TriggerGroup
+ is paused
+
+
+
+
+
+
+ Get a object describiing the settings
+ and capabilities of the scheduler instance.
+
+
+ Note that the data returned is an 'instantaneous' snap-shot, and that as
+ soon as it's returned, the meta data values may be different.
+
+
+
+
+ Return a list of objects that
+ represent all currently executing Jobs in this Scheduler instance.
+
+
+
+ This method is not cluster aware. That is, it will only return Jobs
+ currently executing in this Scheduler instance, not across the entire
+ cluster.
+
+
+ Note that the list returned is an 'instantaneous' snap-shot, and that as
+ soon as it's returned, the true list of executing jobs may be different.
+ Also please read the doc associated with -
+ especially if you're using remoting.
+
+
+
+
+
+
+ Get the names of all groups that are paused.
+
+
+
+
+ Get the global that has
+ the given name.
+
+ Global job listener's name
+
+
+
+
+ Get the global that
+ has the given name.
+
+ Global trigger listener's name
+
+
+
+
+ Starts the 's threads that fire s.
+ When a scheduler is first created it is in "stand-by" mode, and will not
+ fire triggers. The scheduler can also be put into stand-by mode by
+ calling the method.
+
+
+ The misfire/recovery process will be started, if it is the initial call
+ to this method on this scheduler instance.
+
+
+
+
+
+
+
+ Calls after the indicated delay.
+ (This call does not block). This can be useful within applications that
+ have initializers that create the scheduler immediately, before the
+ resources needed by the executing jobs have been fully initialized.
+
+
+
+
+
+
+
+ Temporarily halts the 's firing of s.
+
+
+
+ When is called (to bring the scheduler out of
+ stand-by mode), trigger misfire instructions will NOT be applied
+ during the execution of the method - any misfires
+ will be detected immediately afterward (by the 's
+ normal process).
+
+
+ The scheduler is not destroyed, and can be re-started at any time.
+
+
+
+
+
+
+
+ Halts the 's firing of s,
+ and cleans up all resources associated with the Scheduler. Equivalent to
+ .
+
+
+ The scheduler cannot be re-started.
+
+
+
+
+
+ Halts the 's firing of s,
+ and cleans up all resources associated with the Scheduler.
+
+
+ The scheduler cannot be re-started.
+
+
+ if the scheduler will not allow this method
+ to return until all currently executing jobs have completed.
+
+
+
+
+
+ Add the given to the
+ Scheduler, and associate the given with
+ it.
+
+
+ If the given Trigger does not reference any , then it
+ will be set to reference the Job passed with it into this method.
+
+
+
+
+ Schedule the given with the
+ identified by the 's settings.
+
+
+
+
+ Remove the indicated from the scheduler.
+
+
+
+
+ Remove (delete) the with the
+ given name, and store the new given one - which must be associated
+ with the same job (the new trigger must have the job name & group specified)
+ - however, the new trigger need not have the same name as the old trigger.
+
+
+ The name of the to be replaced.
+
+
+ The group name of the to be replaced.
+
+
+ The new to be stored.
+
+
+ if a with the given
+ name and group was not found and removed from the store, otherwise
+ the first fire time of the newly scheduled trigger.
+
+
+
+
+ Add the given to the Scheduler - with no associated
+ . The will be 'dormant' until
+ it is scheduled with a , or
+ is called for it.
+
+
+ The must by definition be 'durable', if it is not,
+ SchedulerException will be thrown.
+
+
+
+
+ Delete the identified from the Scheduler - and any
+ associated s.
+
+ true if the Job was found and deleted.
+
+
+
+ Trigger the identified
+ (Execute it now) - the generated trigger will be non-volatile.
+
+
+
+
+ Trigger the identified
+ (Execute it now) - the generated trigger will be volatile.
+
+
+
+
+ Trigger the identified
+ (Execute it now) - the generated trigger will be non-volatile.
+
+ the name of the Job to trigger
+ the group name of the Job to trigger
+
+ the (possibly ) JobDataMap to be
+ associated with the trigger that fires the job immediately.
+
+
+
+
+ Trigger the identified
+ (Execute it now) - the generated trigger will be volatile.
+
+ the name of the Job to trigger
+ the group name of the Job to trigger
+
+ the (possibly ) JobDataMap to be
+ associated with the trigger that fires the job immediately.
+
+
+
+
+ Pause the with the given
+ name - by pausing all of its current s.
+
+
+
+
+ Pause all of the s in the
+ given group - by pausing all of their s.
+
+
+ The Scheduler will "remember" that the group is paused, and impose the
+ pause on any new jobs that are added to the group while the group is
+ paused.
+
+
+
+
+
+ Pause the with the given name.
+
+
+
+
+ Pause all of the s in the given group.
+
+
+ The Scheduler will "remember" that the group is paused, and impose the
+ pause on any new triggers that are added to the group while the group is
+ paused.
+
+
+
+
+
+ Resume (un-pause) the with
+ the given name.
+
+
+ If any of the 's s missed one
+ or more fire-times, then the 's misfire
+ instruction will be applied.
+
+
+
+
+ Resume (un-pause) all of the s
+ in the given group.
+
+
+ If any of the s had s that
+ missed one or more fire-times, then the 's
+ misfire instruction will be applied.
+
+
+
+
+
+ Resume (un-pause) the with the given
+ name.
+
+
+ If the missed one or more fire-times, then the
+ 's misfire instruction will be applied.
+
+
+
+
+ Resume (un-pause) all of the s in the
+ given group.
+
+
+ If any missed one or more fire-times, then the
+ 's misfire instruction will be applied.
+
+
+
+
+
+ Pause all triggers - similar to calling
+ on every group, however, after using this method
+ must be called to clear the scheduler's state of 'remembering' that all
+ new triggers will be paused as they are added.
+
+
+ When is called (to un-pause), trigger misfire
+ instructions WILL be applied.
+
+
+
+
+
+
+
+ Resume (un-pause) all triggers - similar to calling
+ on every group.
+
+
+ If any missed one or more fire-times, then the
+ 's misfire instruction will be applied.
+
+
+
+
+
+ Get the names of all the s in the given group.
+
+
+
+
+ Get all s that are associated with the
+ identified .
+
+
+
+
+ Get the names of all the s in the given
+ group.
+
+
+
+
+ Get the for the
+ instance with the given name and group.
+
+
+
+
+ Get the instance with the given name and
+ group.
+
+
+
+
+ Get the current state of the identified .
+
+
+
+
+
+
+
+
+
+
+ Add (register) the given to the Scheduler.
+
+ Name of the calendar.
+ The calendar.
+ if set to true [replace].
+ whether or not to update existing triggers that
+ referenced the already existing calendar so that they are 'correct'
+ based on the new trigger.
+
+
+
+ Delete the identified from the Scheduler.
+
+ Name of the calendar.
+
+ true if the Calendar was found and deleted.
+
+
+
+
+ Get the instance with the given name.
+
+
+
+
+ Get the names of all registered .
+
+ An array of calendar names.
+
+
+
+ Request the interruption, within this Scheduler instance, of all
+ currently executing instances of the identified , which
+ must be an implementor of the interface.
+
+
+
+ If more than one instance of the identified job is currently executing,
+ the method will be called on
+ each instance. However, there is a limitation that in the case that
+ on one instances throws an exception, all
+ remaining instances (that have not yet been interrupted) will not have
+ their method called.
+
+
+
+ If you wish to interrupt a specific instance of a job (when more than
+ one is executing) you can do so by calling
+ to obtain a handle
+ to the job instance, and then invoke on it
+ yourself.
+
+
+ This method is not cluster aware. That is, it will only interrupt
+ instances of the identified InterruptableJob currently executing in this
+ Scheduler instance, not across the entire cluster.
+
+
+
+
+
+ true is at least one instance of the identified job was found and interrupted.
+
+
+
+
+
+
+ Add the given to the 's
+ global list.
+
+
+ Listeners in the 'global' list receive notification of execution events
+ for ALL s.
+
+
+
+
+ Add the given to the 's
+ list, of registered s.
+
+
+
+
+ Remove the given from the 's
+ list of global listeners.
+
+
+ true if the identifed listener was found in the list, and removed.
+
+
+
+
+ Remove the identifed from the 's
+ list of global listeners.
+
+ Global job listener's name
+ true if the identifed listener was found in the list, and removed
+
+
+
+ Remove the identifed from the 's
+ list of registered listeners.
+
+
+ true if the identifed listener was found in the list, and removed.
+
+
+
+
+ Get the non-global that has
+ the given name.
+
+
+
+
+ Add the given to the 's
+ global list.
+
+
+ Listeners in the 'global' list receive notification of execution events
+ for ALL s.
+
+
+
+
+ Add the given to the 's
+ list, of registered s.
+
+
+
+
+ Remove the given from the 's
+ list of global listeners.
+
+
+ true if the identifed listener was found in the list, and removed.
+
+
+
+
+ Remove the identifed from the 's
+ list of global listeners.
+
+ The name.
+ true if the identifed listener was found in the list, and removed.
+
+
+
+ Remove the identifed from the
+ 's list of registered listeners.
+
+
+ true if the identifed listener was found in the list, and removed.
+
+
+
+
+ Get the non-global that
+ has the given name.
+
+
+
+
+ Register the given with the
+
+
+
+
+ Remove the given from the
+ .
+
+ true if the identifed listener was found in the list, and
+ removed.
+
+
+
+
+ Returns the name of the .
+
+
+
+
+ Returns the instance Id of the .
+
+
+
+
+ Returns the of the .
+
+
+
+
+ Reports whether the is in stand-by mode.
+
+
+
+
+
+
+ Reports whether the has been Shutdown.
+
+
+
+
+ Set the that will be responsible for producing
+ instances of classes.
+
+
+ JobFactories may be of use to those wishing to have their application
+ produce instances via some special mechanism, such as to
+ give the opertunity for dependency injection.
+
+
+
+
+
+ Get the names of all known groups.
+
+
+
+
+ Get the names of all known groups.
+
+
+
+
+ Get the names of all registered s.
+
+
+
+
+ Get a List containing all of the s in
+ the 'sglobal list.
+
+
+
+
+ Get a Set containing the names of all the non-global
+ s registered with the .
+
+
+
+
+ Get a List containing all of the
+ s in the 'sglobal list.
+
+
+
+
+ Get a Set containing the names of all the non-global
+ s registered with the .
+
+
+
+
+ Get a List containing all of the
+ s registered with the .
+
+
+
+
+ Whether the scheduler has been started.
+
+
+ Note: This only reflects whether has ever
+ been called on this Scheduler, so it will return even
+ if the is currently in standby mode or has been
+ since shutdown.
+
+
+
+
+
+
+
+ Construct a instance to proxy the given
+ RemoteableQuartzScheduler instance, and with the given
+ .
+
+
+
+
+ returns true if the given JobGroup
+ is paused
+
+
+
+
+
+
+ returns true if the given TriggerGroup
+ is paused
+
+
+
+
+
+
+ Get a object describiing the settings
+ and capabilities of the scheduler instance.
+
+ Note that the data returned is an 'instantaneous' snap-shot, and that as
+ soon as it's returned, the meta data values may be different.
+
+
+
+
+
+
+ Calls the equivalent method on the 'proxied' .
+
+
+
+
+ Get the global that has
+ the given name.
+
+
+
+
+
+
+ Get the global that
+ has the given name.
+
+
+
+
+
+
+ Get the names of all groups that are paused.
+
+
+
+
+
+ Calls the equivalent method on the 'proxied' .
+
+
+
+
+ Calls the equivalent method on the 'proxied' .
+
+
+
+
+ Calls the equivalent method on the 'proxied' .
+
+
+
+
+ Calls the equivalent method on the 'proxied' .
+
+
+
+
+ Calls the equivalent method on the 'proxied' .
+
+
+
+
+ Calls the equivalent method on the 'proxied' ,
+ passing the associated with this
+ instance.
+
+
+
+
+ Calls the equivalent method on the 'proxied' ,
+ passing the associated with this
+ instance.
+
+
+
+
+ Calls the equivalent method on the 'proxied' ,
+ passing the associated with this
+ instance.
+
+
+
+
+ Calls the equivalent method on the 'proxied' ,
+ passing the associated with this
+ instance.
+
+
+
+
+ Calls the equivalent method on the 'proxied' ,
+ passing the associated with this
+ instance.
+
+
+
+
+ Calls the equivalent method on the 'proxied' ,
+ passing the associated with this
+ instance.
+
+
+
+
+ Calls the equivalent method on the 'proxied' ,
+ passing the associated with this
+ instance.
+
+
+
+
+ Calls the equivalent method on the 'proxied' ,
+ passing the associated with this
+ instance.
+
+
+
+
+ Calls the equivalent method on the 'proxied' ,
+ passing the associated with this
+ instance.
+
+
+
+
+ Calls the equivalent method on the 'proxied' ,
+ passing the associated with this
+ instance.
+
+
+
+
+ Calls the equivalent method on the 'proxied' ,
+ passing the associated with this
+ instance.
+
+
+
+
+ Calls the equivalent method on the 'proxied' ,
+ passing the associated with this
+ instance.
+
+
+
+
+ Calls the equivalent method on the 'proxied' ,
+ passing the associated with this
+ instance.
+
+
+
+
+ Calls the equivalent method on the 'proxied' ,
+ passing the associated with this
+ instance.
+
+
+
+
+ Calls the equivalent method on the 'proxied' ,
+ passing the associated with this
+ instance.
+
+
+
+
+ Calls the equivalent method on the 'proxied' ,
+ passing the associated with this
+ instance.
+
+
+
+
+ Calls the equivalent method on the 'proxied' ,
+ passing the associated with this
+ instance.
+
+
+
+
+ Calls the equivalent method on the 'proxied' ,
+ passing the associated with this
+ instance.
+
+
+
+
+ Calls the equivalent method on the 'proxied' ,
+ passing the associated with this
+ instance.
+
+
+
+
+ Calls the equivalent method on the 'proxied' ,
+ passing the associated with this
+ instance.
+
+
+
+
+ Calls the equivalent method on the 'proxied' ,
+ passing the associated with this
+ instance.
+
+
+
+
+ Calls the equivalent method on the 'proxied' ,
+ passing the associated with this
+ instance.
+
+
+
+
+ Calls the equivalent method on the 'proxied' ,
+ passing the associated with this
+ instance.
+
+
+
+
+ Calls the equivalent method on the 'proxied' ,
+ passing the associated with this
+ instance.
+
+
+
+
+ Calls the equivalent method on the 'proxied' ,
+ passing the associated with this
+ instance.
+
+
+
+
+ Calls the equivalent method on the 'proxied' ,
+ passing the associated with this
+ instance.
+
+
+
+
+ Calls the equivalent method on the 'proxied' ,
+ passing the associated with this
+ instance.
+
+
+
+
+ Calls the equivalent method on the 'proxied' ,
+ passing the associated with this
+ instance.
+
+
+
+
+ Calls the equivalent method on the 'proxied' ,
+ passing the associated with this
+ instance.
+
+
+
+
+ Get the names of all registered .
+
+
+
+
+
+ Calls the equivalent method on the 'proxied' ,
+ passing the associated with this
+ instance.
+
+
+
+
+ Calls the equivalent method on the 'proxied' ,
+ passing the associated with this
+ instance.
+
+
+
+
+ Calls the equivalent method on the 'proxied' ,
+ passing the associated with this
+ instance.
+
+
+
+
+ Remove the identifed from the 's
+ list of global listeners.
+
+
+
+ true if the identifed listener was found in the list, and removed
+
+
+
+
+ Calls the equivalent method on the 'proxied' ,
+ passing the associated with this
+ instance.
+
+
+
+
+ Calls the equivalent method on the 'proxied' .
+
+
+
+
+ Calls the equivalent method on the 'proxied' .
+
+
+
+
+ Calls the equivalent method on the 'proxied' .
+
+
+
+
+ Calls the equivalent method on the 'proxied' .
+
+
+
+
+ Remove the identifed from the 's
+ list of global listeners.
+
+ The name.
+
+ true if the identifed listener was found in the list, and removed.
+
+
+
+
+ Calls the equivalent method on the 'proxied' .
+
+
+
+
+ Calls the equivalent method on the 'proxied' .
+
+
+
+
+ Calls the equivalent method on the 'proxied' .
+
+
+
+
+ Calls the equivalent method on the 'proxied' .
+
+
+
+
+ Calls the equivalent method on the 'proxied' .
+
+
+
+
+ Returns the name of the .
+
+
+
+
+ Returns the instance Id of the .
+
+
+
+
+ Gets or sets the remote scheduler address.
+
+ The remote scheduler address.
+
+
+
+ Returns the of the .
+
+
+
+
+ Calls the equivalent method on the 'proxied' .
+
+
+
+
+ Gets a value indicating whether this instance is paused.
+
+ true if this instance is paused; otherwise, false.
+
+
+
+ Calls the equivalent method on the 'proxied' .
+
+
+
+
+ Calls the equivalent method on the 'proxied' ,
+ passing the associated with this
+ instance.
+
+
+
+
+ Calls the equivalent method on the 'proxied' ,
+ passing the associated with this
+ instance.
+
+
+
+
+ Calls the equivalent method on the 'proxied' ,
+ passing the associated with this
+ instance.
+
+
+
+
+ Calls the equialent method on the 'proxied' .
+
+
+
+
+ Calls the equivalent method on the 'proxied' .
+
+
+
+
+ Calls the equivalent method on the 'proxied' .
+
+
+
+
+ Calls the equivalent method on the 'proxied' .
+
+
+
+
+ Calls the equivalent method on the 'proxied' .
+
+
+
+
+ Set the that will be responsible for producing
+ instances of classes.
+
+ JobFactories may be of use to those wishing to have their application
+ produce instances via some special mechanism, such as to
+ give the opertunity for dependency injection.
+
+
+
+
+ SchedulerException
+
+
+
+ Whether the scheduler has been started.
+
+
+
+ Note: This only reflects whether has ever
+ been called on this Scheduler, so it will return even
+ if the is currently in standby mode or has been
+ since shutdown.
+
+
+
+
+
+
+
+ Holds references to Scheduler instances - ensuring uniqueness, and
+ preventing garbage collection, and allowing 'global' lookups.
+
+ James House
+ Marko Lahma (.NET)
+
+
+
+ Binds the specified sched.
+
+ The sched.
+
+
+
+ Removes the specified sched name.
+
+ Name of the sched.
+
+
+
+
+ Lookups the specified sched name.
+
+ Name of the sched.
+
+
+
+
+ Lookups all.
+
+
+
+
+
+ Gets the singleton instance.
+
+ The instance.
+
+
+
+ Responsible for creating the instances of
+ to be used within the instance.
+
+ This implementation does not re-use any objects, it simply makes a new
+ JobRunShell each time is called.
+
+
+ James House
+
+
+
+ Initialize the factory, providing a handle to the
+ that should be made available within the and
+ the s within it, and a handle to the
+ that the shell will use in its own
+ operations with the .
+
+
+
+
+ Called by the to obtain instances of
+ .
+
+
+
+
+ Called by the to return instances of
+ .
+
+
+
+
+ An implementation of the interface that directly
+ proxies all method calls to the equivalent call on a given
+ instance.
+
+
+
+
+ James House
+
+
+
+ returns true if the given JobGroup
+ is paused
+
+
+
+
+
+
+ returns true if the given TriggerGroup
+ is paused
+
+
+
+
+
+
+ Get a object describiing the settings
+ and capabilities of the scheduler instance.
+
+ Note that the data returned is an 'instantaneous' snap-shot, and that as
+ soon as it's returned, the meta data values may be different.
+
+
+
+
+
+
+ Calls the equivalent method on the 'proxied' .
+
+
+
+
+
+
+
+
+ Get the global that has
+ the given name.
+
+
+
+
+
+
+ Get the global that
+ has the given name.
+
+
+
+
+
+
+ Construct a instance to proxy the given
+ instance, and with the given .
+
+
+
+
+ Calls the equivalent method on the 'proxied' .
+
+
+
+
+ Calls the equivalent method on the 'proxied' .
+
+
+
+
+ Calls the equivalent method on the 'proxied' .
+
+
+
+
+ Calls the equivalent method on the 'proxied' .
+
+
+
+
+ Calls the equivalent method on the 'proxied' .
+
+
+
+
+ Calls the equivalent method on the 'proxied' ,
+ passing the associated with this
+ instance.
+
+
+
+
+ Calls the equivalent method on the 'proxied' ,
+ passing the associated with this
+ instance.
+
+
+
+
+ Calls the equivalent method on the 'proxied' ,
+ passing the associated with this
+ instance.
+
+
+
+
+ Calls the equivalent method on the 'proxied' ,
+ passing the associated with this
+ instance.
+
+
+
+
+ Calls the equivalent method on the 'proxied' ,
+ passing the associated with this
+ instance.
+
+
+
+
+ Calls the equivalent method on the 'proxied' ,
+ passing the associated with this
+ instance.
+
+
+
+
+ Calls the equivalent method on the 'proxied' ,
+ passing the associated with this
+ instance.
+
+
+
+
+ Calls the equivalent method on the 'proxied' ,
+ passing the associated with this
+ instance.
+
+
+
+
+ Calls the equivalent method on the 'proxied' ,
+ passing the associated with this
+ instance.
+
+
+
+
+ Calls the equivalent method on the 'proxied' ,
+ passing the associated with this
+ instance.
+
+
+
+
+ Calls the equivalent method on the 'proxied' ,
+ passing the associated with this
+ instance.
+
+
+
+
+ Calls the equivalent method on the 'proxied' ,
+ passing the associated with this
+ instance.
+
+
+
+
+ Calls the equivalent method on the 'proxied' ,
+ passing the associated with this
+ instance.
+
+
+
+
+ Calls the equivalent method on the 'proxied' ,
+ passing the associated with this
+ instance.
+
+
+
+
+ Calls the equivalent method on the 'proxied' ,
+ passing the associated with this
+ instance.
+
+
+
+
+ Calls the equivalent method on the 'proxied' ,
+ passing the associated with this
+ instance.
+
+
+
+
+ Calls the equivalent method on the 'proxied' ,
+ passing the associated with this
+ instance.
+
+
+
+
+ Calls the equivalent method on the 'proxied' ,
+ passing the associated with this
+ instance.
+
+
+
+
+ Calls the equivalent method on the 'proxied' ,
+ passing the associated with this
+ instance.
+
+
+
+
+ Calls the equivalent method on the 'proxied' ,
+ passing the associated with this
+ instance.
+
+
+
+
+ Calls the equivalent method on the 'proxied' ,
+ passing the associated with this
+ instance.
+
+
+
+
+ Calls the equivalent method on the 'proxied' ,
+ passing the associated with this
+ instance.
+
+
+
+
+ Calls the equivalent method on the 'proxied' ,
+ passing the associated with this
+ instance.
+
+
+
+
+ Calls the equivalent method on the 'proxied' ,
+ passing the associated with this
+ instance.
+
+
+
+
+ Calls the equivalent method on the 'proxied' ,
+ passing the associated with this
+ instance.
+
+
+
+
+ Calls the equivalent method on the 'proxied' ,
+ passing the associated with this
+ instance.
+
+
+
+
+ Calls the equivalent method on the 'proxied' ,
+ passing the associated with this
+ instance.
+
+
+
+
+ Calls the equivalent method on the 'proxied' ,
+ passing the associated with this
+ instance.
+
+
+
+
+ Calls the equivalent method on the 'proxied' ,
+ passing the associated with this
+ instance.
+
+
+
+
+ Get the names of all registered .
+
+
+
+
+
+ Calls the equivalent method on the 'proxied' .
+
+
+
+
+ Calls the equivalent method on the 'proxied' .
+
+
+
+
+ Calls the equivalent method on the 'proxied' .
+
+
+
+
+ Remove the identifed from the 's
+ list of global listeners.
+
+
+
+ true if the identifed listener was found in the list, and removed
+
+
+
+
+ Calls the equivalent method on the 'proxied' .
+
+
+
+
+ Calls the equivalent method on the 'proxied' .
+
+
+
+
+ Calls the equivalent method on the 'proxied' .
+
+
+
+
+ Calls the equivalent method on the 'proxied' .
+
+
+
+
+ Calls the equivalent method on the 'proxied' .
+
+
+
+
+ Remove the identifed from the 's
+ list of global listeners.
+
+ The name.
+
+ true if the identifed listener was found in the list, and removed.
+
+
+
+
+ Calls the equivalent method on the 'proxied' .
+
+
+
+
+ Calls the equivalent method on the 'proxied' .
+
+
+
+
+ Calls the equivalent method on the 'proxied' .
+
+
+
+
+ Calls the equivalent method on the 'proxied' .
+
+
+
+
+ Request the interruption, within this Scheduler instance, of all
+ currently executing instances of the identified , which
+ must be an implementor of the interface.
+
+
+
+ If more than one instance of the identified job is currently executing,
+ the method will be called on
+ each instance. However, there is a limitation that in the case that
+ on one instances throws an exception, all
+ remaining instances (that have not yet been interrupted) will not have
+ their method called.
+
+
+ If you wish to interrupt a specific instance of a job (when more than
+ one is executing) you can do so by calling
+ to obtain a handle
+ to the job instance, and then invoke on it
+ yourself.
+
+
+ This method is not cluster aware. That is, it will only interrupt
+ instances of the identified InterruptableJob currently executing in this
+ Scheduler instance, not across the entire cluster.
+
+
+
+
+ true is at least one instance of the identified job was found and interrupted.
+ UnableToInterruptJobException if the job does not implement
+
+
+
+
+
+ Returns the name of the .
+
+
+
+
+ Returns the instance Id of the .
+
+
+
+
+ Returns the of the .
+
+
+
+
+ Whether the scheduler has been started.
+
+
+
+ Note: This only reflects whether has ever
+ been called on this Scheduler, so it will return even
+ if the is currently in standby mode or has been
+ since shutdown.
+
+
+
+
+
+
+
+ Calls the equivalent method on the 'proxied' .
+
+
+
+
+ Calls the equivalent method on the 'proxied' .
+
+
+
+
+ Calls the equivalent method on the 'proxied' ,
+ passing the associated with this
+ instance.
+
+
+
+
+ Calls the equivalent method on the 'proxied' ,
+ passing the associated with this
+ instance.
+
+
+
+
+ Calls the equivalent method on the 'proxied' ,
+ passing the associated with this
+ instance.
+
+
+
+
+ Calls the equivalent method on the 'proxied' .
+
+
+
+
+ Calls the equivalent method on the 'proxied' .
+
+
+
+
+ Calls the equivalent method on the 'proxied' .
+
+
+
+
+ Calls the equivalent method on the 'proxied' .
+
+
+
+
+ Calls the equivalent method on the 'proxied' .
+
+
+
+
+
+
+
+
+ An implementation of that
+ does all of it's work of creating a instance
+ based on the contenents of a properties file.
+
+
+
+ By default a properties are loaded from App.config's quartz section.
+ If that fails, then the "quartz.properties"
+ file located (as a embedded resource) in Quartz.dll is loaded. If you
+ wish to use a file other than these defaults, you must define the system
+ property 'quartz.properties' to point to the file you want.
+
+
+
+ See the sample properties that are distributed with Quartz for
+ information about the various settings available within the file.
+
+
+
+ Alternativly, you can explicitly Initialize the factory by calling one of
+ the methods before calling .
+
+
+
+ Instances of the specified ,
+ , classes will be created
+ by name, and then any additional properties specified for them in the config
+ file will be set on the instance by calling an equivalent 'set' method. For
+ example if the properties file contains the property 'quartz.jobStore.
+ myProp = 10' then after the JobStore class has been instantiated, the property
+ 'MyProp' will be set with the value. Type conversion to primitive CLR types
+ (int, long, float, double, boolean, enum and string) are performed before calling
+ the property's setter method.
+
+
+ James House
+ Anthony Eden
+ Mohammad Rezaei
+ Marko Lahma (.NET)
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The props.
+
+
+
+ Initialize the with
+ the contenents of a Properties file.
+
+
+ By default a properties file named "quartz.properties" is loaded from
+ the 'current working directory'. If that fails, then the
+ "quartz.properties" file located (as a resource) in the org/quartz
+ package is loaded. If you wish to use a file other than these defaults,
+ you must define the system property 'quartz.properties' to point to
+ the file you want.
+
+
+
+
+
+ Creates a new name value collection and overrides its values
+ with system values (environment variables).
+
+ The base properties to override.
+ A new NameValueCollection instance.
+
+
+
+ Initialize the with
+ the contenents of the given Properties object.
+
+
+
+
+
+
+
+ Returns a handle to the Scheduler produced by this factory.
+
+
+
+ If one of the methods has not be previously
+ called, then the default (no-arg) method
+ will be called by this method.
+
+
+
+
+ Returns a handle to the Scheduler with the given name, if it exists (if
+ it has already been instantiated).
+
+
+
+
+
+ Returns a handle to the default Scheduler, creating it if it does not
+ yet exist.
+
+
+
+
+
+
+ Returns a handle to all known Schedulers (made by any
+ StdSchedulerFactory instance.).
+
+
+
+
+
+ Inspects a file and compares whether it's "last modified date" has changed
+ since the last time it was inspected. If the file has been updated, the
+ job invokes a "call-back" method on an identified
+ that can be found in the
+ .
+
+ James House
+
+
+
+
+ A marker interface for s that
+ wish to have their state maintained between executions.
+
+
+ instances follow slightly different rules from
+ regular instances. The key difference is that their
+ associated is re-persisted after every
+ execution of the job, thus preserving state for the next execution. The
+ other difference is that stateful jobs are not allowed to Execute
+ concurrently, which means new triggers that occur before the completion of
+ the method will be delayed.
+
+
+
+
+
+ James House
+ Marko Lahma (.NET)
+
+
+
+ The interface to be implemented by classes which represent a 'job' to be
+ performed.
+
+
+ Instances of this interface must have a
+ no-argument constructor. provides a mechanism for 'instance member data'
+ that may be required by some implementations of this interface.
+
+
+
+
+
+ James House
+ Marko Lahma (.NET)
+
+
+
+ Called by the when a
+ fires that is associated with the .
+
+
+ The implementation may wish to set a result object on the
+ JobExecutionContext before this method exits. The result itself
+ is meaningless to Quartz, but may be informative to
+ s or
+ s that are watching the job's
+ execution.
+
+ The execution context.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Called by the when a
+ fires that is associated with the .
+
+ The implementation may wish to set a result object on the
+ JobExecutionContext before this method exits. The result itself
+ is meaningless to Quartz, but may be informative to
+ s or
+ s that are watching the job's
+ execution.
+
+
+ The execution context.
+
+
+
+
+
+ Gets the last modified date.
+
+ Name of the file.
+
+
+
+
+ Gets the log.
+
+ The log.
+
+
+
+ Interface for objects wishing to receive a 'call-back' from a
+ .
+
+ James House
+
+
+
+
+ Ãnforms that certain file has been updated.
+
+ Name of the file.
+
+
+
+ Built in job for executing native executables in a separate process.
+
+ Matthew Payne
+ James House
+ Steinar Overbeck Cook
+
+
+
+ Required parameter that specifies the name of the command (executable)
+ to be ran.
+
+
+
+
+ Optional parameter that specifies the parameters to be passed to the
+ executed command.
+
+
+
+
+ Optional parameter (value should be 'true' or 'false') that specifies
+ whether the job should wait for the execution of the native process to
+ complete before it completes.
+
+
Defaults to .
+
+
+
+
+ Optional parameter (value should be 'true' or 'false') that specifies
+ whether the spawned process's stdout and stderr streams should be
+ consumed. If the process creates output, it is possible that it might
+ 'hang' if the streams are not consumed.
+
+
Defaults to .
+
+
+
+
+ Optional parameter that specifies the workling directory to be used by
+ the executed command.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Called by the when a
+ fires that is associated with the .
+
+ The implementation may wish to set a result object on the
+ JobExecutionContext before this method exits. The result itself
+ is meaningless to Quartz, but may be informative to
+ s or
+ s that are watching the job's
+ execution.
+
+
+
+
+
+
+ Gets the log.
+
+ The log.
+
+
+
+ Consumes data from the given input stream until EOF and prints the data to stdout
+
+ cooste
+ James House
+
+
+
+ Initializes a new instance of the class.
+
+ The enclosing instance.
+ The input stream.
+ The type.
+
+
+
+ Runs this object as a separate thread, printing the contents of the input stream
+ supplied during instantiation, to either Console. or stderr
+
+
+
+
+ An implementation of Job, that does absolutely nothing - useful for system
+ which only wish to use s
+ and s, rather than writing
+ Jobs that perform work.
+
+ James House
+
+
+
+ Do nothing.
+
+
+
+
+ A Job which sends an e-mail with the configured content to the configured
+ recipient.
+
+ James House
+ Marko Lahma (.NET)
+
+
+ The host name of the smtp server. REQUIRED.
+
+
+ The e-mail address to send the mail to. REQUIRED.
+
+
+ The e-mail address to cc the mail to. Optional.
+
+
+ The e-mail address to claim the mail is from. REQUIRED.
+
+
+ The e-mail address the message should say to reply to. Optional.
+
+
+ The subject to place on the e-mail. REQUIRED.
+
+
+ The e-mail message body. REQUIRED.
+
+
+
+ Executes the job.
+
+ The job execution context.
+
+
+
+ Holds a List of references to SchedulerListener instances and broadcasts all
+ events to them (in order).
+
+
+ This may be more convenient than registering all of the listeners
+ directly with the Scheduler, and provides the flexibility of easily changing
+ which listeners get notified.
+
+
+
+ James House
+
+
+
+ Construct an instance with the given List of listeners.
+
+ The initial List of SchedulerListeners to broadcast to.
+
+
+
+ Holds a List of references to JobListener instances and broadcasts all
+ events to them (in order) - if the event is not excluded via filtering
+ (read on).
+
+
+
+ The broadcasting behavior of this listener to delegate listeners may be
+ more convenient than registering all of the listeners directly with the
+ Trigger, and provides the flexibility of easily changing which listeners
+ get notified.
+
+
+
+ You may also register a number of Regular Expression patterns to match
+ the events against. If one or more patterns are registered, the broadcast
+ will only take place if the event applies to a job who's name/group
+ matches one or more of the patterns.
+
+
+
+
+
+
+
+ James House
+
+
+ Construct an instance with the given name.
+
+ (Remember to add some delegate listeners!)
+
+ @param name the name of this instance
+
+
+ Construct an instance with the given name, and List of listeners.
+
+ @param name the name of this instance
+ @param listeners the initial List of JobListeners to broadcast to.
+
+
+
+ If one or more name patterns are specified, only events relating to
+ jobs who's name matches the given regular expression pattern
+ will be dispatched to the delegate listeners.
+
+
+
+
+
+ If one or more group patterns are specified, only events relating to
+ jobs who's group matches the given regular expression pattern
+ will be dispatched to the delegate listeners.
+
+
+
+
+
+ Holds a List of references to TriggerListener instances and broadcasts all
+ events to them (in order) - if the event is not excluded via filtering
+ (read on).
+
+
+
+ The broadcasting behavior of this listener to delegate listeners may be
+ more convenient than registering all of the listeners directly with the
+ Trigger, and provides the flexibility of easily changing which listeners
+ get notified.
+
+
+
+ You may also register a number of Regular Expression patterns to match
+ the events against. If one or more patterns are registered, the broadcast
+ will only take place if the event applies to a trigger who's name/group
+ matches one or more of the patterns.
+
+
+
+
+
+
+
+ James House
+
+
+
+ The interface to be implemented by classes that want to be informed when a
+ fires. In general, applications that use a
+ will not have use for this mechanism.
+
+
+
+
+
+ James House
+
+
+
+ Called by the when a
+ has fired, and it's associated
+ is about to be executed.
+
+ It is called before the method of this
+ interface.
+
+
+ The that has fired.
+
+ The that will be passed to the 's method.
+
+
+
+
+ Called by the when a
+ has fired, and it's associated
+ is about to be executed.
+
+ It is called after the method of this
+ interface.
+
+
+ The that has fired.
+ The that will be passed to
+ the 's method.
+ Returns true if job execution should be vetoed, false otherwise.
+
+
+
+ Called by the when a
+ has misfired.
+
+ Consideration should be given to how much time is spent in this method,
+ as it will affect all triggers that are misfiring. If you have lots
+ of triggers misfiring at once, it could be an issue it this method
+ does a lot.
+
+
+ The that has misfired.
+
+
+
+ Called by the when a
+ has fired, it's associated
+ has been executed, and it's method has been
+ called.
+
+ The that was fired.
+
+ The that was passed to the
+ 's method.
+
+
+ The result of the call on the 's method.
+
+
+
+
+ Get the name of the .
+
+
+
+
+ Construct an instance with the given name.
+
+ (Remember to add some delegate listeners!)
+
+ the name of this instance
+
+
+
+ Construct an instance with the given name, and List of listeners.
+
+ the name of this instance
+ the initial List of TriggerListeners to broadcast to
+
+
+
+ If one or more name patterns are specified, only events relating to
+ triggers who's name matches the given regular expression pattern
+ will be dispatched to the delegate listeners.
+
+
+
+
+
+ If one or more group patterns are specified, only events relating to
+ triggers who's group matches the given regular expression pattern
+ will be dispatched to the delegate listeners.
+
+
+
+
+
+ Keeps a collection of mappings of which Job to trigger after the completion
+ of a given job. If this listener is notified of a job completing that has a
+ mapping, then it will then attempt to trigger the follow-up job. This
+ achieves "job chaining", or a "poor man's workflow".
+
+
+
+ Generally an instance of this listener would be registered as a global
+ job listener, rather than being registered directly to a given job.
+
+
+ If for some reason there is a failure creating the trigger for the
+ follow-up job (which would generally only be caused by a rare serious
+ failure in the system, or the non-existence of the follow-up job), an error
+ messsage is logged, but no other action is taken. If you need more rigorous
+ handling of the error, consider scheduling the triggering of the flow-up
+ job within your job itself.
+
+
+ James House
+
+
+
+ A helpful abstract base class for implementors of .
+
+
+
+ The methods in this class are empty so you only need to override the
+ subset for the events you care about.
+
+
+
+ You are required to implement
+ to return the unique name of your .
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Called by the when a
+ is about to be executed (an associated
+ has occured).
+
+ This method will not be invoked if the execution of the Job was vetoed
+ by a .
+
+
+
+
+
+
+
+ Called by the when a
+ was about to be executed (an associated
+ has occured), but a vetoed it's
+ execution.
+
+
+
+
+
+
+ Called by the after a
+ has been executed, and be for the associated 's
+ method has been called.
+
+
+
+
+
+
+ Get the for this class's category.
+ This should be used by subclasses for logging.
+
+
+
+
+ Get the name of the .
+
+
+
+
+
+ Construct an instance with the given name.
+
+ The name of this instance.
+
+
+
+ Add a chain mapping - when the Job identified by the first key completes
+ the job identified by the second key will be triggered.
+
+ a Key with the name and group of the first job
+ a Key with the name and group of the follow-up job
+
+
+
+ A helpful abstract base class for implementors of
+ .
+
+
+
+ The methods in this class are empty so you only need to override the
+ subset for the events
+ you care about.
+
+
+
+ You are required to implement
+ to return the unique name of your .
+
+
+
+
+
+
+ Get the for this
+ class's category. This should be used by subclasses for logging.
+
+
+
+
+ Get the name of the .
+
+
+
+
+
+ Logs a history of all job executions (and execution vetos) via common
+ logging.
+
+
+
+ The logged message is customizable by setting one of the following message
+ properties to a string that conforms to the syntax of .
+
+
+ JobToBeFiredMessage - available message data are:
+
+
Element
+
Data Type
+
Description
+
+
+
0
+
String
+
The Job's Name.
+
+
+
1
+
String
+
The Job's Group.
+
+
+
2
+
Date
+
The current time.
+
+
+
3
+
String
+
The Trigger's name.
+
+
+
4
+
String
+
The Triggers's group.
+
+
+
5
+
Date
+
The scheduled fire time.
+
+
+
6
+
Date
+
The next scheduled fire time.
+
+
+
7
+
Integer
+
The re-fire count from the JobExecutionContext.
+
+
+ The default message text is "Job {1}.{0} fired (by trigger {4}.{3}) at:
+ {2, date, HH:mm:ss MM/dd/yyyy"
+
+
+ JobSuccessMessage - available message data are:
+
+
Element
+
Data Type
+
Description
+
+
+
0
+
String
+
The Job's Name.
+
+
+
1
+
String
+
The Job's Group.
+
+
+
2
+
Date
+
The current time.
+
+
+
3
+
String
+
The Trigger's name.
+
+
+
4
+
String
+
The Triggers's group.
+
+
+
5
+
Date
+
The scheduled fire time.
+
+
+
6
+
Date
+
The next scheduled fire time.
+
+
+
7
+
Integer
+
The re-fire count from the JobExecutionContext.
+
+
+
8
+
Object
+
The string value (toString() having been called) of the result (if any)
+ that the Job set on the JobExecutionContext, with on it. "NULL" if no
+ result was set.
+
+
+ The default message text is "Job {1}.{0} execution complete at {2, date,
+ HH:mm:ss MM/dd/yyyy} and reports: {8"
+
+
+ JobFailedMessage - available message data are:
+
+
Element
+
Data Type
+
Description
+
+
+
0
+
String
+
The Job's Name.
+
+
+
1
+
String
+
The Job's Group.
+
+
+
2
+
Date
+
The current time.
+
+
+
3
+
String
+
The Trigger's name.
+
+
+
4
+
String
+
The Triggers's group.
+
+
+
5
+
Date
+
The scheduled fire time.
+
+
+
6
+
Date
+
The next scheduled fire time.
+
+
+
7
+
Integer
+
The re-fire count from the JobExecutionContext.
+
+
+
8
+
String
+
The message from the thrown JobExecution Exception.
+
+
+
+ The default message text is "Job {1}.{0} execution failed at {2, date,
+ HH:mm:ss MM/dd/yyyy} and reports: {8"
+
+
+ JobWasVetoedMessage - available message data are:
+
+
Element
+
Data Type
+
Description
+
+
+
0
+
String
+
The Job's Name.
+
+
+
1
+
String
+
The Job's Group.
+
+
+
2
+
Date
+
The current time.
+
+
+
3
+
String
+
The Trigger's name.
+
+
+
4
+
String
+
The Triggers's group.
+
+
+
5
+
Date
+
The scheduled fire time.
+
+
+
6
+
Date
+
The next scheduled fire time.
+
+
+
7
+
Integer
+
The re-fire count from the JobExecutionContext.
+
+
+ The default message text is "Job {1}.{0} was vetoed. It was to be fired
+ (by trigger {4}.{3}) at: {2, date, HH:mm:ss MM/dd/yyyy"
+
+
+
+
+
+ Provides an interface for a class to become a "plugin" to Quartz.
+
+
+ Plugins can do virtually anything you wish, though the most interesting ones
+ will obviously interact with the scheduler in some way - either actively: by
+ invoking actions on the scheduler, or passively: by being a ,
+ , and/or .
+
+ If you use to
+ Initialize your Scheduler, it can also create and Initialize your plugins -
+ look at the configuration docs for details.
+
+
+ If you need direct access your plugin, you can have it explicitly put a
+ reference to itself in the 's
+ as part of its
+ method.
+
+
+ James House
+
+
+
+ Called during creation of the in order to give
+ the a chance to Initialize.
+
+
+ At this point, the Scheduler's is not yet
+
+ If you need direct access your plugin, you can have it explicitly put a
+ reference to itself in the 's
+ as part of its
+ method.
+
+
+
+ The name by which the plugin is identified.
+
+
+ The scheduler to which the plugin is registered.
+
+
+
+
+ Called when the associated is started, in order
+ to let the plug-in know it can now make calls into the scheduler if it
+ needs to.
+
+
+
+
+ Called in order to inform the that it
+ should free up all of it's resources because the scheduler is shutting
+ down.
+
+
+
+
+ Called during creation of the in order to give
+ the a chance to Initialize.
+
+
+
+
+ Called when the associated is started, in order
+ to let the plug-in know it can now make calls into the scheduler if it
+ needs to.
+
+
+
+
+ Called in order to inform the that it
+ should free up all of it's resources because the scheduler is shutting
+ down.
+
+
+
+
+ Called by the when a is
+ about to be executed (an associated has occurred).
+
+ This method will not be invoked if the execution of the Job was vetoed by a
+ .
+
+
+
+
+
+
+ Called by the after a
+ has been executed, and be for the associated 's
+ method has been called.
+
+
+
+
+
+
+ Called by the when a
+ was about to be executed (an associated
+ has occured), but a vetoed it's
+ execution.
+
+
+
+
+
+
+ Logger instance to use. Defaults to common logging.
+
+
+
+
+ Get or sets the message that is logged when a Job successfully completes its
+ execution.
+
+
+
+
+ Get or sets the message that is logged when a Job fails its
+ execution.
+
+
+
+
+ Gets or sets the message that is logged when a Job is about to Execute.
+
+
+
+
+ Gets or sets the message that is logged when a Job execution is vetoed by a
+ trigger listener.
+
+
+
+
+ Get the name of the .
+
+
+
+
+
+ Logs a history of all trigger firings via the Jakarta Commons-Logging
+ framework.
+
+
+
+ The logged message is customizable by setting one of the following message
+ properties to a string that conforms to the syntax of .
+
+
+
+ TriggerFiredMessage - available message data are:
+
+
Element
+
Data Type
+
Description
+
+
+
0
+
String
+
The Trigger's Name.
+
+
+
1
+
String
+
The Trigger's Group.
+
+
+
2
+
Date
+
The scheduled fire time.
+
+
+
3
+
Date
+
The next scheduled fire time.
+
+
+
4
+
Date
+
The actual fire time.
+
+
+
5
+
String
+
The Job's name.
+
+
+
6
+
String
+
The Job's group.
+
+
+
7
+
Integer
+
The re-fire count from the JobExecutionContext.
+
+
+
+ The default message text is "Trigger {1}.{0} fired job {6}.{5} at: {4,
+ date, HH:mm:ss MM/dd/yyyy"
+
+
+
+ TriggerMisfiredMessage - available message data are:
+
+
Element
+
Data Type
+
Description
+
+
+
0
+
String
+
The Trigger's Name.
+
+
+
1
+
String
+
The Trigger's Group.
+
+
+
2
+
Date
+
The scheduled fire time.
+
+
+
3
+
Date
+
The next scheduled fire time.
+
+
+
4
+
Date
+
The actual fire time. (the time the misfire was detected/handled)
+
+
+
5
+
String
+
The Job's name.
+
+
+
6
+
String
+
The Job's group.
+
+
+
+ The default message text is "Trigger {1}.{0} misfired job {6}.{5} at:
+ {4, date, HH:mm:ss MM/dd/yyyy}. Should have fired at: {3, date, HH:mm:ss
+ MM/dd/yyyy"
+
+
+
+ TriggerCompleteMessage - available message data are:
+
+
Element
+
Data Type
+
Description
+
+
+
0
+
String
+
The Trigger's Name.
+
+
+
1
+
String
+
The Trigger's Group.
+
+
+
2
+
Date
+
The scheduled fire time.
+
+
+
3
+
Date
+
The next scheduled fire time.
+
+
+
4
+
Date
+
The job completion time.
+
+
+
5
+
String
+
The Job's name.
+
+
+
6
+
String
+
The Job's group.
+
+
+
7
+
Integer
+
The re-fire count from the JobExecutionContext.
+
+
+
8
+
Integer
+
The trigger's resulting instruction code.
+
+
+
9
+
String
+
A human-readable translation of the trigger's resulting instruction
+ code.
+
+
+
+ The default message text is "Trigger {1}.{0} completed firing job
+ {6}.{5} at {4, date, HH:mm:ss MM/dd/yyyy} with resulting trigger instruction
+ code: {9"
+
+
+ James House
+
+
+
+ Called during creation of the in order to give
+ the a chance to Initialize.
+
+
+
+
+ Called when the associated is started, in order
+ to let the plug-in know it can now make calls into the scheduler if it
+ needs to.
+
+
+
+
+ Called in order to inform the that it
+ should free up all of it's resources because the scheduler is shutting
+ down.
+
+
+
+
+ Called by the when a
+ has fired, and it's associated
+ is about to be executed.
+
+ It is called before the method of this
+ interface.
+
+
+ The that has fired.
+ The that will be passed to the 's method.
+
+
+
+ Called by the when a
+ has misfired.
+
+ Consideration should be given to how much time is spent in this method,
+ as it will affect all triggers that are misfiring. If you have lots
+ of triggers misfiring at once, it could be an issue it this method
+ does a lot.
+
+
+ The that has misfired.
+
+
+
+ Called by the when a
+ has fired, it's associated
+ has been executed, and it's method has been
+ called.
+
+ The that was fired.
+ The that was passed to the
+ 's method.
+ The result of the call on the 's method.
+
+
+
+ Called by the when a
+ has fired, and it's associated
+ is about to be executed.
+
+ It is called after the method of this
+ interface.
+
+
+ The that has fired.
+ The that will be passed to
+ the 's method.
+
+
+
+
+ Logger instance to use. Defaults to common logging.
+
+
+
+
+ Get or set the message that is printed upon the completion of a trigger's
+ firing.
+
+
+
+
+ Get or set the message that is printed upon a trigger's firing.
+
+
+
+
+ Get or set the message that is printed upon a trigger's mis-firing.
+
+
+
+
+ Get the name of the .
+
+
+
+
+
+ This plugin catches the event of the VM terminating (such as upon a CRTL-C)
+ and tells the scheuler to Shutdown.
+
+
+ James House
+
+
+
+ Called during creation of the in order to give
+ the a chance to Initialize.
+
+
+
+
+ Called when the associated is started, in order
+ to let the plug-in know it can now make calls into the scheduler if it
+ needs to.
+
+
+
+
+ Called in order to inform the that it
+ should free up all of it's resources because the scheduler is shutting
+ down.
+
+
+
+
+ Determine whether or not the plug-in is configured to cause a clean
+ Shutdown of the scheduler.
+
+ The default value is .
+
+
+
+
+
+
+ Attribute to use with public properties that
+ can be set with Quartz configuration. Attribute can be used to advice
+ parsing to use correct type of time span (milliseconds, seconds, minutes, hours)
+ as it may depend on property.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The rule.
+
+
+
+ Gets the rule.
+
+ The rule.
+
+
+
+ Possible parse rules for s.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This plugin loads XML file(s) to add jobs and schedule them with triggers
+ as the scheduler is initialized, and can optionally periodically scan the
+ file for changes.
+
+
+ The periodically scanning of files for changes is not currently supported in a
+ clustered environment.
+
+ James House
+ Pierre Awaragi
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+
+
+
+
+
+
+ Called during creation of the in order to give
+ the a chance to initialize.
+
+ The name.
+ The scheduler.
+ SchedulerConfigException
+
+
+
+ Called when the associated is started, in order
+ to let the plug-in know it can now make calls into the scheduler if it
+ needs to.
+
+
+
+ Helper method for generating unique job/trigger name for the
+ file scanning jobs (one per FileJob). The unique names are saved
+ in jobTriggerNameSet.
+
+
+
+ Called in order to inform the that it
+ should free up all of it's resources because the scheduler is shutting
+ down.
+
+
+
+
+ Gets the log.
+
+ The log.
+
+
+
+ Comma separated list of file names (with paths) to the XML files that should be read.
+
+
+
+
+ Whether or not jobs defined in the XML file should be overwrite existing
+ jobs with the same name.
+
+
+
+
+ The interval at which to scan for changes to the file.
+ If the file has been changed, it is re-loaded and parsed. The default
+ value for the interval is 0, which disables scanning.
+
+
+
+
+ Whether or not initialization of the plugin should fail (throw an
+ exception) if the file cannot be found. Default is .
+
+
+
+
+ Whether or not the XML should be validated. Default is .
+
+
+
+
+ Whether or not the XML schema should be validated. Default is .
+
+
+
+
+ A uses all of the
+ types that are found in this package in its attempts to load a class, when
+ one scheme is found to work, it is promoted to the scheme that will be used
+ first the next time a class is loaded (in order to improve perfomance).
+
+
+ This approach is used because of the wide variance in class loader behavior
+ between the various environments in which Quartz runs (e.g. disparate
+ application servers, stand-alone, mobile devices, etc.). Because of this
+ disparity, Quartz ran into difficulty with a one class-load style fits-all
+ design. Thus, this class loader finds the approach that works, then
+ 'remembers' it.
+
+ James House
+
+
+
+ Called to give the ClassLoadHelper a chance to Initialize itself,
+ including the oportunity to "steal" the class loader off of the calling
+ thread, which is the thread that is initializing Quartz.
+
+
+
+
+ Return the class with the given name.
+
+
+
+ Finds a resource with a given name. This method returns null if no
+ resource with this name is found.
+
+ name of the desired resource
+
+ a java.net.URL object
+
+
+
+ Finds a resource with a given name. This method returns null if no
+ resource with this name is found.
+
+ name of the desired resource
+
+ a java.io.InputStream object
+
+
+
+
+ that names the scheduler instance using
+ just the machine hostname.
+
+ This class is useful when you know that your scheduler instance will be the
+ only one running on a particular machine. Each time the scheduler is
+ restarted, it will get the same instance id as long as the machine is not
+ renamed.
+
+
+
+
+
+
+
+
+ An IInstanceIdGenerator is responsible for generating the clusterwide unique
+ instance id for a nodde.
+
+ This interface may be of use to those wishing to have specific control over
+ the mechanism by which the instances in their
+ application are named.
+
+
+
+
+
+
+ Generate the instance id for a
+
+
+ The clusterwide unique instance id.
+
+
+
+
+ Generate the instance id for a
+
+ The clusterwide unique instance id.
+
+
+
+ A that uses either the loader of it's own
+ class.
+
+
+
+
+ James House
+
+
+
+ Called to give the ClassLoadHelper a chance to Initialize itself,
+ including the oportunity to "steal" the class loader off of the calling
+ thread, which is the thread that is initializing Quartz.
+
+
+
+ Return the class with the given name.
+
+
+ Finds a resource with a given name. This method returns null if no
+ resource with this name is found.
+
+ name of the desired resource
+
+ a java.net.URL object
+
+
+
+ Finds a resource with a given name. This method returns null if no
+ resource with this name is found.
+
+ name of the desired resource
+
+ a java.io.InputStream object
+
+
+
+
+ A JobFactory that instantiates the Job instance (using the default no-arg
+ constructor, or more specifically: ), and
+ then attempts to set all values in the 's
+ onto bean properties of the .
+
+
+
+
+
+
+ James Houser
+ Marko Lahma (.NET)
+
+
+
+ The default JobFactory used by Quartz - simply calls
+ on the job class.
+
+
+
+ James House
+ Marko Lahma (.NET)
+
+
+
+ A JobFactory is responsible for producing instances of
+ classes.
+
+
+ This interface may be of use to those wishing to have their application
+ produce instances via some special mechanism, such as to
+ give the opertunity for dependency injection.
+
+
+
+
+ James House
+
+
+
+ Called by the scheduler at the time of the trigger firing, in order to
+ produce a instance on which to call Execute.
+
+
+
+ It should be extremely rare for this method to throw an exception -
+ basically only the the case where there is no way at all to instantiate
+ and prepare the Job for execution. When the exception is thrown, the
+ Scheduler will move all triggers associated with the Job into the
+ state, which will require human
+ intervention (e.g. an application restart after fixing whatever
+ configuration problem led to the issue wih instantiating the Job.
+
+
+
+
+ The TriggerFiredBundle from which the
+ and other info relating to the trigger firing can be obtained.
+
+ SchedulerException if there is a problem instantiating the Job.
+ the newly instantiated Job
+
+
+
+
+ Called by the scheduler at the time of the trigger firing, in order to
+ produce a instance on which to call Execute.
+
+
+ It should be extremely rare for this method to throw an exception -
+ basically only the the case where there is no way at all to instantiate
+ and prepare the Job for execution. When the exception is thrown, the
+ Scheduler will move all triggers associated with the Job into the
+ state, which will require human
+ intervention (e.g. an application restart after fixing whatever
+ configuration problem led to the issue wih instantiating the Job.
+
+ The TriggerFiredBundle from which the
+ and other info relating to the trigger firing can be obtained.
+ the newly instantiated Job
+ SchedulerException if there is a problem instantiating the Job.
+
+
+
+ Called by the scheduler at the time of the trigger firing, in order to
+ produce a instance on which to call Execute.
+
+
+
+ It should be extremely rare for this method to throw an exception -
+ basically only the the case where there is no way at all to instantiate
+ and prepare the Job for execution. When the exception is thrown, the
+ Scheduler will move all triggers associated with the Job into the
+ state, which will require human
+ intervention (e.g. an application restart after fixing whatever
+ configuration problem led to the issue wih instantiating the Job.
+
+
+ The TriggerFiredBundle from which the
+ and other info relating to the trigger firing can be obtained.
+ the newly instantiated Job
+ SchedulerException if there is a problem instantiating the Job.
+
+
+
+ Sets the object properties.
+
+ The object to set properties to.
+ The data to set.
+
+
+
+ Whether the JobInstantiation should fail and throw and exception if
+ a key (name) and value (type) found in the JobDataMap does not
+ correspond to a proptery setter on the Job class.
+
+
+
+
+ Get or set whether a warning should be logged if
+ a key (name) and value (type) found in the JobDataMap does not
+ correspond to a proptery setter on the Job class.
+
+
+
+
+ This class implements a that
+ utilizes RAM as its storage device.
+
+ As you should know, the ramification of this is that access is extrememly
+ fast, but the data is completely volatile - therefore this
+ should not be used if true persistence between program shutdowns is
+ required.
+
+
+ James House
+ Sharada Jambula
+ Marko Lahma (.NET)
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Called by the QuartzScheduler before the is
+ used, in order to give the it a chance to Initialize.
+
+
+
+
+ Called by the QuartzScheduler to inform the that
+ the scheduler has started.
+
+
+
+
+ Called by the QuartzScheduler to inform the that
+ it should free up all of it's resources because the scheduler is
+ shutting down.
+
+
+
+
+ Store the given and .
+
+ The scheduling context.
+ The to be stored.
+ The to be stored.
+
+
+
+ Returns true if the given job group is paused.
+
+
+ Job group name
+
+
+
+
+ returns true if the given TriggerGroup is paused.
+
+
+
+
+
+
+
+ Store the given .
+
+ The scheduling context.
+ The to be stored.
+ If , any existing in the
+ with the same name and group should be
+ over-written.
+
+
+
+ Remove (delete) the with the given
+ name, and any s that reference
+ it.
+
+ The scheduling context.
+ The name of the to be removed.
+ The group name of the to be removed.
+
+ if a with the given name and
+ group was found and removed from the store.
+
+
+
+
+ Remove (delete) the with the
+ given name.
+
+ The scheduling context.
+ The name of the to be removed.
+ The group name of the to be removed.
+
+ if a with the given
+ name and group was found and removed from the store.
+
+
+
+
+ Store the given .
+
+ The scheduling context.
+ The to be stored.
+ If , any existing in
+ the with the same name and group should
+ be over-written.
+
+
+
+ Remove (delete) the with the
+ given name.
+
+ The scheduling context.
+ The name of the to be removed.
+ The group name of the to be removed.
+
+ if a with the given
+ name and group was found and removed from the store.
+
+ Whether to delete orpahaned job details from scheduler if job becomes orphaned from removing the trigger.
+
+
+
+ Replaces the trigger.
+
+ The scheduling context.
+ Name of the trigger.
+ Name of the group.
+ The new trigger.
+
+
+
+
+ Retrieve the for the given
+ .
+
+ The scheduling context.
+ The name of the to be retrieved.
+ The group name of the to be retrieved.
+
+ The desired , or null if there is no match.
+
+
+
+
+ Retrieve the given .
+
+ The scheduling context.
+ The name of the to be retrieved.
+ The group name of the to be retrieved.
+
+ The desired , or null if there is no match.
+
+
+
+
+ Get the current state of the identified .
+
+
+
+
+
+
+
+
+
+
+ Store the given .
+
+ The scheduling context.
+ The name.
+ The to be stored.
+ If , any existing
+ in the with the same name and group
+ should be over-written.
+ If , any s existing
+ in the that reference an existing
+ Calendar with the same name with have their next fire time
+ re-computed with the new .
+
+
+
+ Remove (delete) the with the
+ given name.
+
+ If removal of the would result in
+ s pointing to non-existent calendars, then a
+ will be thrown.
+
+ The scheduling context.
+ The name of the to be removed.
+
+ if a with the given name
+ was found and removed from the store.
+
+
+
+
+ Retrieve the given .
+
+ The scheduling context.
+ The name of the to be retrieved.
+
+ The desired , or null if there is no match.
+
+
+
+
+ Get the number of s that are
+ stored in the .
+
+
+
+
+ Get the number of s that are
+ stored in the .
+
+
+
+
+ Get the number of s that are
+ stored in the .
+
+
+
+
+ Get the names of all of the s that
+ have the given group name.
+
+
+
+
+ Get the names of all of the s
+ in the .
+
+ If there are no ICalendars in the given group name, the result should be
+ a zero-length array (not ).
+
+
+
+
+
+ Get the names of all of the s
+ that have the given group name.
+
+
+
+
+ Get the names of all of the
+ groups.
+
+
+
+
+ Get the names of all of the groups.
+
+
+
+
+ Get all of the Triggers that are associated to the given Job.
+
+ If there are no matches, a zero-length array should be returned.
+
+
+
+
+
+ Gets the trigger wrappers for job.
+
+ Name of the job.
+ Name of the group.
+
+
+
+
+ Gets the trigger wrappers for calendar.
+
+ Name of the cal.
+
+
+
+
+ Pause the with the given name.
+
+
+
+
+ Pause all of the s in the given group.
+
+ The JobStore should "remember" that the group is paused, and impose the
+ pause on any new triggers that are added to the group while the group is
+ paused.
+
+
+
+
+
+ Pause the with the given
+ name - by pausing all of its current s.
+
+
+
+
+ Pause all of the s in the
+ given group - by pausing all of their s.
+
+ The JobStore should "remember" that the group is paused, and impose the
+ pause on any new jobs that are added to the group while the group is
+ paused.
+
+
+
+
+
+ Resume (un-pause) the with the given name.
+
+
+ If the missed one or more fire-times, then the
+ 's misfire instruction will be applied.
+
+
+
+
+ Resume (un-pause) all of the s in the
+ given group.
+
+ If any missed one or more fire-times, then the
+ 's misfire instruction will be applied.
+
+
+
+
+
+ Resume (un-pause) the with
+ the given name.
+
+ If any of the 's s missed one
+ or more fire-times, then the 's misfire
+ instruction will be applied.
+
+
+
+
+
+ Resume (un-pause) all of the s
+ in the given group.
+
+ If any of the s had s that
+ missed one or more fire-times, then the 's
+ misfire instruction will be applied.
+
+
+
+
+
+ Pause all triggers - equivalent of calling
+ on every group.
+
+ When is called (to un-pause), trigger misfire
+ instructions WILL be applied.
+
+
+
+
+
+
+ Resume (un-pause) all triggers - equivalent of calling
+ on every trigger group and setting all job groups unpaused />.
+
+ If any missed one or more fire-times, then the
+ 's misfire instruction will be applied.
+
+
+
+
+
+
+ Applies the misfire.
+
+ The trigger wrapper.
+
+
+
+
+ Get a handle to the next trigger to be fired, and mark it as 'reserved'
+ by the calling scheduler.
+
+
+
+
+
+ Inform the that the scheduler no longer plans to
+ fire the given , that it had previously acquired
+ (reserved).
+
+
+
+
+ Inform the that the scheduler is now firing the
+ given (executing its associated ),
+ that it had previously acquired (reserved).
+
+
+
+
+ Inform the that the scheduler has completed the
+ firing of the given (and the execution its
+ associated ), and that the
+ in the given should be updated if the
+ is stateful.
+
+
+
+
+ Sets the state of all triggers of job to specified state.
+
+ Name of the job.
+ The job group.
+ The internal state to set.
+
+
+
+ Peeks the triggers.
+
+
+
+
+
+
+
+
+ The time span by which a trigger must have missed its
+ next-fire-time, in order for it to be considered "misfired" and thus
+ have its misfire instruction applied.
+
+
+
+
+ Gets the fired trigger record id.
+
+ The fired trigger record id.
+
+
+
+ Returns whether this instance supports persistence.
+
+
+
+
+
+
+ Comparer for triggers.
+
+
+
+
+ Possible internal trigger states
+ in RAMJobStore
+
+
+
+
+ Waiting
+
+
+
+
+ Acquired
+
+
+
+
+ Executing
+
+
+
+
+ Complete
+
+
+
+
+ Paused
+
+
+
+
+ Blocked
+
+
+
+
+ Paused and Blocked
+
+
+
+
+ Error
+
+
+
+
+ Helper wrapper class
+
+
+
+
+ The key used
+
+
+
+
+ Job's key
+
+
+
+
+ The trigger
+
+
+
+
+ Current state
+
+
+
+
+ Determines whether the specified is equal to the current .
+
+ The to compare with the current .
+
+ true if the specified is equal to the current ; otherwise, false.
+
+
+
+
+ Serves as a hash function for a particular type. is suitable for use in hashing algorithms and data structures like a hash table.
+
+
+ A hash code for the current .
+
+
+
+
+ Gets the trigger
+
+ The trigger
+
+
+
+ Scheduler exporter that exports scheduler to remoting context.
+
+ Marko Lahma
+
+
+
+ Service interface for scheduler exporters.
+
+ Marko Lahma
+
+
+
+ Binds (exports) scheduler to external context.
+
+
+
+
+
+ Unbinds scheduler from external context.
+
+
+
+
+
+ Registers remoting channel if needed. This is determined
+ by checking whether there is a positive value for port.
+
+
+
+
+ Gets or sets the port used for remoting.
+
+
+
+
+ Gets or sets the name to use when exporting
+ scheduler to remoting context.
+
+
+
+
+ Sets the channel type when registering remoting.
+
+
+
+
+
+ Sets the used when
+ exporting to remoting context. Defaults to
+ .
+
+
+
+
+ A that simply calls .
+
+
+
+ James House
+
+
+
+ Called to give the ClassLoadHelper a chance to Initialize itself,
+ including the oportunity to "steal" the class loader off of the calling
+ thread, which is the thread that is initializing Quartz.
+
+
+
+ Return the class with the given name.
+
+
+
+ Finds a resource with a given name. This method returns null if no
+ resource with this name is found.
+
+ name of the desired resource
+
+ a Uri object
+
+
+
+ Finds a resource with a given name. This method returns null if no
+ resource with this name is found.
+
+ name of the desired resource
+
+ a Stream object
+
+
+
+
+ The default InstanceIdGenerator used by Quartz when instance id is to be
+ automatically generated. Instance id is of the form HOSTNAME + CURRENT_TIME.
+
+
+
+
+
+
+
+
+ Generate the instance id for a
+
+ The clusterwide unique instance id.
+
+
+
+ This is class is a simple implementation of a thread pool, based on the
+ interface.
+
+ objects are sent to the pool with the
+ method, which blocks until a becomes available.
+
+
+
+ The pool has a fixed number of s, and does not grow or
+ shrink based on demand.
+
+
+ James House
+ Juergen Donnerstag
+
+
+
+ The interface to be implemented by classes that want to provide a thread
+ pool for the 's use.
+
+
+ implementation instances should ideally be made
+ for the sole use of Quartz. Most importantly, when the method
+ returns a value of 1 or greater,
+ there must still be at least one available thread in the pool when the
+ method is called a few moments (or
+ many moments) later. If this assumption does not hold true, it may
+ result in extra JobStore queries and updates, and if clustering features
+ are being used, it may result in greater imballance of load.
+
+
+ James House
+
+
+
+ Execute the given in the next
+ available .
+
+
+ The implementation of this interface should not throw exceptions unless
+ there is a serious problem (i.e. a serious misconfiguration). If there
+ are no available threads, rather it should either queue the Runnable, or
+ block until a thread is available, depending on the desired strategy.
+
+
+
+
+ Determines the number of threads that are currently available in in
+ the pool. Useful for determining the number of times
+ can be called before returning
+ false.
+
+
+ The implementation of this method should block until there is at
+ least one available thread.
+
+ the number of currently available threads
+
+
+
+ Called by the QuartzScheduler before the is
+ used, in order to give the it a chance to Initialize.
+
+
+
+
+ Called by the QuartzScheduler to inform the
+ that it should free up all of it's resources because the scheduler is
+ shutting down.
+
+
+
+
+ Gets the size of the pool.
+
+ The size of the pool.
+
+
+
+ Create a new (unconfigured) .
+
+
+
+
+ Create a new with the specified number
+ of s that have the given priority.
+
+
+ the number of worker s in the pool, must
+ be > 0.
+
+
+ the thread priority for the worker threads.
+
+
+
+
+
+ Called by the QuartzScheduler before the is
+ used, in order to give the it a chance to Initialize.
+
+
+
+
+ Terminate any worker threads in this thread group.
+ Jobs currently in progress will complete.
+
+
+
+
+ Run the given object in the next available
+ . If while waiting the thread pool is asked to
+ shut down, the Runnable is executed immediately within a new additional
+ thread.
+
+ The to be added.
+
+
+
+ Creates the worker threads.
+
+ The thread count.
+
+
+
+
+ Terminate any worker threads in this thread group.
+ Jobs currently in progress will complete.
+
+
+
+
+ Gets or sets the number of worker threads in the pool.
+ Set has no effect after has been called.
+
+
+
+
+ Get or set the thread priority of worker threads in the pool.
+ Set operation has no effect after has been called.
+
+
+
+
+ Gets or sets the thread name prefix.
+
+ The thread name prefix.
+
+
+
+ Gets or sets the value of makeThreadsDaemons.
+
+
+
+
+ Gets the size of the pool.
+
+ The size of the pool.
+
+
+
+ A Worker loops, waiting to Execute tasks.
+
+
+
+
+ Create a worker thread and start it. Waiting for the next Runnable,
+ executing it, and waiting for the next Runnable, until the Shutdown
+ flag is set.
+
+
+
+
+ Create a worker thread, start it, Execute the runnable and terminate
+ the thread (one time execution).
+
+
+
+
+ Signal the thread that it should terminate.
+
+
+
+
+ Loop, executing targets as they are received.
+
+
+
+
+ This is class is a simple implementation of a zero size thread pool, based on the
+ {@link org.quartz.spi.ThreadPool} interface.
+
+
+ The pool has zero s and does not grow or shrink based on demand.
+ Which means it is obviously not useful for most scenarios. When it may be useful
+ is to prevent creating any worker threads at all - which may be desirable for
+ the sole purpose of preserving system resources in the case where the scheduler
+ instance only exists in order to schedule jobs, but which will never execute
+ jobs (e.g. will never have Start() called on it).
+
+ Wayne Fay
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Called by the QuartzScheduler before the is
+ used, in order to give the it a chance to Initialize.
+
+
+
+
+ Shutdowns this instance.
+
+
+
+
+ Called by the QuartzScheduler to inform the
+ that it should free up all of it's resources because the scheduler is
+ shutting down.
+
+
+
+
+
+ Execute the given in the next
+ available .
+
+
+
+
+ The implementation of this interface should not throw exceptions unless
+ there is a serious problem (i.e. a serious misconfiguration). If there
+ are no available threads, rather it should either queue the Runnable, or
+ block until a thread is available, depending on the desired strategy.
+
+
+
+
+ Determines the number of threads that are currently available in in
+ the pool. Useful for determining the number of times
+ can be called before returning
+ false.
+
+
+ the number of currently available threads
+
+
+ The implementation of this method should block until there is at
+ least one available thread.
+
+
+
+
+ Gets the log.
+
+ The log.
+
+
+
+ Gets the size of the pool.
+
+ The size of the pool.
+
+
+
+ A simple class (structure) used for returning execution-time data from the
+ JobStore to the .
+
+
+ James House
+
+
+
+ Initializes a new instance of the class.
+
+ The job.
+ The trigger.
+ The calendar.
+ if set to true [job is recovering].
+ The fire time.
+ The scheduled fire time.
+ The previous fire time.
+ The next fire time.
+
+
+
+ Gets the job detail.
+
+ The job detail.
+
+
+
+ Gets the trigger.
+
+ The trigger.
+
+
+
+ Gets the calendar.
+
+ The calendar.
+
+
+
+ Gets a value indicating whether this is recovering.
+
+ true if recovering; otherwise, false.
+
+
+
+ Returns the UTC fire time.
+
+
+
+
+ Gets the next UTC fire time.
+
+ The next fire time.
+ Returns the nextFireTimeUtc.
+
+
+
+ Gets the previous UTC fire time.
+
+ The previous fire time.
+ Returns the previous fire time.
+
+
+
+ Returns the scheduled UTC fire time.
+
+
+
+
+ DateTime related utility methods.
+
+
+
+
+ Assumes that given input is in UTC and sets the kind to be UTC.
+ Just a precaution if somebody does not set it explicitly.
+ This only works in .NET Framework 2.0 onwards.
+
+ The datetime to check.
+ DateTime with kind set to UTC.
+
+
+
+ Assumes that given input is in UTC and sets the kind to be UTC.
+ Just a precaution if somebody does not set it explicitly.
+
+ The datetime to check.
+ DateTime with kind set to UTC.
+
+
+
+ Manages a collection of IDbProviders, and provides transparent access
+ to their database.
+
+
+ James House
+ Sharada Jambula
+ Mohammad Rezaei
+
+
+
+ Private constructor
+
+
+
+
+ Adds the connection provider.
+
+ Name of the data source.
+ The provider.
+
+
+
+ Get a database connection from the DataSource with the given name.
+
+ a database connection
+
+
+
+ Shuts down database connections from the DataSource with the given name,
+ if applicable for the underlying provider.
+
+ a database connection
+
+
+
+ Gets the db provider.
+
+ Name of the ds.
+
+
+
+
+ Get the class instance.
+
+ an instance of this class
+
+
+
+
+ An implementation of that wraps another
+ and flags itself 'dirty' when it is modified.
+
+ James House
+
+
+
+ Create a DirtyFlagMap that 'wraps' a .
+
+
+
+
+ Create a DirtyFlagMap that 'wraps' a that has the
+ given initial capacity.
+
+
+
+
+ Create a DirtyFlagMap that 'wraps' a that has the
+ given initial capacity and load factor.
+
+
+
+
+ Creates a new object that is a copy of the current instance.
+
+
+ A new object that is a copy of this instance.
+
+
+
+
+ When implemented by a class, removes all elements from the .
+
+
+ The is read-only.
+
+
+
+
+ When implemented by a class, determines whether the contains an element with the specified key.
+
+ The key to locate in the .
+
+ if the contains an element with the key; otherwise, .
+
+
+ is .
+
+
+
+ When implemented by a class, removes the element with the
+ specified key from the .
+
+ The key of the element to remove.
+
+ is .
+
+ The is read-only.
+ -or-
+ The has a fixed size.
+
+
+
+
+ When implemented by a class, returns an
+ for the .
+
+
+ An for the .
+
+
+
+
+ When implemented by a class, adds an element with the provided key and value to the .
+
+ The to use as the key of the element to add.
+ The to use as the value of the element to add.
+ is .
+
+ An element with the same key already exists in the .
+
+
+ The is read-only.
+ -or-
+ The has a fixed size.
+
+
+
+
+ When implemented by a class, copies the elements of
+ the to an , starting at a particular index.
+
+ The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing.
+ The zero-based index in at which copying begins.
+
+ is .
+
+ is less than zero.
+
+
+ is multidimensional.
+ -or-
+
+ is equal to or greater than the length of .
+ -or-
+ The number of elements in the source is greater than the available space from to the end of the destination .
+
+ The type of the source cannot be cast automatically to the type of the destination .
+
+
+
+ Clear the 'dirty' flag (set dirty flag to ).
+
+
+
+
+ Determines whether the specified obj contains value.
+
+ The obj.
+
+ true if the specified obj contains value; otherwise, false.
+
+
+
+
+ Gets the entries as a set.
+
+
+
+
+
+ Determines whether the specified is equal to the current .
+
+ The to compare with the current .
+
+ if the specified is equal to the
+ current ; otherwise, .
+
+
+
+
+ Serves as a hash function for a particular type, suitable
+ for use in hashing algorithms and data structures like a hash table.
+
+
+ A hash code for the current .
+
+
+
+
+ Gets keyset for this map.
+
+
+
+
+
+ Puts the value behind a specified key.
+
+ The key.
+ The val.
+
+
+
+
+ Puts all.
+
+ The t.
+
+
+
+ Determine whether the is flagged dirty.
+
+
+
+
+ Get a direct handle to the underlying Map.
+
+
+
+
+ Gets a value indicating whether this instance is empty.
+
+ true if this instance is empty; otherwise, false.
+
+
+
+ Gets or sets the with the specified key.
+
+
+
+
+
+ When implemented by a class, gets the number of
+ elements contained in the .
+
+
+
+
+
+ When implemented by a class, gets an containing the values in the .
+
+
+
+
+
+ When implemented by a class, gets an containing the keys of the .
+
+
+
+
+
+ When implemented by a class, gets a value indicating whether the
+ is read-only.
+
+
+
+
+
+ When implemented by a class, gets a value indicating whether the
+ has a fixed size.
+
+
+
+
+
+ When implemented by a class, gets an object that
+ can be used to synchronize access to the .
+
+
+
+
+
+ When implemented by a class, gets a value
+ indicating whether access to the is synchronized
+ (thread-safe).
+
+
+
+
+
+ Utility class for file handling related things.
+
+
+
+
+ Resolves file to actual file if for example relative '~' used.
+
+ File name to check
+ Expanded file name or actual no resolving was done.
+
+
+
+ object representing a job or trigger key.
+
+ Jeffrey Wescott
+
+
+
+
+ Utility class for storing two pieces of information together.
+
+ Jeffrey Wescott
+
+
+
+ Test equality of this object with that.
+
+ object to compare
+ true if objects are equal, false otherwise
+
+
+
+ Serves as a hash function for a particular type. is suitable for use in hashing algorithms and data structures like a hash table.
+
+
+ A hash code for the current .
+
+
+
+
+ Get or sets the first object in the pair.
+
+
+
+
+ Get or sets the second object in the pair.
+
+
+
+ Construct a new key with the given name and group.
+
+
+
+ the name
+
+
+ the group
+
+
+
+
+ Return the string representation of the key. The format will be:
+ <group>.<name>.
+
+
+
+ the string representation of the key
+
+
+
+
+ Get the name portion of the key.
+
+ the name
+
+
+
+
+ Get the group portion of the key.
+
+
+
+ the group
+
+
+
+
+ Wrapper class to access thread local data.
+ Data is either accessed from thread or HTTP Context's
+ data if HTTP Context is avaiable.
+
+ Marko Lahma (.NET)
+
+
+
+ Retrieves an object with the specified name.
+
+ The name of the item.
+ The object in the call context associated with the specified name or null if no object has been stored previously
+
+
+
+ Stores a given object and associates it with the specified name.
+
+ The name with which to associate the new item.
+ The object to store in the call context.
+
+
+
+ Empties a data slot with the specified name.
+
+ The name of the data slot to empty.
+
+
+
+ Utility methods that are used to convert objects from one type into another.
+
+ Aleksandar Seovic
+
+
+
+ Convert the value to the required (if necessary from a string).
+
+ The proposed change value.
+
+ The we must convert to.
+
+ The new value, possibly the result of type conversion.
+
+
+
+ Determines whether value is assignable to required type.
+
+ The value to check.
+ Type of the required.
+
+ true if value can be assigned as given type; otherwise, false.
+
+
+
+
+ Instantiates an instance of the type specified.
+
+ The type to instantiate.
+
+
+
+
+ Sets the object properties using reflection.
+
+ The object to set values to.
+ The properties to set to object.
+
+
+
+ This is an utility class used to parse the properties.
+
+ James House
+
+
+
+ Initializes a new instance of the class.
+
+ The props.
+
+
+
+ Gets the string property.
+
+ The name.
+
+
+
+
+ Gets the string property.
+
+ The name.
+ The default value.
+
+
+
+
+ Gets the string array property.
+
+ The name.
+
+
+
+
+ Gets the string array property.
+
+ The name.
+ The default value.
+
+
+
+
+ Gets the boolean property.
+
+ The name.
+
+
+
+
+ Gets the boolean property.
+
+ The name.
+ if set to true [defaultValue].
+
+
+
+
+ Gets the byte property.
+
+ The name.
+
+
+
+
+ Gets the byte property.
+
+ The name.
+ The default value.
+
+
+
+
+ Gets the char property.
+
+ The name.
+
+
+
+
+ Gets the char property.
+
+ The name.
+ The default value.
+
+
+
+
+ Gets the double property.
+
+ The name.
+
+
+
+
+ Gets the double property.
+
+ The name.
+ The default value.
+
+
+
+
+ Gets the float property.
+
+ The name.
+
+
+
+
+ Gets the float property.
+
+ The name.
+ The default value.
+
+
+
+
+ Gets the int property.
+
+ The name.
+
+
+
+
+ Gets the int property.
+
+ The name.
+ The default value.
+
+
+
+
+ Gets the int array property.
+
+ The name.
+
+
+
+
+ Gets the int array property.
+
+ The name.
+ The default value.
+
+
+
+
+ Gets the long property.
+
+ The name.
+
+
+
+
+ Gets the long property.
+
+ The name.
+ The def.
+
+
+
+
+ Gets the TimeSpan property.
+
+ The name.
+ The def.
+
+
+
+
+ Gets the short property.
+
+ The name.
+
+
+
+
+ Gets the short property.
+
+ The name.
+ The default value.
+
+
+
+
+ Gets the property groups.
+
+ The prefix.
+
+
+
+
+ Gets the property group.
+
+ The prefix.
+
+
+
+
+ Gets the property group.
+
+ The prefix.
+ if set to true [strip prefix].
+
+
+
+
+ Get all properties that start with the given prefix.
+
+ The prefix for which to search. If it does not end in a "." then one will be added to it for search purposes.
+ Whether to strip off the given in the result's keys.
+ Optional array of fully qualified prefixes to exclude. For example if is "a.b.c", then might be "a.b.c.ignore".
+ Group of that start with the given prefix, optionally have that prefix removed, and do not include properties that start with one of the given excluded prefixes.
+
+
+
+ Reads the properties from assembly (embedded resource).
+
+ The file name to read resources from.
+
+
+
+
+ Reads the properties from file system.
+
+ The file name to read resources from.
+
+
+
+
+ Gets the underlying properties.
+
+ The underlying properties.
+
+
+
+ An implementation of that wraps another
+ and flags itself 'dirty' when it is modified, enforces that all keys are
+ strings.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The initial capacity.
+
+
+
+ Initializes a new instance of the class.
+
+ The initial capacity.
+ The load factor.
+
+
+
+ Gets the keys.
+
+
+
+
+
+ Adds the name-value pairs in the given to the .
+
+ All keys must be s, and all values must be serializable.
+
+
+
+
+
+ Adds the given value to the 's
+ data map.
+
+
+
+
+ Adds the given value to the 's
+ data map.
+
+
+
+
+ Adds the given value to the 's
+ data map.
+
+
+
+
+ Adds the given value to the 's
+ data map.
+
+
+
+
+ Adds the given value to the 's
+ data map.
+
+
+
+
+ Adds the given value to the 's
+ data map.
+
+
+
+
+ Adds the given value to the 's
+ data map.
+
+
+
+
+ Adds the given serializable object value to the .
+
+
+
+
+ Retrieve the identified value from the .
+
+
+
+
+ Retrieve the identified value from the .
+
+
+
+
+ Retrieve the identified value from the .
+
+
+
+
+ Retrieve the identified value from the .
+
+
+
+
+ Retrieve the identified value from the .
+
+
+
+
+ Retrieve the identified value from the .
+
+
+
+
+ Retrieve the identified value from the .
+
+
+
+
+ Object representing a job or trigger key.
+
+ James House
+
+
+
+ Construct a new TriggerStatus with the status name and nextFireTime.
+
+ The trigger's status
+ The next UTC time the trigger will fire
+
+
+
+ Return the string representation of the TriggerStatus.
+
+
+
+
+ Gets or sets the job key.
+
+ The job key.
+
+
+
+ Gets or sets the key.
+
+ The key.
+
+
+
+ Get the name portion of the key.
+
+ the name
+
+
+
+ Get the group portion of the key.
+
+ the group
+
+
+
+ Wraps a .
+
+ Chris Bonham
+
+
+
+ Gets or sets the name of the calendar.
+
+ The name of the calendar.
+
+
+
+ Gets or sets the name of the class.
+
+ The name of the class.
+
+
+
+ Gets or sets the calendar.
+
+ The calendar.
+
+
+
+ Gets or sets a description for the instance - may be
+ useful for remembering/displaying the purpose of the calendar, though
+ the description has no meaning to Quartz.
+
+
+
+
+
+ Set a new base calendar or remove the existing one.
+
+
+
+
+
+ Wraps a and .
+
+ Chris Bonham
+ James House
+
+
+
+ Adds a trigger to this bundle.
+
+ The trigger.
+
+
+
+ Removes the given trigger from this bundle.
+
+ The trigger.
+
+
+
+ Gets or sets the job detail.
+
+ The job detail.
+
+
+
+ Gets or sets the triggers associated with this bundle.
+
+ The triggers.
+
+
+
+ Gets the name of the bundle.
+
+ The name.
+
+
+
+ Gets the full name.
+
+ The full name.
+
+
+
+ Gets a value indicating whether this is valid.
+
+ true if valid; otherwise, false.
+
+
+
+ Parses an XML file that declares Jobs and their schedules (Triggers).
+
+
+
+ The xml document must conform to the format defined in
+ "job_scheduling_data.xsd"
+
+
+
+ After creating an instance of this class, you should call one of the
+ functions, after which you may call the
+ function to get a handle to the defined Jobs and Triggers, which can then be
+ scheduled with the . Alternatively, you could call
+ the function to do all of this
+ in one step.
+
+
+
+ The same instance can be used again and again, with the list of defined Jobs
+ being cleared each time you call a method,
+ however a single instance is not thread-safe.
+
+
+ Chris Bonham
+ James House
+ Marko Lahma (.NET)
+
+
+
+ XML Schema dateTime datatype format.
+
+
+
+
+
+ Constructor for JobSchedulingDataProcessor.
+
+
+
+
+ Constructor for JobSchedulingDataProcessor.
+
+ whether or not to validate XML.
+ whether or not to validate XML schema.
+
+
+
+ Process the xml file in the default location (a file named
+ "quartz_jobs.xml" in the current working directory).
+
+
+
+
+ Process the xml file named .
+
+ meta data file name.
+
+
+
+ Process the xmlfile named with the given system
+ ID.
+
+ Name of the file.
+ The system id.
+
+
+
+ Process the xmlfile named with the given system
+ ID.
+
+ The stream.
+ The system id.
+
+
+
+ Process the xml file in the default location, and schedule all of the
+ jobs defined within it.
+
+
+
+
+ Process the xml file in the given location, and schedule all of the
+ jobs defined within it.
+
+ meta data file name.
+ The scheduler.
+ if set to true overwrite existing jobs.
+
+
+
+ Process the xml file in the given location, and schedule all of the
+ jobs defined within it.
+
+ Name of the file.
+ The system id.
+ The sched.
+ if set to true [over write existing jobs].
+
+
+
+ Add the Jobs and Triggers defined in the given map of
+ s to the given scheduler.
+
+ The job bundles.
+ The sched.
+ if set to true [over write existing jobs].
+
+
+
+ Returns a for the job name.
+
+ The name.
+
+ a for the job name.
+
+
+
+
+ Returns an from the fileName as a resource.
+
+ Name of the file.
+
+ an from the fileName as a resource.
+
+
+
+
+ Schedules a given job and trigger (both wrapped by a ).
+
+ job wrapper.
+
+ if the Job or Trigger cannot be added to the Scheduler, or
+ there is an internal Scheduler error.
+
+
+
+
+ Schedules a given job and trigger (both wrapped by a ).
+
+ The job.
+ The sched.
+ if set to true [local over write existing jobs].
+
+ if the Job or Trigger cannot be added to the Scheduler, or
+ there is an internal Scheduler error.
+
+
+
+
+ Adds a scheduled job.
+
+ The job.
+
+
+
+ Adds a calendar.
+
+ The sched.
+ calendar bundle.
+ SchedulerException if the Calendar cannot be added to the Scheduler, or
+
+
+
+ Adds a detected validation exception.
+
+ The exception.
+
+
+
+ Resets the the number of detected validation exceptions.
+
+
+
+
+ Throws a ValidationException if the number of validationExceptions
+ detected is greater than zero.
+
+
+ DTD validation exception.
+
+
+
+
+ Gets or sets whether to overwrite existing jobs.
+
+
+
+
+ Gets the log.
+
+ The log.
+
+
+
+ Returns a of scheduled jobs.
+
+ The key is the job name and the value is a
+ containing the and .
+
+
+ a of scheduled jobs.
+
+
+
+
+ Helper class to map constant names to their values.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Reports JobSchedulingDataProcessor validation exceptions.
+
+ Chris Bonham
+
+
+
+ Constructor for ValidationException.
+
+
+
+
+ Constructor for ValidationException.
+
+ exception message.
+
+
+
+ Constructor for ValidationException.
+
+ collection of validation exceptions.
+
+
+
+ Gets the validation exceptions.
+
+ The validation exceptions.
+
+
+
+ Returns the detail message string.
+
+
+
+
+ An exception that is thrown to indicate that there has been a critical
+ failure within the scheduler's core services (such as loss of database
+ connectivity).
+
+ James House
+
+
+
+ Create a with the given message.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The class name is null or is zero (0).
+ The info parameter is null.
+
+
+
+ Provides a parser and evaluator for unix-like cron expressions. Cron
+ expressions provide the ability to specify complex time combinations such as
+ "At 8:00am every Monday through Friday" or "At 1:30am every
+ last Friday of the month".
+
+
+
+ Cron expressions are comprised of 6 required fields and one optional field
+ separated by white space. The fields respectively are described as follows:
+
+
+
+
Field Name
+
+
Allowed Values
+
+
Allowed Special Characters
+
+
+
Seconds
+
+
0-59
+
+
, - /// /
+
+
+
Minutes
+
+
0-59
+
+
, - /// /
+
+
+
Hours
+
+
0-23
+
+
, - /// /
+
+
+
Day-of-month
+
+
1-31
+
+
, - /// ? / L W C
+
+
+
Month
+
+
1-12 or JAN-DEC
+
+
, - /// /
+
+
+
Day-of-Week
+
+
1-7 or SUN-SAT
+
+
, - /// ? / L #
+
+
+
Year (Optional)
+
+
empty, 1970-2099
+
+
, - /// /
+
+
+
+ The '*' character is used to specify all values. For example, "*"
+ in the minute field means "every minute".
+
+
+ The '?' character is allowed for the day-of-month and day-of-week fields. It
+ is used to specify 'no specific value'. This is useful when you need to
+ specify something in one of the two fields, but not the other.
+
+
+ The '-' character is used to specify ranges For example "10-12" in
+ the hour field means "the hours 10, 11 and 12".
+
+
+ The ',' character is used to specify additional values. For example
+ "MON,WED,FRI" in the day-of-week field means "the days Monday,
+ Wednesday, and Friday".
+
+
+ The '/' character is used to specify increments. For example "0/15"
+ in the seconds field means "the seconds 0, 15, 30, and 45". And
+ "5/15" in the seconds field means "the seconds 5, 20, 35, and
+ 50". Specifying '*' before the '/' is equivalent to specifying 0 is
+ the value to start with. Essentially, for each field in the expression, there
+ is a set of numbers that can be turned on or off. For seconds and minutes,
+ the numbers range from 0 to 59. For hours 0 to 23, for days of the month 0 to
+ 31, and for months 1 to 12. The "/" character simply helps you turn
+ on every "nth" value in the given set. Thus "7/6" in the
+ month field only turns on month "7", it does NOT mean every 6th
+ month, please note that subtlety.
+
+
+ The 'L' character is allowed for the day-of-month and day-of-week fields.
+ This character is short-hand for "last", but it has different
+ meaning in each of the two fields. For example, the value "L" in
+ the day-of-month field means "the last day of the month" - day 31
+ for January, day 28 for February on non-leap years. If used in the
+ day-of-week field by itself, it simply means "7" or
+ "SAT". But if used in the day-of-week field after another value, it
+ means "the last xxx day of the month" - for example "6L"
+ means "the last friday of the month". When using the 'L' option, it
+ is important not to specify lists, or ranges of values, as you'll get
+ confusing results.
+
+
+ The 'W' character is allowed for the day-of-month field. This character
+ is used to specify the weekday (Monday-Friday) nearest the given day. As an
+ example, if you were to specify "15W" as the value for the
+ day-of-month field, the meaning is: "the nearest weekday to the 15th of
+ the month". So if the 15th is a Saturday, the trigger will fire on
+ Friday the 14th. If the 15th is a Sunday, the trigger will fire on Monday the
+ 16th. If the 15th is a Tuesday, then it will fire on Tuesday the 15th.
+ However if you specify "1W" as the value for day-of-month, and the
+ 1st is a Saturday, the trigger will fire on Monday the 3rd, as it will not
+ 'jump' over the boundary of a month's days. The 'W' character can only be
+ specified when the day-of-month is a single day, not a range or list of days.
+
+
+ The 'L' and 'W' characters can also be combined for the day-of-month
+ expression to yield 'LW', which translates to "last weekday of the
+ month".
+
+
+ The '#' character is allowed for the day-of-week field. This character is
+ used to specify "the nth" XXX day of the month. For example, the
+ value of "6#3" in the day-of-week field means the third Friday of
+ the month (day 6 = Friday and "#3" = the 3rd one in the month).
+ Other examples: "2#1" = the first Monday of the month and
+ "4#5" = the fifth Wednesday of the month. Note that if you specify
+ "#5" and there is not 5 of the given day-of-week in the month, then
+ no firing will occur that month. If the '#' character is used, there can
+ only be one expression in the day-of-week field ("3#1,6#3" is
+ not valid, since there are two expressions).
+
+
+
+
+
+ The legal characters and the names of months and days of the week are not
+ case sensitive.
+
+
+ NOTES:
+
+
Support for specifying both a day-of-week and a day-of-month value is
+ not complete (you'll need to use the '?' character in one of these fields).
+
+
Overflowing ranges is supported - that is, having a larger number on
+ the left hand side than the right. You might do 22-2 to catch 10 o'clock
+ at night until 2 o'clock in the morning, or you might have NOV-FEB. It is
+ very important to note that overuse of overflowing ranges creates ranges
+ that don't make sense and no effort has been made to determine which
+ interpretation CronExpression chooses. An example would be
+ "0 0 14-6 ? * FRI-MON".
+
+
+
+ Sharada Jambula
+ James House
+ Contributions from Mads Henderson
+ Refactoring from CronTrigger to CronExpression by Aaron Craven
+
+
+
+ Field specification for second.
+
+
+
+
+ Field specification for minute.
+
+
+
+
+ Field specification for hour.
+
+
+
+
+ Field specification for day of month.
+
+
+
+
+ Field specification for month.
+
+
+
+
+ Field specification for day of week.
+
+
+
+
+ Field specification for year.
+
+
+
+
+ Field specification for all wildcard value '*'.
+
+
+
+
+ Field specification for not specified value '?'.
+
+
+
+
+ Field specification for wildcard '*'.
+
+
+
+
+ Field specification for no specification at all '?'.
+
+
+
+
+ Seconds.
+
+
+
+
+ minutes.
+
+
+
+
+ Hours.
+
+
+
+
+ Days of month.
+
+
+
+
+ Months.
+
+
+
+
+ Days of week.
+
+
+
+
+ Years.
+
+
+
+
+ Last day of week.
+
+
+
+
+ Nth day of week.
+
+
+
+
+ Last day of month.
+
+
+
+
+ Nearest weekday.
+
+
+
+
+ Calendar day of week.
+
+
+
+
+ Calendar day of month.
+
+
+
+
+ Expression parsed.
+
+
+
+
+ Constructs a new based on the specified
+ parameter.
+
+
+ String representation of the cron expression the new object should represent
+
+
+
+
+
+ Indicates whether the given date satisfies the cron expression.
+
+
+ Note that milliseconds are ignored, so two Dates falling on different milliseconds
+ of the same second will always have the same result here.
+
+ The date to evaluate.
+ a boolean indicating whether the given date satisfies the cron expression
+
+
+
+ Returns the next date/time after the given date/time which
+ satisfies the cron expression.
+
+ the date/time at which to begin the search for the next valid date/time
+ the next valid date/time
+
+
+
+ Returns the next date/time after the given date/time which does
+ not satisfy the expression.
+
+ the date/time at which to begin the search for the next invalid date/time
+ the next valid date/time
+
+
+
+ Returns the string representation of the
+
+ The string representation of the
+
+
+
+ Indicates whether the specified cron expression can be parsed into a
+ valid cron expression
+
+ the expression to evaluate
+ a boolean indicating whether the given expression is a valid cron
+ expression
+
+
+
+ Builds the expression.
+
+ The expression.
+
+
+
+ Stores the expression values.
+
+ The position.
+ The string to traverse.
+ The type of value.
+
+
+
+
+ Checks the next value.
+
+ The position.
+ The string to check.
+ The value.
+ The type to search.
+
+
+
+
+ Gets the expression summary.
+
+
+
+
+
+ Gets the expression set summary.
+
+ The data.
+
+
+
+
+ Skips the white space.
+
+ The i.
+ The s.
+
+
+
+
+ Finds the next white space.
+
+ The i.
+ The s.
+
+
+
+
+ Adds to set.
+
+ The val.
+ The end.
+ The incr.
+ The type.
+
+
+
+ Gets the set of given type.
+
+ The type of set to get.
+
+
+
+
+ Gets the value.
+
+ The v.
+ The s.
+ The i.
+
+
+
+
+ Gets the numeric value from string.
+
+ The string to parse from.
+ The i.
+
+
+
+
+ Gets the month number.
+
+ The string to map with.
+
+
+
+
+ Gets the day of week number.
+
+ The s.
+
+
+
+
+ Gets the time from given time parts.
+
+ The seconds.
+ The minutes.
+ The hours.
+ The day of month.
+ The month.
+
+
+
+
+ Gets the next fire time after the given time.
+
+ The UTC time to start searching from.
+
+
+
+
+ Creates the date time without milliseconds.
+
+ The time.
+
+
+
+
+ Advance the calendar to the particular hour paying particular attention
+ to daylight saving problems.
+
+ The date.
+ The hour.
+
+
+
+
+ Gets the time before.
+
+ The end time.
+
+
+
+
+ NOT YET IMPLEMENTED: Returns the final time that the
+ will match.
+
+
+
+
+
+ Determines whether given year is a leap year.
+
+ The year.
+
+ true if the specified year is a leap year; otherwise, false.
+
+
+
+
+ Gets the last day of month.
+
+ The month num.
+ The year.
+
+
+
+
+ Creates a new object that is a copy of the current instance.
+
+
+ A new object that is a copy of this instance.
+
+
+
+
+ Sets or gets the time zone for which the of this
+ will be resolved.
+
+
+
+
+ Gets the cron expression string.
+
+ The cron expression string.
+
+
+
+ Helper class for cron expression handling.
+
+
+
+
+ The value.
+
+
+
+
+ The position.
+
+
+
+
+ A concrete that is used to fire a
+ at given moments in time, defined with Unix 'cron-like' definitions.
+
+
+
+ For those unfamiliar with "cron", this means being able to create a firing
+ schedule such as: "At 8:00am every Monday through Friday" or "At 1:30am
+ every last Friday of the month".
+
+
+
+ The format of a "Cron-Expression" string is documented on the
+ class.
+
+
+
+ Here are some full examples:
+
+
+
Expression
+
+
Meaning
+
+
+
"0 0 12 * * ?"" />
+
+
Fire at 12pm (noon) every day" />
+
+
+
"0 15 10 ? * *"" />
+
+
Fire at 10:15am every day" />
+
+
+
"0 15 10 * * ?"" />
+
+
Fire at 10:15am every day" />
+
+
+
"0 15 10 * * ? *"" />
+
+
Fire at 10:15am every day" />
+
+
+
"0 15 10 * * ? 2005"" />
+
+
Fire at 10:15am every day during the year 2005" />
+
+
+
+
"0 * 14 * * ?"" />
+
+
Fire every minute starting at 2pm and ending at 2:59pm, every day" />
+
+
+
+
"0 0/5 14 * * ?"" />
+
+
Fire every 5 minutes starting at 2pm and ending at 2:55pm, every day" />
+
+
+
+
"0 0/5 14,18 * * ?"" />
+
+
Fire every 5 minutes starting at 2pm and ending at 2:55pm, AND fire every 5 minutes starting at 6pm and ending at 6:55pm, every day" />
+
+
+
+
"0 0-5 14 * * ?"" />
+
+
Fire every minute starting at 2pm and ending at 2:05pm, every day" />
+
+
+
+
"0 10,44 14 ? 3 WED"" />
+
+
Fire at 2:10pm and at 2:44pm every Wednesday in the month of March." />
+
+
+
+
"0 15 10 ? * MON-FRI"" />
+
+
Fire at 10:15am every Monday, Tuesday, Wednesday, Thursday and Friday" />
+
+
+
+
"0 15 10 15 * ?"" />
+
+
Fire at 10:15am on the 15th day of every month" />
+
+
+
+
"0 15 10 L * ?"" />
+
+
Fire at 10:15am on the last day of every month" />
+
+
+
+
"0 15 10 ? * 6L"" />
+
+
Fire at 10:15am on the last Friday of every month" />
+
+
+
+
"0 15 10 ? * 6L"" />
+
+
Fire at 10:15am on the last Friday of every month" />
+
+
+
+
"0 15 10 ? * 6L 2002-2005"" />
+
+
Fire at 10:15am on every last friday of every month during the years 2002, 2003, 2004 and 2005" />
+
+
+
+
"0 15 10 ? * 6#3"" />
+
+
Fire at 10:15am on the third Friday of every month" />
+
+
+
+
+
+
+ Pay attention to the effects of '?' and '*' in the day-of-week and
+ day-of-month fields!
+
+
+
+ NOTES:
+
+
Support for specifying both a day-of-week and a day-of-month value is
+ not complete (you'll need to use the '?' character in on of these fields).
+
+
Be careful when setting fire times between mid-night and 1:00 AM -
+ "daylight savings" can cause a skip or a repeat depending on whether the
+ time moves back or jumps forward.
+
+
+
+
+
+
+ Sharada Jambula
+ James House
+ Contributions from Mads Henderson
+
+
+
+ The base abstract class to be extended by all triggers.
+
+
+
+ s have a name and group associated with them, which
+ should uniquely identify them within a single .
+
+
+
+ s are the 'mechanism' by which s
+ are scheduled. Many s can point to the same ,
+ but a single can only point to one .
+
+
+
+ Triggers can 'send' parameters/data to s by placing contents
+ into the on the .
+
+
+
+
+
+
+
+
+ James House
+ Sharada Jambula
+
+
+
+ The default value for priority.
+
+
+
+
+ Remove all s from the .
+
+
+
+
+ Create a with no specified name, group, or .
+
+
+ Note that the , and
+ the and properties
+ must be set before the can be placed into a
+ .
+
+
+
+
+ Create a with the given name, and default group.
+
+
+ Note that the and
+ properties must be set before the
+ can be placed into a .
+
+ The name.
+
+
+
+ Create a with the given name, and group.
+
+
+ Note that the and
+ properties must be set before the
+ can be placed into a .
+
+ The name.
+ if , Scheduler.DefaultGroup will be used.
+
+
+
+ Create a with the given name, and group.
+
+ The name.
+ if , Scheduler.DefaultGroup will be used.
+ Name of the job.
+ The job group.
+ ArgumentException
+ if name is null or empty, or the group is an empty string.
+
+
+
+
+ Add the specified name of a to
+ the end of the 's list of listeners.
+
+ Name of the listener.
+
+
+
+ Remove the specified name of a
+ from the 's list of listeners.
+
+ true if the given name was found in the list, and removed
+
+
+
+
+ This method should not be used by the Quartz client.
+
+ Called when the has decided to 'fire'
+ the trigger (Execute the associated ), in order to
+ give the a chance to update itself for its next
+ triggering (if any).
+
+
+
+
+
+
+
+
+ This method should not be used by the Quartz client.
+
+
+
+ Called by the scheduler at the time a is first
+ added to the scheduler, in order to have the
+ compute its first fire time, based on any associated calendar.
+
+
+
+ After this method has been called,
+ should return a valid answer.
+
+
+
+ The first time at which the will be fired
+ by the scheduler, which is also the same value
+ will return (until after the first firing of the ).
+
+
+
+
+ This method should not be used by the Quartz client.
+
+
+ Called after the has executed the
+ associated with the
+ in order to get the final instruction code from the trigger.
+
+
+ is the that was used by the
+ 's method.
+ is the thrown by the
+ , if any (may be null).
+
+
+ One of the members.
+
+
+
+
+
+
+
+
+
+ Used by the to determine whether or not
+ it is possible for this to fire again.
+
+ If the returned value is then the
+ may remove the from the .
+
+
+
+
+
+ Returns the next time at which the is scheduled to fire. If
+ the trigger will not fire again, will be returned. Note that
+ the time returned can possibly be in the past, if the time that was computed
+ for the trigger to next fire has already arrived, but the scheduler has not yet
+ been able to fire the trigger (which would likely be due to lack of resources
+ e.g. threads).
+
+
+ The value returned is not guaranteed to be valid until after the
+ has been added to the scheduler.
+
+
+
+
+
+
+ Returns the previous time at which the fired.
+ If the trigger has not yet fired, will be returned.
+
+
+
+
+ Returns the next time at which the will fire,
+ after the given time. If the trigger will not fire after the given time,
+ will be returned.
+
+
+
+
+ Validates the misfire instruction.
+
+ The misfire instruction.
+
+
+
+
+ This method should not be used by the Quartz client.
+
+ To be implemented by the concrete classes that extend this class.
+
+
+ The implementation should update the 's state
+ based on the MISFIRE_INSTRUCTION_XXX that was selected when the
+ was created.
+
+
+
+
+
+ This method should not be used by the Quartz client.
+
+ The implementation should update the 's state
+ based on the given new version of the associated
+ (the state should be updated so that it's next fire time is appropriate
+ given the Calendar's new settings).
+
+
+
+
+
+
+
+ Validates whether the properties of the are
+ valid for submission into a .
+
+
+
+
+ Return a simple string representation of this object.
+
+
+
+
+ Compare the next fire time of this to that of
+ another.
+
+
+
+
+ Determines whether the specified is equal to the current .
+
+ The to compare with the current .
+
+ true if the specified is equal to the current ; otherwise, false.
+
+
+
+
+ Serves as a hash function for a particular type. is suitable for use in hashing algorithms and data structures like a hash table.
+
+
+ A hash code for the current .
+
+
+
+
+ Creates a new object that is a copy of the current instance.
+
+
+ A new object that is a copy of this instance.
+
+
+
+
+ Get or sets the name of this .
+
+ If name is null or empty.
+
+
+
+ Get the group of this . If , Scheduler.DefaultGroup will be used.
+
+
+ if group is an empty string.
+
+
+
+
+ Get or set the name of the associated .
+
+
+ if jobName is null or empty.
+
+
+
+
+ Gets or sets the name of the associated 's
+ group. If set with , Scheduler.DefaultGroup will be used.
+
+ ArgumentException
+ if group is an empty string.
+
+
+
+
+ Returns the 'full name' of the in the format
+ "group.name".
+
+
+
+
+ Gets the key.
+
+ The key.
+
+
+
+ Returns the 'full name' of the that the
+ points to, in the format "group.name".
+
+
+
+
+ Get or set the description given to the instance by
+ its creator (if any).
+
+
+
+
+ Get or set the with the given name with
+ this Trigger. Use when setting to dis-associate a Calendar.
+
+
+
+
+ Get or set the that is associated with the
+ .
+
+ Changes made to this map during job execution are not re-persisted, and
+ in fact typically result in an illegal state.
+
+
+
+
+
+ Whether or not the should be persisted in the
+ for re-use after program restarts.
+
+ If not explicitly set, the default value is .
+
+
+
+
+
+ Returns an array of s containing the names of all
+ s assigned to the ,
+ in the order in which they should be notified.
+
+
+
+
+ Returns the last UTC time at which the will fire, if
+ the Trigger will repeat indefinitely, null will be returned.
+
+ Note that the return time *may* be in the past.
+
+
+
+
+
+ Get or set the instruction the should be given for
+ handling misfire situations for this - the
+ concrete type that you are using will have
+ defined a set of additional MISFIRE_INSTRUCTION_XXX
+ constants that may be passed to this method.
+
+ If not explicitly set, the default value is .
+
+
+
+
+
+
+
+
+
+ This method should not be used by the Quartz client.
+
+ Usable by
+ implementations, in order to facilitate 'recognizing' instances of fired
+ s as their jobs complete execution.
+
+
+
+
+
+ Returns the date/time on which the trigger must stop firing. This
+ defines the final boundary for trigger firings 舒 the trigger will
+ not fire after to this date and time. If this value is null, no end time
+ boundary is assumed, and the trigger can continue indefinitely.
+
+ Sets the date/time on which the trigger must stop firing. This defines
+ the final boundary for trigger firings 舒 the trigger will not
+ fire after to this date and time. If this value is null, no end time
+ boundary is assumed, and the trigger can continue indefinitely.
+
+
+
+
+ The time at which the trigger's scheduling should start. May or may not
+ be the first actual fire time of the trigger, depending upon the type of
+ trigger and the settings of the other properties of the trigger. However
+ the first actual first time will not be before this date.
+
+
+ Setting a value in the past may cause a new trigger to compute a first
+ fire time that is in the past, which may cause an immediate misfire
+ of the trigger.
+
+
+
+
+ Tells whether this Trigger instance can handle events
+ in millisecond precision.
+
+
+
+
+ The priority of a acts as a tie breaker such that if
+ two s have the same scheduled fire time, then Quartz
+ will do its best to give the one with the higher priority first access
+ to a worker thread.
+
+
+ If not explicitly set, the default value is 5.
+
+
+
+
+
+
+ Gets a value indicating whether this instance has additional properties
+ that should be considered when for example saving to database.
+
+
+ If trigger implementation has additional properties that need to be saved
+ with base properties you need to make your class override this property with value true.
+ Returning true will effectively mean that ADOJobStore needs to serialize
+ this trigger instance to make sure additional properties are also saved.
+
+
+ true if this instance has additional properties; otherwise, false.
+
+
+
+
+ Create a with no settings.
+
+
+ The start-time will also be set to the current time, and the time zone
+ will be set the the system's default time zone.
+
+
+
+
+ Create a with the given name and default group.
+
+
+ The start-time will also be set to the current time, and the time zone
+ will be set the the system's default time zone.
+
+ The name.
+
+
+
+ Create a with the given name and group.
+
+
+ The start-time will also be set to the current time, and the time zone
+ will be set the the system's default time zone.
+
+ The name.
+ The group.
+
+
+
+ Create a with the given name, group and
+ expression.
+
+
+ The start-time will also be set to the current time, and the time zone
+ will be set the the system's default time zone.
+
+ The name.
+ The group.
+ The cron expression.
+
+
+
+ Create a with the given name and group, and
+ associated with the identified .
+
+
+ The start-time will also be set to the current time, and the time zone
+ will be set the the system's default time zone.
+
+ The name.
+ The group.
+ Name of the job.
+ The job group.
+
+
+
+ Create a with the given name and group,
+ associated with the identified ,
+ and with the given "cron" expression.
+
+
+ The start-time will also be set to the current time, and the time zone
+ will be set the the system's default time zone.
+
+ The name.
+ The group.
+ Name of the job.
+ The job group.
+ The cron expression.
+
+
+
+ Create a with the given name and group,
+ associated with the identified ,
+ and with the given "cron" expression resolved with respect to the .
+
+ The name.
+ The group.
+ Name of the job.
+ The job group.
+ The cron expression.
+ The time zone.
+
+
+
+ Create a that will occur at the given time,
+ until the given end time.
+
+ If null, the start-time will also be set to the current time, the time
+ zone will be set the the system's default.
+
+
+ The name.
+ The group.
+ Name of the job.
+ The job group.
+ The start time.
+ The end time.
+ The cron expression.
+
+
+
+ Create a with fire time dictated by the
+ resolved with respect to the specified
+ occuring from the until
+ the given .
+
+ The name.
+ The group.
+ Name of the job.
+ The job group.
+ The start time.
+ The end time.
+
+
+
+ Clones this instance.
+
+
+
+
+
+ Returns the next time at which the is scheduled to fire. If
+ the trigger will not fire again, will be returned. Note that
+ the time returned can possibly be in the past, if the time that was computed
+ for the trigger to next fire has already arrived, but the scheduler has not yet
+ been able to fire the trigger (which would likely be due to lack of resources
+ e.g. threads).
+
+
+ The value returned is not guaranteed to be valid until after the
+ has been added to the scheduler.
+
+
+
+
+
+
+ Returns the previous time at which the fired.
+ If the trigger has not yet fired, will be returned.
+
+
+
+
+
+ Sets the next fire time.
+
+ This method should not be invoked by client code.
+
+
+ The fire time.
+
+
+
+ Sets the previous fire time.
+
+ This method should not be invoked by client code.
+
+
+ The fire time.
+
+
+
+ Returns the next time at which the will fire,
+ after the given time. If the trigger will not fire after the given time,
+ will be returned.
+
+
+
+
+
+
+ Used by the to determine whether or not
+ it is possible for this to fire again.
+
+ If the returned value is then the
+ may remove the from the .
+
+
+
+
+
+
+ Validates the misfire instruction.
+
+ The misfire instruction.
+
+
+
+
+ This method should not be used by the Quartz client.
+
+ To be implemented by the concrete classes that extend this class.
+
+
+ The implementation should update the 's state
+ based on the MISFIRE_INSTRUCTION_XXX that was selected when the
+ was created.
+
+
+
+
+
+
+
+ Determines whether the date and (optionally) time of the given Calendar
+ instance falls on a scheduled fire-time of this trigger.
+
+
+
+ Equivalent to calling .
+
+
+ The date to compare.
+
+
+
+
+ Determines whether the date and (optionally) time of the given Calendar
+ instance falls on a scheduled fire-time of this trigger.
+
+ Note that the value returned is NOT validated against the related
+ ICalendar (if any).
+
+
+ The date to compare
+ If set to true, the method will only determine if the
+ trigger will fire during the day represented by the given Calendar
+ (hours, minutes and seconds will be ignored).
+
+
+
+
+ Called when the has decided to 'fire'
+ the trigger (Execute the associated ), in order to
+ give the a chance to update itself for its next
+ triggering (if any).
+
+
+
+
+
+
+ Updates the trigger with new calendar.
+
+ The calendar to update with.
+ The misfire threshold.
+
+
+
+ Called by the scheduler at the time a is first
+ added to the scheduler, in order to have the
+ compute its first fire time, based on any associated calendar.
+
+ After this method has been called,
+ should return a valid answer.
+
+
+
+
+ the first time at which the will be fired
+ by the scheduler, which is also the same value
+ will return (until after the first firing of the ).
+
+
+
+
+ Gets the expression summary.
+
+
+
+
+
+ Gets the next time to fire after the given time.
+
+ The time to compute from.
+
+
+
+
+ NOT YET IMPLEMENTED: Returns the time before the given time
+ that this will fire.
+
+ The date.
+
+
+
+
+ Gets or sets the cron expression string.
+
+ The cron expression string.
+
+
+
+ Set the CronExpression to the given one. The TimeZone on the passed-in
+ CronExpression over-rides any that was already set on the Trigger.
+
+ The cron expression.
+
+
+
+ Returns the date/time on which the trigger may begin firing. This
+ defines the initial boundary for trigger firings the trigger
+ will not fire prior to this date and time.
+
+
+
+
+
+ Get or sets the time at which the CronTrigger should quit
+ repeating - even if repeastCount isn't yet satisfied.
+
+
+
+
+ Sets the time zone for which the of this
+ will be resolved.
+
+
+ If is set after this
+ property, the TimeZone setting on the CronExpression will "win". However
+ if is set after this property, the
+ time zone applied by this method will remain in effect, since the
+ string cron expression does not carry a time zone!
+
+ The time zone.
+
+
+
+ Returns the last UTC time at which the will fire, if
+ the Trigger will repeat indefinitely, null will be returned.
+
+ Note that the return time *may* be in the past.
+
+
+
+
+
+ Tells whether this Trigger instance can handle events
+ in millisecond precision.
+
+
+
+
+
+ The interface to be implemented by s that provide a
+ mechanism for having their execution interrupted. It is NOT a requirment
+ for jobs to implement this interface - in fact, for most people, none of
+ their jobs will.
+
+
+
+ The means of actually interrupting the Job must be implemented within the
+ itself (the method of this
+ interface is simply a means for the scheduler to inform the
+ that a request has been made for it to be interrupted). The mechanism that
+ your jobs use to interrupt themselves might vary between implementations.
+ However the principle idea in any implementation should be to have the
+ body of the job's periodically check some flag to
+ see if an interruption has been requested, and if the flag is set, somehow
+ abort the performance of the rest of the job's work. An example of
+ interrupting a job can be found in the java source for the class
+ Quartz.Examples.Example7.DumbInterruptableJob. It is legal to use
+ some combination of and
+ synchronization within and
+ in order to have the method block until the
+ signals that it has noticed the set flag.
+
+
+
+ If the Job performs some form of blocking I/O or similar functions, you may
+ want to consider having the method store a
+ reference to the calling as a member variable. Then the
+ impplementation of this interfaces method can call
+ on that Thread. Before attempting this, make
+ sure that you fully understand what
+ does and doesn't do. Also make sure that you clear the Job's member
+ reference to the Thread when the Execute(..) method exits (preferrably in a
+ block.
+
+
+
+
+ James House
+
+
+
+ Called by the when a user
+ interrupts the .
+
+ void (nothing) if job interrupt is successful.
+
+
+
+ Scheduler constants.
+
+
+
+
+ A (possibly) usefull constant that can be used for specifying the group
+ that and instances belong to.
+
+
+
+
+ A constant group name used internally by the
+ scheduler - clients should not use the value of this constant
+ ("MANUAL_TRIGGER") for thename of a 's group.
+
+
+
+
+ A constant group name used internally by the
+ scheduler - clients should not use the value of this constant
+ ("RECOVERING_JOBS") for thename of a 's group.
+
+
+
+
+ A constant group name used internally by the
+ scheduler - clients should not use the value of this constant
+ ("FAILED_OVER_JOBS") for thename of a 's group.
+
+
+
+
+ A constant key that can be used to retrieve the
+ name of the original from a recovery trigger's
+ data map in the case of a job recovering after a failed scheduler
+ instance.
+
+
+
+
+
+ A constant key that can be used to retrieve the
+ group of the original from a recovery trigger's
+ data map in the case of a job recovering after a failed scheduler
+ instance.
+
+
+
+
+
+ A constant key that can be used to retrieve the
+ scheduled fire time of the original from a recovery
+ trigger's data map in the case of a job recovering after a failed scheduler
+ instance.
+
+
+
+
+
+ Holds state information for instances.
+
+
+ instances are stored once when the
+ is added to a scheduler. They are also re-persisted after every execution of
+ instances.
+
+ instances can also be stored with a
+ . This can be useful in the case where you have a Job
+ that is stored in the scheduler for regular/repeated use by multiple
+ Triggers, yet with each independent triggering, you want to supply the
+ Job with different data inputs.
+
+
+ The passed to a Job at execution time
+ also contains a convenience that is the result
+ of merging the contents of the trigger's JobDataMap (if any) over the
+ Job's JobDataMap (if any).
+
+
+
+
+
+
+ James House
+
+
+
+ Create an empty .
+
+
+
+
+ Create a with the given data.
+
+
+
+
+ Adds the given value as a string version to the
+ 's data map.
+
+
+
+
+ Adds the given value as a string version to the
+ 's data map.
+
+
+
+
+ Adds the given value as a string version to the
+ 's data map.
+
+
+
+
+ Adds the given value as a string version to the
+ 's data map.
+
+
+
+
+ Adds the given value as a string version to the
+ 's data map.
+
+
+
+
+ Adds the given value as a string version to the
+ 's data map.
+
+
+
+
+ Retrieve the identified value from the .
+
+
+
+
+ Retrieve the identified value from the .
+
+
+
+
+ Retrieve the identified value from the .
+
+
+
+
+ Retrieve the identified value from the .
+
+
+
+
+ Retrieve the identified value from the
+ .
+
+
+
+
+ Retrieve the identified value from the .
+
+
+
+
+ Retrieve the identified value from the .
+
+
+
+
+ Retrieve the identified value from the .
+
+
+
+
+ Retrieve the identified value from the .
+
+
+
+
+ Retrieve the identified value from the .
+
+
+
+
+ Retrieve the identified value from the .
+
+
+
+
+ Retrieve the identified value from the .
+
+
+
+
+ Retrieve the identified value from the .
+
+
+
+
+ Retrieve the identified value from the .
+
+
+
+
+ Retrieve the identified value from the .
+
+
+
+
+ Gets the date time.
+
+ The key.
+
+
+
+
+ Gets the value behind the specified key.
+
+ The key.
+
+
+
+
+ Conveys the detail properties of a given instance.
+
+
+ Quartz does not store an actual instance of a type, but
+ instead allows you to define an instance of one, through the use of a .
+
+ s have a name and group associated with them, which
+ should uniquely identify them within a single .
+
+
+ s are the 'mechanism' by which s
+ are scheduled. Many s can point to the same ,
+ but a single can only point to one .
+
+
+
+
+
+
+ James House
+ Sharada Jambula
+
+
+
+ Create a with no specified name or group, and
+ the default settings of all the other properties.
+
+ Note that the , and
+ properties must be set before the job can be
+ placed into a .
+
+
+
+
+
+ Create a with the given name, default group, and
+ the default settings of all the other properties.
+ If , Scheduler.DefaultGroup will be used.
+
+
+ If name is null or empty, or the group is an empty string.
+
+
+
+
+ Create a with the given name, and group, and
+ the default settings of all the other properties.
+ If , Scheduler.DefaultGroup will be used.
+
+
+ If name is null or empty, or the group is an empty string.
+
+
+
+
+ Create a with the given name, and group, and
+ the given settings of all the other properties.
+
+ The name.
+ if , Scheduler.DefaultGroup will be used.
+ Type of the job.
+ if set to true, job will be volatile.
+ if set to true, job will be durable.
+ if set to true, job will request recovery.
+
+ ArgumentException if name is null or empty, or the group is an empty string.
+
+
+
+
+ Validates whether the properties of the are
+ valid for submission into a .
+
+
+
+
+ Add the specified name of a to the
+ end of the 's list of listeners.
+
+
+
+
+ Remove the specified name of a from
+ the 's list of listeners.
+
+ true if the given name was found in the list, and removed
+
+
+
+ Return a simple string representation of this object.
+
+
+
+
+ Creates a new object that is a copy of the current instance.
+
+
+ A new object that is a copy of this instance.
+
+
+
+
+ Determines whether the specified detail is equal to this instance.
+
+ The detail to examine.
+
+ true if the specified detail is equal; otherwise, false.
+
+
+
+
+ Determines whether the specified is equal to the current .
+
+ The to compare with the current .
+
+ if the specified is equal to the
+ current ; otherwise, .
+
+
+
+
+ Checks equality between given job detail and this instance.
+
+ The detail to compare this instance with.
+
+
+
+
+ Serves as a hash function for a particular type, suitable
+ for use in hashing algorithms and data structures like a hash table.
+
+
+ A hash code for the current .
+
+
+
+
+ Get or sets the name of this .
+
+
+ if name is null or empty.
+
+
+
+
+ Get or sets the group of this .
+ If , will be used.
+
+
+ If the group is an empty string.
+
+
+
+
+ Returns the 'full name' of the in the format
+ "group.name".
+
+
+
+
+ Gets the key.
+
+ The key.
+
+
+
+ Get or set the description given to the instance by its
+ creator (if any).
+
+
+ May be useful for remembering/displaying the purpose of the job, though the
+ description has no meaning to Quartz.
+
+
+
+
+ Get or sets the instance of that will be executed.
+
+
+ if jobType is null or the class is not a .
+
+
+
+
+ Get or set the that is associated with the .
+
+
+
+
+ Set whether or not the the should re-Execute
+ the if a 'recovery' or 'fail-over' situation is
+ encountered.
+
+ If not explicitly set, the default value is .
+
+
+
+
+
+
+ Whether or not the should not be persisted in the
+ for re-use after program
+ restarts.
+
+ If not explicitly set, the default value is .
+
+
+ if the should be garbage
+ collected along with the .
+
+
+
+
+ Whether or not the should remain stored after it is
+ orphaned (no s point to it).
+
+ If not explicitly set, the default value is .
+
+
+
+ if the Job should remain persisted after
+ being orphaned.
+
+
+
+
+ Whether or not the implements the interface .
+
+
+
+
+ Gets or sets an array of s containing the names of all
+ s assigned to the ,
+ in the order in which they should be notified. Setting the array
+ clears any listener names that were in the list.
+
+
+
+
+ A context bundle containing handles to various environment information, that
+ is given to a instance as it is
+ executed, and to a instance after the
+ execution completes.
+
+
+
+ The found on this object (via the
+ method) serves as a convenience -
+ it is a merge of the found on the
+ and the one found on the , with
+ the value in the latter overriding any same-named values in the former.
+ It is thus considered a 'best practice' that the Execute code of a Job
+ retrieve data from the JobDataMap found on this object NOTE: Do not
+ expect value 'set' into this JobDataMap to somehow be set back onto a
+ 's own JobDataMap.
+
+
+
+ s are also returned from the
+
+ method. These are the same instances as those past into the jobs that are
+ currently executing within the scheduler. The exception to this is when your
+ application is using Quartz remotely (i.e. via RMI) - in which case you get
+ a clone of the s, and their references to
+ the and instances have been lost (a
+ clone of the is still available - just not a handle
+ to the job instance that is running).
+
+
+
+
+
+
+
+ James House
+
+
+
+ Create a JobExcecutionContext with the given context data.
+
+
+
+
+ Increments the refire count.
+
+
+
+
+ Returns a that represents the current .
+
+
+ A that represents the current .
+
+
+
+
+ Put the specified value into the context's data map with the given key.
+ Possibly useful for sharing data between listeners and jobs.
+
+ NOTE: this data is volatile - it is lost after the job execution
+ completes, and all TriggerListeners and JobListeners have been
+ notified.
+
+
+
+
+
+
+
+
+
+ Get the value with the given key from the context's data map.
+
+
+
+
+
+
+ Get a handle to the instance that fired the
+ .
+
+
+
+
+ Get a handle to the instance that fired the
+ .
+
+
+
+
+ Get a handle to the referenced by the
+ instance that fired the .
+
+
+
+
+ If the is being re-executed because of a 'recovery'
+ situation, this method will return .
+
+
+
+
+ Gets the refire count.
+
+ The refire count.
+
+
+
+ Get the convenience of this execution context.
+
+
+
+ The found on this object serves as a convenience -
+ it is a merge of the found on the
+ and the one found on the , with
+ the value in the latter overriding any same-named values in the former.
+ It is thus considered a 'best practice' that the Execute code of a Job
+ retrieve data from the JobDataMap found on this object.
+
+
+
NOTE: Do not expect value 'set' into this JobDataMap to somehow be
+ set back onto a 's own JobDataMap.
+
+
+
+ Attempts to change the contents of this map typically result in an
+ illegal state.
+
+
+
+
+
+
+ Get the associated with the .
+
+
+
+
+ Get the instance of the that was created for this
+ execution.
+
+ Note: The Job instance is not available through remote scheduler
+ interfaces.
+
+
+
+
+
+ The actual time the trigger fired. For instance the scheduled time may
+ have been 10:00:00 but the actual fire time may have been 10:00:03 if
+ the scheduler was too busy.
+
+ Returns the fireTimeUtc.
+
+
+
+
+ The scheduled time the trigger fired for. For instance the scheduled
+ time may have been 10:00:00 but the actual fire time may have been
+ 10:00:03 if the scheduler was too busy.
+
+ Returns the scheduledFireTimeUtc.
+
+
+
+
+ Gets the previous fire time.
+
+ The previous fire time.
+
+
+
+ Gets the next fire time.
+
+ The next fire time.
+
+
+
+ Returns the result (if any) that the set before its
+ execution completed (the type of object set as the result is entirely up
+ to the particular job).
+
+
+
+ The result itself is meaningless to Quartz, but may be informative
+ to s or
+ s that are watching the job's
+ execution.
+
+
+ Set the result (if any) of the 's execution (the type of
+ object set as the result is entirely up to the particular job).
+
+
+ The result itself is meaningless to Quartz, but may be informative
+ to s or
+ s that are watching the job's
+ execution.
+
+
+
+
+
+ The amount of time the job ran for. The returned
+ value will be until the job has actually completed (or thrown an
+ exception), and is therefore generally only useful to
+ s and s.
+
+
+
+
+ An exception that can be thrown by a
+ to indicate to the Quartz that an error
+ occured while executing, and whether or not the requests
+ to be re-fired immediately (using the same ,
+ or whether it wants to be unscheduled.
+
+
+ Note that if the flag for 'refire immediately' is set, the flags for
+ unscheduling the Job are ignored.
+
+
+
+
+ James House
+
+
+
+ Create a JobExcecutionException, with the 're-fire immediately' flag set
+ to .
+
+
+
+
+ Create a JobExcecutionException, with the given cause.
+
+ The cause.
+
+
+
+ Create a JobExcecutionException, with the given message.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The message.
+ The original cause.
+
+
+
+ Create a JobExcecutionException with the 're-fire immediately' flag set
+ to the given value.
+
+
+
+
+ Create a JobExcecutionException with the given underlying exception, and
+ the 're-fire immediately' flag set to the given value.
+
+
+
+
+ Create a JobExcecutionException with the given message, and underlying
+ exception, and the 're-fire immediately' flag set to the given value.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The class name is null or is zero (0).
+ The info parameter is null.
+
+
+
+ Creates and returns a string representation of the current exception.
+
+
+ A string representation of the current exception.
+
+
+
+
+
+ Gets or sets a value indicating whether to unschedule firing trigger.
+
+
+ true if firing trigger should be unscheduled; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether to unschedule all triggers.
+
+
+ true if all triggers should be unscheduled; otherwise, false.
+
+
+
+
+ Gets or sets a value indicating whether to refire immediately.
+
+ true if to refire immediately; otherwise, false.
+
+
+
+ Misfire instructions.
+
+
+
+
+ Instruction not set (yet).
+
+
+
+
+ Use smart policy.
+
+
+
+
+ Misfire policy settings for SimpleTrigger.
+
+
+
+
+ Instructs the that upon a mis-fire
+ situation, the wants to be fired
+ now by .
+
+ NOTE: This instruction should typically only be used for
+ 'one-shot' (non-repeating) Triggers. If it is used on a trigger with a
+ repeat count > 0 then it is equivalent to the instruction
+ .
+
+
+
+
+
+ Instructs the that upon a mis-fire
+ situation, the wants to be
+ re-scheduled to 'now' (even if the associated
+ excludes 'now') with the repeat count left as-is. This does obey the
+ end-time however, so if 'now' is after the
+ end-time the will not fire again.
+
+
+
+ NOTE: Use of this instruction causes the trigger to 'forget'
+ the start-time and repeat-count that it was originally setup with (this
+ is only an issue if you for some reason wanted to be able to tell what
+ the original values were at some later time).
+
+
+
+
+
+ Instructs the that upon a mis-fire
+ situation, the wants to be
+ re-scheduled to 'now' (even if the associated
+ excludes 'now') with the repeat count set to what it would be, if it had
+ not missed any firings. This does obey the end-time
+ however, so if 'now' is after the end-time the will
+ not fire again.
+
+
+ NOTE: Use of this instruction causes the trigger to 'forget'
+ the start-time and repeat-count that it was originally setup with.
+ Instead, the repeat count on the trigger will be changed to whatever
+ the remaining repeat count is (this is only an issue if you for some
+ reason wanted to be able to tell what the original values were at some
+ later time).
+
+
+
+ NOTE: This instruction could cause the
+ to go to the 'COMPLETE' state after firing 'now', if all the
+ repeat-fire-times where missed.
+
+
+
+
+
+ Instructs the that upon a mis-fire
+ situation, the wants to be
+ re-scheduled to the next scheduled time after 'now' - taking into
+ account any associated , and with the
+ repeat count set to what it would be, if it had not missed any firings.
+
+
+ NOTE/WARNING: This instruction could cause the
+ to go directly to the 'COMPLETE' state if all fire-times where missed.
+
+
+
+
+ Instructs the that upon a mis-fire
+ situation, the wants to be
+ re-scheduled to the next scheduled time after 'now' - taking into
+ account any associated , and with the
+ repeat count left unchanged.
+
+
+
+ NOTE/WARNING: This instruction could cause the
+ to go directly to the 'COMPLETE' state if all the end-time of the trigger
+ has arrived.
+
+
+
+
+
+ misfire instructions for CronTrigger
+
+
+
+
+ Instructs the that upon a mis-fire
+ situation, the wants to be fired now
+ by .
+
+
+
+
+ Instructs the that upon a mis-fire
+ situation, the wants to have it's
+ next-fire-time updated to the next time in the schedule after the
+ current time (taking into account any associated ,
+ but it does not want to be fired now.
+
+
+
+
+ misfire instructions for NthIncludedDayTrigger
+
+
+
+
+ Instructs the that upon a mis-fire situation, the
+ wants to be fired now by the
+
+
+
+
+
+ Instructs the that upon a mis-fire situation, the
+ wants to have
+ nextFireTime updated to the next time in the schedule after
+ the current time, but it does not want to be fired now.
+
+
+
+
+ A trigger which fires on the Nth day of every interval type
+ , or
+ that is not excluded by the associated
+ calendar.
+
+
+ When determining what the Nth day of the month or year
+ is, will skip excluded days on the
+ associated calendar. This would commonly be used in an Nth
+ business day situation, in which the user wishes to fire a particular job on
+ the Nth business day (i.e. the 5th business day of
+ every month). Each also has an associated
+ which indicates at what time of day the trigger is
+ to fire.
+
+ All s default to a monthly interval type
+ (fires on the Nth day of every month) with N = 1 (first
+ non-excluded day) and set to 12:00 PM (noon). These
+ values can be changed using the , , and
+ methods. Users may also want to note the
+ and
+ methods.
+
+
+ Take, for example, the following calendar:
+
+
+ July August September
+ Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
+ 1 W 1 2 3 4 5 W 1 2 W
+ W H 5 6 7 8 W W 8 9 10 11 12 W W H 6 7 8 9 W
+ W 11 12 13 14 15 W W 15 16 17 18 19 W W 12 13 14 15 16 W
+ W 18 19 20 21 22 W W 22 23 24 25 26 W W 19 20 21 22 23 W
+ W 25 26 27 28 29 W W 29 30 31 W 26 27 28 29 30
+ W
+
+ Where W's represent weekend days, and H's represent holidays, all of which
+ are excluded on a calendar associated with an
+ with n=5 and
+ intervalType=IntervalTypeMonthly. In this case, the trigger
+ would fire on the 8th of July (because of the July 4 holiday),
+ the 5th of August, and the 8th of September (because
+ of Labor Day).
+
+ Aaron Craven
+
+
+
+ Indicates a monthly trigger type (fires on the Nth included
+ day of every month).
+
+
+
+ indicates a yearly trigger type (fires on the Nth included
+ day of every year).
+
+
+
+
+ Indicates a weekly trigger type (fires on the Nth included
+ day of every week). When using this interval type, care must be taken
+ not to think of the value of as an analog to
+ . Such a comparison can only
+ be drawn when there are no calendars associated with the trigger. To
+ illustrate, consider an with
+ n = 3 which is associated with a Calendar excluding
+ non-weekdays. The trigger would fire on the 3rd
+ included day of the week, which would be 4th
+ actual day of the week.
+
+
+
+
+ Create an with no specified name,
+ group, or . This will result initially in a
+ default monthly trigger that fires on the first day of every month at
+ 12:00 PM (n = 1,
+ intervalType=,
+ fireAtTime="12:00").
+
+
+ Note that , ,
+ , and , must be
+ called before the can be placed into
+ a .
+
+
+
+
+ Create an with the given name and
+ default group but no specified . This will result
+ initially in a default monthly trigger that fires on the first day of
+ every month at 12:00 PM (=1,
+ intervalType=,
+ fireAtTime=12:00").
+
+ Note that and must
+ be called before the can be placed
+ into a .
+
+
+ the name for the
+
+
+
+ Create an with the given name and
+ group but no specified . This will result
+ initially in a default monthly trigger that fires on the first day of
+ every month at 12:00 PM (=1,
+ intervalType=,
+ fireAtTime=12:00").
+
+ Note that and must
+ be called before the can be placed
+ into a .
+
+
+ the name for the
+
+ the group for the
+
+
+
+
+ Create an with the given name and
+ group and the specified . This will result
+ initially in a default monthly trigger that fires on the first day of
+ every month at 12:00 PM (=1,
+ intervalType=,
+ fireAtTime="12:00").
+
+ The name for the .
+ The group for the .
+ The name of the job to associate with the .
+ The group containing the job to associate with the .
+
+
+
+ Returns the next UTC time at which the
+ will fire. If the trigger will not fire again, will be
+ returned.
+
+
+
+ Because of the conceptual design of ,
+ it is not always possible to decide with certainty that the trigger
+ will never fire again. Therefore, it will search for the next
+ fire time up to a given cutoff. These cutoffs can be changed by using the
+ property. The default cutoff is 12
+ of the intervals specified by intervalType.
+
+
+ The returned value is not guaranteed to be valid until after
+ the trigger has been added to the scheduler.
+
+
+ the next fire time for the trigger
+
+
+
+
+ Returns the previous UTC time at which the
+ fired. If the trigger has not yet
+ fired, will be returned.
+
+ the previous fire time for the trigger
+
+
+
+ Returns the first time the will fire
+ after the specified date.
+
+
+
+ Because of the conceptual design of ,
+ it is not always possible to decide with certainty that the trigger
+ will never fire again. Therefore, it will search for the next
+ fire time up to a given cutoff. These cutoffs can be changed by using the
+ property. The default cutoff is 12
+ of the intervals specified by intervalType.
+
+
+ Therefore, for triggers with intervalType =
+ , if the trigger
+ will not fire within 12
+ weeks after the given date/time, will be returned. For
+ triggers with intervalType =
+
+ , if the trigger will not fire within 12
+ months after the given date/time, will be returned.
+ For triggers with intervalType =
+
+ , if the trigger will not fire within 12
+ years after the given date/time, will be returned. In
+ all cases, if the trigger will not fire before ,
+ will be returned.
+
+
+ The time after which to find the nearest fire time.
+ This argument is treated as exclusive 舒 that is,
+ if afterTime is a valid fire time for the trigger, it
+ will not be returned as the next fire time.
+
+
+ the first time the trigger will fire following the specified date
+
+
+
+
+ Called when the has decided to 'fire' the trigger
+ (Execute the associated ), in order to give the
+ a chance to update itself for its next triggering
+ (if any).
+
+
+
+
+ Called by the scheduler at the time a is first
+ added to the scheduler, in order to have the
+ compute its first fire time, based on any associated calendar.
+
+ After this method has been called,
+ should return a valid answer.
+
+
+
+ the first time at which the will be fired
+ by the scheduler, which is also the same value
+ will return (until after the first
+ firing of the ).
+
+
+
+
+ Called after the has executed the
+ associated with the in order
+ to get the final instruction code from the trigger.
+
+
+ The that was used by the
+ 's method.
+
+
+ The thrown by the
+ , if any (may be )
+
+ one of the Trigger.INSTRUCTION_XXX constants.
+
+
+
+
+ Used by the to determine whether or not it is
+ possible for this to fire again.
+ '
+
+
+ If the returned value is then the
+ may remove the from the
+
+
+
+
+ A boolean indicator of whether the trigger could potentially fire
+ again.
+
+
+
+
+ Indicates whether is a valid misfire
+ instruction for this .
+
+ Whether is valid.
+
+
+ Updates the 's state based on the
+ MisfireInstruction that was selected when the
+ was created
+
+ If the misfire instruction is set to MISFIRE_INSTRUCTION_SMART_POLICY,
+ then the instruction will be interpreted as
+ .
+
+
+ a new or updated calendar to use for the trigger
+
+
+
+
+ Updates the 's state based on the
+ given new version of the associated .
+
+ A new or updated calendar to use for the trigger
+ the amount of time that must
+ be between "now" and the time the next
+ firing of the trigger is supposed to occur.
+
+
+
+
+ Calculates the first time an with
+ intervalType = IntervalTypeWeekly will fire
+ after the specified date. See for more
+ information.
+
+ The time after which to find the nearest fire time.
+ This argument is treated as exclusive 舒 that is,
+ if afterTime is a valid fire time for the trigger, it
+ will not be returned as the next fire time.
+
+ the first time the trigger will fire following the specified
+ date
+
+
+
+
+ Calculates the first UTC time an with
+ intervalType = will fire
+ after the specified date. See for more
+ information.
+
+
+ The UTC time after which to find the nearest fire time.
+ This argument is treated as exclusive 舒 that is,
+ if afterTime is a valid fire time for the trigger, it
+ will not be returned as the next fire time.
+
+ the first time the trigger will fire following the specified date
+
+
+
+ Calculates the first time an with
+ intervalType = will fire
+ after the specified date. See for more
+ information.
+
+
+ The UTC time after which to find the nearest fire time.
+ This argument is treated as exclusive 舒 that is,
+ if afterTime is a valid fire time for the trigger, it
+ will not be returned as the next fire time.
+
+ the first time the trigger will fire following the specified
+ date
+
+
+
+
+ Gets or sets the day of the interval on which the
+ should fire. If the Nth
+ day of the interval does not exist (i.e. the 32nd of a
+ month), the trigger simply will never fire. N may not be less than 1.
+
+
+
+
+ Returns the interval type for the .
+
+
+ Sets the interval type for the . If
+ , the trigger will fire on the
+ Nth included day of every month. If
+ , the trigger will fire on the
+ Nth included day of every year. If
+ , the trigger will fire on the
+ Nth included day of every week.
+
+
+
+
+
+
+
+ Returns the fire time for the as a
+ string with the format "HH:MM[:SS]", with HH representing the
+ 24-hour clock hour of the fire time. Seconds are optional and their
+ inclusion depends on whether or not they were provided to
+ .
+
+
+
+
+ Returns the for the
+ .
+
+
+
+ Because of the conceptual design of ,
+ it is not always possible to decide with certainty that the trigger
+ will never fire again. Therefore, it will search for the next
+ fire time up to a given cutoff. These cutoffs can be changed by using the
+ property. The default cutoff is 12
+ of the intervals specified by intervalType" />.
+
+
+ Because of the conceptual design of ,
+ it is not always possible to decide with certainty that the trigger
+ will never fire again. Therefore, it will search for the next
+ fire time up to a given cutoff. These cutoffs can be changed by using the
+ method. The default cutoff is 12
+ of the intervals specified by intervalType".
+
+
+ In most cases, the default value of this setting (12) is sufficient (it
+ is highly unlikely, for example, that you will need to look at more than
+ 12 months of dates to ensure that your trigger will never fire again).
+ However, this setting is included to allow for the rare exceptions where
+ this might not be true.
+
+
+ For example, if your trigger is associated with a calendar that excludes
+ a great many dates in the next 12 months, and hardly any following that,
+ it is possible (if is large enough) that you could run
+ into this situation.
+
+
+
+
+
+ Returns the last UTC time the will fire.
+ If the trigger will not fire at any point between
+ and , will be returned.
+
+ the last time the trigger will fire.
+
+
+
+ Tells whether this Trigger instance can handle events
+ in millisecond precision.
+
+
+
+
+
+ Sets or gets the time zone in which the will be resolved.
+ If no time zone is provided, then the default time zone will be used.
+
+
+
+
+
+
+ Gets or sets the trigger's calendar week rule.
+
+ The trigger calendar week rule.
+
+
+
+ Gets or sets the trigger's calendar first day of week rule.
+
+ The trigger calendar first day of week.
+
+
+
+ An exception that is thrown to indicate that an attempt to store a new
+ object (i.e. ,
+ or ) in a
+ failed, because one with the same name and group already exists.
+
+ James House
+
+
+
+ Create a with the given
+ message.
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The class name is null or is zero (0).
+ The info parameter is null.
+
+
+
+ Create a and auto-generate a
+ message using the name/group from the given .
+
+
+
+ The message will read: "Unable to store Job with name: '__' and
+ group: '__', because one already exists with this identification."
+
+
+
+
+
+ Create a and auto-generate a
+ message using the name/group from the given .
+
+
+
+ The message will read: "Unable to store Trigger with name: '__' and
+ group: '__', because one already exists with this identification."
+
+
+
+
+
+ An exception that is thrown to indicate that there is a misconfiguration of
+ the - or one of the components it
+ configures.
+
+ James House
+
+
+
+ Create a with the given message.
+
+
+
+
+ Create a with the given message
+ and cause.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The class name is null or is zero (0).
+ The info parameter is null.
+
+
+
+ Holds context/environment data that can be made available to Jobs as they
+ are executed.
+
+
+ James House
+
+
+
+ Create an empty .
+
+
+
+
+ Create a with the given data.
+
+
+
+
+ Instructs Scheduler what to do with a trigger and job.
+
+
+
+
+ Instructs the that the
+ has no further instructions.
+
+
+
+
+ Instructs the that the
+ wants the to re-Execute
+ immediately. If not in a 'RECOVERING' or 'FAILED_OVER' situation, the
+ execution context will be re-used (giving the the
+ abilitiy to 'see' anything placed in the context by its last execution).
+
+
+
+
+ Instructs the that the
+ should be put in the state.
+
+
+
+
+ Instructs the that the
+ wants itself deleted.
+
+
+
+
+ Instructs the that all
+ s referencing the same as
+ this one should be put in the state.
+
+
+
+
+ Instructs the that all
+ s referencing the same as
+ this one should be put in the state.
+
+
+
+
+ Instructs the that the
+ should be put in the state.
+
+
+
+
+ Describes the settings and capabilities of a given
+ instance.
+
+ James House
+
+
+
+ Initializes a new instance of the class.
+
+ Name of the scheduler.
+ The scheduler instance.
+ The scheduler type.
+ if set to true, scheduler is a remote scheduler.
+ if set to true, scheduler is started.
+ if set to true, scheduler is in standby mode.
+ if set to true, scheduler is shutdown.
+ The start time.
+ The number of jobs executed.
+ The job store type.
+ if set to true, job store is persistent.
+ The thread pool type.
+ Size of the thread pool.
+ The version string.
+
+
+
+ Returns a formatted (human readable) string describing all the 's
+ meta-data values.
+
+
+
+ The format of the string looks something like this:
+
+ Quartz Scheduler 'SchedulerName' with instanceId 'SchedulerInstanceId' Scheduler class: 'Quartz.Impl.StdScheduler' - running locally. Running since: '11:33am on Jul 19, 2002' Not currently paused. Number of Triggers fired: '123' Using thread pool 'Quartz.Simpl.SimpleThreadPool' - with '8' threads Using job-store 'Quartz.Impl.JobStore' - which supports persistence.
+
+
+
+
+
+
+ Return a simple string representation of this object.
+
+
+
+
+ Returns the name of the .
+
+
+
+
+ Returns the instance Id of the .
+
+
+
+
+ Returns the class-name of the instance.
+
+
+
+
+ Returns whether the is being used remotely (via remoting).
+
+
+
+
+ Returns whether the scheduler has been started.
+
+
+ Note: may return even if
+ returns .
+
+
+
+
+ Reports whether the is in standby mode.
+
+
+ Note: may return even if
+ returns .
+
+
+
+
+ Reports whether the has been Shutdown.
+
+
+
+
+ Returns the class-name of the instance that is
+ being used by the .
+
+
+
+
+ Returns the type name of the instance that is
+ being used by the .
+
+
+
+
+ Returns the number of threads currently in the 's
+
+
+
+
+ Returns the version of Quartz that is running.
+
+
+
+
+ Returns the at which the Scheduler started running.
+
+ null if the scheduler has not been started.
+
+
+
+
+ Returns the number of jobs executed since the
+ started..
+
+
+
+
+ Returns whether or not the 's
+ instance supports persistence.
+
+
+
+
+ A concrete that is used to fire a
+ at a given moment in time, and optionally repeated at a specified interval.
+
+
+
+
+
+ James House
+ Contributions by Lieven Govaerts of Ebitec Nv, Belgium.
+ Marko Lahma (.NET)
+
+
+
+ Used to indicate the 'repeat count' of the trigger is indefinite. Or in
+ other words, the trigger should repeat continually until the trigger's
+ ending timestamp.
+
+
+
+
+ Create a with no settings.
+
+
+
+
+ Create a that will occur immediately, and
+ not repeat.
+
+
+
+
+ Create a that will occur immediately, and
+ not repeat.
+
+
+
+
+ Create a that will occur immediately, and
+ repeat at the the given interval the given number of times.
+
+
+
+
+ Create a that will occur immediately, and
+ repeat at the the given interval the given number of times.
+
+
+
+
+ Create a that will occur at the given time,
+ and not repeat.
+
+
+
+
+ Create a that will occur at the given time,
+ and not repeat.
+
+
+
+
+ Create a that will occur at the given time,
+ and repeat at the the given interval the given number of times, or until
+ the given end time.
+
+ The name.
+ A UTC set to the time for the to fire.
+ A UTC set to the time for the
+ to quit repeat firing.
+ The number of times for the to repeat
+ firing, use for unlimited times.
+ The time span to pause between the repeat firing.
+
+
+
+ Create a that will occur at the given time,
+ and repeat at the the given interval the given number of times, or until
+ the given end time.
+
+ The name.
+ The group.
+ A UTC set to the time for the to fire.
+ A UTC set to the time for the
+ to quit repeat firing.
+ The number of times for the to repeat
+ firing, use for unlimited times.
+ The time span to pause between the repeat firing.
+
+
+
+ Create a that will occur at the given time,
+ fire the identified and repeat at the the given
+ interval the given number of times, or until the given end time.
+
+ The name.
+ The group.
+ Name of the job.
+ The job group.
+ A set to the time for the
+ to fire.
+ A set to the time for the
+ to quit repeat firing.
+ The number of times for the to repeat
+ firing, use RepeatIndefinitely for unlimited times.
+ The time span to pause between the repeat firing.
+
+
+
+ Validates the misfire instruction.
+
+ The misfire instruction.
+
+
+
+
+ Updates the 's state based on the
+ MisfireInstruction value that was selected when the
+ was created.
+
+
+ If MisfireSmartPolicyEnabled is set to true,
+ then the following scheme will be used:
+
+
If the Repeat Count is 0, then the instruction will
+ be interpreted as .
+
If the Repeat Count is , then
+ the instruction will be interpreted as .
+ WARNING: using MisfirePolicy.SimpleTrigger.RescheduleNowWithRemainingRepeatCount
+ with a trigger that has a non-null end-time may cause the trigger to
+ never fire again if the end-time arrived during the misfire time span.
+
+
If the Repeat Count is > 0, then the instruction
+ will be interpreted as .
+
+
+
+
+
+
+ Called when the has decided to 'fire'
+ the trigger (Execute the associated ), in order to
+ give the a chance to update itself for its next
+ triggering (if any).
+
+
+
+
+
+ Updates the instance with new calendar.
+
+ The calendar.
+ The misfire threshold.
+
+
+
+ Called by the scheduler at the time a is first
+ added to the scheduler, in order to have the
+ compute its first fire time, based on any associated calendar.
+
+ After this method has been called,
+ should return a valid answer.
+
+
+
+ The first time at which the will be fired
+ by the scheduler, which is also the same value
+ will return (until after the first firing of the ).
+
+
+
+
+ Returns the next time at which the will
+ fire. If the trigger will not fire again, will be
+ returned. The value returned is not guaranteed to be valid until after
+ the has been added to the scheduler.
+
+
+
+
+ Returns the previous time at which the fired.
+ If the trigger has not yet fired, will be
+ returned.
+
+
+
+
+ Set the next UTC time at which the should fire.
+ This method should not be invoked by client code.
+
+
+
+
+ Set the previous UTC time at which the fired.
+ This method should not be invoked by client code.
+
+
+
+
+ Returns the next UTC time at which the will
+ fire, after the given UTC time. If the trigger will not fire after the given
+ time, will be returned.
+
+
+
+
+ Returns the last UTC time at which the will
+ fire, before the given time. If the trigger will not fire before the
+ given time, will be returned.
+
+
+
+
+ Computes the number of times fired between the two UTC date times.
+
+ The UTC start date and time.
+ The UTC end date and time.
+
+
+
+
+ Determines whether or not the will occur
+ again.
+
+
+
+
+ Validates whether the properties of the are
+ valid for submission into a .
+
+
+
+
+ Get or set thhe number of times the should
+ repeat, after which it will be automatically deleted.
+
+
+
+
+
+ Get or set the the time interval at which the should repeat.
+
+
+
+
+ Get or set the number of times the has already
+ fired.
+
+
+
+
+ Returns the final UTC time at which the will
+ fire, if repeatCount is RepeatIndefinitely, null will be returned.
+
+ Note that the return time may be in the past.
+
+
+
+
+
+ Tells whether this Trigger instance can handle events
+ in millisecond precision.
+
+
+
+
+
+ All trigger states known to Scheduler.
+
+
+
+
+ Indicates that the is in the "normal" state.
+
+
+
+
+ Indicates that the is in the "paused" state.
+
+
+
+
+ Indicates that the is in the "complete" state.
+
+
+ "Complete" indicates that the trigger has not remaining fire-times in
+ its schedule.
+
+
+
+
+ Indicates that the is in the "error" state.
+
+
+
+ A arrives at the error state when the scheduler
+ attempts to fire it, but cannot due to an error creating and executing
+ its related job. Often this is due to the 's
+ class not existing in the classpath.
+
+
+
+ When the trigger is in the error state, the scheduler will make no
+ attempts to fire it.
+
+
+
+
+
+ Indicates that the is in the "blocked" state.
+
+
+ A arrives at the blocked state when the job that
+ it is associated with is a and it is
+ currently executing.
+
+
+
+
+
+ Indicates that the does not exist.
+
+
+
+
+ Convenience and utility methods for simplifying the construction and
+ configuration of s.
+
+
+ Please submit suggestions for additional convenience methods to either the
+ Quartz user forum or the developer's mail list at
+ source forge.
+
+
+
+ James House
+
+
+
+ Constant indicating last day of month.
+
+
+
+
+ Milliseconds in minute.
+
+
+
+
+ Milliseconds in hour.
+
+
+
+
+ Seconds in day.
+
+
+
+
+ Milliseconds in day.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Set the given 's name to the given value, and its
+ group to the default group ().
+
+ the tigger to change name to
+ the new trigger name
+
+
+
+ Set the given 's name to the given value, and its
+ group to the given group.
+
+ the tigger to change name to
+ the new trigger name
+ the new trigger group
+
+
+
+ Make a trigger that will fire every day at the given time.
+
+ The generated trigger will not have its name, group,
+ or end-time set. The Start time defaults to 'now'.
+
+
+ the hour (0-23) upon which to fire
+ the minute (0-59) upon which to fire
+ the new trigger
+
+
+
+ Make a trigger that will fire every day at the given time.
+
+ The generated trigger will not have its group or end-time set.
+ The Start time defaults to 'now'.
+
+
+ the trigger's name
+ the hour (0-23) upon which to fire
+ the minute (0-59) upon which to fire
+ the newly created trigger
+
+
+
+ Make a trigger that will fire every week at the given day and time.
+
+ The generated trigger will not have its name, group,
+ or end-time set. The Start time defaults to 'now'.
+
+
+ (1-7) the day of week upon which to fire
+ the hour (0-23) upon which to fire
+ the minute (0-59) upon which to fire
+ the new trigger
+
+
+
+ Make a trigger that will fire every week at the given day and time.
+
+ The generated trigger will not have its group,
+ or end-time set. The Start time defaults to 'now'.
+
+
+ the trigger's name
+ the day of week upon which to fire
+ the hour (0-23) upon which to fire
+ the minute (0-59) upon which to fire
+ the newly created trigger
+
+
+
+ Make a trigger that will fire every month at the given day and time.
+
+ The generated trigger will not have its name, group,
+ or end-time set. The Start time defaults to 'now'.
+
+
+ If the day of the month specified does not occur in a given month, a
+ firing will not occur that month. (i.e. if dayOfMonth is specified as
+ 31, no firing will occur in the months of the year with fewer than 31
+ days).
+
+
+ (1-31, or -1) the day of week upon which to fire
+ the hour (0-23) upon which to fire
+ the minute (0-59) upon which to fire
+ the newly created trigger
+
+
+
+ Make a trigger that will fire every month at the given day and time.
+
+ The generated trigger will not have its group,
+ or end-time set. The Start time defaults to 'now'.
+
+
+ If the day of the month specified does not occur in a given month, a
+ firing will not occur that month. (i.e. if dayOfMonth is specified as
+ 31, no firing will occur in the months of the year with fewer than 31
+ days).
+
+
+ the trigger's name
+ (1-31, or -1) the day of week upon which to fire
+ the hour (0-23) upon which to fire
+ the minute (0-59) upon which to fire
+ the newly created trigger
+
+
+
+ Make a trigger that will fire times, waiting
+ between each fire.
+
+
+ The generated trigger will not have its name, group,
+ or end-time set. The Start time defaults to 'now'.
+
+ the newly created trigger
+
+
+
+ Make a trigger that will fire times, waiting
+ between each fire.
+
+ The generated trigger will not have its name, group,
+ or end-time set. The Start time defaults to 'now'.
+
+
+ the trigger's name
+ the new trigger
+
+
+
+ Make a trigger that will fire every second, indefinitely.
+
+ The generated trigger will not have its name, group,
+ or end-time set. The Start time defaults to 'now'.
+
+
+ the new trigger
+
+
+
+ Make a trigger that will fire every second, indefinitely.
+
+ The generated trigger will not have its group,
+ or end-time set. The Start time defaults to 'now'.
+
+
+ the trigger's name
+ the new trigger
+
+
+
+ Make a trigger that will fire every N seconds, indefinitely.
+
+ The generated trigger will not have its name, group,
+ or end-time set. The Start time defaults to 'now'.
+
+
+ the number of seconds between firings
+ the new trigger
+
+
+
+ Make a trigger that will fire every N seconds, with the given number of
+ repeats.
+
+ The generated trigger will not have its name, group,
+ or end-time set. The Start time defaults to 'now'.
+
+
+ the number of seconds between firings
+ the number of times to repeat the firing
+ the new trigger
+
+
+
+ Make a trigger that will fire every N seconds, with the given number of
+ repeats.
+
+ The generated trigger will not have its group,
+ or end-time set. The Start time defaults to 'now'.
+
+
+ the trigger's name
+ the number of seconds between firings
+ the number of times to repeat the firing
+ the new trigger
+
+
+
+ Make a trigger that will fire every minute, indefinitely.
+
+ The generated trigger will not have its name, group,
+ or end-time set. The Start time defaults to 'now'.
+
+
+ the new trigger
+
+
+
+ Make a trigger that will fire every minute, indefinitely.
+
+ The generated trigger will not have its group,
+ or end-time set. The Start time defaults to 'now'.
+
+
+ the trigger's name
+ the new trigger
+
+
+
+ Make a trigger that will fire every N minutes, indefinitely.
+
+ The generated trigger will not have its name, group,
+ or end-time set. The Start time defaults to 'now'.
+
+
+ the number of minutes between firings
+ the new trigger
+
+
+
+ Make a trigger that will fire every N minutes, with the given number of
+ repeats.
+
+ The generated trigger will not have its name, group,
+ or end-time set. The Start time defaults to 'now'.
+
+
+ the number of minutes between firings
+ the number of times to repeat the firing
+ the new trigger
+
+
+
+ Make a trigger that will fire every N minutes, with the given number of
+ repeats.
+
+ The generated trigger will not have its group,
+ or end-time set. The Start time defaults to 'now'.
+
+
+ the trigger's name
+ the number of minutes between firings
+ the number of times to repeat the firing
+ the new trigger
+
+
+
+ Make a trigger that will fire every hour, indefinitely.
+
+ The generated trigger will not have its name, group,
+ or end-time set. The Start time defaults to 'now'.
+
+
+ the new trigger
+
+
+
+ Make a trigger that will fire every hour, indefinitely.
+
+ The generated trigger will not have its group,
+ or end-time set. The Start time defaults to 'now'.
+
+
+ the trigger's name
+ the new trigger
+
+
+
+ Make a trigger that will fire every N hours, indefinitely.
+
+ The generated trigger will not have its name, group,
+ or end-time set. The Start time defaults to 'now'.
+
+
+ the number of hours between firings
+ the new trigger
+
+
+
+ Make a trigger that will fire every N hours, with the given number of
+ repeats.
+
+ The generated trigger will not have its name, group,
+ or end-time set. The Start time defaults to 'now'.
+
+
+ the number of hours between firings
+ the number of times to repeat the firing
+ the new trigger
+
+
+
+ Make a trigger that will fire every N hours, with the given number of
+ repeats.
+
+ The generated trigger will not have its group,
+ or end-time set. The Start time defaults to 'now'.
+
+
+ the trigger's name
+ the number of hours between firings
+ the number of times to repeat the firing
+ the new trigger
+
+
+
+ Returns a date that is rounded to the next even hour above the given
+ date.
+
+ For example an input date with a time of 08:13:54 would result in a date
+ with the time of 09:00:00. If the date's time is in the 23rd hour, the
+ date's 'day' will be promoted, and the time will be set to 00:00:00.
+
+
+ the Date to round, if the current time will
+ be used
+ the new rounded date
+
+
+
+ Returns a date that is rounded to the previous even hour below the given
+ date.
+
+ For example an input date with a time of 08:13:54 would result in a date
+ with the time of 08:00:00.
+
+
+ the Date to round, if the current time will
+ be used
+ the new rounded date
+
+
+
+ Returns a date that is rounded to the next even minute above the given
+ date.
+
+ For example an input date with a time of 08:13:54 would result in a date
+ with the time of 08:14:00. If the date's time is in the 59th minute,
+ then the hour (and possibly the day) will be promoted.
+
+
+ The Date to round, if the current time will be used
+ The new rounded date
+
+
+
+ Returns a date that is rounded to the previous even minute below the
+ given date.
+
+ For example an input date with a time of 08:13:54 would result in a date
+ with the time of 08:13:00.
+
+
+ the Date to round, if the current time will
+ be used
+ the new rounded date
+
+
+
+ Returns a date that is rounded to the next even second above the given
+ date.
+
+ the Date to round, if the current time will
+ be used
+ the new rounded date
+
+
+
+ Returns a date that is rounded to the previous even second below the
+ given date.
+
+ For example an input date with a time of 08:13:54.341 would result in a
+ date with the time of 08:13:00.000.
+
+
+ the Date to round, if the current time will
+ be used
+ the new rounded date
+
+
+
+ Returns a date that is rounded to the next even multiple of the given
+ minute.
+
+ For example an input date with a time of 08:13:54, and an input
+ minute-base of 5 would result in a date with the time of 08:15:00. The
+ same input date with an input minute-base of 10 would result in a date
+ with the time of 08:20:00. But a date with the time 08:53:31 and an
+ input minute-base of 45 would result in 09:00:00, because the even-hour
+ is the next 'base' for 45-minute intervals.
+
+
+
+ More examples:
+
+
Input Time
+
Minute-Base
+
Result Time
+
+
+
11:16:41
+
20
+
11:20:00
+
+
+
11:36:41
+
20
+
11:40:00
+
+
+
11:46:41
+
20
+
12:00:00
+
+
+
11:26:41
+
30
+
11:30:00
+
+
+
11:36:41
+
30
+
12:00:00
+
+
+
11:16:41
+
17
+
11:17:00
+
+
+
11:17:41
+
17
+
11:34:00
+
+
+
11:52:41
+
17
+
12:00:00
+
+
+
11:52:41
+
5
+
11:55:00
+
+
+
11:57:41
+
5
+
12:00:00
+
+
+
11:17:41
+
0
+
12:00:00
+
+
+
11:17:41
+
1
+
11:08:00
+
+
+
+
+
+
+ the Date to round, if the current time will
+ be used
+
+
+ the base-minute to set the time on
+
+ the new rounded date
+
+
+
+ Returns a date that is rounded to the next even multiple of the given
+ minute.
+
+ The rules for calculating the second are the same as those for
+ calculating the minute in the method
+ .
+
+
+ The date.
+ The second base.
+
+
+
+
+ Returns a list of Dates that are the next fire times of a
+ .
+ The input trigger will be cloned before any work is done, so you need
+ not worry about its state being altered by this method.
+
+ The trigger upon which to do the work
+ The calendar to apply to the trigger's schedule
+ The number of next fire times to produce
+ List of java.util.Date objects
+
+
+
+ Returns a list of Dates that are the next fire times of a
+ that fall within the given date range. The input trigger will be cloned
+ before any work is done, so you need not worry about its state being
+ altered by this method.
+
+ NOTE: if this is a trigger that has previously fired within the given
+ date range, then firings which have already occured will not be listed
+ in the output List.
+
+
+ The trigger upon which to do the work
+ The calendar to apply to the trigger's schedule
+ The starting date at which to find fire times
+ The ending date at which to stop finding fire times
+ List of java.util.Date objects
+
+
+
+ Translate a date and time from a users timezone to the another
+ (probably server) timezone to assist in creating a simple trigger with
+ the right date and time.
+
+ the date to translate
+ the original time-zone
+ the destination time-zone
+ the translated UTC date
+
+
+
+ Gets the offset from UT for the given date in the given timezone,
+ taking into account daylight savings.
+
+ the date that is the base for the offset
+ the time-zone to calculate to offset to
+ the offset
+
+
+
+ This functions determines if the TimeZone uses daylight saving time
+
+ TimeZone instance to validate
+ True or false depending if daylight savings time is used
+
+
+
+ An exception that is thrown to indicate that a call to
+ failed without interrupting the Job.
+
+
+ James House
+
+
+
+ Create a with the given message.
+
+
+
+
+ Create a with the given cause.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+ The class name is null or is zero (0).
+ The info parameter is null.
+
+
+
diff --git a/lib/Net/4.0/Rhino.Mocks.dll b/lib/Net/4.0/Rhino.Mocks.dll
new file mode 100644
index 00000000..89facd92
Binary files /dev/null and b/lib/Net/4.0/Rhino.Mocks.dll differ
diff --git a/lib/Net/4.0/Rhino.Mocks.xml b/lib/Net/4.0/Rhino.Mocks.xml
new file mode 100644
index 00000000..0ec4e02d
--- /dev/null
+++ b/lib/Net/4.0/Rhino.Mocks.xml
@@ -0,0 +1,8127 @@
+
+
+
+ Rhino.Mocks
+
+
+
+
+ What should BackToRecord clear
+
+
+
+
+ Nothing
+
+
+
+
+ Event subscribers for this instance
+
+
+
+
+ Methods that should be forwarded to the base class implementation
+
+
+
+
+ Properties that should behave like properties
+
+
+
+
+ Remove al the behavior of the object
+
+
+
+
+ Interface for constraints
+
+
+
+
+ determains if the object pass the constraints
+
+
+
+
+ And operator for constraints
+
+
+
+
+ Not operator for constraints
+
+
+
+
+ Or operator for constraints
+
+
+
+
+ Allow overriding of || or &&
+
+
+
+
+
+
+
+
+ Allow overriding of || or &&
+
+
+
+
+
+
+
+
+ Gets the message for this constraint
+
+
+
+
+
+
+ Constrain that the public field matches another constraint.
+
+
+
+
+ Creates a new instance.
+
+ Name of the public field.
+ Constraint to place on the public field value.
+
+
+
+ Creates a new instance, specifying a disambiguating
+ for the public field.
+
+ The type that declares the public field, used to disambiguate between public fields.
+ Name of the public field.
+ Constraint to place on the public field value.
+
+
+
+ Determines if the object passes the constraint.
+
+
+
+
+ Gets the message for this constraint
+
+
+
+
+
+
+ Constrain that the public field has a specified value
+
+
+
+
+ Creates a new instance.
+
+ Name of the public field.
+ Expected value.
+
+
+
+ Creates a new instance, specifying a disambiguating
+ for the public field.
+
+ The type that declares the public field, used to disambiguate between public fields.
+ Name of the public field.
+ Expected value.
+
+
+
+ Constrain that the property matches another constraint.
+
+
+
+
+ Creates a new instance.
+
+ Name of the property.
+ Constraint to place on the property value.
+
+
+
+ Creates a new instance, specifying a disambiguating
+ for the property.
+
+ The type that declares the property, used to disambiguate between properties.
+ Name of the property.
+ Constraint to place on the property value.
+
+
+
+ Determines if the object passes the constraint.
+
+
+
+
+ Gets the message for this constraint
+
+
+
+
+
+
+ Constrain that the property has a specified value
+
+
+
+
+ Creates a new instance.
+
+ Name of the property.
+ Expected value.
+
+
+
+ Creates a new instance, specifying a disambiguating
+ for the property.
+
+ The type that declares the property, used to disambiguate between properties.
+ Name of the property.
+ Expected value.
+
+
+
+ Constrain that the parameter must be of the specified type
+
+
+
+
+ Creates a new instance.
+
+ Type.
+
+
+
+ determains if the object pass the constraints
+
+
+
+
+ Gets the message for this constraint
+
+
+
+
+
+
+ Constraint that determines whether an object is the same object as another.
+
+
+
+
+ Creates a new instance.
+
+ Obj.
+
+
+
+ Determines if the object passes the constraints.
+
+
+
+
+ Gets the message for this constraint.
+
+
+
+
+ Evaluate a parameter using constraints
+
+
+
+
+ Create new instance
+
+
+
+
+
+
+ determains if the object pass the constraints
+
+
+
+
+ Gets the message for this constraint
+
+
+
+
+
+
+ Constrain that the list contains the same items as the parameter list
+
+
+
+
+ Creates a new instance.
+
+ In list.
+
+
+
+ determains if the object pass the constraints
+
+
+
+
+ Gets the message for this constraint
+
+
+
+
+
+
+ Constrain that the parameter is one of the items in the list
+
+
+
+
+ Creates a new instance.
+
+ In list.
+
+
+
+ determains if the object pass the constraints
+
+
+
+
+ Gets the message for this constraint
+
+
+
+
+
+
+ Constrain that the object is inside the parameter list
+
+
+
+
+ Creates a new instance.
+
+ In list.
+
+
+
+ determains if the object pass the constraints
+
+
+
+
+ Gets the message for this constraint
+
+
+
+
+
+
+ Applies another AbstractConstraint to the collection count.
+
+
+
+
+ Creates a new instance.
+
+ The constraint that should be applied to the collection count.
+
+
+
+ Determines if the parameter conforms to this constraint.
+
+
+
+
+ Gets the message for this constraint.
+
+
+
+
+ Applies another AbstractConstraint to a specific list element.
+
+
+
+
+ Creates a new instance.
+
+ The zero-based index of the list element.
+ The constraint that should be applied to the list element.
+
+
+
+ Determines if the parameter conforms to this constraint.
+
+
+
+
+ Gets the message for this constraint
+
+
+
+
+
+
+ Constrains that all elements are in the parameter list
+
+
+
+
+ Initializes a new instance of the class.
+
+ The these.
+
+
+
+ determains if the object pass the constraints
+
+
+
+
+
+
+
+
+ Gets the message for this constraint
+
+
+
+
+
+
+ Combines two constraints, constraint pass if either is fine.
+
+
+
+
+ Creates a new instance.
+
+ C1.
+ C2.
+
+
+
+ determains if the object pass the constraints
+
+
+
+
+ Gets the message for this constraint
+
+
+
+
+
+
+ Negate a constraint
+
+
+
+
+ Creates a new instance.
+
+ C1.
+
+
+
+ determains if the object pass the constraints
+
+
+
+
+ Gets the message for this constraint
+
+
+
+
+
+
+ Combines two constraints
+
+
+
+
+
+
+ Creates a new instance.
+
+ C1.
+ C2.
+
+
+
+ determains if the object pass the constraints
+
+
+
+
+ Gets the message for this constraint
+
+
+
+
+
+
+ Constrain the argument to validate according to regex pattern
+
+
+
+
+ Creates a new instance.
+
+ Pattern.
+
+
+
+ determains if the object pass the constraints
+
+
+
+
+ Gets the message for this constraint
+
+
+
+
+
+
+ Constraint that evaluate whatever an argument contains the specified string.
+
+
+
+
+ Creates a new instance.
+
+ Inner string.
+
+
+
+ determains if the object pass the constraints
+
+
+
+
+ Gets the message for this constraint
+
+
+
+
+
+
+ Constraint that evaluate whatever an argument ends with the specified string
+
+
+
+
+ Creates a new instance.
+
+ End.
+
+
+
+ determains if the object pass the constraints
+
+
+
+
+ Gets the message for this constraint
+
+
+
+
+
+
+ Constraint that evaluate whatever an argument start with the specified string
+
+
+
+
+ Creates a new instance.
+
+ Start.
+
+
+
+ determains if the object pass the constraints
+
+
+
+
+ Gets the message for this constraint
+
+
+
+
+
+
+ Constraint that evaluate whatever an object equals another
+
+
+
+
+ Creates a new instance.
+
+ Obj.
+
+
+
+ determains if the object pass the constraints
+
+
+
+
+ Gets the message for this constraint
+
+
+
+
+
+
+ Constraint that always returns true
+
+
+
+
+ determains if the object pass the constraints
+
+
+
+
+ Gets the message for this constraint
+
+
+
+
+
+
+ Constraint that evaluate whatever a comparable is greater than another
+
+
+
+
+ Creates a new instance.
+
+
+
+
+ determains if the object pass the constraints
+
+
+
+
+ Gets the message for this constraint
+
+
+
+
+
+
+ Initializes a new constraint object.
+
+ The expected object, The actual object is passed in as a parameter to the method
+
+
+
+ Evaluate this constraint.
+
+ The actual object that was passed in the method call to the mock.
+ True when the constraint is met, else false.
+
+
+
+ Checks if the properties of the object
+ are the same as the properies of the object.
+
+ The expected object
+ The actual object
+ True when both objects have the same values, else False.
+
+
+
+
+
+
+
+
+
+
+ This is the real heart of the beast.
+
+
+
+ Used by CheckReferenceType to check all properties of the reference type.
+
+ The expected object
+ The actual object
+ True when both objects have the same values, else False.
+
+
+
+ Used by CheckReferenceType to check all fields of the reference type.
+
+ The expected object
+ The actual object
+ True when both objects have the same values, else False.
+
+
+
+ Checks the items of both collections
+
+ The expected collection
+
+
+ True if both collections contain the same items in the same order.
+
+
+
+ Builds a propertyname from the Stack _properties like 'Order.Product.Price'
+ to be used in the error message.
+
+ A nested property name.
+
+
+
+ Rhino.Mocks uses this property to generate an error message.
+
+
+ A message telling the tester why the constraint failed.
+
+
+
+
+ Central location for constraints for object's public fields
+
+
+
+
+ Constrains the parameter to have a public field with the specified value
+
+ Name of the public field.
+ Expected value.
+
+
+
+
+
+ Constrains the parameter to have a public field with the specified value.
+
+ The type that declares the public field, used to disambiguate between public fields.
+ Name of the public field.
+ Expected value.
+
+
+
+
+
+ Constrains the parameter to have a public field satisfying a specified constraint.
+
+ Name of the public field.
+ Constraint for the public field.
+
+
+
+ Constrains the parameter to have a public field satisfying a specified constraint.
+
+ The type that declares the public field, used to disambiguate between public fields.
+ Name of the public field.
+ Constraint for the public field.
+
+
+
+ Determines whether the parameter has the specified public field and that it is null.
+
+ Name of the public field.
+
+
+
+
+
+ Determines whether the parameter has the specified public field and that it is null.
+
+ The type that declares the public field, used to disambiguate between public fields.
+ Name of the public field.
+
+
+
+
+
+ Determines whether the parameter has the specified public field and that it is not null.
+
+ Name of the public field.
+
+
+
+
+
+ Determines whether the parameter has the specified public field and that it is not null.
+
+ The type that declares the public field, used to disambiguate between public fields.
+ Name of the public field.
+
+
+
+
+
+ Central location for constraints
+
+
+
+
+ Evaluate a greater than constraint for .
+
+ The object the parameter should be greater than
+
+
+
+ Evaluate a less than constraint for .
+
+ The object the parameter should be less than
+
+
+
+ Evaluate a less than or equal constraint for .
+
+ The object the parameter should be less than or equal to
+
+
+
+ Evaluate a greater than or equal constraint for .
+
+ The object the parameter should be greater than or equal to
+
+
+
+ Evaluate an equal constraint for .
+
+ The object the parameter should equal to
+
+
+
+ Evaluate a not equal constraint for .
+
+ The object the parameter should not equal to
+
+
+
+ Evaluate a same as constraint.
+
+ The object the parameter should the same as.
+
+
+
+ Evaluate a not same as constraint.
+
+ The object the parameter should not be the same as.
+
+
+
+ A constraints that accept anything
+
+
+
+
+
+
+ A constraint that accept only nulls
+
+
+
+
+
+
+ A constraint that accept only non null values
+
+
+
+
+
+
+ A constraint that accept only value of the specified type
+
+
+
+
+ A constraint that accept only value of the specified type
+
+
+
+
+ Evaluate a parameter using a predicate
+
+ The predicate to use
+
+
+
+ Central location for constraints about lists and collections
+
+
+
+
+ Determines whether the specified obj is in the paramter.
+ The parameter must be IEnumerable.
+
+ Obj.
+
+
+
+
+
+ Determains whatever the parameter is in the collection.
+
+
+
+
+ Determains that the parameter collection is identical to the specified collection
+
+
+
+
+ Determines that the parameter collection has the specified number of elements.
+
+ The constraint that should be applied to the collection count.
+
+
+
+ Determines that an element of the parameter collections conforms to another AbstractConstraint.
+
+ The zero-based index of the list element.
+ The constraint which should be applied to the list element.
+
+
+
+ Determines that all elements of the specified collection are in the the parameter collection
+
+ The collection to compare against
+ The constraint which should be applied to the list parameter.
+
+
+
+ Central location for constraints for object's properties
+
+
+
+
+ Constrains the parameter to have property with the specified value
+
+ Name of the property.
+ Expected value.
+
+
+
+
+
+ Constrains the parameter to have property with the specified value.
+
+ The type that declares the property, used to disambiguate between properties.
+ Name of the property.
+ Expected value.
+
+
+
+
+
+ Constrains the parameter to have a property satisfying a specified constraint.
+
+ Name of the property.
+ Constraint for the property.
+
+
+
+ Constrains the parameter to have a property satisfying a specified constraint.
+
+ The type that declares the property, used to disambiguate between properties.
+ Name of the property.
+ Constraint for the property.
+
+
+
+ Determines whether the parameter has the specified property and that it is null.
+
+ Name of the property.
+
+
+
+
+
+ Determines whether the parameter has the specified property and that it is null.
+
+ The type that declares the property, used to disambiguate between properties.
+ Name of the property.
+
+
+
+
+
+ Determines whether the parameter has the specified property and that it is not null.
+
+ Name of the property.
+
+
+
+
+
+ Determines whether the parameter has the specified property and that it is not null.
+
+ The type that declares the property, used to disambiguate between properties.
+ Name of the property.
+
+
+
+
+
+ constraints the parameter to have the exact same property values as the expected object.
+
+ An object, of the same type as the parameter, whose properties are set with the expected values.
+ An instance of the constraint that will do the actual check.
+
+ The parameter's public property values and public field values will be matched against the expected object's
+ public property values and public field values. The first mismatch will be reported and no further matching is done.
+ The matching is recursive for any property or field that has properties or fields of it's own.
+ Collections are supported through IEnumerable, which means the constraint will check if the actual and expected
+ collection contain the same values in the same order, where the values contained by the collection can have properties
+ and fields of their own that will be checked as well because of the recursive nature of this constraint.
+
+
+
+
+ Central location for all text related constraints
+
+
+
+
+ Constrain the argument to starts with the specified string
+
+
+
+
+ Constrain the argument to end with the specified string
+
+
+
+
+ Constrain the argument to contain the specified string
+
+
+
+
+ Constrain the argument to validate according to regex pattern
+
+
+
+
+ Allows expectations to be set on methods that should never be called.
+ For methods with void return value, you need to use LastCall or
+ DoNotExpect.Call() with a delegate.
+
+
+
+
+ A delegate that executes an action
+
+
+
+
+ Sets LastCall.Repeat.Never() on /any/ proxy on /any/ repository on the current thread.
+ This method if not safe for multi threading scenarios.
+
+
+
+
+ Accepts a delegate that will execute inside the method which
+ LastCall.Repeat.Never() will be applied to.
+ It is expected to be used with anonymous delegates / lambda expressions and only one
+ method should be called.
+
+
+ IService mockSrv = mocks.CreateMock(typeof(IService)) as IService;
+ DoNotExpect.Call(delegate{ mockSrv.Stop(); });
+ ...
+
+
+
+
+ An expectaton violation was detected.
+
+
+
+
+ Creates a new instance.
+
+ Message.
+
+
+
+ Serialization constructor
+
+
+
+
+ Signals that an object was call on a mock repostiroy which doesn't
+ belong to this mock repository or not a mock
+
+
+
+
+ Creates a new instance.
+
+ Message.
+
+
+
+ Serialization constructor
+
+
+
+
+ Allows to set expectation on methods that has return values.
+ For methods with void return value, you need to use LastCall
+
+
+
+
+ A delegate that execute an action
+
+
+
+
+ The method options for the last call on /any/ proxy on /any/ repository on the current thread.
+ This method if not safe for multi threading scenarios, use .
+
+
+
+
+ Accepts a delegate that will execute inside the method, and then return the resulting
+ instance.
+ It is expected to be used with anonymous delegates / lambda expressions and only one
+ method should be called.
+
+
+ IService mockSrv = mocks.CreateMock(typeof(IService)) as IService;
+ Expect.Call(delegate{ mockSrv.Start(); }).Throw(new NetworkException());
+ ...
+
+
+
+
+ Get the method options for the last method call on the mockInstance.
+
+
+
+
+ Interface to validate that a method call is correct.
+
+
+
+
+ Validate the arguments for the method.
+ This method can be called numerous times, so be careful about side effects
+
+ The arguments with which the method was called
+
+
+
+ Add an actual method call to this expectation
+
+
+
+
+ Returns the return value or throw the exception and setup any output / ref parameters
+ that has been set.
+
+
+
+
+ Gets the error message.
+
+
+
+
+
+
+ Range of expected calls
+
+
+
+
+ Number of call actually made for this method
+
+
+
+
+ If this expectation is still waiting for calls.
+
+
+
+
+ The return value for a method matching this expectation
+
+
+
+
+ Gets or sets the exception to throw on a method matching this expectation.
+
+
+
+
+ Gets a value indicating whether this instance's action is staisfied.
+ A staisfied instance means that there are no more requirements from
+ this method. A method with non void return value must register either
+ a return value or an exception to throw.
+
+
+
+
+ Gets the method this expectation is for.
+
+
+
+
+ Gets or sets what special condtions there are for this method
+ repeating.
+
+
+
+
+ Gets a value indicating whether this expectation was satisfied
+
+
+
+
+ Specify whatever this expectation has a return value set
+ You can't check ReturnValue for this because a valid return value include null.
+
+
+
+
+ An action to execute when the method is matched.
+
+
+
+
+ Set the out / ref parameters for the method call.
+ The indexing is zero based and ignores any non out/ref parameter.
+ It is possible not to pass all the parameters. This method can be called only once.
+
+
+
+
+ Documentation Message
+
+
+
+
+ Gets the invocation for this expectation
+
+ The invocation.
+
+
+
+ Abstract class that holds common information for
+ expectations.
+
+
+
+
+ Number of actuall calls made that passed this expectation
+
+
+
+
+ Range of expected calls that should pass this expectation.
+
+
+
+
+ The return value for a method matching this expectation
+
+
+
+
+ The exception to throw on a method matching this expectation.
+
+
+
+
+ The method this expectation is for.
+
+
+
+
+ The return value for this method was set
+
+
+
+
+ Whether this method will repeat
+ unlimited number of times.
+
+
+
+
+ A delegate that will be run when the
+ expectation is matched.
+
+
+
+
+ The arguments that matched this expectation.
+
+
+
+
+ Documentation message
+
+
+
+
+ The method originalInvocation
+
+
+
+
+ Get the hash code
+
+
+
+
+ Add an actual method call to this expectation
+
+
+
+
+ Returns the return value or throw the exception and setup output / ref parameters
+
+
+
+
+ Validate the arguments for the method on the child methods
+
+ The arguments with which the method was called
+
+
+
+ Creates a new instance.
+
+ The originalInvocation for this method, required because it contains the generic type infromation
+
+
+
+ Creates a new instance.
+
+ Expectation.
+
+
+
+ Validate the arguments for the method on the child methods
+
+ The arguments with which the method was called
+
+
+
+ Determines if this object equal to obj
+
+
+
+
+ The error message for these arguments
+
+
+
+
+ Asserts that the delegate has the same parameters as the expectation's method call
+
+
+
+
+ Setter for the outpur / ref parameters for this expecataion.
+ Can only be set once.
+
+
+
+
+ Specify whatever this expectation has a return value set
+ You can't check ReturnValue for this because a valid return value include null.
+
+
+
+
+ Gets the method this expectation is for.
+
+
+
+
+ Gets the originalInvocation for this expectation
+
+ The originalInvocation.
+
+
+
+ Gets or sets what special condtions there are for this method
+
+
+
+
+ Range of expected calls
+
+
+
+
+ Number of call actually made for this method
+
+
+
+
+ If this expectation is still waiting for calls.
+
+
+
+
+ Gets a value indicating whether this expectation was satisfied
+
+
+
+
+ The return value for a method matching this expectation
+
+
+
+
+ An action to execute when the method is matched.
+
+
+
+
+ Gets or sets the exception to throw on a method matching this expectation.
+
+
+
+
+ Gets a value indicating whether this instance's action is staisfied.
+ A staisfied instance means that there are no more requirements from
+ this method. A method with non void return value must register either
+ a return value or an exception to throw or an action to execute.
+
+
+
+
+ Documentation message
+
+
+
+
+ Gets the error message.
+
+
+
+
+
+
+ Expectation that matchs any arguments for the method.
+
+
+
+
+ Creates a new instance.
+
+ Invocation for this expectation
+
+
+
+ Creates a new instance.
+
+ Expectation.
+
+
+
+ Validate the arguments for the method.
+
+ The arguments with which the method was called
+
+
+
+ Determines if the object equal to expectation
+
+
+
+
+ Get the hash code
+
+
+
+
+ Gets the error message.
+
+
+
+
+
+
+ Summary description for ArgsEqualExpectation.
+
+
+
+
+ Creates a new instance.
+
+ Expected args.
+ The invocation for this expectation
+
+
+
+ Validate the arguments for the method.
+
+ The arguments with which the method was called
+
+
+
+ Determines if the object equal to expectation
+
+
+
+
+ Get the hash code
+
+
+
+
+ Gets the error message.
+
+
+
+
+
+
+ Get the expected args.
+
+
+
+
+ Call a specified callback to verify the expectation
+
+
+
+
+ Creates a new instance.
+
+ Expectation.
+ Callback.
+
+
+
+ Creates a new instance.
+
+ Invocation for this expectation
+ Callback.
+
+
+
+ Validate the arguments for the method on the child methods
+
+ The arguments with which the method was called
+
+
+
+ Determines if the object equal to expectation
+
+
+
+
+ Get the hash code
+
+
+
+
+ Gets the error message.
+
+
+
+
+
+
+ Expect the method's arguments to match the contraints
+
+
+
+
+ Creates a new instance.
+
+ Invocation for this expectation
+ Constraints.
+
+
+
+ Creates a new instance.
+
+ Expectation.
+ Constraints.
+
+
+
+ Validate the arguments for the method.
+
+ The arguments with which the method was called
+
+
+
+ Determines if the object equal to expectation
+
+
+
+
+ Get the hash code
+
+
+
+
+ Gets the error message.
+
+
+
+
+
+
+ Log expectations - allows to see what is going on inside Rhino Mocks
+
+
+
+
+ Logs the expectation as is was recorded
+
+ The invocation.
+ The expectation.
+
+
+
+ Logs the expectation as it was recorded
+
+ The invocation.
+ The expectation.
+
+
+
+ Logs the unexpected method call.
+
+ The invocation.
+ The message.
+
+
+
+ Doesn't log anything, just makes happy noises
+
+
+
+
+ Logs the expectation as is was recorded
+
+ The invocation.
+ The expectation.
+
+
+
+ Logs the expectation as it was recorded
+
+ The invocation.
+ The expectation.
+
+
+
+ Logs the unexpected method call.
+
+ The invocation.
+ The message.
+
+
+
+ Operation on a remoting proxy
+
+
+ It is not possible to directly communicate to a real proxy via transparent proxy.
+ Transparent proxy impersonates a user type and only methods of that user type are callable.
+ The only methods that are guaranteed to exist on any transparent proxy are methods defined
+ in Object: namely ToString(), GetHashCode(), and Equals()).
+
+ These three methods are the only way to tell the real proxy to do something.
+ Equals() is the most suitable of all, since it accepts an arbitrary object parameter.
+ The RemotingProxy code is built so that if it is compared to an IRemotingProxyOperation,
+ transparentProxy.Equals(operation) will call operation.Process(realProxy).
+ This way we can retrieve a real proxy from transparent proxy and perform
+ arbitrary operation on it.
+
+
+
+
+ Generates remoting proxies and provides utility functions
+
+
+
+
+ Create the proxy using remoting
+
+
+
+
+ Check whether an object is a transparent proxy with a RemotingProxy behind it
+
+ Object to check
+ true if the object is a transparent proxy with a RemotingProxy instance behind it, false otherwise
+ We use Equals() method to communicate with the real proxy behind the object.
+ See IRemotingProxyOperation for more details
+
+
+
+ Retrieve a mocked object from a transparent proxy
+
+ Transparent proxy with a RemotingProxy instance behind it
+ Mocked object associated with the proxy
+ We use Equals() method to communicate with the real proxy behind the object.
+ See IRemotingProxyOperation for more details
+
+
+
+ Implementation of IInvocation based on remoting proxy
+
+ Some methods are marked NotSupported since they either don't make sense
+ for remoting proxies, or they are never called by Rhino Mocks
+
+
+
+ Rudimetry implementation that simply logs methods calls as text.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The writer.
+
+
+
+ Logs the expectation as is was recorded
+
+ The invocation.
+ The expectation.
+
+
+
+ Logs the expectation as it was recorded
+
+ The invocation.
+ The expectation.
+
+
+
+ Logs the unexpected method call.
+
+ The invocation.
+ The message.
+
+
+
+ Different actions on this mock
+
+
+
+
+ Add a method call for this state' mock.
+
+ The invocation for this method
+ The method that was called
+ The arguments this method was called with
+
+
+
+ Verify that this mock expectations have passed.
+
+
+
+
+ Verify that we can move to replay state and move
+ to the reply state.
+
+
+
+
+ Gets a mock state that match the original mock state of the object.
+
+
+
+
+ Get the options for the last method call
+
+
+
+
+ Set the exception to throw when Verify is called.
+ This is used to report exception that may have happened but where caught in the code.
+ This way, they are reported anyway when Verify() is called.
+
+
+
+
+ Gets the matching verify state for this state
+
+
+
+
+ Get the options for the last method call
+
+
+
+
+ Records all the expectations for a mock
+
+
+
+
+ Get the options for the last method call
+
+
+
+
+ Set the exception to throw when Verify is called.
+ This is used to report exception that may have happened but where caught in the code.
+ This way, they are reported anyway when Verify() is called.
+
+
+
+
+ Creates a new instance.
+
+ Repository.
+ The proxy that generates the method calls
+
+
+
+ Add a method call for this state' mock.
+
+ The invocation for this method
+ The method that was called
+ The arguments this method was called with
+
+
+
+ Verify that we can move to replay state and move
+ to the reply state.
+
+
+
+
+ Verify that we can move to replay state and move
+ to the reply state.
+
+
+
+
+ Verify that this mock expectations have passed.
+
+
+
+
+ Gets a mock state that match the original mock state of the object.
+
+
+
+
+ Asserts the previous method is closed (had an expectation set on it so we can replay it correctly)
+
+
+
+
+ Gets the last expectation.
+
+
+
+
+ Gets the total method calls count.
+
+
+
+
+ Get the options for the last method call
+
+
+
+
+ Gets the matching verify state for this state
+
+
+
+
+ Behave like a stub, all properties and events acts normally, methods calls
+ return default values by default (but can use expectations to set them up), etc.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The proxy that generates the method calls
+ Repository.
+
+
+
+ We don't care much about expectations here, so we will remove the exepctation if
+ it is not closed.
+
+
+
+
+ Verify that we can move to replay state and move
+ to the reply state.
+
+
+
+
+
+
+ Validate all expectations on a mock
+
+
+
+
+ The repository for this state
+
+
+
+
+ The proxy object for this state
+
+
+
+
+ Get the options for the last method call
+
+
+
+
+ Creates a new instance.
+
+ The previous state for this method
+
+
+
+ Add a method call for this state' mock.
+
+ The invocation for this method
+ The method that was called
+ The arguments this method was called with
+
+
+
+ Add a method call for this state' mock.
+ This allows derived method to cleanly get a the setupresult behavior while adding
+ their own.
+
+ The invocation for this method
+ The method that was called
+ The arguments this method was called with
+
+
+
+ Set the exception to throw when Verify is called.
+ This is used to report exception that may have happened but where caught in the code.
+ This way, they are reported anyway when Verify() is called.
+
+
+
+
+ Verify that this mock expectations have passed.
+
+
+
+
+ Verify that we can move to replay state and move
+ to the reply state.
+
+
+
+
+ Gets a mock state that match the original mock state of the object.
+
+
+
+
+ Get the options for the last method call
+
+
+
+
+ Gets the matching verify state for this state
+
+
+
+
+ Validate expectations on recorded methods, but in general completely ignoring them.
+ Similar to except that it would return a
+ when BackToRecord is called.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The previous state for this method
+
+
+
+ Add a method call for this state' mock.
+
+ The invocation for this method
+ The method that was called
+ The arguments this method was called with
+
+
+
+ Gets a mock state that match the original mock state of the object.
+
+
+
+
+ Write rhino mocks log info to the trace
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ if set to true [log recorded].
+ if set to true [log replayed].
+ if set to true [log unexpected].
+
+
+
+ Logs the expectation as is was recorded
+
+ The invocation.
+ The expectation.
+
+
+
+ Logs the expectation as it was recorded
+
+ The invocation.
+ The expectation.
+
+
+
+ Logs the unexpected method call.
+
+ The invocation.
+ The message.
+
+
+
+ Writes log information as stack traces about rhino mocks activity
+
+
+
+
+ Allows to redirect output to a different location.
+
+
+
+
+ Logs the expectation as is was recorded
+
+ The invocation.
+ The expectation.
+
+
+
+ Logs the expectation as it was recorded
+
+ The invocation.
+ The expectation.
+
+
+
+ Logs the unexpected method call.
+
+ The invocation.
+ The message.
+
+
+
+ Marker interface used to indicate that this is a partial mock.
+
+
+
+
+ Options for CallOriginalMethod
+
+
+
+
+ No expectation is created, the method will be called directly
+
+
+
+
+ Normal expectation is created, but when the method is later called, it will also call the original method
+
+
+
+
+ Adds optional new usage:
+ using(mockRepository.Record()) {
+ Expect.Call(mock.Method()).Return(retVal);
+ }
+ using(mockRepository.Playback()) {
+ // Execute code
+ }
+ N.B. mockRepository.ReplayAll() and mockRepository.VerifyAll()
+ calls are taken care of by Record/Playback
+
+
+ Creates proxied instances of types.
+
+
+
+
+ Delegate: CreateMockState
+ This is used internally to cleanly handle the creation of different
+ RecordMockStates.
+
+
+
+
+ This is used to record the last repository that has a method called on it.
+
+
+
+
+ this is used to get to the last proxy on this repository.
+
+
+
+
+ For mock delegates, maps the proxy instance from intercepted invocations
+ back to the delegate that was originally returned to client code, if any.
+
+
+
+
+ All the proxies in the mock repositories
+
+
+
+
+ This is here because we can't put it in any of the recorders, since repeatable methods
+ have no orderring, and if we try to handle them using the usual manner, we would get into
+ wierd situations where repeatable method that was defined in an orderring block doesn't
+ exists until we enter this block.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Creates a new instance.
+
+
+
+
+ Move the repository to ordered mode
+
+
+
+
+ Move the repository to un-ordered mode
+
+
+
+
+ Creates a mock for the specified type.
+
+ Type.
+ Arguments for the class' constructor, if mocking a concrete class
+
+
+
+ Creates a remoting mock for the specified type.
+
+ Type.
+ Arguments for the class' constructor, if mocking a concrete class
+
+
+
+ Creates a remoting mock for the specified type.
+
+
+
+ Arguments for the class' constructor, if mocking a concrete class
+
+
+
+
+
+ Creates a mock from several types, with strict semantics.
+ Only may be a class.
+
+
+
+
+ Creates a mock from several types, with strict semantics.
+ Only may be a class.
+
+ The main type to mock.
+ Extra interface types to mock.
+ Arguments for the class' constructor, if mocking a concrete class.
+
+
+
+ Creates a mock from several types, with dynamic semantics.
+ Only may be a class.
+
+ The main type to mock.
+ Extra interface types to mock.
+
+
+
+ Creates a mock from several types, with dynamic semantics.
+ Only may be a class.
+
+ The main type to mock.
+ Extra interface types to mock.
+ Arguments for the class' constructor, if mocking a concrete class.
+
+
+
+ Creates a dynamic mock for the specified type.
+
+ Type.
+ Arguments for the class' constructor, if mocking a concrete class
+
+
+
+ Creates a dynamic mock for the specified type.
+
+ Type.
+ Arguments for the class' constructor, if mocking a concrete class
+
+
+
+ Creates a dynamic mock for the specified type.
+
+
+
+ Arguments for the class' constructor, if mocking a concrete class
+
+
+
+
+
+ Creates a mock object that defaults to calling the class methods.
+
+ Type.
+ Arguments for the class' constructor.
+
+
+
+ Creates a mock object that defaults to calling the class methods.
+
+ Type.
+ Extra interface types to mock.
+
+
+
+ Creates a mock object that defaults to calling the class methods.
+
+ Type.
+ Extra interface types to mock.
+ Arguments for the class' constructor.
+
+
+
+ Creates a mock object using remoting proxies
+
+ Type to mock - must be MarshalByRefObject
+ Mock object
+ Proxy mock can mock non-virtual methods, but not static methods
+ Creates the mock state for this proxy
+
+
+
+ Cause the mock state to change to replay, any further call is compared to the
+ ones that were called in the record state.
+
+ the object to move to replay state
+
+
+
+ Move the mocked object back to record state.
+ Will delete all current expectations!
+
+
+
+
+ Move the mocked object back to record state.
+ Will delete all current expectations, but allows more granularity about how
+ it would behave with regard to the object state.
+
+
+
+
+ Verify that all the expectations for this object were fulfilled.
+
+ the object to verify the expectations for
+
+
+
+ Get the method options for the last call on
+ mockedInstance.
+
+ The mock object
+ Method options for the last call
+
+
+
+ Maps an invocation proxy back to the mock object instance that was originally
+ returned to client code which might have been a delegate to this proxy.
+
+ The mock object proxy from the intercepted invocation
+ The mock object
+
+
+
+ This is provided to allow advance extention functionality, where Rhino Mocks standard
+ functionality is not enough.
+
+ The type to mock
+ Delegate that create the first state of the mocked object (usualy the record state).
+ Additional types to be implemented, this can be only interfaces
+ optional arguments for the constructor
+
+
+
+
+
+ Method: GetMockedObject
+ Get an IProxy from a mocked object instance, or throws if the
+ object is not a mock object.
+
+
+
+
+ Method: GetMockedObjectOrNull
+ Get an IProxy from a mocked object instance, or null if the
+ object is not a mock object.
+
+
+
+
+ Pops the recorder.
+
+
+
+
+ Pushes the recorder.
+
+ New recorder.
+
+
+
+ All the mock objects in this repository will be moved
+ to record state.
+
+
+
+
+ All the mock objects in this repository will be moved
+ to record state.
+
+
+
+
+ Replay all the mocks from this repository
+
+
+
+
+ Verify all the mocks from this repository
+
+
+
+
+ Set the exception to be thrown when verified is called.
+
+
+
+
+ Creates a mock for the spesified type.
+
+ Arguments for the class' constructor, if mocking a concrete class
+
+
+
+ Creates a dynamic mock for the specified type.
+
+ Arguments for the class' constructor, if mocking a concrete class
+
+
+
+ Creates a mock object from several types.
+
+
+
+
+ Create a mock object from several types with dynamic semantics.
+
+
+
+
+ Create a mock object from several types with partial semantics.
+
+
+
+
+ Create a mock object from several types with strict semantics.
+
+ Extra interface types to mock.
+ Arguments for the class' constructor, if mocking a concrete class
+
+
+
+ Create a mock object from several types with dynamic semantics.
+
+ Extra interface types to mock.
+ Arguments for the class' constructor, if mocking a concrete class
+
+
+
+ Create a mock object from several types with partial semantics.
+
+ Extra interface types to mock.
+ Arguments for the class' constructor, if mocking a concrete class
+
+
+
+ Create a mock object with from a class that defaults to calling the class methods
+
+ Arguments for the class' constructor, if mocking a concrete class
+
+
+
+ Create a stub object, one that has properties and events ready for use, and
+ can have methods called on it. It requires an explicit step in order to create
+ an expectation for a stub.
+
+ The arguments for constructor.
+
+
+
+ Create a stub object, one that has properties and events ready for use, and
+ can have methods called on it. It requires an explicit step in order to create
+ an expectation for a stub.
+
+ The type.
+ The arguments for constructor.
+
+
+
+
+
+ Generates a stub without mock repository
+
+ The arguments for constructor.
+
+
+
+
+
+ Generates the stub without mock repository
+
+ The type.
+ The arguments for constructor.
+
+
+
+ Gets the recorder.
+
+
+
+
+
+
+ Gets the replayer for this repository.
+
+
+
+
+
+
+ Gets the last proxy which had a method call.
+
+
+
+
+ Utility class for dealing with messing generics scenarios.
+
+
+
+
+ There are issues with trying to get this to work correctly with open generic types, since this is an edge case,
+ I am letting the runtime handle it.
+
+
+
+
+ Gets the real type, including de-constructing and constructing the type of generic
+ methods parameters.
+
+ The type.
+ The invocation.
+
+
+
+
+
+ Because we need to support complex types here (simple generics were handled above) we
+ need to be aware of the following scenarios:
+ List[T] and List[Foo[T]]
+
+
+
+
+ ExpectationsList
+
+
+
+
+ Dictionary
+
+
+
+
+ Dictionary class
+
+
+
+
+ Create a new instance of ProxyStateDictionary
+
+
+
+ Interface to allows to call a method and immediatly get it's options.
+
+
+
+
+ Get the method options for the call
+
+ The method call should go here, the return value is ignored
+
+
+
+ Allows to call a method and immediatly get it's options.
+
+
+
+
+ Creates a new instance.
+
+
+
+
+ Get the method options for the call
+
+ The method call should go here, the return value is ignored
+
+
+
+ Allows to call a method and immediatly get it's options.
+ Set the expected number for the call to Any()
+
+
+
+
+ Creates a new instance.
+
+ Proxy.
+ Mocked instance.
+
+
+
+ Get the method options for the call
+
+ The method call should go here, the return value is ignored
+
+
+
+ This class is reponsible for taking a delegate and creating a wrapper
+ interface around it, so it can be mocked.
+
+
+
+
+ The scope for all the delegate interfaces create by this mock repositroy.
+
+
+
+
+ Gets a type with an "Invoke" method suitable for use as a target of the
+ specified delegate type.
+
+
+
+
+
+
+
+
+ Raise events for all subscribers for an event
+
+
+
+
+ Raise the event
+
+
+
+
+ The most common form for the event handler signature
+
+
+
+
+ Raise events for all subscribers for an event
+
+
+
+
+ Create an event raise for the specified event on this instance.
+
+
+
+
+ Creates a new instance of EventRaiser
+
+
+
+ Raise the event
+
+
+
+
+ The most common signature for events
+ Here to allow intellisense to make better guesses about how
+ it should suggest parameters.
+
+
+
+
+ Allows to define what would happen when a method
+ is called.
+
+
+
+
+ Set the return value for the method.
+
+ The object the method will return
+ IRepeat that defines how many times the method will return this value
+
+
+
+ Throws the specified exception when the method is called.
+
+ Exception to throw
+
+
+
+ Ignores the arguments for this method. Any argument will be matched
+ againt this method.
+
+
+
+
+ Add constraints for the method's arguments.
+
+
+
+
+ Set a callback method for the last call
+
+
+
+
+ Set a delegate to be called when the expectation is matched.
+ The delegate return value will be returned from the expectation.
+
+
+
+
+ Call the original method on the class, bypassing the mocking layers.
+
+
+
+
+
+
+ Call the original method on the class, optionally bypassing the mocking layers.
+
+
+
+
+
+
+ Use the property as a simple property, getting/setting the values without
+ causing mock expectations.
+
+
+
+
+ Get an event raiser for the last subscribed event.
+
+
+
+
+ Set the parameter values for out and ref parameters.
+ This is done using zero based indexing, and _ignoring_ any non out/ref parameter.
+
+
+
+
+ Documentation message for the expectation
+
+ Message
+
+
+
+ Better syntax to define repeats.
+
+
+
+
+ Allows to specify the number of time for method calls
+
+
+
+
+ Repeat the method twice.
+
+
+
+
+ Repeat the method once.
+
+
+
+
+ Repeat the method at least once, then repeat as many time as it would like.
+
+
+
+
+ Repeat the method any number of times.
+ This has special affects in that this method would now ignore orderring.
+
+
+
+
+ Set the range to repeat an action.
+
+ Min.
+ Max.
+
+
+
+ Set the amount of times to repeat an action.
+
+
+
+
+ This method must not appear in the replay state.
+ This has special affects in that this method would now ignore orderring.
+
+
+
+
+ Allows to define what would happen when a method
+ is called.
+
+
+
+
+ Creates a new instance.
+
+ the repository for this expectation
+ the recorder for this proxy
+ the proxy for this expectation
+ Expectation.
+
+
+
+ Add constraints for the method's arguments.
+
+
+
+
+ Set a callback method for the last call
+
+
+
+
+ Set a delegate to be called when the expectation is matched.
+ The delegate return value will be returned from the expectation.
+
+
+
+
+ Set the return value for the method.
+
+ The object the method will return
+ IRepeat that defines how many times the method will return this value
+
+
+
+ Throws the specified exception when the method is called.
+
+ Exception to throw
+
+
+
+ Ignores the arguments for this method. Any argument will be matched
+ againt this method.
+
+
+
+
+ Call the original method on the class, bypassing the mocking layers.
+
+
+
+
+
+
+ Call the original method on the class, optionally bypassing the mocking layers
+
+
+
+
+
+
+ Use the property as a simple property, getting/setting the values without
+ causing mock expectations.
+
+
+
+
+ Gets the event raiser for the last event
+
+
+
+
+ Set the parameter values for out and ref parameters.
+ This is done using zero based indexing, and _ignoring_ any non out/ref parameter.
+
+
+
+
+ Repeat the method twice.
+
+
+
+
+ Repeat the method once.
+
+
+
+
+ Repeat the method at least once, then repeat as many time as it would like.
+
+
+
+
+ This method must not appear in the replay state.
+
+
+
+
+ Documentation message for the expectation
+
+ Message
+
+
+
+ Repeat the method any number of times.
+
+
+
+
+ Set the range to repeat an action.
+
+ Min.
+ Max.
+
+
+
+ Set the amount of times to repeat an action.
+
+
+
+
+ Better syntax to define repeats.
+
+
+
+
+ This class will provide hash code for hashtables without needing
+ to call the GetHashCode() on the object, which may very well be mocked.
+ This class has no state so it is a singelton to avoid creating a lot of objects
+ that does the exact same thing. See flyweight patterns.
+
+
+
+
+ Get the hash code for a proxy object without calling GetHashCode()
+ on the object.
+
+
+
+
+ Compares two instances of mocked objects
+
+
+
+
+ Compare two mocked objects
+
+
+
+
+ The next hash code value for a mock object.
+ This is safe for multi threading.
+
+
+
+
+ The sole instance of
+
+
+
+ Interface to find the repository of a mocked object
+
+
+
+
+ Return true if it should call the original method on the object
+ instead of pass it to the message chain.
+
+ The method to call
+
+
+
+ Register a method to be called on the object directly
+
+
+
+
+ Register a property on the object that will behave as a simple property
+
+
+
+
+ Check if the method was registered as a property method.
+
+
+
+
+ Do get/set on the property, according to need.
+
+
+
+
+ Do add/remove on the event
+
+
+
+
+ Get the subscribers of a spesific event
+
+
+
+
+ Gets the declaring type of the method, taking into acccount the possible generic
+ parameters that it was created with.
+
+
+
+
+ Clears the state of the object, remove original calls, property behavior, subscribed events, etc.
+
+
+
+
+ The unique hash code of this mock, which is not related
+ to the value of the GetHashCode() call on the object.
+
+
+
+
+ Gets the repository.
+
+
+
+
+ Gets the implemented types by this mocked object
+
+ The implemented.
+
+
+
+ This is a dummy type that is used merely to give DynamicProxy the proxy instance that
+ it needs to create IProxy's types.
+
+
+
+
+ Create a new instance of
+
+
+
+ Return true if it should call the original method on the object
+ instead of pass it to the message chain.
+
+ The method to call
+
+
+
+ Register a method to be called on the object directly
+
+
+
+
+ Register a property on the object that will behave as a simple property
+
+
+
+
+ Check if the method was registered as a property method.
+
+
+
+
+ Do get/set on the property, according to need.
+
+
+
+
+ Do add/remove on the event
+
+
+
+
+ Get the subscribers of a spesific event
+
+
+
+
+ Gets the declaring type of the method, taking into acccount the possible generic
+ parameters that it was created with.
+
+
+
+
+ Clears the state of the object, remove original calls, property behavior, subscribed events, etc.
+
+
+
+
+ The unique hash code of this proxy, which is not related
+ to the value of the GetHashCode() call on the object.
+
+
+
+
+ Gets the repository.
+
+
+
+
+ Gets the implemented types by this mocked object
+
+ The implemented.
+
+
+
+ Range for expected method calls
+
+
+
+
+ Creates a new instance.
+
+ Min.
+ Max.
+
+
+
+ Return the string representation of this range.
+
+
+
+
+ Gets or sets the min.
+
+
+
+
+
+
+ Gets or sets the max.
+
+
+
+
+
+
+ Records all the expectations for a mock and
+ return a ReplayDynamicMockState when Replay()
+ is called.
+
+
+
+
+ Creates a new instance.
+
+ Repository.
+ The proxy that generates the method calls
+
+
+
+ Verify that we can move to replay state and move
+ to the reply state.
+
+
+
+
+ Gets a mock state that match the original mock state of the object.
+
+
+
+
+ Records all the expectations for a mock and
+ return a ReplayPartialMockState when Replay()
+ is called.
+
+
+
+
+ Creates a new instance.
+
+ Repository.
+ The proxy that generates the method calls
+
+
+
+ Verify that we can move to replay state and move
+ to the reply state.
+
+
+
+
+ Gets a mock state that match the original mock state of the object.
+
+
+
+
+ Options for special repeat option
+
+
+
+
+ This method can be called only as many times as the IMethodOptions.Expect allows.
+
+
+
+
+ This method should never be called
+
+
+
+
+ This method can be call any number of times
+
+
+
+
+ This method will call the original method
+
+
+
+
+ This method will call the original method, bypassing the mocking layer
+
+
+
+
+ This method will simulate simple property behavior
+
+
+
+
+ Validate all expectations on a mock and ignores calls to
+ any method that was not setup properly.
+
+
+
+
+ Creates a new instance.
+
+ The previous state for this method
+
+
+
+ Add a method call for this state' mock.
+
+ The invocation for this method
+ The method that was called
+ The arguments this method was called with
+
+
+
+ Gets a mock state that match the original mock state of the object.
+
+
+
+
+ Validate all expectations on a mock and ignores calls to
+ any method that was not setup properly.
+
+
+
+
+ Creates a new instance.
+
+ The previous state for this method
+
+
+
+ Add a method call for this state' mock.
+
+ The invocation for this method
+ The method that was called
+ The arguments this method was called with
+
+
+
+ Gets a mock state that match the original mock state of the object.
+
+
+
+
+ Summary description for RhinoInterceptor.
+
+
+
+
+ Creates a new instance.
+
+
+
+
+ Intercept a method call and direct it to the repository.
+
+
+
+
+ Validate arguments for methods
+
+
+
+
+ Validate that the passed argument is not null.
+
+ The object to validate
+ The name of the argument
+
+ If the obj is null, an ArgumentNullException with the passed name
+ is thrown.
+
+
+
+
+ Validate that the arguments are equal.
+
+ Expected args.
+ Actual Args.
+
+
+
+ Validate that the two argument are equals, including validation for
+ when the arguments are collections, in which case it will validate their values.
+
+
+
+
+ This method is safe for use even if any of the objects is a mocked object
+ that override equals.
+
+
+
+
+ Throw an object already verified when accessed
+
+
+
+
+ Create a new instance of VerifiedMockState
+
+ The previous mock state, used to get the initial record state
+
+
+
+ Add a method call for this state' mock.
+
+ The invocation for this method
+ The method that was called
+ The arguments this method was called with
+
+
+
+ Verify that this mock expectations have passed.
+
+
+
+
+ Verify that we can move to replay state and move
+ to the reply state.
+
+
+
+
+ Gets a mock state that match the original mock state of the object.
+
+
+
+
+ Get the options for the last method call
+
+
+
+
+ Set the exception to throw when Verify is called.
+ This is used to report exception that may have happened but where caught in the code.
+ This way, they are reported anyway when Verify() is called.
+
+
+
+
+ Gets the matching verify state for this state
+
+
+
+
+ Get the options for the last method call
+
+
+
+
+ Records the actions on all the mocks created by a repository.
+
+
+
+
+ Records the specified call with the specified args on the mocked object.
+
+
+
+
+ Get the expectation for this method on this object with this arguments
+
+
+
+
+ This check the methods that were setup using the SetupResult.For()
+ or LastCall.Repeat.Any() and that bypass the whole expectation model.
+
+
+
+
+ Gets the all expectations for a mocked object and method combination,
+ regardless of the expected arguments / callbacks / contraints.
+
+ Mocked object.
+ Method.
+ List of all relevant expectation
+
+
+
+ Gets the all expectations for proxy.
+
+ Mocked object.
+ List of all relevant expectation
+
+
+
+ Removes all the repeatable expectations for proxy.
+
+ Mocked object.
+
+
+
+ Replaces the old expectation with the new expectation for the specified proxy/method pair.
+ This replace ALL expectations that equal to old expectations.
+
+ Proxy.
+ Method.
+ Old expectation.
+ New expectation.
+
+
+
+ Adds the recorder and turn it into the active recorder.
+
+ Recorder.
+
+
+
+ Moves to previous recorder.
+
+
+
+
+ Gets the recorded expectation or null.
+
+
+
+
+ Gets the next expected calls string.
+
+
+
+
+ Moves to parent recorder.
+
+
+
+
+ Set the expectation so it can repeat any number of times.
+
+
+
+
+ Removes the expectation from the recorder
+
+
+
+
+ Clear the replayer to call (and all its chain of replayers)
+ This also removes it from the list of expectations, so it will never be considered again
+
+
+
+
+ Get the expectation for this method on this object with this arguments
+
+
+
+
+ Gets a value indicating whether this instance has expectations that weren't satisfied yet.
+
+
+ true if this instance has expectations; otherwise, false.
+
+
+
+
+ Allows to set various options for the last method call on
+ a specified object.
+ If the method has a return value, it's recommended to use Expect
+
+
+
+
+ Allows to get an interface to work on the last call.
+
+ The mocked object
+ Interface that allows to set options for the last method call on this object
+
+
+
+ Set the return value for the method.
+
+ The object the method will return
+ IRepeat that defines how many times the method will return this value
+
+
+
+ Set the return value for the method. This overload is needed for LastCall.Return(null)
+
+ The object the method will return
+ IRepeat that defines how many times the method will return this value
+
+
+
+ Throws the specified exception when the method is called.
+
+ Exception to throw
+
+
+
+ Ignores the arguments for this method. Any argument will be matched
+ againt this method.
+
+
+
+
+ Add constraints for the method's arguments.
+
+
+
+
+ Set a callback method for the last call
+
+
+
+
+ Call the original method on the class, bypassing the mocking layers, for the last call.
+
+
+
+
+ Call the original method on the class, optionally bypassing the mocking layers, for the last call.
+
+
+
+
+ Set a delegate to be called when the expectation is matched.
+ The delegate return value will be returned from the expectation.
+
+
+
+
+ Gets an interface that will raise the last event when called.
+
+
+
+
+ Set the parameter values for out and ref parameters.
+ This is done using zero based indexing, and _ignoring_ any non out/ref parameter.
+
+
+
+
+ Documentation message for the expectation
+
+ Message
+
+
+
+ Use the property as a simple property, getting/setting the values without
+ causing mock expectations.
+
+
+
+
+ Better syntax to define repeats.
+
+
+
+
+ Base class for method recorders, handle delegating to inner recorder if needed.
+
+
+
+
+ List of the expected actions on for this recorder
+ The legal values are:
+ * Expectations
+ * Method Recorders
+
+
+
+
+ The current recorder.
+
+
+
+
+ The current replayer;
+
+
+
+
+ The parent recorder of this one, may be null.
+
+
+
+
+ This contains a list of all the replayers that should be ignored
+ for a spesific method call. A replayer gets into this list by calling
+ ClearReplayerToCall() on its parent. This list is Clear()ed on each new invocation.
+
+
+
+
+ All the repeatable methods calls.
+
+
+
+
+ Counts the recursion depth of the current expectation search stack
+
+
+
+
+ Creates a new instance.
+
+
+
+
+ Creates a new instance.
+
+ Parent recorder.
+ Repeatable methods
+
+
+
+ Records the specified call with the specified args on the mocked object.
+
+
+
+
+ Get the expectation for this method on this object with this arguments
+
+
+
+
+ Gets the all expectations for a mocked object and method combination,
+ regardless of the expected arguments / callbacks / contraints.
+
+ Mocked object.
+ Method.
+ List of all relevant expectation
+
+
+
+ Gets the all expectations for proxy.
+
+ Mocked object.
+ List of all relevant expectation
+
+
+
+ Replaces the old expectation with the new expectation for the specified proxy/method pair.
+ This replace ALL expectations that equal to old expectations.
+
+ Proxy.
+ Method.
+ Old expectation.
+ New expectation.
+
+
+
+ Remove the all repeatable expectations for proxy.
+
+ Mocked object.
+
+
+
+ Set the expectation so it can repeat any number of times.
+
+
+
+
+ Removes the expectation from the recorder
+
+
+
+
+ Adds the recorder and turn it into the active recorder.
+
+ Recorder.
+
+
+
+ Moves to previous recorder.
+
+
+
+
+ Moves to parent recorder.
+
+
+
+
+ Gets the recorded expectation or null.
+
+
+
+
+ Clear the replayer to call (and all its chain of replayers).
+ This also removes it from the list of expectations, so it will never be considered again
+
+
+
+
+ Get the expectation for this method on this object with this arguments
+
+
+
+
+ Gets the next expected calls string.
+
+
+
+
+ Handles the real getting of the recorded expectation or null.
+
+
+
+
+ Handle the real execution of this method for the derived class
+
+
+
+
+ Handle the real execution of this method for the derived class
+
+
+
+
+ Handle the real execution of this method for the derived class
+
+
+
+
+ Handle the real execution of this method for the derived class
+
+
+
+
+ Handle the real execution of this method for the derived class
+
+
+
+
+ Handle the real execution of this method for the derived class
+
+
+
+
+ Should this replayer be considered valid for this call?
+
+
+
+
+ This check the methods that were setup using the SetupResult.For()
+ or LastCall.Repeat.Any() and that bypass the whole expectation model.
+
+
+
+
+ Gets a value indicating whether this instance has expectations that weren't satisfied yet.
+
+
+ true if this instance has expectations; otherwise, false.
+
+
+
+
+ Handle the real execution of this method for the derived class
+
+
+
+
+ Unordered collection of method records, any expectation that exist
+ will be matched.
+
+
+
+
+ The parent recorder we have redirected to.
+ Useful for certain edge cases in orderring.
+ See: FieldProblem_Entropy for the details.
+
+
+
+
+ Creates a new instance.
+
+ Parent recorder.
+ Repeatable methods
+
+
+
+ Creates a new instance.
+
+
+
+
+ Records the specified call with the specified args on the mocked object.
+
+ Mocked object.
+ Method.
+ Expectation.
+
+
+
+ Get the expectation for this method on this object with this arguments
+
+ Invocation for this method
+ Mocked object.
+ Method.
+ Args.
+ True is the call was recorded, false otherwise
+
+
+
+ Gets the all expectations for a mocked object and method combination,
+ regardless of the expected arguments / callbacks / contraints.
+
+ Mocked object.
+ Method.
+ List of all relevant expectation
+
+
+
+ Gets the all expectations for proxy.
+
+ Mocked object.
+ List of all relevant expectation
+
+
+
+ Replaces the old expectation with the new expectation for the specified proxy/method pair.
+ This replace ALL expectations that equal to old expectations.
+
+ Proxy.
+ Method.
+ Old expectation.
+ New expectation.
+
+
+
+ Handle the real execution of this method for the derived class
+
+
+
+
+ Handles the real getting of the recorded expectation or null.
+
+
+
+
+ Handle the real execution of this method for the derived class
+
+
+
+
+ Gets the next expected calls string.
+
+
+
+
+ Create an exception for an unexpected method call.
+
+
+
+
+ Gets a value indicating whether this instance has expectations that weren't satisfied yet.
+
+
+ true if this instance has expectations; otherwise, false.
+
+
+
+
+ Ordered collection of methods, methods must arrive in specified order
+ in order to pass.
+
+
+
+
+ Creates a new instance.
+
+ Parent recorder.
+ Repetable methods
+
+
+
+ Creates a new instance.
+
+
+
+
+ Handles the real getting of the recorded expectation or null.
+
+
+
+
+ Get the expectation for this method on this object with this arguments
+
+
+
+
+ Gets the next expected calls string.
+
+
+
+
+ Hold an expectation for a method call on an object
+
+
+
+
+ Creates a new instance.
+
+ Proxy.
+ Method.
+ Expectation.
+
+
+
+ Determains if the object equal to this instance
+
+ Obj.
+
+
+
+
+
+ Gets the hash code.
+
+
+
+
+
+
+ Gets the proxy.
+
+
+
+
+
+
+ Gets the method.
+
+
+
+
+
+
+ Gets the expectation.
+
+
+
+
+
+
+ Holds a pair of mocked object and a method
+ and allows to compare them against each other.
+ This allows us to have a distinction between mockOne.MyMethod() and
+ mockTwo.MyMethod()...
+
+
+
+
+ Creates a new instance.
+
+ Proxy.
+ Method.
+
+
+
+ Determains whatever obj equals to this instance.
+ ProxyMethodPairs are equals when they point to the same /instance/ of
+ an object, and to the same method.
+
+ Obj.
+
+
+
+
+
+ Gets the hash code.
+
+
+
+
+
+
+ Gets the proxy.
+
+
+
+
+
+
+ Gets the method.
+
+
+
+
+
+
+ Change the recorder from ordered to unordered and vice versa
+
+
+
+
+ Creates a new instance.
+
+
+
+
+ Disposes this instance.
+
+
+
+
+ Accessor for the current mocker
+
+
+
+
+ The current mocker
+
+
+
+
+ Used for [assembly: InternalsVisibleTo(RhinoMocks.StrongName)]
+ Used for [assembly: InternalsVisibleTo(RhinoMocks.NormalName)]
+
+
+
+
+ Strong name for the Dynamic Proxy assemblies. Used for InternalsVisibleTo specification.
+
+
+
+
+ Normal name for dynamic proxy assemblies. Used for InternalsVisibleTo specification.
+
+
+
+
+ Logs all method calls for methods
+
+
+
+
+ Setup method calls to repeat any number of times.
+
+
+
+
+ Get the method options and set the last method call to repeat
+ any number of times.
+ This also means that the method would transcend ordering
+
+
+
+
+ Get the method options for the last method call on the mockInstance and set it
+ to repeat any number of times.
+ This also means that the method would transcend ordering
+
+
+
+
+ Utility class for working with method calls.
+
+
+
+
+ Delegate to format the argument for the string representation of
+ the method call.
+
+
+
+
+ Return the string representation of a method call and its arguments.
+
+ The method
+ The method arguments
+ Invocation of the method, used to get the generics arguments
+ Delegate to format the parameter
+ The string representation of this method call
+
+
+
+ Return the string representation of a method call and its arguments.
+
+ The invocation of the method, used to get the generic parameters
+ The method
+ The method arguments
+ The string representation of this method call
+
+
+
+ Utility to get the default value for a type
+
+
+
+
+ The default value for a type.
+ Null for reference types and void
+ 0 for value types.
+ First element for enums
+ Note that we need to get the value even for opened generic types, such as those from
+ generic methods.
+
+ Type.
+ The invocation.
+ the default value
+
+
+
+ Allows easier access to MockRepository, works closely with Mocker.Current to
+ allow access to a context where the mock repository is automatially verified at
+ the end of the code block.
+
+
+
+
+ A method with no arguments and no return value that will be called under the mock context.
+
+
+
+
+ Interface to verify previously defined expectations
+
+
+
+
+ Verifies if a piece of code
+
+
+
+
+ FluentMocker implements some kind of fluent interface attempt
+ for saying "With the Mocks [mocks], Expecting (in same order) [things] verify [that]."
+
+
+
+
+ Defines unordered expectations
+
+ A delegate describing the expectations
+ an IMockVerifier
+
+
+
+ Defines ordered expectations
+
+ A delegate describing the expectations
+ an IMockVerifier
+
+
+
+ Verifies previously defined expectations
+
+
+
+
+ Initialize a code block where Mocker.Current is initialized.
+ At the end of the code block, all the expectation will be verified.
+ This overload will create a new MockRepository.
+
+ The code that will be executed under the mock context
+
+
+
+ Initialize a code block where Mocker.Current is initialized.
+ At the end of the code block, all the expectation will be verified.
+ This overload will create a new MockRepository.
+
+ The mock repository to use, at the end of the code block, VerifyAll() will be called on the repository.
+ The code that will be executed under the mock context
+
+
+
+ Create a FluentMocker
+
+ The mock repository to use.
+
+
+
+ Wraps a reference that is passed
+ ByRef and provides indirect load/store support.
+
+
+
+
+ Summary description for NewArrayExpression.
+
+
+
+
+
+
+
+
+ Here we try to match a constructor argument to its value.
+ Since we can't get the values from the assembly, we use some heuristics to get it.
+ a/ we first try to match all the properties on the attributes by name (case insensitive) to the argument
+ b/ if we fail we try to match them by property type, with some smarts about convertions (i,e: can use Guid for string).
+
+
+
+
+ We have the following rules here.
+ Try to find a matching type, failing that, if the parameter is string, get the first property (under the assumption that
+ we can convert it.
+
+
+
+
+ Attributes can only accept simple types, so we return null for null,
+ if the value is passed as string we call to string (should help with converting),
+ otherwise, we use the value as is (enums, integer, etc).
+
+
+
+
+ Provides appropriate Ldc.X opcode for the type of primitive value to be loaded.
+
+
+
+
+ Provides appropriate Ldind.X opcode for
+ the type of primitive value to be loaded indirectly.
+
+
+
+
+ Inspect the base method for generic definitions
+ and set the return type and the parameters
+ accordingly
+
+
+
+
+ Emits a load opcode of the appropriate kind for a constant string or
+ primitive value.
+
+
+
+
+
+
+
+
+ Emits a load opcode of the appropriate kind for the constant default value of a
+ type, such as 0 for value types and null for reference types.
+
+
+
+
+ Emits a load indirect opcode of the appropriate type for a value or object reference.
+ Pops a pointer off the evaluation stack, dereferences it and loads
+ a value of the specified type.
+
+
+
+
+
+
+
+
+ Emits a store indirectopcode of the appropriate type for a value or object reference.
+ Pops a value of the specified type and a pointer off the evaluation stack, and
+ stores the value.
+
+
+
+
+
+
+
+
+ Summary description for PropertiesCollection.
+
+
+
+
+ Provides appropriate Stind.X opcode
+ for the type of primitive value to be stored indirectly.
+
+
+
+
+ Base class that exposes the common functionalities
+ to proxy generation.
+
+
+ TODO:
+ - Use the interceptor selector if provided
+ - Add tests and fixes for 'leaking this' problem
+ - Mixin support
+
+
+
+
+ Used by dinamically implement
+
+
+
+
+
+ Generates a parameters constructor that initializes the proxy
+ state with just to make it non-null.
+
+ This constructor is important to allow proxies to be XML serializable
+
+
+
+
+ If callbackMethod is null the InvokeOnTarget implementation
+ is just the code to throw an exception
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ If callbackMethod is null the InvokeOnTarget implementation
+ is just the code to throw an exception
+
+
+
+
+
+
+
+
+
+
+
+
+
+ If true the invocation will implement the IChangeProxyTarget interface
+
+
+
+
+
+ Generates the constructor for the nested class that extends
+
+
+
+
+
+
+
+
+
+
+
+
+ Improvement: this cache should be static. We should generate a
+ type constructor instead
+
+
+
+
+ Performs some basic screening and invokes the
+ to select methods.
+
+
+
+
+
+
+
+
+
+
+ Checks if the method is public or protected.
+
+
+
+
+
+
+
+
+ Attributes should be replicated if they are non-inheritable,
+ but there are some special cases where the attributes means
+ something to the CLR, where they should be skipped.
+
+
+
+
+ Checks if the method has the same signature as a method that was marked as
+ one that should generate a new vtable slot.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Type of the target.
+ The interfaces.
+ The options.
+
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The emitter.
+ The add method.
+ The remove method.
+ The attributes.
+
+
+
+
+
+
+
+ Finds the type of the method on target.
+
+ The method on interface.
+ Type of the proxy target.
+
+
+
+
+
+ Checks whether the given types are the same. This is
+ more complicated than it looks.
+
+
+
+
+
+
+
+
+
+
+ This is used by the ProxyObjectReference class durin de-serialiation, to know
+ which generator it should use
+
+
+
+
+ Returns the methods implemented by a type. Use this instead of Type.GetMethods() to work around a CLR issue
+ where duplicate MethodInfos are returned by Type.GetMethods() after a token of a generic type's method was loaded.
+
+
+
+
+ Handles the deserialization of proxies.
+
+
+
+
+ Resets the used for deserialization to a new scope.
+
+ This is useful for test cases.
+
+
+
+ Resets the used for deserialization to a given .
+
+ The scope to be used for deserialization.
+ By default, the deserialization process uses a different scope than the rest of the application, which can lead to multiple proxies
+ being generated for the same type. By explicitly setting the deserialization scope to the application's scope, this can be avoided.
+
+
+
+ Gets the used for deserialization.
+
+ As has no way of automatically determining the scope used by the application (and the application
+ might use more than one scope at the same time), uses a dedicated scope instance for deserializing proxy
+ types. This instance can be reset and set to a specific value via and .
+
+
+
+ Used during the target type inspection process.
+ Implementors have a chance to interfere in the
+ proxy generation process
+
+
+
+
+ Invoked by the generation process to know if
+ the specified member should be proxied
+
+
+
+
+
+
+
+
+
+
+ Invoked by the generation process to notify that a
+ member wasn't marked as virtual.
+
+
+
+
+
+
+
+
+ Invoked by the generation process to notify
+ that the whole process is completed.
+
+
+
+
+ Abstracts the implementation of proxy constructions
+
+
+
+
+ Implementors should return a proxy for the specified type.
+
+ The proxy base class.
+ The proxy generation options.
+ The generated proxy type.
+
+
+
+ Implementors should return a proxy for the specified
+ type and interfaces. The interfaces must be only "mark" interfaces
+
+
+
+
+
+
+
+
+
+
+
+
+ Implementors should return a proxy for the specified
+ interface that 'proceeds' executions to the
+ specified target.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Implementors should return a proxy for the specified
+ interface that delegate all executions to the
+ specified interceptor(s).
+
+
+
+
+
+
+
+
+
+
+
+
+ Implementors should return a proxy for the specified
+ interface that delegate all executions to the
+ specified interceptor(s) and uses an instance of the interface
+ as their targets, rather than a class. All IInvocation's
+ should then implement IChangeProxyTarget.
+
+
+
+
+
+
+
+
+
+
+ Gets the module scope used by this builder for generating code.
+
+ The module scope used by this builder.
+
+
+
+ Determines whether this assembly has internals visisble to dynamic proxy.
+
+ The asm.
+
+
+
+ Determines whether the specified method is internal.
+
+ The method.
+
+ true if the specified method is internal; otherwise, false.
+
+
+
+
+ Summary description for ModuleScope.
+
+
+
+
+ The default file name used when the assembly is saved using .
+
+
+
+
+ The default assembly (simple) name used for the assemblies generated by a instance.
+
+
+
+
+ Initializes a new instance of the class; assemblies created by this instance will not be saved.
+
+
+
+
+ Initializes a new instance of the class, allowing to specify whether the assemblies generated by this instance
+ should be saved.
+
+ If set to true saves the generated module.
+
+
+
+ Initializes a new instance of the class, allowing to specify whether the assemblies generated by this instance
+ should be saved and what simple names are to be assigned to them.
+
+ If set to true saves the generated module.
+ The simple name of the strong-named assembly generated by this .
+ The path and file name of the manifest module of the strong-named assembly generated by this .
+ The simple name of the weak-named assembly generated by this .
+ The path and file name of the manifest module of the weak-named assembly generated by this .
+
+
+
+ Returns a type from this scope's type cache, or null if the key cannot be found.
+
+ The key to be looked up in the cache.
+ The type from this scope's type cache matching the key, or null if the key cannot be found
+
+
+
+ Registers a type in this scope's type cache.
+
+ The key to be associated with the type.
+ The type to be stored in the cache.
+
+
+
+ Gets the key pair used to sign the strong-named assembly generated by this .
+
+
+
+
+
+
+ Gets the specified module generated by this scope, creating a new one if none has yet been generated.
+
+ If set to true, a strong-named module is returned; otherwise, a weak-named module is returned.
+ A strong-named or weak-named module generated by this scope, as specified by the parameter.
+
+
+
+ Gets the strong-named module generated by this scope, creating a new one if none has yet been generated.
+
+ A strong-named module generated by this scope.
+
+
+
+ Gets the weak-named module generated by this scope, creating a new one if none has yet been generated.
+
+ A weak-named module generated by this scope.
+
+
+
+ Saves the generated assembly with the name and directory information given when this instance was created (or with
+ the and current directory if none was given).
+
+
+
+ This method stores the generated assembly in the directory passed as part of the module information specified when this instance was
+ constructed (if any, else the current directory is used). If both a strong-named and a weak-named assembly
+ have been generated, it will throw an exception; in this case, use the overload.
+
+
+ If this was created without indicating that the assembly should be saved, this method does nothing.
+
+
+ Both a strong-named and a weak-named assembly have been generated.
+ The path of the generated assembly file, or null if no file has been generated.
+
+
+
+ Saves the specified generated assembly with the name and directory information given when this instance was created
+ (or with the and current directory if none was given).
+
+ True if the generated assembly with a strong name should be saved (see );
+ false if the generated assembly without a strong name should be saved (see .
+
+
+ This method stores the specified generated assembly in the directory passed as part of the module information specified when this instance was
+ constructed (if any, else the current directory is used).
+
+
+ If this was created without indicating that the assembly should be saved, this method does nothing.
+
+
+ No assembly has been generated that matches the parameter.
+
+ The path of the generated assembly file, or null if no file has been generated.
+
+
+
+ Users of this should use this lock when accessing the cache.
+
+
+
+
+ Gets the strong-named module generated by this scope, or if none has yet been generated.
+
+ The strong-named module generated by this scope, or if none has yet been generated.
+
+
+
+ Gets the file name of the strongly named module generated by this scope.
+
+ The file name of the strongly named module generated by this scope.
+
+
+
+ Gets the directory where the strongly named module generated by this scope will be saved, or if the current directory
+ is used.
+
+ The directory where the strongly named module generated by this scope will be saved when is called
+ (if this scope was created to save modules).
+
+
+
+ Gets the weak-named module generated by this scope, or if none has yet been generated.
+
+ The weak-named module generated by this scope, or if none has yet been generated.
+
+
+
+ Gets the file name of the weakly named module generated by this scope.
+
+ The file name of the weakly named module generated by this scope.
+
+
+
+ Gets the directory where the weakly named module generated by this scope will be saved, or if the current directory
+ is used.
+
+ The directory where the weakly named module generated by this scope will be saved when is called
+ (if this scope was created to save modules).
+
+
+
+ ProxyBuilder that persists the generated type.
+
+
+ The saved assembly contains just the last generated type.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Saves the generated assembly to a physical file. Note that this renders the unusable.
+
+ The path of the generated assembly file, or null if no assembly has been generated.
+ This method does not support saving multiple files. If both a signed and an unsigned module have been generated, use the
+ respective methods of the .
+
+
+
+ Initializes a new instance of the class.
+
+ The hook.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The builder.
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Creates the class proxy.
+
+ Type of the target.
+ The interfaces.
+ The interceptors.
+
+
+
+
+
+ Creates the class proxy.
+
+ Type of the target.
+ The interceptors.
+ The constructor args.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Creates the class proxy.
+
+ Type of the target.
+ The interfaces.
+ The options.
+ The constructor args.
+ The interceptors.
+
+
+
+
+
+ Gets the proxy builder instance.
+
+ The proxy builder.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ For interface proxies, this will point to the
+ on the target class
+
+
+
+
+ Base for Attributes that want to express lifestyle
+ chosen by the component.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The type.
+
+
+
+ Gets or sets the lifestyle.
+
+ The lifestyle.
+
+
+
+ This attribute is usefull only when you want to register all components
+ on an assembly as a batch process.
+ By doing so, the batch register will look
+ for this attribute to distinguish components from other classes.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The key.
+
+
+
+ Initializes a new instance of the class.
+
+ The key.
+ The service.
+
+
+
+ Initializes a new instance of the class.
+
+ The key.
+ The service.
+ The lifestyle.
+
+
+
+ Gets the service.
+
+ The service.
+
+
+
+ Gets the key.
+
+ The key.
+
+
+
+ Associates a custom component with a component
+
+
+
+
+ Initializes a new instance of the class.
+
+ Type of the component activator.
+
+
+
+ Gets the type of the component activator.
+
+ The type of the component activator.
+
+
+
+ Specifies the proxying behavior for a component.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Gets or sets a value indicating whether the generated
+ interface proxy should inherit from .
+
+
+
+
+ Determines if the component requires a single interface proxy.
+
+
+ true if the component requires a single interface proxy.
+
+
+
+ Gets or sets the additional interfaces used during proxy generation.
+
+
+
+
+ Marks as property to be skipped and not be wired
+ by the IoC container
+
+
+
+
+ Used to declare that a component wants interceptors acting on it.
+
+
+
+
+ Constructs the InterceptorAttribute pointing to
+ a key to a interceptor
+
+
+
+
+
+
+ Constructs the InterceptorAttribute pointing to
+ a service
+
+
+
+
+
+
+ Indicates that the target components wants a
+ singleton lifestyle.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Indicates that the target components wants a
+ transient lifestyle.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Indicates that the target components wants a
+ per thread lifestyle.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Indicates that the target components wants a
+ per web request lifestyle.
+
+
+
+
+ Indicates that the target components wants a
+ pooled lifestyle.
+
+
+
+
+ Initializes a new instance of the class
+ using the default initial pool size (5) and the max pool size (15).
+
+
+
+
+ Initializes a new instance of the class.
+
+ Initial size of the pool.
+ Max pool size.
+
+
+
+ Gets the initial size of the pool.
+
+ The initial size of the pool.
+
+
+
+ Gets the maximum pool size.
+
+ The size of the max pool.
+
+
+
+ Indicates that the target components wants a
+ custom lifestyle.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The lifestyle handler.
+
+
+
+ Gets the type of the lifestyle handler.
+
+ The type of the lifestyle handler.
+
+
+
+ New interface that is going to be used by DynamicProxy 2
+
+
+
+
+ New interface that is going to be used by DynamicProxy 2
+
+
+
+
+ Returns the concrete instantiation of , with any generic parameters bound to real types.
+
+ The concrete instantiation of , or if not a generic method.
+ Can be slower than calling .
+
+
+
+ Returns the concrete instantiation of , with any generic parameters bound to real types.
+
+ The concrete instantiation of , or if not a generic method.
+ Can be slower than calling .
+
+
+
+
+
+
+
+
+
+ The generic arguments of the method, or null if not a generic method.
+
+
+
+
+
+
+
+
+ For interface proxies, this will point to the
+ on the target class
+
+
+
+
+ Interceptors might implement this to receive the
+ ComponentModel on behalf of the component where the
+ interceptor is acting.
+
+
+
+
+ Get the proxy target (note that null is a valid target!)
+
+
+
+
+
+
+ Gets the interceptors for the proxy
+
+
+
+
+
+
+ Abstract representation of a vertex.
+
+
+
+
+ The nodes that dependes on this node
+
+
+
+
+ The nodes that this node depends
+
+
+
+
+ The node has not been visited yet
+
+
+
+
+ This node is in the process of being visited
+
+
+
+
+ This now was visited
+
+
+
+
+ Represents a collection of objects
+ which are guaranted to be unique
+ and holds a color for them
+
+
+
+
+ Holds a timestamp (integer)
+ for a given item
+
+
+
+
+ Returns the node at the specified index.
+
+ The lookup index.
+ The node at the specified index.
+
+ If the specified is greater than the
+ number of objects within the list.
+
+
+
+
+ Validates the specified index.
+
+ The lookup index.
+
+ If the index is invalid.
+
+
+
+
+ Lifecycle interface. If implemented by a component,
+ the method Initialized will be invoked by the container
+ before making the component available to the external world.
+
+
+
+
+ Implementors should perform any initialization logic.
+
+
+
+
+ Only called for components that
+ belongs to a pool when the component
+ comes back to the pool.
+
+
+
+
+ Implementors should perform any
+ initialization/clean up.
+
+
+
+
+ Interface for components that wish to be started by the container
+
+
+
+
+ Starts this instance.
+
+
+
+
+ Stops this instance.
+
+
+
+
+ Manages the instantiation of s.
+
+
+
+
+ Creates a new logger, getting the logger name from the specified type.
+
+
+
+
+ Creates a new logger.
+
+
+
+
+ Creates a new logger, getting the logger name from the specified type.
+
+
+
+
+ Creates a new logger.
+
+
+
+
+ Provides a factory that can produce either or
+ classes.
+
+
+
+
+ Creates a new extended logger, getting the logger name from the specified type.
+
+
+
+
+ Creates a new extended logger.
+
+
+
+
+ Creates a new extended logger, getting the logger name from the specified type.
+
+
+
+
+ Creates a new extended logger.
+
+
+
+
+ Creates a new extended logger, getting the logger name from the specified type.
+
+
+
+
+ Creates a new extended logger.
+
+
+
+
+ Creates a new extended logger, getting the logger name from the specified type.
+
+
+
+
+ Creates a new extended logger.
+
+
+
+
+ Gets the configuration file.
+
+ i.e. log4net.config
+
+
+
+
+
+ Gets the configuration file.
+
+ i.e. log4net.config
+
+
+
+
+
+ Summary description for ConsoleFactory.
+
+
+
+
+ NullLogFactory used when logging is turned off.
+
+
+
+
+ Creates an instance of ILogger with the specified name.
+
+ Name.
+
+
+
+
+
+ Creates an instance of ILogger with the specified name and LoggerLevel.
+
+ Name.
+ Level.
+
+
+
+
+
+ Creates outputing
+ to files. The name of the file is derived from the log name
+ plus the 'log' extension.
+
+
+
+
+ Manages logging.
+
+
+ This is a facade for the different logging subsystems.
+ It offers a simplified interface that follows IOC patterns
+ and a simplified priority/level/severity abstraction.
+
+
+
+
+ Logs a debug message.
+
+ The message to log
+
+
+
+ Logs a debug message.
+
+ The exception to log
+ The message to log
+
+
+
+ Logs a debug message.
+
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs a debug message.
+
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs a debug message.
+
+ The exception to log
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs a debug message.
+
+ The format provider to use
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs a debug message.
+
+ The exception to log
+ The format provider to use
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs an info message.
+
+ The message to log
+
+
+
+ Logs an info message.
+
+ The exception to log
+ The message to log
+
+
+
+ Logs an info message.
+
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs an info message.
+
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs an info message.
+
+ The exception to log
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs an info message.
+
+ The format provider to use
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs an info message.
+
+ The exception to log
+ The format provider to use
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs a warn message.
+
+ The message to log
+
+
+
+ Logs a warn message.
+
+ The exception to log
+ The message to log
+
+
+
+ Logs a warn message.
+
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs a warn message.
+
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs a warn message.
+
+ The exception to log
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs a warn message.
+
+ The format provider to use
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs a warn message.
+
+ The exception to log
+ The format provider to use
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs an error message.
+
+ The message to log
+
+
+
+ Logs an error message.
+
+ The exception to log
+ The message to log
+
+
+
+ Logs an error message.
+
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs an error message.
+
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs an error message.
+
+ The exception to log
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs an error message.
+
+ The format provider to use
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs an error message.
+
+ The exception to log
+ The format provider to use
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs a fatal message.
+
+ The message to log
+
+
+
+ Logs a fatal message.
+
+ The exception to log
+ The message to log
+
+
+
+ Logs a fatal message.
+
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs a fatal message.
+
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs a fatal message.
+
+ The exception to log
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs a fatal message.
+
+ The format provider to use
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs a fatal message.
+
+ The exception to log
+ The format provider to use
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs a fatal error message.
+
+ The Message
+
+
+
+ Logs a fatal error message.
+
+ The Message
+ The Exception
+
+
+
+ Logs a fatal error message.
+
+ Message format
+ Array of objects to write using format
+
+
+
+ Create a new child logger.
+ The name of the child logger is [current-loggers-name].[passed-in-name]
+
+ The Subname of this logger.
+ The New ILogger instance.
+ If the name has an empty element name.
+
+
+
+ Determines if messages of priority "debug" will be logged.
+
+ True if "debug" messages will be logged.
+
+
+
+ Determines if messages of priority "info" will be logged.
+
+ True if "info" messages will be logged.
+
+
+
+ Determines if messages of priority "warn" will be logged.
+
+ True if "warn" messages will be logged.
+
+
+
+ Determines if messages of priority "error" will be logged.
+
+ True if "error" messages will be logged.
+
+
+
+ Determines if messages of priority "fatal" will be logged.
+
+ True if "fatal" messages will be logged.
+
+
+
+ Determines if messages of priority "fatalError" will be logged.
+
+ True if "fatalError" messages will be logged.
+
+
+
+ The Level Filtered Logger class. This is a base clase which
+ provides a LogLevel attribute and reroutes all functions into
+ one Log method.
+
+
+
+
+ Creates a new LevelFilteredLogger.
+
+
+
+
+ Keep the instance alive in a remoting scenario
+
+
+
+
+
+
+ Logs a debug message.
+
+ The message to log
+
+
+
+ Logs a debug message.
+
+ The exception to log
+ The message to log
+
+
+
+ Logs a debug message.
+
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs a debug message.
+
+ The exception to log
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs a debug message.
+
+ The format provider to use
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs a debug message.
+
+ The exception to log
+ The format provider to use
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs a debug message.
+
+ Message format
+ Array of objects to write using format
+
+
+
+ Logs an info message.
+
+ The message to log
+
+
+
+ Logs an info message.
+
+ The exception to log
+ The message to log
+
+
+
+ Logs an info message.
+
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs an info message.
+
+ The exception to log
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs an info message.
+
+ The format provider to use
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs an info message.
+
+ The exception to log
+ The format provider to use
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs an info message.
+
+ Message format
+ Array of objects to write using format
+
+
+
+ Logs a warn message.
+
+ The message to log
+
+
+
+ Logs a warn message.
+
+ The exception to log
+ The message to log
+
+
+
+ Logs a warn message.
+
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs a warn message.
+
+ The exception to log
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs a warn message.
+
+ The format provider to use
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs a warn message.
+
+ The exception to log
+ The format provider to use
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs a warn message.
+
+ Message format
+ Array of objects to write using format
+
+
+
+ Logs an error message.
+
+ The message to log
+
+
+
+ Logs an error message.
+
+ The exception to log
+ The message to log
+
+
+
+ Logs an error message.
+
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs an error message.
+
+ The exception to log
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs an error message.
+
+ The format provider to use
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs an error message.
+
+ The exception to log
+ The format provider to use
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs an error message.
+
+ Message format
+ Array of objects to write using format
+
+
+
+ Logs a fatal message.
+
+ The message to log
+
+
+
+ Logs a fatal message.
+
+ The exception to log
+ The message to log
+
+
+
+ Logs a fatal message.
+
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs a fatal message.
+
+ The exception to log
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs a fatal message.
+
+ The format provider to use
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs a fatal message.
+
+ The exception to log
+ The format provider to use
+ Format string for the message to log
+ Format arguments for the message to log
+
+
+
+ Logs a fatal message.
+
+ Message format
+ Array of objects to write using format
+
+
+
+ Logs a fatal error message.
+
+ The Message
+
+
+
+ Logs a fatal error message.
+
+ The Message
+ The Exception
+
+
+
+ Logs a fatal error message.
+
+ Message format
+ Array of objects to write using format
+
+
+
+ Implementors output the log content by implementing this method only.
+ Note that exception can be null
+
+
+
+
+
+
+
+
+
+
+
+
+ The LoggerLevel that this logger
+ will be using. Defaults to LoggerLevel.Off
+
+
+
+ The name that this logger will be using.
+ Defaults to String.Empty
+
+
+
+ Determines if messages of priority "debug" will be logged.
+
+
+ true if log level flags include the bit
+
+
+
+ Determines if messages of priority "info" will be logged.
+
+
+ true if log level flags include the bit
+
+
+
+ Determines if messages of priority "warn" will be logged.
+
+
+ true if log level flags include the bit
+
+
+
+ Determines if messages of priority "error" will be logged.
+
+
+ true if log level flags include the bit
+
+
+
+ Determines if messages of priority "fatal" will be logged.
+
+
+ true if log level flags include the bit
+
+
+
+ Determines if messages of priority "fatal" will be logged.
+
+
+ true if log level flags include the bit
+
+
+
+ The Logger sending everything to the standard output streams.
+ This is mainly for the cases when you have a utility that
+ does not have a logger to supply.
+
+
+
+
+ Creates a new ConsoleLogger with the Level
+ set to LoggerLevel.Debug and the Name
+ set to String.Empty.
+
+
+
+
+ Creates a new ConsoleLogger with the Name
+ set to String.Empty.
+
+ The logs Level.
+
+
+
+ Creates a new ConsoleLogger with the Level
+ set to LoggerLevel.Debug.
+
+ The logs Name.
+
+
+
+ Creates a new ConsoleLogger.
+
+ The logs Name.
+ The logs Level.
+
+
+
+ A Common method to log.
+
+ The level of logging
+ The name of the logger
+ The Message
+ The Exception
+
+
+
+ Returns a new ConsoleLogger with the name
+ added after this loggers name, with a dot in between.
+
+ The added hierarchical name.
+ A new ConsoleLogger.
+
+
+
+ The Logger using standart Diagnostics namespace.
+
+
+
+
+ Creates a logger based on .
+
+
+
+
+
+
+
+ Creates a logger based on .
+
+
+
+
+
+
+
+
+
+
+ Creates a logger based on .
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Provides an interface that supports and
+ allows the storage and retrieval of Contexts. These are supported in
+ both log4net and NLog.
+
+
+
+
+ Exposes the Global Context of the extended logger.
+
+
+
+
+ Exposes the Thread Context of the extended logger.
+
+
+
+
+ Exposes the Thread Stack of the extended logger.
+
+
+
+
+ The Null Logger class. This is useful for implementations where you need
+ to provide a logger to a utility class, but do not want any output from it.
+ It also helps when you have a utility that does not have a logger to supply.
+
+
+
+
+ Creates a new NullLogger.
+
+
+
+
+ No-op.
+
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+ Ignored
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+ Ignored
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+ Ignored
+ Ignored
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+ Ignored
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+ Ignored
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+ Ignored
+ Ignored
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+ Ignored
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+ Ignored
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+ Ignored
+ Ignored
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+ Ignored
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+ Ignored
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+ Ignored
+ Ignored
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+ Ignored
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+ Ignored
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+ Ignored
+ Ignored
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+ Ignored
+
+
+
+ No-op.
+
+ Ignored
+ Ignored
+
+
+
+ Returns this NullLogger.
+
+ Ignored
+ This ILogger instance.
+
+
+
+ No-op.
+
+ false
+
+
+
+ No-op.
+
+ false
+
+
+
+ No-op.
+
+ false
+
+
+
+ No-op.
+
+ false
+
+
+
+ No-op.
+
+ false
+
+
+
+ No-op.
+
+ false
+
+
+
+ Returns empty context properties.
+
+
+
+
+ Returns empty context properties.
+
+
+
+
+ Returns empty context stacks.
+
+
+
+
+ Interface for Context Properties implementations
+
+
+
+ This interface defines a basic property get set accessor.
+
+
+ Based on the ContextPropertiesBase of log4net, by Nicko Cadell.
+
+
+
+
+
+ Gets or sets the value of a property
+
+
+ The value for the property with the specified key
+
+
+
+ Gets or sets the value of a property
+
+
+
+
+
+ The Stream Logger class. This class can stream log information
+ to any stream, it is suitable for storing a log file to disk,
+ or to a MemoryStream for testing your components.
+
+
+ This logger is not thread safe.
+
+
+
+
+ Creates a new StreamLogger with default encoding
+ and buffer size. Initial Level is set to Debug.
+
+
+ The name of the log.
+
+
+ The stream that will be used for logging,
+ seeking while the logger is alive
+
+
+
+
+ Creates a new StreamLogger with default buffer size.
+ Initial Level is set to Debug.
+
+
+ The name of the log.
+
+
+ The stream that will be used for logging,
+ seeking while the logger is alive
+
+
+ The encoding that will be used for this stream.
+
+
+
+
+ Creates a new StreamLogger.
+ Initial Level is set to Debug.
+
+
+ The name of the log.
+
+
+ The stream that will be used for logging,
+ seeking while the logger is alive
+
+
+ The encoding that will be used for this stream.
+
+
+ The buffer size that will be used for this stream.
+
+
+
+
+ Creates a new StreamLogger with
+ Debug as default Level.
+
+ The name of the log.
+ The StreamWriter the log will write to.
+
+
+
+ The WebLogger sends everything to the HttpContext.Trace
+
+
+ Trace must be enabled on the Asp.Net configuration file (web.config or machine.config)
+
+
+
+
+ Creates a new WebLogger with the priority set to DEBUG.
+
+
+
+
+ Creates a new WebLogger.
+
+ The Log level typecode.
+
+
+
+ Creates a new WebLogger.
+
+ The Log name.
+
+
+
+ Creates a new WebLogger.
+
+ The Log name.
+ The Log level typecode.
+
+
+
+ A Common method to log.
+
+ The level of logging
+ The Log name.
+ The Message
+ The Exception
+
+
+
+ Just returns this logger (WebLogger is not hierarchical).
+
+ Ignored
+ This ILogger instance.
+
+
+
+ Tries to get the current http context's trace context.
+
+ The current http context's trace context or null if none is
+ available
+
+
+
+ Supporting Logger levels.
+
+
+
+
+ Logging will be off
+
+
+
+
+ Fatal logging level
+
+
+
+
+ Error logging level
+
+
+
+
+ Warn logging level
+
+
+
+
+ Info logging level
+
+
+
+
+ Debug logging level
+
+
+
+
+ Pendent
+
+
+
+
+ Deserializes the specified node into an abstract representation of configuration.
+
+ The node.
+
+
+
+
+
+ If a config value is an empty string we return null, this is to keep
+ backward compability with old code
+
+
+
+
+ Summary description for IConfiguration.
+
+
+ is a interface encapsulating a configuration node
+ used to retrieve configuration values.
+
+
+
+
+ Gets the value of the node and converts it
+ into specified .
+
+ The
+
+ The Default value returned if the convertion fails.
+
+ The Value converted into the specified type.
+
+
+
+ Gets the name of the node.
+
+
+ The Name of the node.
+
+
+
+
+ Gets the value of the node.
+
+
+ The Value of the node.
+
+
+
+
+ Gets an of
+ elements containing all node children.
+
+ The Collection of child nodes.
+
+
+
+ Gets an of the configuration attributes.
+
+
+
+
+ This is an abstract implementation
+ that deals with methods that can be abstracted away
+ from underlying implementations.
+
+
+
+ AbstractConfiguration makes easier to implementers
+ to create a new version of
+
+
+
+
+ Gets the value of the node and converts it
+ into specified .
+
+ The
+
+ The Default value returned if the convertion fails.
+
+ The Value converted into the specified type.
+
+
+
+ Gets the name of the .
+
+
+ The Name of the .
+
+
+
+
+ Gets the value of .
+
+
+ The Value of the .
+
+
+
+
+ Gets all child nodes.
+
+ The of child nodes.
+
+
+
+ Gets node attributes.
+
+
+ All attributes of the node.
+
+
+
+
+ A collection of objects.
+
+
+
+
+ Creates a new instance of ConfigurationCollection.
+
+
+
+
+ Creates a new instance of ConfigurationCollection.
+
+
+
+
+ Creates a new instance of ConfigurationCollection.
+
+
+
+
+ Adds an .
+
+ The to add.
+
+ The index at which the new element was inserted.
+
+
+
+
+ Adds an array of .
+
+ The Array of to add.
+
+
+
+ Adds a .
+
+ The to add.
+
+
+
+ Copies the elements to a one-dimensional instance at the specified index.
+
+
+ The one-dimensional must have zero-based indexing.
+
+ The zero-based index in array at which copying begins.
+
+
+
+ Gets a value indicating whether the contains
+ in the collection.
+
+ The to locate.
+
+ if the is contained in the collection;
+ otherwise, .
+
+
+
+
+ Removes a specific from the
+ collection.
+
+ The to remove from the collection.
+
+ is not found in the collection.
+
+
+
+
+ Represents the entry at the specified index of the .
+
+
+ The zero-based index of the entry to locate in the collection.
+
+
+ The entry at the specified index of the collection.
+
+
+ is outside the valid range of indexes for the collection.
+
+
+
+
+ Summary description for MutableConfiguration.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The name.
+
+
+
+ Enumeration used to mark the component's lifestyle.
+
+
+
+
+ No lifestyle specified.
+
+
+
+
+ Singleton components are instantiated once, and shared
+ between all clients.
+
+
+
+
+ Thread components have a unique instance per thread.
+
+
+
+
+ Transient components are created on demand.
+
+
+
+
+ Optimization of transient components that keeps
+ instance in a pool instead of always creating them.
+
+
+
+
+ Any other logic to create/release components.
+
+
+
+
+ PerWebRequest components are created once per Http Request
+
+
+
+
+
+
+
+
+ Represents the collection of information and
+ meta information collected about a component.
+
+
+
+ Name (key) of the component
+
+
+ Service exposed
+
+
+ Implementation for the service
+
+
+ Extended properties
+
+
+ Lifestyle for the component
+
+
+ Custom lifestyle, if any
+
+
+ Custom activator, if any
+
+
+ Dependencies the kernel must resolve
+
+
+ All available constructors
+
+
+ All potential properties that can be setted by the kernel
+
+
+ Steps of lifecycle
+
+
+ External parameters
+
+
+ Configuration node associated
+
+
+ Interceptors associated
+
+
+ /// Custom dependencies///
+
+
+
+ Constructs a ComponentModel
+
+
+
+
+ Sets or returns the component key
+
+
+
+
+ Gets or sets the service exposed.
+
+ The service.
+
+
+
+ Gets or sets the component implementation.
+
+ The implementation.
+
+
+
+ Gets or sets a value indicating whether the component requires generic arguments.
+
+
+ true if generic arguments are required; otherwise, false.
+
+
+
+
+ Gets or sets the extended properties.
+
+ The extended properties.
+
+
+
+ Gets the constructors candidates.
+
+ The constructors.
+
+
+
+ Gets the properties set.
+
+ The properties.
+
+
+
+ Gets or sets the configuration.
+
+ The configuration.
+
+
+
+ Gets the lifecycle steps.
+
+ The lifecycle steps.
+
+
+
+ Gets or sets the lifestyle type.
+
+ The type of the lifestyle.
+
+
+
+ Gets or sets the strategy for
+ inspecting public properties
+ on the components
+
+
+
+
+ Gets or sets the custom lifestyle.
+
+ The custom lifestyle.
+
+
+
+ Gets or sets the custom component activator.
+
+ The custom component activator.
+
+
+
+ Gets the interceptors.
+
+ The interceptors.
+
+
+
+ Gets the parameter collection.
+
+ The parameters.
+
+
+
+ Dependencies are kept within constructors and
+ properties. Others dependencies must be
+ registered here, so the kernel (as a matter
+ of fact the handler) can check them
+
+
+
+
+ Gets or sets the custom dependencies.
+
+ The custom dependencies.
+
+
+
+ Represents a constructor of the component
+ that the container can use to initialize it properly.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The constructor info.
+ The dependencies.
+
+
+
+ Gets the ConstructorInfo (from reflection).
+
+ The constructor.
+
+
+
+ Gets the dependencies this constructor candidate exposes.
+
+ The dependencies.
+
+
+
+ Collection of
+
+
+
+ Adds the specified candidate.
+
+ The candidate.
+
+
+
+ Clears this instance.
+
+
+
+
+ Gets the fewer arguments candidate.
+
+ The fewer arguments candidate.
+
+
+
+ Represents a dependency (other component or a
+ fixed value available through external configuration).
+
+
+
+
+ Initializes a new instance of the class.
+
+ The type.
+ The dependency key.
+ Type of the target.
+ if set to true [is optional].
+
+
+
+ Returns a that represents the current .
+
+
+ A that represents the current .
+
+
+
+
+ Serves as a hash function for a particular type, suitable
+ for use in hashing algorithms and data structures like a hash table.
+
+
+ A hash code for the current .
+
+
+
+
+ Determines whether the specified is equal to the current .
+
+ The to compare with the current .
+
+ if the specified is equal to the
+ current ; otherwise, .
+
+
+
+
+ Gets or sets the type of the dependency.
+
+ The type of the dependency.
+
+
+
+ Gets or sets the dependency key.
+
+ The dependency key.
+
+
+
+ Gets the type of the target.
+
+ The type of the target.
+
+
+
+ Gets or sets whether this dependency is optional.
+
+
+ true if this dependency is optional; otherwise, false.
+
+
+
+
+ Collection of .
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The dependencies.
+
+
+
+ Initializes a new instance of the class.
+
+ The dependencies.
+
+
+
+ Adds the specified model.
+
+ The model.
+
+
+
+ Removes the specified model.
+
+ The model.
+
+
+
+ Clears this instance.
+
+
+
+
+ Determines whether this collection contains the the specified model.
+
+ The model.
+
+ true if the collection contains the specified model; otherwise, false.
+
+
+
+
+ Represents an reference to a Interceptor component.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The component key.
+
+
+
+ Initializes a new instance of the class.
+
+ Type of the service.
+
+
+
+ Gets an for the component key.
+
+ The component key.
+ The
+
+
+
+ Gets an for the service.
+
+ The service.
+ The
+
+
+
+ Gets the type of the service.
+
+ The type of the service.
+
+
+
+ Gets the interceptor component key.
+
+ The component key.
+
+
+
+ Gets the type of the reference.
+
+ The type of the reference.
+
+
+
+ Collection of
+
+
+
+ Adds the specified interceptor.
+
+ The interceptor.
+
+
+
+ Adds the the specified interceptor as the first.
+
+ The interceptor.
+
+
+
+ Adds the the specified interceptor as the last.
+
+ The interceptor.
+
+
+
+ Inserts the specified interceptor at the specified index.
+
+ The index.
+ The interceptor.
+
+
+
+ When implemented by a class, copies the elements of
+ the to an , starting at a particular index.
+
+ The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing.
+ The zero-based index in at which copying begins.
+
+ is .
+
+ is less than zero.
+
+
+ is multidimensional.
+ -or-
+
+ is equal to or greater than the length of .
+ -or-
+ The number of elements in the source is greater than the available space from to the end of the destination .
+
+ The type of the source cannot be cast automatically to the type of the destination .
+
+
+
+ Returns an enumerator that can iterate through a collection.
+
+
+ An
+ that can be used to iterate through the collection.
+
+
+
+
+ Adds the interceptor to the end of the interceptors list if it does not exist already.
+
+ The interceptor reference.
+
+
+
+ Gets a value indicating whether this instance has interceptors.
+
+
+ true if this instance has interceptors; otherwise, false.
+
+
+
+
+ Gets the number of
+ elements contained in the .
+
+
+
+
+
+
+ Gets an object that
+ can be used to synchronize access to the .
+
+
+
+
+
+
+ Gets a value
+ indicating whether access to the is synchronized
+ (thread-safe).
+
+
+
+
+
+
+ Represents a collection of ordered lifecycle steps.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Returns all steps for the commission phase
+
+
+
+
+
+
+ Returns all steps for the decommission phase
+
+
+
+
+
+
+ Adds a step to the commission or decomission phases.
+
+
+
+
+
+
+
+
+ Copies the elements of
+ the to an , starting at a particular index.
+
+ The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing.
+ The zero-based index in at which copying begins.
+
+ is .
+
+ is less than zero.
+
+
+ is multidimensional.
+ -or-
+
+ is equal to or greater than the length of .
+ -or-
+ The number of elements in the source is greater than the available space from to the end of the destination .
+
+ The type of the source cannot be cast automatically to the type of the destination .
+
+
+
+ Returns an enumerator that can iterate through a collection.
+
+
+ An
+ that can be used to iterate through the collection.
+
+
+
+
+ Gets a value indicating whether this instance has commission steps.
+
+
+ true if this instance has commission steps; otherwise, false.
+
+
+
+
+ Gets a value indicating whether this instance has decommission steps.
+
+
+ true if this instance has decommission steps; otherwise, false.
+
+
+
+
+ Gets the number of
+ elements contained in the .
+
+
+
+
+
+
+ Gets an object that
+ can be used to synchronize access to the .
+
+
+
+
+
+
+ Gets a value
+ indicating whether access to the is synchronized
+ (thread-safe).
+
+
+
+
+
+
+ Represents meta information associated with a method
+ (not yet defined)
+
+
+
+
+ Initializes a new instance of the class.
+
+ The config node.
+
+
+
+ Gets the config node.
+
+ The config node.
+
+
+
+ Collection of
+
+
+
+ Adds the specified model.
+
+ The model.
+
+
+
+ Gets the method info2 model.
+
+ The method info2 model.
+
+
+
+ Represents a parameter. Usually the parameter
+ comes from the external world, ie, an external configuration.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The name.
+ The value.
+
+
+
+ Initializes a new instance of the class.
+
+ The name.
+ The value.
+
+
+
+ Gets the name.
+
+ The name.
+
+
+
+ Gets the value.
+
+ The value.
+
+
+
+ Gets the config value.
+
+ The config value.
+
+
+
+ Collection of
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Adds the specified name.
+
+ The name.
+ The value.
+
+
+
+ Adds the specified name.
+
+ The name.
+ The config node.
+
+
+
+ Determines whether this collection contains the specified key.
+
+ The key.
+
+ true if yes; otherwise, false.
+
+
+
+
+ Adds the specified key.
+
+
+ Not implemented
+
+ The key.
+ The value.
+
+
+
+ Clears this instance.
+
+
+ Not implemented
+
+
+
+
+ Removes the specified key.
+
+ The key.
+
+ Not implemented
+
+
+
+
+ Copy the content to the specified array
+
+ target array
+ target index
+
+ Not implemented
+
+
+
+
+ Returns an enumerator that can iterate through a collection.
+
+
+ An
+ that can be used to iterate through the collection.
+
+
+
+
+ Gets the keys.
+
+ The keys.
+
+ Not implemented
+
+
+
+
+ Gets the values.
+
+ The values.
+
+ Not implemented
+
+
+
+
+ Gets a value indicating whether this instance is read only.
+
+
+ true if this instance is read only; otherwise, false.
+
+
+
+
+ Gets a value indicating whether this instance is fixed size.
+
+
+ true if this instance is fixed size; otherwise, false.
+
+
+
+
+ Gets the with the specified key.
+
+
+
+
+
+
+ Gets the count.
+
+ The count.
+
+
+
+ Gets the sync root.
+
+ The sync root.
+
+
+
+ Gets a value indicating whether this instance is synchronized.
+
+
+ true if this instance is synchronized; otherwise, false.
+
+
+
+
+ Represents a property and the respective dependency.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The property info.
+ The dependency.
+
+
+
+ Gets the property.
+
+ The property.
+
+
+
+ Gets the dependency.
+
+ The dependency.
+
+
+
+ Collection of
+
+
+
+ Adds the specified property.
+
+ The property.
+
+
+
+ Clears this instance.
+
+
+
+
+ Finds a PropertySet the by PropertyInfo.
+
+ The info.
+
+
+
+
+
+ Represents a 'streamable' resource. Can
+ be a file, a resource in an assembly.
+
+
+
+
+ Returns a reader for the stream
+
+
+ It's up to the caller to dispose the reader.
+
+
+
+
+
+
+ Returns a reader for the stream
+
+
+ It's up to the caller to dispose the reader.
+
+
+
+
+
+
+
+
+ Returns an instance of
+ created according to the relativePath
+ using itself as the root.
+
+
+
+
+
+
+
+
+
+
+ Only valid for resources that
+ can be obtained through relative paths
+
+
+
+
+
+
+
+
+ This returns a new stream instance each time it is called.
+ It is the responsability of the caller to dispose of this stream
+
+
+
+
+ Depicts the contract for resource factories.
+
+
+
+
+ Used to check whether the resource factory
+ is able to deal with the given resource
+ identifier.
+
+
+ Implementors should return true
+ only if the given identificator is supported
+ by the resource factory
+
+
+
+
+
+
+
+
+ Creates an instance
+ for the given resource identifier
+
+
+
+
+
+
+
+
+ Creates an instance
+ for the given resource identifier
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Adapts a static string content as an
+
+
+
+ Enable access to files on network shares
+
+
+
+
+ Defines that the implementation wants a
+ in order to
+ access other components. The creator must be aware
+ that the component might (or might not) implement
+ the interface.
+
+
+ Used by Castle Project components to, for example,
+ gather logging factories
+
+
+
+
+ Increments IServiceProvider with a generic service resolution operation.
+
+
+
+
+ This interface should be implemented by classes
+ that are available in a bigger context, exposing
+ the container to different areas in the same application.
+
+ For example, in Web application, the (global) HttpApplication
+ subclasses should implement this interface to expose
+ the configured container
+
+
+
+
+ General purpose class to represent a standard pair of values.
+
+ Type of the first value
+ Type of the second value
+
+
+
+ Constructs a pair with its values
+
+
+
+
+
+
+
+
+ Pendent
+
+
+
+
+ Initializes a new instance of the class.
+
+ The target.
+
+
+
+ Determines whether the object contains an element with the specified key.
+
+ The key to locate in the object.
+
+ true if the contains an element with the key; otherwise, false.
+
+
+ is null.
+
+
+
+ Adds an element with the provided key and value to the object.
+
+ The to use as the key of the element to add.
+ The to use as the value of the element to add.
+
+ is null.
+ An element with the same key already exists in the object.
+ The is read-only.-or- The has a fixed size.
+
+
+
+ Removes all elements from the object.
+
+ The object is read-only.
+
+
+
+ Removes the element with the specified key from the object.
+
+ The key of the element to remove.
+
+ is null.
+ The object is read-only.-or- The has a fixed size.
+
+
+
+ Copies the elements of the to an , starting at a particular index.
+
+ The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing.
+ The zero-based index in at which copying begins.
+
+ is null.
+
+ is less than zero.
+
+ is multidimensional.-or- is equal to or greater than the length of .-or- The number of elements in the source is greater than the available space from to the end of the destination .
+ The type of the source cannot be cast automatically to the type of the destination .
+
+
+
+ Returns an enumerator that iterates through a collection.
+
+
+ An object that can be used to iterate through the collection.
+
+
+
+
+ Gets or sets the with the specified key.
+
+
+
+
+
+
+ Gets an object containing the keys of the object.
+
+
+
+ An object containing the keys of the object.
+
+
+
+ Gets an object containing the values in the object.
+
+
+
+ An object containing the values in the object.
+
+
+
+ Gets a value indicating whether the object is read-only.
+
+
+
+ true if the object is read-only; otherwise, false.
+
+
+
+ Gets a value indicating whether the object has a fixed size.
+
+
+
+ true if the object has a fixed size; otherwise, false.
+
+
+
+ Gets the number of elements contained in the .
+
+
+
+ The number of elements contained in the .
+
+
+
+ Gets an object that can be used to synchronize access to the .
+
+
+
+ An object that can be used to synchronize access to the .
+
+
+
+ Gets a value indicating whether access to the is synchronized (thread safe).
+
+
+
+ true if access to the is synchronized (thread safe); otherwise, false.
+
+
+
\ No newline at end of file
diff --git a/lib/Net/4.0/nunit.core.dll b/lib/Net/4.0/nunit.core.dll
new file mode 100644
index 00000000..dd3b2e00
Binary files /dev/null and b/lib/Net/4.0/nunit.core.dll differ
diff --git a/lib/Net/4.0/nunit.core.interfaces.dll b/lib/Net/4.0/nunit.core.interfaces.dll
new file mode 100644
index 00000000..39a11273
Binary files /dev/null and b/lib/Net/4.0/nunit.core.interfaces.dll differ
diff --git a/lib/Net/4.0/nunit.framework.dll b/lib/Net/4.0/nunit.framework.dll
new file mode 100644
index 00000000..639dbb0d
Binary files /dev/null and b/lib/Net/4.0/nunit.framework.dll differ
diff --git a/lib/Net/4.0/nunit.framework.xml b/lib/Net/4.0/nunit.framework.xml
new file mode 100644
index 00000000..e8b371cd
--- /dev/null
+++ b/lib/Net/4.0/nunit.framework.xml
@@ -0,0 +1,10228 @@
+
+
+
+ nunit.framework
+
+
+
+
+ BinaryConstraint is the abstract base of all constraints
+ that combine two other constraints in some fashion.
+
+
+
+
+ The Constraint class is the base of all built-in constraints
+ within NUnit. It provides the operator overloads used to combine
+ constraints.
+
+
+
+
+ The IConstraintExpression interface is implemented by all
+ complete and resolvable constraints and expressions.
+
+
+
+
+ Return the top-level constraint for this expression
+
+
+
+
+
+ Static UnsetObject used to detect derived constraints
+ failing to set the actual value.
+
+
+
+
+ The actual value being tested against a constraint
+
+
+
+
+ The display name of this Constraint for use by ToString()
+
+
+
+
+ Argument fields used by ToString();
+
+
+
+
+ The builder holding this constraint
+
+
+
+
+ Construct a constraint with no arguments
+
+
+
+
+ Construct a constraint with one argument
+
+
+
+
+ Construct a constraint with two arguments
+
+
+
+
+ Sets the ConstraintBuilder holding this constraint
+
+
+
+
+ Write the failure message to the MessageWriter provided
+ as an argument. The default implementation simply passes
+ the constraint and the actual value to the writer, which
+ then displays the constraint description and the value.
+
+ Constraints that need to provide additional details,
+ such as where the error occured can override this.
+
+ The MessageWriter on which to display the message
+
+
+
+ Test whether the constraint is satisfied by a given value
+
+ The value to be tested
+ True for success, false for failure
+
+
+
+ Test whether the constraint is satisfied by an
+ ActualValueDelegate that returns the value to be tested.
+ The default implementation simply evaluates the delegate
+ but derived classes may override it to provide for delayed
+ processing.
+
+ An ActualValueDelegate
+ True for success, false for failure
+
+
+
+ Test whether the constraint is satisfied by a given reference.
+ The default implementation simply dereferences the value but
+ derived classes may override it to provide for delayed processing.
+
+ A reference to the value to be tested
+ True for success, false for failure
+
+
+
+ Write the constraint description to a MessageWriter
+
+ The writer on which the description is displayed
+
+
+
+ Write the actual value for a failing constraint test to a
+ MessageWriter. The default implementation simply writes
+ the raw value of actual, leaving it to the writer to
+ perform any formatting.
+
+ The writer on which the actual value is displayed
+
+
+
+ Default override of ToString returns the constraint DisplayName
+ followed by any arguments within angle brackets.
+
+
+
+
+
+ Returns the string representation of this constraint
+
+
+
+
+ This operator creates a constraint that is satisfied only if both
+ argument constraints are satisfied.
+
+
+
+
+ This operator creates a constraint that is satisfied if either
+ of the argument constraints is satisfied.
+
+
+
+
+ This operator creates a constraint that is satisfied if the
+ argument constraint is not satisfied.
+
+
+
+
+ Returns a DelayedConstraint with the specified delay time.
+
+ The delay in milliseconds.
+
+
+
+
+ Returns a DelayedConstraint with the specified delay time
+ and polling interval.
+
+ The delay in milliseconds.
+ The interval at which to test the constraint.
+
+
+
+
+ The display name of this Constraint for use by ToString().
+ The default value is the name of the constraint with
+ trailing "Constraint" removed. Derived classes may set
+ this to another name in their constructors.
+
+
+
+
+ Returns a ConstraintExpression by appending And
+ to the current constraint.
+
+
+
+
+ Returns a ConstraintExpression by appending And
+ to the current constraint.
+
+
+
+
+ Returns a ConstraintExpression by appending Or
+ to the current constraint.
+
+
+
+
+ Class used to detect any derived constraints
+ that fail to set the actual value in their
+ Matches override.
+
+
+
+
+ The first constraint being combined
+
+
+
+
+ The second constraint being combined
+
+
+
+
+ Construct a BinaryConstraint from two other constraints
+
+ The first constraint
+ The second constraint
+
+
+
+ AndConstraint succeeds only if both members succeed.
+
+
+
+
+ Create an AndConstraint from two other constraints
+
+ The first constraint
+ The second constraint
+
+
+
+ Apply both member constraints to an actual value, succeeding
+ succeeding only if both of them succeed.
+
+ The actual value
+ True if the constraints both succeeded
+
+
+
+ Write a description for this contraint to a MessageWriter
+
+ The MessageWriter to receive the description
+
+
+
+ Write the actual value for a failing constraint test to a
+ MessageWriter. The default implementation simply writes
+ the raw value of actual, leaving it to the writer to
+ perform any formatting.
+
+ The writer on which the actual value is displayed
+
+
+
+ OrConstraint succeeds if either member succeeds
+
+
+
+
+ Create an OrConstraint from two other constraints
+
+ The first constraint
+ The second constraint
+
+
+
+ Apply the member constraints to an actual value, succeeding
+ succeeding as soon as one of them succeeds.
+
+ The actual value
+ True if either constraint succeeded
+
+
+
+ Write a description for this contraint to a MessageWriter
+
+ The MessageWriter to receive the description
+
+
+
+ CollectionConstraint is the abstract base class for
+ constraints that operate on collections.
+
+
+
+
+ Construct an empty CollectionConstraint
+
+
+
+
+ Construct a CollectionConstraint
+
+
+
+
+
+ Determines whether the specified enumerable is empty.
+
+ The enumerable.
+
+ true if the specified enumerable is empty; otherwise, false.
+
+
+
+
+ Test whether the constraint is satisfied by a given value
+
+ The value to be tested
+ True for success, false for failure
+
+
+
+ Protected method to be implemented by derived classes
+
+
+
+
+
+
+ CollectionItemsEqualConstraint is the abstract base class for all
+ collection constraints that apply some notion of item equality
+ as a part of their operation.
+
+
+
+
+ Construct an empty CollectionConstraint
+
+
+
+
+ Construct a CollectionConstraint
+
+
+
+
+
+ Flag the constraint to use the supplied IComparer object.
+
+ The IComparer object to use.
+ Self.
+
+
+
+ Flag the constraint to use the supplied IComparer object.
+
+ The IComparer object to use.
+ Self.
+
+
+
+ Flag the constraint to use the supplied Comparison object.
+
+ The IComparer object to use.
+ Self.
+
+
+
+ Flag the constraint to use the supplied IEqualityComparer object.
+
+ The IComparer object to use.
+ Self.
+
+
+
+ Flag the constraint to use the supplied IEqualityComparer object.
+
+ The IComparer object to use.
+ Self.
+
+
+
+ Compares two collection members for equality
+
+
+
+
+ Return a new CollectionTally for use in making tests
+
+ The collection to be included in the tally
+
+
+
+ Flag the constraint to ignore case and return self.
+
+
+
+
+ EmptyCollectionConstraint tests whether a collection is empty.
+
+
+
+
+ Check that the collection is empty
+
+
+
+
+
+
+ Write the constraint description to a MessageWriter
+
+
+
+
+
+ UniqueItemsConstraint tests whether all the items in a
+ collection are unique.
+
+
+
+
+ Check that all items are unique.
+
+
+
+
+
+
+ Write a description of this constraint to a MessageWriter
+
+
+
+
+
+ CollectionContainsConstraint is used to test whether a collection
+ contains an expected object as a member.
+
+
+
+
+ Construct a CollectionContainsConstraint
+
+
+
+
+
+ Test whether the expected item is contained in the collection
+
+
+
+
+
+
+ Write a descripton of the constraint to a MessageWriter
+
+
+
+
+
+ CollectionEquivalentCOnstraint is used to determine whether two
+ collections are equivalent.
+
+
+
+
+ Construct a CollectionEquivalentConstraint
+
+
+
+
+
+ Test whether two collections are equivalent
+
+
+
+
+
+
+ Write a description of this constraint to a MessageWriter
+
+
+
+
+
+ CollectionSubsetConstraint is used to determine whether
+ one collection is a subset of another
+
+
+
+
+ Construct a CollectionSubsetConstraint
+
+ The collection that the actual value is expected to be a subset of
+
+
+
+ Test whether the actual collection is a subset of
+ the expected collection provided.
+
+
+
+
+
+
+ Write a description of this constraint to a MessageWriter
+
+
+
+
+
+ CollectionOrderedConstraint is used to test whether a collection is ordered.
+
+
+
+
+ Construct a CollectionOrderedConstraint
+
+
+
+
+ Modifies the constraint to use an IComparer and returns self.
+
+
+
+
+ Modifies the constraint to use an IComparer<T> and returns self.
+
+
+
+
+ Modifies the constraint to use a Comparison<T> and returns self.
+
+
+
+
+ Modifies the constraint to test ordering by the value of
+ a specified property and returns self.
+
+
+
+
+ Test whether the collection is ordered
+
+
+
+
+
+
+ Write a description of the constraint to a MessageWriter
+
+
+
+
+
+ Returns the string representation of the constraint.
+
+
+
+
+
+ If used performs a reverse comparison
+
+
+
+
+ Abstract base class for constraints that compare values to
+ determine if one is greater than, equal to or less than
+ the other.
+
+
+
+
+ The value against which a comparison is to be made
+
+
+
+
+ If true, less than returns success
+
+
+
+
+ if true, equal returns success
+
+
+
+
+ if true, greater than returns success
+
+
+
+
+ The predicate used as a part of the description
+
+
+
+
+ ComparisonAdapter to be used in making the comparison
+
+
+
+
+ Initializes a new instance of the class.
+
+ The value against which to make a comparison.
+ if set to true less succeeds.
+ if set to true equal succeeds.
+ if set to true greater succeeds.
+ String used in describing the constraint.
+
+
+
+ Test whether the constraint is satisfied by a given value
+
+ The value to be tested
+ True for success, false for failure
+
+
+
+ Write the constraint description to a MessageWriter
+
+ The writer on which the description is displayed
+
+
+
+ Modifies the constraint to use an IComparer and returns self
+
+
+
+
+ Modifies the constraint to use an IComparer<T> and returns self
+
+
+
+
+ Modifies the constraint to use a Comparison<T> and returns self
+
+
+
+
+ Tests whether a value is greater than the value supplied to its constructor
+
+
+
+
+ Initializes a new instance of the class.
+
+ The expected value.
+
+
+
+ Tests whether a value is greater than or equal to the value supplied to its constructor
+
+
+
+
+ Initializes a new instance of the class.
+
+ The expected value.
+
+
+
+ Tests whether a value is less than the value supplied to its constructor
+
+
+
+
+ Initializes a new instance of the class.
+
+ The expected value.
+
+
+
+ Tests whether a value is less than or equal to the value supplied to its constructor
+
+
+
+
+ Initializes a new instance of the class.
+
+ The expected value.
+
+
+
+ Delegate used to delay evaluation of the actual value
+ to be used in evaluating a constraint
+
+
+
+
+ ConstraintBuilder maintains the stacks that are used in
+ processing a ConstraintExpression. An OperatorStack
+ is used to hold operators that are waiting for their
+ operands to be reognized. a ConstraintStack holds
+ input constraints as well as the results of each
+ operator applied.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Appends the specified operator to the expression by first
+ reducing the operator stack and then pushing the new
+ operator on the stack.
+
+ The operator to push.
+
+
+
+ Appends the specified constraint to the expresson by pushing
+ it on the constraint stack.
+
+ The constraint to push.
+
+
+
+ Sets the top operator right context.
+
+ The right context.
+
+
+
+ Reduces the operator stack until the topmost item
+ precedence is greater than or equal to the target precedence.
+
+ The target precedence.
+
+
+
+ Resolves this instance, returning a Constraint. If the builder
+ is not currently in a resolvable state, an exception is thrown.
+
+ The resolved constraint
+
+
+
+ Gets a value indicating whether this instance is resolvable.
+
+
+ true if this instance is resolvable; otherwise, false.
+
+
+
+
+ OperatorStack is a type-safe stack for holding ConstraintOperators
+
+
+
+
+ Initializes a new instance of the class.
+
+ The builder.
+
+
+
+ Pushes the specified operator onto the stack.
+
+ The op.
+
+
+
+ Pops the topmost operator from the stack.
+
+
+
+
+
+ Gets a value indicating whether this is empty.
+
+ true if empty; otherwise, false.
+
+
+
+ Gets the topmost operator without modifying the stack.
+
+ The top.
+
+
+
+ ConstraintStack is a type-safe stack for holding Constraints
+
+
+
+
+ Initializes a new instance of the class.
+
+ The builder.
+
+
+
+ Pushes the specified constraint. As a side effect,
+ the constraint's builder field is set to the
+ ConstraintBuilder owning this stack.
+
+ The constraint.
+
+
+
+ Pops this topmost constrait from the stack.
+ As a side effect, the constraint's builder
+ field is set to null.
+
+
+
+
+
+ Gets a value indicating whether this is empty.
+
+ true if empty; otherwise, false.
+
+
+
+ Gets the topmost constraint without modifying the stack.
+
+ The topmost constraint
+
+
+
+ EmptyConstraint tests a whether a string or collection is empty,
+ postponing the decision about which test is applied until the
+ type of the actual argument is known.
+
+
+
+
+ Test whether the constraint is satisfied by a given value
+
+ The value to be tested
+ True for success, false for failure
+
+
+
+ Write the constraint description to a MessageWriter
+
+ The writer on which the description is displayed
+
+
+
+ EqualConstraint is able to compare an actual value with the
+ expected value provided in its constructor. Two objects are
+ considered equal if both are null, or if both have the same
+ value. NUnit has special semantics for some object types.
+
+
+
+
+ If true, strings in error messages will be clipped
+
+
+
+
+ NUnitEqualityComparer used to test equality.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The expected value.
+
+
+
+ Flag the constraint to use a tolerance when determining equality.
+
+ Tolerance value to be used
+ Self.
+
+
+
+ Flag the constraint to use the supplied IComparer object.
+
+ The IComparer object to use.
+ Self.
+
+
+
+ Flag the constraint to use the supplied IComparer object.
+
+ The IComparer object to use.
+ Self.
+
+
+
+ Flag the constraint to use the supplied IComparer object.
+
+ The IComparer object to use.
+ Self.
+
+
+
+ Flag the constraint to use the supplied Comparison object.
+
+ The IComparer object to use.
+ Self.
+
+
+
+ Flag the constraint to use the supplied IEqualityComparer object.
+
+ The IComparer object to use.
+ Self.
+
+
+
+ Flag the constraint to use the supplied IEqualityComparer object.
+
+ The IComparer object to use.
+ Self.
+
+
+
+ Test whether the constraint is satisfied by a given value
+
+ The value to be tested
+ True for success, false for failure
+
+
+
+ Write a failure message. Overridden to provide custom
+ failure messages for EqualConstraint.
+
+ The MessageWriter to write to
+
+
+
+ Write description of this constraint
+
+ The MessageWriter to write to
+
+
+
+ Display the failure information for two collections that did not match.
+
+ The MessageWriter on which to display
+ The expected collection.
+ The actual collection
+ The depth of this failure in a set of nested collections
+
+
+
+ Displays a single line showing the types and sizes of the expected
+ and actual collections or arrays. If both are identical, the value is
+ only shown once.
+
+ The MessageWriter on which to display
+ The expected collection or array
+ The actual collection or array
+ The indentation level for the message line
+
+
+
+ Displays a single line showing the point in the expected and actual
+ arrays at which the comparison failed. If the arrays have different
+ structures or dimensions, both values are shown.
+
+ The MessageWriter on which to display
+ The expected array
+ The actual array
+ Index of the failure point in the underlying collections
+ The indentation level for the message line
+
+
+
+ Flag the constraint to ignore case and return self.
+
+
+
+
+ Flag the constraint to suppress string clipping
+ and return self.
+
+
+
+
+ Flag the constraint to compare arrays as collections
+ and return self.
+
+
+
+
+ Switches the .Within() modifier to interpret its tolerance as
+ a distance in representable values (see remarks).
+
+ Self.
+
+ Ulp stands for "unit in the last place" and describes the minimum
+ amount a given value can change. For any integers, an ulp is 1 whole
+ digit. For floating point values, the accuracy of which is better
+ for smaller numbers and worse for larger numbers, an ulp depends
+ on the size of the number. Using ulps for comparison of floating
+ point results instead of fixed tolerances is safer because it will
+ automatically compensate for the added inaccuracy of larger numbers.
+
+
+
+
+ Switches the .Within() modifier to interpret its tolerance as
+ a percentage that the actual values is allowed to deviate from
+ the expected value.
+
+ Self
+
+
+
+ Causes the tolerance to be interpreted as a TimeSpan in days.
+
+ Self
+
+
+
+ Causes the tolerance to be interpreted as a TimeSpan in hours.
+
+ Self
+
+
+
+ Causes the tolerance to be interpreted as a TimeSpan in minutes.
+
+ Self
+
+
+
+ Causes the tolerance to be interpreted as a TimeSpan in seconds.
+
+ Self
+
+
+
+ Causes the tolerance to be interpreted as a TimeSpan in milliseconds.
+
+ Self
+
+
+
+ Causes the tolerance to be interpreted as a TimeSpan in clock ticks.
+
+ Self
+
+
+
+ SameAsConstraint tests whether an object is identical to
+ the object passed to its constructor
+
+
+
+
+ Initializes a new instance of the class.
+
+ The expected object.
+
+
+
+ Test whether the constraint is satisfied by a given value
+
+ The value to be tested
+ True for success, false for failure
+
+
+
+ Write the constraint description to a MessageWriter
+
+ The writer on which the description is displayed
+
+
+
+ StringConstraint is the abstract base for constraints
+ that operate on strings. It supports the IgnoreCase
+ modifier for string operations.
+
+
+
+
+ The expected value
+
+
+
+
+ Indicates whether tests should be case-insensitive
+
+
+
+
+ Constructs a StringConstraint given an expected value
+
+ The expected value
+
+
+
+ Modify the constraint to ignore case in matching.
+
+
+
+
+ EmptyStringConstraint tests whether a string is empty.
+
+
+
+
+ Test whether the constraint is satisfied by a given value
+
+ The value to be tested
+ True for success, false for failure
+
+
+
+ Write the constraint description to a MessageWriter
+
+ The writer on which the description is displayed
+
+
+
+ NullEmptyStringConstraint tests whether a string is either null or empty.
+
+
+
+
+ Constructs a new NullOrEmptyStringConstraint
+
+
+
+
+ Test whether the constraint is satisfied by a given value
+
+ The value to be tested
+ True for success, false for failure
+
+
+
+ Write the constraint description to a MessageWriter
+
+ The writer on which the description is displayed
+
+
+
+ SubstringConstraint can test whether a string contains
+ the expected substring.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The expected.
+
+
+
+ Test whether the constraint is satisfied by a given value
+
+ The value to be tested
+ True for success, false for failure
+
+
+
+ Write the constraint description to a MessageWriter
+
+ The writer on which the description is displayed
+
+
+
+ StartsWithConstraint can test whether a string starts
+ with an expected substring.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The expected string
+
+
+
+ Test whether the constraint is matched by the actual value.
+ This is a template method, which calls the IsMatch method
+ of the derived class.
+
+
+
+
+
+
+ Write the constraint description to a MessageWriter
+
+ The writer on which the description is displayed
+
+
+
+ EndsWithConstraint can test whether a string ends
+ with an expected substring.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The expected string
+
+
+
+ Test whether the constraint is matched by the actual value.
+ This is a template method, which calls the IsMatch method
+ of the derived class.
+
+
+
+
+
+
+ Write the constraint description to a MessageWriter
+
+ The writer on which the description is displayed
+
+
+
+ RegexConstraint can test whether a string matches
+ the pattern provided.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The pattern.
+
+
+
+ Test whether the constraint is satisfied by a given value
+
+ The value to be tested
+ True for success, false for failure
+
+
+
+ Write the constraint description to a MessageWriter
+
+ The writer on which the description is displayed
+
+
+
+ TypeConstraint is the abstract base for constraints
+ that take a Type as their expected value.
+
+
+
+
+ The expected Type used by the constraint
+
+
+
+
+ Construct a TypeConstraint for a given Type
+
+
+
+
+
+ Write the actual value for a failing constraint test to a
+ MessageWriter. TypeConstraints override this method to write
+ the name of the type.
+
+ The writer on which the actual value is displayed
+
+
+
+ ExactTypeConstraint is used to test that an object
+ is of the exact type provided in the constructor
+
+
+
+
+ Construct an ExactTypeConstraint for a given Type
+
+ The expected Type.
+
+
+
+ Test that an object is of the exact type specified
+
+ The actual value.
+ True if the tested object is of the exact type provided, otherwise false.
+
+
+
+ Write the description of this constraint to a MessageWriter
+
+ The MessageWriter to use
+
+
+
+ InstanceOfTypeConstraint is used to test that an object
+ is of the same type provided or derived from it.
+
+
+
+
+ Construct an InstanceOfTypeConstraint for the type provided
+
+ The expected Type
+
+
+
+ Test whether an object is of the specified type or a derived type
+
+ The object to be tested
+ True if the object is of the provided type or derives from it, otherwise false.
+
+
+
+ Write a description of this constraint to a MessageWriter
+
+ The MessageWriter to use
+
+
+
+ AssignableFromConstraint is used to test that an object
+ can be assigned from a given Type.
+
+
+
+
+ Construct an AssignableFromConstraint for the type provided
+
+
+
+
+
+ Test whether an object can be assigned from the specified type
+
+ The object to be tested
+ True if the object can be assigned a value of the expected Type, otherwise false.
+
+
+
+ Write a description of this constraint to a MessageWriter
+
+ The MessageWriter to use
+
+
+
+ AssignableToConstraint is used to test that an object
+ can be assigned to a given Type.
+
+
+
+
+ Construct an AssignableToConstraint for the type provided
+
+
+
+
+
+ Test whether an object can be assigned to the specified type
+
+ The object to be tested
+ True if the object can be assigned a value of the expected Type, otherwise false.
+
+
+
+ Write a description of this constraint to a MessageWriter
+
+ The MessageWriter to use
+
+
+
+ ContainsConstraint tests a whether a string contains a substring
+ or a collection contains an object. It postpones the decision of
+ which test to use until the type of the actual argument is known.
+ This allows testing whether a string is contained in a collection
+ or as a substring of another string using the same syntax.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The expected.
+
+
+
+ Test whether the constraint is satisfied by a given value
+
+ The value to be tested
+ True for success, false for failure
+
+
+
+ Write the constraint description to a MessageWriter
+
+ The writer on which the description is displayed
+
+
+
+ Flag the constraint to ignore case and return self.
+
+
+
+
+ PropertyExistsConstraint tests that a named property
+ exists on the object provided through Match.
+
+ Originally, PropertyConstraint provided this feature
+ in addition to making optional tests on the vaue
+ of the property. The two constraints are now separate.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The name of the property.
+
+
+
+ Test whether the property exists for a given object
+
+ The object to be tested
+ True for success, false for failure
+
+
+
+ Write the constraint description to a MessageWriter
+
+ The writer on which the description is displayed
+
+
+
+ Write the actual value for a failing constraint test to a
+ MessageWriter.
+
+ The writer on which the actual value is displayed
+
+
+
+ Returns the string representation of the constraint.
+
+
+
+
+
+ PropertyConstraint extracts a named property and uses
+ its value as the actual value for a chained constraint.
+
+
+
+
+ Abstract base class used for prefixes
+
+
+
+
+ The base constraint
+
+
+
+
+ Construct given a base constraint
+
+
+
+
+
+ Initializes a new instance of the class.
+
+ The name.
+ The constraint to apply to the property.
+
+
+
+ Test whether the constraint is satisfied by a given value
+
+ The value to be tested
+ True for success, false for failure
+
+
+
+ Write the constraint description to a MessageWriter
+
+ The writer on which the description is displayed
+
+
+
+ Write the actual value for a failing constraint test to a
+ MessageWriter. The default implementation simply writes
+ the raw value of actual, leaving it to the writer to
+ perform any formatting.
+
+ The writer on which the actual value is displayed
+
+
+
+ Returns the string representation of the constraint.
+
+
+
+
+
+ NotConstraint negates the effect of some other constraint
+
+
+
+
+ Initializes a new instance of the class.
+
+ The base constraint to be negated.
+
+
+
+ Test whether the constraint is satisfied by a given value
+
+ The value to be tested
+ True for if the base constraint fails, false if it succeeds
+
+
+
+ Write the constraint description to a MessageWriter
+
+ The writer on which the description is displayed
+
+
+
+ Write the actual value for a failing constraint test to a MessageWriter.
+
+ The writer on which the actual value is displayed
+
+
+
+ AllItemsConstraint applies another constraint to each
+ item in a collection, succeeding if they all succeed.
+
+
+
+
+ Construct an AllItemsConstraint on top of an existing constraint
+
+
+
+
+
+ Apply the item constraint to each item in the collection,
+ failing if any item fails.
+
+
+
+
+
+
+ Write a description of this constraint to a MessageWriter
+
+
+
+
+
+ SomeItemsConstraint applies another constraint to each
+ item in a collection, succeeding if any of them succeeds.
+
+
+
+
+ Construct a SomeItemsConstraint on top of an existing constraint
+
+
+
+
+
+ Apply the item constraint to each item in the collection,
+ succeeding if any item succeeds.
+
+
+
+
+
+
+ Write a description of this constraint to a MessageWriter
+
+
+
+
+
+ NoItemConstraint applies another constraint to each
+ item in a collection, failing if any of them succeeds.
+
+
+
+
+ Construct a SomeItemsConstraint on top of an existing constraint
+
+
+
+
+
+ Apply the item constraint to each item in the collection,
+ failing if any item fails.
+
+
+
+
+
+
+ Write a description of this constraint to a MessageWriter
+
+
+
+
+
+ The Numerics class contains common operations on numeric values.
+
+
+
+
+ Checks the type of the object, returning true if
+ the object is a numeric type.
+
+ The object to check
+ true if the object is a numeric type
+
+
+
+ Checks the type of the object, returning true if
+ the object is a floating point numeric type.
+
+ The object to check
+ true if the object is a floating point numeric type
+
+
+
+ Checks the type of the object, returning true if
+ the object is a fixed point numeric type.
+
+ The object to check
+ true if the object is a fixed point numeric type
+
+
+
+ Test two numeric values for equality, performing the usual numeric
+ conversions and using a provided or default tolerance. If the tolerance
+ provided is Empty, this method may set it to a default tolerance.
+
+ The expected value
+ The actual value
+ A reference to the tolerance in effect
+ True if the values are equal
+
+
+
+ Compare two numeric values, performing the usual numeric conversions.
+
+ The expected value
+ The actual value
+ The relationship of the values to each other
+
+
+
+ MessageWriter is the abstract base for classes that write
+ constraint descriptions and messages in some form. The
+ class has separate methods for writing various components
+ of a message, allowing implementations to tailor the
+ presentation as needed.
+
+
+
+
+ Construct a MessageWriter given a culture
+
+
+
+
+ Method to write single line message with optional args, usually
+ written to precede the general failure message.
+
+ The message to be written
+ Any arguments used in formatting the message
+
+
+
+ Method to write single line message with optional args, usually
+ written to precede the general failure message, at a givel
+ indentation level.
+
+ The indentation level of the message
+ The message to be written
+ Any arguments used in formatting the message
+
+
+
+ Display Expected and Actual lines for a constraint. This
+ is called by MessageWriter's default implementation of
+ WriteMessageTo and provides the generic two-line display.
+
+ The constraint that failed
+
+
+
+ Display Expected and Actual lines for given values. This
+ method may be called by constraints that need more control over
+ the display of actual and expected values than is provided
+ by the default implementation.
+
+ The expected value
+ The actual value causing the failure
+
+
+
+ Display Expected and Actual lines for given values, including
+ a tolerance value on the Expected line.
+
+ The expected value
+ The actual value causing the failure
+ The tolerance within which the test was made
+
+
+
+ Display the expected and actual string values on separate lines.
+ If the mismatch parameter is >=0, an additional line is displayed
+ line containing a caret that points to the mismatch point.
+
+ The expected string value
+ The actual string value
+ The point at which the strings don't match or -1
+ If true, case is ignored in locating the point where the strings differ
+ If true, the strings should be clipped to fit the line
+
+
+
+ Writes the text for a connector.
+
+ The connector.
+
+
+
+ Writes the text for a predicate.
+
+ The predicate.
+
+
+
+ Writes the text for an expected value.
+
+ The expected value.
+
+
+
+ Writes the text for a modifier
+
+ The modifier.
+
+
+
+ Writes the text for an actual value.
+
+ The actual value.
+
+
+
+ Writes the text for a generalized value.
+
+ The value.
+
+
+
+ Writes the text for a collection value,
+ starting at a particular point, to a max length
+
+ The collection containing elements to write.
+ The starting point of the elements to write
+ The maximum number of elements to write
+
+
+
+ Abstract method to get the max line length
+
+
+
+
+ Static methods used in creating messages
+
+
+
+
+ Static string used when strings are clipped
+
+
+
+
+ Returns the representation of a type as used in NUnitLite.
+ This is the same as Type.ToString() except for arrays,
+ which are displayed with their declared sizes.
+
+
+
+
+
+
+ Converts any control characters in a string
+ to their escaped representation.
+
+ The string to be converted
+ The converted string
+
+
+
+ Return the a string representation for a set of indices into an array
+
+ Array of indices for which a string is needed
+
+
+
+ Get an array of indices representing the point in a collection or
+ array corresponding to a single int index into the collection.
+
+ The collection to which the indices apply
+ Index in the collection
+ Array of indices
+
+
+
+ Clip a string to a given length, starting at a particular offset, returning the clipped
+ string with ellipses representing the removed parts
+
+ The string to be clipped
+ The maximum permitted length of the result string
+ The point at which to start clipping
+ The clipped string
+
+
+
+ Clip the expected and actual strings in a coordinated fashion,
+ so that they may be displayed together.
+
+
+
+
+
+
+
+
+ Shows the position two strings start to differ. Comparison
+ starts at the start index.
+
+ The expected string
+ The actual string
+ The index in the strings at which comparison should start
+ Boolean indicating whether case should be ignored
+ -1 if no mismatch found, or the index where mismatch found
+
+
+
+ PathConstraint serves as the abstract base of constraints
+ that operate on paths and provides several helper methods.
+
+
+
+
+ The expected path used in the constraint
+
+
+
+
+ Flag indicating whether a caseInsensitive comparison should be made
+
+
+
+
+ Construct a PathConstraint for a give expected path
+
+ The expected path
+
+
+
+ Returns the string representation of this constraint
+
+
+
+
+ Canonicalize the provided path
+
+
+ The path in standardized form
+
+
+
+ Test whether two paths are the same
+
+ The first path
+ The second path
+
+
+
+
+ Test whether one path is the same as or under another path
+
+ The first path - supposed to be the parent path
+ The second path - supposed to be the child path
+
+
+
+
+ Modifies the current instance to be case-insensitve
+ and returns it.
+
+
+
+
+ Modifies the current instance to be case-sensitve
+ and returns it.
+
+
+
+
+ Summary description for SamePathConstraint.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The expected path
+
+
+
+ Test whether the constraint is satisfied by a given value
+
+ The value to be tested
+ True for success, false for failure
+
+
+
+ Write the constraint description to a MessageWriter
+
+ The writer on which the description is displayed
+
+
+
+ SamePathOrUnderConstraint tests that one path is under another
+
+
+
+
+ Initializes a new instance of the class.
+
+ The expected path
+
+
+
+ Test whether the constraint is satisfied by a given value
+
+ The value to be tested
+ True for success, false for failure
+
+
+
+ Write the constraint description to a MessageWriter
+
+ The writer on which the description is displayed
+
+
+
+ EmptyDirectoryConstraint is used to test that a directory is empty
+
+
+
+
+ Test whether the constraint is satisfied by a given value
+
+ The value to be tested
+ True for success, false for failure
+
+
+
+ Write the constraint description to a MessageWriter
+
+ The writer on which the description is displayed
+
+
+
+ Write the actual value for a failing constraint test to a
+ MessageWriter. The default implementation simply writes
+ the raw value of actual, leaving it to the writer to
+ perform any formatting.
+
+ The writer on which the actual value is displayed
+
+
+
+ SubDirectoryConstraint is used to test that one directory is a subdirectory of another.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The dir info.
+
+
+
+ Test whether the constraint is satisfied by a given value
+
+ The value to be tested
+ True for success, false for failure
+
+
+
+ Write the constraint description to a MessageWriter
+
+ The writer on which the description is displayed
+
+
+
+ Builds a list of DirectoryInfo objects, recursing where necessary
+
+ directory to recurse
+ list of DirectoryInfo objects from the top level
+
+
+
+ private method to determine whether a directory is within the path
+
+ top-level directory to search
+ directory to search for
+ true if found, false if not
+
+
+
+ Method to compare two DirectoryInfo objects
+
+ first directory to compare
+ second directory to compare
+ true if equivalent, false if not
+
+
+
+ ThrowsConstraint is used to test the exception thrown by
+ a delegate by applying a constraint to it.
+
+
+
+
+ Initializes a new instance of the class,
+ using a constraint to be applied to the exception.
+
+ A constraint to apply to the caught exception.
+
+
+
+ Executes the code of the delegate and captures any exception.
+ If a non-null base constraint was provided, it applies that
+ constraint to the exception.
+
+ A delegate representing the code to be tested
+ True if an exception is thrown and the constraint succeeds, otherwise false
+
+
+
+ Converts an ActualValueDelegate to a TestDelegate
+ before calling the primary overload.
+
+
+
+
+
+
+ Write the constraint description to a MessageWriter
+
+ The writer on which the description is displayed
+
+
+
+ Write the actual value for a failing constraint test to a
+ MessageWriter. The default implementation simply writes
+ the raw value of actual, leaving it to the writer to
+ perform any formatting.
+
+ The writer on which the actual value is displayed
+
+
+
+ Returns the string representation of this constraint
+
+
+
+
+ Get the actual exception thrown - used by Assert.Throws.
+
+
+
+
+ ThrowsNothingConstraint tests that a delegate does not
+ throw an exception.
+
+
+
+
+ Test whether the constraint is satisfied by a given value
+
+ The value to be tested
+ True if no exception is thrown, otherwise false
+
+
+
+ Write the constraint description to a MessageWriter
+
+ The writer on which the description is displayed
+
+
+
+ Write the actual value for a failing constraint test to a
+ MessageWriter. The default implementation simply writes
+ the raw value of actual, leaving it to the writer to
+ perform any formatting.
+
+ The writer on which the actual value is displayed
+
+
+
+ RangeConstraint tests whethe two values are within a
+ specified range.
+
+
+
+
+ Initializes a new instance of the class.
+
+ From.
+ To.
+
+
+
+ Test whether the constraint is satisfied by a given value
+
+ The value to be tested
+ True for success, false for failure
+
+
+
+ Write the constraint description to a MessageWriter
+
+ The writer on which the description is displayed
+
+
+
+ Modifies the constraint to use an IComparer and returns self.
+
+
+
+
+ Modifies the constraint to use an IComparer<T> and returns self.
+
+
+
+
+ Modifies the constraint to use a Comparison<T> and returns self.
+
+
+
+
+ Helper class with properties and methods that supply
+ a number of constraints used in Asserts.
+
+
+
+
+ Returns a new PropertyConstraintExpression, which will either
+ test for the existence of the named property on the object
+ being tested or apply any following constraint to that property.
+
+
+
+
+ Returns a new AttributeConstraint checking for the
+ presence of a particular attribute on an object.
+
+
+
+
+ Returns a new AttributeConstraint checking for the
+ presence of a particular attribute on an object.
+
+
+
+
+ Returns a constraint that tests two items for equality
+
+
+
+
+ Returns a constraint that tests that two references are the same object
+
+
+
+
+ Returns a constraint that tests whether the
+ actual value is greater than the suppled argument
+
+
+
+
+ Returns a constraint that tests whether the
+ actual value is greater than or equal to the suppled argument
+
+
+
+
+ Returns a constraint that tests whether the
+ actual value is greater than or equal to the suppled argument
+
+
+
+
+ Returns a constraint that tests whether the
+ actual value is less than the suppled argument
+
+
+
+
+ Returns a constraint that tests whether the
+ actual value is less than or equal to the suppled argument
+
+
+
+
+ Returns a constraint that tests whether the
+ actual value is less than or equal to the suppled argument
+
+
+
+
+ Returns a constraint that tests whether the actual
+ value is of the exact type supplied as an argument.
+
+
+
+
+ Returns a constraint that tests whether the actual
+ value is of the exact type supplied as an argument.
+
+
+
+
+ Returns a constraint that tests whether the actual value
+ is of the type supplied as an argument or a derived type.
+
+
+
+
+ Returns a constraint that tests whether the actual value
+ is of the type supplied as an argument or a derived type.
+
+
+
+
+ Returns a constraint that tests whether the actual value
+ is of the type supplied as an argument or a derived type.
+
+
+
+
+ Returns a constraint that tests whether the actual value
+ is of the type supplied as an argument or a derived type.
+
+
+
+
+ Returns a constraint that tests whether the actual value
+ is assignable from the type supplied as an argument.
+
+
+
+
+ Returns a constraint that tests whether the actual value
+ is assignable from the type supplied as an argument.
+
+
+
+
+ Returns a constraint that tests whether the actual value
+ is assignable from the type supplied as an argument.
+
+
+
+
+ Returns a constraint that tests whether the actual value
+ is assignable from the type supplied as an argument.
+
+
+
+
+ Returns a constraint that tests whether the actual value
+ is a collection containing the same elements as the
+ collection supplied as an argument.
+
+
+
+
+ Returns a constraint that tests whether the actual value
+ is a subset of the collection supplied as an argument.
+
+
+
+
+ Returns a new CollectionContainsConstraint checking for the
+ presence of a particular object in the collection.
+
+
+
+
+ Returns a new CollectionContainsConstraint checking for the
+ presence of a particular object in the collection.
+
+
+
+
+ Returns a new ContainsConstraint. This constraint
+ will, in turn, make use of the appropriate second-level
+ constraint, depending on the type of the actual argument.
+ This overload is only used if the item sought is a string,
+ since any other type implies that we are looking for a
+ collection member.
+
+
+
+
+ Returns a constraint that succeeds if the actual
+ value contains the substring supplied as an argument.
+
+
+
+
+ Returns a constraint that succeeds if the actual
+ value contains the substring supplied as an argument.
+
+
+
+
+ Returns a constraint that fails if the actual
+ value contains the substring supplied as an argument.
+
+
+
+
+ Returns a constraint that succeeds if the actual
+ value starts with the substring supplied as an argument.
+
+
+
+
+ Returns a constraint that succeeds if the actual
+ value starts with the substring supplied as an argument.
+
+
+
+
+ Returns a constraint that fails if the actual
+ value starts with the substring supplied as an argument.
+
+
+
+
+ Returns a constraint that succeeds if the actual
+ value ends with the substring supplied as an argument.
+
+
+
+
+ Returns a constraint that succeeds if the actual
+ value ends with the substring supplied as an argument.
+
+
+
+
+ Returns a constraint that fails if the actual
+ value ends with the substring supplied as an argument.
+
+
+
+
+ Returns a constraint that succeeds if the actual
+ value matches the Regex pattern supplied as an argument.
+
+
+
+
+ Returns a constraint that succeeds if the actual
+ value matches the Regex pattern supplied as an argument.
+
+
+
+
+ Returns a constraint that fails if the actual
+ value matches the pattern supplied as an argument.
+
+
+
+
+ Returns a constraint that tests whether the path provided
+ is the same as an expected path after canonicalization.
+
+
+
+
+ Returns a constraint that tests whether the path provided
+ is the same path or under an expected path after canonicalization.
+
+
+
+
+ Returns a constraint that tests whether the actual value falls
+ within a specified range.
+
+
+
+
+ Returns a ConstraintExpression that negates any
+ following constraint.
+
+
+
+
+ Returns a ConstraintExpression that negates any
+ following constraint.
+
+
+
+
+ Returns a ConstraintExpression, which will apply
+ the following constraint to all members of a collection,
+ succeeding if all of them succeed.
+
+
+
+
+ Returns a ConstraintExpression, which will apply
+ the following constraint to all members of a collection,
+ succeeding if at least one of them succeeds.
+
+
+
+
+ Returns a ConstraintExpression, which will apply
+ the following constraint to all members of a collection,
+ succeeding if all of them fail.
+
+
+
+
+ Returns a new ConstraintExpression, which will apply the following
+ constraint to the Length property of the object being tested.
+
+
+
+
+ Returns a new ConstraintExpression, which will apply the following
+ constraint to the Count property of the object being tested.
+
+
+
+
+ Returns a new ConstraintExpression, which will apply the following
+ constraint to the Message property of the object being tested.
+
+
+
+
+ Returns a new ConstraintExpression, which will apply the following
+ constraint to the InnerException property of the object being tested.
+
+
+
+
+ Returns a constraint that tests for null
+
+
+
+
+ Returns a constraint that tests for True
+
+
+
+
+ Returns a constraint that tests for False
+
+
+
+
+ Returns a constraint that tests for NaN
+
+
+
+
+ Returns a constraint that tests for empty
+
+
+
+
+ Returns a constraint that tests whether a collection
+ contains all unique items.
+
+
+
+
+ Returns a constraint that tests whether an object graph is serializable in binary format.
+
+
+
+
+ Returns a constraint that tests whether an object graph is serializable in xml format.
+
+
+
+
+ Returns a constraint that tests whether a collection is ordered
+
+
+
+
+ The ConstraintOperator class is used internally by a
+ ConstraintBuilder to represent an operator that
+ modifies or combines constraints.
+
+ Constraint operators use left and right precedence
+ values to determine whether the top operator on the
+ stack should be reduced before pushing a new operator.
+
+
+
+
+ The precedence value used when the operator
+ is about to be pushed to the stack.
+
+
+
+
+ The precedence value used when the operator
+ is on the top of the stack.
+
+
+
+
+ Reduce produces a constraint from the operator and
+ any arguments. It takes the arguments from the constraint
+ stack and pushes the resulting constraint on it.
+
+
+
+
+
+ The syntax element preceding this operator
+
+
+
+
+ The syntax element folowing this operator
+
+
+
+
+ The precedence value used when the operator
+ is about to be pushed to the stack.
+
+
+
+
+ The precedence value used when the operator
+ is on the top of the stack.
+
+
+
+
+ PrefixOperator takes a single constraint and modifies
+ it's action in some way.
+
+
+
+
+ Reduce produces a constraint from the operator and
+ any arguments. It takes the arguments from the constraint
+ stack and pushes the resulting constraint on it.
+
+
+
+
+
+ Returns the constraint created by applying this
+ prefix to another constraint.
+
+
+
+
+
+
+ Negates the test of the constraint it wraps.
+
+
+
+
+ Constructs a new NotOperator
+
+
+
+
+ Returns a NotConstraint applied to its argument.
+
+
+
+
+ Abstract base for operators that indicate how to
+ apply a constraint to items in a collection.
+
+
+
+
+ Constructs a CollectionOperator
+
+
+
+
+ Represents a constraint that succeeds if all the
+ members of a collection match a base constraint.
+
+
+
+
+ Returns a constraint that will apply the argument
+ to the members of a collection, succeeding if
+ they all succeed.
+
+
+
+
+ Represents a constraint that succeeds if any of the
+ members of a collection match a base constraint.
+
+
+
+
+ Returns a constraint that will apply the argument
+ to the members of a collection, succeeding if
+ any of them succeed.
+
+
+
+
+ Represents a constraint that succeeds if none of the
+ members of a collection match a base constraint.
+
+
+
+
+ Returns a constraint that will apply the argument
+ to the members of a collection, succeeding if
+ none of them succeed.
+
+
+
+
+ Represents a constraint that simply wraps the
+ constraint provided as an argument, without any
+ further functionality, but which modifes the
+ order of evaluation because of its precedence.
+
+
+
+
+ Constructor for the WithOperator
+
+
+
+
+ Returns a constraint that wraps its argument
+
+
+
+
+ Abstract base class for operators that are able to reduce to a
+ constraint whether or not another syntactic element follows.
+
+
+
+
+ Operator used to test for the presence of a named Property
+ on an object and optionally apply further tests to the
+ value of that property.
+
+
+
+
+ Constructs a PropOperator for a particular named property
+
+
+
+
+ Reduce produces a constraint from the operator and
+ any arguments. It takes the arguments from the constraint
+ stack and pushes the resulting constraint on it.
+
+
+
+
+
+ Gets the name of the property to which the operator applies
+
+
+
+
+ Operator that tests for the presence of a particular attribute
+ on a type and optionally applies further tests to the attribute.
+
+
+
+
+ Construct an AttributeOperator for a particular Type
+
+ The Type of attribute tested
+
+
+
+ Reduce produces a constraint from the operator and
+ any arguments. It takes the arguments from the constraint
+ stack and pushes the resulting constraint on it.
+
+
+
+
+ Operator that tests that an exception is thrown and
+ optionally applies further tests to the exception.
+
+
+
+
+ Construct a ThrowsOperator
+
+
+
+
+ Reduce produces a constraint from the operator and
+ any arguments. It takes the arguments from the constraint
+ stack and pushes the resulting constraint on it.
+
+
+
+
+ Abstract base class for all binary operators
+
+
+
+
+ Reduce produces a constraint from the operator and
+ any arguments. It takes the arguments from the constraint
+ stack and pushes the resulting constraint on it.
+
+
+
+
+
+ Abstract method that produces a constraint by applying
+ the operator to its left and right constraint arguments.
+
+
+
+
+ Gets the left precedence of the operator
+
+
+
+
+ Gets the right precedence of the operator
+
+
+
+
+ Operator that requires both it's arguments to succeed
+
+
+
+
+ Construct an AndOperator
+
+
+
+
+ Apply the operator to produce an AndConstraint
+
+
+
+
+ Operator that requires at least one of it's arguments to succeed
+
+
+
+
+ Construct an OrOperator
+
+
+
+
+ Apply the operator to produce an OrConstraint
+
+
+
+
+ ConstraintExpression represents a compound constraint in the
+ process of being constructed from a series of syntactic elements.
+
+ Individual elements are appended to the expression as they are
+ reognized. Once an actual Constraint is appended, the expression
+ returns a resolvable Constraint.
+
+
+
+
+ ConstraintExpressionBase is the abstract base class for the
+ generated ConstraintExpression class, which represents a
+ compound constraint in the process of being constructed
+ from a series of syntactic elements.
+
+ NOTE: ConstraintExpressionBase is aware of some of its
+ derived classes, which is an apparent violation of
+ encapsulation. Ideally, these classes would be a
+ single class, but they must be separated in order to
+ allow parts to be generated under .NET 1.x and to
+ provide proper user feedback in syntactically
+ aware IDEs.
+
+
+
+
+ The ConstraintBuilder holding the elements recognized so far
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the
+ class passing in a ConstraintBuilder, which may be pre-populated.
+
+ The builder.
+
+
+
+ Returns a string representation of the expression as it
+ currently stands. This should only be used for testing,
+ since it has the side-effect of resolving the expression.
+
+
+
+
+
+ Appends an operator to the expression and returns the
+ resulting expression itself.
+
+
+
+
+ Appends a self-resolving operator to the expression and
+ returns a new ResolvableConstraintExpression.
+
+
+
+
+ Appends a constraint to the expression and returns that
+ constraint, which is associated with the current state
+ of the expression being built.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the
+ class passing in a ConstraintBuilder, which may be pre-populated.
+
+ The builder.
+
+
+
+ Returns a new PropertyConstraintExpression, which will either
+ test for the existence of the named property on the object
+ being tested or apply any following constraint to that property.
+
+
+
+
+ Returns a new AttributeConstraint checking for the
+ presence of a particular attribute on an object.
+
+
+
+
+ Returns a new AttributeConstraint checking for the
+ presence of a particular attribute on an object.
+
+
+
+
+ Returns the constraint provided as an argument - used to allow custom
+ custom constraints to easily participate in the syntax.
+
+
+
+
+ Returns the constraint provided as an argument - used to allow custom
+ custom constraints to easily participate in the syntax.
+
+
+
+
+ Returns a constraint that tests two items for equality
+
+
+
+
+ Returns a constraint that tests that two references are the same object
+
+
+
+
+ Returns a constraint that tests whether the
+ actual value is greater than the suppled argument
+
+
+
+
+ Returns a constraint that tests whether the
+ actual value is greater than or equal to the suppled argument
+
+
+
+
+ Returns a constraint that tests whether the
+ actual value is greater than or equal to the suppled argument
+
+
+
+
+ Returns a constraint that tests whether the
+ actual value is less than the suppled argument
+
+
+
+
+ Returns a constraint that tests whether the
+ actual value is less than or equal to the suppled argument
+
+
+
+
+ Returns a constraint that tests whether the
+ actual value is less than or equal to the suppled argument
+
+
+
+
+ Returns a constraint that tests whether the actual
+ value is of the exact type supplied as an argument.
+
+
+
+
+ Returns a constraint that tests whether the actual
+ value is of the exact type supplied as an argument.
+
+
+
+
+ Returns a constraint that tests whether the actual value
+ is of the type supplied as an argument or a derived type.
+
+
+
+
+ Returns a constraint that tests whether the actual value
+ is of the type supplied as an argument or a derived type.
+
+
+
+
+ Returns a constraint that tests whether the actual value
+ is of the type supplied as an argument or a derived type.
+
+
+
+
+ Returns a constraint that tests whether the actual value
+ is of the type supplied as an argument or a derived type.
+
+
+
+
+ Returns a constraint that tests whether the actual value
+ is assignable from the type supplied as an argument.
+
+
+
+
+ Returns a constraint that tests whether the actual value
+ is assignable from the type supplied as an argument.
+
+
+
+
+ Returns a constraint that tests whether the actual value
+ is assignable from the type supplied as an argument.
+
+
+
+
+ Returns a constraint that tests whether the actual value
+ is assignable from the type supplied as an argument.
+
+
+
+
+ Returns a constraint that tests whether the actual value
+ is a collection containing the same elements as the
+ collection supplied as an argument.
+
+
+
+
+ Returns a constraint that tests whether the actual value
+ is a subset of the collection supplied as an argument.
+
+
+
+
+ Returns a new CollectionContainsConstraint checking for the
+ presence of a particular object in the collection.
+
+
+
+
+ Returns a new CollectionContainsConstraint checking for the
+ presence of a particular object in the collection.
+
+
+
+
+ Returns a new ContainsConstraint. This constraint
+ will, in turn, make use of the appropriate second-level
+ constraint, depending on the type of the actual argument.
+ This overload is only used if the item sought is a string,
+ since any other type implies that we are looking for a
+ collection member.
+
+
+
+
+ Returns a constraint that succeeds if the actual
+ value contains the substring supplied as an argument.
+
+
+
+
+ Returns a constraint that succeeds if the actual
+ value contains the substring supplied as an argument.
+
+
+
+
+ Returns a constraint that succeeds if the actual
+ value starts with the substring supplied as an argument.
+
+
+
+
+ Returns a constraint that succeeds if the actual
+ value starts with the substring supplied as an argument.
+
+
+
+
+ Returns a constraint that succeeds if the actual
+ value ends with the substring supplied as an argument.
+
+
+
+
+ Returns a constraint that succeeds if the actual
+ value ends with the substring supplied as an argument.
+
+
+
+
+ Returns a constraint that succeeds if the actual
+ value matches the Regex pattern supplied as an argument.
+
+
+
+
+ Returns a constraint that succeeds if the actual
+ value matches the Regex pattern supplied as an argument.
+
+
+
+
+ Returns a constraint that tests whether the path provided
+ is the same as an expected path after canonicalization.
+
+
+
+
+ Returns a constraint that tests whether the path provided
+ is the same path or under an expected path after canonicalization.
+
+
+
+
+ Returns a constraint that tests whether the actual value falls
+ within a specified range.
+
+
+
+
+ Returns a ConstraintExpression that negates any
+ following constraint.
+
+
+
+
+ Returns a ConstraintExpression that negates any
+ following constraint.
+
+
+
+
+ Returns a ConstraintExpression, which will apply
+ the following constraint to all members of a collection,
+ succeeding if all of them succeed.
+
+
+
+
+ Returns a ConstraintExpression, which will apply
+ the following constraint to all members of a collection,
+ succeeding if at least one of them succeeds.
+
+
+
+
+ Returns a ConstraintExpression, which will apply
+ the following constraint to all members of a collection,
+ succeeding if all of them fail.
+
+
+
+
+ Returns a new ConstraintExpression, which will apply the following
+ constraint to the Length property of the object being tested.
+
+
+
+
+ Returns a new ConstraintExpression, which will apply the following
+ constraint to the Count property of the object being tested.
+
+
+
+
+ Returns a new ConstraintExpression, which will apply the following
+ constraint to the Message property of the object being tested.
+
+
+
+
+ Returns a new ConstraintExpression, which will apply the following
+ constraint to the InnerException property of the object being tested.
+
+
+
+
+ With is currently a NOP - reserved for future use.
+
+
+
+
+ Returns a constraint that tests for null
+
+
+
+
+ Returns a constraint that tests for True
+
+
+
+
+ Returns a constraint that tests for False
+
+
+
+
+ Returns a constraint that tests for NaN
+
+
+
+
+ Returns a constraint that tests for empty
+
+
+
+
+ Returns a constraint that tests whether a collection
+ contains all unique items.
+
+
+
+
+ Returns a constraint that tests whether an object graph is serializable in binary format.
+
+
+
+
+ Returns a constraint that tests whether an object graph is serializable in xml format.
+
+
+
+
+ Returns a constraint that tests whether a collection is ordered
+
+
+
+
+ BinarySerializableConstraint tests whether
+ an object is serializable in binary format.
+
+
+
+
+ Test whether the constraint is satisfied by a given value
+
+ The value to be tested
+ True for success, false for failure
+
+
+
+ Write the constraint description to a MessageWriter
+
+ The writer on which the description is displayed
+
+
+
+ Write the actual value for a failing constraint test to a
+ MessageWriter. The default implementation simply writes
+ the raw value of actual, leaving it to the writer to
+ perform any formatting.
+
+ The writer on which the actual value is displayed
+
+
+
+ Returns the string representation
+
+
+
+
+ BinarySerializableConstraint tests whether
+ an object is serializable in binary format.
+
+
+
+
+ Test whether the constraint is satisfied by a given value
+
+ The value to be tested
+ True for success, false for failure
+
+
+
+ Write the constraint description to a MessageWriter
+
+ The writer on which the description is displayed
+
+
+
+ Write the actual value for a failing constraint test to a
+ MessageWriter. The default implementation simply writes
+ the raw value of actual, leaving it to the writer to
+ perform any formatting.
+
+ The writer on which the actual value is displayed
+
+
+
+ Returns the string representation of this constraint
+
+
+
+
+ BasicConstraint is the abstract base for constraints that
+ perform a simple comparison to a constant value.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The expected.
+ The description.
+
+
+
+ Test whether the constraint is satisfied by a given value
+
+ The value to be tested
+ True for success, false for failure
+
+
+
+ Write the constraint description to a MessageWriter
+
+ The writer on which the description is displayed
+
+
+
+ NullConstraint tests that the actual value is null
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ TrueConstraint tests that the actual value is true
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ FalseConstraint tests that the actual value is false
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ NaNConstraint tests that the actual value is a double or float NaN
+
+
+
+
+ Test that the actual value is an NaN
+
+
+
+
+
+
+ Write the constraint description to a specified writer
+
+
+
+
+
+ AttributeExistsConstraint tests for the presence of a
+ specified attribute on a Type.
+
+
+
+
+ Constructs an AttributeExistsConstraint for a specific attribute Type
+
+
+
+
+
+ Tests whether the object provides the expected attribute.
+
+ A Type, MethodInfo, or other ICustomAttributeProvider
+ True if the expected attribute is present, otherwise false
+
+
+
+ Writes the description of the constraint to the specified writer
+
+
+
+
+ AttributeConstraint tests that a specified attribute is present
+ on a Type or other provider and that the value of the attribute
+ satisfies some other constraint.
+
+
+
+
+ Constructs an AttributeConstraint for a specified attriute
+ Type and base constraint.
+
+
+
+
+
+
+ Determines whether the Type or other provider has the
+ expected attribute and if its value matches the
+ additional constraint specified.
+
+
+
+
+ Writes a description of the attribute to the specified writer.
+
+
+
+
+ Writes the actual value supplied to the specified writer.
+
+
+
+
+ Returns a string representation of the constraint.
+
+
+
+
+ ResolvableConstraintExpression is used to represent a compound
+ constraint being constructed at a point where the last operator
+ may either terminate the expression or may have additional
+ qualifying constraints added to it.
+
+ It is used, for example, for a Property element or for
+ an Exception element, either of which may be optionally
+ followed by constraints that apply to the property or
+ exception.
+
+
+
+
+ Create a new instance of ResolvableConstraintExpression
+
+
+
+
+ Create a new instance of ResolvableConstraintExpression,
+ passing in a pre-populated ConstraintBuilder.
+
+
+
+
+ Resolve the current expression to a Constraint
+
+
+
+
+ Appends an And Operator to the expression
+
+
+
+
+ Appends an Or operator to the expression.
+
+
+
+
+ Applies a delay to the match so that a match can be evaluated in the future.
+
+
+
+
+ Creates a new DelayedConstraint
+
+ The inner constraint two decorate
+ The time interval after which the match is performed
+ If the value of is less than 0
+
+
+
+ Creates a new DelayedConstraint
+
+ The inner constraint two decorate
+ The time interval after which the match is performed
+ The time interval used for polling
+ If the value of is less than 0
+
+
+
+ Test whether the constraint is satisfied by a given value
+
+ The value to be tested
+ True for if the base constraint fails, false if it succeeds
+
+
+
+ Test whether the constraint is satisfied by a delegate
+
+ The delegate whose value is to be tested
+ True for if the base constraint fails, false if it succeeds
+
+
+
+ Test whether the constraint is satisfied by a given reference.
+ Overridden to wait for the specified delay period before
+ calling the base constraint with the dereferenced value.
+
+ A reference to the value to be tested
+ True for success, false for failure
+
+
+
+ Write the constraint description to a MessageWriter
+
+ The writer on which the description is displayed
+
+
+
+ Write the actual value for a failing constraint test to a MessageWriter.
+
+ The writer on which the actual value is displayed
+
+
+
+ Returns the string representation of the constraint.
+
+
+
+ Helper routines for working with floating point numbers
+
+
+ The floating point comparison code is based on this excellent article:
+ http://www.cygnus-software.com/papers/comparingfloats/comparingfloats.htm
+
+
+ "ULP" means Unit in the Last Place and in the context of this library refers to
+ the distance between two adjacent floating point numbers. IEEE floating point
+ numbers can only represent a finite subset of natural numbers, with greater
+ accuracy for smaller numbers and lower accuracy for very large numbers.
+
+
+ If a comparison is allowed "2 ulps" of deviation, that means the values are
+ allowed to deviate by up to 2 adjacent floating point values, which might be
+ as low as 0.0000001 for small numbers or as high as 10.0 for large numbers.
+
+
+
+
+ Compares two floating point values for equality
+ First floating point value to be compared
+ Second floating point value t be compared
+
+ Maximum number of representable floating point values that are allowed to
+ be between the left and the right floating point values
+
+ True if both numbers are equal or close to being equal
+
+
+ Floating point values can only represent a finite subset of natural numbers.
+ For example, the values 2.00000000 and 2.00000024 can be stored in a float,
+ but nothing inbetween them.
+
+
+ This comparison will count how many possible floating point values are between
+ the left and the right number. If the number of possible values between both
+ numbers is less than or equal to maxUlps, then the numbers are considered as
+ being equal.
+
+
+ Implementation partially follows the code outlined here:
+ http://www.anttirt.net/2007/08/19/proper-floating-point-comparisons/
+
+
+
+
+ Compares two double precision floating point values for equality
+ First double precision floating point value to be compared
+ Second double precision floating point value t be compared
+
+ Maximum number of representable double precision floating point values that are
+ allowed to be between the left and the right double precision floating point values
+
+ True if both numbers are equal or close to being equal
+
+
+ Double precision floating point values can only represent a limited series of
+ natural numbers. For example, the values 2.0000000000000000 and 2.0000000000000004
+ can be stored in a double, but nothing inbetween them.
+
+
+ This comparison will count how many possible double precision floating point
+ values are between the left and the right number. If the number of possible
+ values between both numbers is less than or equal to maxUlps, then the numbers
+ are considered as being equal.
+
+
+ Implementation partially follows the code outlined here:
+ http://www.anttirt.net/2007/08/19/proper-floating-point-comparisons/
+
+
+
+
+
+ Reinterprets the memory contents of a floating point value as an integer value
+
+
+ Floating point value whose memory contents to reinterpret
+
+
+ The memory contents of the floating point value interpreted as an integer
+
+
+
+
+ Reinterprets the memory contents of a double precision floating point
+ value as an integer value
+
+
+ Double precision floating point value whose memory contents to reinterpret
+
+
+ The memory contents of the double precision floating point value
+ interpreted as an integer
+
+
+
+
+ Reinterprets the memory contents of an integer as a floating point value
+
+ Integer value whose memory contents to reinterpret
+
+ The memory contents of the integer value interpreted as a floating point value
+
+
+
+
+ Reinterprets the memory contents of an integer value as a double precision
+ floating point value
+
+ Integer whose memory contents to reinterpret
+
+ The memory contents of the integer interpreted as a double precision
+ floating point value
+
+
+
+ Union of a floating point variable and an integer
+
+
+ The union's value as a floating point variable
+
+
+ The union's value as an integer
+
+
+ The union's value as an unsigned integer
+
+
+ Union of a double precision floating point variable and a long
+
+
+ The union's value as a double precision floating point variable
+
+
+ The union's value as a long
+
+
+ The union's value as an unsigned long
+
+
+
+ Modes in which the tolerance value for a comparison can
+ be interpreted.
+
+
+
+
+ The tolerance was created with a value, without specifying
+ how the value would be used. This is used to prevent setting
+ the mode more than once and is generally changed to Linear
+ upon execution of the test.
+
+
+
+
+ The tolerance is used as a numeric range within which
+ two compared values are considered to be equal.
+
+
+
+
+ Interprets the tolerance as the percentage by which
+ the two compared values my deviate from each other.
+
+
+
+
+ Compares two values based in their distance in
+ representable numbers.
+
+
+
+
+ The Tolerance class generalizes the notion of a tolerance
+ within which an equality test succeeds. Normally, it is
+ used with numeric types, but it can be used with any
+ type that supports taking a difference between two
+ objects and comparing that difference to a value.
+
+
+
+
+ Constructs a linear tolerance of a specdified amount
+
+
+
+
+ Constructs a tolerance given an amount and ToleranceMode
+
+
+
+
+ Tests that the current Tolerance is linear with a
+ numeric value, throwing an exception if it is not.
+
+
+
+
+ Returns an empty Tolerance object, equivalent to
+ specifying an exact match.
+
+
+
+
+ Gets the ToleranceMode for the current Tolerance
+
+
+
+
+ Gets the value of the current Tolerance instance.
+
+
+
+
+ Returns a new tolerance, using the current amount as a percentage.
+
+
+
+
+ Returns a new tolerance, using the current amount in Ulps.
+
+
+
+
+ Returns a new tolerance with a TimeSpan as the amount, using
+ the current amount as a number of days.
+
+
+
+
+ Returns a new tolerance with a TimeSpan as the amount, using
+ the current amount as a number of hours.
+
+
+
+
+ Returns a new tolerance with a TimeSpan as the amount, using
+ the current amount as a number of minutes.
+
+
+
+
+ Returns a new tolerance with a TimeSpan as the amount, using
+ the current amount as a number of seconds.
+
+
+
+
+ Returns a new tolerance with a TimeSpan as the amount, using
+ the current amount as a number of milliseconds.
+
+
+
+
+ Returns a new tolerance with a TimeSpan as the amount, using
+ the current amount as a number of clock ticks.
+
+
+
+
+ Returns true if the current tolerance is empty.
+
+
+
+
+ ComparisonAdapter class centralizes all comparisons of
+ values in NUnit, adapting to the use of any provided
+ IComparer, IComparer<T> or Comparison<T>
+
+
+
+
+ Returns a ComparisonAdapter that wraps an IComparer
+
+
+
+
+ Returns a ComparisonAdapter that wraps an IComparer<T>
+
+
+
+
+ Returns a ComparisonAdapter that wraps a Comparison<T>
+
+
+
+
+ Compares two objects
+
+
+
+
+ Gets the default ComparisonAdapter, which wraps an
+ NUnitComparer object.
+
+
+
+
+ Construct a ComparisonAdapter for an IComparer
+
+
+
+
+ Compares two objects
+
+
+
+
+
+
+
+ Construct a default ComparisonAdapter
+
+
+
+
+ ComparisonAdapter<T> extends ComparisonAdapter and
+ allows use of an IComparer<T> or Comparison<T>
+ to actually perform the comparison.
+
+
+
+
+ Construct a ComparisonAdapter for an IComparer<T>
+
+
+
+
+ Compare a Type T to an object
+
+
+
+
+ Construct a ComparisonAdapter for a Comparison<T>
+
+
+
+
+ Compare a Type T to an object
+
+
+
+
+ EqualityAdapter class handles all equality comparisons
+ that use an IEqualityComparer, IEqualityComparer<T>
+ or a ComparisonAdapter.
+
+
+
+
+ Compares two objects, returning true if they are equal
+
+
+
+
+ Returns an EqualityAdapter that wraps an IComparer.
+
+
+
+
+ Returns an EqualityAdapter that wraps an IEqualityComparer.
+
+
+
+
+ Returns an EqualityAdapter that wraps an IEqualityComparer<T>.
+
+
+
+
+ Returns an EqualityAdapter that wraps an IComparer<T>.
+
+
+
+
+ Returns an EqualityAdapter that wraps a Comparison<T>.
+
+
+
+
+ NUnitComparer encapsulates NUnit's default behavior
+ in comparing two objects.
+
+
+
+
+ Compares two objects
+
+
+
+
+
+
+
+ Returns the default NUnitComparer.
+
+
+
+
+ NUnitEqualityComparer encapsulates NUnit's handling of
+ equality tests between objects.
+
+
+
+
+ If true, all string comparisons will ignore case
+
+
+
+
+ If true, arrays will be treated as collections, allowing
+ those of different dimensions to be compared
+
+
+
+
+ If non-zero, equality comparisons within the specified
+ tolerance will succeed.
+
+
+
+
+ Comparison object used in comparisons for some constraints.
+
+
+
+
+ Compares two objects for equality.
+
+
+
+
+ Helper method to compare two arrays
+
+
+
+
+ Method to compare two DirectoryInfo objects
+
+ first directory to compare
+ second directory to compare
+ true if equivalent, false if not
+
+
+
+ Returns the default NUnitEqualityComparer
+
+
+
+
+ Gets and sets a flag indicating whether case should
+ be ignored in determining equality.
+
+
+
+
+ Gets and sets a flag indicating that arrays should be
+ compared as collections, without regard to their shape.
+
+
+
+
+ Gets and sets an external comparer to be used to
+ test for equality. It is applied to members of
+ collections, in place of NUnit's own logic.
+
+
+
+
+ Gets and sets a tolerance used to compare objects of
+ certin types.
+
+
+
+
+ Gets the list of failure points for the last Match performed.
+
+
+
+
+ Predicate constraint wraps a Predicate in a constraint,
+ returning success if the predicate is true.
+
+
+
+
+ Construct a PredicateConstraint from a predicate
+
+
+
+
+ Determines whether the predicate succeeds when applied
+ to the actual value.
+
+
+
+
+ Writes the description to a MessageWriter
+
+
+
+
+ CollectionTally counts (tallies) the number of
+ occurences of each object in one or more enumerations.
+
+
+
+
+ Construct a CollectionTally object from a comparer and a collection
+
+
+
+
+ Try to remove an object from the tally
+
+ The object to remove
+ True if successful, false if the object was not found
+
+
+
+ Try to remove a set of objects from the tally
+
+ The objects to remove
+ True if successful, false if any object was not found
+
+
+
+ The number of objects remaining in the tally
+
+
+
+
+ SetUpFixtureAttribute is used to identify a SetUpFixture
+
+
+
+
+ Basic Asserts on strings.
+
+
+
+
+ The Equals method throws an AssertionException. This is done
+ to make sure there is no mistake by calling this function.
+
+
+
+
+
+
+ override the default ReferenceEquals to throw an AssertionException. This
+ implementation makes sure there is no mistake in calling this function
+ as part of Assert.
+
+
+
+
+
+
+ Asserts that a string is found within another string.
+
+ The expected string
+ The string to be examined
+ The message to display in case of failure
+ Arguments used in formatting the message
+
+
+
+ Asserts that a string is found within another string.
+
+ The expected string
+ The string to be examined
+ The message to display in case of failure
+
+
+
+ Asserts that a string is found within another string.
+
+ The expected string
+ The string to be examined
+
+
+
+ Asserts that a string is not found within another string.
+
+ The expected string
+ The string to be examined
+ The message to display in case of failure
+ Arguments used in formatting the message
+
+
+
+ Asserts that a string is found within another string.
+
+ The expected string
+ The string to be examined
+ The message to display in case of failure
+
+
+
+ Asserts that a string is found within another string.
+
+ The expected string
+ The string to be examined
+
+
+
+ Asserts that a string starts with another string.
+
+ The expected string
+ The string to be examined
+ The message to display in case of failure
+ Arguments used in formatting the message
+
+
+
+ Asserts that a string starts with another string.
+
+ The expected string
+ The string to be examined
+ The message to display in case of failure
+
+
+
+ Asserts that a string starts with another string.
+
+ The expected string
+ The string to be examined
+
+
+
+ Asserts that a string does not start with another string.
+
+ The expected string
+ The string to be examined
+ The message to display in case of failure
+ Arguments used in formatting the message
+
+
+
+ Asserts that a string does not start with another string.
+
+ The expected string
+ The string to be examined
+ The message to display in case of failure
+
+
+
+ Asserts that a string does not start with another string.
+
+ The expected string
+ The string to be examined
+
+
+
+ Asserts that a string ends with another string.
+
+ The expected string
+ The string to be examined
+ The message to display in case of failure
+ Arguments used in formatting the message
+
+
+
+ Asserts that a string ends with another string.
+
+ The expected string
+ The string to be examined
+ The message to display in case of failure
+
+
+
+ Asserts that a string ends with another string.
+
+ The expected string
+ The string to be examined
+
+
+
+ Asserts that a string does not end with another string.
+
+ The expected string
+ The string to be examined
+ The message to display in case of failure
+ Arguments used in formatting the message
+
+
+
+ Asserts that a string does not end with another string.
+
+ The expected string
+ The string to be examined
+ The message to display in case of failure
+
+
+
+ Asserts that a string does not end with another string.
+
+ The expected string
+ The string to be examined
+
+
+
+ Asserts that two strings are equal, without regard to case.
+
+ The expected string
+ The actual string
+ The message to display in case of failure
+ Arguments used in formatting the message
+
+
+
+ Asserts that two strings are equal, without regard to case.
+
+ The expected string
+ The actual string
+ The message to display in case of failure
+
+
+
+ Asserts that two strings are equal, without regard to case.
+
+ The expected string
+ The actual string
+
+
+
+ Asserts that two strings are not equal, without regard to case.
+
+ The expected string
+ The actual string
+ The message to display in case of failure
+ Arguments used in formatting the message
+
+
+
+ Asserts that two strings are Notequal, without regard to case.
+
+ The expected string
+ The actual string
+ The message to display in case of failure
+
+
+
+ Asserts that two strings are not equal, without regard to case.
+
+ The expected string
+ The actual string
+
+
+
+ Asserts that a string matches an expected regular expression pattern.
+
+ The regex pattern to be matched
+ The actual string
+ The message to display in case of failure
+ Arguments used in formatting the message
+
+
+
+ Asserts that a string matches an expected regular expression pattern.
+
+ The regex pattern to be matched
+ The actual string
+ The message to display in case of failure
+
+
+
+ Asserts that a string matches an expected regular expression pattern.
+
+ The regex pattern to be matched
+ The actual string
+
+
+
+ Asserts that a string does not match an expected regular expression pattern.
+
+ The regex pattern to be used
+ The actual string
+ The message to display in case of failure
+ Arguments used in formatting the message
+
+
+
+ Asserts that a string does not match an expected regular expression pattern.
+
+ The regex pattern to be used
+ The actual string
+ The message to display in case of failure
+
+
+
+ Asserts that a string does not match an expected regular expression pattern.
+
+ The regex pattern to be used
+ The actual string
+
+
+
+ PropertyAttribute is used to attach information to a test as a name/value pair..
+
+
+
+
+ Construct a PropertyAttribute with a name and string value
+
+ The name of the property
+ The property value
+
+
+
+ Construct a PropertyAttribute with a name and int value
+
+ The name of the property
+ The property value
+
+
+
+ Construct a PropertyAttribute with a name and double value
+
+ The name of the property
+ The property value
+
+
+
+ Constructor for derived classes that set the
+ property dictionary directly.
+
+
+
+
+ Constructor for use by derived classes that use the
+ name of the type as the property name. Derived classes
+ must ensure that the Type of the property value is
+ a standard type supported by the BCL. Any custom
+ types will cause a serialization Exception when
+ in the client.
+
+
+
+
+ Gets the property dictionary for this attribute
+
+
+
+
+ A set of Assert methods operationg on one or more collections
+
+
+
+
+ The Equals method throws an AssertionException. This is done
+ to make sure there is no mistake by calling this function.
+
+
+
+
+
+
+ override the default ReferenceEquals to throw an AssertionException. This
+ implementation makes sure there is no mistake in calling this function
+ as part of Assert.
+
+
+
+
+
+
+ Asserts that all items contained in collection are of the type specified by expectedType.
+
+ IEnumerable containing objects to be considered
+ System.Type that all objects in collection must be instances of
+
+
+
+ Asserts that all items contained in collection are of the type specified by expectedType.
+
+ IEnumerable containing objects to be considered
+ System.Type that all objects in collection must be instances of
+ The message that will be displayed on failure
+
+
+
+ Asserts that all items contained in collection are of the type specified by expectedType.
+
+ IEnumerable containing objects to be considered
+ System.Type that all objects in collection must be instances of
+ The message that will be displayed on failure
+ Arguments to be used in formatting the message
+
+
+
+ Asserts that all items contained in collection are not equal to null.
+
+ IEnumerable containing objects to be considered
+
+
+
+ Asserts that all items contained in collection are not equal to null.
+
+ IEnumerable containing objects to be considered
+ The message that will be displayed on failure
+
+
+
+ Asserts that all items contained in collection are not equal to null.
+
+ IEnumerable of objects to be considered
+ The message that will be displayed on failure
+ Arguments to be used in formatting the message
+
+
+
+ Ensures that every object contained in collection exists within the collection
+ once and only once.
+
+ IEnumerable of objects to be considered
+
+
+
+ Ensures that every object contained in collection exists within the collection
+ once and only once.
+
+ IEnumerable of objects to be considered
+ The message that will be displayed on failure
+
+
+
+ Ensures that every object contained in collection exists within the collection
+ once and only once.
+
+ IEnumerable of objects to be considered
+ The message that will be displayed on failure
+ Arguments to be used in formatting the message
+
+
+
+ Asserts that expected and actual are exactly equal. The collections must have the same count,
+ and contain the exact same objects in the same order.
+
+ The first IEnumerable of objects to be considered
+ The second IEnumerable of objects to be considered
+
+
+
+ Asserts that expected and actual are exactly equal. The collections must have the same count,
+ and contain the exact same objects in the same order.
+ If comparer is not null then it will be used to compare the objects.
+
+ The first IEnumerable of objects to be considered
+ The second IEnumerable of objects to be considered
+ The IComparer to use in comparing objects from each IEnumerable
+
+
+
+ Asserts that expected and actual are exactly equal. The collections must have the same count,
+ and contain the exact same objects in the same order.
+
+ The first IEnumerable of objects to be considered
+ The second IEnumerable of objects to be considered
+ The message that will be displayed on failure
+
+
+
+ Asserts that expected and actual are exactly equal. The collections must have the same count,
+ and contain the exact same objects in the same order.
+ If comparer is not null then it will be used to compare the objects.
+
+ The first IEnumerable of objects to be considered
+ The second IEnumerable of objects to be considered
+ The IComparer to use in comparing objects from each IEnumerable
+ The message that will be displayed on failure
+
+
+
+ Asserts that expected and actual are exactly equal. The collections must have the same count,
+ and contain the exact same objects in the same order.
+
+ The first IEnumerable of objects to be considered
+ The second IEnumerable of objects to be considered
+ The message that will be displayed on failure
+ Arguments to be used in formatting the message
+
+
+
+ Asserts that expected and actual are exactly equal. The collections must have the same count,
+ and contain the exact same objects in the same order.
+ If comparer is not null then it will be used to compare the objects.
+
+ The first IEnumerable of objects to be considered
+ The second IEnumerable of objects to be considered
+ The IComparer to use in comparing objects from each IEnumerable
+ The message that will be displayed on failure
+ Arguments to be used in formatting the message
+
+
+
+ Asserts that expected and actual are equivalent, containing the same objects but the match may be in any order.
+
+ The first IEnumerable of objects to be considered
+ The second IEnumerable of objects to be considered
+
+
+
+ Asserts that expected and actual are equivalent, containing the same objects but the match may be in any order.
+
+ The first IEnumerable of objects to be considered
+ The second IEnumerable of objects to be considered
+ The message that will be displayed on failure
+
+
+
+ Asserts that expected and actual are equivalent, containing the same objects but the match may be in any order.
+
+ The first IEnumerable of objects to be considered
+ The second IEnumerable of objects to be considered
+ The message that will be displayed on failure
+ Arguments to be used in formatting the message
+
+
+
+ Asserts that expected and actual are not exactly equal.
+
+ The first IEnumerable of objects to be considered
+ The second IEnumerable of objects to be considered
+
+
+
+ Asserts that expected and actual are not exactly equal.
+ If comparer is not null then it will be used to compare the objects.
+
+ The first IEnumerable of objects to be considered
+ The second IEnumerable of objects to be considered
+ The IComparer to use in comparing objects from each IEnumerable
+
+
+
+ Asserts that expected and actual are not exactly equal.
+
+ The first IEnumerable of objects to be considered
+ The second IEnumerable of objects to be considered
+ The message that will be displayed on failure
+
+
+
+ Asserts that expected and actual are not exactly equal.
+ If comparer is not null then it will be used to compare the objects.
+
+ The first IEnumerable of objects to be considered
+ The second IEnumerable of objects to be considered
+ The IComparer to use in comparing objects from each IEnumerable
+ The message that will be displayed on failure
+
+
+
+ Asserts that expected and actual are not exactly equal.
+
+ The first IEnumerable of objects to be considered
+ The second IEnumerable of objects to be considered
+ The message that will be displayed on failure
+ Arguments to be used in formatting the message
+
+
+
+ Asserts that expected and actual are not exactly equal.
+ If comparer is not null then it will be used to compare the objects.
+
+ The first IEnumerable of objects to be considered
+ The second IEnumerable of objects to be considered
+ The IComparer to use in comparing objects from each IEnumerable
+ The message that will be displayed on failure
+ Arguments to be used in formatting the message
+
+
+
+ Asserts that expected and actual are not equivalent.
+
+ The first IEnumerable of objects to be considered
+ The second IEnumerable of objects to be considered
+
+
+
+ Asserts that expected and actual are not equivalent.
+
+ The first IEnumerable of objects to be considered
+ The second IEnumerable of objects to be considered
+ The message that will be displayed on failure
+
+
+
+ Asserts that expected and actual are not equivalent.
+
+ The first IEnumerable of objects to be considered
+ The second IEnumerable of objects to be considered
+ The message that will be displayed on failure
+ Arguments to be used in formatting the message
+
+
+
+ Asserts that collection contains actual as an item.
+
+ IEnumerable of objects to be considered
+ Object to be found within collection
+
+
+
+ Asserts that collection contains actual as an item.
+
+ IEnumerable of objects to be considered
+ Object to be found within collection
+ The message that will be displayed on failure
+
+
+
+ Asserts that collection contains actual as an item.
+
+ IEnumerable of objects to be considered
+ Object to be found within collection
+ The message that will be displayed on failure
+ Arguments to be used in formatting the message
+
+
+
+ Asserts that collection does not contain actual as an item.
+
+ IEnumerable of objects to be considered
+ Object that cannot exist within collection
+
+
+
+ Asserts that collection does not contain actual as an item.
+
+ IEnumerable of objects to be considered
+ Object that cannot exist within collection
+ The message that will be displayed on failure
+
+
+
+ Asserts that collection does not contain actual as an item.
+
+ IEnumerable of objects to be considered
+ Object that cannot exist within collection
+ The message that will be displayed on failure
+ Arguments to be used in formatting the message
+
+
+
+ Asserts that superset is not a subject of subset.
+
+ The IEnumerable superset to be considered
+ The IEnumerable subset to be considered
+
+
+
+ Asserts that superset is not a subject of subset.
+
+ The IEnumerable superset to be considered
+ The IEnumerable subset to be considered
+ The message that will be displayed on failure
+
+
+
+ Asserts that superset is not a subject of subset.
+
+ The IEnumerable superset to be considered
+ The IEnumerable subset to be considered
+ The message that will be displayed on failure
+ Arguments to be used in formatting the message
+
+
+
+ Asserts that superset is a subset of subset.
+
+ The IEnumerable superset to be considered
+ The IEnumerable subset to be considered
+
+
+
+ Asserts that superset is a subset of subset.
+
+ The IEnumerable superset to be considered
+ The IEnumerable subset to be considered
+ The message that will be displayed on failure
+
+
+
+ Asserts that superset is a subset of subset.
+
+ The IEnumerable superset to be considered
+ The IEnumerable subset to be considered
+ The message that will be displayed on failure
+ Arguments to be used in formatting the message
+
+
+
+ Assert that an array, list or other collection is empty
+
+ An array, list or other collection implementing IEnumerable
+ The message to be displayed on failure
+ Arguments to be used in formatting the message
+
+
+
+ Assert that an array, list or other collection is empty
+
+ An array, list or other collection implementing IEnumerable
+ The message to be displayed on failure
+
+
+
+ Assert that an array,list or other collection is empty
+
+ An array, list or other collection implementing IEnumerable
+
+
+
+ Assert that an array, list or other collection is empty
+
+ An array, list or other collection implementing IEnumerable
+ The message to be displayed on failure
+ Arguments to be used in formatting the message
+
+
+
+ Assert that an array, list or other collection is empty
+
+ An array, list or other collection implementing IEnumerable
+ The message to be displayed on failure
+
+
+
+ Assert that an array,list or other collection is empty
+
+ An array, list or other collection implementing IEnumerable
+
+
+
+ Assert that an array, list or other collection is ordered
+
+ An array, list or other collection implementing IEnumerable
+ The message to be displayed on failure
+ Arguments to be used in formatting the message
+
+
+
+ Assert that an array, list or other collection is ordered
+
+ An array, list or other collection implementing IEnumerable
+ The message to be displayed on failure
+
+
+
+ Assert that an array, list or other collection is ordered
+
+ An array, list or other collection implementing IEnumerable
+
+
+
+ Assert that an array, list or other collection is ordered
+
+ An array, list or other collection implementing IEnumerable
+ A custom comparer to perform the comparisons
+ The message to be displayed on failure
+ Arguments to be used in formatting the message
+
+
+
+ Assert that an array, list or other collection is ordered
+
+ An array, list or other collection implementing IEnumerable
+ A custom comparer to perform the comparisons
+ The message to be displayed on failure
+
+
+
+ Assert that an array, list or other collection is ordered
+
+ An array, list or other collection implementing IEnumerable
+ A custom comparer to perform the comparisons
+
+
+
+ Summary description for FileAssert.
+
+
+
+
+ The Equals method throws an AssertionException. This is done
+ to make sure there is no mistake by calling this function.
+
+
+
+
+
+
+ override the default ReferenceEquals to throw an AssertionException. This
+ implementation makes sure there is no mistake in calling this function
+ as part of Assert.
+
+
+
+
+
+
+ We don't actually want any instances of this object, but some people
+ like to inherit from it to add other static methods. Hence, the
+ protected constructor disallows any instances of this object.
+
+
+
+
+ Verifies that two Streams are equal. Two Streams are considered
+ equal if both are null, or if both have the same value byte for byte.
+ If they are not equal an is thrown.
+
+ The expected Stream
+ The actual Stream
+ The message to display if Streams are not equal
+ Arguments to be used in formatting the message
+
+
+
+ Verifies that two Streams are equal. Two Streams are considered
+ equal if both are null, or if both have the same value byte for byte.
+ If they are not equal an is thrown.
+
+ The expected Stream
+ The actual Stream
+ The message to display if objects are not equal
+
+
+
+ Verifies that two Streams are equal. Two Streams are considered
+ equal if both are null, or if both have the same value byte for byte.
+ If they are not equal an is thrown.
+
+ The expected Stream
+ The actual Stream
+
+
+
+ Verifies that two files are equal. Two files are considered
+ equal if both are null, or if both have the same value byte for byte.
+ If they are not equal an is thrown.
+
+ A file containing the value that is expected
+ A file containing the actual value
+ The message to display if Streams are not equal
+ Arguments to be used in formatting the message
+
+
+
+ Verifies that two files are equal. Two files are considered
+ equal if both are null, or if both have the same value byte for byte.
+ If they are not equal an is thrown.
+
+ A file containing the value that is expected
+ A file containing the actual value
+ The message to display if objects are not equal
+
+
+
+ Verifies that two files are equal. Two files are considered
+ equal if both are null, or if both have the same value byte for byte.
+ If they are not equal an is thrown.
+
+ A file containing the value that is expected
+ A file containing the actual value
+
+
+
+ Verifies that two files are equal. Two files are considered
+ equal if both are null, or if both have the same value byte for byte.
+ If they are not equal an is thrown.
+
+ The path to a file containing the value that is expected
+ The path to a file containing the actual value
+ The message to display if Streams are not equal
+ Arguments to be used in formatting the message
+
+
+
+ Verifies that two files are equal. Two files are considered
+ equal if both are null, or if both have the same value byte for byte.
+ If they are not equal an is thrown.
+
+ The path to a file containing the value that is expected
+ The path to a file containing the actual value
+ The message to display if objects are not equal
+
+
+
+ Verifies that two files are equal. Two files are considered
+ equal if both are null, or if both have the same value byte for byte.
+ If they are not equal an is thrown.
+
+ The path to a file containing the value that is expected
+ The path to a file containing the actual value
+
+
+
+ Asserts that two Streams are not equal. If they are equal
+ an is thrown.
+
+ The expected Stream
+ The actual Stream
+ The message to be displayed when the two Stream are the same.
+ Arguments to be used in formatting the message
+
+
+
+ Asserts that two Streams are not equal. If they are equal
+ an is thrown.
+
+ The expected Stream
+ The actual Stream
+ The message to be displayed when the Streams are the same.
+
+
+
+ Asserts that two Streams are not equal. If they are equal
+ an is thrown.
+
+ The expected Stream
+ The actual Stream
+
+
+
+ Asserts that two files are not equal. If they are equal
+ an is thrown.
+
+ A file containing the value that is expected
+ A file containing the actual value
+ The message to display if Streams are not equal
+ Arguments to be used in formatting the message
+
+
+
+ Asserts that two files are not equal. If they are equal
+ an is thrown.
+
+ A file containing the value that is expected
+ A file containing the actual value
+ The message to display if objects are not equal
+
+
+
+ Asserts that two files are not equal. If they are equal
+ an is thrown.
+
+ A file containing the value that is expected
+ A file containing the actual value
+
+
+
+ Asserts that two files are not equal. If they are equal
+ an is thrown.
+
+ The path to a file containing the value that is expected
+ The path to a file containing the actual value
+ The message to display if Streams are not equal
+ Arguments to be used in formatting the message
+
+
+
+ Asserts that two files are not equal. If they are equal
+ an is thrown.
+
+ The path to a file containing the value that is expected
+ The path to a file containing the actual value
+ The message to display if objects are not equal
+
+
+
+ Asserts that two files are not equal. If they are equal
+ an is thrown.
+
+ The path to a file containing the value that is expected
+ The path to a file containing the actual value
+
+
+
+ Attribute used to provide descriptive text about a
+ test case or fixture.
+
+
+
+
+ Construct the attribute
+
+ Text describing the test
+
+
+
+ Gets the test description
+
+
+
+
+ Interface implemented by a user fixture in order to
+ validate any expected exceptions. It is only called
+ for test methods marked with the ExpectedException
+ attribute.
+
+
+
+
+ Method to handle an expected exception
+
+ The exception to be handled
+
+
+
+ TextMessageWriter writes constraint descriptions and messages
+ in displayable form as a text stream. It tailors the display
+ of individual message components to form the standard message
+ format of NUnit assertion failure messages.
+
+
+
+
+ Prefix used for the expected value line of a message
+
+
+
+
+ Prefix used for the actual value line of a message
+
+
+
+
+ Length of a message prefix
+
+
+
+
+ Construct a TextMessageWriter
+
+
+
+
+ Construct a TextMessageWriter, specifying a user message
+ and optional formatting arguments.
+
+
+
+
+
+
+ Method to write single line message with optional args, usually
+ written to precede the general failure message, at a givel
+ indentation level.
+
+ The indentation level of the message
+ The message to be written
+ Any arguments used in formatting the message
+
+
+
+ Display Expected and Actual lines for a constraint. This
+ is called by MessageWriter's default implementation of
+ WriteMessageTo and provides the generic two-line display.
+
+ The constraint that failed
+
+
+
+ Display Expected and Actual lines for given values. This
+ method may be called by constraints that need more control over
+ the display of actual and expected values than is provided
+ by the default implementation.
+
+ The expected value
+ The actual value causing the failure
+
+
+
+ Display Expected and Actual lines for given values, including
+ a tolerance value on the expected line.
+
+ The expected value
+ The actual value causing the failure
+ The tolerance within which the test was made
+
+
+
+ Display the expected and actual string values on separate lines.
+ If the mismatch parameter is >=0, an additional line is displayed
+ line containing a caret that points to the mismatch point.
+
+ The expected string value
+ The actual string value
+ The point at which the strings don't match or -1
+ If true, case is ignored in string comparisons
+ If true, clip the strings to fit the max line length
+
+
+
+ Writes the text for a connector.
+
+ The connector.
+
+
+
+ Writes the text for a predicate.
+
+ The predicate.
+
+
+
+ Write the text for a modifier.
+
+ The modifier.
+
+
+
+ Writes the text for an expected value.
+
+ The expected value.
+
+
+
+ Writes the text for an actual value.
+
+ The actual value.
+
+
+
+ Writes the text for a generalized value.
+
+ The value.
+
+
+
+ Writes the text for a collection value,
+ starting at a particular point, to a max length
+
+ The collection containing elements to write.
+ The starting point of the elements to write
+ The maximum number of elements to write
+
+
+
+ Write the generic 'Expected' line for a constraint
+
+ The constraint that failed
+
+
+
+ Write the generic 'Expected' line for a given value
+
+ The expected value
+
+
+
+ Write the generic 'Expected' line for a given value
+ and tolerance.
+
+ The expected value
+ The tolerance within which the test was made
+
+
+
+ Write the generic 'Actual' line for a constraint
+
+ The constraint for which the actual value is to be written
+
+
+
+ Write the generic 'Actual' line for a given value
+
+ The actual value causing a failure
+
+
+
+ Gets or sets the maximum line length for this writer
+
+
+
+
+ AssertionHelper is an optional base class for user tests,
+ allowing the use of shorter names for constraints and
+ asserts and avoiding conflict with the definition of
+ , from which it inherits much of its
+ behavior, in certain mock object frameworks.
+
+
+
+
+ Apply a constraint to an actual value, succeeding if the constraint
+ is satisfied and throwing an assertion exception on failure. Works
+ identically to
+
+ A Constraint to be applied
+ The actual value to test
+
+
+
+ Apply a constraint to an actual value, succeeding if the constraint
+ is satisfied and throwing an assertion exception on failure. Works
+ identically to
+
+ A Constraint to be applied
+ The actual value to test
+ The message that will be displayed on failure
+
+
+
+ Apply a constraint to an actual value, succeeding if the constraint
+ is satisfied and throwing an assertion exception on failure. Works
+ identically to
+
+ A Constraint to be applied
+ The actual value to test
+ The message that will be displayed on failure
+ Arguments to be used in formatting the message
+
+
+
+ Apply a constraint to an actual value, succeeding if the constraint
+ is satisfied and throwing an assertion exception on failure.
+
+ A Constraint expression to be applied
+ An ActualValueDelegate returning the value to be tested
+
+
+
+ Apply a constraint to an actual value, succeeding if the constraint
+ is satisfied and throwing an assertion exception on failure.
+
+ A Constraint expression to be applied
+ An ActualValueDelegate returning the value to be tested
+ The message that will be displayed on failure
+
+
+
+ Apply a constraint to an actual value, succeeding if the constraint
+ is satisfied and throwing an assertion exception on failure.
+
+ An ActualValueDelegate returning the value to be tested
+ A Constraint expression to be applied
+ The message that will be displayed on failure
+ Arguments to be used in formatting the message
+
+
+
+ Apply a constraint to a referenced value, succeeding if the constraint
+ is satisfied and throwing an assertion exception on failure.
+
+ A Constraint to be applied
+ The actual value to test
+
+
+
+ Apply a constraint to a referenced value, succeeding if the constraint
+ is satisfied and throwing an assertion exception on failure.
+
+ A Constraint to be applied
+ The actual value to test
+ The message that will be displayed on failure
+
+
+
+ Apply a constraint to a referenced value, succeeding if the constraint
+ is satisfied and throwing an assertion exception on failure.
+
+ A Constraint to be applied
+ The actual value to test
+ The message that will be displayed on failure
+ Arguments to be used in formatting the message
+
+
+
+ Asserts that a condition is true. If the condition is false the method throws
+ an . Works Identically to
+ .
+
+ The evaluated condition
+ The message to display if the condition is false
+ Arguments to be used in formatting the message
+
+
+
+ Asserts that a condition is true. If the condition is false the method throws
+ an . Works Identically to
+ .
+
+ The evaluated condition
+ The message to display if the condition is false
+
+
+
+ Asserts that a condition is true. If the condition is false the method throws
+ an . Works Identically to .
+
+ The evaluated condition
+
+
+
+ Asserts that the code represented by a delegate throws an exception
+ that satisfies the constraint provided.
+
+ A TestDelegate to be executed
+ A ThrowsConstraint used in the test
+
+
+
+ Returns a ListMapper based on a collection.
+
+ The original collection
+
+
+
+
+ Abstract base for Attributes that are used to include tests
+ in the test run based on environmental settings.
+
+
+
+
+ Constructor with no included items specified, for use
+ with named property syntax.
+
+
+
+
+ Constructor taking one or more included items
+
+ Comma-delimited list of included items
+
+
+
+ Name of the item that is needed in order for
+ a test to run. Multiple itemss may be given,
+ separated by a comma.
+
+
+
+
+ Name of the item to be excluded. Multiple items
+ may be given, separated by a comma.
+
+
+
+
+ The reason for including or excluding the test
+
+
+
+
+ PlatformAttribute is used to mark a test fixture or an
+ individual method as applying to a particular platform only.
+
+
+
+
+ Constructor with no platforms specified, for use
+ with named property syntax.
+
+
+
+
+ Constructor taking one or more platforms
+
+ Comma-deliminted list of platforms
+
+
+
+ CultureAttribute is used to mark a test fixture or an
+ individual method as applying to a particular Culture only.
+
+
+
+
+ Constructor with no cultures specified, for use
+ with named property syntax.
+
+
+
+
+ Constructor taking one or more cultures
+
+ Comma-deliminted list of cultures
+
+
+
+ Summary description for SetCultureAttribute.
+
+
+
+
+ Construct given the name of a culture
+
+
+
+
+
+ GlobalSettings is a place for setting default values used
+ by the framework in performing asserts.
+
+
+
+
+ Default tolerance for floating point equality
+
+
+
+
+ Summary description for DirectoryAssert
+
+
+
+
+ The Equals method throws an AssertionException. This is done
+ to make sure there is no mistake by calling this function.
+
+
+
+
+
+
+ override the default ReferenceEquals to throw an AssertionException. This
+ implementation makes sure there is no mistake in calling this function
+ as part of Assert.
+
+
+
+
+
+
+ We don't actually want any instances of this object, but some people
+ like to inherit from it to add other static methods. Hence, the
+ protected constructor disallows any instances of this object.
+
+
+
+
+ Verifies that two directories are equal. Two directories are considered
+ equal if both are null, or if both have the same value byte for byte.
+ If they are not equal an is thrown.
+
+ A directory containing the value that is expected
+ A directory containing the actual value
+ The message to display if directories are not equal
+ Arguments to be used in formatting the message
+
+
+
+ Verifies that two directories are equal. Two directories are considered
+ equal if both are null, or if both have the same value byte for byte.
+ If they are not equal an is thrown.
+
+ A directory containing the value that is expected
+ A directory containing the actual value
+ The message to display if directories are not equal
+
+
+
+ Verifies that two directories are equal. Two directories are considered
+ equal if both are null, or if both have the same value byte for byte.
+ If they are not equal an is thrown.
+
+ A directory containing the value that is expected
+ A directory containing the actual value
+
+
+
+ Verifies that two directories are equal. Two directories are considered
+ equal if both are null, or if both have the same value byte for byte.
+ If they are not equal an is thrown.
+
+ A directory path string containing the value that is expected
+ A directory path string containing the actual value
+ The message to display if directories are not equal
+ Arguments to be used in formatting the message
+
+
+
+ Verifies that two directories are equal. Two directories are considered
+ equal if both are null, or if both have the same value byte for byte.
+ If they are not equal an is thrown.
+
+ A directory path string containing the value that is expected
+ A directory path string containing the actual value
+ The message to display if directories are not equal
+
+
+
+ Verifies that two directories are equal. Two directories are considered
+ equal if both are null, or if both have the same value byte for byte.
+ If they are not equal an is thrown.
+
+ A directory path string containing the value that is expected
+ A directory path string containing the actual value
+
+
+
+ Asserts that two directories are not equal. If they are equal
+ an is thrown.
+
+ A directory containing the value that is expected
+ A directory containing the actual value
+ The message to display if directories are not equal
+ Arguments to be used in formatting the message
+
+
+
+ Asserts that two directories are not equal. If they are equal
+ an is thrown.
+
+ A directory containing the value that is expected
+ A directory containing the actual value
+ The message to display if directories are not equal
+
+
+
+ Asserts that two directories are not equal. If they are equal
+ an is thrown.
+
+ A directory containing the value that is expected
+ A directory containing the actual value
+
+
+
+ Asserts that two directories are not equal. If they are equal
+ an is thrown.
+
+ A directory path string containing the value that is expected
+ A directory path string containing the actual value
+ The message to display if directories are equal
+ Arguments to be used in formatting the message
+
+
+
+ Asserts that two directories are not equal. If they are equal
+ an is thrown.
+
+ A directory path string containing the value that is expected
+ A directory path string containing the actual value
+ The message to display if directories are equal
+
+
+
+ Asserts that two directories are not equal. If they are equal
+ an is thrown.
+
+ A directory path string containing the value that is expected
+ A directory path string containing the actual value
+
+
+
+ Asserts that the directory is empty. If it is not empty
+ an is thrown.
+
+ A directory to search
+ The message to display if directories are not equal
+ Arguments to be used in formatting the message
+
+
+
+ Asserts that the directory is empty. If it is not empty
+ an is thrown.
+
+ A directory to search
+ The message to display if directories are not equal
+
+
+
+ Asserts that the directory is empty. If it is not empty
+ an is thrown.
+
+ A directory to search
+
+
+
+ Asserts that the directory is empty. If it is not empty
+ an is thrown.
+
+ A directory to search
+ The message to display if directories are not equal
+ Arguments to be used in formatting the message
+
+
+
+ Asserts that the directory is empty. If it is not empty
+ an is thrown.
+
+ A directory to search
+ The message to display if directories are not equal
+
+
+
+ Asserts that the directory is empty. If it is not empty
+ an is thrown.
+
+ A directory to search
+
+
+
+ Asserts that the directory is not empty. If it is empty
+ an is thrown.
+
+ A directory to search
+ The message to display if directories are not equal
+ Arguments to be used in formatting the message
+
+
+
+ Asserts that the directory is not empty. If it is empty
+ an is thrown.
+
+ A directory to search
+ The message to display if directories are not equal
+
+
+
+ Asserts that the directory is not empty. If it is empty
+ an is thrown.
+
+ A directory to search
+
+
+
+ Asserts that the directory is not empty. If it is empty
+ an is thrown.
+
+ A directory to search
+ The message to display if directories are not equal
+ Arguments to be used in formatting the message
+
+
+
+ Asserts that the directory is not empty. If it is empty
+ an is thrown.
+
+ A directory to search
+ The message to display if directories are not equal
+
+
+
+ Asserts that the directory is not empty. If it is empty
+ an is thrown.
+
+ A directory to search
+
+
+
+ Asserts that path contains actual as a subdirectory or
+ an is thrown.
+
+ A directory to search
+ sub-directory asserted to exist under directory
+ The message to display if directory is not within the path
+ Arguments to be used in formatting the message
+
+
+
+ Asserts that path contains actual as a subdirectory or
+ an is thrown.
+
+ A directory to search
+ sub-directory asserted to exist under directory
+ The message to display if directory is not within the path
+
+
+
+ Asserts that path contains actual as a subdirectory or
+ an is thrown.
+
+ A directory to search
+ sub-directory asserted to exist under directory
+
+
+
+ Asserts that path contains actual as a subdirectory or
+ an is thrown.
+
+ A directory to search
+ sub-directory asserted to exist under directory
+ The message to display if directory is not within the path
+ Arguments to be used in formatting the message
+
+
+
+ Asserts that path contains actual as a subdirectory or
+ an is thrown.
+
+ A directory to search
+ sub-directory asserted to exist under directory
+ The message to display if directory is not within the path
+
+
+
+ Asserts that path contains actual as a subdirectory or
+ an is thrown.
+
+ A directory to search
+ sub-directory asserted to exist under directory
+
+
+
+ Asserts that path does not contain actual as a subdirectory or
+ an is thrown.
+
+ A directory to search
+ sub-directory asserted to exist under directory
+ The message to display if directory is not within the path
+ Arguments to be used in formatting the message
+
+
+
+ Asserts that path does not contain actual as a subdirectory or
+ an is thrown.
+
+ A directory to search
+ sub-directory asserted to exist under directory
+ The message to display if directory is not within the path
+
+
+
+ Asserts that path does not contain actual as a subdirectory or
+ an is thrown.
+
+ A directory to search
+ sub-directory asserted to exist under directory
+
+
+
+ Asserts that path does not contain actual as a subdirectory or
+ an is thrown.
+
+ A directory to search
+ sub-directory asserted to exist under directory
+ The message to display if directory is not within the path
+ Arguments to be used in formatting the message
+
+
+
+ Asserts that path does not contain actual as a subdirectory or
+ an is thrown.
+
+ A directory to search
+ sub-directory asserted to exist under directory
+ The message to display if directory is not within the path
+
+
+
+ Asserts that path does not contain actual as a subdirectory or
+ an is thrown.
+
+ A directory to search
+ sub-directory asserted to exist under directory
+
+
+
+ TestCaseAttribute is used to mark parameterized test cases
+ and provide them with their arguments.
+
+
+
+
+ The ITestCaseData interface is implemented by a class
+ that is able to return complete testcases for use by
+ a parameterized test method.
+
+ NOTE: This interface is used in both the framework
+ and the core, even though that results in two different
+ types. However, sharing the source code guarantees that
+ the various implementations will be compatible and that
+ the core is able to reflect successfully over the
+ framework implementations of ITestCaseData.
+
+
+
+
+ Gets the argument list to be provided to the test
+
+
+
+
+ Gets the expected result
+
+
+
+
+ Gets the expected exception Type
+
+
+
+
+ Gets the FullName of the expected exception
+
+
+
+
+ Gets the name to be used for the test
+
+
+
+
+ Gets the description of the test
+
+
+
+
+ Gets a value indicating whether this is ignored.
+
+ true if ignored; otherwise, false.
+
+
+
+ Gets the ignore reason.
+
+ The ignore reason.
+
+
+
+ Construct a TestCaseAttribute with a list of arguments.
+ This constructor is not CLS-Compliant
+
+
+
+
+
+ Construct a TestCaseAttribute with a single argument
+
+
+
+
+
+ Construct a TestCaseAttribute with a two arguments
+
+
+
+
+
+
+ Construct a TestCaseAttribute with a three arguments
+
+
+
+
+
+
+
+ Gets the list of arguments to a test case
+
+
+
+
+ Gets or sets the expected result.
+
+ The result.
+
+
+
+ Gets or sets the expected exception.
+
+ The expected exception.
+
+
+
+ Gets or sets the name the expected exception.
+
+ The expected name of the exception.
+
+
+
+ Gets or sets the expected message of the expected exception
+
+ The expected message of the exception.
+
+
+
+ Gets or sets the type of match to be performed on the expected message
+
+
+
+
+ Gets or sets the description.
+
+ The description.
+
+
+
+ Gets or sets the name of the test.
+
+ The name of the test.
+
+
+
+ Gets or sets the ignored status of the test
+
+
+
+
+ Gets or sets the ignored status of the test
+
+
+
+
+ Gets the ignore reason.
+
+ The ignore reason.
+
+
+
+ The TestCaseData class represents a set of arguments
+ and other parameter info to be used for a parameterized
+ test case. It provides a number of instance modifiers
+ for use in initializing the test case.
+
+ Note: Instance modifiers are getters that return
+ the same instance after modifying it's state.
+
+
+
+
+ The argument list to be provided to the test
+
+
+
+
+ The expected result to be returned
+
+
+
+
+ The expected exception Type
+
+
+
+
+ The FullName of the expected exception
+
+
+
+
+ The name to be used for the test
+
+
+
+
+ The description of the test
+
+
+
+
+ A dictionary of properties, used to add information
+ to tests without requiring the class to change.
+
+
+
+
+ If true, indicates that the test case is to be ignored
+
+
+
+
+ The reason for ignoring a test case
+
+
+
+
+ Initializes a new instance of the class.
+
+ The arguments.
+
+
+
+ Initializes a new instance of the class.
+
+ The argument.
+
+
+
+ Initializes a new instance of the class.
+
+ The first argument.
+ The second argument.
+
+
+
+ Initializes a new instance of the class.
+
+ The first argument.
+ The second argument.
+ The third argument.
+
+
+
+ Sets the expected result for the test
+
+ The expected result
+ A modified TestCaseData
+
+
+
+ Sets the expected exception type for the test
+
+ Type of the expected exception.
+ The modified TestCaseData instance
+
+
+
+ Sets the expected exception type for the test
+
+ FullName of the expected exception.
+ The modified TestCaseData instance
+
+
+
+ Sets the name of the test case
+
+ The modified TestCaseData instance
+
+
+
+ Sets the description for the test case
+ being constructed.
+
+ The description.
+ The modified TestCaseData instance.
+
+
+
+ Applies a category to the test
+
+
+
+
+
+
+ Applies a named property to the test
+
+
+
+
+
+
+
+ Applies a named property to the test
+
+
+
+
+
+
+
+ Applies a named property to the test
+
+
+
+
+
+
+
+ Ignores this TestCase.
+
+
+
+
+
+ Ignores this TestCase, specifying the reason.
+
+ The reason.
+
+
+
+
+ Gets the argument list to be provided to the test
+
+
+
+
+ Gets the expected result
+
+
+
+
+ Gets the expected exception Type
+
+
+
+
+ Gets the FullName of the expected exception
+
+
+
+
+ Gets the name to be used for the test
+
+
+
+
+ Gets the description of the test
+
+
+
+
+ Gets a value indicating whether this is ignored.
+
+ true if ignored; otherwise, false.
+
+
+
+ Gets the ignore reason.
+
+ The ignore reason.
+
+
+
+ Gets a list of categories associated with this test.
+
+
+
+
+ Gets the property dictionary for this test
+
+
+
+
+ Thrown when an assertion failed.
+
+
+
+
+
+
+ The error message that explains
+ the reason for the exception
+ The exception that caused the
+ current exception
+
+
+
+ Serialization Constructor
+
+
+
+
+ Thrown when a test executes inconclusively.
+
+
+
+
+ The error message that explains
+ the reason for the exception
+
+
+ The error message that explains
+ the reason for the exception
+ The exception that caused the
+ current exception
+
+
+
+ Serialization Constructor
+
+
+
+
+ Attribute used to identify a method that is
+ called before any tests in a fixture are run.
+
+
+
+
+ Attribute used to identify a method that is called after
+ all the tests in a fixture have run. The method is
+ guaranteed to be called, even if an exception is thrown.
+
+
+
+
+ ExplicitAttribute marks a test or test fixture so that it will
+ only be run if explicitly executed from the gui or command line
+ or if it is included by use of a filter. The test will not be
+ run simply because an enclosing suite is run.
+
+
+
+
+ Default constructor
+
+
+
+
+ Constructor with a reason
+
+ The reason test is marked explicit
+
+
+
+ The reason test is marked explicit
+
+
+
+
+ Thrown when an assertion failed.
+
+
+
+
+ The error message that explains
+ the reason for the exception
+
+
+ The error message that explains
+ the reason for the exception
+ The exception that caused the
+ current exception
+
+
+
+ Serialization Constructor
+
+
+
+
+ Thrown when an assertion failed.
+
+
+
+
+
+
+ The error message that explains
+ the reason for the exception
+ The exception that caused the
+ current exception
+
+
+
+ Serialization Constructor
+
+
+
+
+ Enumeration indicating how the expected message parameter is to be used
+
+
+
+ Expect an exact match
+
+
+ Expect a message containing the parameter string
+
+
+ Match the regular expression provided as a parameter
+
+
+ Expect a message that starts with the parameter string
+
+
+
+ ExpectedExceptionAttribute
+
+
+
+
+
+ Constructor for a non-specific exception
+
+
+
+
+ Constructor for a given type of exception
+
+ The type of the expected exception
+
+
+
+ Constructor for a given exception name
+
+ The full name of the expected exception
+
+
+
+ Gets or sets the expected exception type
+
+
+
+
+ Gets or sets the full Type name of the expected exception
+
+
+
+
+ Gets or sets the expected message text
+
+
+
+
+ Gets or sets the user message displayed in case of failure
+
+
+
+
+ Gets or sets the type of match to be performed on the expected message
+
+
+
+
+ Gets the name of a method to be used as an exception handler
+
+
+
+
+ Attribute used to mark a test that is to be ignored.
+ Ignored tests result in a warning message when the
+ tests are run.
+
+
+
+
+ Constructs the attribute without giving a reason
+ for ignoring the test.
+
+
+
+
+ Constructs the attribute giving a reason for ignoring the test
+
+ The reason for ignoring the test
+
+
+
+ The reason for ignoring a test
+
+
+
+
+ Attribute used to mark a class that contains one-time SetUp
+ and/or TearDown methods that apply to all the tests in a
+ namespace or an assembly.
+
+
+
+
+ Attribute used to mark a static (shared in VB) property
+ that returns a list of tests.
+
+
+
+
+ Attribute used to identify a method that is called
+ immediately after each test is run. The method is
+ guaranteed to be called, even if an exception is thrown.
+
+
+
+
+ Adding this attribute to a method within a
+ class makes the method callable from the NUnit test runner. There is a property
+ called Description which is optional which you can provide a more detailed test
+ description. This class cannot be inherited.
+
+
+
+ [TestFixture]
+ public class Fixture
+ {
+ [Test]
+ public void MethodToTest()
+ {}
+
+ [Test(Description = "more detailed description")]
+ publc void TestDescriptionMethod()
+ {}
+ }
+
+
+
+
+
+ Descriptive text for this test
+
+
+
+
+ [TestFixture]
+ public class ExampleClass
+ {}
+
+
+
+
+ Default constructor
+
+
+
+
+ Construct with a object[] representing a set of arguments.
+ In .NET 2.0, the arguments may later be separated into
+ type arguments and constructor arguments.
+
+
+
+
+
+ Descriptive text for this fixture
+
+
+
+
+ The arguments originally provided to the attribute
+
+
+
+
+ Gets or sets a value indicating whether this should be ignored.
+
+ true if ignore; otherwise, false.
+
+
+
+ Gets or sets the ignore reason. May set Ignored as a side effect.
+
+ The ignore reason.
+
+
+
+ Get or set the type arguments. If not set
+ explicitly, any leading arguments that are
+ Types are taken as type arguments.
+
+
+
+
+ RequiredAddinAttribute may be used to indicate the names of any addins
+ that must be present in order to run some or all of the tests in an
+ assembly. If the addin is not loaded, the entire assembly is marked
+ as NotRunnable.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The required addin.
+
+
+
+ Gets the name of required addin.
+
+ The required addin name.
+
+
+
+ Marks a test to use a combinatorial join of any argument data
+ provided. NUnit will create a test case for every combination of
+ the arguments provided. This can result in a large number of test
+ cases and so should be used judiciously. This is the default join
+ type, so the attribute need not be used except as documentation.
+
+
+
+
+ Default constructor
+
+
+
+
+ Marks a test to use pairwise join of any argument data provided.
+ NUnit will attempt too excercise every pair of argument values at
+ least once, using as small a number of test cases as it can. With
+ only two arguments, this is the same as a combinatorial join.
+
+
+
+
+ Default constructor
+
+
+
+
+ Marks a test to use a sequential join of any argument data
+ provided. NUnit will use arguements for each parameter in
+ sequence, generating test cases up to the largest number
+ of argument values provided and using null for any arguments
+ for which it runs out of values. Normally, this should be
+ used with the same number of arguments for each parameter.
+
+
+
+
+ Default constructor
+
+
+
+
+ Abstract base class for attributes that apply to parameters
+ and supply data for the parameter.
+
+
+
+
+ Gets the data to be provided to the specified parameter
+
+
+
+
+ ValuesAttribute is used to provide literal arguments for
+ an individual parameter of a test.
+
+
+
+
+ The collection of data to be returned. Must
+ be set by any derived attribute classes.
+ We use an object[] so that the individual
+ elements may have their type changed in GetData
+ if necessary.
+
+
+
+
+ Construct with one argument
+
+
+
+
+
+ Construct with two arguments
+
+
+
+
+
+
+ Construct with three arguments
+
+
+
+
+
+
+
+ Construct with an array of arguments
+
+
+
+
+
+ Get the collection of values to be used as arguments
+
+
+
+
+ RandomAttribute is used to supply a set of random values
+ to a single parameter of a parameterized test.
+
+
+
+
+ Construct a set of doubles from 0.0 to 1.0,
+ specifying only the count.
+
+
+
+
+
+ Construct a set of doubles from min to max
+
+
+
+
+
+
+
+ Construct a set of ints from min to max
+
+
+
+
+
+
+
+ Get the collection of values to be used as arguments
+
+
+
+
+ RangeAttribute is used to supply a range of values to an
+ individual parameter of a parameterized test.
+
+
+
+
+ Construct a range of ints using default step of 1
+
+
+
+
+
+
+ Construct a range of ints specifying the step size
+
+
+
+
+
+
+
+ Construct a range of longs
+
+
+
+
+
+
+
+ Construct a range of doubles
+
+
+
+
+
+
+
+ Construct a range of floats
+
+
+
+
+
+
+
+ Helper class with properties and methods that supply
+ a number of constraints used in Asserts.
+
+
+
+
+ Returns a new PropertyConstraintExpression, which will either
+ test for the existence of the named property on the object
+ being tested or apply any following constraint to that property.
+
+
+
+
+ Returns a new AttributeConstraint checking for the
+ presence of a particular attribute on an object.
+
+
+
+
+ Returns a new AttributeConstraint checking for the
+ presence of a particular attribute on an object.
+
+
+
+
+ Returns a new CollectionContainsConstraint checking for the
+ presence of a particular object in the collection.
+
+
+
+
+ Returns a ConstraintExpression that negates any
+ following constraint.
+
+
+
+
+ Returns a ConstraintExpression, which will apply
+ the following constraint to all members of a collection,
+ succeeding if all of them succeed.
+
+
+
+
+ Returns a ConstraintExpression, which will apply
+ the following constraint to all members of a collection,
+ succeeding if at least one of them succeeds.
+
+
+
+
+ Returns a ConstraintExpression, which will apply
+ the following constraint to all members of a collection,
+ succeeding if all of them fail.
+
+
+
+
+ Returns a new ConstraintExpression, which will apply the following
+ constraint to the Length property of the object being tested.
+
+
+
+
+ Returns a new ConstraintExpression, which will apply the following
+ constraint to the Count property of the object being tested.
+
+
+
+
+ Returns a new ConstraintExpression, which will apply the following
+ constraint to the Message property of the object being tested.
+
+
+
+
+ Returns a new ConstraintExpression, which will apply the following
+ constraint to the InnerException property of the object being tested.
+
+
+
+
+ Helper class with properties and methods that supply
+ a number of constraints used in Asserts.
+
+
+
+
+ Returns a constraint that tests two items for equality
+
+
+
+
+ Returns a constraint that tests that two references are the same object
+
+
+
+
+ Returns a constraint that tests whether the
+ actual value is greater than the suppled argument
+
+
+
+
+ Returns a constraint that tests whether the
+ actual value is greater than or equal to the suppled argument
+
+
+
+
+ Returns a constraint that tests whether the
+ actual value is greater than or equal to the suppled argument
+
+
+
+
+ Returns a constraint that tests whether the
+ actual value is less than the suppled argument
+
+
+
+
+ Returns a constraint that tests whether the
+ actual value is less than or equal to the suppled argument
+
+
+
+
+ Returns a constraint that tests whether the
+ actual value is less than or equal to the suppled argument
+
+
+
+
+ Returns a constraint that tests whether the actual
+ value is of the exact type supplied as an argument.
+
+
+
+
+ Returns a constraint that tests whether the actual
+ value is of the exact type supplied as an argument.
+
+
+
+
+ Returns a constraint that tests whether the actual value
+ is of the type supplied as an argument or a derived type.
+
+
+
+
+ Returns a constraint that tests whether the actual value
+ is of the type supplied as an argument or a derived type.
+
+
+
+
+ Returns a constraint that tests whether the actual value
+ is of the type supplied as an argument or a derived type.
+
+
+
+
+ Returns a constraint that tests whether the actual value
+ is of the type supplied as an argument or a derived type.
+
+
+
+
+ Returns a constraint that tests whether the actual value
+ is assignable from the type supplied as an argument.
+
+
+
+
+ Returns a constraint that tests whether the actual value
+ is assignable from the type supplied as an argument.
+
+
+
+
+ Returns a constraint that tests whether the actual value
+ is assignable from the type supplied as an argument.
+
+
+
+
+ Returns a constraint that tests whether the actual value
+ is assignable from the type supplied as an argument.
+
+
+
+
+ Returns a constraint that tests whether the actual value
+ is a collection containing the same elements as the
+ collection supplied as an argument.
+
+
+
+
+ Returns a constraint that tests whether the actual value
+ is a subset of the collection supplied as an argument.
+
+
+
+
+ Returns a constraint that succeeds if the actual
+ value contains the substring supplied as an argument.
+
+
+
+
+ Returns a constraint that succeeds if the actual
+ value starts with the substring supplied as an argument.
+
+
+
+
+ Returns a constraint that succeeds if the actual
+ value ends with the substring supplied as an argument.
+
+
+
+
+ Returns a constraint that succeeds if the actual
+ value matches the Regex pattern supplied as an argument.
+
+
+
+
+ Returns a constraint that tests whether the path provided
+ is the same as an expected path after canonicalization.
+
+
+
+
+ Returns a constraint that tests whether the path provided
+ is the same path or under an expected path after canonicalization.
+
+
+
+
+ Returns a constraint that tests whether the actual value falls
+ within a specified range.
+
+
+
+
+ Returns a ConstraintExpression that negates any
+ following constraint.
+
+
+
+
+ Returns a ConstraintExpression, which will apply
+ the following constraint to all members of a collection,
+ succeeding if all of them succeed.
+
+
+
+
+ Returns a constraint that tests for null
+
+
+
+
+ Returns a constraint that tests for True
+
+
+
+
+ Returns a constraint that tests for False
+
+
+
+
+ Returns a constraint that tests for NaN
+
+
+
+
+ Returns a constraint that tests for empty
+
+
+
+
+ Returns a constraint that tests whether a collection
+ contains all unique items.
+
+
+
+
+ Returns a constraint that tests whether an object graph is serializable in binary format.
+
+
+
+
+ Returns a constraint that tests whether an object graph is serializable in xml format.
+
+
+
+
+ Returns a constraint that tests whether a collection is ordered
+
+
+
+
+ The List class is a helper class with properties and methods
+ that supply a number of constraints used with lists and collections.
+
+
+
+
+ List.Map returns a ListMapper, which can be used to map
+ the original collection to another collection.
+
+
+
+
+
+
+ ListMapper is used to transform a collection used as an actual argument
+ producing another collection to be used in the assertion.
+
+
+
+
+ Construct a ListMapper based on a collection
+
+ The collection to be transformed
+
+
+
+ Produces a collection containing all the values of a property
+
+ The collection of property values
+
+
+
+
+ Helper class with static methods used to supply constraints
+ that operate on strings.
+
+
+
+
+ Returns a constraint that succeeds if the actual
+ value contains the substring supplied as an argument.
+
+
+
+
+ Returns a constraint that fails if the actual
+ value contains the substring supplied as an argument.
+
+
+
+
+ Returns a constraint that succeeds if the actual
+ value starts with the substring supplied as an argument.
+
+
+
+
+ Returns a constraint that fails if the actual
+ value starts with the substring supplied as an argument.
+
+
+
+
+ Returns a constraint that succeeds if the actual
+ value ends with the substring supplied as an argument.
+
+
+
+
+ Returns a constraint that fails if the actual
+ value ends with the substring supplied as an argument.
+
+
+
+
+ Returns a constraint that succeeds if the actual
+ value matches the Regex pattern supplied as an argument.
+
+
+
+
+ Returns a constraint that fails if the actual
+ value matches the pattern supplied as an argument.
+
+
+
+
+ Returns a ConstraintExpression, which will apply
+ the following constraint to all members of a collection,
+ succeeding if all of them succeed.
+
+
+
+
+ Helper class with properties and methods that supply
+ constraints that operate on exceptions.
+
+
+
+
+ Creates a constraint specifying the exact type of exception expected
+
+
+
+
+ Creates a constraint specifying the exact type of exception expected
+
+
+
+
+ Creates a constraint specifying the type of exception expected
+
+
+
+
+ Creates a constraint specifying the type of exception expected
+
+
+
+
+ Creates a constraint specifying an expected exception
+
+
+
+
+ Creates a constraint specifying an exception with a given InnerException
+
+
+
+
+ Creates a constraint specifying an expected TargetInvocationException
+
+
+
+
+ Creates a constraint specifying an expected TargetInvocationException
+
+
+
+
+ Creates a constraint specifying an expected TargetInvocationException
+
+
+
+
+ Creates a constraint specifying that no exception is thrown
+
+
+
+
+ FactoryAttribute indicates the source to be used to
+ provide test cases for a test method.
+
+
+
+
+ Construct with the name of the factory - for use with languages
+ that don't support params arrays.
+
+ An array of the names of the factories that will provide data
+
+
+
+ Construct with a Type and name - for use with languages
+ that don't support params arrays.
+
+ The Type that will provide data
+ The name of the method, property or field that will provide data
+
+
+
+ The name of a the method, property or fiend to be used as a source
+
+
+
+
+ A Type to be used as a source
+
+
+
+
+ ValueSourceAttribute indicates the source to be used to
+ provide data for one parameter of a test method.
+
+
+
+
+ Construct with the name of the factory - for use with languages
+ that don't support params arrays.
+
+ The name of the data source to be used
+
+
+
+ Construct with a Type and name - for use with languages
+ that don't support params arrays.
+
+ The Type that will provide data
+ The name of the method, property or field that will provide data
+
+
+
+ The name of a the method, property or fiend to be used as a source
+
+
+
+
+ A Type to be used as a source
+
+
+
+
+ The Iz class is a synonym for Is intended for use in VB,
+ which regards Is as a keyword.
+
+
+
+
+ WUsed on a method, marks the test with a timeout value in milliseconds.
+ The test will be run in a separate thread and is cancelled if the timeout
+ is exceeded. Used on a method or assembly, sets the default timeout
+ for all contained test methods.
+
+
+
+
+ Construct a TimeoutAttribute given a time in milliseconds
+
+ The timeout value in milliseconds
+
+
+
+ Marks a test that must run in the STA, causing it
+ to run in a separate thread if necessary.
+
+ On methods, you may also use STAThreadAttribute
+ to serve the same purpose.
+
+
+
+
+ Construct a RequiresSTAAttribute
+
+
+
+
+ Marks a test that must run in the MTA, causing it
+ to run in a separate thread if necessary.
+
+ On methods, you may also use MTAThreadAttribute
+ to serve the same purpose.
+
+
+
+
+ Construct a RequiresMTAAttribute
+
+
+
+
+ Marks a test that must run on a separate thread.
+
+
+
+
+ Construct a RequiresThreadAttribute
+
+
+
+
+ Construct a RequiresThreadAttribute, specifying the apartment
+
+
+
+
+ Summary description for MaxTimeAttribute.
+
+
+
+
+ Construct a MaxTimeAttribute, given a time in milliseconds.
+
+ The maximum elapsed time in milliseconds
+
+
+
+ RepeatAttribute may be applied to test case in order
+ to run it multiple times.
+
+
+
+
+ Construct a RepeatAttribute
+
+ The number of times to run the test
+
+
+
+ Provides static methods to express the assumptions
+ that must be met for a test to give a meaningful
+ result. If an assumption is not met, the test
+ should produce an inconclusive result.
+
+
+
+
+ The Equals method throws an AssertionException. This is done
+ to make sure there is no mistake by calling this function.
+
+
+
+
+
+
+ override the default ReferenceEquals to throw an AssertionException. This
+ implementation makes sure there is no mistake in calling this function
+ as part of Assert.
+
+
+
+
+
+
+ Apply a constraint to an actual value, succeeding if the constraint
+ is satisfied and throwing an InconclusiveException on failure.
+
+ A Constraint expression to be applied
+ The actual value to test
+
+
+
+ Apply a constraint to an actual value, succeeding if the constraint
+ is satisfied and throwing an InconclusiveException on failure.
+
+ A Constraint expression to be applied
+ The actual value to test
+ The message that will be displayed on failure
+
+
+
+ Apply a constraint to an actual value, succeeding if the constraint
+ is satisfied and throwing an InconclusiveException on failure.
+
+ A Constraint expression to be applied
+ The actual value to test
+ The message that will be displayed on failure
+ Arguments to be used in formatting the message
+
+
+
+ Apply a constraint to an actual value, succeeding if the constraint
+ is satisfied and throwing an InconclusiveException on failure.
+
+ A Constraint expression to be applied
+ An ActualValueDelegate returning the value to be tested
+
+
+
+ Apply a constraint to an actual value, succeeding if the constraint
+ is satisfied and throwing an InconclusiveException on failure.
+
+ A Constraint expression to be applied
+ An ActualValueDelegate returning the value to be tested
+ The message that will be displayed on failure
+
+
+
+ Apply a constraint to an actual value, succeeding if the constraint
+ is satisfied and throwing an InconclusiveException on failure.
+
+ An ActualValueDelegate returning the value to be tested
+ A Constraint expression to be applied
+ The message that will be displayed on failure
+ Arguments to be used in formatting the message
+
+
+
+ Apply a constraint to a referenced value, succeeding if the constraint
+ is satisfied and throwing an InconclusiveException on failure.
+
+ A Constraint expression to be applied
+ The actual value to test
+
+
+
+ Apply a constraint to a referenced value, succeeding if the constraint
+ is satisfied and throwing an InconclusiveException on failure.
+
+ A Constraint expression to be applied
+ The actual value to test
+ The message that will be displayed on failure
+
+
+
+ Apply a constraint to a referenced value, succeeding if the constraint
+ is satisfied and throwing an InconclusiveException on failure.
+
+ A Constraint expression to be applied
+ The actual value to test
+ The message that will be displayed on failure
+ Arguments to be used in formatting the message
+
+
+
+ Asserts that a condition is true. If the condition is false the method throws
+ an .
+
+ The evaluated condition
+ The message to display if the condition is false
+ Arguments to be used in formatting the message
+
+
+
+ Asserts that a condition is true. If the condition is false the method throws
+ an .
+
+ The evaluated condition
+ The message to display if the condition is false
+
+
+
+ Asserts that a condition is true. If the condition is false the
+ method throws an .
+
+ The evaluated condition
+
+
+
+ Asserts that the code represented by a delegate throws an exception
+ that satisfies the constraint provided.
+
+ A TestDelegate to be executed
+ A ThrowsConstraint used in the test
+
+
+
+ Randomizer returns a set of random values in a repeatable
+ way, to allow re-running of tests if necessary.
+
+
+
+
+ Get a randomizer for a particular member, returning
+ one that has already been created if it exists.
+ This ensures that the same values are generated
+ each time the tests are reloaded.
+
+
+
+
+ Get a randomizer for a particular parameter, returning
+ one that has already been created if it exists.
+ This ensures that the same values are generated
+ each time the tests are reloaded.
+
+
+
+
+ Construct a randomizer using a random seed
+
+
+
+
+ Construct a randomizer using a specified seed
+
+
+
+
+ Return an array of random doubles between 0.0 and 1.0.
+
+
+
+
+
+
+ Return an array of random doubles with values in a specified range.
+
+
+
+
+ Return an array of random ints with values in a specified range.
+
+
+
+
+ Get a random seed for use in creating a randomizer.
+
+
+
+
+ Adding this attribute to a method within a
+ class makes the method callable from the NUnit test runner. There is a property
+ called Description which is optional which you can provide a more detailed test
+ description. This class cannot be inherited.
+
+
+
+ [TestFixture]
+ public class Fixture
+ {
+ [Test]
+ public void MethodToTest()
+ {}
+
+ [Test(Description = "more detailed description")]
+ publc void TestDescriptionMethod()
+ {}
+ }
+
+
+
+
+
+ Used to mark a field for use as a datapoint when executing a theory
+ within the same fixture that requires an argument of the field's Type.
+
+
+
+
+ Used to mark an array as containing a set of datapoints to be used
+ executing a theory within the same fixture that requires an argument
+ of the Type of the array elements.
+
+
+
+
+ The SpecialValue enum is used to represent TestCase arguments
+ that cannot be used as arguments to an Attribute.
+
+
+
+
+ Null represents a null value, which cannot be used as an
+ argument to an attriute under .NET 1.x
+
+
+
+
+ Summary description for SetUICultureAttribute.
+
+
+
+
+ Construct given the name of a culture
+
+
+
+
+
+ Delegate used by tests that execute code and
+ capture any thrown exception.
+
+
+
+
+ The Assert class contains a collection of static methods that
+ implement the most common assertions used in NUnit.
+
+
+
+
+ We don't actually want any instances of this object, but some people
+ like to inherit from it to add other static methods. Hence, the
+ protected constructor disallows any instances of this object.
+
+
+
+
+ The Equals method throws an AssertionException. This is done
+ to make sure there is no mistake by calling this function.
+
+
+
+
+
+
+ override the default ReferenceEquals to throw an AssertionException. This
+ implementation makes sure there is no mistake in calling this function
+ as part of Assert.
+
+
+
+
+
+
+ Helper for Assert.AreEqual(double expected, double actual, ...)
+ allowing code generation to work consistently.
+
+ The expected value
+ The actual value
+ The maximum acceptable difference between the
+ the expected and the actual
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Throws a with the message and arguments
+ that are passed in. This allows a test to be cut short, with a result
+ of success returned to NUnit.
+
+ The message to initialize the with.
+ Arguments to be used in formatting the message
+
+
+
+ Throws a with the message and arguments
+ that are passed in. This allows a test to be cut short, with a result
+ of success returned to NUnit.
+
+ The message to initialize the with.
+
+
+
+ Throws a with the message and arguments
+ that are passed in. This allows a test to be cut short, with a result
+ of success returned to NUnit.
+
+
+
+
+ Throws an with the message and arguments
+ that are passed in. This is used by the other Assert functions.
+
+ The message to initialize the with.
+ Arguments to be used in formatting the message
+
+
+
+ Throws an with the message that is
+ passed in. This is used by the other Assert functions.
+
+ The message to initialize the with.
+
+
+
+ Throws an .
+ This is used by the other Assert functions.
+
+
+
+
+ Throws an with the message and arguments
+ that are passed in. This causes the test to be reported as ignored.
+
+ The message to initialize the with.
+ Arguments to be used in formatting the message
+
+
+
+ Throws an with the message that is
+ passed in. This causes the test to be reported as ignored.
+
+ The message to initialize the with.
+
+
+
+ Throws an .
+ This causes the test to be reported as ignored.
+
+
+
+
+ Throws an with the message and arguments
+ that are passed in. This causes the test to be reported as inconclusive.
+
+ The message to initialize the with.
+ Arguments to be used in formatting the message
+
+
+
+ Throws an with the message that is
+ passed in. This causes the test to be reported as inconclusive.
+
+ The message to initialize the with.
+
+
+
+ Throws an .
+ This causes the test to be reported as Inconclusive.
+
+
+
+
+ Apply a constraint to an actual value, succeeding if the constraint
+ is satisfied and throwing an assertion exception on failure.
+
+ A Constraint to be applied
+ The actual value to test
+
+
+
+ Apply a constraint to an actual value, succeeding if the constraint
+ is satisfied and throwing an assertion exception on failure.
+
+ A Constraint to be applied
+ The actual value to test
+ The message that will be displayed on failure
+
+
+
+ Apply a constraint to an actual value, succeeding if the constraint
+ is satisfied and throwing an assertion exception on failure.
+
+ A Constraint expression to be applied
+ The actual value to test
+ The message that will be displayed on failure
+ Arguments to be used in formatting the message
+
+
+
+ Apply a constraint to an actual value, succeeding if the constraint
+ is satisfied and throwing an assertion exception on failure.
+
+ A Constraint expression to be applied
+ An ActualValueDelegate returning the value to be tested
+
+
+
+ Apply a constraint to an actual value, succeeding if the constraint
+ is satisfied and throwing an assertion exception on failure.
+
+ A Constraint expression to be applied
+ An ActualValueDelegate returning the value to be tested
+ The message that will be displayed on failure
+
+
+
+ Apply a constraint to an actual value, succeeding if the constraint
+ is satisfied and throwing an assertion exception on failure.
+
+ An ActualValueDelegate returning the value to be tested
+ A Constraint expression to be applied
+ The message that will be displayed on failure
+ Arguments to be used in formatting the message
+
+
+
+ Apply a constraint to a referenced value, succeeding if the constraint
+ is satisfied and throwing an assertion exception on failure.
+
+ A Constraint to be applied
+ The actual value to test
+
+
+
+ Apply a constraint to a referenced value, succeeding if the constraint
+ is satisfied and throwing an assertion exception on failure.
+
+ A Constraint to be applied
+ The actual value to test
+ The message that will be displayed on failure
+
+
+
+ Apply a constraint to a referenced value, succeeding if the constraint
+ is satisfied and throwing an assertion exception on failure.
+
+ A Constraint to be applied
+ The actual value to test
+ The message that will be displayed on failure
+ Arguments to be used in formatting the message
+
+
+
+ Asserts that a condition is true. If the condition is false the method throws
+ an .
+
+ The evaluated condition
+ The message to display if the condition is false
+ Arguments to be used in formatting the message
+
+
+
+ Asserts that a condition is true. If the condition is false the method throws
+ an .
+
+ The evaluated condition
+ The message to display if the condition is false
+
+
+
+ Asserts that a condition is true. If the condition is false the method throws
+ an .
+
+ The evaluated condition
+
+
+
+ Asserts that the code represented by a delegate throws an exception
+ that satisfies the constraint provided.
+
+ A TestDelegate to be executed
+ A ThrowsConstraint used in the test
+
+
+
+ Verifies that a delegate throws a particular exception when called.
+
+ A constraint to be satisfied by the exception
+ A TestSnippet delegate
+ The message that will be displayed on failure
+ Arguments to be used in formatting the message
+
+
+
+ Verifies that a delegate throws a particular exception when called.
+
+ A constraint to be satisfied by the exception
+ A TestSnippet delegate
+ The message that will be displayed on failure
+
+
+
+ Verifies that a delegate throws a particular exception when called.
+
+ A constraint to be satisfied by the exception
+ A TestSnippet delegate
+
+
+
+ Verifies that a delegate throws a particular exception when called.
+
+ The exception Type expected
+ A TestSnippet delegate
+ The message that will be displayed on failure
+ Arguments to be used in formatting the message
+
+
+
+ Verifies that a delegate throws a particular exception when called.
+
+ The exception Type expected
+ A TestSnippet delegate
+ The message that will be displayed on failure
+
+
+
+ Verifies that a delegate throws a particular exception when called.
+
+ The exception Type expected
+ A TestSnippet delegate
+
+
+
+ Verifies that a delegate throws a particular exception when called.
+
+ Type of the expected exception
+ A TestSnippet delegate
+ The message that will be displayed on failure
+ Arguments to be used in formatting the message
+
+
+
+ Verifies that a delegate throws a particular exception when called.
+
+ Type of the expected exception
+ A TestSnippet delegate
+ The message that will be displayed on failure
+
+
+
+ Verifies that a delegate throws a particular exception when called.
+
+ Type of the expected exception
+ A TestSnippet delegate
+
+
+
+ Verifies that a delegate throws an exception when called
+ and returns it.
+
+ A TestDelegate
+ The message that will be displayed on failure
+ Arguments to be used in formatting the message
+
+
+
+ Verifies that a delegate throws an exception when called
+ and returns it.
+
+ A TestDelegate
+ The message that will be displayed on failure
+
+
+
+ Verifies that a delegate throws an exception when called
+ and returns it.
+
+ A TestDelegate
+
+
+
+ Verifies that a delegate throws an exception of a certain Type
+ or one derived from it when called and returns it.
+
+ The expected Exception Type
+ A TestDelegate
+ The message that will be displayed on failure
+ Arguments to be used in formatting the message
+
+
+
+ Verifies that a delegate throws an exception of a certain Type
+ or one derived from it when called and returns it.
+
+ The expected Exception Type
+ A TestDelegate
+ The message that will be displayed on failure
+
+
+
+ Verifies that a delegate throws an exception of a certain Type
+ or one derived from it when called and returns it.
+
+ The expected Exception Type
+ A TestDelegate
+
+
+
+ Verifies that a delegate throws an exception of a certain Type
+ or one derived from it when called and returns it.
+
+ The expected Exception Type
+ A TestDelegate
+ The message that will be displayed on failure
+ Arguments to be used in formatting the message
+
+
+
+ Verifies that a delegate throws an exception of a certain Type
+ or one derived from it when called and returns it.
+
+ The expected Exception Type
+ A TestDelegate
+ The message that will be displayed on failure
+
+
+
+ Verifies that a delegate throws an exception of a certain Type
+ or one derived from it when called and returns it.
+
+ The expected Exception Type
+ A TestDelegate
+
+
+
+ Verifies that a delegate does not throw an exception
+
+ A TestSnippet delegate
+ The message that will be displayed on failure
+ Arguments to be used in formatting the message
+
+
+
+ Verifies that a delegate does not throw an exception.
+
+ A TestSnippet delegate
+ The message that will be displayed on failure
+
+
+
+ Verifies that a delegate does not throw an exception.
+
+ A TestSnippet delegate
+
+
+
+ Asserts that a condition is true. If the condition is false the method throws
+ an .
+
+ The evaluated condition
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Asserts that a condition is true. If the condition is false the method throws
+ an .
+
+ The evaluated condition
+ The message to display in case of failure
+
+
+
+ Asserts that a condition is true. If the condition is false the method throws
+ an .
+
+ The evaluated condition
+
+
+
+ Asserts that a condition is true. If the condition is false the method throws
+ an .
+
+ The evaluated condition
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Asserts that a condition is true. If the condition is false the method throws
+ an .
+
+ The evaluated condition
+ The message to display in case of failure
+
+
+
+ Asserts that a condition is true. If the condition is false the method throws
+ an .
+
+ The evaluated condition
+
+
+
+ Asserts that a condition is false. If the condition is true the method throws
+ an .
+
+ The evaluated condition
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Asserts that a condition is false. If the condition is true the method throws
+ an .
+
+ The evaluated condition
+ The message to display in case of failure
+
+
+
+ Asserts that a condition is false. If the condition is true the method throws
+ an .
+
+ The evaluated condition
+
+
+
+ Asserts that a condition is false. If the condition is true the method throws
+ an .
+
+ The evaluated condition
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Asserts that a condition is false. If the condition is true the method throws
+ an .
+
+ The evaluated condition
+ The message to display in case of failure
+
+
+
+ Asserts that a condition is false. If the condition is true the method throws
+ an .
+
+ The evaluated condition
+
+
+
+ Verifies that the object that is passed in is not equal to null
+ If the object is null then an
+ is thrown.
+
+ The object that is to be tested
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the object that is passed in is not equal to null
+ If the object is null then an
+ is thrown.
+
+ The object that is to be tested
+ The message to display in case of failure
+
+
+
+ Verifies that the object that is passed in is not equal to null
+ If the object is null then an
+ is thrown.
+
+ The object that is to be tested
+
+
+
+ Verifies that the object that is passed in is not equal to null
+ If the object is null then an
+ is thrown.
+
+ The object that is to be tested
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the object that is passed in is not equal to null
+ If the object is null then an
+ is thrown.
+
+ The object that is to be tested
+ The message to display in case of failure
+
+
+
+ Verifies that the object that is passed in is not equal to null
+ If the object is null then an
+ is thrown.
+
+ The object that is to be tested
+
+
+
+ Verifies that the object that is passed in is equal to null
+ If the object is not null then an
+ is thrown.
+
+ The object that is to be tested
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the object that is passed in is equal to null
+ If the object is not null then an
+ is thrown.
+
+ The object that is to be tested
+ The message to display in case of failure
+
+
+
+ Verifies that the object that is passed in is equal to null
+ If the object is not null then an
+ is thrown.
+
+ The object that is to be tested
+
+
+
+ Verifies that the object that is passed in is equal to null
+ If the object is not null then an
+ is thrown.
+
+ The object that is to be tested
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the object that is passed in is equal to null
+ If the object is not null then an
+ is thrown.
+
+ The object that is to be tested
+ The message to display in case of failure
+
+
+
+ Verifies that the object that is passed in is equal to null
+ If the object is not null then an
+ is thrown.
+
+ The object that is to be tested
+
+
+
+ Verifies that the double that is passed in is an NaN value.
+ If the object is not NaN then an
+ is thrown.
+
+ The value that is to be tested
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the double that is passed in is an NaN value.
+ If the object is not NaN then an
+ is thrown.
+
+ The value that is to be tested
+ The message to display in case of failure
+
+
+
+ Verifies that the double that is passed in is an NaN value.
+ If the object is not NaN then an
+ is thrown.
+
+ The value that is to be tested
+
+
+
+ Verifies that the double that is passed in is an NaN value.
+ If the object is not NaN then an
+ is thrown.
+
+ The value that is to be tested
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the double that is passed in is an NaN value.
+ If the object is not NaN then an
+ is thrown.
+
+ The value that is to be tested
+ The message to display in case of failure
+
+
+
+ Verifies that the double that is passed in is an NaN value.
+ If the object is not NaN then an
+ is thrown.
+
+ The value that is to be tested
+
+
+
+ Assert that a string is empty - that is equal to string.Empty
+
+ The string to be tested
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Assert that a string is empty - that is equal to string.Empty
+
+ The string to be tested
+ The message to display in case of failure
+
+
+
+ Assert that a string is empty - that is equal to string.Empty
+
+ The string to be tested
+
+
+
+ Assert that an array, list or other collection is empty
+
+ An array, list or other collection implementing ICollection
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Assert that an array, list or other collection is empty
+
+ An array, list or other collection implementing ICollection
+ The message to display in case of failure
+
+
+
+ Assert that an array, list or other collection is empty
+
+ An array, list or other collection implementing ICollection
+
+
+
+ Assert that a string is not empty - that is not equal to string.Empty
+
+ The string to be tested
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Assert that a string is not empty - that is not equal to string.Empty
+
+ The string to be tested
+ The message to display in case of failure
+
+
+
+ Assert that a string is not empty - that is not equal to string.Empty
+
+ The string to be tested
+
+
+
+ Assert that an array, list or other collection is not empty
+
+ An array, list or other collection implementing ICollection
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Assert that an array, list or other collection is not empty
+
+ An array, list or other collection implementing ICollection
+ The message to display in case of failure
+
+
+
+ Assert that an array, list or other collection is not empty
+
+ An array, list or other collection implementing ICollection
+
+
+
+ Assert that a string is either null or equal to string.Empty
+
+ The string to be tested
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Assert that a string is either null or equal to string.Empty
+
+ The string to be tested
+ The message to display in case of failure
+
+
+
+ Assert that a string is either null or equal to string.Empty
+
+ The string to be tested
+
+
+
+ Assert that a string is not null or empty
+
+ The string to be tested
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Assert that a string is not null or empty
+
+ The string to be tested
+ The message to display in case of failure
+
+
+
+ Assert that a string is not null or empty
+
+ The string to be tested
+
+
+
+ Asserts that an object may be assigned a value of a given Type.
+
+ The expected Type.
+ The object under examination
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Asserts that an object may be assigned a value of a given Type.
+
+ The expected Type.
+ The object under examination
+ The message to display in case of failure
+
+
+
+ Asserts that an object may be assigned a value of a given Type.
+
+ The expected Type.
+ The object under examination
+
+
+
+ Asserts that an object may be assigned a value of a given Type.
+
+ The expected Type.
+ The object under examination
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Asserts that an object may be assigned a value of a given Type.
+
+ The expected Type.
+ The object under examination
+ The message to display in case of failure
+
+
+
+ Asserts that an object may be assigned a value of a given Type.
+
+ The expected Type.
+ The object under examination
+
+
+
+ Asserts that an object may not be assigned a value of a given Type.
+
+ The expected Type.
+ The object under examination
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Asserts that an object may not be assigned a value of a given Type.
+
+ The expected Type.
+ The object under examination
+ The message to display in case of failure
+
+
+
+ Asserts that an object may not be assigned a value of a given Type.
+
+ The expected Type.
+ The object under examination
+
+
+
+ Asserts that an object may not be assigned a value of a given Type.
+
+ The expected Type.
+ The object under examination
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Asserts that an object may not be assigned a value of a given Type.
+
+ The expected Type.
+ The object under examination
+ The message to display in case of failure
+
+
+
+ Asserts that an object may not be assigned a value of a given Type.
+
+ The expected Type.
+ The object under examination
+
+
+
+ Asserts that an object is an instance of a given type.
+
+ The expected Type
+ The object being examined
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Asserts that an object is an instance of a given type.
+
+ The expected Type
+ The object being examined
+ The message to display in case of failure
+
+
+
+ Asserts that an object is an instance of a given type.
+
+ The expected Type
+ The object being examined
+
+
+
+ Asserts that an object is an instance of a given type.
+
+ The expected Type
+ The object being examined
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Asserts that an object is an instance of a given type.
+
+ The expected Type
+ The object being examined
+ The message to display in case of failure
+
+
+
+ Asserts that an object is an instance of a given type.
+
+ The expected Type
+ The object being examined
+
+
+
+ Asserts that an object is an instance of a given type.
+
+ The expected Type
+ The object being examined
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Asserts that an object is an instance of a given type.
+
+ The expected Type
+ The object being examined
+ The message to display in case of failure
+
+
+
+ Asserts that an object is an instance of a given type.
+
+ The expected Type
+ The object being examined
+
+
+
+ Asserts that an object is not an instance of a given type.
+
+ The expected Type
+ The object being examined
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Asserts that an object is not an instance of a given type.
+
+ The expected Type
+ The object being examined
+ The message to display in case of failure
+
+
+
+ Asserts that an object is not an instance of a given type.
+
+ The expected Type
+ The object being examined
+
+
+
+ Asserts that an object is not an instance of a given type.
+
+ The expected Type
+ The object being examined
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Asserts that an object is not an instance of a given type.
+
+ The expected Type
+ The object being examined
+ The message to display in case of failure
+
+
+
+ Asserts that an object is not an instance of a given type.
+
+ The expected Type
+ The object being examined
+
+
+
+ Asserts that an object is not an instance of a given type.
+
+ The expected Type
+ The object being examined
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Asserts that an object is not an instance of a given type.
+
+ The expected Type
+ The object being examined
+ The message to display in case of failure
+
+
+
+ Asserts that an object is not an instance of a given type.
+
+ The expected Type
+ The object being examined
+
+
+
+ Verifies that two values are equal. If they are not, then an
+ is thrown.
+
+ The expected value
+ The actual value
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that two values are equal. If they are not, then an
+ is thrown.
+
+ The expected value
+ The actual value
+ The message to display in case of failure
+
+
+
+ Verifies that two values are equal. If they are not, then an
+ is thrown.
+
+ The expected value
+ The actual value
+
+
+
+ Verifies that two values are equal. If they are not, then an
+ is thrown.
+
+ The expected value
+ The actual value
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that two values are equal. If they are not, then an
+ is thrown.
+
+ The expected value
+ The actual value
+ The message to display in case of failure
+
+
+
+ Verifies that two values are equal. If they are not, then an
+ is thrown.
+
+ The expected value
+ The actual value
+
+
+
+ Verifies that two values are equal. If they are not, then an
+ is thrown.
+
+ The expected value
+ The actual value
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that two values are equal. If they are not, then an
+ is thrown.
+
+ The expected value
+ The actual value
+ The message to display in case of failure
+
+
+
+ Verifies that two values are equal. If they are not, then an
+ is thrown.
+
+ The expected value
+ The actual value
+
+
+
+ Verifies that two values are equal. If they are not, then an
+ is thrown.
+
+ The expected value
+ The actual value
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that two values are equal. If they are not, then an
+ is thrown.
+
+ The expected value
+ The actual value
+ The message to display in case of failure
+
+
+
+ Verifies that two values are equal. If they are not, then an
+ is thrown.
+
+ The expected value
+ The actual value
+
+
+
+ Verifies that two values are equal. If they are not, then an
+ is thrown.
+
+ The expected value
+ The actual value
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that two values are equal. If they are not, then an
+ is thrown.
+
+ The expected value
+ The actual value
+ The message to display in case of failure
+
+
+
+ Verifies that two values are equal. If they are not, then an
+ is thrown.
+
+ The expected value
+ The actual value
+
+
+
+ Verifies that two doubles are equal considering a delta. If the
+ expected value is infinity then the delta value is ignored. If
+ they are not equal then an is
+ thrown.
+
+ The expected value
+ The actual value
+ The maximum acceptable difference between the
+ the expected and the actual
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that two doubles are equal considering a delta. If the
+ expected value is infinity then the delta value is ignored. If
+ they are not equal then an is
+ thrown.
+
+ The expected value
+ The actual value
+ The maximum acceptable difference between the
+ the expected and the actual
+ The message to display in case of failure
+
+
+
+ Verifies that two doubles are equal considering a delta. If the
+ expected value is infinity then the delta value is ignored. If
+ they are not equal then an is
+ thrown.
+
+ The expected value
+ The actual value
+ The maximum acceptable difference between the
+ the expected and the actual
+
+
+
+ Verifies that two doubles are equal considering a delta. If the
+ expected value is infinity then the delta value is ignored. If
+ they are not equal then an is
+ thrown.
+
+ The expected value
+ The actual value
+ The maximum acceptable difference between the
+ the expected and the actual
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that two doubles are equal considering a delta. If the
+ expected value is infinity then the delta value is ignored. If
+ they are not equal then an is
+ thrown.
+
+ The expected value
+ The actual value
+ The maximum acceptable difference between the
+ the expected and the actual
+ The message to display in case of failure
+
+
+
+ Verifies that two doubles are equal considering a delta. If the
+ expected value is infinity then the delta value is ignored. If
+ they are not equal then an is
+ thrown.
+
+ The expected value
+ The actual value
+ The maximum acceptable difference between the
+ the expected and the actual
+
+
+
+ Verifies that two objects are equal. Two objects are considered
+ equal if both are null, or if both have the same value. NUnit
+ has special semantics for some object types.
+ If they are not equal an is thrown.
+
+ The value that is expected
+ The actual value
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that two objects are equal. Two objects are considered
+ equal if both are null, or if both have the same value. NUnit
+ has special semantics for some object types.
+ If they are not equal an is thrown.
+
+ The value that is expected
+ The actual value
+ The message to display in case of failure
+
+
+
+ Verifies that two objects are equal. Two objects are considered
+ equal if both are null, or if both have the same value. NUnit
+ has special semantics for some object types.
+ If they are not equal an is thrown.
+
+ The value that is expected
+ The actual value
+
+
+
+ Verifies that two values are not equal. If they are equal, then an
+ is thrown.
+
+ The expected value
+ The actual value
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that two values are not equal. If they are equal, then an
+ is thrown.
+
+ The expected value
+ The actual value
+ The message to display in case of failure
+
+
+
+ Verifies that two values are not equal. If they are equal, then an
+ is thrown.
+
+ The expected value
+ The actual value
+
+
+
+ Verifies that two values are not equal. If they are equal, then an
+ is thrown.
+
+ The expected value
+ The actual value
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that two values are not equal. If they are equal, then an
+ is thrown.
+
+ The expected value
+ The actual value
+ The message to display in case of failure
+
+
+
+ Verifies that two values are not equal. If they are equal, then an
+ is thrown.
+
+ The expected value
+ The actual value
+
+
+
+ Verifies that two values are not equal. If they are equal, then an
+ is thrown.
+
+ The expected value
+ The actual value
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that two values are not equal. If they are equal, then an
+ is thrown.
+
+ The expected value
+ The actual value
+ The message to display in case of failure
+
+
+
+ Verifies that two values are not equal. If they are equal, then an
+ is thrown.
+
+ The expected value
+ The actual value
+
+
+
+ Verifies that two values are not equal. If they are equal, then an
+ is thrown.
+
+ The expected value
+ The actual value
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that two values are not equal. If they are equal, then an
+ is thrown.
+
+ The expected value
+ The actual value
+ The message to display in case of failure
+
+
+
+ Verifies that two values are not equal. If they are equal, then an
+ is thrown.
+
+ The expected value
+ The actual value
+
+
+
+ Verifies that two values are not equal. If they are equal, then an
+ is thrown.
+
+ The expected value
+ The actual value
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that two values are not equal. If they are equal, then an
+ is thrown.
+
+ The expected value
+ The actual value
+ The message to display in case of failure
+
+
+
+ Verifies that two values are not equal. If they are equal, then an
+ is thrown.
+
+ The expected value
+ The actual value
+
+
+
+ Verifies that two values are not equal. If they are equal, then an
+ is thrown.
+
+ The expected value
+ The actual value
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that two values are not equal. If they are equal, then an
+ is thrown.
+
+ The expected value
+ The actual value
+ The message to display in case of failure
+
+
+
+ Verifies that two values are not equal. If they are equal, then an
+ is thrown.
+
+ The expected value
+ The actual value
+
+
+
+ Verifies that two values are not equal. If they are equal, then an
+ is thrown.
+
+ The expected value
+ The actual value
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that two values are not equal. If they are equal, then an
+ is thrown.
+
+ The expected value
+ The actual value
+ The message to display in case of failure
+
+
+
+ Verifies that two values are not equal. If they are equal, then an
+ is thrown.
+
+ The expected value
+ The actual value
+
+
+
+ Verifies that two objects are not equal. Two objects are considered
+ equal if both are null, or if both have the same value. NUnit
+ has special semantics for some object types.
+ If they are equal an is thrown.
+
+ The value that is expected
+ The actual value
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that two objects are not equal. Two objects are considered
+ equal if both are null, or if both have the same value. NUnit
+ has special semantics for some object types.
+ If they are equal an is thrown.
+
+ The value that is expected
+ The actual value
+ The message to display in case of failure
+
+
+
+ Verifies that two objects are not equal. Two objects are considered
+ equal if both are null, or if both have the same value. NUnit
+ has special semantics for some object types.
+ If they are equal an is thrown.
+
+ The value that is expected
+ The actual value
+
+
+
+ Asserts that two objects refer to the same object. If they
+ are not the same an is thrown.
+
+ The expected object
+ The actual object
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Asserts that two objects refer to the same object. If they
+ are not the same an is thrown.
+
+ The expected object
+ The actual object
+ The message to display in case of failure
+
+
+
+ Asserts that two objects refer to the same object. If they
+ are not the same an is thrown.
+
+ The expected object
+ The actual object
+
+
+
+ Asserts that two objects do not refer to the same object. If they
+ are the same an is thrown.
+
+ The expected object
+ The actual object
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Asserts that two objects do not refer to the same object. If they
+ are the same an is thrown.
+
+ The expected object
+ The actual object
+ The message to display in case of failure
+
+
+
+ Asserts that two objects do not refer to the same object. If they
+ are the same an is thrown.
+
+ The expected object
+ The actual object
+
+
+
+ Verifies that the first value is greater than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the first value is greater than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+ The message to display in case of failure
+
+
+
+ Verifies that the first value is greater than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+
+
+
+ Verifies that the first value is greater than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the first value is greater than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+ The message to display in case of failure
+
+
+
+ Verifies that the first value is greater than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+
+
+
+ Verifies that the first value is greater than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the first value is greater than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+ The message to display in case of failure
+
+
+
+ Verifies that the first value is greater than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+
+
+
+ Verifies that the first value is greater than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the first value is greater than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+ The message to display in case of failure
+
+
+
+ Verifies that the first value is greater than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+
+
+
+ Verifies that the first value is greater than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the first value is greater than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+ The message to display in case of failure
+
+
+
+ Verifies that the first value is greater than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+
+
+
+ Verifies that the first value is greater than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the first value is greater than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+ The message to display in case of failure
+
+
+
+ Verifies that the first value is greater than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+
+
+
+ Verifies that the first value is greater than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the first value is greater than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+ The message to display in case of failure
+
+
+
+ Verifies that the first value is greater than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+
+
+
+ Verifies that the first value is greater than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the first value is greater than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+ The message to display in case of failure
+
+
+
+ Verifies that the first value is greater than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+
+
+
+ Verifies that the first value is less than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the first value is less than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+ The message to display in case of failure
+
+
+
+ Verifies that the first value is less than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+
+
+
+ Verifies that the first value is less than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the first value is less than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+ The message to display in case of failure
+
+
+
+ Verifies that the first value is less than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+
+
+
+ Verifies that the first value is less than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the first value is less than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+ The message to display in case of failure
+
+
+
+ Verifies that the first value is less than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+
+
+
+ Verifies that the first value is less than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the first value is less than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+ The message to display in case of failure
+
+
+
+ Verifies that the first value is less than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+
+
+
+ Verifies that the first value is less than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the first value is less than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+ The message to display in case of failure
+
+
+
+ Verifies that the first value is less than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+
+
+
+ Verifies that the first value is less than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the first value is less than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+ The message to display in case of failure
+
+
+
+ Verifies that the first value is less than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+
+
+
+ Verifies that the first value is less than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the first value is less than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+ The message to display in case of failure
+
+
+
+ Verifies that the first value is less than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+
+
+
+ Verifies that the first value is less than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the first value is less than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+ The message to display in case of failure
+
+
+
+ Verifies that the first value is less than the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+
+
+
+ Verifies that the first value is greater than or equal tothe second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the first value is greater than or equal tothe second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+ The message to display in case of failure
+
+
+
+ Verifies that the first value is greater than or equal tothe second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+
+
+
+ Verifies that the first value is greater than or equal tothe second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the first value is greater than or equal tothe second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+ The message to display in case of failure
+
+
+
+ Verifies that the first value is greater than or equal tothe second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+
+
+
+ Verifies that the first value is greater than or equal tothe second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the first value is greater than or equal tothe second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+ The message to display in case of failure
+
+
+
+ Verifies that the first value is greater than or equal tothe second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+
+
+
+ Verifies that the first value is greater than or equal tothe second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the first value is greater than or equal tothe second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+ The message to display in case of failure
+
+
+
+ Verifies that the first value is greater than or equal tothe second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+
+
+
+ Verifies that the first value is greater than or equal tothe second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the first value is greater than or equal tothe second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+ The message to display in case of failure
+
+
+
+ Verifies that the first value is greater than or equal tothe second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+
+
+
+ Verifies that the first value is greater than or equal tothe second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the first value is greater than or equal tothe second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+ The message to display in case of failure
+
+
+
+ Verifies that the first value is greater than or equal tothe second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+
+
+
+ Verifies that the first value is greater than or equal tothe second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the first value is greater than or equal tothe second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+ The message to display in case of failure
+
+
+
+ Verifies that the first value is greater than or equal tothe second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+
+
+
+ Verifies that the first value is greater than or equal tothe second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the first value is greater than or equal tothe second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+ The message to display in case of failure
+
+
+
+ Verifies that the first value is greater than or equal tothe second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be greater
+ The second value, expected to be less
+
+
+
+ Verifies that the first value is less than or equal to the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the first value is less than or equal to the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+ The message to display in case of failure
+
+
+
+ Verifies that the first value is less than or equal to the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+
+
+
+ Verifies that the first value is less than or equal to the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the first value is less than or equal to the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+ The message to display in case of failure
+
+
+
+ Verifies that the first value is less than or equal to the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+
+
+
+ Verifies that the first value is less than or equal to the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the first value is less than or equal to the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+ The message to display in case of failure
+
+
+
+ Verifies that the first value is less than or equal to the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+
+
+
+ Verifies that the first value is less than or equal to the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the first value is less than or equal to the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+ The message to display in case of failure
+
+
+
+ Verifies that the first value is less than or equal to the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+
+
+
+ Verifies that the first value is less than or equal to the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the first value is less than or equal to the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+ The message to display in case of failure
+
+
+
+ Verifies that the first value is less than or equal to the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+
+
+
+ Verifies that the first value is less than or equal to the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the first value is less than or equal to the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+ The message to display in case of failure
+
+
+
+ Verifies that the first value is less than or equal to the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+
+
+
+ Verifies that the first value is less than or equal to the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the first value is less than or equal to the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+ The message to display in case of failure
+
+
+
+ Verifies that the first value is less than or equal to the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+
+
+
+ Verifies that the first value is less than or equal to the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Verifies that the first value is less than or equal to the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+ The message to display in case of failure
+
+
+
+ Verifies that the first value is less than or equal to the second
+ value. If it is not, then an
+ is thrown.
+
+ The first value, expected to be less
+ The second value, expected to be greater
+
+
+
+ Asserts that an object is contained in a list.
+
+ The expected object
+ The list to be examined
+ The message to display in case of failure
+ Array of objects to be used in formatting the message
+
+
+
+ Asserts that an object is contained in a list.
+
+ The expected object
+ The list to be examined
+ The message to display in case of failure
+
+
+
+ Asserts that an object is contained in a list.
+
+ The expected object
+ The list to be examined
+
+
+
+ Gets the number of assertions executed so far and
+ resets the counter to zero.
+
+
+
+
+ Static helper class used in the constraint-based syntax
+
+
+
+
+ Creates a new SubstringConstraint
+
+ The value of the substring
+ A SubstringConstraint
+
+
+
+ Creates a new CollectionContainsConstraint.
+
+ The item that should be found.
+ A new CollectionContainsConstraint
+
+
+
+ Attribute used to apply a category to a test
+
+
+
+
+ The name of the category
+
+
+
+
+ Construct attribute for a given category based on
+ a name. The name may not contain the characters ',',
+ '+', '-' or '!'. However, this is not checked in the
+ constructor since it would cause an error to arise at
+ as the test was loaded without giving a clear indication
+ of where the problem is located. The error is handled
+ in NUnitFramework.cs by marking the test as not
+ runnable.
+
+ The name of the category
+
+
+
+ Protected constructor uses the Type name as the name
+ of the category.
+
+
+
+
+ The name of the category
+
+
+
+
+ The TestStatus enum indicates the result of running a test
+
+
+
+
+ The test was inconclusive
+
+
+
+
+ The test has skipped
+
+
+
+
+ The test succeeded
+
+
+
+
+ The test failed
+
+
+
+
+ Provide the context information of the current test
+
+
+
+
+ The TestState of current test. This maps to the ResultState
+ used in nunit.core and is subject to change in the future.
+
+
+
+
+ The TestStatus of current test. This enum will be used
+ in future versions of NUnit and so is to be preferred
+ to the TestState value.
+
+
+
+
+ The name of the currently executing test. If no
+ test is running, the name of the last test run.
+
+
+
+
+ The properties of the currently executing test
+ or, if no test is running, of the last test run.
+
+
+
+
+ The ResultState enum indicates the result of running a test
+
+
+
+
+ The result is inconclusive
+
+
+
+
+ The test was not runnable.
+
+
+
+
+ The test has been skipped.
+
+
+
+
+ The test has been ignored.
+
+
+
+
+ The test succeeded
+
+
+
+
+ The test failed
+
+
+
+
+ The test encountered an unexpected exception
+
+
+
+
+ The test was cancelled by the user
+
+
+
+
diff --git a/src/Spring/Spring.Core/AssemblyInfo.cs b/src/Spring/Spring.Core/AssemblyInfo.cs
index 74041e7b..7ecb0d8e 100644
--- a/src/Spring/Spring.Core/AssemblyInfo.cs
+++ b/src/Spring/Spring.Core/AssemblyInfo.cs
@@ -34,10 +34,14 @@ using System.Security;
//[assembly: ReflectionPermission(SecurityAction.RequestMinimum, Unrestricted = true)]
//[assembly: AssemblyKeyFile(@"C:\users\aseovic\projects\OpenSource\Spring.Net\Spring.Net.PrivateKey.keys")]
//[assembly: AssemblyKeyFile(@"C:\projects\Spring.Net\Spring.Net.snk")]
+
+#if !NET_4_0
[assembly: AllowPartiallyTrustedCallers]
[assembly: SecurityCritical]
+#endif
+
#if NET_1_0 || NET_1_1
namespace System.Security
{
diff --git a/src/Spring/Spring.Messaging.Nms/Spring.Messaging.Nms.build b/src/Spring/Spring.Messaging.Nms/Spring.Messaging.Nms.build
index e3fa9304..6197a1a3 100644
--- a/src/Spring/Spring.Messaging.Nms/Spring.Messaging.Nms.build
+++ b/src/Spring/Spring.Messaging.Nms/Spring.Messaging.Nms.build
@@ -32,6 +32,7 @@
+
diff --git a/src/Spring/Spring.Messaging/Spring.Messaging.build b/src/Spring/Spring.Messaging/Spring.Messaging.build
index 8f3d1ba7..88e521c5 100644
--- a/src/Spring/Spring.Messaging/Spring.Messaging.build
+++ b/src/Spring/Spring.Messaging/Spring.Messaging.build
@@ -26,6 +26,7 @@
+
diff --git a/src/Spring/Spring.Scheduling.Quartz/Spring.Scheduling.Quartz.build b/src/Spring/Spring.Scheduling.Quartz/Spring.Scheduling.Quartz.build
index 6217a888..e37f0b60 100644
--- a/src/Spring/Spring.Scheduling.Quartz/Spring.Scheduling.Quartz.build
+++ b/src/Spring/Spring.Scheduling.Quartz/Spring.Scheduling.Quartz.build
@@ -27,6 +27,7 @@
+
diff --git a/src/Spring/Spring.Services/Spring.Services.build b/src/Spring/Spring.Services/Spring.Services.build
index 27e8ceb9..ad806d5d 100644
--- a/src/Spring/Spring.Services/Spring.Services.build
+++ b/src/Spring/Spring.Services/Spring.Services.build
@@ -70,8 +70,8 @@
-
-
+
+
diff --git a/src/Spring/Spring.Template.Velocity/Spring.Template.Velocity.build b/src/Spring/Spring.Template.Velocity/Spring.Template.Velocity.build
index afbe906a..63141862 100644
--- a/src/Spring/Spring.Template.Velocity/Spring.Template.Velocity.build
+++ b/src/Spring/Spring.Template.Velocity/Spring.Template.Velocity.build
@@ -29,6 +29,7 @@
+
diff --git a/src/Spring/Spring.Web/AssemblyInfo.cs b/src/Spring/Spring.Web/AssemblyInfo.cs
index b9a53b12..5dc1373e 100644
--- a/src/Spring/Spring.Web/AssemblyInfo.cs
+++ b/src/Spring/Spring.Web/AssemblyInfo.cs
@@ -6,8 +6,11 @@ using System.Web.UI;
[assembly: AssemblyDescription("Interfaces and classes that provide web application support in Spring.Net")]
[assembly: TagPrefix("Spring.Web.UI.Controls", "spring")]
//[assembly: AssemblyKeyFile(@"C:\users\aseovic\projects\OpenSource\Spring.Net\Spring.Net.PrivateKey.keys")]
+
+#if !NET_4_0
[assembly: AllowPartiallyTrustedCallers]
[assembly: SecurityCritical]
+#endif
#if NET_1_0 || NET_1_1
namespace System.Security
diff --git a/test/Spring/Spring.Aop.Tests/Spring.Aop.Tests.build b/test/Spring/Spring.Aop.Tests/Spring.Aop.Tests.build
index 5c86094c..47ca4031 100644
--- a/test/Spring/Spring.Aop.Tests/Spring.Aop.Tests.build
+++ b/test/Spring/Spring.Aop.Tests/Spring.Aop.Tests.build
@@ -42,6 +42,8 @@
+
+
diff --git a/test/Spring/Spring.Core.Tests/Spring.Core.Tests.2010.csproj b/test/Spring/Spring.Core.Tests/Spring.Core.Tests.2010.csproj
index 1f0aea1f..9dc2dcc5 100644
--- a/test/Spring/Spring.Core.Tests/Spring.Core.Tests.2010.csproj
+++ b/test/Spring/Spring.Core.Tests/Spring.Core.Tests.2010.csproj
@@ -330,6 +330,7 @@
+
diff --git a/test/Spring/Spring.Core.Tests/Spring.Core.Tests.build b/test/Spring/Spring.Core.Tests/Spring.Core.Tests.build
index 218e9977..04e2b304 100644
--- a/test/Spring/Spring.Core.Tests/Spring.Core.Tests.build
+++ b/test/Spring/Spring.Core.Tests/Spring.Core.Tests.build
@@ -61,6 +61,7 @@
+
@@ -98,6 +99,11 @@
+
+
+
+
diff --git a/test/Spring/Spring.Data.NHibernate.Integration.Tests/Spring.Data.NHibernate.Integration.Tests.build b/test/Spring/Spring.Data.NHibernate.Integration.Tests/Spring.Data.NHibernate.Integration.Tests.build
index 1f2145b2..1b4f02ad 100644
--- a/test/Spring/Spring.Data.NHibernate.Integration.Tests/Spring.Data.NHibernate.Integration.Tests.build
+++ b/test/Spring/Spring.Data.NHibernate.Integration.Tests/Spring.Data.NHibernate.Integration.Tests.build
@@ -37,6 +37,7 @@
+
diff --git a/test/Spring/Spring.Data.NHibernate.Tests/Spring.Data.NHibernate.Tests.build b/test/Spring/Spring.Data.NHibernate.Tests/Spring.Data.NHibernate.Tests.build
index 5bee118f..262c23b1 100644
--- a/test/Spring/Spring.Data.NHibernate.Tests/Spring.Data.NHibernate.Tests.build
+++ b/test/Spring/Spring.Data.NHibernate.Tests/Spring.Data.NHibernate.Tests.build
@@ -40,6 +40,7 @@
+
diff --git a/test/Spring/Spring.Data.NHibernate20.Integration.Tests/Spring.Data.NHibernate20.Integration.Tests.build b/test/Spring/Spring.Data.NHibernate20.Integration.Tests/Spring.Data.NHibernate20.Integration.Tests.build
index 17944bd2..503380e4 100644
--- a/test/Spring/Spring.Data.NHibernate20.Integration.Tests/Spring.Data.NHibernate20.Integration.Tests.build
+++ b/test/Spring/Spring.Data.NHibernate20.Integration.Tests/Spring.Data.NHibernate20.Integration.Tests.build
@@ -43,6 +43,7 @@
+
diff --git a/test/Spring/Spring.Data.NHibernate20.Tests/Spring.Data.NHibernate20.Tests.build b/test/Spring/Spring.Data.NHibernate20.Tests/Spring.Data.NHibernate20.Tests.build
index e45fabc9..8570c3b2 100644
--- a/test/Spring/Spring.Data.NHibernate20.Tests/Spring.Data.NHibernate20.Tests.build
+++ b/test/Spring/Spring.Data.NHibernate20.Tests/Spring.Data.NHibernate20.Tests.build
@@ -44,6 +44,7 @@
+
diff --git a/test/Spring/Spring.Data.NHibernate21.Integration.Tests/Spring.Data.NHibernate21.Integration.Tests.build b/test/Spring/Spring.Data.NHibernate21.Integration.Tests/Spring.Data.NHibernate21.Integration.Tests.build
index dbd183bb..0874bffa 100644
--- a/test/Spring/Spring.Data.NHibernate21.Integration.Tests/Spring.Data.NHibernate21.Integration.Tests.build
+++ b/test/Spring/Spring.Data.NHibernate21.Integration.Tests/Spring.Data.NHibernate21.Integration.Tests.build
@@ -43,6 +43,7 @@
+
diff --git a/test/Spring/Spring.Data.NHibernate21.Tests/Spring.Data.NHibernate21.Tests.build b/test/Spring/Spring.Data.NHibernate21.Tests/Spring.Data.NHibernate21.Tests.build
index 66bcf64e..c6b20170 100644
--- a/test/Spring/Spring.Data.NHibernate21.Tests/Spring.Data.NHibernate21.Tests.build
+++ b/test/Spring/Spring.Data.NHibernate21.Tests/Spring.Data.NHibernate21.Tests.build
@@ -44,6 +44,7 @@
+
diff --git a/test/Spring/Spring.Data.NHibernate30.Integration.Tests/Spring.Data.NHibernate30.Integration.Tests.build b/test/Spring/Spring.Data.NHibernate30.Integration.Tests/Spring.Data.NHibernate30.Integration.Tests.build
index 42b647a3..138557b8 100644
--- a/test/Spring/Spring.Data.NHibernate30.Integration.Tests/Spring.Data.NHibernate30.Integration.Tests.build
+++ b/test/Spring/Spring.Data.NHibernate30.Integration.Tests/Spring.Data.NHibernate30.Integration.Tests.build
@@ -38,6 +38,7 @@
+
diff --git a/test/Spring/Spring.Data.NHibernate30.Tests/Spring.Data.NHibernate30.Tests.build b/test/Spring/Spring.Data.NHibernate30.Tests/Spring.Data.NHibernate30.Tests.build
index a92e1d7a..0b377e99 100644
--- a/test/Spring/Spring.Data.NHibernate30.Tests/Spring.Data.NHibernate30.Tests.build
+++ b/test/Spring/Spring.Data.NHibernate30.Tests/Spring.Data.NHibernate30.Tests.build
@@ -37,6 +37,7 @@
+
diff --git a/test/Spring/Spring.Data.Tests/Spring.Data.Tests.build b/test/Spring/Spring.Data.Tests/Spring.Data.Tests.build
index b72cafb9..9a9c4f42 100644
--- a/test/Spring/Spring.Data.Tests/Spring.Data.Tests.build
+++ b/test/Spring/Spring.Data.Tests/Spring.Data.Tests.build
@@ -38,6 +38,7 @@
+
diff --git a/test/Spring/Spring.Messaging.Ems.Integration.Tests/Spring.Messaging.Ems.Integration.Tests.build b/test/Spring/Spring.Messaging.Ems.Integration.Tests/Spring.Messaging.Ems.Integration.Tests.build
index a4d1cc95..33d69083 100644
--- a/test/Spring/Spring.Messaging.Ems.Integration.Tests/Spring.Messaging.Ems.Integration.Tests.build
+++ b/test/Spring/Spring.Messaging.Ems.Integration.Tests/Spring.Messaging.Ems.Integration.Tests.build
@@ -31,6 +31,7 @@
+
diff --git a/test/Spring/Spring.Messaging.Ems.Tests/Spring.Messaging.Ems.Tests.build b/test/Spring/Spring.Messaging.Ems.Tests/Spring.Messaging.Ems.Tests.build
index 3cf83a96..63d37241 100644
--- a/test/Spring/Spring.Messaging.Ems.Tests/Spring.Messaging.Ems.Tests.build
+++ b/test/Spring/Spring.Messaging.Ems.Tests/Spring.Messaging.Ems.Tests.build
@@ -31,6 +31,7 @@
+
diff --git a/test/Spring/Spring.Messaging.Nms.Integration.Tests/Spring.Messaging.Nms.Integration.Tests.build b/test/Spring/Spring.Messaging.Nms.Integration.Tests/Spring.Messaging.Nms.Integration.Tests.build
index 911ffe83..f4004260 100644
--- a/test/Spring/Spring.Messaging.Nms.Integration.Tests/Spring.Messaging.Nms.Integration.Tests.build
+++ b/test/Spring/Spring.Messaging.Nms.Integration.Tests/Spring.Messaging.Nms.Integration.Tests.build
@@ -31,6 +31,8 @@
+
+
diff --git a/test/Spring/Spring.Messaging.Nms.Tests/Spring.Messaging.Nms.Tests.build b/test/Spring/Spring.Messaging.Nms.Tests/Spring.Messaging.Nms.Tests.build
index 3631482b..ba6764ce 100644
--- a/test/Spring/Spring.Messaging.Nms.Tests/Spring.Messaging.Nms.Tests.build
+++ b/test/Spring/Spring.Messaging.Nms.Tests/Spring.Messaging.Nms.Tests.build
@@ -31,6 +31,7 @@
+
diff --git a/test/Spring/Spring.Messaging.Tests/Spring.Messaging.Tests.build b/test/Spring/Spring.Messaging.Tests/Spring.Messaging.Tests.build
index f9298b48..29a3cec4 100644
--- a/test/Spring/Spring.Messaging.Tests/Spring.Messaging.Tests.build
+++ b/test/Spring/Spring.Messaging.Tests/Spring.Messaging.Tests.build
@@ -31,6 +31,7 @@
+
diff --git a/test/Spring/Spring.Scheduling.Quartz.Integration.Tests/Spring.Scheduling.Quartz.Integration.Tests.build b/test/Spring/Spring.Scheduling.Quartz.Integration.Tests/Spring.Scheduling.Quartz.Integration.Tests.build
index 0f035f69..74ecb84d 100644
--- a/test/Spring/Spring.Scheduling.Quartz.Integration.Tests/Spring.Scheduling.Quartz.Integration.Tests.build
+++ b/test/Spring/Spring.Scheduling.Quartz.Integration.Tests/Spring.Scheduling.Quartz.Integration.Tests.build
@@ -27,6 +27,7 @@
+
diff --git a/test/Spring/Spring.Scheduling.Quartz.Tests/Spring.Scheduling.Quartz.Tests.build b/test/Spring/Spring.Scheduling.Quartz.Tests/Spring.Scheduling.Quartz.Tests.build
index 4b5e1fc0..eb5cefde 100644
--- a/test/Spring/Spring.Scheduling.Quartz.Tests/Spring.Scheduling.Quartz.Tests.build
+++ b/test/Spring/Spring.Scheduling.Quartz.Tests/Spring.Scheduling.Quartz.Tests.build
@@ -27,6 +27,7 @@
+
diff --git a/test/Spring/Spring.Services.Tests/Spring.Services.Tests.build b/test/Spring/Spring.Services.Tests/Spring.Services.Tests.build
index 4a2d1e34..e967c398 100644
--- a/test/Spring/Spring.Services.Tests/Spring.Services.Tests.build
+++ b/test/Spring/Spring.Services.Tests/Spring.Services.Tests.build
@@ -54,6 +54,7 @@
+
diff --git a/test/Spring/Spring.Template.Velocity.Tests/Spring.Template.Velocity.Tests.build b/test/Spring/Spring.Template.Velocity.Tests/Spring.Template.Velocity.Tests.build
index 341aedb3..c66fb244 100644
--- a/test/Spring/Spring.Template.Velocity.Tests/Spring.Template.Velocity.Tests.build
+++ b/test/Spring/Spring.Template.Velocity.Tests/Spring.Template.Velocity.Tests.build
@@ -28,6 +28,7 @@
+
diff --git a/test/Spring/Spring.Testing.Microsoft.Tests/Spring.Testing.Microsoft.Tests.build b/test/Spring/Spring.Testing.Microsoft.Tests/Spring.Testing.Microsoft.Tests.build
index ed2441cb..abad024a 100644
--- a/test/Spring/Spring.Testing.Microsoft.Tests/Spring.Testing.Microsoft.Tests.build
+++ b/test/Spring/Spring.Testing.Microsoft.Tests/Spring.Testing.Microsoft.Tests.build
@@ -36,6 +36,7 @@
+
diff --git a/test/Spring/Spring.Testing.NUnit.Tests/Spring.Testing.NUnit.Tests.build b/test/Spring/Spring.Testing.NUnit.Tests/Spring.Testing.NUnit.Tests.build
index a2c6409b..c34cebd0 100644
--- a/test/Spring/Spring.Testing.NUnit.Tests/Spring.Testing.NUnit.Tests.build
+++ b/test/Spring/Spring.Testing.NUnit.Tests/Spring.Testing.NUnit.Tests.build
@@ -31,6 +31,7 @@
+
diff --git a/test/Spring/Spring.Web.Tests/Spring.Web.Tests.build b/test/Spring/Spring.Web.Tests/Spring.Web.Tests.build
index 9183dc0a..ee59118e 100644
--- a/test/Spring/Spring.Web.Tests/Spring.Web.Tests.build
+++ b/test/Spring/Spring.Web.Tests/Spring.Web.Tests.build
@@ -44,6 +44,7 @@
+
diff --git a/test/Spring/Spring.Web.Tests/Web/Support/PageHandlerFactoryTests.cs b/test/Spring/Spring.Web.Tests/Web/Support/PageHandlerFactoryTests.cs
index 666fec24..26867c76 100644
--- a/test/Spring/Spring.Web.Tests/Web/Support/PageHandlerFactoryTests.cs
+++ b/test/Spring/Spring.Web.Tests/Web/Support/PageHandlerFactoryTests.cs
@@ -106,6 +106,7 @@ namespace Spring.Web.Support
}
}
+#if !NET_4_0
///
/// Tests the behavior of our PageHandlerFactory class
///
@@ -114,6 +115,7 @@ namespace Spring.Web.Support
{
Host.Execute(new TestAction(PageHandlerFactoryBehavesLikeSystemPageHandlerFactoryImpl));
}
+#endif
public static void PageHandlerFactoryBehavesLikeSystemPageHandlerFactoryImpl()
{
@@ -138,7 +140,7 @@ namespace Spring.Web.Support
}
}
-#if NET_2_0
+#if NET_2_0 && ! NET_4_0
[Test]
public void TransferAfterSetResult()
{