/******************************************************************************* * Copyright (c) 2009 EclipseSource 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: * EclipseSource - initial API and implementation ******************************************************************************/ package org.eclipse.ecf.provider.riena.identity; import org.eclipse.core.runtime.Assert; import org.eclipse.ecf.core.identity.BaseID; public class RienaID extends BaseID { private static final long serialVersionUID = -439251125954095550L; private String url; private int hc; public RienaID(RienaNamespace ns, String url) { super(ns); Assert.isNotNull(url); if (url.startsWith(RienaNamespace.SCHEME + RienaNamespace.SCHEME_SEPARATOR)) { this.url = url .substring((RienaNamespace.SCHEME + RienaNamespace.SCHEME_SEPARATOR) .length()); } else this.url = url; this.hc = (RienaNamespace.SCHEME + RienaNamespace.SCHEME_SEPARATOR + this.url) .hashCode(); } protected int namespaceCompareTo(BaseID o) { if (o == null) return Integer.MIN_VALUE; if (!(o instanceof RienaID)) return Integer.MIN_VALUE; return this.url.compareTo(((RienaID) o).url); } protected boolean namespaceEquals(BaseID o) { if (o == null) return false; if (!(o instanceof RienaID)) return false; return this.url.equals(((RienaID) o).url); } protected String namespaceGetName() { return RienaNamespace.NAME + RienaNamespace.SCHEME_SEPARATOR + this.url; } protected int namespaceHashCode() { return hc; } public String getURL() { return url; } }