Simplification of Query [message #1404125] |
Tue, 29 July 2014 14:53  |
Eclipse User |
|
|
|
Hi,
could you please tell me, if there is any way of to simplify of shorten the following query:
pattern TooLargeMemberContainers(memberContainer : MemberContainer) {
countClassMethods == count find classMethods(memberContainer, _AnyclassMethod);
countConstructors == count find constructors(memberContainer, _Anyconstructor);
countInterfaceMethods == count find interfaceMethods(memberContainer, _Anyinterface);
totalCount == eval(countClassMethods + countConstructors + countInterfaceMethods);
check(totalCount > 20);
}
private pattern classMethods(type, classMethod : ClassMethod) {
MemberContainer.members(type, classMethod);
}
private pattern constructors(type, constructor : Constructor) {
MemberContainer.members(type, constructor);
}
private pattern interfaceMethods(type, interfaceMethod : InterfaceMethod) {
MemberContainer.members(type, interfaceMethod);
}
Thanks and Greetings, Mario
|
|
|
|
Re: Simplification of Query [message #1404190 is a reply to message #1404155] |
Wed, 30 July 2014 06:23  |
Eclipse User |
|
|
|
Thanks a lot, your version is more readable and easier to extend. I just fixed one bug.
In the checkType pattern, in the signature I had to add the Type of the parameter member.
pattern TooLargeMemberContainers(memberContainer : MemberContainer) {
totalCount == count find members(memberContainer, _);
check(totalCount > 20);
}
private pattern members(type, member) {
MemberContainer.members(type, member);
find checkType(member);
}
private pattern checkType(member : Member){
ClassMethod(member);
} or {
Constructor(member);
} or {
InterfaceMethod(member);
}
|
|
|
Powered by
FUDForum. Page generated in 0.03829 seconds