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.client.api; 20 21 import java.util.GregorianCalendar; 22 import java.util.List; 23 24 import org.apache.chemistry.opencmis.commons.enums.BaseTypeId; 25 26 /** 27 * Accessors to CMIS object properties. 28 * <p> 29 * A property might not be available because either the repository didn't 30 * provide it or a property filter was used to retrieve this object. 31 * <p> 32 * The property values represent a snapshot of the object when it was loaded. 33 * The objects and its properties can be out-of-date if the object has been 34 * modified in the repository. 35 * <p> 36 * Implementations of this interface might alter property values without 37 * updating the object in the repository. In this case, the values returned by 38 * these accessors don't reflect the state of the object in the repository. 39 */ 40 public interface CmisObjectProperties { 41 42 /** 43 * Returns a list of all available CMIS properties. 44 */ 45 List<Property<?>> getProperties(); 46 47 /** 48 * Returns the requested property. If the property is not available, 49 * <code>null</code> is returned. 50 */ 51 <T> Property<T> getProperty(String id); 52 53 /** 54 * Returns the value of the requested property. If the property is not 55 * available, <code>null</code> is returned. 56 */ 57 <T> T getPropertyValue(String id); 58 59 // convenience accessors 60 61 /** 62 * Returns the name of this CMIS object (CMIS property 63 * <code>cmis:name</code>). 64 */ 65 String getName(); 66 67 /** 68 * Returns the user who created this CMIS object (CMIS property 69 * <code>cmis:createdBy</code>). 70 */ 71 String getCreatedBy(); 72 73 /** 74 * Returns the timestamp when this CMIS object has been created (CMIS 75 * property <code>cmis:creationDate</code>). 76 */ 77 GregorianCalendar getCreationDate(); 78 79 /** 80 * Returns the user who modified this CMIS object (CMIS property 81 * <code>cmis:lastModifiedBy</code>). 82 */ 83 String getLastModifiedBy(); 84 85 /** 86 * Returns the timestamp when this CMIS object has been modified (CMIS 87 * property <code>cmis:lastModificationDate</code>). 88 */ 89 GregorianCalendar getLastModificationDate(); 90 91 /** 92 * Returns the id of the base type of this CMIS object (CMIS property 93 * <code>cmis:baseTypeId</code>). 94 */ 95 BaseTypeId getBaseTypeId(); 96 97 /** 98 * Returns the base type of this CMIS object (object type identified by 99 * <code>cmis:baseTypeId</code>). 100 */ 101 ObjectType getBaseType(); 102 103 /** 104 * Returns the type of this CMIS object (object type identified by 105 * <code>cmis:objectTypeId</code>). 106 */ 107 ObjectType getType(); 108 109 /** 110 * Returns the change token (CMIS property <code>cmis:changeToken</code>). 111 */ 112 String getChangeToken(); 113 }