001/** 002 * 003 * Copyright (c) 2014, the Railo Company Ltd. All rights reserved. 004 * 005 * This library is free software; you can redistribute it and/or 006 * modify it under the terms of the GNU Lesser General Public 007 * License as published by the Free Software Foundation; either 008 * version 2.1 of the License, or (at your option) any later version. 009 * 010 * This library is distributed in the hope that it will be useful, 011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 013 * Lesser General Public License for more details. 014 * 015 * You should have received a copy of the GNU Lesser General Public 016 * License along with this library. If not, see <http://www.gnu.org/licenses/>. 017 * 018 **/ 019package lucee.commons.io.res.util; 020 021import java.io.IOException; 022 023import lucee.commons.io.IOUtil; 024import lucee.commons.io.res.Resource; 025import lucee.commons.io.res.filter.ResourceFilter; 026import lucee.commons.io.res.filter.ResourceNameFilter; 027import lucee.runtime.PageContext; 028import lucee.runtime.exp.PageException; 029import lucee.runtime.functions.system.ContractPath; 030 031public class ResourceUtilImpl implements lucee.runtime.util.ResourceUtil { 032 033 private ResourceUtilImpl(){} 034 private static ResourceUtilImpl impl=new ResourceUtilImpl(); 035 036 037 public static ResourceUtilImpl getInstance() { 038 return impl; 039 } 040 041 @Override 042 public void checkCopyToOK(Resource source, Resource target) throws IOException { 043 ResourceUtil.checkCopyToOK(source, target); 044 } 045 046 @Override 047 public void checkCreateDirectoryOK(Resource resource,boolean createParentWhenNotExists) throws IOException { 048 ResourceUtil.checkCreateDirectoryOK(resource, createParentWhenNotExists); 049 } 050 051 @Override 052 public void checkCreateFileOK(Resource resource,boolean createParentWhenNotExists) throws IOException { 053 ResourceUtil.checkCreateFileOK(resource, createParentWhenNotExists); 054 } 055 056 @Override 057 public void checkGetInputStreamOK(Resource resource) throws IOException { 058 ResourceUtil.checkGetInputStreamOK(resource); 059 } 060 061 @Override 062 public void checkGetOutputStreamOK(Resource resource) throws IOException { 063 ResourceUtil.checkGetOutputStreamOK(resource); 064 } 065 066 @Override 067 public void checkMoveToOK(Resource source, Resource target)throws IOException { 068 ResourceUtil.checkMoveToOK(source, target); 069 } 070 071 @Override 072 public void checkRemoveOK(Resource resource) throws IOException { 073 ResourceUtil.checkRemoveOK(resource); 074 } 075 076 @Override 077 public void copyRecursive(Resource src, Resource trg) throws IOException { 078 ResourceUtil.copyRecursive(src, trg); 079 } 080 081 @Override 082 public void copyRecursive(Resource src, Resource trg, ResourceFilter filter) throws IOException { 083 ResourceUtil.copyRecursive(src, trg,filter); 084 } 085 086 @Override 087 public Resource createResource(Resource res, short level, short type) { 088 return ResourceUtil.createResource(res, level, type); 089 } 090 091 @Override 092 public String getExtension(Resource res) { 093 return ResourceUtil.getExtension(res,null); 094 } 095 096 @Override 097 public String getExtension(Resource res, String defaultValue) { 098 return ResourceUtil.getExtension(res,defaultValue); 099 } 100 101 @Override 102 public String getExtension(String strFile) { 103 return ResourceUtil.getExtension(strFile,null); 104 } 105 106 @Override 107 public String getExtension(String strFile, String defaultValue) { 108 return ResourceUtil.getExtension(strFile,defaultValue); 109 } 110 111 @Override 112 public String getMimeType(Resource res, String defaultValue) { 113 return ResourceUtil.getMimeType(res, defaultValue); 114 } 115 116 @Override 117 public String getMimeType(byte[] barr, String defaultValue) { 118 return IOUtil.getMimeType(barr, defaultValue); 119 } 120 121 @Override 122 public String getPathToChild(Resource file, Resource dir) { 123 return ResourceUtil.getPathToChild(file, dir); 124 } 125 126 @Override 127 public boolean isChildOf(Resource file, Resource dir) { 128 return ResourceUtil.isChildOf(file, dir); 129 } 130 131 @Override 132 public boolean isEmpty(Resource res) { 133 return ResourceUtil.isEmpty(res); 134 } 135 136 @Override 137 public boolean isEmptyDirectory(Resource res) { 138 return ResourceUtil.isEmptyDirectory(res,null); // FUTURE add to interface with filter 139 } 140 141 @Override 142 public boolean isEmptyFile(Resource res) { 143 return ResourceUtil.isEmptyFile(res); 144 } 145 146 @Override 147 public String merge(String parent, String child) { 148 return ResourceUtil.merge(parent, child); 149 } 150 151 @Override 152 public void moveTo(Resource src, Resource dest) throws IOException { 153 ResourceUtil.moveTo(src, dest,true); 154 } 155 156 @Override 157 public void removeChildren(Resource res) throws IOException { 158 ResourceUtil.removeChildren(res); 159 } 160 161 @Override 162 public void removeChildren(Resource res, ResourceNameFilter filter)throws IOException { 163 ResourceUtil.removeChildren(res, filter); 164 } 165 166 @Override 167 public void removeChildren(Resource res, ResourceFilter filter) throws IOException { 168 ResourceUtil.removeChildren(res, filter); 169 } 170 171 @Override 172 public String removeScheme(String scheme, String path) { 173 return ResourceUtil.removeScheme(scheme, path); 174 } 175 176 @Override 177 public void setAttribute(Resource res, String attributes) throws IOException { 178 ResourceUtil.setAttribute(res, attributes); 179 } 180 181 @Override 182 public Resource toResourceExisting(PageContext pc, String path) throws PageException { 183 return ResourceUtil.toResourceExisting(pc, path); 184 } 185 186 @Override 187 public Resource toResourceExistingParent(PageContext pc, String destination)throws PageException { 188 return ResourceUtil.toResourceExistingParent(pc, destination); 189 } 190 191 @Override 192 public Resource toResourceNotExisting(PageContext pc, String destination) { 193 return ResourceUtil.toResourceNotExisting(pc, destination); 194 } 195 196 @Override 197 public String translatePath(String path, boolean slashAdBegin,boolean slashAddEnd) { 198 return ResourceUtil.translatePath(path, slashAdBegin, slashAddEnd); 199 } 200 201 @Override 202 public String[] translatePathName(String path) { 203 return ResourceUtil.translatePathName(path); 204 } 205 206 public String toString(Resource r, String charset) throws IOException { 207 return IOUtil.toString(r, charset); 208 } 209 210 @Override 211 public String contractPath(PageContext pc, String path) { 212 return ContractPath.call(pc, path); 213 } 214}