use of org.eclipse.emf.ecore.EObject in project Palladio-Editors-Sirius by PalladioSimulator.
the class AddLinkingResourceAction method execute.
@Override
public void execute(final Collection<? extends EObject> selections, final Map<String, Object> parameters) {
final Object parameter = parameters.get(NEW_COMMUNICATION_LINK_RESOURCE_SPECIFICATION);
if (parameter == null || !(parameter instanceof CommunicationLinkResourceSpecification)) {
return;
}
final CommunicationLinkResourceSpecification communicationLinkResourceSpecification = (CommunicationLinkResourceSpecification) parameter;
// latency
final PCMRandomVariable latency = getRandomVariableFromStoExDialog(LATENCY_DISPLAY_TITLE);
if (latency == null) {
return;
}
communicationLinkResourceSpecification.setLatency_CommunicationLinkResourceSpecification(latency);
// throughput
final PCMRandomVariable throughput = getRandomVariableFromStoExDialog(THROUGHPUT_DISPLAY_TITLE);
if (throughput == null) {
return;
}
communicationLinkResourceSpecification.setThroughput_CommunicationLinkResourceSpecification(throughput);
// Communication Link
Session session = SessionManager.INSTANCE.getSession(communicationLinkResourceSpecification);
URI uri = URI.createURI("pathmap://PCM_MODELS/Palladio.resourcetype");
Resource palladioResources = SiriusCustomUtil.getResourceByURI(uri, session);
if (palladioResources != null) {
ResourceRepository rep = (ResourceRepository) palladioResources.getContents().iterator().next();
for (EObject o : rep.eContents()) {
if ((o instanceof CommunicationLinkResourceType) && ((CommunicationLinkResourceType) o).getEntityName().equals("LAN")) {
communicationLinkResourceSpecification.setCommunicationLinkResourceType_CommunicationLinkResourceSpecification((CommunicationLinkResourceType) o);
break;
}
}
}
}
use of org.eclipse.emf.ecore.EObject in project xtext-xtend by eclipse.
the class CreateMemberQuickfixes method newLocalVariableQuickfix.
protected void newLocalVariableQuickfix(final String variableName, XAbstractFeatureCall call, Issue issue, IssueResolutionAcceptor issueResolutionAcceptor) {
LightweightTypeReference variableType = getNewMemberType(call);
final StringBuilderBasedAppendable localVarDescriptionBuilder = new StringBuilderBasedAppendable();
localVarDescriptionBuilder.append("...").newLine();
final String defaultValueLiteral = getDefaultValueLiteral(variableType);
localVarDescriptionBuilder.append("val ").append(variableName).append(" = ").append(defaultValueLiteral);
localVarDescriptionBuilder.newLine().append("...");
issueResolutionAcceptor.accept(issue, "Create local variable '" + variableName + "'", localVarDescriptionBuilder.toString(), "fix_local_var.png", new SemanticModificationWrapper(issue.getUriToProblem(), new ISemanticModification() {
@Override
public void apply(/* @Nullable */
final EObject element, /* @Nullable */
final IModificationContext context) throws Exception {
if (element != null) {
XtendMember xtendMember = EcoreUtil2.getContainerOfType(element, XtendMember.class);
if (xtendMember != null) {
int offset = getFirstOffsetOfKeyword(xtendMember, "{");
IXtextDocument xtextDocument = context.getXtextDocument();
if (offset != -1 && xtextDocument != null) {
final ReplacingAppendable appendable = appendableFactory.create(xtextDocument, (XtextResource) element.eResource(), offset, 0, new OptionalParameters() {
{
baseIndentationLevel = 1;
}
});
appendable.increaseIndentation().newLine().append("val ").append(variableName).append(" = ").append(defaultValueLiteral);
appendable.commitChanges();
}
}
}
}
}));
}
use of org.eclipse.emf.ecore.EObject in project xtext-core by eclipse.
the class SignatureHelpServiceImpl method getSignatureHelp.
@Override
public SignatureHelp getSignatureHelp(final XtextResource resource, final int offset) {
Preconditions.<XtextResource>checkNotNull(resource, "resource");
Preconditions.checkArgument((offset >= 0), ("offset >= 0. Was: " + Integer.valueOf(offset)));
final EObject object = this.offsetHelper.resolveContainedElementAt(resource, offset);
if ((object instanceof OperationCall)) {
final String operationName = this.getOperationName(((OperationCall) object));
boolean _isNullOrEmpty = StringExtensions.isNullOrEmpty(operationName);
boolean _not = (!_isNullOrEmpty);
if (_not) {
return this.getSignatureHelp(((OperationCall) object), operationName, offset);
}
}
return ISignatureHelpService.EMPTY;
}
use of org.eclipse.emf.ecore.EObject in project xtext-core by eclipse.
the class PsiAntlrGrammarGenerator method compileParserImports.
@Override
protected String compileParserImports(final Grammar it, final AntlrOptions options) {
StringConcatenation _builder = new StringConcatenation();
_builder.newLine();
_builder.append("import ");
String _name = this.getGrammarNaming().getInternalParserSuperClass(it).getName();
_builder.append(_name);
_builder.append(";");
_builder.newLineIfNotEmpty();
_builder.append("import ");
TypeReference _elementTypeProvider = this._ideaPluginClassNames.getElementTypeProvider(GrammarUtil.getGrammar(it));
_builder.append(_elementTypeProvider);
_builder.append(";");
_builder.newLineIfNotEmpty();
_builder.append("import org.eclipse.xtext.idea.parser.TokenTypeProvider;");
_builder.newLine();
_builder.append("import org.eclipse.xtext.parser.antlr.XtextTokenStream;");
_builder.newLine();
_builder.append("import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;");
_builder.newLine();
{
if (((!IterableExtensions.isEmpty(Iterables.<UnorderedGroup>filter(Iterables.<EObject>concat(ListExtensions.<ParserRule, List<EObject>>map(GrammarUtil.allParserRules(it), ((Function1<ParserRule, List<EObject>>) (ParserRule it_1) -> {
return EcoreUtil2.eAllContentsAsList(it_1);
}))), UnorderedGroup.class))) && options.isBacktrack())) {
_builder.append("import org.eclipse.xtext.parser.antlr.IUnorderedGroupHelper.UnorderedGroupState;");
_builder.newLine();
}
}
_builder.append("import ");
String _name_1 = this._grammarAccessExtensions.getGrammarAccess(it).getName();
_builder.append(_name_1);
_builder.append(";");
_builder.newLineIfNotEmpty();
_builder.newLine();
_builder.append("import com.intellij.lang.PsiBuilder;");
_builder.newLine();
return _builder.toString();
}
use of org.eclipse.emf.ecore.EObject in project kie-wb-common by kiegroup.
the class Bpmn2JsonUnmarshaller method applyCallActivityProperties.
protected void applyCallActivityProperties(CallActivity callActivity, Map<String, String> properties) {
if (properties.get("name") != null) {
callActivity.setName(StringEscapeUtils.escapeXml(properties.get("name")).replaceAll("\\r\\n|\\r|\\n", " "));
// add unescaped and untouched name value as extension element as well
Utils.setMetaDataExtensionValue(callActivity, "elementname", wrapInCDATABlock(properties.get("name").replaceAll("\\\\n", "\n")));
} else {
callActivity.setName("");
}
if (properties.get("independent") != null && properties.get("independent").length() > 0) {
ExtendedMetaData metadata = ExtendedMetaData.INSTANCE;
EAttributeImpl extensionAttribute = (EAttributeImpl) metadata.demandFeature("http://www.jboss.org/drools", "independent", false, false);
SimpleFeatureMapEntry extensionEntry = new SimpleFeatureMapEntry(extensionAttribute, properties.get("independent"));
callActivity.getAnyAttribute().add(extensionEntry);
}
if (properties.get("waitforcompletion") != null && properties.get("waitforcompletion").length() > 0) {
ExtendedMetaData metadata = ExtendedMetaData.INSTANCE;
EAttributeImpl extensionAttribute = (EAttributeImpl) metadata.demandFeature("http://www.jboss.org/drools", "waitForCompletion", false, false);
SimpleFeatureMapEntry extensionEntry = new SimpleFeatureMapEntry(extensionAttribute, properties.get("waitforcompletion"));
callActivity.getAnyAttribute().add(extensionEntry);
}
if (properties.get("calledelement") != null && properties.get("calledelement").length() > 0) {
callActivity.setCalledElement(properties.get("calledelement"));
}
// isAsync metadata
if (properties.get("isasync") != null && properties.get("isasync").length() > 0 && properties.get("isasync").equals("true")) {
Utils.setMetaDataExtensionValue(callActivity, "customAsync", wrapInCDATABlock(properties.get("isasync")));
}
parseAssignmentsInfo(properties);
// callActivity data input set
applyDataInputProperties(callActivity, properties, new HashMap<String, DataInput>());
// callActivity data output set
applyDataOutputProperties(callActivity, properties);
// callActivity assignments
if (properties.get("assignments") != null && properties.get("assignments").length() > 0) {
String[] allAssignments = properties.get("assignments").split(",\\s*");
for (String assignment : allAssignments) {
if (assignment.contains("=")) {
String[] assignmentParts = assignment.split("=\\s*");
DataInputAssociation dia = Bpmn2Factory.eINSTANCE.createDataInputAssociation();
String fromPart = assignmentParts[0];
if (fromPart.startsWith("[din]")) {
fromPart = fromPart.substring(5, fromPart.length());
}
boolean foundTaskName = false;
if (callActivity.getIoSpecification() != null && callActivity.getIoSpecification().getDataOutputs() != null) {
List<DataInput> dataInputs = callActivity.getIoSpecification().getDataInputs();
for (DataInput di : dataInputs) {
if (di.getId().equals(callActivity.getId() + "_" + fromPart + "InputX")) {
dia.setTargetRef(di);
if (di.getName().equals("TaskName")) {
foundTaskName = true;
break;
}
}
}
}
Assignment a = Bpmn2Factory.eINSTANCE.createAssignment();
FormalExpression fromExpression = Bpmn2Factory.eINSTANCE.createFormalExpression();
if (assignmentParts.length > 1) {
String replacer = decodeAssociationValue(assignmentParts[1]);
fromExpression.setBody(wrapInCDATABlock(replacer));
} else {
fromExpression.setBody("");
}
FormalExpression toExpression = Bpmn2Factory.eINSTANCE.createFormalExpression();
toExpression.setBody(dia.getTargetRef().getId());
a.setFrom(fromExpression);
a.setTo(toExpression);
dia.getAssignment().add(a);
callActivity.getDataInputAssociations().add(dia);
// } else if(assignment.contains("<->")) {
// String[] assignmentParts = assignment.split( "<->\\s*" );
// DataInputAssociation dia = Bpmn2Factory.eINSTANCE.createDataInputAssociation();
// DataOutputAssociation doa = Bpmn2Factory.eINSTANCE.createDataOutputAssociation();
//
// ItemAwareElement ie = Bpmn2Factory.eINSTANCE.createItemAwareElement();
// ie.setId(assignmentParts[0]);
// dia.getSourceRef().add(ie);
// doa.setTargetRef(ie);
//
// List<DataInput> dataInputs = callActivity.getIoSpecification().getDataInputs();
// for(DataInput di : dataInputs) {
// if(di.getId().equals(callActivity.getId() + "_" + assignmentParts[1] + "InputX")) {
// dia.setTargetRef(di);
// break;
// }
// }
// List<DataOutput> dataOutputs = callActivity.getIoSpecification().getDataOutputs();
// for(DataOutput dout : dataOutputs) {
// if(dout.getId().equals(callActivity.getId() + "_" + assignmentParts[1] + "OutputX")) {
// doa.getSourceRef().add(dout);
// break;
// }
// }
//
// callActivity.getDataInputAssociations().add(dia);
// callActivity.getDataOutputAssociations().add(doa);
} else if (assignment.contains("->")) {
String[] assignmentParts = assignment.split("->\\s*");
String fromPart = assignmentParts[0];
boolean isDataInput = false;
boolean isDataOutput = false;
if (fromPart.startsWith("[din]")) {
fromPart = fromPart.substring(5, fromPart.length());
isDataInput = true;
}
if (fromPart.startsWith("[dout]")) {
fromPart = fromPart.substring(6, fromPart.length());
isDataOutput = true;
}
List<DataOutput> dataOutputs = callActivity.getIoSpecification().getDataOutputs();
if (isDataOutput) {
// doing data output
DataOutputAssociation doa = Bpmn2Factory.eINSTANCE.createDataOutputAssociation();
for (DataOutput dout : dataOutputs) {
if (dout.getId().equals(callActivity.getId() + "_" + fromPart + "OutputX")) {
doa.getSourceRef().add(dout);
break;
}
}
ItemAwareElement ie = Bpmn2Factory.eINSTANCE.createItemAwareElement();
ie.setId(assignmentParts[1]);
doa.setTargetRef(ie);
callActivity.getDataOutputAssociations().add(doa);
} else if (isDataInput) {
// doing data input
DataInputAssociation dia = Bpmn2Factory.eINSTANCE.createDataInputAssociation();
// association from process var to dataInput var
ItemAwareElement ie = Bpmn2Factory.eINSTANCE.createItemAwareElement();
ie.setId(fromPart);
dia.getSourceRef().add(ie);
List<DataInput> dataInputs = callActivity.getIoSpecification().getDataInputs();
for (DataInput di : dataInputs) {
if (di.getId().equals(callActivity.getId() + "_" + assignmentParts[1] + "InputX")) {
dia.setTargetRef(di);
break;
}
}
callActivity.getDataInputAssociations().add(dia);
}
} else {
// TODO throw exception here?
}
}
}
// process on-entry and on-exit actions as custom elements
applyOnEntryActions(callActivity, properties);
applyOnExitActions(callActivity, properties);
// simulation
if (properties.get("distributiontype") != null && properties.get("distributiontype").length() > 0) {
TimeParameters timeParams = BpsimFactory.eINSTANCE.createTimeParameters();
Parameter processingTimeParam = BpsimFactory.eINSTANCE.createParameter();
if (properties.get("distributiontype").equals("normal")) {
NormalDistributionType normalDistributionType = BpsimFactory.eINSTANCE.createNormalDistributionType();
normalDistributionType.setStandardDeviation(Double.valueOf(properties.get("standarddeviation")));
normalDistributionType.setMean(Double.valueOf(properties.get("mean")));
processingTimeParam.getParameterValue().add(normalDistributionType);
} else if (properties.get("distributiontype").equals("uniform")) {
UniformDistributionType uniformDistributionType = BpsimFactory.eINSTANCE.createUniformDistributionType();
uniformDistributionType.setMax(Double.valueOf(properties.get("max")));
uniformDistributionType.setMin(Double.valueOf(properties.get("min")));
processingTimeParam.getParameterValue().add(uniformDistributionType);
// random distribution not supported in bpsim 1.0
// } else if(properties.get("distributiontype").equals("random")) {
// RandomDistributionType randomDistributionType = BpsimFactory.eINSTANCE.createRandomDistributionType();
// randomDistributionType.setMax(Double.valueOf(properties.get("max")));
// randomDistributionType.setMin(Double.valueOf(properties.get("min")));
// processingTimeParam.getParameterValue().add(randomDistributionType);
} else if (properties.get("distributiontype").equals("poisson")) {
PoissonDistributionType poissonDistributionType = BpsimFactory.eINSTANCE.createPoissonDistributionType();
poissonDistributionType.setMean(Double.valueOf(properties.get("mean")));
processingTimeParam.getParameterValue().add(poissonDistributionType);
}
// }
if (properties.get("waittime") != null) {
Parameter waittimeParam = BpsimFactory.eINSTANCE.createParameter();
FloatingParameterType waittimeParamValue = BpsimFactory.eINSTANCE.createFloatingParameterType();
DecimalFormat twoDForm = new DecimalFormat("#.##");
waittimeParamValue.setValue(Double.valueOf(twoDForm.format(Double.valueOf(properties.get("waittime")))));
waittimeParam.getParameterValue().add(waittimeParamValue);
timeParams.setWaitTime(waittimeParam);
}
timeParams.setProcessingTime(processingTimeParam);
if (_simulationElementParameters.containsKey(callActivity.getId())) {
_simulationElementParameters.get(callActivity.getId()).add(timeParams);
} else {
List<EObject> values = new ArrayList<EObject>();
values.add(timeParams);
_simulationElementParameters.put(callActivity.getId(), values);
}
}
CostParameters costParameters = BpsimFactory.eINSTANCE.createCostParameters();
if (properties.get("unitcost") != null && properties.get("unitcost").length() > 0) {
Parameter unitcostParam = BpsimFactory.eINSTANCE.createParameter();
FloatingParameterType unitCostParameterValue = BpsimFactory.eINSTANCE.createFloatingParameterType();
unitCostParameterValue.setValue(new Double(properties.get("unitcost")));
unitcostParam.getParameterValue().add(unitCostParameterValue);
costParameters.setUnitCost(unitcostParam);
}
// }
if (_simulationElementParameters.containsKey(callActivity.getId())) {
_simulationElementParameters.get(callActivity.getId()).add(costParameters);
} else {
List<EObject> values = new ArrayList<EObject>();
values.add(costParameters);
_simulationElementParameters.put(callActivity.getId(), values);
}
}
Aggregations