<externalLibrary xmlns="library">
	<language>JAVA</language>
	<libraryFunctions>
		<libraryFunction>
			<function_type>SCALAR</function_type>
			<name>parseTweet</name>
			<arguments>TweetInputType</arguments>
			<return_type>TweetOutputType</return_type>
			<definition>edu.uci.ics.asterix.external.library.ParseTweetFactory
			</definition>
		</libraryFunction>
		<libraryFunction>
			<function_type>SCALAR</function_type>
			<name>mysum</name>
			<arguments>AINT32,AINT32</arguments>
			<return_type>AINT32</return_type>
			<definition>edu.uci.ics.asterix.external.library.SumFactory
			</definition>
		</libraryFunction>
		<libraryFunction>
			<function_type>SCALAR</function_type>
			<name>getCapital</name>
			<arguments>ASTRING</arguments>
			<return_type>CountryCapitalType</return_type>
			<definition>edu.uci.ics.asterix.external.library.CapitalFinderFactory
			</definition>
		</libraryFunction>
		<libraryFunction>
			<function_type>SCALAR</function_type>
			<name>toUpper</name>
			<arguments>TextType</arguments>
			<return_type>TextType</return_type>
			<definition>edu.uci.ics.asterix.external.library.UpperCaseFactory
			</definition>
		</libraryFunction>
		<libraryFunction>
			<function_type>SCALAR</function_type>
			<name>allTypes</name>
			<arguments>AllType</arguments>
			<return_type>AllType</return_type>
			<definition>edu.uci.ics.asterix.external.library.AllTypesFactory
			</definition>
		</libraryFunction>
		<libraryFunction>
			<function_type>SCALAR</function_type>
			<name>echoDelay</name>
			<arguments>TweetMessageType</arguments>
			<return_type>TweetMessageType</return_type>
			<definition>edu.uci.ics.asterix.external.library.EchoDelayFactory
			</definition>
		</libraryFunction>
	</libraryFunctions>
</externalLibrary>
