Notation meta-model primary package.
		
			Package Specification
		This package exposes the notation meta-model API which is used to create 
			notation models. These models usually play the model part of a 
			Model-View-Controller (MVC) architecture for diagrams. Notation 
			models reference other business models (eg. UML models) and store 
			information needed for the visualization of these business models in 
			diagrams. One advantage of maintaining two separate models it to 
			allow the business model to be visualized differently with each notation model.
		Description of the Notation Meta-Model Classes
		1.        
			View Classes
		The views are the central abstraction in a notation model. 
			View objects reference a business model and contain other notation objects 
			that together hold all the properties needed to visualize that business model. 
			The reason the view object does not have all the properties itself but 
			rather delegates to other abstractions is to allow for easy extension of 
			properties.
		1.1     
			View
			
		The abstract view class is the super class of all view 
			elements. It extends off EModelElement, which is in the EMF core package. It 
			inherits from EmodelElement the ability to be extensible through annotations. 
			The view class has the following properties: 
			 
		
			- 
			A 'visible' property, which determines whether the view is visible or not.
			
- 
			A 'type' property, which is a user-defined type for the view
			
- 
			An 'element' property, which references an EObject representing a business 
			model element.
			
- 
			A 'children' collection property, which is used to compose one or more node 
			views if the view is a container.
			
- 
			A 'styles' collection property, which is used to install one or more styles 
			containing various notational properties on the view. The advantages of 
			aggregating styles versus defining their properties directly on the views 
			include the ability for more than one extension to contribute properties at the 
			same time, to simply morphing of views which usually require style changes 
			and to avoid redundancy by installing only those styles that are relevant 
			to the view's context.
			
- 
				A 'sourceEdges' collection property, which is a list of zero or 
				more outgoing edges from the view.
				
  - A 
  'targetEdges' collection property, which is a list of zero or 
  more incoming edges to the view.
1.2     
			Node
		A node is a view that can composed and laid out in a container 
			view. The node class has the following property:
		
			- 
				A 'layoutConstraint' property, which defines an optional constraint suitable 
				for the container's layout manager. The reason for the aggregate pattern 
				is to give the flexibility to change the layout constraint if the view is moved 
				to another parent with a different layout manager.
				 
1.3     
			Edge
		An edge is a view that represents a connection between two 
			other views. The edge class has the following properties:
		
			- 
			A 'source' property, which is a reference to the source view of the edge.
			
- 
			A 'target' property, which is a reference to the target view of the edge.
			
- 
			A 'sourceAnchor' property, which is an object representing an anchor at the 
			source view. The source anchor must make sense in the context of the source 
			view.
			
- 
			A 'targetAnchor' property, which is an object representing an anchor at 
			the target view. The target anchor must make sense in the context of 
			the target view.
			
- 
				A 'bendpoints' property, which is an optional object representing a list 
				of bendpoints constraining the edge routing.
1.4     
			Diagram
		A diagram is a view that represents the top level 
			containment of views. The diagram class has the following properties:
		
			- 
				A 'name' property, which is the name of the diagram.
			
2.        
				
			Style classes
		A style is an object containing properties 
			that affect the visualization of a view. An instance of a style class is 
			created and stored in the 'styles' collection of a view instance.
		2.1     
			Style
		The style interface captures the concept of a style.
		2.2     
			FillStyle
		The fill style is a style to specify the fill properties of a 
			node. The class has the following property:
		
			- 
				A 'fillColor' property, which specifies the fill color or the background color 
				of figures.
2.3     
			LineStyle
		The line style is a style to be installed on views with lines. 
			The class has the following property:
		
			- 
				A 'lineColor' property, which specifies the line color (the foreground) color 
				of figures.
2.4     
			FontStyle
		The font style is a style to be installed on views with 
			text. The class has the following properties:
		
			- 
			A 'fontColor' property, which specifies the font color.
			
- 
			A 'fontName property, which specifies the name of the desired font.
			
- 
			A 'fontHeight' property, which specifies the height of the desired font.
			
- 
			A 'bold' property, which specifies whether the font style is bold.
			
- 
			An 'italic' property, which specifies whether the font style is italic.
			
- 
			An 'underline' property, which specifies whether the font style is underline.
			
- 
				A 'strikeThrough' property, which specifies whether the font style is 
				strike-through.
					2.5     
						RoutingStyle
		The routing style is a style to be installed on edges to guide 
			their routing. The class has the following properties:
		
			- 
				A 'routing' property, which specifies the desired routing algorithm. The 
				different algorithms are defined by the 'Routing' enumeration as follows:
				
			
- 
				A 'smoothness' property, which specifies the smoothness kind of the edge's 
				route. The kinds are defined by the 'Smoothness' enumeration as follows:
				
					- 
					NONE:
					
- 
						
							NORMAL
						:
					
- 
					LESS:
					
- 
						MORE:
 
- 
			An 'avoidObstructions' property, which specifies whether the edge's router 
			should try to avoid obstructions.
			
- 
			A 'closestDistance' property, which specifies whether the edge's router should 
			try to route based on the closest distance.
			
- 
				A 'jumpLinskStatus' property, which specifies what the edge's router does when 
				it crosses another edge during routing. The values of the property are defined 
				in the 'JumpLinkStatus' enumeration as follows:
				
			
- 
				A 'jumpLinksType' property, which specifies the type of the jump a router takes 
				when it crosses another edge during routing. The values of the property are 
				defined in the 'JumpLinkStatus' enumeration as follows:
				
			
- 
				SEMICIRCLE
				
			
