/*******************************************************************************
 * Copyright (c) 2007 BEA Systems, Inc.
 * 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
 *******************************************************************************/
package targets.model.pb;

import java.util.List;
import targets.model.pa.IA;

public class AB implements IB, IA {
	private class E {
		
	}
	
	protected List<IA> _fieldListIA;
	
	public String methodIAString(int int1) { return (new E()).toString(); }
}
