001    package nl.cwi.sen1.tide.tool.support;
002    
003    //{{{ imports
004    
005    import aterm.ATerm;
006    import aterm.ATermFactory;
007    
008    //}}}
009    
010    public class Port
011    {
012      public static ATermFactory factory;
013    
014      private ATerm term;
015    
016      //{{{ public static void initialize(ATermFactory factory)
017    
018      public static void initialize(ATermFactory factory)
019      {
020        Port.factory = factory;
021      }
022    
023      //}}}
024      
025      //{{{ public static Port parsePort(String spec)
026    
027      public static Port parse(String spec)
028      {
029        try {
030          return fromTerm(factory.parse(spec));
031        } catch (Exception e) {
032          return null;
033        } 
034      }
035    
036      //}}}
037    
038      //{{{ public static Port makeStarted()
039    
040      public static Port makeStarted()
041      {
042        return make("started");
043      }
044    
045      //}}}
046      //{{{ public static Port makeStopped()
047    
048      public static Port makeStopped()
049      {
050        return make("stopped");
051      }
052    
053      //}}}
054      //{{{ public static Port makeStep()
055    
056      public static Port makeStep()
057      {
058        return make("step");
059      }
060    
061      //}}}
062      //{{{ public static Port make(String port)
063    
064      public static Port make(String port)
065      {
066        return new Port(factory.parse(port));
067      }
068    
069      //}}}
070      //{{{ public static Port make(ATerm term)
071    
072      public static Port make(ATerm term)
073      {
074        return new Port(term);
075      }
076    
077      //}}}
078      //{{{ public static Port fromTerm(ATerm term)
079    
080      public static Port fromTerm(ATerm term)
081      {
082        return make(term);
083      }
084    
085      //}}}
086    
087      //{{{ Port(ATerm term)
088    
089      Port(ATerm term)
090      {
091        this.term = term;
092      }
093    
094      //}}}
095    
096      //{{{ public ATerm toTerm()
097    
098      public ATerm toTerm()
099      {
100        return term;
101      }
102    
103      //}}}
104      //{{{ public String toString()
105    
106      public String toString()
107      {
108        return term.toString();
109      }
110    
111      //}}}
112    }
113