View Javadoc

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  }