%% %% A DANTE-Edition example %% %% Example 32-02-8 on page 656. %% %% Copyright (C) 2010 Herbert Voss %% %% It may be distributed and/or modified under the conditions %% of the LaTeX Project Public License, either version 1.3 %% of this license or (at your option) any later version. %% %% See http://www.latex-project.org/lppl.txt for details. %% %% %% ==== % Show page(s) 1 %% \documentclass[]{article} \pagestyle{empty} \setlength\textwidth{153.70511pt} \setlength\parindent{0pt} \usepackage{uml} \begin{document} \umlSchema[box=]{Stack}{ %attributes \umlAttribute[visibility=-,type=\emph{type}, default=null,]{firstNode} }{\umlMethod[visibility]{push}{\emph{type} x}% Methods \umlMethod[visibility,type=\emph{type}]{pop}{} }{\umlArgument[type=Metaclass]{type}% Arguments }{\umlCompartmentline{S:Stack = S.push(x).pop()}% Constraints }{\umlDiagram[innerBorder=2mm,sizeX=11em,% Structure sizeY=5em,ref=StackDiagram,outerBorder=2mm]{% \umlClass[pos={.5,.5}, ref=stackNode]{Node}{ \umlAttribute[visibility=\#,type=\emph{type}]{data}}{} \umlRelation[angleA=20,angleB=-20,armA=1em, armB=1em]{stackNode}{stackNode}{% \umlLabelA[height=-1ex,fraction=1.5]{stackNode}{1} \umlLabelB[height=-5ex,fraction=1.5]{stackNode}{1}} }% End of diagram }% End of Structure/Stack \end{document}