зеркало из https://github.com/mozilla/gecko-dev.git
initial checkin: generate-id extension function
This commit is contained in:
Родитель
7f2cda7cbc
Коммит
f6d198df5e
|
@ -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
|
Загрузка…
Ссылка в новой задаче