initial checkin: generate-id extension function

This commit is contained in:
kvisco%ziplink.net 2000-04-19 10:40:06 +00:00
Родитель 7f2cda7cbc
Коммит f6d198df5e
3 изменённых файлов: 156 добавлений и 0 удалений

Просмотреть файл

@ -0,0 +1,62 @@
/*
* The contents of this file are subject to the Mozilla Public
* License Version 1.1 (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.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is XSL:P XSLT processor.
*
* The Initial Developer of the Original Code is Keith Visco.
* Portions created by Keith Visco (C) 1999, 2000 Keith Visco.
* All Rights Reserved.
*
* Contributor(s):
*
* Keith Visco, kvisco@ziplink.net
* -- original author.
*
* $Id: GenerateIdFunctionCall.cpp,v 1.1 2000/04/19 10:39:27 kvisco%ziplink.net Exp $
*/
#include "XSLTFunctions.h"
/*
Implementation of XSLT 1.0 extension function: generate-id
*/
/**
* Creates a new generate-id function call
**/
GenerateIdFunctionCall::GenerateIdFunctionCall(DOMHelper* domHelper) : FunctionCall(GENERATE_ID_FN)
{
this->domHelper = domHelper;
} //-- GenerateIdFunctionCall
/**
* Evaluates this Expr based on the given context node and processor state
* @param context the context node for evaluation of this Expr
* @param ps the ContextState containing the stack information needed
* for evaluation
* @return the result of the evaluation
* @see FunctionCall.h
**/
ExprResult* GenerateIdFunctionCall::evaluate(Node* context, ContextState* cs) {
Node* node = context;
String id;
int argc = params.getLength();
domHelper->generateId(node, id);
return new StringResult(id);
} //-- evaluate

Просмотреть файл

@ -0,0 +1,35 @@
ROOT = ../..
BASE = $(ROOT)/base
XPATH = $(ROOT)/xpath
XML = $(ROOT)/xml
XML_UTIL = $(XML)/util
DOM = $(XML)/dom
XSLT = $(ROOT)/xslt
ALL_OBJS = \
GenerateIdFunctionCall.o
INCLUDE_PATH = -I. \
-I$(BASE) \
-I$(XPATH) \
-I$(XML) \
-I$(XML_UTIL) \
-I$(DOM) \
-I$(XSLT) \
-I$(XSLT)/util
target: $(ALL_OBJS)
GenerateIdFunctionCall.o: XSLTFunctions.h GenerateIdFunctionCall.cpp
$(CC) $(INCLUDE_PATH) -c GenerateIdFunctionCall.cpp

Просмотреть файл

@ -0,0 +1,59 @@
/*
* The contents of this file are subject to the Mozilla Public
* License Version 1.1 (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.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is XSL:P XSLT processor.
*
* The Initial Developer of the Original Code is Keith Visco.
* Portions created by Keith Visco (C) 1999, 2000 Keith Visco.
* All Rights Reserved.
*
* Contributor(s):
*
* Keith Visco, kvisco@ziplink.net
* -- original author.
*
* $Id: XSLTFunctions.h,v 1.1 2000/04/19 10:40:06 kvisco%ziplink.net Exp $
*/
#include "dom.h"
#include "Expr.h"
#include "ExprResult.h"
#include "Names.h"
#include "DOMHelper.h"
#include "TxString.h"
#ifndef TRANSFRMX_XSLT_FUNCTIONS_H
#define TRANSFRMX_XSLT_FUNCTIONS_H
class GenerateIdFunctionCall : public FunctionCall {
public:
/**
* Creates a new generate-id function call
**/
GenerateIdFunctionCall(DOMHelper* domHelper);
/**
* Evaluates this Expr based on the given context node and processor state
* @param context the context node for evaluation of this Expr
* @param ps the ContextState containing the stack information needed
* for evaluation
* @return the result of the evaluation
* @see FunctionCall.h
**/
virtual ExprResult* evaluate(Node* context, ContextState* cs);
private:
DOMHelper* domHelper;
};
#endif