/** * */ package xapi.test.model.content; import xapi.model.content.HasAuthor; import xapi.model.content.ModelContent; import xapi.model.content.ModelRating; import xapi.model.user.ModelUser; /** * @author James X. Nelson (james@wetheinter.net, @james) * */ public class ModelContentTest extends ModelTextTest implements ModelContent { /** * @see xapi.model.content.HasVotes#getUpvotes() */ @Override public ModelRating[] getUpvotes() { return getProperty("upvotes"); } /** * @see xapi.model.content.HasVotes#setUpvotes(xapi.model.content.ModelRating[]) */ @Override public ModelContent setUpvotes(final ModelRating[] upvotes) { setProperty("upvotes", upvotes); return this; } /** * @see xapi.model.content.HasVotes#getDownvotes() */ @Override public ModelRating[] getDownvotes() { return getProperty("downvotes"); } /** * @see xapi.model.content.HasVotes#setDownvotes(xapi.model.content.ModelRating[]) */ @Override public ModelContent setDownvotes(final ModelRating[] upvotes) { setProperty("upvotes", upvotes); return this; } /** * @see xapi.model.content.ModelContent#getRelated() */ @Override public ModelContent[] getRelated() { return getProperty("related"); } /** * @see xapi.model.content.ModelContent#setRelated(xapi.model.content.ModelContent[]) */ @Override public ModelContent setRelated(final ModelContent[] related) { setProperty("related", related); return this; } /** * @see xapi.model.content.ModelContent#getChildren() */ @Override public ModelContent[] getChildren() { return getProperty("children"); } /** * @see xapi.model.content.ModelContent#setChildren(xapi.model.content.ModelContent[]) */ @Override public ModelContent setChildren(final ModelContent[] children) { setProperty("children", children); return this; } @Override public String getPermaLink() { return getProperty("permalink"); } @Override public ModelContent setPermaLink(String permalink) { setProperty("permalink", permalink); return this; } @Override public Class<?> getPropertyType(final String key) { switch (key) { case "downvotes": case "upvotes": return ModelRating[].class; case "related": return ModelContent[].class; } return super.getPropertyType(key); } @Override public String[] getPropertyNames() { return new String[]{"related", "text", "time", "downvotes", "upvotes"}; } @Override public ModelUser getAuthor() { return null; } @Override public HasAuthor setAuthor(ModelUser user) { return null; } }