wrapper.jl

DataAugmentation/wrapper.jl is a source file in module DataAugmentation

			
			
			
			
			
			"""
			

			    abstract type ItemWrapper{Item}

			

			"""
			

			
			abstract
			 
			type
			
			 
			

	
			ItemWrapper
			{

	
			Item
			}
			 
			<:
			 

	
			AbstractItem
			 
			end
			

			

			

			
			

	
			itemdata
			(
			
			wrapper
			::

	
			ItemWrapper
			)
			 
			=
			 
			

	
			itemdata
			(
			

	
			getwrapped
			(
			wrapper
			)
			)
			

			
			

	
			itemfield
			(
			
			wrapped
			::

	
			ItemWrapper
			)
			 
			=
			 
			
			:
			item
			

			

			
			

	
			getwrapped
			(
			
			wrapped
			::

	
			ItemWrapper
			)
			 
			=
			 
			
			getfield
			(
			wrapped
			,
			 
			

	
			itemfield
			(
			wrapped
			)
			)
			

			

			
			function
			 
			

	
			setwrapped
			(
			
			wrapped
			::

	
			ItemWrapper
			,
			 
			item
			)
			
			
    
			
			wrapped
			 
			=
			 
			
			
			Setfield
			.
			
			@
			set
			
			 
			
			wrapped
			.
			
			item
			 
			=
			 
			item
			
    
			
			return
			 
			wrapped
			

			end
			

			

			

			
			function
			 
			

	
			apply
			(
			
			tfm
			::

	
			Transform
			,
			 
			
			itemw
			::

	
			ItemWrapper
			
			;
			 
			
			randstate
			 
			=
			 
			

	
			getrandstate
			(
			tfm
			)
			)
			
			
    
			
			item
			 
			=
			 
			

	
			apply
			(
			tfm
			,
			 
			

	
			getwrapped
			(
			itemw
			)
			
			;
			 
			
			randstate
			 
			=
			 
			randstate
			)
			
    
			
			itemw
			 
			=
			 
			

	
			setwrapped
			(
			itemw
			,
			 
			item
			)
			
    
			
			return
			 
			itemw
			

			end