summaryrefslogtreecommitdiff
path: root/platform/structuralsearch/source/com/intellij/structuralsearch/NamedScriptableDefinition.java
diff options
context:
space:
mode:
Diffstat (limited to 'platform/structuralsearch/source/com/intellij/structuralsearch/NamedScriptableDefinition.java')
-rw-r--r--platform/structuralsearch/source/com/intellij/structuralsearch/NamedScriptableDefinition.java81
1 files changed, 81 insertions, 0 deletions
diff --git a/platform/structuralsearch/source/com/intellij/structuralsearch/NamedScriptableDefinition.java b/platform/structuralsearch/source/com/intellij/structuralsearch/NamedScriptableDefinition.java
new file mode 100644
index 000000000000..8c954ab5a0ef
--- /dev/null
+++ b/platform/structuralsearch/source/com/intellij/structuralsearch/NamedScriptableDefinition.java
@@ -0,0 +1,81 @@
+package com.intellij.structuralsearch;
+
+import com.intellij.openapi.util.JDOMExternalizable;
+import org.jdom.Element;
+import org.jdom.Attribute;
+import org.jetbrains.annotations.NonNls;
+
+/**
+ * @author Maxim.Mossienko
+ * Date: 11.06.2009
+ * Time: 12:55:39
+ */
+public class NamedScriptableDefinition implements JDOMExternalizable, Cloneable {
+ @NonNls private static final String NAME = "name";
+ @NonNls private static final String SCRIPT = "script";
+ private String name;
+ private String scriptCodeConstraint = "";
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getScriptCodeConstraint() {
+ return scriptCodeConstraint;
+ }
+
+ public void setScriptCodeConstraint(String scriptCodeConstraint) {
+ this.scriptCodeConstraint = scriptCodeConstraint;
+ }
+
+ public Object clone() {
+ try {
+ return super.clone();
+ } catch(CloneNotSupportedException ex) {
+ return null;
+ }
+ }
+
+ public void readExternal(Element element) {
+ Attribute attribute = element.getAttribute(NAME);
+ if (attribute != null) {
+ name = attribute.getValue();
+ }
+
+ String s = element.getAttributeValue(SCRIPT);
+ if (s != null) {
+ setScriptCodeConstraint(s);
+ }
+ }
+
+ public void writeExternal(Element element) {
+ element.setAttribute(NAME,name);
+ if (scriptCodeConstraint.length() > 0) element.setAttribute(SCRIPT,scriptCodeConstraint);
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (!(o instanceof NamedScriptableDefinition)) return false;
+
+ NamedScriptableDefinition that = (NamedScriptableDefinition)o;
+
+ if (name != null ? !name.equals(that.name) : that.name != null) return false;
+ if (scriptCodeConstraint != null ? !scriptCodeConstraint.equals(that.scriptCodeConstraint) : that.scriptCodeConstraint != null) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ int result = name != null ? name.hashCode() : 0;
+ result = 31 * result + (scriptCodeConstraint != null ? scriptCodeConstraint.hashCode() : 0);
+ return result;
+ }
+}