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 }