1 28 29 package com.idaremedia.antx.valueuri; 30 31 import java.io.File ; 32 33 import org.apache.tools.ant.Project; 34 35 import com.idaremedia.antx.apis.Requester; 36 import com.idaremedia.antx.helpers.Tk; 37 import com.idaremedia.antx.starters.ValueURIHandlerSkeleton; 38 39 62 63 public final class BasenameValueURIHandler extends ValueURIHandlerSkeleton 64 { 65 68 public BasenameValueURIHandler() 69 { 70 super(); 71 } 72 73 74 80 public String valueFrom(String uriFragment, String fullUri, Requester clnt) 81 { 82 final Project P = clnt.getProject(); 83 String path = uriFragment; 84 String suffix = null; 85 86 int i = uriFragment.indexOf("?"); 87 if (i>=0) { 88 path = uriFragment.substring(0,i++); 89 if (i<uriFragment.length()) { 90 suffix = Tk.resolveString(P,uriFragment.substring(i),true); 91 } 92 } 93 path = Tk.resolveString(P,path,true); 94 return baseFrom(path,suffix,clnt); 95 } 96 97 98 99 106 private String baseFrom(String inpath, String suffix, Requester clnt) 107 { 108 File file; 109 if (inpath.length()==0) { 110 file = clnt.getProject().getBaseDir(); 111 if (file==null) { 112 return null; 113 } 114 } else { 115 file = clnt.getProject().resolveFile(inpath); 116 } 117 121 String filename = file.getName(); 122 if (!Tk.isWhitespace(suffix) && filename.endsWith(suffix)) { 123 int pos = filename.length() - suffix.length(); 124 if (pos>0 && suffix.charAt(0)!= '.' 125 && filename.charAt(pos-1)=='.') { 126 pos--; 127 } 128 filename = filename.substring(0,pos); 129 } 130 return filename; 131 } 132 } 133 134 | Popular Tags |