package org.orienteer.bpm.camunda.handler;
import org.camunda.bpm.engine.impl.persistence.entity.GroupEntity;
import org.camunda.bpm.engine.impl.persistence.entity.UserEntity;
import org.orienteer.bpm.camunda.OPersistenceSession;
import org.orienteer.core.util.OSchemaHelper;
import com.orientechnologies.orient.core.metadata.schema.OType;
import com.orientechnologies.orient.core.metadata.security.OIdentity;
import com.orientechnologies.orient.core.metadata.security.ORole;
/**
* {@link IEntityHandler} for {@link GroupEntity}
*/
public class GroupEntityHandler extends AbstractEntityHandler<GroupEntity> {
public static final String OCLASS_NAME = ORole.CLASS_NAME;
public GroupEntityHandler() {
super(OCLASS_NAME, "name");
}
@Override
protected void initMapping(OPersistenceSession session) {
super.initMapping(session);
mappingFromDocToEntity.put("name", "id");
mappingFromEntityToDoc.put("id", "name");
}
@Override
public void applySchema(OSchemaHelper helper) {
helper.oClass(OCLASS_NAME)
.oProperty("availableGroupTasks", OType.LINKLIST, 10).assignVisualization("table");
}
@Override
public void applyRelationships(OSchemaHelper helper) {
helper.setupRelationship(IdentityLinkEntityHandler.OCLASS_NAME, "group", GroupEntityHandler.OCLASS_NAME, "availableGroupTasks");
}
}