@@ -23,6 +23,7 @@ You should have received a copy of the GNU Affero General Public License
2323using System ;
2424using iText . Commons . Actions . Contexts ;
2525using iText . Commons . Actions . Data ;
26+ using iText . Commons . Exceptions ;
2627
2728namespace iText . Commons . Actions {
2829 /// <summary>Represents a context-based event.</summary>
@@ -32,7 +33,7 @@ namespace iText.Commons.Actions {
3233 /// Only for internal usage.
3334 /// </remarks>
3435 public abstract class AbstractContextBasedITextEvent : AbstractProductITextEvent {
35- private readonly IMetaInfo metaInfo ;
36+ private IMetaInfo metaInfo ;
3637
3738 /// <summary>Creates an event containing auxiliary meta data.</summary>
3839 /// <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
4243 this . metaInfo = metaInfo ;
4344 }
4445
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+
4561 /// <summary>Obtains stored meta info associated with the event.</summary>
4662 /// <returns>meta info</returns>
4763 internal virtual IMetaInfo GetMetaInfo ( ) {
4864 return metaInfo ;
4965 }
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- }
5666 }
5767}
0 commit comments