package kr.ac.kaist.resl.lilliput.rest;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
import org.restlet.Application;
import org.restlet.Restlet;
import org.restlet.routing.Router;
public class LilliputAPI extends Application {
private final ConcurrentMap<String, String> items = new ConcurrentHashMap<String, String>();
@Override
public synchronized Restlet createInboundRoot() {
// Create a router Restlet that defines routes.
Router router = new Router(getContext());
router.attach("/LatencyTest", LatencyTest.class);
//Atomic APIs
//#1 all social relationship
router.attach("/REL/allRelationships", AllSocialRelationship.class);
//#4 all data type
router.attach("/DataType/allDatatypeProperties", AllDataType.class);
//#2 all social relationship realted to EPC
router.attach("/REL/{epc}", RelatedRelationship.class);
//#5 all datatype related to EPC
router.attach("/DataType/{ind_name}", RelatedDataType.class);
//#7 getting UtilizeDatabase
router.attach("/Information/{epc}", UtilizeDatabase.class);
//#6 utilize datatype
router.attach("/DataType/{ind_name}/{property}", UtilizeDataType.class);
//#8 STIS EPCIS
router.attach("/STIS/{epc}", STISBroker.class);
//#3 utilizeRelationship
router.attach("/REL/{subject}/{property}/{object}", UtilizeRelationship.class);
//Composite APIs
/*
router.attach("/KDTest1/{uid}", KDTest1.class);
router.attach("/KDTest2/{uid}", KDTest2.class);
//#1 login 1/login
router.attach("/login/{uid}/{password}", Login.class);
//#2
// Defines a route for the resource "list of items"
//#3 get All socialRelationships
//router.attach("/socialRelationships", SocialRelationships.class);
//#24 All Relationships
router.attach("/allRelationships", AllRelationships.class);
//#4 get All Individuals
//router.attach("/{uid}/allIndividuals", RelatedIndividuals.class);
//#5 get All EPCs
//router.attach("/{uid}/allEPCs", RelatedEPCs.class);
//#6 get my Information
//router.attach("/{uid}", Information.class);
//#20 get my place ( epc )
router.attach("/{uid}/myPlace", GetMyPlace.class);
//#21 get my People ( epc )
router.attach("/{uid}/myPeople", GetMyPeople.class);
//#22 get my things ( place view )
router.attach("/{uid}/myThings", GetMyThings.class);
//#23 get my all
router.attach("/{uid}/myAll", GetAll.class);
//#9 get the place events 4/events
//router.attach("/{uid}/events", PlaceEvents.class );
//#10 get the newest events 4/eventOne
//router.attach("/{uid}/event", PlaceEvent.class );
//#11 presence Reasoning On 4/presenceReasoning
//router.attach("/{uid}/presenceReasoning", PresenceReasoning.class);
//#11 sensor On 4/spaceEventOn
//router.attach("/{uid}/spaceEventOn", SpaceEventOn.class);
//#12: get the presence list 4/presenceList
//router.attach("/{uid}/presenceList", PresenceOfPlace.class);
//#7 get all sociallist and informations ( type ac social relationships ) 1/3
// router.attach("/{subject}/{object}", BetSocialRelationships.class );
//#8 on off the social relationships between them 1/3/relationshipname
//#26 STIS broker
router.attach("/STIS/{epc}", STISBroker.class);
router.attach("/Push/{service}", PushService.class);
router.attach("/Subscribe/{service}", PubSubService.class);
//#24 relationship toggling
router.attach("/Toggle/{subject}/{property}/{object}", ToggleRelationship.class);
//#25 inser datatype property
router.attach("/Data/{target}/{property}", InsertDataType.class);
*/
//End
return router;
}
public ConcurrentMap<String, String> getItems() {
return items;
}
}