package classes;
/*******************************************************************************
 * Copyright (c) 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:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/

/**
 * 
 * @since
 */
public class Test7 {

	public String m1(String s) {
		return null;
	}
	
	protected String m2(String s) {
		return null;
	}
	
	private String m3(String s) {
		return null;
	}
	
	public Integer[] m4(Double[] d) {
		return null;
	}
	
	protected Integer[] m5(Double[] d) {
		return null;
	}
	
	private Integer[] m6(Double[] d) {
		return null;
	}
	
	protected static String m7(String s) {
		return null;
	}
	
	public static String m8(String s) {
		return null;
	}
	
	private static String m9(String s) {
		return null;
	}
	
	protected static Integer[] m10(Double[] d) {
		return null;
	}
	
	public static Integer[] m11(Double[] d) {
		return null;
	}
	
	private static Integer[] m12(Double[] d) {
		return null;
	}
}
