/******************************************************************************* * Copyright (c) 2010 Martin Schnabel <mb0@mb0.org>. * 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 org.axdt.asdoc.util; import org.axdt.asdoc.model.AsdocElement; import org.axdt.asdoc.model.AsdocMember; import org.axdt.asdoc.model.AsdocPackage; import org.axdt.asdoc.model.AsdocParameter; import org.axdt.asdoc.model.AsdocRoot; import org.axdt.asdoc.model.AsdocType; public abstract class AsdocUrlHelper { public abstract String rootUrl(AsdocRoot root); public abstract String packageUrl(AsdocPackage pack); public abstract String typeUrl(AsdocType type); public abstract String memberUrl(AsdocMember member); public abstract String paramUrl(AsdocParameter param); public String url(AsdocElement elem) { if (elem instanceof AsdocPackage) { if (elem instanceof AsdocRoot) return rootUrl((AsdocRoot) elem); return packageUrl((AsdocPackage) elem); } if (elem instanceof AsdocType) return typeUrl((AsdocType) elem); if (elem instanceof AsdocMember) return memberUrl((AsdocMember) elem); if (elem instanceof AsdocParameter) return paramUrl((AsdocParameter) elem); return null; } public String check(String uri) { return uri.endsWith("/") ? uri : uri+"/"; } public static class NULL extends AsdocUrlHelper { public String rootUrl(AsdocRoot root) { return null; } public String packageUrl(AsdocPackage pack) { return null; } public String typeUrl(AsdocType type) { return null; } public String memberUrl(AsdocMember member) { return null; } public String paramUrl(AsdocParameter param) { return null; } } }