/*
* Geotoolkit - An Open Source Java GIS Toolkit
* http://www.geotoolkit.org
*
* (C) 2008 - 2009, Geomatys
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*/
package org.geotoolkit.style;
import java.beans.PropertyChangeListener;
import java.util.List;
import org.opengis.filter.Id;
import org.opengis.metadata.citation.OnlineResource;
import org.opengis.style.Description;
import org.opengis.style.FeatureTypeStyle;
/**
* Mutable interface of geoAPI FeatureTypeStyle.
*
* @author Johann Sorel (Geomatys)
* @module
*/
public interface MutableFeatureTypeStyle extends FeatureTypeStyle{
public static final String NAME_PROPERTY = "name";
public static final String DESCRIPTION_PROPERTY = "description";
public static final String IDS_PROPERTY = "ids";
public static final String ONLINE_PROPERTY = "online";
/**
* Set the name of the feature type style.
* This method is thread safe.
*/
void setName(String name);
/**
* Set the Description of the feature type style.
* @param desc : Description can't be null
*/
void setDescription(Description desc);
/**
* Set the feature ids.
*/
void setFeatureInstanceIDs(Id id);
/**
* {@inheritDoc }
* @return List<Rule> : This is the "living" List.
*/
@Override
List<MutableRule> rules();
/**
* Set the online resource of this fts.
* The onlineResource must be an xml file containing this fts.
*/
void setOnlineResource(OnlineResource online);
//--------------------------------------------------------------------------
// listeners management ----------------------------------------------------
//--------------------------------------------------------------------------
void addListener(FeatureTypeStyleListener listener);
void addListener(PropertyChangeListener listener);
void removeListener(PropertyChangeListener listener);
void addPropertyChangeListener(PropertyChangeListener listener);
void removePropertyChangeListener(PropertyChangeListener listener);
}