<?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 for soemirno</title>
	<atom:link href="http://soemirno.net/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://soemirno.net</link>
	<description>software development</description>
	<pubDate>Tue, 07 Sep 2010 23:19:36 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>Comment on Continuous Integration met Teamcity by Mvdp</title>
		<link>http://soemirno.net/posts/30-continuous-integration-met-teamcity/comment-page-1/#comment-660</link>
		<dc:creator>Mvdp</dc:creator>
		<pubDate>Wed, 15 Apr 2009 01:32:40 +0000</pubDate>
		<guid isPermaLink="false">http://soemirno.net/?p=30#comment-660</guid>
		<description>See github for git teamcity plugin.</description>
		<content:encoded><![CDATA[<p>See github for git teamcity plugin.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Scrum(butt) op een onderhoudsklus invoeren by Niels Verdonk</title>
		<link>http://soemirno.net/posts/348-scrumbutt-op-een-onderhoudsklus-invoeren/comment-page-1/#comment-624</link>
		<dc:creator>Niels Verdonk</dc:creator>
		<pubDate>Fri, 20 Mar 2009 20:49:51 +0000</pubDate>
		<guid isPermaLink="false">http://soemirno.net/?p=348#comment-624</guid>
		<description>Als je toch Trac gebruikt, kijk dan eens naar de Agilo for Scrum plugin:
http://www.agile42.com/cms/pages/download/</description>
		<content:encoded><![CDATA[<p>Als je toch Trac gebruikt, kijk dan eens naar de Agilo for Scrum plugin:<br />
<a href="http://www.agile42.com/cms/pages/download/" onclick="javascript:pageTracker._trackPageview('/www.agile42.com');" rel="nofollow">http://www.agile42.com/cms/pages/download/</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Continuous Integration met Teamcity by soemirno</title>
		<link>http://soemirno.net/posts/30-continuous-integration-met-teamcity/comment-page-1/#comment-623</link>
		<dc:creator>soemirno</dc:creator>
		<pubDate>Sun, 15 Mar 2009 21:30:29 +0000</pubDate>
		<guid isPermaLink="false">http://soemirno.net/?p=30#comment-623</guid>
		<description>Nee, heb nog geen ervaring met Hudson, maar ziet er wel interessant uit. Een optie die ik in de gaten hou voor het geval ik niet meer gratis gebruik kan maken van Teamcity.

Of misschien dat ik er wel nu serieus naar ga kijken, alleen al omdat het niet lijkt op Teamcenter, T-Systems of Team Foundation server :). Hebben we minder spraakverwarring op deze klus.</description>
		<content:encoded><![CDATA[<p>Nee, heb nog geen ervaring met Hudson, maar ziet er wel interessant uit. Een optie die ik in de gaten hou voor het geval ik niet meer gratis gebruik kan maken van Teamcity.</p>
<p>Of misschien dat ik er wel nu serieus naar ga kijken, alleen al omdat het niet lijkt op Teamcenter, T-Systems of Team Foundation server :). Hebben we minder spraakverwarring op deze klus.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Continuous Integration met Teamcity by Jan Willem Tulp</title>
		<link>http://soemirno.net/posts/30-continuous-integration-met-teamcity/comment-page-1/#comment-621</link>
		<dc:creator>Jan Willem Tulp</dc:creator>
		<pubDate>Thu, 12 Mar 2009 22:41:59 +0000</pubDate>
		<guid isPermaLink="false">http://soemirno.net/?p=30#comment-621</guid>
		<description>Ik gebruik nu Hudson voor mijn project, in combinatie met Maven, en een aantal plugins waardoor ik heel veel van het build proces heb kunnen automatiseren. Hudson biedt ook de mogelijkheid voor build agents. Werkt erg fijn, een aanrader! Ook al ervaring mee?</description>
		<content:encoded><![CDATA[<p>Ik gebruik nu Hudson voor mijn project, in combinatie met Maven, en een aantal plugins waardoor ik heel veel van het build proces heb kunnen automatiseren. Hudson biedt ook de mogelijkheid voor build agents. Werkt erg fijn, een aanrader! Ook al ervaring mee?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Named arguments in Java by soemirno</title>
		<link>http://soemirno.net/posts/85-named-arguments-in-java/comment-page-1/#comment-607</link>
		<dc:creator>soemirno</dc:creator>
		<pubDate>Tue, 03 Mar 2009 20:34:52 +0000</pubDate>
		<guid isPermaLink="false">http://soemirno.net/?p=85#comment-607</guid>
		<description>Heb nooit zo stil gestaan bij het aantal argumenten. Uiteraard hoe minder hoe beter, maar wat een sweet spot is? Het probleem dat uncle Bob heeft met veel argumenten is wat ik ook aanhaal: het kost mentaal veel energie om te achterhalen waar elk argument voor dient. Minder of helemaal geen argumenten is een oplossing, named arguments een andere. Alleen heeft het tweede support van de taal nodig en het eerste kun je altijd toepassen.

Een DTO is wel grappig. In dit geval kun je met default initiele waarden dus ook het optionele argumenten concept toepassen:

&lt;pre lang="CSHARP"&gt;
public void UseMargins()
{
setMargin(new Margins { Bottom = 100, Right = 50 });
}
&lt;/pre&gt;

In java kan het ook met een double braces initializer bedenk ik me:
&lt;pre lang="JAVA"&gt;
public void UseMargins()
{
setMargin(new Margins() {{ setBottom(100), setRight(50) }});
}
&lt;/pre&gt;
Wat meer karakters, maar zo is java nu eenmaal,  en je maakt ook meteen een anonymous class, wat niet altijd gewenst is. Maar het is in elk geval simpeler dan mijn oorspronkelijke oplossing om een type per argument te definieren.</description>
		<content:encoded><![CDATA[<p>Heb nooit zo stil gestaan bij het aantal argumenten. Uiteraard hoe minder hoe beter, maar wat een sweet spot is? Het probleem dat uncle Bob heeft met veel argumenten is wat ik ook aanhaal: het kost mentaal veel energie om te achterhalen waar elk argument voor dient. Minder of helemaal geen argumenten is een oplossing, named arguments een andere. Alleen heeft het tweede support van de taal nodig en het eerste kun je altijd toepassen.</p>
<p>Een <span class="caps">DTO </span>is wel grappig. In dit geval kun je met default initiele waarden dus ook het optionele argumenten concept toepassen:</p>

<div class="wp_codebox"><table width="100%" ><tr id="p3481"><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code" id="p348code1"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF;">public</span> <span style="color: #0600FF;">void</span> UseMargins<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
<span style="color: #000000;">&#123;</span>
setMargin<span style="color: #000000;">&#40;</span><a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> Margins <span style="color: #000000;">&#123;</span> Bottom <span style="color: #008000;">=</span> <span style="color: #FF0000;">100</span>, Right <span style="color: #008000;">=</span> <span style="color: #FF0000;">50</span> <span style="color: #000000;">&#125;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
<span style="color: #000000;">&#125;</span></pre></td></tr></table></div>

<p>In java kan het ook met een double braces initializer bedenk ik me:</p>

<div class="wp_codebox"><table width="100%" ><tr id="p3482"><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code" id="p348code2"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> UseMargins<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
setMargin<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> Margins<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><span style="color: #009900;">&#123;</span> setBottom<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">100</span><span style="color: #009900;">&#41;</span>, setRight<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">50</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>Wat meer karakters, maar zo is java nu eenmaal,  en je maakt ook meteen een anonymous class, wat niet altijd gewenst is. Maar het is in elk geval simpeler dan mijn oorspronkelijke oplossing om een type per argument te definieren.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Named arguments in Java by freek</title>
		<link>http://soemirno.net/posts/85-named-arguments-in-java/comment-page-1/#comment-606</link>
		<dc:creator>freek</dc:creator>
		<pubDate>Tue, 03 Mar 2009 19:19:46 +0000</pubDate>
		<guid isPermaLink="false">http://soemirno.net/?p=85#comment-606</guid>
		<description>Hoeveel argumenten vind je eigenlijk acceptabel? Robert C Martin schrijft in Clean Code dat een functie 1 of 2 argumenten, in uitzonderlijke gevallen 3 mag hebben.
Als we in zo'n geval een DTO gebruiken zou je met C# sinds versie 3 mooi de nieuwe object initializer syntax kunnen gebruiken.
Je krijgt dan zoiets als
&lt;pre lang="CSHARP"&gt;
struct Margins
{
   public int Left { get; set; }
   public int Right { get; set; }
   public int Top { get; set; }
   public int Bottom { get; set; }
}

public void setMargin(Margins margins ){ ..}
     
public void UseMargins()
{
   setMargin(new Margins { Left = 1, Top = 1, Bottom = 100, Right = 50 });
}
&lt;/pre&gt;
Wel lekker compact zo niet?</description>
		<content:encoded><![CDATA[<p>Hoeveel argumenten vind je eigenlijk acceptabel? Robert C Martin schrijft in Clean Code dat een functie 1 of 2 argumenten, in uitzonderlijke gevallen 3 mag hebben.<br />
Als we in zo'n geval een <span class="caps">DTO </span>gebruiken zou je met C# sinds versie 3 mooi de nieuwe object initializer syntax kunnen gebruiken.<br />
Je krijgt dan zoiets als</p>

<div class="wp_codebox"><table width="100%" ><tr id="p3483"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
</pre></td><td class="code" id="p348code3"><pre class="csharp" style="font-family:monospace;"><span style="color: #FF0000;">struct</span> Margins
<span style="color: #000000;">&#123;</span>
   <span style="color: #0600FF;">public</span> <span style="color: #FF0000;">int</span> Left <span style="color: #000000;">&#123;</span> get<span style="color: #008000;">;</span> set<span style="color: #008000;">;</span> <span style="color: #000000;">&#125;</span>
   <span style="color: #0600FF;">public</span> <span style="color: #FF0000;">int</span> Right <span style="color: #000000;">&#123;</span> get<span style="color: #008000;">;</span> set<span style="color: #008000;">;</span> <span style="color: #000000;">&#125;</span>
   <span style="color: #0600FF;">public</span> <span style="color: #FF0000;">int</span> Top <span style="color: #000000;">&#123;</span> get<span style="color: #008000;">;</span> set<span style="color: #008000;">;</span> <span style="color: #000000;">&#125;</span>
   <span style="color: #0600FF;">public</span> <span style="color: #FF0000;">int</span> Bottom <span style="color: #000000;">&#123;</span> get<span style="color: #008000;">;</span> set<span style="color: #008000;">;</span> <span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span>
&nbsp;
<span style="color: #0600FF;">public</span> <span style="color: #0600FF;">void</span> setMargin<span style="color: #000000;">&#40;</span>Margins margins <span style="color: #000000;">&#41;</span><span style="color: #000000;">&#123;</span> ..<span style="color: #000000;">&#125;</span>
&nbsp;
<span style="color: #0600FF;">public</span> <span style="color: #0600FF;">void</span> UseMargins<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
<span style="color: #000000;">&#123;</span>
   setMargin<span style="color: #000000;">&#40;</span><a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> Margins <span style="color: #000000;">&#123;</span> Left <span style="color: #008000;">=</span> <span style="color: #FF0000;">1</span>, Top <span style="color: #008000;">=</span> <span style="color: #FF0000;">1</span>, Bottom <span style="color: #008000;">=</span> <span style="color: #FF0000;">100</span>, Right <span style="color: #008000;">=</span> <span style="color: #FF0000;">50</span> <span style="color: #000000;">&#125;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
<span style="color: #000000;">&#125;</span></pre></td></tr></table></div>

<p>Wel lekker compact zo niet?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Named arguments in Java by Jan Willem Tulp</title>
		<link>http://soemirno.net/posts/85-named-arguments-in-java/comment-page-1/#comment-588</link>
		<dc:creator>Jan Willem Tulp</dc:creator>
		<pubDate>Sat, 21 Feb 2009 20:19:20 +0000</pubDate>
		<guid isPermaLink="false">http://soemirno.net/?p=85#comment-588</guid>
		<description>Inderdaad is de laatste wel wat verbose ja. En een static import maakt het inderdaad ook wel wat leesbaarder ja!

Ik ga wp-codebox ook maar installeren op mijn WP. Thanks voor de tip! :)</description>
		<content:encoded><![CDATA[<p>Inderdaad is de laatste wel wat verbose ja. En een static import maakt het inderdaad ook wel wat leesbaarder ja!</p>
<p>Ik ga wp-codebox ook maar installeren op mijn <span class="caps">WP.</span> Thanks voor de tip! :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Named arguments in Java by soemirno</title>
		<link>http://soemirno.net/posts/85-named-arguments-in-java/comment-page-1/#comment-577</link>
		<dc:creator>soemirno</dc:creator>
		<pubDate>Sun, 15 Feb 2009 23:01:17 +0000</pubDate>
		<guid isPermaLink="false">http://soemirno.net/?p=85#comment-577</guid>
		<description>Ik maak trouwens gebruik van &lt;a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/" rel="nofollow"&gt;wp-codebox&lt;/a&gt; voor syntax highlighting. Werkt ook in de comments blijkbaar. Had je commentaar daarvoor aangepast.</description>
		<content:encoded><![CDATA[<p>Ik maak trouwens gebruik van <a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/" onclick="javascript:pageTracker._trackPageview('/www.ericbess.com');" rel="nofollow">wp-codebox</a> voor syntax highlighting. Werkt ook in de comments blijkbaar. Had je commentaar daarvoor aangepast.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Named arguments in Java by soemirno</title>
		<link>http://soemirno.net/posts/85-named-arguments-in-java/comment-page-1/#comment-576</link>
		<dc:creator>soemirno</dc:creator>
		<pubDate>Sun, 15 Feb 2009 22:51:40 +0000</pubDate>
		<guid isPermaLink="false">http://soemirno.net/?p=85#comment-576</guid>
		<description>Wel interessante suggestie, maar ik vind de verbosity wel teveel worden in je laatste oplossing. Misschien i.c.m met een factory method en een static import nog te doen. 
&lt;pre lang="JAVA"&gt;
setMargins(
       margin(0, Location.top), 
       margin(2, Location.right), 
       margin(0, Location.bottom), 
       margin(0, Location.left));
&lt;/pre&gt;

Overigens heb ik dit een beetje van JMock afgekeken. De manier hoe je daar je expectations definieert is vergelijkbaar.</description>
		<content:encoded><![CDATA[<p>Wel interessante suggestie, maar ik vind de verbosity wel teveel worden in je laatste oplossing. Misschien i.c.m met een factory method en een static import nog te doen.</p>

<div class="wp_codebox"><table width="100%" ><tr id="p3484"><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code" id="p348code4"><pre class="java" style="font-family:monospace;">setMargins<span style="color: #009900;">&#40;</span>
       margin<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span>, Location.<span style="color: #006633;">top</span><span style="color: #009900;">&#41;</span>, 
       margin<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">2</span>, Location.<span style="color: #006633;">right</span><span style="color: #009900;">&#41;</span>, 
       margin<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span>, Location.<span style="color: #006633;">bottom</span><span style="color: #009900;">&#41;</span>, 
       margin<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span>, Location.<span style="color: #006633;">left</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Overigens heb ik dit een beetje van JMock afgekeken. De manier hoe je daar je expectations definieert is vergelijkbaar.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Named arguments in Java by Jan Willem Tulp</title>
		<link>http://soemirno.net/posts/85-named-arguments-in-java/comment-page-1/#comment-575</link>
		<dc:creator>Jan Willem Tulp</dc:creator>
		<pubDate>Sun, 15 Feb 2009 18:43:02 +0000</pubDate>
		<guid isPermaLink="false">http://soemirno.net/?p=85#comment-575</guid>
		<description>Goede blogpost!! En inderdaad verbetert dat zeker de leesbaarheid van je code.

Een alternatieve manier voor je margin voorbeeld zou kunnen zijn dat je factory methods maakt op de Margin class, die zelf dan een private constructor heeft, zodat je zoiets krijgt als:
&lt;pre lang="JAVA"&gt;
public class Margin 
{
  private int size;

  public static Margin top(int size) {
    return new Margin(size);
  }
  public static Margin right(int size) {
    return new Margin(size);
  }
  ...

  private Margin(int size) {
    this.value = size;
  }

  public int getSize() {
    return this.size;
  }
}
&lt;/pre&gt;

In je aanroepende methode zou je dan zoiets krijgen als:

setMargins(Margin.top(0), Margin.right(2), Margin.bottom(0), Margin.left(2));


En nog een alternatief zou kunnen zijn (omdat al die verschillende margins eigenlijk dezelfde klasse zijn, maar alleen van locatie verschillen) is dat je 1 Margin klasse maakt die een size size en iets van een lokatie waarde mee krijgt. Zowieso een voorbeeld van een Domain-Driven Design value type. Dus iets als:
&lt;pre lang="JAVA"&gt;
public class Margin {
  private int size;
  private Location location;

  public enum Location { top, right, bottom, left }
 
  public Margin(int size, Location location)
  {
    this.size = size;
    this.location = location;
  }

  public int getSize()
  {
    return this.size;
  }

  public Location getLocation()
  {
    return this.location;
  }
}
&lt;/pre&gt;
Iets meer verbose wordt je client aanroep dan:

setMargins(new Margin(0, Location.top), new Margin(2, Location.right), new Margin(0, Location.bottom), new Margin(0, Location.left));</description>
		<content:encoded><![CDATA[<p>Goede blogpost!! En inderdaad verbetert dat zeker de leesbaarheid van je code.</p>
<p>Een alternatieve manier voor je margin voorbeeld zou kunnen zijn dat je factory methods maakt op de Margin class, die zelf dan een private constructor heeft, zodat je zoiets krijgt als:</p>

<div class="wp_codebox"><table width="100%" ><tr id="p3485"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
</pre></td><td class="code" id="p348code5"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Margin 
<span style="color: #009900;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000066; font-weight: bold;">int</span> size<span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> Margin top<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> size<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000000; font-weight: bold;">new</span> Margin<span style="color: #009900;">&#40;</span>size<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> Margin right<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> size<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000000; font-weight: bold;">new</span> Margin<span style="color: #009900;">&#40;</span>size<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
  ...
&nbsp;
  <span style="color: #000000; font-weight: bold;">private</span> Margin<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> size<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">value</span> <span style="color: #339933;">=</span> size<span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">int</span> getSize<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">size</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>In je aanroepende methode zou je dan zoiets krijgen als:</p>
<p>setMargins(Margin.top(0), Margin.right(2), Margin.bottom(0), Margin.left(2));</p>
<p>En nog een alternatief zou kunnen zijn (omdat al die verschillende margins eigenlijk dezelfde klasse zijn, maar alleen van locatie verschillen) is dat je 1 Margin klasse maakt die een size size en iets van een lokatie waarde mee krijgt. Zowieso een voorbeeld van een Domain-Driven Design value type. Dus iets als:</p>

<div class="wp_codebox"><table width="100%" ><tr id="p3486"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
</pre></td><td class="code" id="p348code6"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Margin <span style="color: #009900;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000066; font-weight: bold;">int</span> size<span style="color: #339933;">;</span>
  <span style="color: #000000; font-weight: bold;">private</span> Location location<span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">enum</span> Location <span style="color: #009900;">&#123;</span> top, right, bottom, left <span style="color: #009900;">&#125;</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">public</span> Margin<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> size, Location location<span style="color: #009900;">&#41;</span>
  <span style="color: #009900;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">size</span> <span style="color: #339933;">=</span> size<span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">location</span> <span style="color: #339933;">=</span> location<span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">int</span> getSize<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
  <span style="color: #009900;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">size</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">public</span> Location getLocation<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
  <span style="color: #009900;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">location</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>Iets meer verbose wordt je client aanroep dan:</p>
<p>setMargins(new Margin(0, Location.top), new Margin(2, Location.right), new Margin(0, Location.bottom), new Margin(0, Location.left));</p>
]]></content:encoded>
	</item>
</channel>
</rss>
