Is there a way to give method/property access to all classes in a package without typing them all in manually?

1 view (last 30 days)
Danila Berezin
Danila Berezin on 30 Jun 2022
Commented: Image Analyst on 6 Jul 2022
So I am writing a rather large application in appdesigner, and so I put a lot of the callbacks used by the app in a seperate class file where they are all accessed as static methods. I want these methods to be able to obviously access the private methods and private properties of the app object. For the properties of the app, I have something like this:
properties (Access = {?libs.callbacks.kinetics.Data, ...
?libs.callbacks.kinetics.Processes, ...
?libs.callbacks.kinetics.Figures})
Right now this is not a big deal, however, as I add more callbacks, this is going to get more and more annoying. I tried to just do:
properties (Access = ?libs.callbacks)
But this does not work (I am actually unsure what this even does, because it doesn't return an error or anything it just doesn't give access to any of the classes). Is there a way to give access to all the classes in a package without manually writing them all in into a class list?

Answers (1)

Image Analyst
Image Analyst on 30 Jun 2022
I don't know what that "Access=" stuff is, but I know if you have an instance of a class or a static class you can do
methods(className)
properties(className)
and it will list them all. For example, with the attached class:
methods(Excel_utils);
Methods for class Excel_utils: Excel_utils Static methods: ActivateSheet ClearCells FormatCellFont InsertComments WrapText AlignCells DeleteEmptyExcelSheets FormatDecimalPlaces LeftAlignSheet AutoSizeAllSheets DeleteExcelSheets FormatLeftBorder MoveToSheet1 AutoSizeColumns DuplicateExcelSheet FormatRightBorder SetActiveCell CenterCellsAndAutoSizeColumns FormatBottomBorder GetNumberOfExcelSheets SetColumnWidth CenterCellsAndAutoSizeSpecificColumns FormatCellColor GoToNextRowInColumn SetRowHeight
properties(Excel_utils)
No properties for class Excel_utils.
  2 Comments
Image Analyst
Image Analyst on 6 Jul 2022
You could easily write a script that looks at all m-files in a folder and determine which are class definitions by reading in the m-files line-by-line and then, for class files, find out what the methods and properties are. I'd be surprised if there is not something in the File Exchange already that does that. If there is not, and you can't figure out how to write the simple code to do it, write back and I'll do it if I find the time.

Sign in to comment.

Products


Release

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by