| 
					
				 | 
			
			
				@@ -536,8 +536,8 @@ PackageHandler subclass: #LegacyPackageHandler 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	instanceVariableNames: '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	package: 'Importer-Exporter'! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 !LegacyPackageHandler commentStamp! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-I am responsible for handling package loading and committing. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+I am responsible for handling package loading and committing.
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 I should not be used directly. Instead, use the corresponding `Package` methods.! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 !LegacyPackageHandler methodsFor: 'committing'! 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -646,28 +646,31 @@ I am an engine for exporting structured data on a Stream. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 My instances are created using 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   PluggableExporter newUsing: recipe, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-where recipe is structured description of the exporting algorithm, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+where recipe is structured description of the exporting algorithm. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 Then actual exporting is done using 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   aPluggableExporter export: data usingRecipe: recipe on: stream 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 Recipe is an array, which can contain two kinds of elements: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- - an assocation where key is the receiver and value is two-arg selector 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ - an assocation where the key is the receiver and the value is a two-arguments selector 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     In this case, `receiver perform: selector withArguments: { data. stream }` is called. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	This essentially defines one step of export process. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	The key (eg. receiver) is presumed to be some kind of 'repository' of the exporting methods 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	that just format appropriate aspect of data into a stream; like a class or a singleton, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	so you can make the recipe itself decoupled from data. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- - a subarray (sa), where first element is special and the rest is recursive recipe 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    `sa first` must be an association similar to one above, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ - a subarray, where first element is special and the rest is recursive recipe. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    `subarray first` must be an association similar to one above, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	with key being the 'repository' receiver, but value is one-arg selector. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	In this case, `receiver perform: selector withArguments: { data }` should create a collection. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	Then, the sub-recipe (`sa allButFirst`) is applied to every element of a collection, eg. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Then, the sub-recipe (`subarray allButFirst`) is applied to every element of a collection, eg. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	  collection do: [ :each | self export: each using: sa allButFirst on: stream ] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-I am used to export amber packages, so I have convenience method 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-exportPackage: aPackage on: aStream 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-which exports aPackage using recipe you passed on newUsing: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+I am used to export amber packages, so I have a convenience method 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+`exportPackage: aPackage on: aStream` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+which exports `aPackage` using the `recipe` passed on `newUsing:` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (it is otherwise no special, so it may be renamed to export:on:)! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 !PluggableExporter methodsFor: 'accessing'! 
			 |