blob: 3e92cba3c7fd72b9b203bb34433420a5b1ee13c5 [file] [log] [blame]
-- @atlcompiler atl2006
-- @nsURI UML=http://www.eclipse.org/uml2/2.1.0/UML
module Public2Private;
create OUT : UML refining IN : UML;
helper context String def : toU1Case : String =
if self.size() > 0
then self.substring(1,1).toUpper() + self.substring(2,self.size())
else self
endif;
rule Property {
from
publicAttribute : UML!Property (
publicAttribute.visibility = #public and publicAttribute.association.oclIsUndefined()
)
to
privateAttribute : UML!Property (
visibility <- #private
),
getter : UML!Operation (
name <- 'get'+publicAttribute.name.toU1Case,
class <- publicAttribute.refImmediateComposite(),
type <- publicAttribute.type
),
setter : UML!Operation (
name <- 'set'+publicAttribute.name.toU1Case,
class <- publicAttribute.refImmediateComposite(),
ownedParameter <- setterParam
),
setterParam : UML!Parameter (
name <- publicAttribute.name,
type <- publicAttribute.type
)
}