Inspect code
[idea/community.git] / python / ipnb / src / org / jetbrains / plugins / ipnb / format / cells / IpnbEditableCell.java
1 package org.jetbrains.plugins.ipnb.format.cells;
2
3 import com.intellij.openapi.util.text.StringUtil;
4 import org.jetbrains.annotations.NotNull;
5
6 import java.util.List;
7 import java.util.Map;
8
9 public abstract class IpnbEditableCell implements IpnbCell {
10   @NotNull private List<String> mySource;
11   @NotNull final Map<String, Object> myMetadata;
12
13   IpnbEditableCell(@NotNull final List<String> source, @NotNull Map<String, Object> metadata) {
14     mySource = source;
15     myMetadata = metadata;
16   }
17
18   @NotNull
19   public List<String> getSource() {
20     return mySource;
21   }
22
23   public void setSource(@NotNull final List<String> source) {
24     mySource = source;
25   }
26
27   @NotNull
28   public String getSourceAsString() {
29     return StringUtil.join(mySource, "");
30   }
31
32   @NotNull
33   public Map<String, Object> getMetadata() {
34     return myMetadata;
35   }
36
37   @Override
38   public boolean equals(Object o) {
39     if (this == o) return true;
40     if (o == null || getClass() != o.getClass()) return false;
41
42     IpnbEditableCell cell = (IpnbEditableCell)o;
43
44     if (!mySource.equals(cell.mySource)) return false;
45     if (!myMetadata.equals(cell.myMetadata)) return false;
46
47     return true;
48   }
49
50   @Override
51   public int hashCode() {
52     int result = mySource.hashCode();
53     result = 31 * result + myMetadata.hashCode();
54     return result;
55   }
56 }