diff --git a/src/main/java/cactusServer/entities/AddressedEntity.java b/src/main/java/cactusServer/entities/AddressedEntity.java index 2b3dc80..52c55fc 100644 --- a/src/main/java/cactusServer/entities/AddressedEntity.java +++ b/src/main/java/cactusServer/entities/AddressedEntity.java @@ -5,19 +5,22 @@ * @author r-isitani * */ -public class AddressedEntity { - private String URI; +public abstract class AddressedEntity { private Entity body; - public AddressedEntity(String URI, Entity body) { - this.URI = URI; + protected AddressedEntity() { + // JSONDecode���̌Ăяo���p + } + + public AddressedEntity(Entity body) { this.body = body; } - - public String getURI() { - return URI; - } + public Entity getBody() { return body; } + + public void setBody(Entity body) { + this.body = body; + } } diff --git a/src/main/java/cactusServer/entities/Angle.java b/src/main/java/cactusServer/entities/Angle.java index b3b6fa5..8976c0d 100644 --- a/src/main/java/cactusServer/entities/Angle.java +++ b/src/main/java/cactusServer/entities/Angle.java @@ -6,6 +6,10 @@ private double vz; private double a; + private Angle() { + // JSONDecode���̌Ăяo���p + } + public Angle(double vx, double vy, double vz, double a) { this.vx = vx; this.vy = vy; diff --git a/src/main/java/cactusServer/entities/Area.java b/src/main/java/cactusServer/entities/Area.java index 0801fa2..ce7b7e8 100644 --- a/src/main/java/cactusServer/entities/Area.java +++ b/src/main/java/cactusServer/entities/Area.java @@ -7,6 +7,10 @@ private Plain[] region; // �C�ӌ‚̕��ʂ̕����� private HashSet permissions; // �G���A���ʼn”\�Ȃ��Ƃ̗��� + private Area() { + // JSONDecode���̌Ăяo���p + } + public Area(String name, Plain[] region, HashSet permissions) { this.name = name; this.region = region; diff --git a/src/main/java/cactusServer/entities/CameraState.java b/src/main/java/cactusServer/entities/CameraState.java index 3801ab1..0750a0f 100644 --- a/src/main/java/cactusServer/entities/CameraState.java +++ b/src/main/java/cactusServer/entities/CameraState.java @@ -6,6 +6,10 @@ private double tilt; // �`���g(rad) private double fov; // ����p(rad) + private CameraState() { + // JSONDecode���̌Ăяo���p + } + public CameraState(double distance, Angle angle, double tilt, double fov) { this.distance = distance; this.angle = angle; diff --git a/src/main/java/cactusServer/entities/Character.java b/src/main/java/cactusServer/entities/Character.java index aa0e845..36084d1 100644 --- a/src/main/java/cactusServer/entities/Character.java +++ b/src/main/java/cactusServer/entities/Character.java @@ -20,10 +20,12 @@ private HashMap itemMap = new HashMap<>(); private static final int UNIQUE_ID_LENGTH = 12; - private final String CHARACTER_URI; - public Character(String characterURI, String accountURI, String name, Position3D position, Angle angle, CharacterModel model) { - this.CHARACTER_URI = characterURI; + private Character() { + // JSONDecode���̌Ăяo���p + } + + public Character(String accountURI, String name, Position3D position, Angle angle, CharacterModel model) { this.accountURI = accountURI; this.name = name; this.position = position; @@ -93,7 +95,7 @@ if (!hasItem(item)) { String id = RandomStringGenerator.generateUniqueString(UNIQUE_ID_LENGTH, RandomStringGenerator.ALPHA_NUMERIC, itemMap.keySet()); itemMap.put(id, item); - return new AddressedEntity((CHARACTER_URI + "/items/" + id), item); + return new IDAddressedEntity(id, item); } return null; } diff --git a/src/main/java/cactusServer/entities/EmoteState.java b/src/main/java/cactusServer/entities/EmoteState.java index 4d2f606..21a3750 100644 --- a/src/main/java/cactusServer/entities/EmoteState.java +++ b/src/main/java/cactusServer/entities/EmoteState.java @@ -9,6 +9,10 @@ public class EmoteState { private EmoteType emoteType; + private EmoteState() { + // JSONDecode���̌Ăяo���p + } + public EmoteState(EmoteType emoteType) { this.emoteType = emoteType; } diff --git a/src/main/java/cactusServer/entities/IDAddressedEntity.java b/src/main/java/cactusServer/entities/IDAddressedEntity.java new file mode 100644 index 0000000..4ca3a59 --- /dev/null +++ b/src/main/java/cactusServer/entities/IDAddressedEntity.java @@ -0,0 +1,22 @@ +package cactusServer.entities; + +public class IDAddressedEntity extends AddressedEntity{ + private String id; + + private IDAddressedEntity() { + // JSONDecode���̌Ăяo���p + } + + public IDAddressedEntity(String id, Entity body) { + super(body); + setId(id); + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } +} diff --git a/src/main/java/cactusServer/entities/Instance.java b/src/main/java/cactusServer/entities/Instance.java index 19af565..9e79a1b 100644 --- a/src/main/java/cactusServer/entities/Instance.java +++ b/src/main/java/cactusServer/entities/Instance.java @@ -34,14 +34,16 @@ private HashMap objMap = new HashMap<>(); private HashMap characterMap = new HashMap<>(); private static final int UNIQUE_ID_LENGTH = 12; - private final String INSTANCE_URI; + private Instance() { + // JSONDecode���̌Ăяo���p + } + /** * (�����͌����_�ł̉��̂���) * @param name �C���X�^���X�� */ - public Instance(String instanceID, String name, State state, StageModel stageModel) { - this.INSTANCE_URI = Instances.INSTANCES_URI + "/" + instanceID; + public Instance(String name, State state, StageModel stageModel) { this.name = name; this.state = state; this.stage = stageModel; @@ -55,7 +57,6 @@ public Instance(String name, State state) { this.name = name; this.state = state; - this.INSTANCE_URI = Instances.INSTANCES_URI + "/"; } /** @@ -65,7 +66,6 @@ public Instance(String name) { this.name = name; this.state = State.AVAILABLE; - this.INSTANCE_URI = Instances.INSTANCES_URI + "/"; } public String getName() { @@ -139,22 +139,22 @@ String id = RandomStringGenerator.generateUniqueString(UNIQUE_ID_LENGTH, RandomStringGenerator.ALPHA_NUMERIC, areaMap.keySet()); Area area = new Area(name, region, permissions); areaMap.put(id, area); - return new AddressedEntity((INSTANCE_URI + "/areas/" + id), area); + return new IDAddressedEntity(id, area); } public AddressedEntity createObject(Position3D position, Velocity3D velocity, AngularVelocity3D angularVelocity, Angle angle, Attribute attribute, ObjectModel model) { String id = RandomStringGenerator.generateUniqueString(UNIQUE_ID_LENGTH, RandomStringGenerator.ALPHA_NUMERIC, objMap.keySet()); Object object = new Object(position, velocity, angularVelocity, angle, attribute, model); objMap.put(id, object); - return new AddressedEntity((INSTANCE_URI + "/objects/" + id), object); + return new IDAddressedEntity(id, object); } public AddressedEntity createCharacter(String accountURI, String name, Position3D position, Angle angle, CharacterModel model) { String id = RandomStringGenerator.generateUniqueString(UNIQUE_ID_LENGTH, RandomStringGenerator.ALPHA_NUMERIC, characterMap.keySet()); - String characterURI = (INSTANCE_URI + "/characters/" + id); - Character character = new Character(characterURI, accountURI, name, position, angle, model); +// String characterURI = (INSTANCE_URI + "/characters/" + id); + Character character = new Character(accountURI, name, position, angle, model); characterMap.put(id, character); - return new AddressedEntity(characterURI, character); + return new IDAddressedEntity(id, character); } public Character updateCharacter(String characterId, Position3D position, Angle angle, CharacterModel model) { diff --git a/src/main/java/cactusServer/entities/Item.java b/src/main/java/cactusServer/entities/Item.java index 77ff15f..5655ddd 100644 --- a/src/main/java/cactusServer/entities/Item.java +++ b/src/main/java/cactusServer/entities/Item.java @@ -4,6 +4,10 @@ private String name; private int amount; + private Item() { + // JSONDecode���̌Ăяo���p + } + public Item(String name, int amount) { this.name = name; this.amount = amount; diff --git a/src/main/java/cactusServer/entities/Object.java b/src/main/java/cactusServer/entities/Object.java index 7cdea77..e91d73a 100644 --- a/src/main/java/cactusServer/entities/Object.java +++ b/src/main/java/cactusServer/entities/Object.java @@ -14,6 +14,10 @@ private Attribute attribute; private ObjectModel model; + private Object() { + // JSONDecode���̌Ăяo���p + } + public Object(Position3D position, Velocity3D velocity, AngularVelocity3D angularVelocity, Angle angle, Attribute attribute, ObjectModel model) { setPosition(position); setVelocity(velocity); diff --git a/src/main/java/cactusServer/entities/Plain.java b/src/main/java/cactusServer/entities/Plain.java index 6d78bac..de5f57d 100644 --- a/src/main/java/cactusServer/entities/Plain.java +++ b/src/main/java/cactusServer/entities/Plain.java @@ -8,6 +8,10 @@ private double c; // ���ʂ̕����� ax+by+cz+d ��c private double d; // ���ʂ̕����� ax+by+cz+d ��d + private Plain() { + // JSONDecode���̌Ăяo���p + } + public Plain(double a, double b, double c, double d) { this.a = a; this.b = b; diff --git a/src/main/java/cactusServer/entities/Player.java b/src/main/java/cactusServer/entities/Player.java index 8254621..48af2e2 100644 --- a/src/main/java/cactusServer/entities/Player.java +++ b/src/main/java/cactusServer/entities/Player.java @@ -12,6 +12,10 @@ private CameraState cameraState; private EmoteState emoteState; + private Player() { + // JSONDecode���̌Ăяo���p + } + public Player(String instanceURI, String characterURI, CameraState cameraState, EmoteState.EmoteType animationClassToStart) { this.instanceURI = instanceURI; this.characterURI = characterURI; diff --git a/src/main/java/cactusServer/entities/URIAddressedEntity.java b/src/main/java/cactusServer/entities/URIAddressedEntity.java new file mode 100644 index 0000000..53b6e99 --- /dev/null +++ b/src/main/java/cactusServer/entities/URIAddressedEntity.java @@ -0,0 +1,22 @@ +package cactusServer.entities; + +public class URIAddressedEntity extends AddressedEntity{ + private String uri; + + private URIAddressedEntity() { + // JSONDecode���̌Ăяo���p + } + + public URIAddressedEntity(String uri, Entity body) { + super(body); + setUri(uri); + } + + public String getUri() { + return uri; + } + + public void setUri(String uri) { + this.uri = uri; + } +} diff --git a/src/main/java/cactusServer/models/Instances.java b/src/main/java/cactusServer/models/Instances.java index 5a2f831..377c738 100644 --- a/src/main/java/cactusServer/models/Instances.java +++ b/src/main/java/cactusServer/models/Instances.java @@ -9,6 +9,7 @@ import cactusServer.entities.AddressedEntity; import cactusServer.entities.CameraState; import cactusServer.entities.EmoteState; +import cactusServer.entities.IDAddressedEntity; import cactusServer.entities.Instance; import cactusServer.entities.Player; import cactusServer.entities.StageModel; @@ -26,7 +27,6 @@ private HashMap instanceMap = new HashMap<>(); // instance��ID�Ǝ��̂��Ǘ� private HashMap playerMap = new HashMap<>(); private static final int UNIQUE_ID_LENGTH = 12; - @JSONHint(ignore = true) public static final String INSTANCES_URI = "/CactusServer/rest/instances"; private Instances() { @@ -53,9 +53,9 @@ */ public AddressedEntity createInstance(String name, Instance.State state, StageModel stageModel) { String id = RandomStringGenerator.generateUniqueString(UNIQUE_ID_LENGTH, RandomStringGenerator.ALPHA_NUMERIC, instanceMap.keySet()); - Instance instance = new Instance(id, name, state, stageModel); + Instance instance = new Instance(name, state, stageModel); instanceMap.put(id, instance); - return new AddressedEntity((INSTANCES_URI + "/" + id), instance); + return new IDAddressedEntity(id, instance); } /** @@ -76,7 +76,7 @@ String id = RandomStringGenerator.generateUniqueString(UNIQUE_ID_LENGTH, RandomStringGenerator.ALPHA_NUMERIC, playerMap.keySet()); Player player = new Player(instanceURI, characterURI, cameraState, animationClassToStart); playerMap.put(id, player); - return new AddressedEntity((INSTANCES_URI + "/players/" + id), player); + return new IDAddressedEntity(id, player); } /**