net.officefloor.eclipse.extension.access.HttpSecuritySourceExtensionContext Maven / Gradle / Ivy
Show all versions of net.officefloor.woof Show documentation
/*
* OfficeFloor - http://www.officefloor.net
* Copyright (C) 2005-2013 Daniel Sagenschneider
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
package net.officefloor.eclipse.extension.access;
import net.officefloor.compile.properties.Property;
import net.officefloor.compile.properties.PropertyList;
import net.officefloor.plugin.web.http.security.HttpSecuritySource;
import net.officefloor.plugin.web.http.security.HttpSecuritySourceSpecification;
import net.officefloor.plugin.web.http.security.type.HttpSecurityType;
import org.eclipse.core.resources.IProject;
/**
* Context for the {@link HttpSecuritySourceExtension}.
*
* @author Daniel Sagenschneider
*/
public interface HttpSecuritySourceExtensionContext {
/**
* Specifies the title.
*
* @param title
* Title.
*/
void setTitle(String title);
/**
*
* Obtains the {@link PropertyList}. All changes to {@link Property}
* instances for the {@link HttpSecuritySource} are to be done on this
* {@link PropertyList}.
*
* The {@link PropertyList} may be in any state:
*
* - no value {@link PropertyList} populated from the
* {@link HttpSecuritySourceSpecification} (creating a
* {@link HttpSecuritySource})
* - any changed state based on editing of the {@link HttpSecuritySource}
*
*
* @return {@link PropertyList}.
*/
PropertyList getPropertyList();
/**
*
* Notifies of a change to the {@link PropertyList}.
*
* This allows for to report issues in attempting to source the
* {@link HttpSecurityType} from the {@link HttpSecuritySource} with the
* {@link PropertyList}.
*/
void notifyPropertiesChanged();
/**
* Specifies an error message. Calling this after notifying of property
* changes allows for overriding the error message reported to the user.
*
* @param message
* Error message. null indicating no error.
*/
void setErrorMessage(String message);
/**
* Obtains the {@link IProject} that is adding the
* {@link HttpSecuritySource}.
*
* @return {@link IProject} that is adding the {@link HttpSecuritySource}.
*/
IProject getProject();
}