Ticket #4949 (closed: fixed)
Remove templates from IValidator interface.
Reported by: | Martyn Gigg | Owned by: | Martyn Gigg |
---|---|---|---|
Priority: | major | Milestone: | Release 2.1 |
Component: | Mantid | Keywords: | |
Cc: | Blocked By: | ||
Blocking: | Tester: | Owen Arnold |
Description ¶
Templating the class makes it very difficult to use without know the type of the property it is attached to. We can alleviate this by making the checkValidity method use a boost::any instance. The isValid method can be left templated so that the interface is not polluted with boost::any.
This will make writing Python algorithms much simpler as a single validator type can be used.
Comments from Russell
We love changes that modify huge number of files :) Option 2 seems to have more merit to me. Would be good to keep boost::any pretty well encapsulated though. While we're at it I think we should do a couple of other things: - lose the bare pointers and the need for the clone() method. - only include concrete validators in algorithms that actually need them (i.e. take them out of Algorithm.h and the like) As an aside, when in the distant past I tried to allow const workspace properties (e.g. WorkspaceProperty<const MatrixWorkspace>) my recollection is that it was the validators that prevented that (or made it too hard for me at the time). This might help with that. Russell
Change History
comment:1 Changed 9 years ago by Martyn Gigg
- Summary changed from Remove templates from IVAlidator interface. to Remove templates from IValidator interface.
comment:3 Changed 9 years ago by Martyn Gigg
Refs #4949. Remove TYPE from IValidator interface.
Touches nearly everything unfortunately but is necessary.
Changeset: c20c02a8c1ae21c0cfa7a8ca1828e1635c22930f
comment:4 Changed 9 years ago by Martyn Gigg
Refs #4949. Fix the build.
MSVC can't deduce type from make_shared if it is assigned to a superclass_sptr
Changeset: 46b57d605e799c6d86c39d9b2369a66cb5ee5bee
comment:5 Changed 9 years ago by Martyn Gigg
Refs #4949. MSVC fixes for make_shared
Changeset: 945d2cb4ffeeff6b0dff19c6872ea0027df43ad9
comment:6 Changed 9 years ago by Martyn Gigg
Refs #4949. Fix Python enum exports.
Changeset: a9c659a9fe0d17dae06fa626c487a9e4488e8560
comment:7 Changed 9 years ago by Martyn Gigg
Refs #4949. Catch another use of cend which the Mac doesn't have
Changeset: c0833defb73353fa437ea52e32921a7a1c7bc8c4
comment:8 Changed 9 years ago by Martyn Gigg
Refs #4949. Other default value make_shared references.
Changeset: 0ce3342929c40f92034875817303bd038660e7b3
comment:9 Changed 9 years ago by Martyn Gigg
- Status changed from accepted to verify
- Resolution set to fixed
I couldn't get rid of the clone method unfortunately as I need it in Python. WIKI page at http://www.mantidproject.org/Writing_A_Validator
comment:10 Changed 8 years ago by Owen Arnold
- Status changed from verify to verifying
- Tester set to Owen Arnold
comment:11 Changed 8 years ago by Owen Arnold
- Status changed from verifying to closed
Generics removed. Everything else seems to be working.
comment:12 Changed 5 years ago by Stuart Campbell
This ticket has been transferred to github issue 5795