blob: 620f08ee84d68557bc74e20e929c92baa2c399f6 [file] [log] [blame]
//------------------------------------------------------------------------------
// Copyright (c) 2005, 2006 IBM Corporation 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
//
// Contributors:
// IBM Corporation - initial implementation
//------------------------------------------------------------------------------
package org.eclipse.epf.library.layout;
import java.io.File;
import java.io.PrintStream;
import org.eclipse.epf.library.LibraryResources;
import org.eclipse.epf.library.util.LibraryUtil;
import org.eclipse.epf.uma.MethodConfiguration;
import org.eclipse.epf.uma.MethodElement;
import org.eclipse.osgi.util.NLS;
/**
* default implementation for IContentValidator. This validator is used for browsing and preview
*
* @author Jinhua Xi
*
*/
public class DefaultContentValidator implements IContentValidator {
protected PrintStream info;
protected PrintStream warning;
protected PrintStream error;
protected String pubDir;
protected boolean showBrokenLinks = true;
private static boolean default_showExtraInfoForDescriptors = true;
/**
* constructor
*
*/
public DefaultContentValidator() {
this(null);
}
/**
* constructor
* @param pubDir
*/
public DefaultContentValidator(String pubDir) {
this.pubDir = pubDir;
info = System.out;
warning = System.out;
error = System.err;
}
/**
* set publish dir
* @param pubDir String
*/
public void setPublishDir(String pubDir) {
this.pubDir = pubDir;
}
public String getPublishDir() {
return this.pubDir;
}
public void setShowBrokenLinks(boolean flag) {
showBrokenLinks = flag;
}
public boolean showBrokenLinks() {
return showBrokenLinks;
}
public LinkInfo validateLink(MethodElement owner, String attributes,
String text, MethodConfiguration config) {
LinkInfo info = new LinkInfo(owner, this, pubDir);
info.validateLink(attributes, text, config);
return info;
}
public void logInfo(MethodElement owner, String message) {
info
.println(NLS.bind(LibraryResources.DefaultContentValidator_MSG1, ((owner == null) ? "" : LibraryUtil.getTypeName(owner)) + ": " + message));
info.flush();
}
public void logWarning(MethodElement owner, String message) {
warning
.println(NLS.bind(LibraryResources.DefaultContentValidator_MSG4, ((owner == null) ? "" : LibraryUtil.getTypeName(owner)) + ": " + message));
warning.flush();
}
public void logError(MethodElement owner, String message, Throwable th) {
error
.println(NLS.bind(LibraryResources.DefaultContentValidator_MSG7, ((owner == null) ? "" : LibraryUtil.getTypeName(owner)) + ": " + message));
if (th != null) {
th.printStackTrace(error);
}
error.flush();
}
public void logInfo(String message) {
logInfo(null, message);
}
public void logWarning(String message) {
logWarning(null, message);
}
public void logError(String message, Throwable th) {
logError(null, message, th);
}
public void logMissingReference(MethodElement owner,
MethodElement refElement) {
logWarning(
owner,
NLS.bind(LibraryResources.DefaultContentValidator_MSG10, LibraryUtil.getTypeName(refElement)));
}
public void logMissingReference(MethodElement owner, String guid,
String linkedText) {
logWarning(owner, NLS.bind(LibraryResources.DefaultContentValidator_MSG11, guid));
}
public void logMissingResource(MethodElement owner, File resourceFile,
String url) {
String msg;
if (resourceFile != null) {
msg = NLS.bind(LibraryResources.DefaultContentValidator_MSG12, resourceFile.getPath(), url);
} else {
msg = NLS.bind(LibraryResources.DefaultContentValidator_MSG15, url);
}
logWarning(owner, msg);
}
public void logInvalidExternalLink(MethodElement owner, String url,
String message) {
String text;
if (message != null && message.length() > 0) {
text = NLS.bind(LibraryResources.DefaultContentValidator_MSG19, url, message);
} else {
text = NLS.bind(LibraryResources.DefaultContentValidator_MSG17, url);
}
logWarning(owner, text);
}
/**
* check if the element is discarded or not
* discarded elements will be treated as out side the configursation
*
* @param owner MethodElement the owner of the element
* @param Object feature EStructuralFeature or OppositeFeature
* @param e MethodElement the element to be checked
*/
public boolean isDiscarded(MethodElement owner, Object feature, MethodElement e) {
return false;
}
public void dispose() {
}
public void addReferencedElement(MethodElement owner, MethodElement e)
{
}
public void setDiscardedElement(MethodElement e) {
}
public boolean showExtraInfoForDescriptors() {
return default_showExtraInfoForDescriptors;
}
public static void setDefaultShowExtraInfoForDescriptors(boolean show) {
default_showExtraInfoForDescriptors = show;
}
}