uOttawaUniversity of Ottawa - Canadas University
list of dots

Umple User Manual    [Previous]   [Next]   

Loading

Derived Attributes

When declaring an attribute in Umple, you can specify an arbitrary expression after the equals sign to create an attribute that will be computed. There will be no set method on such an attribute.

Note that unless you use the simplest of expressions, you will be limited to only being able to generate code for the language of the expression.

You should make sure you call the get methods provided in the Umple-generated API (rather than directly accessing variables) and avoid having any side-effects in your expressions. Currently this is not enforced, but may be in the future.

For other examples of derived attributes see the sections on the Delegation pattern and sorted associations.

Example

class Point 
{
    // Cartesian coordinates
    Float x;
    Float y;
    
    // Polar coordinates
    Float rho = {Math.sqrt(Math.pow(getX(), 2) + Math.pow(getY(), 2))}
    Float theta = {Math.toDegrees(Math.atan2(getY(),getX()))}
}


      

Load the above code into UmpleOnline

 

Another Example

class Rectangle {
  Double height;
  Double width;
  Double area = Java {height*width} Php {$height*$width}
}  

      

Load the above code into UmpleOnline

 

Syntax


derivedAttribute- : [=modifier:immutable
    |settable
    |internal
    |defaulted
    |const
    |fixml]? [[typedName]] = ( [[moreCode]] )+