public override System.Object init(InternalContextAdapter context, System.Object data) { base.init(context, data); /* * only do things that are not context dependant */ if (parser.isDirective(directiveName)) { isDirective = true; // create a new instance of the directive Type t = parser.getDirective(directiveName).GetType(); Object o = Activator.CreateInstance(t); directive = (Directive.Directive) o; directive.init(rsvc, context, this); directive.setLocation(Line, Column); } else if (rsvc.isVelocimacro(directiveName, context.CurrentTemplateName)) { /* * we seem to be a Velocimacro. */ isDirective = true; directive = (Directive.Directive) rsvc.getVelocimacro(directiveName, context.CurrentTemplateName); directive.init(rsvc, context, this); directive.setLocation(Line, Column); } else { isDirective = false; } return data; }
/// <summary> instantiates and loads the directive with some basic checks /// /// </summary> /// <param name="directiveClass">classname of directive to load /// /// </param> private void loadDirective(System.String directiveClass, System.String caption) { try { Type directiveType = System.Type.GetType(directiveClass); if (directiveType == null) { error("Exception Loading " + caption + " Directive: " + directiveClass + " - you might need to specify the assembly"); return; } System.Object o = System.Activator.CreateInstance(directiveType); if (o is Directive.Directive) { Directive.Directive directive = (Directive.Directive)o; SupportClass.PutElement(runtimeDirectives, directive.Name, directive); info("Loaded " + caption + " Directive: " + directiveClass); } else { error(caption + " Directive " + directiveClass + " is not NVelocity.Runtime.Directive.Directive." + " Ignoring. "); } } catch (System.Exception e) { error("Exception Loading " + caption + " Directive: " + directiveClass + " : " + e); } }
public override System.Object init(InternalContextAdapter context, System.Object data) { base.init(context, data); /* * only do things that are not context dependant */ if (parser.isDirective(directiveName)) { isDirective = true; // create a new instance of the directive Type t = parser.getDirective(directiveName).GetType(); Object o = Activator.CreateInstance(t); directive = (Directive.Directive)o; directive.init(rsvc, context, this); directive.setLocation(Line, Column); } else if (rsvc.isVelocimacro(directiveName, context.CurrentTemplateName)) { /* * we seem to be a Velocimacro. */ isDirective = true; directive = (Directive.Directive)rsvc.getVelocimacro(directiveName, context.CurrentTemplateName); directive.init(rsvc, context, this); directive.setLocation(Line, Column); } else { isDirective = false; } return(data); }