1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.qedeq.kernel.bo.logic.model;
17
18 import org.qedeq.base.utility.EqualsUtility;
19
20
21
22
23
24
25 public abstract class Operator {
26
27
28 private final String name;
29
30
31 private final int number;
32
33
34
35
36
37
38
39 public Operator(final String name, final int number) {
40 this.name = name;
41 this.number = number;
42 }
43
44
45
46
47
48
49 public String getName() {
50 return name;
51 }
52
53
54
55
56
57
58 public int getArgumentNumber() {
59 return number;
60 }
61
62 public int hashCode() {
63 return name.hashCode() ^ number ^ getClass().hashCode();
64 }
65
66 public boolean equals(final Object other) {
67 if (!(other instanceof Operator)) {
68 return false;
69 }
70 if (!other.getClass().equals(getClass())) {
71 return false;
72 }
73 final Operator var = (Operator) other;
74 return number == var.number && EqualsUtility.equals(name, var.name);
75 }
76
77 public String toString() {
78 final StringBuffer buffer = new StringBuffer();
79 buffer.append(name);
80 if (number > 0) {
81 buffer.append("(");
82 for (int i = 0; i < number; i++) {
83 if (i > 0) {
84 buffer.append(", ");
85 }
86 buffer.append("*");
87 }
88 buffer.append(")");
89 }
90 return buffer.toString();
91 }
92
93 }