// Copyright 2012 Georg-August-Universität Göttingen, Germany // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. package de.ugoe.cs.autoquest.usability.rules.patterns; import de.ugoe.cs.autoquest.usability.rules.patterns.visitors.ContainsEventVisitor; import de.ugoe.cs.autoquest.usability.rules.patterns.visitors.ContainsPatternVisitor; import de.ugoe.cs.autoquest.usability.rules.patterns.visitors.EndsWithEventVisitor; import de.ugoe.cs.autoquest.usability.rules.patterns.visitors.EndsWithPatternVisitor; import de.ugoe.cs.autoquest.usability.rules.patterns.visitors.StartsWithEventVisitor; import de.ugoe.cs.autoquest.usability.rules.patterns.visitors.StartsWithPatternVisitor; import de.ugoe.cs.autoquest.usability.tasktree.filters.EventTypeFilter; import de.ugoe.cs.autoquest.usability.tasktree.filters.TaskTreeNodeTypeFilter; /** *

* TODO comment *

* * @author Alexander Deicke */ public class UsagePatternBuilder { protected TaskTreeNodeTypeFilter concernedNode; protected EventTypeFilter startsWithEvent; protected UsagePattern startsWithPattern; protected EventTypeFilter endsWithEvent; protected UsagePattern endsWithPattern; protected EventTypeFilter containsEvent; protected UsagePattern containsPattern; /** *

* TODO: comment *

* * @param sequence * @return */ public SpecifyPatternStep concernedNode(TaskTreeNodeTypeFilter concernedNode) { this.concernedNode = concernedNode; return new SpecifyPatternStep(); } public class SpecifyPatternStep { /** *

* TODO: comment *

* * @param textInput * @return */ public BuildStartsWithEventStep startsWith(EventTypeFilter startsWithType) { UsagePatternBuilder.this.startsWithEvent = startsWithType; return new BuildStartsWithEventStep(); } /** *

* TODO: comment *

* * @param startsWithPattern * @return */ public BuildStartsWithPatternStep startsWith(UsagePattern startsWithPattern) { UsagePatternBuilder.this.startsWithPattern = startsWithPattern; return new BuildStartsWithPatternStep(); } /** *

* TODO: comment *

* * @param textInput * @return */ public BuildEndsWithEventStep endsWith(EventTypeFilter endsWithType) { UsagePatternBuilder.this.endsWithEvent = endsWithType; return new BuildEndsWithEventStep(); } /** *

* TODO: comment *

* * @param endsWithPattern * @return */ public BuildEndsWithPatternStep endsWith(UsagePattern endsWithPattern) { UsagePatternBuilder.this.endsWithPattern = endsWithPattern; return new BuildEndsWithPatternStep(); } /** *

* TODO: comment *

* * @param textInput * @return */ public BuildContainsEventStep contains(EventTypeFilter containsType) { UsagePatternBuilder.this.containsEvent = containsType; return new BuildContainsEventStep(); } /** *

* TODO: comment *

* * @param containsPattern * @return */ public BuildContainsPatternStep contains(UsagePattern containsPattern) { UsagePatternBuilder.this.containsPattern = containsPattern; return new BuildContainsPatternStep(); } } public class BuildStartsWithEventStep { /** *

* TODO: comment *

* * @param endsWithType * @return */ public BuildStartsAndEndsWithEventStep endsWith(EventTypeFilter endsWithType) { UsagePatternBuilder.this.endsWithEvent = endsWithType; return new BuildStartsAndEndsWithEventStep(); } /** *

* TODO: comment *

* * @param endsWithPattern * @return */ public BuildStartsWithEventAndEndsWithPattern endsWith(UsagePattern endsWithPattern) { UsagePatternBuilder.this.endsWithPattern = endsWithPattern; return new BuildStartsWithEventAndEndsWithPattern(); } /** *

* TODO: comment *

* * @param textInput * @return */ public BuildStartsWithEventAndContainsEventStep contains(EventTypeFilter containsType) { UsagePatternBuilder.this.containsEvent = containsType; return new BuildStartsWithEventAndContainsEventStep(); } /** *

* TODO: comment *

* * @param containedPattern * @return */ public BuildStartsWithEventAndContainsPatternStep contains(UsagePattern containsPattern) { UsagePatternBuilder.this.containsPattern = containsPattern; return new BuildStartsWithEventAndContainsPatternStep(); } /** *

* TODO: comment *

* * @return */ public UsagePattern build() { return new UsagePattern(concernedNode, new StartsWithEventVisitor(startsWithEvent)); } } public class BuildStartsWithPatternStep { /** *

* TODO: comment *

* * @param containsEvent * @return */ public BuildStartsWithPatternAndContainsEventStep contains(EventTypeFilter containsEvent) { UsagePatternBuilder.this.containsEvent = containsEvent; return new BuildStartsWithPatternAndContainsEventStep(); } /** *

* TODO: comment *

* * @param containedPattern * @return */ public BuildStartsWithPatternAndContainsPatternStep contains(UsagePattern containsPattern) { UsagePatternBuilder.this.containsPattern = containsPattern; return new BuildStartsWithPatternAndContainsPatternStep(); } /** *

* TODO: comment *

* * @param textInput * @return */ public BuildStartsWithPatternAndEndsWithEventStep endsWith(EventTypeFilter endsWithEvent) { UsagePatternBuilder.this.endsWithEvent = endsWithEvent; return new BuildStartsWithPatternAndEndsWithEventStep(); } /** *

* TODO: comment *

* * @param endsWithPattern * @return */ public BuildStartsAndEndsWithPatternStep endsWith(UsagePattern endsWithPattern) { UsagePatternBuilder.this.endsWithPattern = endsWithPattern; return new BuildStartsAndEndsWithPatternStep(); } /** *

* TODO: comment *

* * @return */ public UsagePattern build() { return new UsagePattern(concernedNode, new StartsWithPatternVisitor(startsWithPattern)); } } public class BuildEndsWithEventStep { /** *

* TODO: comment *

* * @return */ public UsagePattern build() { return new UsagePattern(concernedNode, new EndsWithEventVisitor(endsWithEvent)); } } public class BuildEndsWithPatternStep { /** *

* TODO: comment *

* * @return */ public UsagePattern build() { return new UsagePattern(concernedNode, new EndsWithPatternVisitor(endsWithPattern)); } } public class BuildContainsEventStep { /** *

* TODO: comment *

* * @param textInput * @return */ public BuildContainsAndEndsWithEventStep endsWith(EventTypeFilter endsWithType) { UsagePatternBuilder.this.endsWithEvent = endsWithType; return new BuildContainsAndEndsWithEventStep(); } /** *

* TODO: comment *

* * @return */ public UsagePattern build() { return new UsagePattern(concernedNode, new ContainsEventVisitor(containsEvent)); } } public class BuildContainsPatternStep { /** *

* TODO: comment *

* * @return */ public UsagePattern build() { return new UsagePattern(concernedNode, new ContainsPatternVisitor(containsPattern)); } } public class BuildStartsAndEndsWithEventStep { /** *

* TODO: comment *

* * @return */ public UsagePattern build() { return new UsagePattern(concernedNode, new StartsWithEventVisitor(startsWithEvent), new EndsWithEventVisitor(endsWithEvent)); } } public class BuildStartsWithEventAndEndsWithPattern { /** *

* TODO: comment *

* * @return */ public UsagePattern build() { return new UsagePattern(concernedNode, new StartsWithEventVisitor(startsWithEvent), new EndsWithPatternVisitor(endsWithPattern)); } } public class BuildStartsWithPatternAndEndsWithEventStep { /** *

* TODO: comment *

* * @return */ public UsagePattern build() { return new UsagePattern(concernedNode, new StartsWithPatternVisitor(startsWithPattern), new EndsWithEventVisitor(endsWithEvent)); } } public class BuildStartsAndEndsWithPatternStep { /** *

* TODO: comment *

* * @return */ public UsagePattern build() { return new UsagePattern(concernedNode, new StartsWithPatternVisitor(startsWithPattern), new EndsWithPatternVisitor(endsWithPattern)); } } public class BuildStartsWithEventAndContainsEventStep { /** *

* TODO: comment *

* * @param textInput * @return */ public BuildStartsAndEndsWithEventAndContainsEventStep endsWith(EventTypeFilter endsWithEvent) { UsagePatternBuilder.this.endsWithEvent = endsWithEvent; return new BuildStartsAndEndsWithEventAndContainsEventStep(); } /** *

* TODO: comment *

* * @param endsWithPattern * @return */ public BuildStartsWithEventContainsEventAndEndsWithPatternStep endsWith(UsagePattern endsWithPattern) { UsagePatternBuilder.this.endsWithPattern = endsWithPattern; return new BuildStartsWithEventContainsEventAndEndsWithPatternStep(); } /** *

* TODO: comment *

* * @return */ public UsagePattern build() { return new UsagePattern(concernedNode, new StartsWithEventVisitor(startsWithEvent), new ContainsEventVisitor(containsEvent)); } } public class BuildStartsWithPatternAndContainsPatternStep { /** *

* TODO: comment *

* * @param textInput * @return */ public BuildStartsContainsPatternAndEndsWithEventStep endsWith(EventTypeFilter endsWithEvent) { UsagePatternBuilder.this.endsWithEvent = endsWithEvent; return new BuildStartsContainsPatternAndEndsWithEventStep(); } /** *

* TODO: comment *

* * @param endsWithPattern * @return */ public BuildStartsAndEndsWithPatternAndContainsPatternStep endsWith(UsagePattern endsWithPattern) { UsagePatternBuilder.this.endsWithPattern = endsWithPattern; return new BuildStartsAndEndsWithPatternAndContainsPatternStep(); } /** *

* TODO: comment *

* * @return */ public UsagePattern build() { return new UsagePattern(concernedNode, new StartsWithPatternVisitor(startsWithPattern), new ContainsPatternVisitor(containsPattern)); } } public class BuildStartsWithEventAndContainsPatternStep { /** *

* TODO: comment *

* * @param textInput * @return */ public BuildStartsWithEventContainsPatternAndEndsWithEventStep endsWith(EventTypeFilter endsWithEvent) { UsagePatternBuilder.this.endsWithEvent = endsWithEvent; return new BuildStartsWithEventContainsPatternAndEndsWithEventStep(); } /** *

* TODO: comment *

* * @param endsWithPattern * @return */ public BuildStartsWithEventContainsPatternAndEndsWithPatternStep endsWith(UsagePattern endsWithPattern) { UsagePatternBuilder.this.endsWithPattern = endsWithPattern; return new BuildStartsWithEventContainsPatternAndEndsWithPatternStep(); } /** *

* TODO: comment *

* * @return */ public UsagePattern build() { return new UsagePattern(concernedNode, new StartsWithEventVisitor(startsWithEvent), new ContainsPatternVisitor(containsPattern)); } } public class BuildStartsWithPatternAndContainsEventStep { /** *

* TODO: comment *

* * @param textInput * @return */ public BuildStartsWithPatternContainsEventAndEndsWithEventStep endsWith(EventTypeFilter endsWithEvent) { UsagePatternBuilder.this.endsWithEvent = endsWithEvent; return new BuildStartsWithPatternContainsEventAndEndsWithEventStep(); } /** *

* TODO: comment *

* * @param endsWithPattern * @return */ public BuildStartsWithPatternContainsEventAndEndsWithPatternStep endsWith(UsagePattern endsWithPattern) { UsagePatternBuilder.this.endsWithPattern = endsWithPattern; return new BuildStartsWithPatternContainsEventAndEndsWithPatternStep(); } /** *

* TODO: comment *

* * @return */ public UsagePattern build() { return new UsagePattern(concernedNode, new StartsWithPatternVisitor(startsWithPattern), new ContainsEventVisitor(containsEvent)); } } public class BuildStartsAndEndsWithEventAndContainsEventStep { /** *

* TODO: comment *

* * @return */ public UsagePattern build() { return new UsagePattern(concernedNode, new StartsWithEventVisitor(startsWithEvent), new EndsWithEventVisitor(endsWithEvent), new ContainsEventVisitor(containsEvent)); } } public class BuildStartsContainsPatternAndEndsWithEventStep { /** *

* TODO: comment *

* * @return */ public UsagePattern build() { return new UsagePattern(concernedNode, new StartsWithPatternVisitor(startsWithPattern), new ContainsPatternVisitor(containsPattern), new EndsWithEventVisitor(endsWithEvent)); } } public class BuildStartsAndEndsWithPatternAndContainsPatternStep { /** *

* TODO: comment *

* * @return */ public UsagePattern build() { return new UsagePattern(concernedNode, new StartsWithPatternVisitor(startsWithPattern), new EndsWithPatternVisitor(endsWithPattern), new ContainsPatternVisitor(containsPattern)); } } public class BuildStartsWithEventContainsEventAndEndsWithPatternStep { /** *

* TODO: comment *

* * @return */ public UsagePattern build() { return new UsagePattern(concernedNode, new StartsWithEventVisitor(startsWithEvent), new ContainsEventVisitor(containsEvent), new EndsWithPatternVisitor(endsWithPattern)); } } public class BuildStartsWithEventContainsPatternAndEndsWithEventStep { /** *

* TODO: comment *

* * @return */ public UsagePattern build() { return new UsagePattern(concernedNode, new StartsWithEventVisitor(startsWithEvent), new ContainsPatternVisitor(containsPattern), new EndsWithEventVisitor(endsWithEvent)); } } public class BuildStartsWithEventContainsPatternAndEndsWithPatternStep { /** *

* TODO: comment *

* * @return */ public UsagePattern build() { return new UsagePattern(concernedNode, new StartsWithEventVisitor(startsWithEvent), new ContainsPatternVisitor(containsPattern), new EndsWithPatternVisitor(endsWithPattern)); } } public class BuildStartsWithPatternContainsEventAndEndsWithEventStep { /** *

* TODO: comment *

* * @return */ public UsagePattern build() { return new UsagePattern(concernedNode, new StartsWithPatternVisitor(startsWithPattern), new ContainsEventVisitor(containsEvent), new EndsWithEventVisitor(endsWithEvent)); } } public class BuildStartsWithPatternContainsEventAndEndsWithPatternStep { /** *

* TODO: comment *

* * @return */ public UsagePattern build() { return new UsagePattern(concernedNode, new StartsWithPatternVisitor(startsWithPattern), new ContainsEventVisitor(containsEvent), new EndsWithPatternVisitor(endsWithPattern)); } } public class BuildContainsAndEndsWithEventStep { /** *

* TODO: comment *

* * @return */ public UsagePattern build() { return new UsagePattern(concernedNode, new ContainsEventVisitor(containsEvent), new EndsWithEventVisitor(endsWithEvent)); } } }