This project has retired. For details please refer to its Attic page.
TypeDefinition xref

1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   * http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing,
13   * software distributed under the License is distributed on an
14   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   * KIND, either express or implied.  See the License for the
16   * specific language governing permissions and limitations
17   * under the License.
18   */
19  package org.apache.chemistry.opencmis.commons.definitions;
20  
21  import java.io.Serializable;
22  import java.util.Map;
23  
24  import org.apache.chemistry.opencmis.commons.data.ExtensionsData;
25  import org.apache.chemistry.opencmis.commons.enums.BaseTypeId;
26  
27  /**
28   * Base type definition interface.
29   * 
30   * @author <a href="mailto:fmueller@opentext.com">Florian M&uuml;ller</a>
31   * 
32   */
33  public interface TypeDefinition extends Serializable, ExtensionsData {
34  
35      /**
36       * Returns the type id.
37       * 
38       * @return the type id
39       */
40      String getId();
41  
42      /**
43       * Returns the local name.
44       * 
45       * @return the local name
46       */
47      String getLocalName();
48  
49      /**
50       * Returns the local namespace.
51       * 
52       * @return the local namespace
53       */
54      String getLocalNamespace();
55  
56      /**
57       * Returns the display name.
58       * 
59       * @return the display name
60       */
61      String getDisplayName();
62  
63      /**
64       * Returns the query name
65       * 
66       * @return the query name
67       */
68      String getQueryName();
69  
70      /**
71       * Returns the property description.
72       * 
73       * @return returns the description
74       */
75      String getDescription();
76  
77      /**
78       * Returns the base object type id.
79       * 
80       * @return the base object type id
81       */
82      BaseTypeId getBaseTypeId();
83  
84      /**
85       * Returns the parent type id.
86       * 
87       * @return the parent type id or <code>null</code> if the type is a base
88       *         type
89       */
90      String getParentTypeId();
91  
92      /**
93       * Returns if an object of this type can be created.
94       * 
95       * @return <code>true</code> if an object of this type can be created;
96       *         <code>false</code> if creation of objects of this type is not
97       *         possible; <code>null</code> - unknown (noncompliant repository)
98       */
99      Boolean isCreatable();
100 
101     /**
102      * Returns if an object of this type can be filed.
103      * 
104      * @return <code>true</code> if an object of this type can be filed;
105      *         <code>false</code> if an object of this type cannot be filed;
106      *         <code>null</code> - unknown (noncompliant repository)
107      */
108     Boolean isFileable();
109 
110     /**
111      * Returns if this type is queryable.
112      * 
113      * @return <code>true</code> if this type is queryable; <code>false</code>
114      *         if this type is not queryable; <code>null</code> - unknown
115      *         (noncompliant repository)
116      */
117     Boolean isQueryable();
118 
119     /**
120      * Returns if this type is full text indexed.
121      * 
122      * @return <code>true</code> if this type is full text indexed;
123      *         <code>false</code> if this type is not full text indexed;
124      *         <code>null</code> - unknown (noncompliant repository)
125      */
126     Boolean isFulltextIndexed();
127 
128     /**
129      * Returns if this type is included in queries that query the super type.
130      * 
131      * @return <code>true</code> if this type is included; <code>false</code> if
132      *         this type is not included; <code>null</code> - unknown
133      *         (noncompliant repository)
134      */
135     Boolean isIncludedInSupertypeQuery();
136 
137     /**
138      * Returns if objects of this type are controllable by policies.
139      * 
140      * @return <code>true</code> if objects are controllable by policies;
141      *         <code>false</code> if objects are not controllable by policies;
142      *         <code>null</code> - unknown (noncompliant repository)
143      */
144     Boolean isControllablePolicy();
145 
146     /**
147      * Returns if objects of this type are controllable by ACLs.
148      * 
149      * @return <code>true</code> if objects are controllable by ACLs;
150      *         <code>false</code> if objects are not controllable by ACLs;
151      *         <code>null</code> - unknown (noncompliant repository)
152      */
153     Boolean isControllableAcl();
154 
155     /**
156      * Returns the property definitions of this type.
157      * 
158      * @return the property definitions or <code>null</code> if the property
159      *         definitions were not requested
160      */
161     Map<String, PropertyDefinition<?>> getPropertyDefinitions();
162 }