00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef DSIGTRANSFORMXPATHFILTER_INCLUDE
00028 #define DSIGTRANSFORMXPATHFILTER_INCLUDE
00029
00030 #include <xsec/dsig/DSIGTransform.hpp>
00031 #include <xsec/utils/XSECSafeBuffer.hpp>
00032
00033
00034 XSEC_DECLARE_XERCES_CLASS(DOMNamedNodeMap);
00035 XSEC_DECLARE_XERCES_CLASS(DOMNode);
00036
00037 #include <vector>
00038
00039 class DSIGXPathFilterExpr;
00040
00057 class DSIG_EXPORT DSIGTransformXPathFilter : public DSIGTransform {
00058
00059
00060 public:
00061
00066 typedef std::vector<DSIGXPathFilterExpr *> exprVectorType;
00067
00070
00081 DSIGTransformXPathFilter(const XSECEnv * env, XERCES_CPP_NAMESPACE_QUALIFIER DOMNode * node);
00082
00095 DSIGTransformXPathFilter(const XSECEnv * env);
00096
00105 virtual ~DSIGTransformXPathFilter();
00106
00108
00112
00120 virtual transformType getTransformType();
00121
00131 virtual void appendTransformer(TXFMChain * input);
00132
00140 virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMElement *
00141 createBlankTransform(XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument * parentDoc);
00142
00150 virtual void load(void);
00151
00153
00157
00169 DSIGXPathFilterExpr * appendFilter(xpathFilterType filterType,
00170 const XMLCh * filterExpr);
00171
00181 unsigned int getExprNum(void);
00182
00193 DSIGXPathFilterExpr * expr(unsigned int n);
00194
00196
00197 private:
00198
00199 DSIGTransformXPathFilter();
00200 DSIGTransformXPathFilter(const DSIGTransformXPathFilter & theOther);
00201
00202 bool m_loaded;
00203
00204
00205 exprVectorType m_exprs;
00206
00207
00208 };
00209
00210 #endif