|
From: <tre...@us...> - 2007-12-04 14:21:25
|
Revision: 612
http://ogoglio.svn.sourceforge.net/ogoglio/?rev=612&view=rev
Author: trevorolio
Date: 2007-12-04 06:21:20 -0800 (Tue, 04 Dec 2007)
Log Message:
-----------
Added user role to space model.
Modified Paths:
--------------
maven/trunk/ogoglio-common/src/main/java/com/ogoglio/client/SpaceClient.java
maven/trunk/ogoglio-common/src/main/java/com/ogoglio/client/model/User.java
maven/trunk/ogoglio-common/src/main/java/com/ogoglio/xml/SpaceEvent.java
maven/trunk/ogoglio-common/src/main/java/com/ogoglio/xml/SpaceMemberDocument.java
maven/trunk/ogoglio-common/src/main/java/com/ogoglio/xml/UserDocument.java
maven/trunk/ogoglio-common/src/test/java/com/ogoglio/xml/test/XMLTest.java
Modified: maven/trunk/ogoglio-common/src/main/java/com/ogoglio/client/SpaceClient.java
===================================================================
--- maven/trunk/ogoglio-common/src/main/java/com/ogoglio/client/SpaceClient.java 2007-12-01 00:21:27 UTC (rev 611)
+++ maven/trunk/ogoglio-common/src/main/java/com/ogoglio/client/SpaceClient.java 2007-12-04 14:21:20 UTC (rev 612)
@@ -184,7 +184,7 @@
if (userDocs[i].getSeatThingID() != -1) {
seatThing = space.getThing(userDocs[i].getSeatThingID());
}
- User user = new User(space, userDocs[i].getUsername(), userDocs[i].getTransform(), bodyConfig, seatThing);
+ User user = new User(space, userDocs[i].getUsername(), userDocs[i].getTransform(), bodyConfig, seatThing, userDocs[i].getRole());
bodyConfig.setUser(user);
space.addUser(user);
}
@@ -333,7 +333,8 @@
if (SpaceEvent.ADD_USER_EVENT.equals(event.getName())) {
BodyConfigurationDocument bodyConfigDoc = event.getBodyConfigurationDocument();
BodyConfiguration bodyConfig = new BodyConfiguration(bodyConfigDoc);
- User user = new User(space, event.getStringProperty(SpaceEvent.USERNAME), event.getTransform(), bodyConfig, null);
+ String role = event.getStringProperty(SpaceEvent.USER_ROLE);
+ User user = new User(space, event.getStringProperty(SpaceEvent.USERNAME), event.getTransform(), bodyConfig, null, role);
space.addUser(user);
} else if (SpaceEvent.REMOVE_USER_EVENT.equals(event.getName())) {
User user = space.getUser(event.getStringProperty(SpaceEvent.USERNAME));
Modified: maven/trunk/ogoglio-common/src/main/java/com/ogoglio/client/model/User.java
===================================================================
--- maven/trunk/ogoglio-common/src/main/java/com/ogoglio/client/model/User.java 2007-12-01 00:21:27 UTC (rev 611)
+++ maven/trunk/ogoglio-common/src/main/java/com/ogoglio/client/model/User.java 2007-12-04 14:21:20 UTC (rev 612)
@@ -17,6 +17,7 @@
import javax.media.j3d.Transform3D;
import com.ogoglio.util.ArgumentUtils;
+import com.ogoglio.xml.SpaceMemberDocument;
public class User {
@@ -34,7 +35,9 @@
private Thing seatThing = null;
- public User(Space space, String username, Transform3D position, BodyConfiguration bodyConfiguration, Thing seatThing) {
+ private String role = null;
+
+ public User(Space space, String username, Transform3D position, BodyConfiguration bodyConfiguration, Thing seatThing, String role) {
ArgumentUtils.assertNotNull(space);
this.space = space;
ArgumentUtils.assertNotNull(username);
@@ -45,6 +48,10 @@
this.bodyConfiguration = bodyConfiguration;
bodyConfiguration.setUser(this);
this.seatThing = seatThing;
+ if(role != null && !SpaceMemberDocument.isValidRole(role)){
+ throw new IllegalArgumentException("Invalid role: " + role);
+ }
+ this.role = role;
}
public void startMotion(SplinePath path) {
@@ -122,4 +129,11 @@
space.notifyUserSat(this, seatThing);
}
}
+
+ /**
+ * @return null or one of the roles from SpaceMemberDocument: editor, member, builder
+ */
+ public String getRole() {
+ return role;
+ }
}
Modified: maven/trunk/ogoglio-common/src/main/java/com/ogoglio/xml/SpaceEvent.java
===================================================================
--- maven/trunk/ogoglio-common/src/main/java/com/ogoglio/xml/SpaceEvent.java 2007-12-01 00:21:27 UTC (rev 611)
+++ maven/trunk/ogoglio-common/src/main/java/com/ogoglio/xml/SpaceEvent.java 2007-12-04 14:21:20 UTC (rev 612)
@@ -97,7 +97,9 @@
public static final String SHAPE_NAME = "shapeName";
public static final String ADD_USER_EVENT = "addUser";
-
+
+ public static final String USER_ROLE = "role";
+
public static final String REMOVE_USER_EVENT = "removeUser";
public static final String USER_START_MOTION_EVENT = "userStartMotion";
Modified: maven/trunk/ogoglio-common/src/main/java/com/ogoglio/xml/SpaceMemberDocument.java
===================================================================
--- maven/trunk/ogoglio-common/src/main/java/com/ogoglio/xml/SpaceMemberDocument.java 2007-12-01 00:21:27 UTC (rev 611)
+++ maven/trunk/ogoglio-common/src/main/java/com/ogoglio/xml/SpaceMemberDocument.java 2007-12-04 14:21:20 UTC (rev 612)
@@ -82,6 +82,18 @@
}
}
+ public static String getRoleString(int role){
+ if(role == MEMBER_ROLE){
+ return MEMBER;
+ } else if(role == EDITOR_ROLE){
+ return EDITOR;
+ } else if(role == BUILDER_ROLE){
+ return BUILDER;
+ } else {
+ return null;
+ }
+ }
+
public XMLElement toElement() {
return data;
}
@@ -116,4 +128,11 @@
}
data.setAttribute(ROLE, role);
}
+
+ public static boolean isValidRole(String role) {
+ if(role == null){
+ return false;
+ }
+ return MEMBER.equals(role) || EDITOR.equals(role) || BUILDER.equals(role);
+ }
}
Modified: maven/trunk/ogoglio-common/src/main/java/com/ogoglio/xml/UserDocument.java
===================================================================
--- maven/trunk/ogoglio-common/src/main/java/com/ogoglio/xml/UserDocument.java 2007-12-01 00:21:27 UTC (rev 611)
+++ maven/trunk/ogoglio-common/src/main/java/com/ogoglio/xml/UserDocument.java 2007-12-04 14:21:20 UTC (rev 612)
@@ -27,14 +27,16 @@
public static final String USERNAME = "username";
public static final String BODY_CONFIGURATION_ID = "bodyconfigurationid";
-
+
public static final String SEAT_THING_ID = "seatthingid";
-
+
+ public static final String ROLE = "role";
+
public UserDocument(User user) {
- this(user.getUsername(), user.getPosition(), user.getSplinePath(), user.getBodyConfiguration().getBodyConfigurationID(), user.getSeat() == null ? -1 : user.getSeat().getThingID());
+ this(user.getUsername(), user.getPosition(), user.getSplinePath(), user.getBodyConfiguration().getBodyConfigurationID(), user.getSeat() == null ? -1 : user.getSeat().getThingID(), user.getRole());
}
- public UserDocument(String username, Transform3D transform, SplinePath splinePath, long bodyConfigurationID, long seatThingID) {
+ public UserDocument(String username, Transform3D transform, SplinePath splinePath, long bodyConfigurationID, long seatThingID, String role) {
super(NAME, transform, splinePath);
ArgumentUtils.assertNotNull(username);
getData().setAttribute(USERNAME, username);
@@ -42,8 +44,18 @@
getData().setAttribute(BODY_CONFIGURATION_ID, bodyConfigurationID);
}
getData().setAttribute(SEAT_THING_ID, seatThingID);
+ if(!isValidRole(role)){
+ throw new IllegalArgumentException("Invalid role: " + role);
+ }
+ if (role != null) {
+ getData().setAttribute(ROLE, role);
+ }
}
+ public static boolean isValidRole(String role){
+ return role == null || SpaceMemberDocument.isValidRole(role);
+ }
+
public UserDocument(XMLElement data) {
super(data);
if (!NAME.equals(getData().getName())) {
@@ -59,8 +71,12 @@
public long getBodyConfigurationID() {
return getData().getLongAttribute(BODY_CONFIGURATION_ID);
}
-
- public long getSeatThingID(){
+
+ public long getSeatThingID() {
return getData().getLongAttribute(SEAT_THING_ID);
}
+
+ public String getRole(){
+ return getData().getStringAttribute(ROLE);
+ }
}
Modified: maven/trunk/ogoglio-common/src/test/java/com/ogoglio/xml/test/XMLTest.java
===================================================================
--- maven/trunk/ogoglio-common/src/test/java/com/ogoglio/xml/test/XMLTest.java 2007-12-01 00:21:27 UTC (rev 611)
+++ maven/trunk/ogoglio-common/src/test/java/com/ogoglio/xml/test/XMLTest.java 2007-12-04 14:21:20 UTC (rev 612)
@@ -190,16 +190,20 @@
assertEquals(0, shapeMove1.getSplinePath().getSplineKeyFrames()[1].getKnot(), keyFrames[1].getKnot());
assertEquals(shapeMove1.getShapeName(), "a_shape");
- UserDocument userDoc = new UserDocument(username, new Transform3D(), null, 23, 24);
+ UserDocument userDoc = new UserDocument(username, new Transform3D(), null, 23, 24, null);
assertEquals(username, userDoc.getUsername());
assertEquals(23, userDoc.getBodyConfigurationID());
assertEquals(24, userDoc.getSeatThingID());
+ assertEquals(null, userDoc.getRole());
userDoc = new UserDocument(XMLElement.parseElementFromString(userDoc.toString()));
assertEquals(username, userDoc.getUsername());
assertEquals(23, userDoc.getBodyConfigurationID());
assertEquals(24, userDoc.getSeatThingID());
+ userDoc = new UserDocument(username, new Transform3D(), null, 23, 24, SpaceMemberDocument.EDITOR);
+ assertEquals(SpaceMemberDocument.EDITOR, userDoc.getRole());
+
DoorDocument door1 = new DoorDocument(1, displayName, 2, "susan", uri1, new Transform3D());
assertEquals(1, door1.getDoorID());
assertEquals(2, door1.getTemplateID());
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|