View Javadoc
1   /*
2    * Copyright 2008 FatWire Corporation. All Rights Reserved.
3    *
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    *    http://www.apache.org/licenses/LICENSE-2.0
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  
17  package com.fatwire.gst.foundation.facade.uri;
18  
19  import COM.FutureTense.Interfaces.ICS;
20  
21  import com.fatwire.assetapi.data.AssetId;
22  import com.fatwire.gst.foundation.facade.runtag.render.GetPageUrl;
23  
24  /**
25   * @author Dolf Dijkstra
26   * @since Mar 13, 2011
27   */
28  public class PageUriBuilder {
29  
30      private final GetPageUrl tag = new GetPageUrl();
31  
32      /**
33       * Constructor with pagename and a wrapper .
34       * 
35       * @param pagename
36       * @param wrapper
37       */
38      public PageUriBuilder(String pagename, String wrapper) {
39          tag.setPagename(pagename);
40          tag.setWrapperpage(wrapper);
41      }
42  
43      /**
44       * Constructor with pagename, without a wrapper.
45       * 
46       * @param pagename
47       */
48      public PageUriBuilder(String pagename) {
49          tag.setPagename(pagename);
50  
51      }
52  
53      /**
54       * Constructor with c and cid, with a wrapper .
55       * 
56       * @param c
57       * @param cid
58       * @param pagename
59       * @param wrapper
60       */
61      public PageUriBuilder(String c, String cid, String pagename, String wrapper) {
62          tag.setC(c);
63          tag.setCid(cid);
64          tag.setPagename(pagename);
65          tag.setWrapperpage(wrapper);
66      }
67  
68      /**
69       * Constructor with c and cid, without a wrapper.
70       * 
71       * @param c
72       * @param cid
73       * @param pagename
74       */
75      public PageUriBuilder(String c, String cid, String pagename) {
76          tag.setC(c);
77          tag.setCid(cid);
78          tag.setPagename(pagename);
79  
80      }
81  
82      /**
83       * Constructor with AssetId and wrapper.
84       * 
85       * @param id
86       * @param pagename
87       * @param wrapper
88       */
89      public PageUriBuilder(AssetId id, String pagename, String wrapper) {
90          this(id.getType(), Long.toString(id.getId()), pagename, wrapper);
91      }
92  
93      /**
94       * Constructor with AssetId, without a wrapper.
95       * 
96       * @param id
97       * @param pagename
98       */
99      public PageUriBuilder(AssetId id, String pagename) {
100         this(id.getType(), Long.toString(id.getId()), pagename);
101     }
102 
103     /**
104      * Returns the uri to the asset rendered with the specified template and
105      * wrapper (if provided).
106      * 
107      * @param ics
108      * @return this
109      * @see com.fatwire.gst.foundation.facade.runtag.AbstractTagRunner#execute(COM.FutureTense.Interfaces.ICS)
110      */
111     public String toURI(ICS ics) {
112 
113         tag.setOutstr("uri__");
114         tag.execute(ics);
115         String uri = ics.GetVar("uri__");
116         ics.RemoveVar("uri__");
117         return uri;
118     }
119 
120     /**
121      * @param name
122      * @param value
123      * @return this
124      * @see com.fatwire.gst.foundation.facade.runtag.render.TagRunnerWithArguments#setArgument(java.lang.String,
125      *      java.lang.String)
126      */
127     public PageUriBuilder argument(String name, String value) {
128         tag.setArgument(name, value);
129         return this;
130     }
131 
132     /**
133      * @param s
134      * @return this
135      * @see com.fatwire.gst.foundation.facade.runtag.render.GetTemplateUrl#setAssembler(java.lang.String)
136      */
137     public PageUriBuilder assembler(String s) {
138         tag.setAssembler(s);
139         return this;
140     }
141 
142     /**
143      * @param s
144      * @return this
145      * @see com.fatwire.gst.foundation.facade.runtag.render.GetTemplateUrl#setAuthority(java.lang.String)
146      */
147     public PageUriBuilder authority(String s) {
148         tag.setAuthority(s);
149         return this;
150     }
151 
152     /**
153      * @param s
154      * @return this
155      * @see com.fatwire.gst.foundation.facade.runtag.render.GetTemplateUrl#setContainer(java.lang.String)
156      */
157     public PageUriBuilder container(String s) {
158         tag.setContainer(s);
159         return this;
160     }
161 
162     /**
163      * @param s
164      * @return this
165      * @see com.fatwire.gst.foundation.facade.runtag.render.GetTemplateUrl#setDynamic(java.lang.String)
166      */
167     public PageUriBuilder dynamic(boolean s) {
168         tag.setDynamic(s);
169         return this;
170     }
171 
172     /**
173      * @param s
174      * @return this
175      * @see com.fatwire.gst.foundation.facade.runtag.render.GetTemplateUrl#setFragment(java.lang.String)
176      */
177     public PageUriBuilder fragment(String s) {
178         tag.setFragment(s);
179         return this;
180     }
181 
182     /**
183      * @param s
184      * @return this
185      * @see com.fatwire.gst.foundation.facade.runtag.render.GetTemplateUrl#setPackedargs(java.lang.String)
186      */
187     public PageUriBuilder packedargs(String s) {
188         tag.setPackedargs(s);
189         return this;
190     }
191 
192     /**
193      * @param s
194      * @return this
195      * @see com.fatwire.gst.foundation.facade.runtag.render.GetTemplateUrl#setSatellite(java.lang.String)
196      */
197     public PageUriBuilder satellite(boolean s) {
198         tag.setSatellite(s);
199         return this;
200     }
201 
202     /**
203      * @param s
204      * @return this
205      * @see com.fatwire.gst.foundation.facade.runtag.render.GetTemplateUrl#setScheme(java.lang.String)
206      */
207     public PageUriBuilder scheme(String s) {
208         tag.setScheme(s);
209         return this;
210     }
211 
212     /**
213      * @param s
214      * @return this
215      * @see com.fatwire.gst.foundation.facade.runtag.render.GetTemplateUrl#setWrapperpage(java.lang.String)
216      */
217     public PageUriBuilder wrapper(String s) {
218         tag.setWrapperpage(s);
219         return this;
220     }
221 
222 }