Skip to content

Commit

Permalink
Changed XDB entity interface hierarchy.
Browse files Browse the repository at this point in the history
  • Loading branch information
nmihajlovski committed May 30, 2015
1 parent 66223f8 commit 54d94e1
Show file tree
Hide file tree
Showing 8 changed files with 20 additions and 25 deletions.
Expand Up @@ -38,6 +38,7 @@
import org.rapidoidx.db.DbList;
import org.rapidoidx.db.DbRef;
import org.rapidoidx.db.DbSet;
import org.rapidoidx.db.RichEntity;

@Authors("Nikolche Mihajlovski")
@Since("3.0.0")
Expand Down Expand Up @@ -77,7 +78,8 @@ public Object invoke(Object target, Method method, Object[] args) throws Throwab
Class<?>[] paramTypes = method.getParameterTypes();

if (methodClass.equals(Object.class) || methodClass.equals(EntityImpl.class)
|| methodClass.equals(AbstractRichEntity.class) || methodClass.equals(IEntity.class)) {
|| methodClass.equals(AbstractRichEntity.class) || methodClass.equals(IEntity.class)
|| methodClass.equals(RichEntity.class)) {
return method.invoke(entity, args);
}

Expand Down
Expand Up @@ -56,14 +56,13 @@ public void testEntityProperties() {
Map<String, Object> likes = U.map("relation", "likes", "ids", U.set());
Map<String, Object> postedOn = U.map("relation", "^posted", "ids", U.set());

eq(postProps, U.map("id", 123L, "version", 456L, "createdOn", null, "createdBy", null, "lastUpdatedOn", null,
eq(postProps, U.map("id", "123", "version", "456", "createdOn", null, "createdBy", null, "lastUpdatedOn", null,
"lastUpdatedBy", null, "likes", likes, "postedOn", postedOn, "content", "abc"));

profile.posts().add(post1);
Map<String, Object> profileProps = Beany.read(profile);
eq(profileProps, U.map("id", 0L, "version", 0L, "createdOn", null, "createdBy", null, "lastUpdatedOn", null,
"lastUpdatedBy", null, "posts", U.map("relation", "posted", "ids", U.list(123L))));

eq(profileProps, U.map("id", null, "version", null, "createdOn", null, "createdBy", null, "lastUpdatedOn",
null, "lastUpdatedBy", null, "posts", U.map("relation", "posted", "ids", U.list(123L))));
IProfile profile2 = XDB.entity(IProfile.class);
Beany.update(profile2, profileProps, false);

Expand Down
Expand Up @@ -2,8 +2,8 @@

import org.rapidoid.annotation.Authors;
import org.rapidoid.annotation.Since;
import org.rapidoid.entity.IEntity;
import org.rapidoidx.db.DbColumn;
import org.rapidoidx.db.RichEntity;

/*
* #%L
Expand All @@ -28,7 +28,7 @@

@Authors("Nikolche Mihajlovski")
@Since("3.0.0")
public interface ICompany extends IEntity {
public interface ICompany extends RichEntity {

DbColumn<String> name();

Expand Down
Expand Up @@ -2,8 +2,8 @@

import org.rapidoid.annotation.Authors;
import org.rapidoid.annotation.Since;
import org.rapidoid.entity.IEntity;
import org.rapidoidx.db.DbColumn;
import org.rapidoidx.db.RichEntity;

/*
* #%L
Expand All @@ -28,7 +28,7 @@

@Authors("Nikolche Mihajlovski")
@Since("3.0.0")
public interface IPerson extends IEntity {
public interface IPerson extends RichEntity {

DbColumn<String> name();

Expand Down
Expand Up @@ -3,10 +3,10 @@
import org.rapidoid.annotation.Authors;
import org.rapidoid.annotation.Rel;
import org.rapidoid.annotation.Since;
import org.rapidoid.entity.IEntity;
import org.rapidoidx.db.DbColumn;
import org.rapidoidx.db.DbRef;
import org.rapidoidx.db.DbSet;
import org.rapidoidx.db.RichEntity;

/*
* #%L
Expand All @@ -31,7 +31,7 @@

@Authors("Nikolche Mihajlovski")
@Since("3.0.0")
public interface IPost extends IEntity {
public interface IPost extends RichEntity {

DbColumn<String> content();

Expand Down
Expand Up @@ -24,12 +24,12 @@
import org.rapidoid.annotation.Authors;
import org.rapidoid.annotation.Rel;
import org.rapidoid.annotation.Since;
import org.rapidoid.entity.IEntity;
import org.rapidoidx.db.DbList;
import org.rapidoidx.db.RichEntity;

@Authors("Nikolche Mihajlovski")
@Since("3.0.0")
public interface IProfile extends IEntity {
public interface IProfile extends RichEntity {

@Rel("posted")
public DbList<IPost> posts();
Expand Down
11 changes: 2 additions & 9 deletions rapidoid-x-db/src/main/java/org/rapidoidx/db/RichEntity.java
Expand Up @@ -29,18 +29,11 @@

import org.rapidoid.annotation.Authors;
import org.rapidoid.annotation.Since;
import org.rapidoid.entity.IEntity;

@Authors("Nikolche Mihajlovski")
@Since("3.0.0")
public interface RichEntity {

String id();

void id(String id);

String version();

void version(String version);
public interface RichEntity extends IEntity {

String createdBy();

Expand Down
7 changes: 4 additions & 3 deletions rapidoid-x-inmem/src/main/java/org/rapidoidx/inmem/InMem.java
Expand Up @@ -1068,9 +1068,10 @@ public void loadFrom(InputStream in) {
Map<String, Object> map = U.map();
data.serializer.deserialize(bytes, map);

Number idNum = (Number) map.get(ID);
U.must(idNum != null, "Found DB record without ID: %s", line);
long id = idNum.longValue();
Object idObj = map.get(ID);
U.must(idObj != null, "Found DB record without ID: %s", line);

long id = Cls.convert(idObj, Long.class);
String className = ((String) map.get("_class"));

String[] nameParts = className.split("\\.");
Expand Down

0 comments on commit 54d94e1

Please sign in to comment.