/******************************************************************************* * Copyright (c) 2007 Oracle Corporation. * 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: * Oracle - initial API and implementation * ********************************************************************************/ package org.eclipse.jst.jsf.common.metadata.internal; import org.eclipse.core.resources.IProject; /** * Meta data model key descriptor used to lazily load a model when it is required * */ public class ModelKeyDescriptor { private final IProject project; private final String domain; private final String uri; private final String key; /** * Constructor * @param project * @param domain * @param uri */ public ModelKeyDescriptor(final IProject project, final String domain, final String uri){ this.project = project; this.domain = domain; this.uri = fixJSPURIIfNecessary(uri); final String proj = project != null ? project.getName() : "Null"; //$NON-NLS-1$ final StringBuffer buf = new StringBuffer(proj); buf.append(":"); //$NON-NLS-1$ buf.append(this.domain); buf.append(":"); //$NON-NLS-1$ buf.append(this.uri); key = buf.toString(); } //this is a workaround for issue where jsp "uri" may upper or lower cased private String fixJSPURIIfNecessary(final String tempuri) { if (tempuri != null && tempuri.equals("jsp11")) //$NON-NLS-1$ return tempuri.toUpperCase(); return tempuri; } /** * @return domain id */ public final String getDomain(){ return domain; } /** * @return model uri */ public final String getUri(){ return uri; } /** * @return project */ public final IProject getProject(){ return project; } /* (non-Javadoc) * @see java.lang.Object#toString() */ public final String toString(){ return key; } }