Author:halw

Date:2009-01-27T01:57:16.000000Z


git-svn-id: https://svn.eiffel.com/eiffel-org/trunk@171 abb3cda0-5349-4a8f-a601-0c33ac3a8c38
This commit is contained in:
halw
2009-01-27 01:57:16 +00:00
parent 2bccdbc34d
commit 03d0037bb7
10 changed files with 191 additions and 107 deletions

View File

@@ -31,32 +31,54 @@ Buffer is a way to refer to text of a class, a feature or text/selected text in
* {<eiffel>SOME_CLASS</eiffel>}.<eiffel>some_feature</eiffel> represents text of <eiffel>some_feature</eiffel> from <eiffel>SOME_CLASS</eiffel> * {<eiffel>SOME_CLASS</eiffel>}.<eiffel>some_feature</eiffel> represents text of <eiffel>some_feature</eiffel> from <eiffel>SOME_CLASS</eiffel>
For example, if you run the command: For example, if you run the command:
{{sample| gvim {<eiffel>ANY</eiffel>} }} <code lang=text>
The text of class <eiffel>ANY</eiffel> will be displayed in a gvim window. gvim {ANY}</code>
then the text of class <eiffel>ANY</eiffel> will be displayed in a gvim window.
If you run the command: If you run the command:
{{sample| gvim @{<eiffel>ANY</eiffel>} }} <code lang=text>
And if class <eiffel>ANY</eiffel> is opened in an editor tab and some text is selected there, the selected text will be displayed in a gvim window. gvim @{ANY}</code>
and if class <eiffel>ANY</eiffel> is opened in an editor tab and some text is selected there, the selected text will be displayed in a gvim window.
If you run the command: If you run the command:
{{sample| gvim @{<eiffel>ANY</eiffel>}.<eiffel>is_equal</eiffel> }} <code lang=text>
The text of feature <eiffel>is_equal</eiffel> from class <eiffel>ANY</eiffel> will be displayed in a gvim window. gvim @{ANY}.is_equal</code>
then the text of feature <eiffel>is_equal</eiffel> from class <eiffel>ANY</eiffel> will be displayed in a gvim window.
If you run the command: If you run the command:
{{sample| gvim -d {<eiffel>ANY</eiffel>}.<eiffel>is_equal</eiffel> {<eiffel>APPLICATION</eiffel>}.<eiffel>is_equal</eiffel> }} <code lang=text>
A gvim windows in diff mode will be opened showing the difference between <eiffel>ANY</eiffel>.<eiffel>is_equal</eiffel> and <eiffel>APPLICATION</eiffel>.<eiffel>is_equal</eiffel>. gvim -d {ANY}.is_equal {APPLICATION}.is_equal</code>
then a gvim window in diff mode will be opened showing the difference between <eiffel>ANY</eiffel>.<eiffel>is_equal</eiffel> and <eiffel>APPLICATION</eiffel>.<eiffel>is_equal</eiffel>.
The text used in buffer is stored in a temporary file so whatever change done to that text won't affect the text used in EiffelStudio. The text used in buffer is stored in a temporary file so whatever change done to that text won't affect the text used in EiffelStudio.
==Auto-completion== ==Auto-completion==
The command area supports auto-completion. You can auto-complete placeholder, class name and feature name, shown in the following pictures: The command area supports auto-completion. You can auto-complete placeholder, class name and feature name, shown in the following pictures:
Auto-complete placeholder: [[Image:console-auto1|Auto-complete placeholder]] Auto-complete placeholder:
[[Image:console-auto1|Auto-complete placeholder]]
Auto-complete class name:
[[Image:console-auto2|Auto-complete class name]]
Auto-complete feature name:
[[Image:console-auto3|Auto-complete feature name]]
Auto-complete class name: [[Image:console-auto2|Auto-complete class name]]
Auto-complete feature name: [[Image:console-auto3|Auto-complete feature name]]
==Pick and drop== ==Pick and drop==

View File

