/*
This file is part of JFLICKS.
JFLICKS 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.
JFLICKS 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 JFLICKS. If not, see <http://www.gnu.org/licenses/>.
*/
package org.jflicks.configure;
/**
* This interface encapsulates the notion of a Configuration.
*
* @author Doug Barnum
* @version 1.0
*/
public interface Configuration extends Comparable<Configuration> {
/**
* The name of the configuration.
*
* @return The name.
*/
String getName();
/**
* The source of the configuration.
*
* @return The source.
*/
String getSource();
/**
* The summary of the current state of the configuration.
*
* @return The summary.
*/
String getSummary();
/**
* The set of NameValue instances that define this configuration.
*
* @return An array of NameValue instances.
*/
NameValue[] getNameValues();
/**
* Convenience method to locate a NameValue given the name.
*
* @param s A given name string.
* @return A NameValue instance if found.
*/
NameValue findNameValueByName(String s);
/**
* Convenience method to see if a given name String matches.
*
* @param s A given name string.
* @return True if the name matches.
*/
boolean isName(String s);
/**
* Convenience method to see if a given source String matches.
*
* @param s A given source string.
* @return True if the source matches.
*/
boolean isSource(String s);
}