Cleanup (formatting)
[idea/community.git] / java / debugger / impl / src / com / intellij / debugger / ui / tree / render / BasicRendererProperties.java
1 /*
2  * Copyright 2000-2015 JetBrains s.r.o.
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 com.intellij.debugger.ui.tree.render;
17
18 import com.intellij.openapi.diagnostic.Logger;
19 import com.intellij.openapi.util.InvalidDataException;
20 import com.intellij.openapi.util.JDOMExternalizable;
21 import com.intellij.openapi.util.WriteExternalException;
22 import org.jdom.Element;
23 import org.jetbrains.annotations.NonNls;
24
25 /**
26  * @author Eugene Zhuravlev
27  *         Date: Feb 12, 2005
28  */
29 public final class BasicRendererProperties implements Cloneable, JDOMExternalizable{
30   // todo: add class filters here
31   private static final Logger LOG = Logger.getInstance("#com.intellij.debugger.ui.tree.render.BasicRendererProperties");
32
33   private static final @NonNls String NAME_OPTION = "NAME";
34   private String myName;
35
36   private static final @NonNls String ENABLED_OPTION = "ENABLED";
37   private Boolean myEnabled;
38
39   private static final @NonNls String CLASSNAME_OPTION = "QUALIFIED_NAME";
40   private String myClassName;
41
42   private static final @NonNls String SHOWTYPE_OPTION = "SHOW_TYPE";
43   private boolean myShowType = true;
44
45   public String getName() {
46     return myName;
47   }
48
49   public void setName(final String name) {
50     myName = name;
51   }
52
53   public boolean isEnabled() {
54     return myEnabled != null && myEnabled.booleanValue();
55   }
56
57   public void setEnabled(final boolean enabled) {
58     myEnabled = enabled;
59   }
60
61   public String getClassName() {
62     return myClassName;
63   }
64
65   public void setClassName(final String className) {
66     myClassName = className;
67   }
68
69   public boolean isShowType() {
70     return myShowType;
71   }
72
73   public void setShowType(boolean showType) {
74     myShowType = showType;
75   }
76
77   @SuppressWarnings({"HardCodedStringLiteral"}) public void readExternal(Element element) throws InvalidDataException {
78     myName = null;
79     myEnabled = null;
80     myClassName = null;
81     for (Element option : element.getChildren("option")) {
82       final String optionName = option.getAttributeValue("name");
83       if (NAME_OPTION.equals(optionName)) {
84         myName = option.getAttributeValue("value");
85       }
86       else if (ENABLED_OPTION.equals(optionName)) {
87         myEnabled = Boolean.parseBoolean(option.getAttributeValue("value"));
88       }
89       else if (CLASSNAME_OPTION.equals(optionName)) {
90         myClassName = option.getAttributeValue("value");
91       }
92       else if (SHOWTYPE_OPTION.equals(optionName)) {
93         // default is true
94         myShowType = !"false".equalsIgnoreCase(option.getAttributeValue("value"));
95       }
96     }
97   }
98
99   @SuppressWarnings({"HardCodedStringLiteral"}) public void writeExternal(Element element) throws WriteExternalException {
100     if (myName != null) {
101       addOption(element, NAME_OPTION, myName);
102     }
103     if (myEnabled != null) {
104       addOption(element, ENABLED_OPTION, myEnabled.toString());
105     }
106     if (myClassName != null) {
107       addOption(element, CLASSNAME_OPTION, myClassName);
108     }
109     if (!myShowType) {
110       // default is true
111       addOption(element, SHOWTYPE_OPTION, "false");
112     }
113   }
114
115   @SuppressWarnings({"HardCodedStringLiteral"})
116   private void addOption(final Element element, final String optionName, final String optionValue) {
117     final Element option = new Element("option");
118     element.addContent(option);
119     option.setAttribute("name", optionName);
120     option.setAttribute("value", optionValue);
121   }
122
123   public BasicRendererProperties clone()  {
124     try {
125       return (BasicRendererProperties)super.clone();
126     }
127     catch (CloneNotSupportedException e) {
128       LOG.error(e);
129     }
130     return null;
131   }
132 }