diff options
| author | Paul Buetow <paul@buetow.org> | 2009-02-18 17:33:22 +0000 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2009-02-18 17:33:22 +0000 |
| commit | 4722100cba287b164957c658c2e035783e20c963 (patch) | |
| tree | 35733fd3e50aeeb493e38ceaea83521a4710f0ac /shared/remotecall/ClientRequest.java | |
| parent | 61f7175cc3e51c0afaf63e380d03824a77464ba8 (diff) | |
moved sources
Diffstat (limited to 'shared/remotecall/ClientRequest.java')
| -rw-r--r-- | shared/remotecall/ClientRequest.java | 369 |
1 files changed, 0 insertions, 369 deletions
diff --git a/shared/remotecall/ClientRequest.java b/shared/remotecall/ClientRequest.java deleted file mode 100644 index a6a57a2..0000000 --- a/shared/remotecall/ClientRequest.java +++ /dev/null @@ -1,369 +0,0 @@ -package shared.remotecall; - -import java.util.*; -import java.io.*; -import java.util.regex.*; - -import shared.*; - -/** - * An object of this class is sent from the calendar client to the calendar server each time - * a request is made. This class encapsulates all the needed information so that the server can - * response with a serialized server response object. - * @author buetow - * - */ -public final class ClientRequest extends RemoteCall implements Serializable { - private static final long serialVersionUID = 6L; - private static final Pattern emptyPattern = Pattern.compile("[^\\s]"); - - public static final int REQUEST_EVENTS = 0; - public static final int REQUEST_ALL_EVENTS = 1; - public static final int MODIFY_EVENT = 2; - public static final int DELETE_EVENT = 3; - public static final int ADD_EVENT = 4; - public static final int RELOAD_DATABASE = 5; - public static final int FLUSH_DATABASE = 6; - public static final int SHUTDOWN_SERVER = 7; - public static final int RENAME_CATEGORY = 8; - public static final int DELETE_CATEGORY = 9; - - private int iAction = 0; - private int iNumEventsToRequest; - - private boolean bMainRegexp; - private boolean bCaseInsensitive; - - private Pattern patAll = null; - private Pattern patCategory = null; - private Pattern patDescription = null; - private Pattern patPlace = null; - private Pattern patDate = null; - private Date dateRangeFrom = null; - private Date dateRangeTo = null; - private CalendarEvent event = null; - private String sPassphrase; - private String sString = null; - - /** - * Simple constructor, creates a client request object requesting events up - * from the current date. - */ - public ClientRequest() { - dateRangeFrom = new Date(); - initialize(REQUEST_EVENTS); - } - - /** - * Simple constructor, creates a client request object requesting events up - * from the current date. - * @param iAction Specifies the request type of this request. - */ - public ClientRequest(int iAction) { - dateRangeFrom = new Date(); - initialize(iAction); - } - - /** - * This method initializes some common stuff. Called by each constructor. - * @param iAction Specifies the request type of this request. - */ - private void initialize(int iAction) { - this.iAction = iAction; - this.sPassphrase = Config.getStringValue("passphrase", false); - this.bCaseInsensitive = Config.getBooleanValue("regexp_case_insensitive"); - this.iNumEventsToRequest = Config.getIntValue("client_max_events"); - } - - /** - * This method is needed by the clanedar server to get the type of action requested. - * @param iAction Specifies the action to test against. - * @return Returns true if the specified action ID matches with the action ID of this request object. - */ - public boolean actionIs(int iAction) { - return this.iAction == iAction; - } - - /** - * This method is needed by the calendar server to get the type of action requested. - * @return Returns true if this object requests new events from the server. - */ - public boolean requestsNewEvents() { - return this.iAction < ClientRequest.MODIFY_EVENT; - } - - /** - * This method sets the date range to request. - * @param dateRangeFrom Specifies the beginning date. - * @param dateRangeTo Specifies the ending date. - */ - public void setDateRange(Date dateRangeFrom, Date dateRangeTo) { - this.dateRangeFrom = dateRangeFrom; - this.dateRangeTo = dateRangeTo; - } - - /** - * This method sets a calendar event object to be transfered to the calendar server because the event has been modified. - * @param event Specifies an event to be transfered to the calendar server. - */ - public void setEvent(CalendarEvent event) { - this.event = event; - if (actionIs(ADD_EVENT)) - event.setEventID(-1); - } - - /** - * This method returns the event object. - * @return Returns the calendar event which is stored inside this client request. - */ - public CalendarEvent getEvent() { - return event; - } - - /** - * With this method the client can define the maximum number of events to request. - * @param iNumEvents Specifies the maximum number of events to request. - */ - public void setNumEventsToRequest(int iNumEvents) { - this.iNumEventsToRequest = iNumEvents; - } - - /** - * This method returns the maximum number of events the client wants to request. - * @return Returns the maximum number of events the client wants to request. - */ - public int getNumEventsToRequest() { - return iNumEventsToRequest; - } - - /** - * This method sets if the client contains a regexp from the main session window. - * @param bMainRegexp Set to true if the user used the main regexp field of the main GUI window. - */ - public void setMainRegexp(boolean bMainRegexp) { - this.bMainRegexp = bMainRegexp; - } - - /** - * This method compiles a specific pattern object to match with on the server part after serialization. - * @param sRegexp Compiles a Pattern object with sRegexp as the regular expression. - */ - public void setRegexpAll(String sRegexp) { - if (isEmptyPattern(sRegexp)) - return; - - if (bCaseInsensitive) - patAll = Pattern.compile(sRegexp, Pattern.CASE_INSENSITIVE); - else - patAll = Pattern.compile(sRegexp); - } - - /** - * This method compiles a specific pattern object to match with on the server part after serialization. - * @param sRegexp Compiles a Pattern object with sRegexp as the regular expression. - */ - public void setRegexpCategory(String sRegexp) { - if (isEmptyPattern(sRegexp)) - return; - - if (bCaseInsensitive) - patCategory = Pattern.compile(sRegexp, Pattern.CASE_INSENSITIVE); - else - patCategory = Pattern.compile(sRegexp); - } - - /** - * This method compiles a specific pattern object to match with on the server part after serialization. - * @param sRegexp Compiles a Pattern object with sRegexp as the regular expression. - */ - public void setRegexpDescription(String sRegexp) { - if (isEmptyPattern(sRegexp)) - return; - - if (bCaseInsensitive) - patDescription = Pattern.compile(sRegexp, Pattern.CASE_INSENSITIVE); - else - patDescription = Pattern.compile(sRegexp); - } - - /** - * This method sets a string to be transfered to the netcalendar server. - * @param sString specifies the string to be transfered. - */ - public void setString(String sString) { - this.sString = sString; - } - - /** - * This method returns a string transfered by the netcalendar client. If no string has been transfered, - * null will be returned. - * @return Returns a string transfered by the netcalendar client. - */ - public String getString() { - return sString; - } - - /** - * This method compiles a specific pattern object to match with on the server part after serialization. - * @param sRegexp Compiles a Pattern object with sRegexp as the regular expression. - */ - public void setRegexpPlace(String sRegexp) { - if (isEmptyPattern(sRegexp)) - return; - - if (bCaseInsensitive) - patPlace = Pattern.compile(sRegexp, Pattern.CASE_INSENSITIVE); - else - patPlace = Pattern.compile(sRegexp); - } - - /** - * This method compiles a specific pattern object to match with on the server part after serialization. - * @param sRegexp Compiles a Pattern object with sRegexp as the regular expression. - */ - public void setRegexpDate(String sRegexp) { - if (isEmptyPattern(sRegexp)) - return; - - if (bCaseInsensitive) - patDate = Pattern.compile(sRegexp, Pattern.CASE_INSENSITIVE); - else - patDate = Pattern.compile(sRegexp); - } - - /** - * Checks if a specific calendar event matches this client request. - * @param calendarEvent Specifies the event to match against. - * @return Returns true if the given event matched. Else, false will be returned. - */ - public boolean match(CalendarEvent calendarEvent) { - // If we want to get all events! - if (actionIs(REQUEST_ALL_EVENTS)) - return true; - - // If we use the regex field of the main GUI - if (bMainRegexp) - return calendarEvent.matches(patAll); - - // If we use advanced searching: - if (dateRangeFrom != null) - if (dateRangeFrom.getTime() > calendarEvent.getDate().getTime()) - return false; - - if (dateRangeTo != null) - if (dateRangeTo.getTime() < calendarEvent.getDate().getTime()) - return false; - - if (calendarEvent.matches(patAll) || - (calendarEvent.matchesDescription(patDescription) - && calendarEvent.matchesCategory(patCategory) - && calendarEvent.matchesPlace(patPlace) - && calendarEvent.matchesDateString(patDate))) - return true; - - return false; - } - - /** - * Needed for ojbect serialization (sending part). - * @param objectOutputStream Specifies the output stream to use. - * @throws IOException - */ - private void writeObject(ObjectOutputStream objectOutputStream) - throws IOException { - objectOutputStream.writeInt(iAction); - objectOutputStream.writeInt(iNumEventsToRequest); - objectOutputStream.writeObject(sPassphrase); - objectOutputStream.writeBoolean(bMainRegexp); - objectOutputStream.writeBoolean(bCaseInsensitive); - - super.writeObjectIfDefined(objectOutputStream, sString); - super.writeObjectIfDefined(objectOutputStream, patAll); - super.writeObjectIfDefined(objectOutputStream, patCategory); - super.writeObjectIfDefined(objectOutputStream, patDescription); - super.writeObjectIfDefined(objectOutputStream, patPlace); - super.writeObjectIfDefined(objectOutputStream, patDate); - super.writeObjectIfDefined(objectOutputStream, dateRangeFrom); - super.writeObjectIfDefined(objectOutputStream, dateRangeTo); - super.writeObjectIfDefined(objectOutputStream, event); - } - - /** - * Needed for object serialization (recieving part). - * @param objectInputStream Specifies the input stream to use. - * @throws IOException - * @throws ClassNotFoundException - */ - private void readObject(ObjectInputStream objectInputStream) - throws IOException, ClassNotFoundException { - - iAction = objectInputStream.readInt(); - iNumEventsToRequest = objectInputStream.readInt(); - sPassphrase = (String) objectInputStream.readObject(); - setMainRegexp(objectInputStream.readBoolean()); - bCaseInsensitive = objectInputStream.readBoolean(); - - if (objectInputStream.readBoolean()) - sString = (String) objectInputStream.readObject(); - - if (objectInputStream.readBoolean()) - patAll = (Pattern) objectInputStream.readObject(); - - if (objectInputStream.readBoolean()) - patCategory = (Pattern) objectInputStream.readObject(); - - if (objectInputStream.readBoolean()) - patDescription = (Pattern) objectInputStream.readObject(); - - if (objectInputStream.readBoolean()) - patPlace = (Pattern) objectInputStream.readObject(); - - if (objectInputStream.readBoolean()) - patDate = (Pattern) objectInputStream.readObject(); - - if (objectInputStream.readBoolean()) - dateRangeFrom = (Date) objectInputStream.readObject(); - - if (objectInputStream.readBoolean()) - dateRangeTo = (Date) objectInputStream.readObject(); - - if (objectInputStream.readBoolean()) - event = (CalendarEvent) objectInputStream.readObject(); - } - - /** - * Checks if a given pattern string has other charactars than whitespaces inside or not. - * @param sRegexp Specifies the pattern string to check against. - * @return Returns true if the pattern string only contains whitespaces. Else, false will be returned. - */ - private boolean isEmptyPattern(String sRegexp) { - return !emptyPattern.matcher(sRegexp).find(); - } - - /** - * This method checks if the request's passphrase is correct or not. - * @param sPassphrase Specifies the server passphrase to chack against the request passphrase. - * @return Returns true if the passphrases equal. Else, false will be returned. - */ - public boolean checkPassphrase(String sPassphrase) { - return this.sPassphrase.equals(sPassphrase); - } - - /** - * This method returns a representation the object as a string. - * @return Returns the object represented as a string. - */ - public String toString() { - return - "Action : " + iAction + "\n" + - "NumEvents : " + iNumEventsToRequest + "\n" + - "MainRegexp : " + bMainRegexp + "\n" + - "patAll : " + patAll + "\n" + - "patCategory : " + patCategory + "\n" + - "patDescription: " + patDescription + "\n" + - "patDate : " + patDate + "\n" + - "dateRangeFrom : " + dateRangeFrom + "\n" + - "dateRangeTo : " + dateRangeTo + "\n" + - "modifiedEvent :\n" + event+ "\n"; - } -} |
