/*******************************************************************************
 * Copyright (c) 2006, 2007 IBM Corporation and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 * 
 * Contributors:
 *    wharley@bea.com - initial API and implementation
 *******************************************************************************/
/*
 * Target for annotation processing test.  Processing this
 * should result in generation of a class gen.HgcGen with
 * method public String foo().
 * @see org.eclipse.jdt.compiler.apt.tests.processors.genclass.GenClassProc.
 */
package targets.dispatch;

import org.eclipse.jdt.compiler.apt.tests.annotations.GenClass;

// This class will be generated by the annotation processor
import gen.HgcGen;

@GenClass(clazz="gen.HgcGen", method="foo")
public class HasGenClass {
	String get() {
		return (new HgcGen()).foo();
	}
}			