Exemple #1
0
	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;
	}
Exemple #2
0
        /// <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);
            }
        }
Exemple #3
0
        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);
        }