View Javadoc

1   /*
2    * To change this template, choose Tools | Templates
3    * and open the template in the editor.
4    */
5   
6   package cz.cuni.amis.pogamut.udk.t3dgenerator.elements.kismet;
7   
8   import cz.cuni.amis.pogamut.unreal.t3dgenerator.annotations.UnrealChildCollection;
9   import cz.cuni.amis.pogamut.unreal.t3dgenerator.annotations.UnrealProperty;
10  import java.util.ArrayList;
11  import java.util.Collection;
12  import java.util.List;
13  
14  /**
15   *
16   * @author Martin Cerny
17   */
18  public class Sequence extends AbstractKismetObject{
19  
20      @UnrealProperty
21      @UnrealChildCollection() 
22      private List<AbstractKismetObject> sequenceObjects;
23      
24      public Sequence(String[] inputLinkNames, String[] outputLinkNames, String[] variableLinkNames) {
25          this("Engine.Default__Sequence",inputLinkNames, outputLinkNames, variableLinkNames);
26          sequenceObjects = new ArrayList<AbstractKismetObject>();
27      }
28  
29      public Sequence(String archetypeName, String[] inputLinkNames, String[] outputLinkNames, String[] variableLinkNames) {
30          super("Sequence", archetypeName, inputLinkNames, outputLinkNames, variableLinkNames);
31  
32          for(int i = 0; i < inputLinkNames.length; i++){
33              getInputLink(inputLinkNames[i]).setDescription(inputLinkNames[i]);
34          }
35          for(int i = 0; i < outputLinkNames.length; i++){
36              getOutputLink(outputLinkNames[i]).setDescription(outputLinkNames[i]);
37          }
38          for(int i = 0; i < variableLinkNames.length; i++){
39              getVariableLink(variableLinkNames[i]).setDescription(variableLinkNames[i]);
40          }
41      }
42  
43      public void addSequenceObject(AbstractKismetObject object){
44          if(object.getParentSequence() != null){
45              throw new IllegalArgumentException("Object can be inserted to a sequence only once.");
46          }
47          object.setParentSequence(this);
48          sequenceObjects.add(object);
49      }
50      
51      public void addSequenceObjects(Collection<? extends AbstractKismetObject> objects){
52          for(AbstractKismetObject obj : objects){
53              addSequenceObject(obj);
54          }
55      }
56  
57      public List<AbstractKismetObject> getSequenceObjects() {
58          return sequenceObjects;
59      }
60      
61      
62  
63  
64  }