/* * Copyright 2003-2010 Tufts University Licensed under the * Educational Community License, Version 2.0 (the "License"); you may * not use this file except in compliance with the License. You may * obtain a copy of the License at * * http://www.osedu.org/licenses/ECL-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an "AS IS" * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express * or implied. See the License for the specific language governing * permissions and limitations under the License. */ /* * Id.java * * Created on October 21, 2003, 4:36 PM */ package tufts.oki.id; import java.lang.*; /** * This is a complete implementation of the osid.shared.Id object. It uses a constant * called IdSource to hold a string which idenfies this particular source of Identifiers. * This makes the Id strings less likely to collide with other systems which use this * implementation. * <p> * The identifier is a string consisting of the IdSource constant concatenated with * the current time (in milliseconds) epxressed as a hex string. * * @author Mark Norton */ public class Id implements org.osid.shared.Id { private static int counter = 0; private String id_str; private String IdSource = "tufts.edu"; /** * Uses current time in milliseconds converted to a hex string as the basis for * a unique identifier. This is appended to an IdSource string. * * @author Mark Norton */ public Id() throws org.osid.shared.SharedException { long now = System.currentTimeMillis(); id_str = IdSource + "-" + java.lang.Long.toHexString(now) + "-" + tufts.oki.id.Id.counter++; } /** * This was taken from the OKI Implementation examples as another way to * create an Id object. There are certain objects in OKI, such as Cabinet and ByteStore * which might use a file name as an idenfiier. This constructor is provided * for that kind of operation, but isn't garaunteed to be globally unique. * * @author OkiImpl_1_0_rc05 * */ public Id(String idString) throws org.osid.shared.SharedException { if (idString == null) { throw new org.osid.shared.SharedException(org.osid.shared.SharedException.NULL_ARGUMENT); } this.id_str = idString; } /** * Get the ID string for this ID object. * * @author Mark Norton * * @return The string form of the id. */ public String getIdString() throws org.osid.shared.SharedException { return id_str; } /** * Check to see if this ID equals the one passed. * * @author Mark Norton * * @return True if this Id is equal to the one passed. */ public boolean isEqual(org.osid.shared.Id id) throws org.osid.shared.SharedException { return id_str.equals(id.getIdString()); } public String toString() { return "Id[" + id_str + "]"; } }