@@ -4,88 +4,88 @@
All actions taken in the diagram tool that modify a part of the system are immediately reflected in the Eiffel system. Following is a summary of these actions. All actions taken in the diagram tool that modify a part of the system are immediately reflected in the Eiffel system. Following is a summary of these actions.
* When you create a new class, this is the generated empty class: <br/> * When you create a new class, this is the generated empty class: <br/>
<code> <code>
indexing note
description: "Objects that ..." description: "Objects that ..."
author: "" author: ""
date: "$Date: 2008-09-02 13:54:45 +0200 (Tue, 02 Sep 2008) $" date: "$Date: 2008-09-02 13:54:45 +0200 (Tue, 02 Sep 2008) $"
revision: "$Revision: 74646 $" revision: "$Revision: 74646 $"
class class
CLASS_NAME CLASS_NAME
end -- class CLASS_NAME end -- class CLASS_NAME
</code> </code>
* When you delete a class, the class file is removed from the disk. * When you delete a class, the class file is removed from the disk.
* When you add a parent to a class, the parent is inserted in the existing inheritance clause, ''without'' any additional ( <code> undefine </code>/ <code> select </code>/etc.) clauses to solve possible conflicts. <br/> * When you add a parent to a class, the parent is inserted in the existing inheritance clause, ''without'' any additional ( <code>undefine</code>/ <code>select</code>/etc.) clauses to solve possible conflicts. <br/>
<code> <code>
indexing note
description: "Objects that ..." description: "Objects that ..."
author: "" author: ""
date: "$Date: 2008-09-02 13:54:45 +0200 (Tue, 02 Sep 2008) $" date: "$Date: 2008-09-02 13:54:45 +0200 (Tue, 02 Sep 2008) $"
revision: "$Revision: 74646 $" revision: "$Revision: 74646 $"
class class
CLASS_NAME CLASS_NAME
inherit inherit
NEW_PARENT NEW_PARENT
end -- class CLASS_NAME end -- class CLASS_NAME
</code> </code>
* When removing an inheritance link, the entire parent clause is removed, i.e. including any <code> redefine </code>/ <code> undefine </code>/etc. until the matching <code> end </code>. * When removing an inheritance link, the entire parent clause is removed, i.e. including any <code>redefine</code>/<code>undefine</code>/etc. until the matching <code>end</code>.
* When creating a client link, a function or attribute is generated by the feature wizard. When creating a function, this code is generated: <br/> * When creating a client link, a function or attribute is generated by the feature wizard. When creating a function, this code is generated: <br/>
<code> <code>
indexing note
description: "Objects that ..." description: "Objects that ..."
author: "" author: ""
date: "$Date: 2008-09-02 13:54:45 +0200 (Tue, 02 Sep 2008) $" date: "$Date: 2008-09-02 13:54:45 +0200 (Tue, 02 Sep 2008) $"
revision: "$Revision: 74646 $" revision: "$Revision: 74646 $"
class class
CLASS_NAME CLASS_NAME
feature -- Access feature -- Access
f: TYPE is f: TYPE
-- Client from CLASS_NAME to TYPE. -- Client from CLASS_NAME to TYPE.
do do
end end
end -- class CLASS_NAME end -- class CLASS_NAME
</code> </code>
* If you choose to create an attribute for the client link, and optionally specify to generate a set-procedure and an invariant, the following code will be pasted into the class text: <br/> * If you choose to create an attribute for the client link, and optionally specify to generate a set-procedure and an invariant, the following code will be pasted into the class text: <br/>
<code> <code>
indexing note
description: "Objects that ..." description: "Objects that ..."
author: "" author: ""
date: "$Date: 2008-09-02 13:54:45 +0200 (Tue, 02 Sep 2008) $" date: "$Date: 2008-09-02 13:54:45 +0200 (Tue, 02 Sep 2008) $"
revision: "$Revision: 74646 $" revision: "$Revision: 74646 $"
class class
CLASS_NAME CLASS_NAME
feature -- Access feature -- Access
f: TYPE is f: TYPE
-- Client from CLASS_NAME to TYPE. -- Client from CLASS_NAME to TYPE.
feature -- Element change feature -- Element change
set_f (a_f: TYPE) is set_f (a_f: TYPE)
-- Client from CLASS_NAME to TYPE. -- Client from CLASS_NAME to TYPE.
require require
a_f_not_void: af /= Void a_f_not_void: af /= Void
do do
f := a_f f := a_f
ensure ensure
f_assigned: f = a_f f_assigned: f = a_f
end end
invariant invariant
f_not_void: f /= Void f_not_void: f /= Void
end -- class CLASS_NAME end -- class CLASS_NAME
</code> </code>

