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 tools.gsf.facade.uri; 18 19 import COM.FutureTense.Interfaces.ICS; 20 import com.fatwire.assetapi.data.AssetId; 21 import tools.gsf.facade.runtag.render.GetPageUrl; 22 23 /** 24 * @author Dolf Dijkstra 25 * @since Mar 13, 2011 26 */ 27 public class PageUriBuilder { 28 29 private final GetPageUrl tag = new GetPageUrl(); 30 31 /** 32 * Constructor with pagename and a wrapper . 33 * 34 * @param pagename string value for page name 35 * @param wrapper string value for wrapper 36 */ 37 public PageUriBuilder(String pagename, String wrapper) { 38 tag.setPagename(pagename); 39 tag.setWrapperpage(wrapper); 40 } 41 42 /** 43 * Constructor with pagename, without a wrapper. 44 * 45 * @param pagename string value for page name 46 */ 47 public PageUriBuilder(String pagename) { 48 tag.setPagename(pagename); 49 50 } 51 52 /** 53 * Constructor with c and cid, with a wrapper . 54 * 55 * @param c current asset 56 * @param cid content id 57 * @param pagename string value for page name 58 * @param wrapper string value for wrapper 59 */ 60 public PageUriBuilder(String c, String cid, String pagename, String wrapper) { 61 tag.setC(c); 62 tag.setCid(cid); 63 tag.setPagename(pagename); 64 tag.setWrapperpage(wrapper); 65 } 66 67 /** 68 * Constructor with c and cid, without a wrapper. 69 * 70 * @param c current asset 71 * @param cid content id 72 * @param pagename string value for page name 73 */ 74 public PageUriBuilder(String c, String cid, String pagename) { 75 tag.setC(c); 76 tag.setCid(cid); 77 tag.setPagename(pagename); 78 79 } 80 81 /** 82 * Constructor with AssetId and wrapper. 83 * 84 * @param id asset id 85 * @param pagename string value for page name 86 * @param wrapper string value for wrapper 87 */ 88 public PageUriBuilder(AssetId id, String pagename, String wrapper) { 89 this(id.getType(), Long.toString(id.getId()), pagename, wrapper); 90 } 91 92 /** 93 * Constructor with AssetId, without a wrapper. 94 * 95 * @param id asset id 96 * @param pagename string value for page name 97 */ 98 public PageUriBuilder(AssetId id, String pagename) { 99 this(id.getType(), Long.toString(id.getId()), pagename); 100 } 101 102 /** 103 * Returns the uri to the asset rendered with the specified template and 104 * wrapper (if provided). 105 * 106 * @param ics Content Server context object 107 * @return this 108 * @see "tools.gsf.facade.runtag.AbstractTagRunner#execute(COM.FutureTense.Interfaces.ICS)" 109 */ 110 public String toURI(ICS ics) { 111 112 tag.setOutstr("uri__"); 113 tag.execute(ics); 114 String uri = ics.GetVar("uri__"); 115 ics.RemoveVar("uri__"); 116 return uri; 117 } 118 119 /** 120 * @param name argument name 121 * @param value argument value 122 * @return this 123 * @see "tools.gsf.facade.runtag.render.TagRunnerWithArguments#setArgument(java.lang.String, java.lang.String)" 124 */ 125 public PageUriBuilder argument(String name, String value) { 126 tag.setArgument(name, value); 127 return this; 128 } 129 130 /** 131 * @param s string value of assembler 132 * @return this 133 * @see "tools.gsf.facade.runtag.render.GetTemplateUrl#setAssembler(java.lang.String)" 134 */ 135 public PageUriBuilder assembler(String s) { 136 tag.setAssembler(s); 137 return this; 138 } 139 140 /** 141 * @param s string value of authority 142 * @return this 143 * @see "tools.gsf.facade.runtag.render.GetTemplateUrl#setAuthority(java.lang.String)" 144 */ 145 public PageUriBuilder authority(String s) { 146 tag.setAuthority(s); 147 return this; 148 } 149 150 /** 151 * @param s string value of container 152 * @return this 153 * @see "tools.gsf.facade.runtag.render.GetTemplateUrl#setContainer(java.lang.String)" 154 */ 155 public PageUriBuilder container(String s) { 156 tag.setContainer(s); 157 return this; 158 } 159 160 /** 161 * @param s boolean value for Dynamic 162 * @return this 163 * @see "tools.gsf.facade.runtag.render.GetTemplateUrl#setDynamic(java.lang.String)" 164 */ 165 public PageUriBuilder dynamic(boolean s) { 166 tag.setDynamic(s); 167 return this; 168 } 169 170 /** 171 * @param s string value of fragment 172 * @return this 173 * @see "tools.gsf.facade.runtag.render.GetTemplateUrl#setFragment(java.lang.String)" 174 */ 175 public PageUriBuilder fragment(String s) { 176 tag.setFragment(s); 177 return this; 178 } 179 180 /** 181 * @param s string value of packed arguments 182 * @return this 183 * @see "tools.gsf.facade.runtag.render.GetTemplateUrl#setPackedargs(java.lang.String)" 184 */ 185 public PageUriBuilder packedargs(String s) { 186 tag.setPackedargs(s); 187 return this; 188 } 189 190 /** 191 * @param s boolean value of satellite 192 * @return this 193 * @see "tools.gsf.facade.runtag.render.GetTemplateUrl#setSatellite(java.lang.String)" 194 */ 195 public PageUriBuilder satellite(boolean s) { 196 tag.setSatellite(s); 197 return this; 198 } 199 200 /** 201 * @param s string value of scheme 202 * @return this 203 * @see "tools.gsf.facade.runtag.render.GetTemplateUrl#setScheme(java.lang.String)" 204 */ 205 public PageUriBuilder scheme(String s) { 206 tag.setScheme(s); 207 return this; 208 } 209 210 /** 211 * @param s string value of wrapper page 212 * @return this 213 * @see "tools.gsf.facade.runtag.render.GetTemplateUrl#setWrapperpage(java.lang.String)" 214 */ 215 public PageUriBuilder wrapper(String s) { 216 tag.setWrapperpage(s); 217 return this; 218 } 219 220 }