diff --git a/src/main/java/models/terms/Dependency.java b/src/main/java/models/terms/Dependency.java index 3f02383..d382318 100644 --- a/src/main/java/models/terms/Dependency.java +++ b/src/main/java/models/terms/Dependency.java @@ -1,8 +1,8 @@ package models.terms; import java.util.Arrays; -import java.util.HashSet; import java.util.Set; +import java.util.TreeSet; import java.util.stream.Collectors; import exceptions.SyntaxException; @@ -13,26 +13,26 @@ public class Dependency extends RDLTerm{ private RDLTerm dependingTerm; - private Set dependedTerms; + private TreeSet dependedTerms; public Dependency(RDLTerm dependingTerm, Set dependedTerms) { super(new Symbol(":", dependedTerms.size() + 1), dependedTerms.iterator().next().getOrder(), dependingTerm.getSize() + dependedTerms.stream().mapToInt(v -> v.size).sum()); this.dependingTerm = dependingTerm; - this.dependedTerms = dependedTerms; + this.dependedTerms = new TreeSet<>(dependedTerms); this.addChild(dependingTerm); - if (dependingTerm.getOrder() > getOrder() - 1) { - throw new SyntaxException("dependingTerm's order must be less than" + (getOrder() + 1) + ", but " + dependingTerm + "'s order is " + dependingTerm.getOrder()); + if (dependingTerm.getTermOrder() > getOrder()) { + throw new SyntaxException("dependingTerm's order must be less than " + (getOrder() + 1) + ", but " + dependingTerm + "'s order is " + dependingTerm.getOrder()); } for (EvaluatableTerm dependedTerm: dependedTerms) { this.addChild(dependedTerm); - if (dependedTerm.getOrder() != getOrder()) { + if (dependedTerm.getTermOrder() != getOrder()) { throw new SyntaxException(dependedTerm + " order is not " + getOrder()); } } } public Dependency(RDLTerm dependingTerm, EvaluatableTerm ...dependedTerms) { - this(dependingTerm, new HashSet<>(Arrays.asList(dependedTerms))); + this(dependingTerm, new TreeSet<>(Arrays.asList(dependedTerms))); } @Override @@ -49,7 +49,7 @@ StringBuilder sb = new StringBuilder(); sb.append(dependingTerm.toTermString()); sb.append(" : "); - sb.append(dependedTerms.toString()); + sb.append(dependedTerms.stream().map(RDLTerm::toString).collect(Collectors.joining(", "))); return sb.toString(); } @@ -84,7 +84,7 @@ @Override public Object clone() { - return new Dependency((RDLTerm) dependingTerm.clone(), new HashSet<>(dependedTerms)); + return new Dependency((RDLTerm) dependingTerm.clone(), new TreeSet<>(dependedTerms)); } }