View File

@@ -3,49 +3,74 @@
[[Property:uuid|c0ea47ac-e616-0762-b1bf-53d87df8ce9f]] [[Property:uuid|c0ea47ac-e616-0762-b1bf-53d87df8ce9f]]
The toolbar of the diagram contains these buttons: The toolbar of the diagram contains these buttons:
* [[Image:diagram-target-cluster-or-class-icon]] Target to cluster or class <br/> * [[Image:diagram-target-cluster-or-class-icon]] Target to cluster or class <br/>
Drop a class or a cluster on this icon to build the corresponding diagram. **Drop a class or a cluster on this icon to build the corresponding diagram.
* [[Image:new-inheritance-link-icon]] [[Creating inheritance links|Create new inheritance links]] <br/> * [[Image:new-inheritance-link-icon]] [[Creating inheritance links|Create new inheritance links]] <br/>
Selecting this button allows you to create inheritance, client-supplier or aggregate links by picking from one class and dropping on the other. **Selecting this button allows you to create inheritance, client-supplier or aggregate links by picking from one class and dropping on the other.
* [[Image:16x16--new-class-icon]] [[Creating a new class|Create a new class]] <br/> * [[Image:16x16--new-class-icon]] [[Creating a new class|Create a new class]] <br/>
Pick from this button and drop on the diagram to add a new class. **Pick from this button and drop on the diagram to add a new class.
* [[Image:general-undo-icon]] [[Undoing and redoing|Undo last action]] <br/> * [[Image:general-undo-icon]] [[Undoing and redoing|Undo last action]] <br/>
Click to undo the last action. **Click to undo the last action.
* [[Image:general-undo-history-icon]] [[Undoing and redoing|History tool]] <br/> * [[Image:general-undo-history-icon]] [[Undoing and redoing|History tool]] <br/>
Click to open the '''History tool'''. **Click to open the '''History tool'''.
* [[Image:general-redo-icon]] [[Undoing and redoing|Redo last action]] <br/> * [[Image:general-redo-icon]] [[Undoing and redoing|Redo last action]] <br/>
Click to redo the last undone action. **Click to redo the last undone action.
* [[Image:general-reset-icon]] [[Removing items from a view|Remove figure]] <br/> * [[Image:general-reset-icon]] [[Removing items from a view|Remove figure]] <br/>
Drop figures in this hole that you want to remove from the view only. **Drop figures in this hole that you want to remove from the view only.
* [[Image:diagram-choose-color-icon]] [[Changing colors of classes|Change color]] <br/> * [[Image:diagram-choose-color-icon]] [[Changing colors of classes|Change color]] <br/>
Drop class bubbles in this hole to change their color, or click this button and change the color of all class bubbles at once. **Drop class bubbles in this hole to change their color, or click this button and change the color of all class bubbles at once.
* [[Image:diagram-fill-cluster-icon]] [[Retrieving all classes into a cluster|Include all classes of cluster]] <br/> * [[Image:diagram-fill-cluster-icon]] [[Retrieving all classes into a cluster|Include all classes of cluster]] <br/>
Drop a cluster in this hole to show all classes of the cluster in this view. **Drop a cluster in this hole to show all classes of the cluster in this view.
* [[Image:diagram-depth-of-relations-icon]] [[Changing system exploration depth|Select depth of relations]] <br/> * [[Image:diagram-depth-of-relations-icon]] [[Changing system exploration depth|Select depth of relations]] <br/>
Click to bring up the '''Select depth''' dialog. **Click to bring up the '''Select depth''' dialog.
* [[Image:diagram-zoom-out-icon]] [[Zooming a diagram|Zoom out]] <br/> * [[Image:diagram-zoom-out-icon]] [[Zooming a diagram|Zoom out]] <br/>
Shrink the diagram. **Shrink the diagram.
* [[Image:diagram-fit-to-screen-icon]] [[Zooming a diagram|Fit Diagram to Screen]] <br/> * [[Image:diagram-fit-to-screen-icon]] [[Zooming a diagram|Fit Diagram to Screen]] <br/>
Fit the diagram to the screen dimensions so it is all visible. **Fit the diagram to the screen dimensions so it is all visible.
* [[Image:diagram-zoom-in-icon]] [[Zooming a diagram|Zoom in]] <br/> * [[Image:diagram-zoom-in-icon]] [[Zooming a diagram|Zoom in]] <br/>
Enlarge the diagram. **Enlarge the diagram.
* [[Image:diagram-inheritance-link-icon]] [[Showing or hiding links and labels|Show/hide inheritance links]] <br/> * [[Image:diagram-inheritance-link-icon]] [[Showing or hiding links and labels|Show/hide inheritance links]] <br/>
Toggle visibility of all inheritance links in the view. **Toggle visibility of all inheritance links in the view.
* [[Image:diagram-supplier-link-icon]] [[Showing or hiding links and labels|Show/hide client-supplier links]] <br/> * [[Image:diagram-supplier-link-icon]] [[Showing or hiding links and labels|Show/hide client-supplier links]] <br/>
Toggle visibility of all client-supplier links in the view. **Toggle visibility of all client-supplier links in the view.
* [[Image:diagram-show-labels-icon]] [[Showing or hiding links and labels|Show/hide labels]] <br/> * [[Image:diagram-show-labels-icon]] [[Showing or hiding links and labels|Show/hide labels]] <br/>
Toggle visibility of all client link labels in the view. **Toggle visibility of all client link labels in the view.
* [[Image:diagram-export-to-png-icon]] [[Exporting a diagram to PNG image file|Export diagram to.png]] <br/> * [[Image:diagram-export-to-png-icon]] [[Exporting a diagram to PNG image file|Export diagram to.png]] <br/>
Click to generate a .png file from current view. **Click to generate a .png file from current view.
* [[Image:diagram-toggle-quality-icon]] Toggles the drawing quality. * [[Image:diagram-toggle-quality-icon]] Toggles the drawing quality.
* [[Image:diagram-toogle-physics-icon]] Toggles the physics mode on and off. * [[Image:diagram-toogle-physics-icon]] Toggles the physics mode on and off.
* [[Image:diagram-view-uml-icon]] Toggles view between BON notation and UML. * [[Image:diagram-view-uml-icon]] Toggles view between BON notation and UML.
* [[Image:diagram-anchor-icon]] Allows to anchor or unanchor a class/cluster figure. * [[Image:diagram-anchor-icon]] Allows to anchor or unanchor a class/cluster figure.
* [[Image:diagram-physics-settings-icon]] Displays physics settings dialog to control physics behavour. * [[Image:diagram-physics-settings-icon]] Displays physics settings dialog to control physics behavour.
* [[Image:16x16--general-delete-icon]] [[Deleting items|Delete]] <br/> * [[Image:16x16--general-delete-icon]] [[Deleting items|Delete]] <br/>
Drop items in this hole to remove them from the system. **Drop items in this hole to remove them from the system.
* [[Image:diagram-show-legend-icon]] Toggle cluster color legend. * [[Image:diagram-show-legend-icon]] Toggle cluster color legend.
* [[Image:diagram-force-right-angles-icon]] [[Using the link tool|Put handles on a link]] <br/> * [[Image:diagram-force-right-angles-icon]] [[Using the link tool|Put handles on a link]] <br/>
Click on this button to toggle right angles on all links in the view. Drop a link on it to bring up the link tool for that link. **Click on this button to toggle right angles on all links in the view. Drop a link on it to bring up the link tool for that link.
In addition to these toolbar buttons there is also a drop down list for selecting various zoom percentages on the current view, and a view list for switching between previously saved views/layouts of various parts of the system. In addition to these toolbar buttons there is also a drop down list for selecting various zoom percentages on the current view, and a view list for switching between previously saved views/layouts of various parts of the system.