- 
				A 'jumpLinksReverse' property, which specifies whether the router should 
				reverse the jump links a router takes when it crosses another edge during 
				router.
					2.6     
						DescriptionStyle
		The description style is a style to be installed on views to 
			give them description texts. The class has the following property:
		
		2.7     
			DrawerStyle
		
		The drawer style is a style to be installed on nodes that can 
			be collapsed like a drawer. The class has the following property:
		
		2.8    
			TitleStyle
		
		The title style is a style to be installed on views that 
			have a title. The class has the following property:
		
		
					2.9    
						SortingStyle
		The sorting style is a style to be installed on nodes representing lists to 
			be sorted. The class has the following property:
		
			- 
				A 
					'sorting' property, which specifies the type of sorting applied. The 
					values of the property is defined in the 'Sorting' enumeration as follows: 
- 
				A 
					'sortedObjects' collection property, which is used in the Manual case 
					to reference the sorted objects in sequence. 
- 
				
					
						A 
							'sortingKeys' property, which is a java map used in 
							the Automatic case to map a sequence of sorting keys to sorting 
							directions. While sorting keys are strings, sorting directions are defined by 
							the 'SortingDirection' enumeration as follows: 
 
					2.10  
						FilteringStyle
		The filtering style is a style to be installed on nodes representing lists 
			to be filtered. The class has the following property:
		
			- 
				A 
					'filteing' property, which specifies the type of filtering applied. The 
					values of the property is defined in the 'Filtering' enumeration as follows: 
- 
				A 
					'filteredObjects' collection property, which is used in the Manual case 
					to reference the filtered objects. 
- 
						A 
  'filteringKeys' property, which is a java list used in 
  the Automatic case to list the filtering keys as 
  strings. 
2.11    
			CanonicalStyle
		
		The canonical style is a style to be installed on 
			views that need to be
			synchronized 
			with business model. The class has the following property:
		
		
				2.12    
					PageStyle
				
				The page style is a style to be installed on multi-page 
					diagrams. The class has the following property:
				
			
		
2.13    
					GuideStyle
The guide style is a style to be installed on diagrams that support 
					guides. A 'Guide' is an object with the following properties:
					- 
						A 'position' property, which specifies the position a long 
							the diagram axis. 
- 
						A 'nodeMap' property, which is a map of nodes to their 
							alignment in respect to the guide. Alignment values are: 
							- 
								Left 
- 
								Right 
- 
								Center 
- 
								Top 
- 
								Bottom 
 
 The guide style class has the following property:
					- 
						A 
							'horizontalGuides' collection property, which is a collection of horizontal 
							guides on the diagram 
- 
						A
		 'verticalGuides' collection property, which is a collection of 
		vertical guides on the diagram 
3.        
			LayoutConstraint Classes
		
			Layout constraints are used by layout managers to properly set the 
			location/size/bounds of a node's visuals. Since the layout constraint can be 
			different based on the type of layout manager using it, the composition 
			pattern is used to allow for changing the layout constraint type 
			easily.
		3.1     
			LayoutConstraint
		
			The layout constraint interface captures the concept of a layout 
			constraint.
		3.2     
			Location
		The location constraint specifies the position of a node. The 
			class has the following properties:
		
			- 
			A 'x' property, which is a location (or distance) along the x-axis in 
			measurement units.
			
- 
				A 'y' property, which is a location (or distance) along the y-axis in 
				measurement units.
			
3.3     
			Size
		The size constraint specifies the extent of a node. The class 
			has the following properties:
		
			- 
			A 'width' property, which is a distance along the x-axis in measurement units. 
			A value of -1 means there is no specific width and it is up to the layout 
			manager to assign width.
			
- 
				A 'height' property, which is a distance along the y-axis in measurement units. 
				A value of -1 means there is no specific height and it is up to the layout 
				manager to assign height.
3.4     
			Bounds
		The bounds constraint specifies the bounds of a node. The 
			class inherits its properties from the super classes 'Location' and 'Size'.
		3.5     
			Ratio
		The ratio constraint specifies the size ratio of a node in its 
			container. This constraint is suitable for layout algorithms where each child 
			gets a ratio of the container. The class has the following properties:
		
			- 
				A 'value' property, which is a double property representing the ratio. A value 
				of -1 means there is no required ratio and it is up to the layout manager to 
				assign ratio.
4.        
			Bendpoints
		
			'Bendpoints' is a routing constraint installed on edges to suggest that their 
			routing pass through a specific collection of points.
		3.3     
			RelativeBendpoints
		A type of bendpoints representing a collection of points 
			with relative distances along the x- and y-axis to the source and target 
			views of an edge. The class has the following properties:
		
			- 
				A 'points' property, which is a java list of relative bendpoints. 
				RelativeBendpoint has the following properties:
				
					- 
					A 'sourceX' property, which is the point's x-axis distance from the point of 
					attach with the source view.
					
- 
					A 'sourceY' property, which is the point's y-axis distance from the point of 
					attach with the source view.
					
- 
					A 'targetX' property, which is the point's x-axis distance from the point of 
					attach with the target view.
					
- 
						A 'targetY' property, which is the point's y-axis distance from the point of 
						attach with the target view.
 
1.1.6        
			Anchor
		An anchor is a routing constraint installed on edges to 
			identify where the source/target views should anchor that edge. This abstract 
			class only captures the concept of an anchor without restricting it by 
			properties.
		1.1.6.1     
			IdentityAnchor
		The identity anchor is an anchor constraint which has a unique 
			string id. The class has the following property:
		
			- 
				An 'id property, which is a unique string identifying the anchor at the 
				source/target view. The default value is "anchor" (since most views have one 
				anchor)
@canBeSeenBy %partners