c6f61f08c699baa52b1c3930d25e025f7ad287a2
[idea/community.git] / images / src / org / intellij / images / options / Options.java
1 /*
2  * Copyright 2004-2005 Alexey Efimov
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package org.intellij.images.options;
17
18 import java.beans.PropertyChangeListener;
19
20 /**
21  * Options for plugin.
22  *
23  * @author <a href="mailto:aefimov.box@gmail.com">Alexey Efimov</a>
24  */
25 public interface Options extends Cloneable {
26     EditorOptions getEditorOptions();
27
28     ExternalEditorOptions getExternalEditorOptions();
29
30     /**
31      * Option injection from other options.
32      *
33      * @param options Other options
34      */
35     void inject(Options options);
36
37     void addPropertyChangeListener(PropertyChangeListener listener);
38
39     void addPropertyChangeListener(String propertyName, PropertyChangeListener listener);
40
41     void removePropertyChangeListener(PropertyChangeListener listener);
42
43     void removePropertyChangeListener(String propertyName, PropertyChangeListener listener);
44
45     /**
46      * Set option by string representation.
47      *
48      * @param name  Name of option
49      * @param value Value
50      * @return <code>true</code> if option is matched and setted.
51      */
52     boolean setOption(String name, Object value);
53 }