summaryrefslogtreecommitdiff
path: root/shared/remotecall/ClientRequest.java
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2009-02-18 17:33:22 +0000
committerPaul Buetow <paul@buetow.org>2009-02-18 17:33:22 +0000
commit4722100cba287b164957c658c2e035783e20c963 (patch)
tree35733fd3e50aeeb493e38ceaea83521a4710f0ac /shared/remotecall/ClientRequest.java
parent61f7175cc3e51c0afaf63e380d03824a77464ba8 (diff)
moved sources
Diffstat (limited to 'shared/remotecall/ClientRequest.java')
-rw-r--r--shared/remotecall/ClientRequest.java369
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";
- }
-}