package p;

public class SomeClass {

	SomeClass someClass;
	
	/**
	 * @return Returns the someClass.
	 */
	public SomeClass getSomeClass() {
		return someClass;
	}

	/**
	 * @param a The a to set.
	 */
	public void setSomeClass(SomeClass a) {
		this.someClass = a;
	}
	
}
