/******************************************************************************* * Copyright (c) 2009 Red Hat, Inc. * Distributed under license by Red Hat, Inc. All rights reserved. * This program is 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: * Red Hat, Inc. - initial API and implementation ******************************************************************************/ package org.jboss.tools.common.el.core.resolver; import java.util.Collection; import java.util.List; import org.eclipse.core.resources.IFile; import org.eclipse.jface.text.IRegion; import org.jboss.tools.common.el.core.ELReference; /** * @author Alexey Kazakov */ public interface ELContext { /** * Returns Resource of the page * @return */ IFile getResource(); /** * Returns "var" attributes which are available in particular offset or the all "var"s if offset == -1 * * @param offset * @return */ Var[] getVars(int offset); /** * Returns "var" attributes which are available in particular offset or the all "var"s if offset == -1 * * @param offset * @return */ List<Var> getVarsAsList(int offset); /** * Returns all EL references of the file of this context. * * @return */ ELReference[] getELReferences(); /** * Returns the EL reference by the offset. * * @return */ ELReference getELReference(int offset); /** * Returns EL Resolvers which are declared for this resource * @return */ ELResolver[] getElResolvers(); /** * Sets the var list * @param vars */ void setVars(List<Var> vars); /** * Sets the resolvers * @param resolvers */ void setElResolvers(ELResolver[] resolvers); /** * Sets the source file * @param file */ void setResource(IFile file); /** * Returns all the EL references for the region. * * @return */ Collection<ELReference> getELReferences(IRegion region); /** * Returns true if the file was modified in some editor and has not been saved yet. * @return */ boolean isDirty(); /** * Set to true if the file was modified * @param dirty */ void setDirty(boolean dirty); }