15 #ifndef TC_AC_EQUIVALENCE_SERVICE_INTERFACE_H
16 #define TC_AC_EQUIVALENCE_SERVICE_INTERFACE_H
24 #include <pom/pom/pom.h>
26 #include <fclasses/libfclasses_exports.h>
29 class EquivalenceCriteria;
30 class EquivalenceService;
49 EquivalenceServiceInfo():srcDepth(-1),targetDepth(-1),bSrcExpanded(false),bTargetExpanded(false),bForceTargetExpand(false),
50 srcContextObj(NULLTAG), targetContextObj(NULLTAG)
86 virtual int getEquivalentNodes(
const std::vector<tag_t> &srcScopes,
87 const std::string& closureRuleName,
88 const std::vector<tag_t>& targetScopes,
89 const std::string& targetClosureRuleName,
90 const std::set<std::string> &criteriaNames,
93 bool bForceTargetExpand,
94 std::map<tag_t, std::set<tag_t> > & targetMatches,
95 std::map<tag_t, std::set<tag_t> > * srcMatches=0,
96 tag_t srcCtxt=NULLTAG,
97 tag_t targetCtxt=NULLTAG
101 virtual int getEquivalentNodes(
const std::set<tag_t> & expandedSrcNodes,
102 const std::vector<tag_t>& targetScopes,
103 const std::string& targetClosureRuleName,
104 const std::set<std::string> &criteriaNames,
105 bool bForceTargetExpand,
107 std::map<tag_t, std::set<tag_t> > & targetMatches,
108 std::map<tag_t, std::set<tag_t> > * srcMatches=0,
109 tag_t srcCtxt=NULLTAG,
110 tag_t targetCtxt=NULLTAG)=0;
113 virtual int getEquivalentNodes(
const std::set<tag_t> & expandedSrcNodes,
114 const std::set<tag_t> & expandedTargetNodes,
115 const std::set<std::string> &criteriaNames,
116 std::map<tag_t, std::set<tag_t> > & targetMatches,
117 std::map<tag_t, std::set<tag_t> > * srcMatches=0,
118 tag_t srcCtxt=NULLTAG,
119 tag_t targetCtxt=NULLTAG)=0;
125 virtual int getEquivalentNodes(
const std::vector<tag_t> &srcScopes,
126 const std::string& closureRuleName,
127 const std::vector<tag_t> & targetScopes,
129 const std::set<std::string> &criteriaNames,
130 std::map<tag_t, std::set<tag_t> > & targetMatches,
131 std::map<tag_t, std::set<tag_t> > * srcMatches=0,
132 tag_t srcCtxt=NULLTAG,
133 tag_t targetCtxt=NULLTAG)=0;
138 virtual int getEquivalentNodes(
const std::set<tag_t> &,
139 const std::vector<tag_t> & ,
140 const std::set<std::string> &,
141 std::map<tag_t, std::set<tag_t> > & ,
142 std::map<tag_t, std::set<tag_t> > * =0,
143 tag_t srcCtxt=NULLTAG,
144 tag_t targetCtxt=NULLTAG)=0;
157 virtual int getEquivalentNodes(
158 const std::set<tag_t> & srcNodes,
159 const std::vector<tag_t> & tgtScopes,
160 const std::set<std::string> & criteriaNames,
161 std::map<tag_t, std::set<tag_t> > & tgtMatch,
162 std::map<tag_t, std::set<tag_t> > * srcMatch = 0,
163 std::map<std::string, std::vector<std::string> > * additionalCriteria=0,
164 tag_t srcCtxt=NULLTAG,
165 tag_t targetCtxt=NULLTAG,
174 virtual int getExpandedSrcNodes(std::set<tag_t>& nodes) =0;
186 virtual int getExpandedTargetNodes(std::set<tag_t>& nodes ) =0;
199 virtual int getEquivalenceParameters(
203 virtual int populateTargetNodes(std::set<tag_t> &) = 0;
214 virtual int getEquivalentNodes(
const std::set<tag_t> & expandedSrcNodes,
215 const std::set<tag_t> & expandedTargetNodes,
216 std::map<tag_t, std::set<tag_t> > & targetMatches,
217 std::set<tag_t>* missingInTarget=0,
218 std::set<tag_t>* missingInSrc=0,
219 std::map<tag_t, std::set<tag_t> > * srcMatches=0,
220 const std::set<std::string> *criteriaNames=0,
221 tag_t srcCtxt=NULLTAG,
222 tag_t targetCtxt=NULLTAG)=0;
225 #include <fclasses/libfclasses_undef.h>