01: /*
02: * Copyright (c) 2001 Silvere Martin-Michiellot All Rights Reserved.
03: *
04: * Silvere Martin-Michiellot grants you ("Licensee") a non-exclusive,
05: * royalty free, license to use, modify and redistribute this
06: * software in source and binary code form,
07: * provided that i) this copyright notice and license appear on all copies of
08: * the software; and ii) Licensee does not utilize the software in a manner
09: * which is disparaging to Silvere Martin-Michiellot.
10: *
11: * This software is provided "AS IS," without a warranty of any kind. ALL
12: * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY
13: * IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR
14: * NON-INFRINGEMENT, ARE HEREBY EXCLUDED. Silvere Martin-Michiellot
15: * AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES
16: * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING
17: * OR DISTRIBUTING THE SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL
18: * Silvere Martin-Michiellot OR ITS LICENSORS BE LIABLE
19: * FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT,
20: * INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER
21: * CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF THE USE OF
22: * OR INABILITY TO USE SOFTWARE, EVEN IF Silvere Martin-Michiellot HAS BEEN
23: * ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
24: *
25: * This software is not designed or intended for use in on-line control of
26: * aircraft, air traffic, aircraft navigation or aircraft communications; or in
27: * the design, construction, operation or maintenance of any nuclear
28: * facility. Licensee represents and warrants that it will not use or
29: * redistribute the Software for such purposes.
30: *
31: * @Author: Silvere Martin-Michiellot
32: *
33: */
34:
35: package com.db.server;
36:
37: import java.io.Serializable;
38:
39: import com.db.net.*;
40:
41: /**
42: * When a user doesn't want some automatic requests he sends to be completed
43: * for example if you want no to see anymore some kind of geometry that prevents easy movements in an are
44: * and provided you have the rights to do so, you can put a blocker in your avatar's blocker list to filter the
45: * automatic queries send to the server and therefore you won't hear or see from that object
46: * be aware that this is a way of reducing your capabilities in the virtual world
47: * if you prevent requests to be completed by putting a blocker you may be able to cut yourself access to the virtual world
48: * In that case, ask a super user to remove the faulty blockers by first building a new account or sending an e-mail.
49: * (list of faulty blockers is only checked about user ownership)
50: */
51:
52: public class Blocker extends Object implements Serializable {
53:
54: private Avatar requester;
55: //object is one of VirtualElement, Avatar
56: private Object object;
57: private int accessKind;
58:
59: //builds up a new blocker for the user (requester) to NOT be notified ANYMORE of actions on the object (ObjectWorld, BackgroundWorld)
60: public Blocker(Avatar requester, Object object) {
61:
62: if ((object instanceof ObjectWorld)
63: || (object instanceof BackgroundWorld)) {
64: this .requester = requester;
65: this .object = object;
66: } else {
67: throw new IllegalArgumentException(
68: "object filtered must be an instance of ObjectWorld or BackgroundWorld.");
69: }
70:
71: }
72:
73: public Avatar getRequester() {
74:
75: return this .requester;
76:
77: }
78:
79: public Object getObject() {
80:
81: return this.object;
82:
83: }
84:
85: }
|