/* * Copyright © 2013 Nokia Corporation. All rights reserved. * Nokia and Nokia Connecting People are registered trademarks of Nokia Corporation. * Oracle and Java are trademarks or registered trademarks of Oracle and/or its * affiliates. Other product and company names mentioned herein may be trademarks * or trade names of their respective owners. * See LICENSE.TXT for license information. */ package com.nokia.example.bcexchanger.comm; import javax.obex.Operation; /** * * This is the abstract base class for the all states of the * communication state machine. Each state is implementing methods * which are can be executed in that particular case. * * Classes IdleState, InquiryState, ServiceDiscoveryState, * ReceiveState and SendState inherit from this class * * @see Design patterns: State * */ public abstract class ExchangerState { protected ExchangerStateParent parent; /** * Implements OBEX GET command * <p> * Implements server handling of the OBEX GET command * * @param op - * OBEX operation class * @return - OBEX response code * @see javax.obex.ServerRequestHandler */ abstract public int onGet(Operation op); /** * Implements OBEX PUT command * <p> * Implements server handling of the OBEX PUT command * * @param op - * OBEX operation class * @return - OBEX response code * @see javax.obex.ServerRequestHandler */ abstract public int onPut(Operation op); /** * Implements actions related to starting sending process * <p> * Implements reaction of the state on command to start sending * process * * @exception Exception - * if any immediate error occur * @see example.BCExchanger.comm.ExchangerComm */ abstract public void startSending(int oper) throws Exception; /** * Implements actions related to canceling sending process * <p> * Implements reaction of the state on command to cancel sending * process * * @see example.BCExchanger.comm.ExchangerComm */ abstract public void cancelSending(); /** * Constructor * * @param - * _parent - the class which nests the current state of the * communication machine */ public ExchangerState(ExchangerStateParent _parent) { parent = _parent; } }