Differences
This shows you the differences between two versions of the page.
| research:software:reflex:interaction_rules [2009/03/26 21:45] – created etanter | research:software:reflex:interaction_rules [2009/03/26 21:47] (current) – etanter | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ==== Interaction Rules ==== | ||
| + | Below are the logic rules used to detect structural interactions in Reflex. | ||
| + | These interaction rules take into account ordering and visibility between links. | ||
| + | |||
| + | < | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | not(ord(B, | ||
| + | not(ord(A, | ||
| + | not(ord(B,' | ||
| + | not(ord(A,' | ||
| + | | ||
| + | remove(Link, | ||
| + | | ||
| + | | ||
| + | visible(Link1, | ||
| + | | ||
| + | | ||
| + | |||
| + | interactFieldName(Link1, | ||
| + | :- readFieldName(Link1, | ||
| + | addField(Link2, | ||
| + | visible(Link2, | ||
| + | ordered(Link1, | ||
| + | remove(Link1, | ||
| + | | ||
| + | interactMethodName(Link1, | ||
| + | :- readMethodName(Link1, | ||
| + | addMethod(Link2, | ||
| + | visible(Link2, | ||
| + | ordered(Link1, | ||
| + | remove(Link1, | ||
| + | | ||
| + | interactClassName(Link1, | ||
| + | :- readClassName(Link1, | ||
| + | addClass(Link2, | ||
| + | visible(Link2, | ||
| + | ordered(Link1, | ||
| + | remove(Link2, | ||
| + | | ||
| + | interactInterfaceName(Link1, | ||
| + | :- readClassInterfaceName(Link1, | ||
| + | addInterface(Link2, | ||
| + | visible(Link2, | ||
| + | ordered(Link1, | ||
| + | remove(Link1, | ||
| + | |||
| + | | ||
| + | interactAnnotField(Link1, | ||
| + | :- readFieldAnnotationName(Link1, | ||
| + | addAnnotationToField(Link2, | ||
| + | visible(Link2, | ||
| + | ordered(Link1, | ||
| + | remove(Link1, | ||
| + | | ||
| + | interactAnnotMethod(Link1, | ||
| + | :- readMethodAnnotationName(Link1, | ||
| + | addAnnotationToMethod(Link2, | ||
| + | visible(Link2, | ||
| + | ordered(Link1, | ||
| + | remove(Link1, | ||
| + | | ||
| + | interactAnnotConstructor(Link1, | ||
| + | :- readConstructorAnnotationName(Link1, | ||
| + | addAnnotationToConstructor(Link2, | ||
| + | visible(Link2, | ||
| + | ordered(Link1, | ||
| + | remove(Link1, | ||
| + | | ||
| + | interactAnnotClass(Link1, | ||
| + | :- readClassAnnotationName(Link1, | ||
| + | addAnnotationToClass(Link2, | ||
| + | visible(Link2, | ||
| + | ordered(Link1, | ||
| + | remove(Link1, | ||
| + | | ||
| + | interactAnnotInterface(Link1, | ||
| + | :- readInterfaceAnnotationName(Link1, | ||
| + | addAnnotationToInterface(Link2, | ||
| + | visible(Link2, | ||
| + | ordered(Link1, | ||
| + | remove(Link1, | ||
| + | | ||
| + | interactModifierField(Link1, | ||
| + | :- readFieldModifier(Link1, | ||
| + | addField(Link2, | ||
| + | visible(Link2, | ||
| + | ordered(Link1, | ||
| + | remove(Link1, | ||
| + | | ||
| + | interactModifierField(Link1, | ||
| + | :- readFieldModifier(Link1, | ||
| + | setModifierField(Link2, | ||
| + | visible(Link2, | ||
| + | ordered(Link1, | ||
| + | remove(Link1, | ||
| + | | ||
| + | interactModifierMethod(Link1, | ||
| + | :- readMethodModifier(Link1, | ||
| + | addMethod(Link2, | ||
| + | visible(Link2, | ||
| + | ordered(Link1, | ||
| + | remove(Link1, | ||
| + | | ||
| + | interactModifierMethod(Link1, | ||
| + | :- readMethodModifier(Link1, | ||
| + | setModifierMethod(Link2, | ||
| + | visible(Link2, | ||
| + | ordered(Link1, | ||
| + | remove(Link1, | ||
| + | | ||
| + | interactModifierConstructor(Link1, | ||
| + | :- readConstructorModifier(Link1, | ||
| + | addConstructor(Link2, | ||
| + | visible(Link2, | ||
| + | ordered(Link1, | ||
| + | remove(Link1, | ||
| + | | ||
| + | interactModifierConstructor(Link1, | ||
| + | :- readConstructorModifier(Link1, | ||
| + | setModifierConstructor(Link2, | ||
| + | visible(Link2, | ||
| + | ordered(Link1, | ||
| + | remove(Link1, | ||
| + | | ||
| + | interactModifierClass(Link1, | ||
| + | :- readClassModifier(Link1, | ||
| + | addClass(Aspect, | ||
| + | visible(Link2, | ||
| + | ordered(Link1, | ||
| + | remove(Link1, | ||
| + | | ||
| + | interactModifierClass(Link1, | ||
| + | :- readClassModifier(Link1, | ||
| + | setModifierClass(Link2, | ||
| + | visible(Link2, | ||
| + | ordered(Link1, | ||
| + | remove(Link1, | ||
| + | | ||
| + | interactFieldType(Link1, | ||
| + | :- readFieldType(Link1, | ||
| + | addField(Link2, | ||
| + | visible(Link2, | ||
| + | ordered(Link1, | ||
| + | remove(Link1, | ||
| + | | ||
| + | interactReturnType(Link1, | ||
| + | :- readMethodReturn(Link1, | ||
| + | addMethod(Link2, | ||
| + | visible(Link2, | ||
| + | ordered(Link1, | ||
| + | remove(Link1, | ||
| + | | ||
| + | interactMethodParamTypes(Link1, | ||
| + | :- readMethodParameterTypes(Link1, | ||
| + | addMethod(Link2, | ||
| + | ParamTypes \\= [], | ||
| + | visible(Link2, | ||
| + | ordered(Link1, | ||
| + | remove(Link1, | ||
| + | | ||
| + | interactConstructorParamTypes(Link1, | ||
| + | :- readConstructorParameterTypes(Link1, | ||
| + | addConstructor(Link2, | ||
| + | ParamTypes \\= [], | ||
| + | visible(Link2, | ||
| + | ordered(Link1, | ||
| + | remove(Link1, | ||
| + | | ||
| + | interactMethodExceptionTypes(Link1, | ||
| + | :- readMethodExceptionTypes(Link1, | ||
| + | addMethod(Link2, | ||
| + | visible(Link2, | ||
| + | ordered(Link1, | ||
| + | remove(Link1, | ||
| + | | ||
| + | interactConstructorExceptionTypes(Link1, | ||
| + | :- readConstructorExceptionTypes(Link1, | ||
| + | addConstructor(Link2, | ||
| + | visible(Link2, | ||
| + | ordered(Link1, | ||
| + | remove(Link1, | ||
| + | | ||
| + | interactClassFields(Link1, | ||
| + | :- readFields(Link1, | ||
| + | addField(Link2, | ||
| + | visible(Link2, | ||
| + | ordered(Link1, | ||
| + | remove(Link1, | ||
| + | | ||
| + | interactClassMethods(Link1, | ||
| + | :- readMethods(Link1, | ||
| + | addMethod(Link2, | ||
| + | visible(Link2, | ||
| + | ordered(Link1, | ||
| + | remove(Link1, | ||
| + | | ||
| + | interactClassConstructors(Link1, | ||
| + | :- readConstructors(Link1, | ||
| + | addConstructor(Link2, | ||
| + | visible(Link2, | ||
| + | ordered(Link1, | ||
| + | remove(Link1, | ||
| + | | ||
| + | interactClassInterfaces(Link1, | ||
| + | :- readClassInterfaces(Link1, | ||
| + | addInterface(Link2, | ||
| + | visible(Link2, | ||
| + | ordered(Link1, | ||
| + | remove(Link1, | ||
| + | | ||
| + | interactFieldAnnotations(Link1, | ||
| + | :- readFieldAnnotations(Link1, | ||
| + | addAnnotationToField(Link2, | ||
| + | visible(Link2, | ||
| + | ordered(Link1, | ||
| + | remove(Link1, | ||
| + | | ||
| + | interactMethodAnnotations(Link1, | ||
| + | :- readMethodAnnotations(Link1, | ||
| + | addAnnotationToMethod(Link2, | ||
| + | visible(Link2, | ||
| + | ordered(Link1, | ||
| + | remove(Link1, | ||
| + | | ||
| + | interactConstructorAnnotations(Link1, | ||
| + | :- readConstructorAnnotations(Link1, | ||
| + | addAnnotationToConstructor(Link2, | ||
| + | visible(Link2, | ||
| + | ordered(Link1, | ||
| + | remove(Link1, | ||
| + | | ||
| + | interactInterfaceAnnotations(Link1, | ||
| + | :- readInterfaceAnnotations(Link1, | ||
| + | addAnnotationToInterface(Link2, | ||
| + | visible(Link2, | ||
| + | ordered(Link1, | ||
| + | remove(Link1, | ||
| + | | ||
| + | interactClassAnnotations(Link1, | ||
| + | :- readClassAnnotations(Link1, | ||
| + | addAnnotationToClass(Link2, | ||
| + | visible(Link2, | ||
| + | ordered(Link1, | ||
| + | remove(Link1, | ||
| + | | ||
| + | interactFieldBody(Link1, | ||
| + | :- readFieldBody(Link1, | ||
| + | addField(Link2, | ||
| + | visible(Link2, | ||
| + | ordered(Link1, | ||
| + | remove(Link1, | ||
| + | | ||
| + | interactMethodBody(Link1, | ||
| + | :- readMethodBody(Link1, | ||
| + | addMethod(Link2, | ||
| + | visible(Link2, | ||
| + | ordered(Link1, | ||
| + | remove(Link1, | ||
| + | | ||
| + | interactConstructorBody(Link1, | ||
| + | :- readConstructorBody(Link1, | ||
| + | addConstructor(Link2, | ||
| + | visible(Link2, | ||
| + | ordered(Link1, | ||
| + | remove(Link1, | ||
| + | </ | ||

