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 }