/* * Copyright (c) 2012 Google Inc. * * 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 */ package com.google.eclipse.protobuf.ui.labeling; import java.io.File; import java.io.IOException; import java.net.URL; import org.eclipse.core.runtime.FileLocator; import org.hamcrest.Description; import org.hamcrest.TypeSafeMatcher; import com.google.eclipse.protobuf.ui.internal.ProtobufActivator; /** * @author alruiz@google.com (Alex Ruiz) */ class ProjectFileExists extends TypeSafeMatcher<String> { private static final ProjectFileExists INSTANCE = new ProjectFileExists(); static ProjectFileExists existsInProject() { return INSTANCE; } private ProjectFileExists() {} @Override public boolean matchesSafely(String item) { URL entry = ProtobufActivator.getInstance().getBundle().getEntry("icons/" + item); if (entry == null) { return false; } try { String entryPath = FileLocator.resolve(entry).getFile(); File file = new File(entryPath); return file.isFile(); } catch (IOException e) { e.printStackTrace(); } return false; } @Override public void describeTo(Description description) {} }