/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
*
* Copyright (c) 2005 Sun Microsystems Inc. All Rights Reserved
*
* The contents of this file are subject to the terms
* of the Common Development and Distribution License
* (the License). You may not use this file except in
* compliance with the License.
*
* You can obtain a copy of the License at
* https://opensso.dev.java.net/public/CDDLv1.0.html or
* opensso/legal/CDDLv1.0.txt
* See the License for the specific language governing
* permission and limitations under the License.
*
* When distributing Covered Code, include this CDDL
* Header Notice in each file and include the License file
* at opensso/legal/CDDLv1.0.txt.
* If applicable, add the following below the CDDL Header,
* with the fields enclosed by brackets [] replaced by
* your own identifying information:
* "Portions Copyrighted [year] [name of copyright owner]"
*
* $Id: Guid.java,v 1.4 2009/01/28 05:34:50 ww203982 Exp $
*
* Portions Copyright 2015 ForgeRock AS.
*/
package com.iplanet.ums;
import org.forgerock.opendj.ldap.DN;
/**
* This class represents an LDAP entry and it provides
* access to the ID (dn) and GUID of the given name. Every persistent object
* (that is, entry in the Directory server) has a GUID (Globally Unique
* Identifier) associated with it. Upon doing a getGuid() (getGuid() is a method
* in the PersistentObject class) on an LDAP entry, this GUID object would be
* returned (not a DN string or a guid in the LDAP sense). Methods of the Guid
* object could then be used to get the actual DN, etc.
*
* @supported.all.api
*/
public class Guid {
// holds the LDAP dn for the LDAP entry associated with this Guid object
private DN _dn;
// holds the unique ID for the LDAP entry associated with this Guid object
private long _uniqueId;
/**
* Constructs a Guid object from the specified distinguished name.
*
* @param dn
* string representation of the distinguished name
*/
public Guid(String dn) {
_dn = DN.valueOf(dn);
_uniqueId = -1;
}
/**
* Constructs a Guid object from the specified unique ID.
*
* @param id
* unique ID
*/
public Guid(long id) {
_dn = DN.valueOf("");
_uniqueId = id;
}
/**
* Constructs a Guid object from the specified distinguished name and unique
* ID.
*
* @param dn
* string representation of the distinguished name
* @param id
* unique ID
*/
public Guid(String dn, long id) {
_dn = DN.valueOf(dn);
_uniqueId = id;
}
/**
* Returns the string representation of the distinguished name.
*
* @return the string representation of the distinguished name
*/
public String getDn() {
return _dn.toString();
}
/**
* Sets the dn for this object. Note that the value is not persisted in
* LDAP.
*
* @param dn
* string representation of the distinguished name
*/
protected void setDn(String dn) {
_dn = DN.valueOf(dn);
}
/**
* Returns the nsuniqueID name in the Guid object associated with an LDAP
* entry.
*
* @return the nsuniqueID name in the Guid object associated with an LDAP
* entry
*/
public long getId() {
return _uniqueId;
}
/**
* Sets the nsuniqueID name in the Guid object associated with an LDAP entry
* Note that the value is not persisted in LDAP.
*
* @param id
* the nsuniqueID name
*/
protected void setId(long id) {
_uniqueId = id;
}
/**
* Determines if the current Guid is equal to the specified Guid.
*
* @param guid
* Guid to compare against the current Guid
* @return true if the two Guids are the same
*/
public boolean equals(Guid guid) {
return _dn.equals(DN.valueOf(guid.getDn()));
}
/**
* Compares two dn's for equality.
*
* @param dn1
* the first dn to compare
* @param dn2
* the second dn to compare
* @return true if the two dn's are equal
*/
static boolean equals(String dn1, String dn2) {
return DN.valueOf(dn1).equals(DN.valueOf(dn2));
}
/**
* Returns the String form of this Guid object.
*
* @return the string representation of the Guid
*/
public String toString() {
return _dn.toString();
// For future use
// StringBuffer buff = new StringBuffer();
// buff.append("DN : " + _dn + "\n");
// buff.append("ID : " + _uniqueId + "\n");
// return buff.toString();
}
}