package org.as2j;

import java.io.StringReader;
import java.util.List;

import uk.co.badgersinfoil.metaas.ActionScriptFactory;
import uk.co.badgersinfoil.metaas.ActionScriptParser;
import uk.co.badgersinfoil.metaas.dom.ASClassType;
import uk.co.badgersinfoil.metaas.dom.ASCompilationUnit;
import uk.co.badgersinfoil.metaas.dom.ASMetaTag;
import uk.co.badgersinfoil.metaas.dom.ASMethod;

public class MetaTagTest {
	
	private static final String AS_CLASS = 
	"package org.test							\n" +
	"{											\n" + 
	"	public class MetaTagTest				\n" +
	"	{										\n" +
	"		[MyMetaTag(param=\"value\")]		\n" +
	"		public function myFunction():void	\n" +
	"		{									\n" +
	"		}									\n" +
	"	}										\n" +
	"}";

	public static void main(String[] args) {
		ActionScriptParser parser = new ActionScriptFactory().newParser();
		
		ASCompilationUnit asCompilationUnit = parser.parse(
				new StringReader(AS_CLASS));
		
		ASClassType asClass = (ASClassType) asCompilationUnit.getType();
		ASMethod asMethod = (ASMethod) asClass.getMethods().iterator().next();
		ASMetaTag asMetaTag = (ASMetaTag) asMethod.getAllMetaTags().iterator().next();
		
		System.out.println("asMetaTag.name  = " + asMetaTag.getName());
		System.out.println("asMetaTag.param = " + asMetaTag.getParamValue("param"));
		
		asMetaTag.getParams(); // Here an exception will be thrown
	}
	
}