<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	
	>
<channel>
	<title>
	Comments on: UDD Properties	</title>
	<atom:link href="https://undocumentedmatlab.com/articles/udd-properties/feed" rel="self" type="application/rss+xml" />
	<link>https://undocumentedmatlab.com/articles/udd-properties?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=udd-properties</link>
	<description>Professional Matlab consulting, development and training</description>
	<lastBuildDate>Fri, 21 Jun 2013 10:29:59 +0000</lastBuildDate>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.7.2</generator>
	<item>
		<title>
		By: Setting class property types &#124; Undocumented Matlab		</title>
		<link>https://undocumentedmatlab.com/articles/udd-properties#comment-215675</link>

		<dc:creator><![CDATA[Setting class property types &#124; Undocumented Matlab]]></dc:creator>
		<pubDate>Fri, 21 Jun 2013 10:29:59 +0000</pubDate>
		<guid isPermaLink="false">http://undocumentedmatlab.com/?p=2156#comment-215675</guid>

					<description><![CDATA[[...] In UDD classes, we can do this easily by setting the property&#8217;s DataType meta-property. An easy way to do this is by setting the second argument of the schema.prop function. A detailed explanation was provided here. [...]]]></description>
			<content:encoded><![CDATA[<p>[&#8230;] In UDD classes, we can do this easily by setting the property&#8217;s DataType meta-property. An easy way to do this is by setting the second argument of the schema.prop function. A detailed explanation was provided here. [&#8230;]</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Undocumented classdef attributes &#124; Undocumented Matlab		</title>
		<link>https://undocumentedmatlab.com/articles/udd-properties#comment-124383</link>

		<dc:creator><![CDATA[Undocumented classdef attributes &#124; Undocumented Matlab]]></dc:creator>
		<pubDate>Wed, 21 Nov 2012 18:02:39 +0000</pubDate>
		<guid isPermaLink="false">http://undocumentedmatlab.com/?p=2156#comment-124383</guid>

					<description><![CDATA[[...] The properties do have a settable CaseSensitive meta-property that we can set to &#039;on/off&#039; (default=&#039;off&#039;) on a property-by-property basis. [...]]]></description>
			<content:encoded><![CDATA[<p>[&#8230;] The properties do have a settable CaseSensitive meta-property that we can set to &#039;on/off&#039; (default=&#039;off&#039;) on a property-by-property basis. [&#8230;]</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Donn		</title>
		<link>https://undocumentedmatlab.com/articles/udd-properties#comment-37767</link>

		<dc:creator><![CDATA[Donn]]></dc:creator>
		<pubDate>Thu, 24 Mar 2011 17:40:48 +0000</pubDate>
		<guid isPermaLink="false">http://undocumentedmatlab.com/?p=2156#comment-37767</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://undocumentedmatlab.com/articles/udd-properties#comment-37763&quot;&gt;John&lt;/a&gt;.

@John - Thanks for your kind words. You can place a private directory underneath your class directory. methods in that directory will not be available publicly but your regular methods will have access to them. I would guess that the method subfunction anomaly you have found was not intended and scribe.colorbar was a workaround. Try the private subfolder and les us know if it works for you.

Donn]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://undocumentedmatlab.com/articles/udd-properties#comment-37763">John</a>.</p>
<p>@John &#8211; Thanks for your kind words. You can place a private directory underneath your class directory. methods in that directory will not be available publicly but your regular methods will have access to them. I would guess that the method subfunction anomaly you have found was not intended and scribe.colorbar was a workaround. Try the private subfolder and les us know if it works for you.</p>
<p>Donn</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: John		</title>
		<link>https://undocumentedmatlab.com/articles/udd-properties#comment-37763</link>

		<dc:creator><![CDATA[John]]></dc:creator>
		<pubDate>Thu, 24 Mar 2011 16:10:53 +0000</pubDate>
		<guid isPermaLink="false">http://undocumentedmatlab.com/?p=2156#comment-37763</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://undocumentedmatlab.com/articles/udd-properties#comment-37761&quot;&gt;John&lt;/a&gt;.

A quick followup:  The constructor method does have access to class properties regardless of the &#039;PublicSet&#039; and &#039;PublicGet&#039; access flags.  Sorry for the misinformation.]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://undocumentedmatlab.com/articles/udd-properties#comment-37761">John</a>.</p>
<p>A quick followup:  The constructor method does have access to class properties regardless of the &#8216;PublicSet&#8217; and &#8216;PublicGet&#8217; access flags.  Sorry for the misinformation.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: John		</title>
		<link>https://undocumentedmatlab.com/articles/udd-properties#comment-37761</link>

		<dc:creator><![CDATA[John]]></dc:creator>
		<pubDate>Thu, 24 Mar 2011 15:47:38 +0000</pubDate>
		<guid isPermaLink="false">http://undocumentedmatlab.com/?p=2156#comment-37761</guid>

					<description><![CDATA[Donn, thanks for all of the great info in these articles.

Regarding property AccessFlags, do you have any insight into using the &#039;PublicSet&#039; and &#039;PublicGet&#039; meta-properties to create private (internal) properties?  From what I&#039;ve tried so far, setting these to &#039;off&#039; prevents public access, which is the intention.  It does not affect access from any methods in the @object folder, except that the constructor method does not appear to have access.   Unfortunately, it also seems to prevent access from any sub-function of any class method, or from any set/get functions defined in schema.m. 

I&#039;ve seen one way around this, in the scribe.colorbar class, by defining &#039;getprivateprop&#039; and &#039;setprivateprop&#039; methods and then using these throughout the rest of the code.  This is clumsy to implement, and negates the whole idea of private access, since anyone can just call: &lt;pre lang=&quot;matlab&quot;&gt;   hColorbar.setprivateprop(&#039;name&#039;,value&#039;)&lt;/pre&gt;

&lt;pre lang=&quot;matlab&quot;&gt;   hColorbar.getprivateprop(&#039;name&#039;) &lt;/pre&gt;
to get access to the supposedly private property.

Am I missing something?  Is there a way to at least make the set/getprivateprop methods themselves private?]]></description>
			<content:encoded><![CDATA[<p>Donn, thanks for all of the great info in these articles.</p>
<p>Regarding property AccessFlags, do you have any insight into using the &#8216;PublicSet&#8217; and &#8216;PublicGet&#8217; meta-properties to create private (internal) properties?  From what I&#8217;ve tried so far, setting these to &#8216;off&#8217; prevents public access, which is the intention.  It does not affect access from any methods in the @object folder, except that the constructor method does not appear to have access.   Unfortunately, it also seems to prevent access from any sub-function of any class method, or from any set/get functions defined in schema.m. </p>
<p>I&#8217;ve seen one way around this, in the scribe.colorbar class, by defining &#8216;getprivateprop&#8217; and &#8216;setprivateprop&#8217; methods and then using these throughout the rest of the code.  This is clumsy to implement, and negates the whole idea of private access, since anyone can just call: </p>
<pre lang="matlab">   hColorbar.setprivateprop('name',value')</pre>
<pre lang="matlab">   hColorbar.getprivateprop('name') </pre>
<p>to get access to the supposedly private property.</p>
<p>Am I missing something?  Is there a way to at least make the set/getprivateprop methods themselves private?</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Donn		</title>
		<link>https://undocumentedmatlab.com/articles/udd-properties#comment-36788</link>

		<dc:creator><![CDATA[Donn]]></dc:creator>
		<pubDate>Tue, 15 Mar 2011 16:06:34 +0000</pubDate>
		<guid isPermaLink="false">http://undocumentedmatlab.com/?p=2156#comment-36788</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://undocumentedmatlab.com/articles/udd-properties#comment-36586&quot;&gt;Jonathan S&lt;/a&gt;.

@Jonathan - To the best of my knowledge if you override a UDD property you will loose access to the SuperClass version (or if you prefer the superclass will loose access to the subclass version). If the valus of XData is fixed at the time of your subclass version you can pass it to the superclass in the constructor but you wont be able to change it afterwards.

&lt;pre lang=&quot;matlab&quot;&gt;
function obj = mySurface(xdataValue)
%MYSURFACE constructor passes value of XData to superclass
    % Here the value is passed to the hg.surface superclass and
    % does not set the value of XData in the subclass.
    % Ref: uitools.uitab
    obj = hg.mySurface(&#039;XData&#039;, xdataValue);
end
&lt;/pre&gt;

Donn]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://undocumentedmatlab.com/articles/udd-properties#comment-36586">Jonathan S</a>.</p>
<p>@Jonathan &#8211; To the best of my knowledge if you override a UDD property you will loose access to the SuperClass version (or if you prefer the superclass will loose access to the subclass version). If the valus of XData is fixed at the time of your subclass version you can pass it to the superclass in the constructor but you wont be able to change it afterwards.</p>
<pre lang="matlab">
function obj = mySurface(xdataValue)
%MYSURFACE constructor passes value of XData to superclass
    % Here the value is passed to the hg.surface superclass and
    % does not set the value of XData in the subclass.
    % Ref: uitools.uitab
    obj = hg.mySurface('XData', xdataValue);
end
</pre>
<p>Donn</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Jonathan S		</title>
		<link>https://undocumentedmatlab.com/articles/udd-properties#comment-36586</link>

		<dc:creator><![CDATA[Jonathan S]]></dc:creator>
		<pubDate>Mon, 14 Mar 2011 01:31:23 +0000</pubDate>
		<guid isPermaLink="false">http://undocumentedmatlab.com/?p=2156#comment-36586</guid>

					<description><![CDATA[Donn, I am very glad to finally get some insight into UDD classes in Matlab. Your articles so far have been fantastic. 

I may be jumping the gun just a little bit with my question, but I was attempting to create a class that subclasses hg.surface. Ideally, I would like to hide the XData property, however, if you attempt to modify the property in the schema.m file, it doesn&#039;t allow changing the AccessFlags (since the superclass is already created). However, using your technique of overriding the property, I was able to generate a new XData property that is no longer visible. The question is, how does one go about accessing the XData property of a super class, since you still have to be able to manipulate the XData internally.

Maybe this will be covered when you discuss the java behind UDD, but I can&#039;t come up with a good way to do this.]]></description>
			<content:encoded><![CDATA[<p>Donn, I am very glad to finally get some insight into UDD classes in Matlab. Your articles so far have been fantastic. </p>
<p>I may be jumping the gun just a little bit with my question, but I was attempting to create a class that subclasses hg.surface. Ideally, I would like to hide the XData property, however, if you attempt to modify the property in the schema.m file, it doesn&#8217;t allow changing the AccessFlags (since the superclass is already created). However, using your technique of overriding the property, I was able to generate a new XData property that is no longer visible. The question is, how does one go about accessing the XData property of a super class, since you still have to be able to manipulate the XData internally.</p>
<p>Maybe this will be covered when you discuss the java behind UDD, but I can&#8217;t come up with a good way to do this.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Maarten van der Seijs		</title>
		<link>https://undocumentedmatlab.com/articles/udd-properties#comment-36214</link>

		<dc:creator><![CDATA[Maarten van der Seijs]]></dc:creator>
		<pubDate>Thu, 10 Mar 2011 09:51:03 +0000</pubDate>
		<guid isPermaLink="false">http://undocumentedmatlab.com/?p=2156#comment-36214</guid>

					<description><![CDATA[Hi Donn, thanks for your very interesting revelations on UDD so far! I see one additional advantage of UDD classes compared to MCOS, and that is the support for the MATLAB property inspector called by obj.inspect. The inspector automatically recognizes the datatypes used in the schema.m definitions and adds corresponding property editors and renderers. Unfortunately, this seems impossible with standard MCOS classes so far.

In addition, the inspector allows us to group the properties in categories by implementing a class function info = getInspectorGrouping(h,arg). This function is very easy to define as well, since it should only return a cell array of categories and properties: 
&lt;pre lang=&quot;matlab&quot;&gt;
info{1}{1} = &#039;Category1&#039;;
info{1}{2} = {&#039;prop1&#039;,&#039;prop2&#039;,&#039;prop3&#039;};
info{2}{1} = &#039;Category2&#039;;
info{2}{2} = {&#039;prop4&#039;,&#039;prop5&#039;};
&lt;/pre&gt;]]></description>
			<content:encoded><![CDATA[<p>Hi Donn, thanks for your very interesting revelations on UDD so far! I see one additional advantage of UDD classes compared to MCOS, and that is the support for the MATLAB property inspector called by obj.inspect. The inspector automatically recognizes the datatypes used in the schema.m definitions and adds corresponding property editors and renderers. Unfortunately, this seems impossible with standard MCOS classes so far.</p>
<p>In addition, the inspector allows us to group the properties in categories by implementing a class function info = getInspectorGrouping(h,arg). This function is very easy to define as well, since it should only return a cell array of categories and properties: </p>
<pre lang="matlab">
info{1}{1} = 'Category1';
info{1}{2} = {'prop1','prop2','prop3'};
info{2}{1} = 'Category2';
info{2}{2} = {'prop4','prop5'};
</pre>
]]></content:encoded>
		
			</item>
	</channel>
</rss>
