EntityRelationship.java
package au.com.mountainpass.hyperstate.core;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor;
import org.springframework.context.ApplicationContext;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonUnwrapped;
import au.com.mountainpass.hyperstate.core.entities.Entity;
import au.com.mountainpass.hyperstate.core.entities.LinkedEntity;
public class EntityRelationship extends Relationship {
private Entity entity;
protected EntityRelationship() {
}
public EntityRelationship(final Entity entity, final String... natures) {
super(natures);
this.entity = entity;
}
/**
* @return the entity
*/
@JsonIgnore
public Entity getEntity() {
return entity;
}
// public EntityRelationship(Link link, String label, String[] natures) {
// super(natures);
// this.entity = new LinkedEntity(link, label, null);
// }
@JsonUnwrapped
public LinkedEntity getEntityLink() {
return entity.toLinkedEntity();
}
@Autowired
public void setApplicationContext(final ApplicationContext context) {
final AutowiredAnnotationBeanPostProcessor bpp = new AutowiredAnnotationBeanPostProcessor();
bpp.setBeanFactory(context.getAutowireCapableBeanFactory());
bpp.processInjection(this.entity);
}
}