1 /** 2 * 3 * Copyright (C) 2011 Cloud Conscious, LLC. <info@cloudconscious.com> 4 * 5 * ==================================================================== 6 * Licensed under the Apache License, Version 2.0 (the "License"); 7 * you may not use this file except in compliance with the License. 8 * 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, software 13 * distributed under the License is distributed on an "AS IS" BASIS, 14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 * See the License for the specific language governing permissions and 16 * limitations under the License. 17 * ==================================================================== 18 */ 19 package org.jclouds.blobstore.domain; 20 21 import java.net.URI; 22 23 import javax.annotation.Nullable; 24 25 import org.jclouds.blobstore.domain.internal.MutableBlobMetadataImpl; 26 import org.jclouds.io.MutableContentMetadata; 27 28 import com.google.inject.ImplementedBy; 29 30 /** 31 * System and user Metadata for the {@link Blob}. 32 * 33 * @author Adrian Cole 34 */ 35 @ImplementedBy(MutableBlobMetadataImpl.class) 36 public interface MutableBlobMetadata extends BlobMetadata, MutableStorageMetadata { 37 /** 38 * {@inheritDoc} 39 */ 40 @Override 41 MutableContentMetadata getContentMetadata(); 42 43 /** 44 * @see BlobMetadata#getContentMetadata 45 */ 46 void setContentMetadata(MutableContentMetadata md); 47 48 /** 49 * @see BlobMetadata#getPublicUri 50 */ 51 void setPublicUri(@Nullable URI publicUri); 52 53 /** 54 * @see BlobMetadata#getContainer 55 */ 56 void setContainer(@Nullable String container); 57 }