1 /*
2 * ====================
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
4 *
5 * Copyright 2008-2009 Sun Microsystems, Inc. All rights reserved.
6 *
7 * The contents of this file are subject to the terms of the Common Development
8 * and Distribution License("CDDL") (the "License"). You may not use this file
9 * except in compliance with the License.
10 *
11 * You can obtain a copy of the License at
12 * http://IdentityConnectors.dev.java.net/legal/license.txt
13 * See the License for the specific language governing permissions and limitations
14 * under the License.
15 *
16 * When distributing the Covered Code, include this CDDL Header Notice in each file
17 * and include the License file at identityconnectors/legal/license.txt.
18 * If applicable, add the following below this CDDL Header, with the fields
19 * enclosed by brackets [] replaced by your own identifying information:
20 * "Portions Copyrighted [year] [name of copyright owner]"
21 * ====================
22 */
23 package org.identityconnectors.framework.spi.operations;
24
25 import org.identityconnectors.framework.common.objects.Schema;
26 import org.identityconnectors.framework.common.objects.filter.AbstractFilterTranslator;
27 import org.identityconnectors.framework.spi.Connector;
28
29 /**
30 * Implement this interface to allow the Connector to describe which types of objects
31 * the Connector manages on the target resource (and which operations
32 * and which options the Connector supports for each type of object).
33 * @param T The result type of the translator.
34 * @see AbstractFilterTranslator For more information
35 */
36 public interface SchemaOp extends SPIOperation {
37
38 /**
39 * Describes the types of objects this {@link Connector} supports. This
40 * method is considered an operation since determining supported objects may
41 * require configuration information and allows this determination to be
42 * dynamic.
43 * <p>
44 * The special {@link org.identityconnectors.framework.common.objects.Uid} attribute
45 * should never appear in the schema, as it is not a true attribute of an object,
46 * rather a reference to it. If your resource object-class has a writable unique id attribute
47 * that is different than its {@link org.identityconnectors.framework.common.objects.Name},
48 * then your schema should contain a resource-specific attribute that represents this unique id.
49 * For example, a Unix account object might contain <I>unix_uid</I>.
50 *
51 * @return basic schema supported by this {@link Connector}.
52 */
53 Schema schema();
54 }