org.identityconnectors.framework.common.objects.Name Maven / Gradle / Ivy
/*
* ====================
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
*
* Copyright 2008-2009 Sun Microsystems, Inc. All rights reserved.
*
* The contents of this file are subject to the terms of the Common Development
* and Distribution License("CDDL") (the "License"). You may not use this file
* except in compliance with the License.
*
* You can obtain a copy of the License at
* http://IdentityConnectors.dev.java.net/legal/license.txt
* See the License for the specific language governing permissions and limitations
* under the License.
*
* When distributing the Covered Code, include this CDDL Header Notice in each file
* and include the License file at identityconnectors/legal/license.txt.
* If applicable, add the following below this CDDL Header, with the fields
* enclosed by brackets [] replaced by your own identifying information:
* "Portions Copyrighted [year] [name of copyright owner]"
* ====================
*/
package org.identityconnectors.framework.common.objects;
import org.identityconnectors.common.CollectionUtil;
/**
* A single-valued attribute that represents the user-friendly identifier
* of an object on a target resource.
* For instance, the name of an Account
will most often be its loginName.
* The value of Name
need not be unique within ObjectClass
.
* In LDAP, for example, the Name
could be the Common Name (CN)
.
* Contrast this with {@link Uid}, which is intended to be a unique identifier
* (and, if possible, immutable):
*
* - When an application creates an object, the application uses the
Name
* attribute to supply the user-friendly identifier for the object.
* (Because the create operation returns the Uid
as its result,
* the application cannot know the Uid
value beforehand.)
*
* - When an application renames an object, this changes the
Name
of the object.
* (For some target resources that do not have a separate internal identifier,
* this might also change the Uid
.
* However, the application would never attempt to change the Uid
directly.)
*
*
* NOTE: For some connectors, Name
and Uid
will be equivalent.
* If a target resource does not support a separate, internal identifier
* for an object, then the create() method can simply return a Uid
* that has the same string value as the Name
attribute.
* The DatabaseTable connector is an example of a connector
* that might use the same value for both Name
and Uid
.
*/
public final class Name extends Attribute {
public static final String NAME = AttributeUtil.createSpecialName("NAME");
public static final AttributeInfo INFO =
new AttributeInfoBuilder(NAME)
.setRequired(true)
.build();
public Name(String value) {
super(NAME, CollectionUtil.