/******************************************************************************* * Copyright (c) 2009 Red Hat, Inc. * Distributed under license by Red Hat, Inc. All rights reserved. * This program is made available under the terms of the * Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Red Hat, Inc. - initial API and implementation ******************************************************************************/ package org.jboss.tools.smooks.model.filters; import java.util.LinkedHashMap; import java.util.Map; import org.jboss.tools.smooks.model.ResourceFilter; import org.jboss.tools.smooks.model.smooks.ResourceConfigType; import org.jboss.tools.smooks.model.smooks.ResourceType; /** * Filter for {@link ResourceConfigType} resources. * @author <a href="mailto:tom.fennelly@gmail.com">tom.fennelly@gmail.com</a> */ public class ResourceConfigFilter extends ResourceFilter<ResourceConfigType> { private String selector; private String resource; private Map<String, String> params; public ResourceConfigFilter() { super(ResourceConfigType.class); } public ResourceConfigFilter selector(String selector) { this.selector = selector; return this; } public ResourceConfigFilter resource(String resource) { this.resource = resource; return this; } public ResourceConfigFilter resource(Class<?> resource) { this.resource = resource.getName(); return this; } public ResourceConfigFilter param(String name, String value) { if(params == null) { params = new LinkedHashMap<String, String>(); } params.put(name, value); return this; } /* (non-Javadoc) * @see org.jboss.tools.smooks10.model.smooks.util.ResourceFilter#accept(org.jboss.tools.smooks.model.smooks.AbstractResourceConfig) */ @Override public boolean accept(ResourceConfigType resourceType) { if(selector != null && !selector.equals(resourceType.getSelector())) { return false; } if(resource != null) { ResourceType resourceObj = resourceType.getResource(); if(resourceObj == null || !resourceObj.getValue().equals(resource)) { return false; } } if(params != null) { if(!hasParams(resourceType.getParam(), params)) { return false; } } return true; } }