/******************************************************************************* * Copyright (c) 2008 Pierre-Antoine Grégoire. * 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: * Pierre-Antoine Grégoire - initial API and implementation *******************************************************************************/ package org.org.eclipse.dws.core.internal.jobs; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; import org.eclipse.core.runtime.jobs.Job; import org.org.eclipse.dws.core.DWSCorePlugin; import org.org.repository.crawler.items.IFileSystemCrawledRepositorySetup; import org.org.repository.crawler.items.IHttpCrawledRepositorySetup; import org.org.repository.crawler.items.ICrawledRepositorySetup; import org.org.repository.crawler.maven2.model.CrawledRepository; public final class ComputeRepositoryDetailsJob extends Job { private static final String JOB_ID = "DWS: computing crawledRepository details"; private final CrawledRepository crawledRepository; private StringBuilder formattedRepository; private Class<? extends ICrawledRepositorySetup> repositorySetupType; private StringBuilder formattedPatterns; public ComputeRepositoryDetailsJob(final CrawledRepository crawledRepository) { super(JOB_ID); this.setSystem(true); this.crawledRepository = crawledRepository; } @Override public IStatus run(IProgressMonitor monitor) { formattedRepository = new StringBuilder("<form><p>"); formattedRepository.append("Name:<b> " + crawledRepository.getLabel() + "</b><br />"); repositorySetupType = crawledRepository.getRepositorySetup().getClass(); formattedPatterns = new StringBuilder(); if (IHttpCrawledRepositorySetup.class.isAssignableFrom(repositorySetupType)) { IHttpCrawledRepositorySetup httpCrawledRepositorySetup = (IHttpCrawledRepositorySetup) crawledRepository.getRepositorySetup(); formattedRepository.append("Type:<b>Http crawledRepository</b><br />"); formattedRepository.append("Base url:<b>" + httpCrawledRepositorySetup.getBaseUrl() + "</b><br />"); if (httpCrawledRepositorySetup.getProxyHost() != null) { formattedRepository.append("Proxy host:<b>" + httpCrawledRepositorySetup.getProxyHost() + "</b><br />"); } if (httpCrawledRepositorySetup.getProxyPort() != null) { formattedRepository.append("Proxy port:<b>" + httpCrawledRepositorySetup.getProxyPort() + "</b><br />"); } formattedPatterns.append("Entry pattern: " + httpCrawledRepositorySetup.getPatternSet().getEntryPattern() + "\n"); formattedPatterns.append("Directory Entry pattern: " + httpCrawledRepositorySetup.getPatternSet().getDirectoryEntryPattern() + "\n"); formattedPatterns.append("File Entry pattern: " + httpCrawledRepositorySetup.getPatternSet().getFileEntryPattern() + "\n"); formattedPatterns.append("Parent Directory pattern: " + httpCrawledRepositorySetup.getPatternSet().getParentDirectoryPattern() + "\n"); } if (IFileSystemCrawledRepositorySetup.class.isAssignableFrom(repositorySetupType)) { IFileSystemCrawledRepositorySetup fileSystemCrawledRepositorySetup = (IFileSystemCrawledRepositorySetup) crawledRepository.getRepositorySetup(); formattedRepository.append("Type:<b>File system crawledRepository</b><br />"); formattedRepository.append("Base path:<b>" + fileSystemCrawledRepositorySetup.getBasePath() + "</b><br />"); } formattedRepository.append("</p></form>"); return new Status(IStatus.OK, DWSCorePlugin.PI_MAVEN2, "DWS: details view refreshed"); } public StringBuilder getFormattedRepository() { return formattedRepository; } public Class<? extends ICrawledRepositorySetup> getRepositorySetupType() { return repositorySetupType; } public StringBuilder getFormattedPatterns() { return formattedPatterns; } }