/******************************************************************************* * Copyright (c) 2014, 2015 Cisco Systems, Inc. and others. 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.cisco.yangide.core.indexing; import org.eclipse.core.resources.IFile; import org.eclipse.core.runtime.IProgressMonitor; import com.cisco.yangide.core.YangCorePlugin; import com.cisco.yangide.core.YangModelException; import com.cisco.yangide.core.model.YangFileInfo; /** * @author Konstantin Zaitsev * @date Jul 1, 2014 */ public class IndexFileRequest extends IndexRequest { private IFile file; public IndexFileRequest(IFile file, IndexManager manager) { super(file.getFullPath(), manager); this.file = file; } @Override public boolean execute(IProgressMonitor progressMonitor) { if (this.isCancelled || progressMonitor != null && progressMonitor.isCanceled()) { return true; } try { // remove previously indexed file manager.remove(file); YangFileInfo info = (YangFileInfo) YangCorePlugin.createYangFile(file).getElementInfo(progressMonitor); manager.addModule(info.getModule(), file.getProject(), file.getFullPath(), ""); manager.fileAddedToIndex(file.getProject(), file.getFullPath(), file.getModificationStamp()); } catch (YangModelException e) { // ignore exception } return true; } @Override public boolean equals(Object obj) { return obj instanceof IndexFileRequest && file.equals(((IndexFileRequest) obj).file); } @Override public int hashCode() { return file.hashCode(); } @Override public String toString() { return "indexing " + file.getFullPath(); } }