<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head><meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>JavaAttribute xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../../../../apidocs/org/eclipse/papyrus/designer/languages/java/codegen/xtend/JavaAttribute.html">View Javadoc</a></div><pre>
<a class="jxr_linenumber" name="L1" href="#L1">1</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L2" href="#L2">2</a>   <em class="jxr_javadoccomment"> * Copyright (c) 2006 - 2016 CEA LIST.</em>
<a class="jxr_linenumber" name="L3" href="#L3">3</a>   <em class="jxr_javadoccomment"> * All rights reserved. This program and the accompanying materials</em>
<a class="jxr_linenumber" name="L4" href="#L4">4</a>   <em class="jxr_javadoccomment"> * are made available under the terms of the Eclipse Public License v1.0</em>
<a class="jxr_linenumber" name="L5" href="#L5">5</a>   <em class="jxr_javadoccomment"> * which accompanies this distribution, and is available at</em>
<a class="jxr_linenumber" name="L6" href="#L6">6</a>   <em class="jxr_javadoccomment"> * <a href="http://www.eclipse.org/legal/epl-v10.htm" target="alexandria_uri">http://www.eclipse.org/legal/epl-v10.htm</a>l</em>
<a class="jxr_linenumber" name="L7" href="#L7">7</a>   <em class="jxr_javadoccomment"> * </em>
<a class="jxr_linenumber" name="L8" href="#L8">8</a>   <em class="jxr_javadoccomment"> * Contributors:</em>
<a class="jxr_linenumber" name="L9" href="#L9">9</a>   <em class="jxr_javadoccomment"> *     Shuai Li (CEA LIST) &lt;shuai.li@cea.fr&gt; - initial API and implementation</em>
<a class="jxr_linenumber" name="L10" href="#L10">10</a>  <em class="jxr_javadoccomment"> */</em>
<a class="jxr_linenumber" name="L11" href="#L11">11</a>  <strong class="jxr_keyword">package</strong> org.eclipse.papyrus.designer.languages.java.codegen.xtend;
<a class="jxr_linenumber" name="L12" href="#L12">12</a>  
<a class="jxr_linenumber" name="L13" href="#L13">13</a>  <strong class="jxr_keyword">import</strong> com.google.common.base.Objects;
<a class="jxr_linenumber" name="L14" href="#L14">14</a>  <strong class="jxr_keyword">import</strong> java.util.Collection;
<a class="jxr_linenumber" name="L15" href="#L15">15</a>  <strong class="jxr_keyword">import</strong> org.eclipse.emf.common.util.EList;
<a class="jxr_linenumber" name="L16" href="#L16">16</a>  <strong class="jxr_keyword">import</strong> org.eclipse.papyrus.designer.languages.java.codegen.utils.JavaGenUtils;
<a class="jxr_linenumber" name="L17" href="#L17">17</a>  <strong class="jxr_keyword">import</strong> org.eclipse.papyrus.designer.languages.java.codegen.utils.Modifier;
<a class="jxr_linenumber" name="L18" href="#L18">18</a>  <strong class="jxr_keyword">import</strong> org.eclipse.papyrus.designer.languages.java.codegen.xtend.JavaDocumentation;
<a class="jxr_linenumber" name="L19" href="#L19">19</a>  <strong class="jxr_keyword">import</strong> org.eclipse.uml2.uml.AttributeOwner;
<a class="jxr_linenumber" name="L20" href="#L20">20</a>  <strong class="jxr_keyword">import</strong> org.eclipse.uml2.uml.Classifier;
<a class="jxr_linenumber" name="L21" href="#L21">21</a>  <strong class="jxr_keyword">import</strong> org.eclipse.uml2.uml.Element;
<a class="jxr_linenumber" name="L22" href="#L22">22</a>  <strong class="jxr_keyword">import</strong> org.eclipse.uml2.uml.Property;
<a class="jxr_linenumber" name="L23" href="#L23">23</a>  <strong class="jxr_keyword">import</strong> org.eclipse.uml2.uml.Type;
<a class="jxr_linenumber" name="L24" href="#L24">24</a>  <strong class="jxr_keyword">import</strong> org.eclipse.uml2.uml.ValueSpecification;
<a class="jxr_linenumber" name="L25" href="#L25">25</a>  <strong class="jxr_keyword">import</strong> org.eclipse.xtend2.lib.StringConcatenation;
<a class="jxr_linenumber" name="L26" href="#L26">26</a>  <strong class="jxr_keyword">import</strong> org.eclipse.xtext.xbase.lib.CollectionLiterals;
<a class="jxr_linenumber" name="L27" href="#L27">27</a>  
<a class="jxr_linenumber" name="L28" href="#L28">28</a>  @SuppressWarnings(<span class="jxr_string">"all"</span>)
<a class="jxr_linenumber" name="L29" href="#L29">29</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../../../../org/eclipse/papyrus/designer/languages/java/codegen/xtend/JavaAttribute.html">JavaAttribute</a> {
<a class="jxr_linenumber" name="L30" href="#L30">30</a>    <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> Collection&lt;Property&gt; getOwnedAttributes(<strong class="jxr_keyword">final</strong> Classifier cl) {
<a class="jxr_linenumber" name="L31" href="#L31">31</a>      Collection&lt;Property&gt; _xblockexpression = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L32" href="#L32">32</a>      {
<a class="jxr_linenumber" name="L33" href="#L33">33</a>        <strong class="jxr_keyword">final</strong> EList&lt;Property&gt; attributes = JavaAttribute.getOwnedAttributesWNull(cl);
<a class="jxr_linenumber" name="L34" href="#L34">34</a>        Collection&lt;Property&gt; _xifexpression = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L35" href="#L35">35</a>        <strong class="jxr_keyword">boolean</strong> _equals = Objects.equal(attributes, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="L36" href="#L36">36</a>        <strong class="jxr_keyword">if</strong> (_equals) {
<a class="jxr_linenumber" name="L37" href="#L37">37</a>          _xifexpression = CollectionLiterals.&lt;Property&gt;emptySet();
<a class="jxr_linenumber" name="L38" href="#L38">38</a>        } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L39" href="#L39">39</a>          _xifexpression = attributes;
<a class="jxr_linenumber" name="L40" href="#L40">40</a>        }
<a class="jxr_linenumber" name="L41" href="#L41">41</a>        _xblockexpression = _xifexpression;
<a class="jxr_linenumber" name="L42" href="#L42">42</a>      }
<a class="jxr_linenumber" name="L43" href="#L43">43</a>      <strong class="jxr_keyword">return</strong> _xblockexpression;
<a class="jxr_linenumber" name="L44" href="#L44">44</a>    }
<a class="jxr_linenumber" name="L45" href="#L45">45</a>    
<a class="jxr_linenumber" name="L46" href="#L46">46</a>    <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="L47" href="#L47">47</a>  <em class="jxr_javadoccomment">   * @return a list of owned attributes, since this is not supported directly on a classifier, null if not available</em>
<a class="jxr_linenumber" name="L48" href="#L48">48</a>  <em class="jxr_javadoccomment">   */</em>
<a class="jxr_linenumber" name="L49" href="#L49">49</a>    <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> EList&lt;Property&gt; getOwnedAttributesWNull(<strong class="jxr_keyword">final</strong> Classifier cl) {
<a class="jxr_linenumber" name="L50" href="#L50">50</a>      EList&lt;Property&gt; _xifexpression = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L51" href="#L51">51</a>      <strong class="jxr_keyword">if</strong> ((cl instanceof AttributeOwner)) {
<a class="jxr_linenumber" name="L52" href="#L52">52</a>        _xifexpression = ((AttributeOwner) cl).getOwnedAttributes();
<a class="jxr_linenumber" name="L53" href="#L53">53</a>      } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="L54" href="#L54">54</a>        <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L55" href="#L55">55</a>      }
<a class="jxr_linenumber" name="L56" href="#L56">56</a>      <strong class="jxr_keyword">return</strong> _xifexpression;
<a class="jxr_linenumber" name="L57" href="#L57">57</a>    }
<a class="jxr_linenumber" name="L58" href="#L58">58</a>    
<a class="jxr_linenumber" name="L59" href="#L59">59</a>    <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> String defaultValue(<strong class="jxr_keyword">final</strong> Property attribute) {
<a class="jxr_linenumber" name="L60" href="#L60">60</a>      String _xifexpression = <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="L61" href="#L61">61</a>      ValueSpecification _defaultValue = attribute.getDefaultValue();
<a class="jxr_linenumber" name="L62" href="#L62">62</a>      <strong class="jxr_keyword">boolean</strong> _notEquals = (!Objects.equal(_defaultValue, <strong class="jxr_keyword">null</strong>));
<a class="jxr_linenumber" name="L63" href="#L63">63</a>      <strong class="jxr_keyword">if</strong> (_notEquals) {
<a class="jxr_linenumber" name="L64" href="#L64">64</a>        ValueSpecification _defaultValue_1 = attribute.getDefaultValue();
<a class="jxr_linenumber" name="L65" href="#L65">65</a>        String _stringValue = _defaultValue_1.stringValue();
<a class="jxr_linenumber" name="L66" href="#L66">66</a>        _xifexpression = (<span class="jxr_string">" ="</span> + _stringValue);
<a class="jxr_linenumber" name="L67" href="#L67">67</a>      }
<a class="jxr_linenumber" name="L68" href="#L68">68</a>      <strong class="jxr_keyword">return</strong> _xifexpression;
<a class="jxr_linenumber" name="L69" href="#L69">69</a>    }
<a class="jxr_linenumber" name="L70" href="#L70">70</a>    
<a class="jxr_linenumber" name="L71" href="#L71">71</a>    <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">static</strong> CharSequence javaAttributeDeclaration(<strong class="jxr_keyword">final</strong> Property attribute) {
<a class="jxr_linenumber" name="L72" href="#L72">72</a>      StringConcatenation _builder = <strong class="jxr_keyword">new</strong> StringConcatenation();
<a class="jxr_linenumber" name="L73" href="#L73">73</a>      CharSequence _javaElementDoc = JavaDocumentation.javaElementDoc(attribute);
<a class="jxr_linenumber" name="L74" href="#L74">74</a>      _builder.append(_javaElementDoc, <span class="jxr_string">""</span>);
<a class="jxr_linenumber" name="L75" href="#L75">75</a>      _builder.newLineIfNotEmpty();
<a class="jxr_linenumber" name="L76" href="#L76">76</a>      String _attributeModifiers = Modifier.attributeModifiers(attribute);
<a class="jxr_linenumber" name="L77" href="#L77">77</a>      _builder.append(_attributeModifiers, <span class="jxr_string">""</span>);
<a class="jxr_linenumber" name="L78" href="#L78">78</a>      Type _type = attribute.getType();
<a class="jxr_linenumber" name="L79" href="#L79">79</a>      Element _owner = attribute.getOwner();
<a class="jxr_linenumber" name="L80" href="#L80">80</a>      String _javaQualifiedName = JavaGenUtils.javaQualifiedName(_type, _owner);
<a class="jxr_linenumber" name="L81" href="#L81">81</a>      _builder.append(_javaQualifiedName, <span class="jxr_string">""</span>);
<a class="jxr_linenumber" name="L82" href="#L82">82</a>      String _modArray = Modifier.modArray(attribute);
<a class="jxr_linenumber" name="L83" href="#L83">83</a>      _builder.append(_modArray, <span class="jxr_string">""</span>);
<a class="jxr_linenumber" name="L84" href="#L84">84</a>      _builder.append(<span class="jxr_string">" "</span>);
<a class="jxr_linenumber" name="L85" href="#L85">85</a>      String _name = attribute.getName();
<a class="jxr_linenumber" name="L86" href="#L86">86</a>      _builder.append(_name, <span class="jxr_string">""</span>);
<a class="jxr_linenumber" name="L87" href="#L87">87</a>      String _defaultValue = JavaAttribute.defaultValue(attribute);
<a class="jxr_linenumber" name="L88" href="#L88">88</a>      _builder.append(_defaultValue, <span class="jxr_string">""</span>);
<a class="jxr_linenumber" name="L89" href="#L89">89</a>      _builder.append(<span class="jxr_string">";"</span>);
<a class="jxr_linenumber" name="L90" href="#L90">90</a>      _builder.newLineIfNotEmpty();
<a class="jxr_linenumber" name="L91" href="#L91">91</a>      <strong class="jxr_keyword">return</strong> _builder;
<a class="jxr_linenumber" name="L92" href="#L92">92</a>    }
<a class="jxr_linenumber" name="L93" href="#L93">93</a>  }
</pre>
<hr/>
<div id="footer">Copyright &#169; 2016&#x2013;2017 <a href="https://www.eclipse.org/">Eclipse foundation</a>. All rights reserved.</div>
</body>
</html>
