/******************************************************************************* * Copyright (c) 2010 Neil Bartlett. * All rights reserved. This program and the accompanying materials * are 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: * Neil Bartlett - initial API and implementation *******************************************************************************/ package org.bndtools.builder; import java.util.Collection; import java.util.Set; import java.util.regex.Matcher; import org.eclipse.core.runtime.IPath; import aQute.bnd.osgi.Instruction; public class BndFileModel { private final IPath path; private IPath targetPath; private Set<Instruction> includes; private Collection< ? extends IPath> classpath; public BndFileModel(IPath path) { this.path = path; } public IPath getTargetPath() { return targetPath; } public void setTargetPath(IPath targetPath) { this.targetPath = targetPath; } public IPath getPath() { return path; } public void setIncludes(Set<Instruction> includes) { this.includes = includes; } public boolean containsPackage(String packageName) { for (Instruction instruction : includes) { Matcher matcher = instruction.getMatcher(packageName); if (matcher.matches()) return true; } return false; } public boolean containsAny(Collection< ? extends String> affectedPackages) { for (Instruction instruction : includes) { for (String pkg : affectedPackages) { Matcher matcher = instruction.getMatcher(pkg); if (matcher.matches()) return true; } } return false; } public Collection< ? extends IPath> getClasspath() { return classpath; } public void setClasspath(Collection< ? extends IPath> classpath) { this.classpath = classpath; } }