href = normalizeDirectoryPath(href); if (href.startsWith("/")) //$NON-NLS-1$
private String normalize(String href, String id) { ITocContribution contribution = getContribution(id); if (contribution != null) { String pluginId = contribution.getContributorId(); return HrefUtil.normalizeHref(pluginId, href); } else { int index = id.indexOf('/', 1); if (index != -1) { String pluginId = id.substring(1, index); return HrefUtil.normalizeHref(pluginId, href); } } return href; }
public static String[] collectExtraDocuments(TocFile tocFile) { String dir = HrefUtil.normalizeDirectoryHref(tocFile.getPluginId(), tocFile.getExtraDir()); String locale = tocFile.getLocale(); String pluginID = HrefUtil.getPluginIDFromHref(dir); if (pluginID == null) { return new String[0]; || pluginDesc.getState() == Bundle.UNINSTALLED) return new String[0]; String directory = HrefUtil.getResourcePathFromHref(dir); if (directory == null) { for (Iterator<String> it = paths.iterator(); it.hasNext();) { String href = "/" + pluginID + "/" + it.next(); //$NON-NLS-1$//$NON-NLS-2$ href = HrefUtil.normalizeDirectoryPath(href); result.add(href);
/** * Creates /pluginid/directory from directory name */ public static String normalizeDirectoryHref(String pluginID, String dir) { // "" is treated as if extra directory was not provided if (dir == null || dir.length() <= 0) return null; // "." means all the files in the plugin if (".".equals(dir)) //$NON-NLS-1$ dir = ""; //$NON-NLS-1$ // remove not needed trailing separator if (dir.length() > 0 && dir.lastIndexOf('/') == dir.length() - 1) { dir = dir.substring(0, dir.length() - 1); } return normalizeHref(pluginID, dir); }
@Override public short handle(UAElement element, String id) { if (element instanceof Link) { Link link = (Link)element; String toc = link.getToc(); if (toc != null) { TocContribution srcContribution = getContribution(id); linkedContributionIds.put(HrefUtil.normalizeHref(srcContribution.getContributorId(), toc), id); } } return UNHANDLED; } }
private boolean hasValidLinkTo(TocContribution contrib) { String linkTo = contrib.getLinkTo(); if (linkTo != null) { String normalized = HrefUtil.normalizeHref(contrib.getContributorId(), linkTo); int index = normalized.indexOf('#'); if (index != -1) { String id = normalized.substring(0, index); String anchorId = normalized.substring(index + 1); return hasAnchor(id, anchorId); } } return false; }
String linkTo = srcContribution.getLinkTo(); if (linkTo != null) { String destAnchorPath = HrefUtil.normalizeHref(srcContribution.getContributorId(), linkTo); ITocContribution[] array = contributionsByLinkTo.get(destAnchorPath); if (array == null) {
@Override public short handle(UAElement element, String id) { if (element instanceof Topic) { Topic topic = (Topic)element; String href = topic.getHref(); if (href != null) { int index = id.indexOf('/', 1); if (index != -1) { String pluginId = id.substring(1, index); topic.setHref(HrefUtil.normalizeHref(pluginId, href)); } } String title = element.getAttribute("title"); //$NON-NLS-1$ if (title != null) { topic.setLabel(title); } } return UNHANDLED; } }
if (index != -1) { String pluginId = id.substring(1, index); topic.setHref(HrefUtil.normalizeHref(pluginId, href));
@Override public short handle(UAElement element, String id) { if (element instanceof Link) { Link link = (Link)element; UAElement parent = link.getParentElement(); if (parent != null) { String toc = link.getToc(); if (toc != null) { TocContribution destContribution = getContribution(id); TocContribution srcContribution = getContribution(HrefUtil.normalizeHref(destContribution.getContributorId(), toc)); if (srcContribution != null) { process(srcContribution); IUAElement[] children = srcContribution.getToc().getChildren(); for (int i=0;i<children.length;++i) { parent.insertBefore((UAElement)children[i], link); } addExtraDocuments(destContribution, srcContribution.getExtraDocuments()); } parent.removeChild(link); } } return HANDLED_SKIP; } return UNHANDLED; } }
public TocContribution parse(TocFile tocFile) throws IOException, SAXException, ParserConfigurationException { if (reader == null) { reader = new DocumentReader(); } try (InputStream in = tocFile.getInputStream()) { if (in != null) { Toc toc = (Toc) reader.read(in); TocContribution contribution = new TocContribution(); contribution.setCategoryId(tocFile.getCategory()); contribution.setContributorId(tocFile.getPluginId()); contribution.setExtraDocuments(DocumentFinder.collectExtraDocuments(tocFile)); contribution.setId(HrefUtil.normalizeHref(tocFile.getPluginId(), tocFile.getFile())); contribution.setLocale(tocFile.getLocale()); contribution.setToc(toc); contribution.setPrimary(tocFile.isPrimary()); return contribution; } else { throw new FileNotFoundException(); } } } }