@@ -23,6 +23,7 @@ You should have received a copy of the GNU Affero General Public License
23
23
using System ;
24
24
using iText . Commons . Actions . Contexts ;
25
25
using iText . Commons . Actions . Data ;
26
+ using iText . Commons . Exceptions ;
26
27
27
28
namespace iText . Commons . Actions {
28
29
/// <summary>Represents a context-based event.</summary>
@@ -32,7 +33,7 @@ namespace iText.Commons.Actions {
32
33
/// Only for internal usage.
33
34
/// </remarks>
34
35
public abstract class AbstractContextBasedITextEvent : AbstractProductITextEvent {
35
- private readonly IMetaInfo metaInfo ;
36
+ private IMetaInfo metaInfo ;
36
37
37
38
/// <summary>Creates an event containing auxiliary meta data.</summary>
38
39
/// <param name="productData">is a description of the product which has generated an event</param>
@@ -42,16 +43,25 @@ protected internal AbstractContextBasedITextEvent(ProductData productData, IMeta
42
43
this . metaInfo = metaInfo ;
43
44
}
44
45
46
+ /// <summary>Obtains the current event context class.</summary>
47
+ /// <returns>context class</returns>
48
+ public virtual Type GetClassFromContext ( ) {
49
+ return this . GetType ( ) ;
50
+ }
51
+
52
+ /// <summary>Sets meta info.</summary>
53
+ /// <param name="metaInfo">meta info</param>
54
+ public virtual void SetMetaInfo ( IMetaInfo metaInfo ) {
55
+ if ( this . metaInfo != null ) {
56
+ throw new InvalidOperationException ( CommonsExceptionMessageConstant . META_INFO_SHOULDNT_BE_NULL ) ;
57
+ }
58
+ this . metaInfo = metaInfo ;
59
+ }
60
+
45
61
/// <summary>Obtains stored meta info associated with the event.</summary>
46
62
/// <returns>meta info</returns>
47
63
internal virtual IMetaInfo GetMetaInfo ( ) {
48
64
return metaInfo ;
49
65
}
50
-
51
- /// <summary>Obtains a current event context class.</summary>
52
- /// <returns>context class</returns>
53
- public virtual Type GetClassFromContext ( ) {
54
- return this . GetType ( ) ;
55
- }
56
66
}
57
67
}
0 commit comments