1 package org.simantics.xml.sax;
\r
3 import org.w3._2001.xmlschema.Any;
\r
4 import org.w3._2001.xmlschema.Element;
\r
5 import org.w3._2001.xmlschema.Group;
\r
7 class MultiplicityRestriction {
\r
11 public MultiplicityRestriction(Element element) {
\r
13 if (element.getMinOccurs() != null)
\r
14 min = element.getMinOccurs().longValue();
\r
15 String element_maxS = element.getMaxOccurs();
\r
18 if ("unbounded".equals(element_maxS)) {
\r
20 } else if (element_maxS != null) {
\r
21 max = Long.parseLong(element_maxS);
\r
22 max = Math.max(min, max);
\r
26 public MultiplicityRestriction(Group element) {
\r
28 if (element.getMinOccurs() != null)
\r
29 min = element.getMinOccurs().longValue();
\r
30 String element_maxS = element.getMaxOccurs();
\r
33 if ("unbounded".equals(element_maxS)) {
\r
35 } else if (element_maxS != null) {
\r
36 max = Long.parseLong(element_maxS);
\r
37 max = Math.max(min, max);
\r
41 public MultiplicityRestriction(Any element) {
\r
43 if (element.getMinOccurs() != null)
\r
44 min = element.getMinOccurs().longValue();
\r
45 String element_maxS = element.getMaxOccurs();
\r
48 if ("unbounded".equals(element_maxS)) {
\r
50 } else if (element_maxS != null) {
\r
51 max = Long.parseLong(element_maxS);
\r
52 max = Math.max(min, max);
\r
56 public long getMin() {
\r
60 public long getMax() {
\r
64 public boolean many() {
\r
68 public boolean single() {
\r
72 public boolean singleOptional() {
\r
73 return max == 1 && min == 0;
\r
76 public boolean singleRequired() {
\r
77 return max == 1 && min == 1;
\r
81 public boolean equals(Object obj) {
\r
84 if (!getClass().equals(obj.getClass()))
\r
86 MultiplicityRestriction other = (MultiplicityRestriction)obj;
\r
87 return (min == other.min && max == other.max);
\r
91 public int hashCode() {
\r
92 return Long.hashCode(min) + Long.hashCode(max);
\r