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}