Yes, `defaultAttributeClass` attribute is what you are looking for. You can change it for specific class in two ways:
1) Create a new meta-class:
Class('My.Meta.Class', {
meta : Joose.Meta.Class,
isa : Joose.Meta.Class,
have : {
defaultAttributeClass : MyAttributeClass
}
})
Class('My.Usual.Class', {
meta : My.Meta.Class,
has : {
attr : {} // will create MyAttributeClass
}
})
2) Create a trait:
Role('My.Trait', {
have : {
defaultAttributeClass : MyAttributeClass
}
})
Class('My.Usual.Class', {
trait : My.Trait,
has : {
attr : {} // will create MyAttributeClass
}
})
3) Also, if you'll create a *role* for attribute, you can apply it as trait for some particular attribute:
Other attributes won't be affected.
Role('My.Attribute.Role', { ... })
Class('My.Usual.Class', {
has : {
attr : {
trait : My.Attribute.Role,
...
}
}
})