gusucode.com > vision工具箱matlab源码程序 > vision/+vision/+internal/MessagePrinter.m
% This class implements an interface for printing messages based on a % verbosity flag. % % Example % ------- % printer = vision.internal.MessagePrinter.configure(true) % printer.print('message'); classdef (HandleCompatible) MessagePrinter methods(Abstract) print(this) printMessageNoReturn(this) linebreak(this) end methods (Static) %------------------------------------------------------------------ % Returns a printer object based on a verbosity flag. When % isVerbose is false, the printer object will not print to the % command window. % function printer = configure(isVerbose) persistent verbosePrinter nullPrinter if isempty(verbosePrinter) verbosePrinter = vision.internal.VerbosePrinter(); nullPrinter = vision.internal.NullPrinter(); end if isVerbose printer = verbosePrinter; else printer = nullPrinter; end end %------------------------------------------------------------------ % Parses for the parameter 'Verbose' and returns a configured % printer. % function isVerbose = parseForVerbose(varargin) persistent parser if isempty(parser) parser = inputParser(); parser.addParameter('Verbose', false); parser.KeepUnmatched = true; end parser.parse(varargin{:}); vision.internal.inputValidation.validateLogical(parser.Results.Verbose, 'Verbose'); isVerbose = logical(parser.Results.Verbose); end %------------------------------------------------------------------ function printer = parseAndConfigure(varargin) isVerbose = vision.internal.MessagePrinter.parseForVerbose(varargin{:}); printer = vision.internal.MessagePrinter.configure(isVerbose); end end methods %------------------------------------------------------------------ % Utility function to create hyperlinked commands. % function cmdstr = makeHyperlink(~, str,cmd) if feature('hotlinks') cmdstr = sprintf('<a href="matlab:%s">%s</a>',cmd,str); else % do not print a hyperlink when in nodesktop mode cmdstr = sprintf('%s', str); end end %------------------------------------------------------------------ % Print using message ID. Adds linebreak after the message. function this = printMessage(this,varargin) this.printMessageNoReturn(varargin{:}); this.linebreak; end end end