blob: 9c24226914b528a668432c1a7ba47ffe9aa62c6e [file] [log] [blame]
context File {
constraint HasName {
check : self.name.isDefined()
message : 'Unnamed ' + self.eClass().name +
' not allowed'
fix {
title : 'Create another file'
do {
var f : new File;
f.name = 'New file';
self.eContainer().contents.add(f);
}
}
}
}
context Folder {
/*
constraint NoContentWithSameName {
check {
for (c in self.contents) {
if (self.contents->select(c|c.name = self.name) > 1) {
return false;
}
}
return true;
}
}*/
critique NameStartsWithCapital {
guard : self.satisfies('HasName')
check {
var nameToUpperCase = self.name.firstToUpperCase();
return nameToUpperCase = self.name;
}
message : 'Folder ' + self.name +
' should start with an upper-case letter'
fix {
title : 'Rename to ' +
self.name.firstToUpperCase()
do {
self.name := self.name.firstToUpperCase();
}
}
}
}
context Sync {
constraint MustLinkSame {
check : self.source.eClass() = self.target.eClass()
message : 'Cannot synchronize a ' + self.source.eClass().name
+ ' with a ' + self.target.eClass().name
fix {
title : 'Synchronize with another ' +
self.source.eClass().name
do {
var target := UserInput.choose('Select target',
_Model.getAllOfType(self.source.eClass().name));
if (target.isDefined()) self.target := target;
}
}
}
}