MATLAB Answers

MATLAB OOP - redefine static method

5 views (last 30 days)
Mikhail
Mikhail on 8 Jul 2013
Hi folks,
Following is an OOP question from a guy who knows nothing about OOP, so excuse me in advance :)
There is a built-in MATLAB class, located in matlabroot/toolbox/coder/connectivity/+coder/+rtiostreamtest/Parameters.m (if your version of MATLAB is earlier than R2012b, you might not find it). This class defines a method called getParameterInstance as Static. I just need to add another case to switch statement in this method. I don't want to modify the shipping MATLAB file, and i heard you can "subclass" those shipping classes.
Following documentation, i created a subclass like this:
classdef Parameters < coder.rtiostreamtest.Parameters
methods (Static)
function instance = getParameterInstance(tag, input)
..my very own version of switch-case..
end
end
end
This subclass is located in +myclass/Parameters.m file in MATLAB path. I then issued "rehash toolbox", just in case.
However, i don't see any effect. I'm not overriding the static method of coder.rtiostreamtest.Parameters class.
What am i doing wrong?
Many thanks!
  3 Comments
Matt J
Matt J on 8 Jul 2013
We need to see the code you executed, a description of what result you got, and a description of what you expected to get.

Sign in to comment.

Accepted Answer

per isakson
per isakson on 8 Jul 2013
Edited: per isakson on 8 Jul 2013
Do you use a call like this?
myclass.Parameters.getParameterInstance( 'two', 'args' )
  4 Comments
Mikhail
Mikhail on 8 Jul 2013
Well, the "rtiostreamtest script" has
paramsClass = 'coder.rtiostreamtest.Parameters';
in it, so the path is fully qualified (if that's how it's called).
But as i said earlier, creating the +coder/+rtiostreamtest directory hierarchy higher in MATLAB path with my modified version of Parameters.m did the job.
Oh, sorry if i used built-in term incorrectly. I probably meant shipping.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!