View File

@@ -5,37 +5,68 @@ The diagram tool uses the [http://bon-method.com BON] (Business Object Notation
==Class== ==Class==
[[Image:bon-class]] An object class is represented by an ellipse(sometimes referred to as ''bubble''). It contains the class name and formal generics of the Eiffel class it represents. Second, it displays information about properties of a class. These properties are: [[Image:bon-class]]
* Deferred: class is declared as <code> deferred </code>.
A class is represented by an ellipse(sometimes referred to as ''bubble''). It contains the class name and formal generics of the Eiffel class it represents. Second, it displays information about properties of a class. These properties are:
* Deferred: class is declared as <code>deferred</code>.
[[Image:bon-class-deferred]] [[Image:bon-class-deferred]]
* Effective: class is not <code> deferred </code> and has at least one <code> deferred </code> parent, or redefines one ore more features.
* Effective: class is not <code>deferred</code> and has at least one <code>deferred</code> parent, or redefines one ore more features.
[[Image:bon-class-effective]] [[Image:bon-class-effective]]
* Persistent: class inherits <eiffel>STORABLE</eiffel> or has indexing tag <code> persistent </code>.
* Persistent: class inherits <eiffel>STORABLE</eiffel> or has indexing tag <code>persistent</code>.
[[Image:bon-class-persistent]] [[Image:bon-class-persistent]]
* Interfaced: class has one ore more <code> external </code> features.
* Interfaced: class has one ore more <code>external</code> features.
[[Image:bon-class-interfaced]] [[Image:bon-class-interfaced]]
* Reused: class resides in a precompiled library or in a <code> library </code> cluster.
* Reused: class resides in a precompiled library or in a <code>library</code> cluster.
[[Image:bon-class-reused]] [[Image:bon-class-reused]]
* Root class: class has the program's entry point. * Root class: class has the program's entry point.
[[Image:bon-class-root]] [[Image:bon-class-root]]
{{seealso|<br/> {{seealso|<br/>
[[Rename class|Changing class names]] }} [[Rename class|Changing class names]] }}
==Cluster== ==Cluster==
A cluster is a collection of classes and sub-clusters. It is represented by a stippled, rounded rectangle. The cluster name is in a similar rectangle, by default located at the top of the cluster just outside of it. A cluster can be iconified, which means it is minimized to take up as less space as possible. A cluster is a collection of classes and sub-clusters. It is represented by a stippled, rounded rectangle. The cluster name is in a similar rectangle, by default located at the top of the cluster just outside of it.
<div> [[Image:bon-cluster-iconified]] [[Image:bon-cluster]] </div><br/>
[[Image:bon-cluster]]
A cluster can be iconified, which means it is minimized to take up as less space as possible.
[[Image:bon-cluster-iconified]]
{{seealso|<br/> {{seealso|<br/>
[[Iconifying and restoring a cluster|Iconifying a cluster]] }} [[Iconifying and restoring a cluster|Iconifying a cluster]] }}
==Inheritance links== ==Inheritance links==
Inheritance between classes is represented by an arrow from a class to its parent. Typically, inheritance links point upwards. Inheritance between classes is represented by an arrow from a class to its parent. Typically, inheritance links point upwards.
@@ -45,11 +76,20 @@ Inheritance between classes is represented by an arrow from a class to its paren
{{seealso|<br/> {{seealso|<br/>
[[Creating inheritance links|Creating inheritance links]] }} [[Creating inheritance links|Creating inheritance links]] }}
==Client/supplier links== ==Client/supplier links==
Client relationships between classes are represented by an arrow with a double line from the client to the supplier. Typically, these links point to the right. A special kind of relationship is the aggregate client/supplier link. Aggregate means that the supplier is an integral part of the client. In the class text, it corresponds to <code> expanded </code> features. In the diagram, an aggregate link has a little line along the back side of the arrow. Client relationships between classes are represented by an arrow with a double line from the client to the supplier. Typically, these links point to the right.
<div> [[Image:bon-client]] [[Image:bon-agg-client]] </div><br/>
<br/>
[[Image:bon-client]]
A special kind of relationship is the aggregate client/supplier link. Aggregate means that the supplier is an integral part of the client. In the class text, it corresponds to <code>expanded</code> features. In the diagram, an aggregate link has a little line along the back side of the arrow.
[[Image:bon-agg-client]]
{{seealso|<br/> {{seealso|<br/>
[[Creating client/supplier links|Creating client/supplier links]] }} [[Creating client/supplier links|Creating client/supplier links]] }}

View File

@@ -5,7 +5,7 @@ Every class or cluster has one or more views. Every view shows the [[Contexts|co
<div> [[Image:diagram-view-combo]] </div> <div> [[Image:diagram-view-combo]] </div>
The view combo box, as seen in the image above, can be used to add a view or switch to a previously added one. Every class and cluster has a view "DEFAULT" that is generated automatically. If you create a new view and move for example a class around in it, the "DEFAULT" view is unaffected. The view combo box, as seen in the image above, can be used to add a view or switch to a previously added one. Every class and cluster has a view "DEFAULT" that is generated automatically. If you create a new view and move for example a class around in it, the "DEFAULT" view is unaffected.
The case tool provides you with the following possibilities to manipulate views: The Diagram tool provides you with the following possibilities to manipulate views:
* [[Adding a view|Adding a view]] * [[Adding a view|Adding a view]]
* [[Deleting a view|Deleting a view]] * [[Deleting a view|Deleting a view]]
* [[Showing or hiding links and labels|Showing or hiding links and labels]] * [[Showing or hiding links and labels|Showing or hiding links and labels]]

View File

@@ -3,12 +3,12 @@
[[Property:uuid|503b260c-99c5-06fb-2953-8899866c1c51]] [[Property:uuid|503b260c-99c5-06fb-2953-8899866c1c51]]
The Eiffel scheme syntax is: The Eiffel scheme syntax is:
<code lang="text"> <tt>
eiffel:?<eiffel-resource> <nowiki>eiffel</nowiki>:?<i><eiffel-resource></i>
</code> </tt>
where <eiffel-resource> is a combination of following parts, connected by '''&''' if more than one part are required: where <i><eiffel-resource></i> is a combination of following parts, connected by '''&''' if more than one part are required:
* <system>, in the form of system=to_be_replaced, '''to_be_replaced''' consists of system_name or uuid of the system, or both connected by "'''.'''". * <system>, in the form of system=to_be_replaced, '''to_be_replaced''' consists of system_name or uuid of the system, or both connected by "'''.'''".
* <target>, in the form of target=to_be_replaced, '''to_be_replaced''' consists of target_name or uuid of the system, or both connected by "'''.'''". * <target>, in the form of target=to_be_replaced, '''to_be_replaced''' consists of target_name or uuid of the system, or both connected by "'''.'''".

View File

@@ -123,14 +123,14 @@ The related concepts of descendants, proper descendants, heirs, indirect heirs f
'''Applicable on:''' Class<br/> '''Applicable on:''' Class<br/>
'''Remarks:''' This criterion evaluates to True if a candidate class is supplier of any of the classes in criterion domain. Directness modifier is boolean modifier, if it's True only direct suppliers are picked, if indirect modifier is set, only indirect suppliers are picked. normally_referenced and syntactically_referenced modifiers are both boolean modifiers, they enable to specify how one class is used by another class. Let's use an example to demonstrate these ideas, for example, in class A, there is a feature foo:<br/> '''Remarks:''' This criterion evaluates to True if a candidate class is supplier of any of the classes in criterion domain. Directness modifier is boolean modifier, if it's True only direct suppliers are picked, if indirect modifier is set, only indirect suppliers are picked. normally_referenced and syntactically_referenced modifiers are both boolean modifiers, they enable to specify how one class is used by another class. Let's use an example to demonstrate these ideas, for example, in class A, there is a feature foo:<br/>
<code> <code>
foo is foo
local local
l_str: STRING l_str: STRING
l_file: FILE l_file: FILE
do do
create l_str.make_empty create l_str.make_empty
end end
</code> </code>
<br/> <br/>
Then both <eiffel>STRING</eiffel> and <eiffel>FILE</eiffel> are suppliers of class <eiffel>A</eiffel>. <eiffel>STRING</eiffel> is normal supplier because a feature make_empty in <eiffel>STRING</eiffel> is invoked in class <eiffel>A</eiffel>, but <eiffel>FILE</eiffel> is a syntactically referenced supplier because no feature from <eiffel>FILE</eiffel> is called from <eiffel>A</eiffel>. Classes explicitly listed in inherit clause of a class are also considered as syntactically referenced suppliers. Then both <eiffel>STRING</eiffel> and <eiffel>FILE</eiffel> are suppliers of class <eiffel>A</eiffel>. <eiffel>STRING</eiffel> is normal supplier because a feature make_empty in <eiffel>STRING</eiffel> is invoked in class <eiffel>A</eiffel>, but <eiffel>FILE</eiffel> is a syntactically referenced supplier because no feature from <eiffel>FILE</eiffel> is called from <eiffel>A</eiffel>. Classes explicitly listed in inherit clause of a class are also considered as syntactically referenced suppliers.
Concepts of direct/indirect, normally referenced/syntactically referenced clients follow the same rule expect in the other direction. Concepts of direct/indirect, normally referenced/syntactically referenced clients follow the same rule expect in the other direction.
@@ -202,6 +202,7 @@ only_current_verision modifier is a boolean modifier, if it's True, when the cri
'''Syntax:''' is_implementors_of {domain}<br/> '''Syntax:''' is_implementors_of {domain}<br/>
'''Applicable on:''' Feature<br/> '''Applicable on:''' Feature<br/>
'''Remark:''' This criterion will evaluate to True if the candidate feature is an implementer of some features listed in criterion domain.<br/> '''Remark:''' This criterion will evaluate to True if the candidate feature is an implementer of some features listed in criterion domain.<br/>

View File

@@ -38,17 +38,13 @@ The syntax for name_is is:
name_is "pattern", matching_strategy, case_sensitive name_is "pattern", matching_strategy, case_sensitive
The match_strategy modifier decides how criterion text "pattern" is matched, and can choose from one of the following four values: The match_strategy modifier decides how criterion text "pattern" is matched, and can choose from one of the following four values:
* * Identity - Pattern is matched if the text is identical to criterion text
Identity - Pattern is matched if the text is identical to criterion text
* * Containing - Pattern is matched the text contains criterion text
Containing - Pattern is matched the text contains criterion text
* * Wildcard - Pattern is matched if it occurs in criterion text according to wildcard rules
Wildcard - Pattern is matched if it occurs in criterion text according to wildcard rules
* * Regular expression - Pattern is matched if it occurs in criterion text according to regular expression rules
Regular expression - Pattern is matched if it occurs in criterion text according to regular expression rules
The case_sensitive modifier can be True or False, it indicates if pattern matching is case sensitive or not. The case_sensitive modifier can be True or False, it indicates if pattern matching is case sensitive or not.

View File

@@ -56,7 +56,7 @@ The following figure shows a new basic class metric:
[[Image:interface9|basic metric]] [[Image:interface9|basic metric]]
When defining basic metrics, you can press Ctrl + Space in a cell in the criterion column (the first column in "definition" area) to get a list of all applicable criteria. You can also type "and" or "or" in that cell to get criterion connectors. And you can put "not" in front of a criterion name to get its negation. After typing the criterion name and hitting enter, if the criterion needs further setup, the property cell of that criterion will be highlighted. For domain criterion such as ancestor_is, caller_is, you can pick an item and drop it into this property cell. When defining basic metrics, you can press <code>CTRL</code>+<code>Space</code> in a cell in the criterion column (the first column in "definition" area) to get a list of all applicable criteria. You can also type "and" or "or" in that cell to get criterion connectors. And you can put "not" in front of a criterion name to get its negation. After typing the criterion name and hitting enter, if the criterion needs further setup, the property cell of that criterion will be highlighted. For domain criterion such as ancestor_is, caller_is, you can pick an item and drop it into this property cell.
The following figure shows a new linear feature metric: The following figure shows a new linear feature metric:

View File

@@ -15,7 +15,7 @@ In Eiffel, we have several ways of thinking abstractly about features and catego
You remember the example class from [[Eiffel Classes|Eiffel Classes]] : You remember the example class from [[Eiffel Classes|Eiffel Classes]] :
<code> <code>
indexing note
description: Objects that model lists description: Objects that model lists
revision: $Revision: 1.5 $ revision: $Revision: 1.5 $