package org.openflexo.foundation.viewpoint; import org.openflexo.foundation.ie.cl.OperationComponentDefinition; import org.openflexo.foundation.viewpoint.ViewPoint.ViewPointBuilder; import org.openflexo.foundation.wkf.FlexoProcess; import org.openflexo.foundation.wkf.ProcessFolder; import org.openflexo.foundation.wkf.Role; import org.openflexo.foundation.wkf.node.AbstractActivityNode; import org.openflexo.foundation.wkf.node.ActionNode; import org.openflexo.foundation.wkf.node.EventNode; import org.openflexo.foundation.wkf.node.OperationNode; import org.openflexo.localization.FlexoLocalization; public class FlexoModelObjectPatternRole extends PatternRole { // TODO: unify this this FlexoObjectType in FlexoObjectParameter and FlexoObjectInspectorEntry public static enum FlexoModelObjectType { Process, ProcessFolder, Role, Activity, Operation, Action, Event, Screen } private FlexoModelObjectType flexoModelObjectType; public FlexoModelObjectPatternRole(ViewPointBuilder builder) { super(builder); } @Override public PatternRoleType getType() { return PatternRoleType.FlexoModelObject; } public FlexoModelObjectType getFlexoModelObjectType() { return flexoModelObjectType; } public void setFlexoModelObjectType(FlexoModelObjectType flexoModelObjectType) { this.flexoModelObjectType = flexoModelObjectType; } @Override public String getPreciseType() { if (flexoModelObjectType == null) { return null; } switch (flexoModelObjectType) { case Process: return FlexoLocalization.localizedForKey("process"); case ProcessFolder: return FlexoLocalization.localizedForKey("process_folder"); case Role: return FlexoLocalization.localizedForKey("role"); case Activity: return FlexoLocalization.localizedForKey("activity"); case Operation: return FlexoLocalization.localizedForKey("operation"); case Action: return FlexoLocalization.localizedForKey("action"); case Event: return FlexoLocalization.localizedForKey("event"); case Screen: return FlexoLocalization.localizedForKey("screen"); default: return null; } } @Override public Class<?> getAccessedClass() { if (flexoModelObjectType == null) { return null; } switch (flexoModelObjectType) { case Process: return FlexoProcess.class; case ProcessFolder: return ProcessFolder.class; case Role: return Role.class; case Activity: return AbstractActivityNode.class; case Operation: return OperationNode.class; case Action: return ActionNode.class; case Event: return EventNode.class; case Screen: return OperationComponentDefinition.class; default: return null; } } @Override public boolean getIsPrimaryRole() { return false; } @Override public void setIsPrimaryRole(boolean isPrimary) { // Not relevant } }