Skip to content

Commit 420ae53

Browse files
committed
Improved particles definitions
1 parent 4896642 commit 420ae53

5 files changed

Lines changed: 55 additions & 4 deletions

File tree

src/com/maxprograms/xml/ContentParticle.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ public interface ContentParticle {
1919
public static final int CHOICE = 3;
2020

2121
public int getType();
22+
public void addParticle(ContentParticle particle);
2223
public void setCardinality(int cardinality);
2324
public int getCardinality();
2425
@Override

src/com/maxprograms/xml/DTDChoice.java

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,27 @@ public void setCardinality(int cardinality) {
4545

4646
@Override
4747
public String toString() {
48-
// TODO Auto-generated method stub
49-
return super.toString();
48+
StringBuilder sb = new StringBuilder("(");
49+
for (int i = 0; i < content.size(); i++) {
50+
ContentParticle particle = content.get(i);
51+
sb.append(particle.toString());
52+
if (i < content.size() - 1) {
53+
sb.append('|');
54+
}
55+
}
56+
sb.append(')');
57+
switch (cardinality) {
58+
case ContentModel.NONE:
59+
return sb.toString();
60+
case ContentModel.OPTIONAL:
61+
return sb + "?";
62+
case ContentModel.ONEMANY:
63+
return sb + "+";
64+
case ContentModel.ZEROMANY:
65+
return sb + "*";
66+
default:
67+
// ignore
68+
}
69+
return sb.toString();
5070
}
5171
}

src/com/maxprograms/xml/DTDName.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,11 @@ public int getCardinality() {
3131
return cardinality;
3232
}
3333

34+
@Override
35+
public void addParticle(ContentParticle particle) {
36+
// do nothing
37+
}
38+
3439
@Override
3540
public String toString() {
3641
switch (cardinality) {

src/com/maxprograms/xml/DTDPCData.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,11 @@ public void setCardinality(int cardinality) {
2323
// do nothing
2424
}
2525

26+
@Override
27+
public void addParticle(ContentParticle particle) {
28+
// do nothing
29+
}
30+
2631
@Override
2732
public int getCardinality() {
2833
return ContentModel.NONE;

src/com/maxprograms/xml/DTDSecuence.java

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,27 @@ public int getCardinality() {
4545

4646
@Override
4747
public String toString() {
48-
// TODO Auto-generated method stub
49-
return super.toString();
48+
StringBuilder sb = new StringBuilder("(");
49+
for (int i = 0; i < content.size(); i++) {
50+
ContentParticle particle = content.get(i);
51+
sb.append(particle.toString());
52+
if (i < content.size() - 1) {
53+
sb.append(',');
54+
}
55+
}
56+
sb.append(')');
57+
switch (cardinality) {
58+
case ContentModel.NONE:
59+
return sb.toString();
60+
case ContentModel.OPTIONAL:
61+
return sb + "?";
62+
case ContentModel.ONEMANY:
63+
return sb + "+";
64+
case ContentModel.ZEROMANY:
65+
return sb + "*";
66+
default:
67+
// ignore
68+
}
69+
return sb.toString();
5070
}
5171
}

0 commit comments

Comments
 (0)