package org.mongodb.morphia.testmodel; import org.mongodb.morphia.annotations.Embedded; import org.mongodb.morphia.annotations.Entity; import org.mongodb.morphia.annotations.Property; import org.mongodb.morphia.annotations.Reference; import org.mongodb.morphia.testutil.TestEntity; import java.util.HashMap; import java.util.Map; /** * @author Olafur Gauti Gudmundsson */ @Entity("articles") @SuppressWarnings("unchecked") public class Article extends TestEntity { @Embedded private Map<String, Translation> translations; @Property private Map attributes; @Reference private Map<String, Article> related; public Article() { translations = new HashMap<String, Translation>(); attributes = new HashMap<String, Object>(); related = new HashMap<String, Article>(); } public Object getAttribute(final String name) { return attributes.get(name); } public Map<String, Object> getAttributes() { return attributes; } public void setAttributes(final Map<String, Object> attributes) { this.attributes = attributes; } public Map<String, Article> getRelated() { return related; } public void setRelated(final Map<String, Article> related) { this.related = related; } public Article getRelated(final String name) { return related.get(name); } public Translation getTranslation(final String langCode) { return translations.get(langCode); } public Map<String, Translation> getTranslations() { return translations; } public void setTranslations(final Map<String, Translation> translations) { this.translations = translations; } public void putRelated(final String name, final Article a) { related.put(name, a); } public void setAttribute(final String name, final Object value) { attributes.put(name, value); } public void setTranslation(final String langCode, final Translation t) { translations.put(langCode, t); } }