/* * Copyright (C) 2012 Google Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of * the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations under * the License. */ package interactivespaces.domain.basic; import interactivespaces.domain.PersistedObject; import java.io.Serializable; import java.util.Date; import java.util.List; import java.util.Map; /** * An activity which can be run in the space. * * <p> * The identifying name must be globally unique, but be vaguely readable, e.g. * com.google.blobtracker * * @author Keith M. Hughes */ public interface Activity extends PersistedObject, Serializable { /** * Get the identifying name for the activity. * * @return The identifying name */ String getIdentifyingName(); /** * Set the identifying name for the activity. * * @param name * The identifying name */ void setIdentifyingName(String name); /** * Get the version for the activity. * * @return The version */ String getVersion(); /** * Set the version for the activity. * * @param version * The version */ void setVersion(String version); /** * Get the descriptive name for the activity. * * @return The descriptive name */ String getName(); /** * Set the descriptive name for the activity. * * @param name * The descriptive name */ void setName(String name); /** * Get the description of the activity. * * @return the description. Can be {@code null}. */ String getDescription(); /** * Set the description of the activity. * * @param description * the description. Can be {@code null}. */ void setDescription(String description); /** * Get when the activity was last uploaded into the master. * * @return the date the activity was last loaded. */ Date getLastUploadDate(); /** * Set when the activity was last uploaded into the master. * * @param lastUploadDate * the last upload date, can be {@code null} */ void setLastUploadDate(Date lastUploadDate); /** * Get when the activity was last started. * * @return the date the activity was last started. */ Date getLastStartDate(); /** * Set when the activity was last started. * * @param lastStartDate * the last start date, can be {@code null} */ void setLastStartDate(Date lastStartDate); /** * Get the hash value of the activity bundle. * * @return the date the activity was last loaded. */ String getBundleContentHash(); /** * Set the hash value of the activity bundle. * * @param bundleContentHash * the hash value for the activity bundle. */ void setBundleContentHash(String bundleContentHash); /** * Set dependencies to the activity. * * @param dependencies * the dependencies to set */ void setDependencies(List<ActivityDependency> dependencies); /** * Get a list of all dependencies the activity has. * * @return list of activity dependencies */ List<? extends ActivityDependency> getDependencies(); /** * Set the metadata for the activity. * * <p> * This removes the old metadata completely. * * @param metadata * the metadata for the activity (can be {@link null} */ void setMetadata(Map<String, Object> metadata); /** * Get the metadata for the activity. * * @return the activity's meta data */ Map<String, Object> getMetadata(); }