blob: f0ba8600256e5d91a50711a611a77b70cae0dce7 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.sling.commons.testing.sling;
import java.util.Collection;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.NoSuchElementException;
import javax.servlet.http.HttpServletRequest;
import org.apache.sling.api.resource.LoginException;
import org.apache.sling.api.resource.PersistenceException;
import org.apache.sling.api.resource.Resource;
import org.apache.sling.api.resource.ResourceResolver;
/**
* @deprecated Please use the Mock Resource Resolver Implementation from testing/resourceresolver-mock instead.
*/
@Deprecated
public class MockResourceResolver implements ResourceResolver {
private String[] searchPath;
private Map<String, Resource> resources = new LinkedHashMap<String, Resource>();
private Map<String, Collection<Resource>> children = new LinkedHashMap<String, Collection<Resource>>();
public void addResource(Resource resource) {
this.resources.put(resource.getPath(), resource);
}
public void addChildren(Resource parent, Collection<Resource> children) {
this.children.put(parent.getPath(), children);
}
public Resource resolve(HttpServletRequest request) {
throw new UnsupportedOperationException("Not implemented");
}
public Resource resolve(String absPath) {
throw new UnsupportedOperationException("Not implemented");
}
public String map(String resourcePath) {
return resourcePath; // a rather simplistic 1:1 map...
}
public Resource getResource(String path) {
return resources.get(path);
}
public Resource getResource(Resource base, String path) {
if (!path.startsWith("/")) {
path = base.getPath() + "/" + path;
}
return getResource(path);
}
public String[] getSearchPath() {
return searchPath.clone();
}
public Iterator<Resource> listChildren(final Resource parent) {
Collection<Resource> childCollection = children.get(parent.getPath());
if (childCollection != null) {
return childCollection.iterator();
}
return new Iterator<Resource>() {
final String parentPath = parent.getPath() + "/";
final Iterator<Resource> elements = resources.values().iterator();
Resource nextResource = seek();
public boolean hasNext() {
return nextResource != null;
}
public Resource next() {
if (!hasNext()) {
throw new NoSuchElementException();
}
Resource result = nextResource;
nextResource = seek();
return result;
}
public void remove() {
throw new UnsupportedOperationException();
}
private Resource seek() {
while (elements.hasNext()) {
Resource next = elements.next();
String path = next.getPath();
if (path.startsWith(parentPath)
&& path.indexOf('/', parentPath.length()) < 0) {
return next;
}
}
return null;
}
};
}
public Iterator<Resource> findResources(String query, String language) {
throw new UnsupportedOperationException("Not implemented");
}
public Iterator<Map<String, Object>> queryResources(String query,
String language) {
throw new UnsupportedOperationException("Not implemented");
}
public <AdapterType> AdapterType adaptTo(Class<AdapterType> type) {
throw new UnsupportedOperationException("Not implemented");
}
public void setSearchPath(String... searchPath) {
if (searchPath == null) {
this.searchPath = new String[0];
} else {
this.searchPath = new String[searchPath.length];
for (int i=0; i < searchPath.length; i++) {
String entry = searchPath[i];
if (!entry.endsWith("/")) {
entry = entry.concat("/");
}
this.searchPath[i] = entry;
}
}
}
public String map(HttpServletRequest request, String resourcePath) {
return request.getContextPath() + resourcePath;
}
public Resource resolve(HttpServletRequest request, String absPath) {
throw new UnsupportedOperationException("Not implemented");
}
public void close() {
// nothing to do
}
public String getUserID() {
return null;
}
public boolean isLive() {
return true;
}
public ResourceResolver clone(Map<String, Object> authenticationInfo)
throws LoginException {
return null;
}
public Object getAttribute(String name) {
return null;
}
public Iterator<String> getAttributeNames() {
return null;
}
public void commit() throws PersistenceException {
}
public Resource create(Resource arg0, String arg1, Map<String, Object> arg2)
throws PersistenceException {
return null;
}
public void delete(Resource arg0) throws PersistenceException {
}
public Iterable<Resource> getChildren(Resource arg0) {
return null;
}
public String getParentResourceType(Resource arg0) {
return null;
}
public String getParentResourceType(String arg0) {
return null;
}
public boolean hasChanges() {
return false;
}
public boolean isResourceType(Resource arg0, String arg1) {
return false;
}
public void refresh() {
}
public void revert() {
}
}