package org.eclipse.jst.jsp.core.internal;

import org.eclipse.wst.validation.internal.operations.WorkbenchContext;

public class JSPELValidationHelper extends WorkbenchContext {

//	public JSPELValidationHelper() {
//		System.out.println("Construtor");
//	}
//	
//	public Object loadModel(String symbolicName) {
//		// TODO Auto-generated method stub
//		return null;
//	}
//
//	public Object loadModel(String symbolicName, Object[] parms) {
//		// TODO Auto-generated method stub
//		return null;
//	}
//
//	public String[] getURIs() {
//		// TODO Auto-generated method stub
//		return null;
//	}

}
