/**
* Copyright (c) 2011, SOCIETIES Consortium (WATERFORD INSTITUTE OF TECHNOLOGY (TSSG), HERIOT-WATT UNIVERSITY (HWU), SOLUTA.NET
* (SN), GERMAN AEROSPACE CENTRE (Deutsches Zentrum fuer Luft- und Raumfahrt e.V.) (DLR), Zavod za varnostne tehnologije
* informacijske druzbe in elektronsko poslovanje (SETCCE), INSTITUTE OF COMMUNICATION AND COMPUTER SYSTEMS (ICCS), LAKE
* COMMUNICATIONS (LAKE), INTEL PERFORMANCE LEARNING SOLUTIONS LTD (INTEL), PORTUGAL TELECOM INOVACAO, SA (PTIN), IBM Corp.,
* INSTITUT TELECOM (ITSUD), AMITEC DIACHYTI EFYIA PLIROFORIKI KAI EPIKINONIES ETERIA PERIORISMENIS EFTHINIS (AMITEC), TELECOM
* ITALIA S.p.a.(TI), TRIALOG (TRIALOG), Stiftelsen SINTEF (SINTEF), NEC EUROPE LTD (NEC))
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following
* conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following
* disclaimer in the documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
* BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
* SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package org.societies.android.api.internal.context;
import java.io.Serializable;
import java.util.List;
import org.societies.android.api.context.ICtxClient;
import org.societies.api.schema.context.model.CtxAssociationBean;
import org.societies.api.schema.context.model.CtxAttributeBean;
import org.societies.api.schema.context.model.CtxAttributeIdentifierBean;
import org.societies.api.schema.context.model.CtxEntityBean;
import org.societies.api.schema.context.model.CtxEntityIdentifierBean;
import org.societies.api.schema.context.model.CtxIdentifierBean;
import org.societies.api.schema.context.model.CtxModelObjectBean;
import org.societies.api.schema.context.model.IndividualCtxEntityBean;
import org.societies.android.api.context.CtxException;
import org.societies.api.schema.context.model.CtxModelTypeBean;
import org.societies.android.api.css.manager.IServiceManager;
/**
* This interface provides access to current, past and future context data. The
* past context refers to the data stored in the context history database. The
* future context information is provided on the fly based on context
* prediction methods. The Context Broker also supports distributed context
* queries; it is a gateway to context data and decides whether the local DB, a
* remote DB or the Context Inference Management need to be contacted to
* retrieve the requested context data.
*
* @author <a href="mailto:nicolas.liampotis@cn.ntua.gr">Nicolas Liampotis</a> (ICCS)
* @since 0.0.2
*/
public interface IInternalCtxClient extends ICtxClient, IServiceManager {
//Intents
public static final String INTENT_RETURN_VALUE_KEY = ICtxClient.INTENT_RETURN_VALUE_KEY;
public static final String INTENT_RETURN_STATUS_KEY = ICtxClient.INTENT_RETURN_STATUS_KEY;
public static final String INTENT_EXCEPTION_VALUE_KEY = ICtxClient.INTENT_EXCEPTION_VALUE_KEY;
public static final String CREATE_ASSOCIATION = ICtxClient.CREATE_ASSOCIATION;
public static final String CREATE_ATTRIBUTE = ICtxClient.CREATE_ATTRIBUTE;
public static final String CREATE_ENTITY = ICtxClient.CREATE_ENTITY;
public static final String LOOKUP_ENTITIES = ICtxClient.LOOKUP_ENTITIES;
public static final String LOOKUP = ICtxClient.LOOKUP;
public static final String REMOVE = ICtxClient.REMOVE;
public static final String RETRIEVE = ICtxClient.RETRIEVE;
public static final String UPDATE = ICtxClient.UPDATE;
public static final String UPDATE_ATTRIBUTE = "org.societies.android.platform.internalctxclient.UPDATE_ATTRIBUTE";
public static final String UPDATE_ATTRIBUTE_VALUE_METRIC = "org.societies.android.platform.internalctxclient.UPDATE_ATTRIBUTE_VALUE_METRIC";
//Array of interface method signatures
String methodsArray [] = {"createEntity(String client, org.societies.api.schema.identity.RequestorBean requestor, String targetCss, String type)",
"createAttribute(String client, org.societies.api.schema.identity.RequestorBean requestor, org.societies.api.schema.context.model.CtxEntityIdentifierBean scope, String type)",
"createAssociation(String client, org.societies.api.schema.identity.RequestorBean requestor, String targetCss, String type)",
"lookup(String client, org.societies.api.schema.identity.RequestorBean requestor, String target, org.societies.api.schema.context.model.CtxModelTypeBean modelType, String type)",
"lookup(String client, org.societies.api.schema.identity.RequestorBean requestor, org.societies.api.schema.context.model.CtxEntityIdentifierBean entityId, org.societies.api.schema.context.model.CtxModelTypeBean modelType, String type)",
"lookupEntities(String client, org.societies.api.schema.identity.RequestorBean requestor, String targetCss, String entityType, String attribType, Serializable minAttribValue, Serializable maxAttribValue)",
"remove(String client, org.societies.api.schema.identity.RequestorBean requestor, org.societies.api.schema.context.model.CtxIdentifierBean identifier)",
"retrieve(String client, org.societies.api.schema.identity.RequestorBean requestor, org.societies.api.schema.context.model.CtxIdentifierBean identifier)",
"retrieveIndividualEntityId(String client, org.societies.api.schema.identity.RequestorBean requestor, String cssId)",
"retrieveCommunityEntityId(String client, org.societies.api.schema.identity.RequestorBean requestor, String cisId)",
"update(String client, org.societies.api.schema.identity.RequestorBean requestor, org.societies.api.schema.context.model.CtxModelObjectBean object)",
"startService()",
"stopService()",
"createEntity(String client, String targetCss, String type)",
"createAttribute(String client, org.societies.api.schema.context.model.CtxEntityIdentifierBean scope, String type)",
"createAssociation(String client, String targetCss, String type)",
"lookup(String client, String target, org.societies.api.schema.context.model.CtxModelTypeBean modelType, String type)",
"lookup(String client, org.societies.api.schema.context.model.CtxEntityIdentifierBean entityId, org.societies.api.schema.context.model.CtxModelTypeBean modelType, String type)",
"lookupEntities(String client, String targetCss, String entityType, String attribType, Serializable minAttribValue, Serializable maxAttribValue)",
"remove(String client, org.societies.api.schema.context.model.CtxIdentifierBean identifier)",
"retrieve(String client, org.societies.api.schema.context.model.CtxIdentifierBean identifier)",
"retrieveIndividualEntityId(String client, String cssId)",
"retrieveCommunityEntityId(String client, String cisId)",
"update(String client, org.societies.api.schema.context.model.CtxModelObjectBean object)"
};
/**
* Creates a {@link CtxAssociation} with the specified type on the identified
* CSS.
*
* @param type
* the type of the context association to create
* @throws CtxException
*/
public CtxAssociationBean createAssociation(String client, String type) throws CtxException;
/**
* Creates a {@link CtxAttribute} with the specified type which is associated to
* the identified context entity (scope).
*
* @param scope
* the identifier of the context entity to associate with the new
* attribute
* @param type
* the type of the context attribute to create
* @throws CtxException
*/
public CtxAttributeBean createAttribute(String client, CtxEntityIdentifierBean scope, String type) throws CtxException;
/**
* Creates a {@link CtxEntity} with the specified type on the identified CSS.
*
* @param type
* the type of the context entity to create
* @throws CtxException
*/
public CtxEntityBean createEntity(String client, String type) throws CtxException;
/**
* Looks up for a list of CtxEntities of the specified type, containing the
* specified attributes
*
* @param entityType
* @param attribType
* @param minAttribValue
* @param maxAttribValue
* @throws CtxException
*/
public List<CtxEntityIdentifierBean> lookupEntities(String client, String entityType, String attribType, Serializable minAttribValue, Serializable maxAttribValue) throws CtxException;
/**
* Looks up for a list of CtxModelObjects defined by the CtxModelType (CtxEntity,
* CtxAttribute, CtxAssociation) of the specified type.
*
* @param modelType
* @param type
* @throws CtxException
*/
public List<CtxIdentifierBean> lookup(String client, CtxModelTypeBean modelType, String type) throws CtxException;
/**
* Removes the specified context model object.
*
* @param identifier
* @throws CtxException
*/
public CtxModelObjectBean remove(String client, CtxIdentifierBean identifier) throws CtxException;
/**
* Retrieves the specified context model object.
*
* @param identifier
* @throws CtxException
*/
public CtxModelObjectBean retrieve(String client, CtxIdentifierBean identifier) throws CtxException;
/**
* Updates a single context model object.
*
* @param identifier
* @throws CtxException
*/
public CtxModelObjectBean update(String client, CtxModelObjectBean identifier) throws CtxException;
/**
* Updates the specified attribute.
*
* @param attributeId
* @param value
* @throws CtxException
*/
public CtxAttributeBean updateAttribute(String client, CtxAttributeIdentifierBean attributeId, Serializable value) throws CtxException;
/**
* Updates the specified attribute.
*
* @param attributeId
* @param value
* @param valueMetric
* @throws CtxException
*/
public CtxAttributeBean updateAttribute(String client, CtxAttributeIdentifierBean attributeId, Serializable value,
String valueMetric) throws CtxException;
}