@SuppressWarnings("unchecked") public <RT, T1, T2> Functions.Function2<T1, T2, RT> createFunction( String body, Class<RT> returnType, Class<T1> paramType1, Class<T2> paramType2) { return (Functions.Function2<T1, T2, RT>) internalCreateFunction(body, returnType, Tuples.pair((Type) paramType1, "p1"), Tuples.pair((Type) paramType2, "p2")); }
@SuppressWarnings("unchecked") public <RT, T> Functions.Function1<T, RT> createFunction(String body, Class<RT> returnType, Class<T> paramType) { return (Functions.Function1<T, RT>) internalCreateFunction(body, returnType, Tuples.pair((Type) paramType, "p")); }
protected void addDeadEnd(int depth, AbstractToken deadend) { if (deadends.size() >= THRESHOLD && depth < deadends.first().getFirst()) return; if (deadends.size() >= THRESHOLD) deadends.remove(deadends.first()); deadends.add(Tuples.pair(depth, deadend)); }
@Override public String getURIFragment(final EObject object) { return cache.get(Tuples.pair(object, "fragment"), this, new Provider<String>() { public String get() { if (fragmentProvider != null) { String result = fragmentProvider.getFragment(object, fragmentProviderFallback); return result; } String result = XtextResource.super.getURIFragment(object); return result; } }); }
protected Pair<String, String> createFullCode(String statementCode, Type returnType, @SuppressWarnings("unchecked") Pair<Type, String>... params) { String className = "_$GeneratedClass"; StringBuilder sb = new StringBuilder("public class ").append(className) .append(" implements ") .append("org.eclipse.xtext.xbase.lib.Functions.Function") .append(params.length).append("<"); for (Pair<Type, String> type : params) { sb.append(toString(type.getFirst())).append(","); } sb.append(toString(returnType)); sb.append("> {\n"); sb.append("public ").append(toString(returnType)); sb.append(" apply("); for (int i = 0; i < params.length; i++) { Pair<Type, String> pair = params[i]; sb.append(toString(pair.getFirst())).append(" ") .append(pair.getSecond()); if (i + 1 < params.length) sb.append(","); } sb.append(") {\n"); sb.append(statementCode); sb.append("\n}}"); return Tuples.pair(className, sb.toString()); }
public QualifiedName getFullyQualifiedName(final EObject obj) { return cache.get(Tuples.pair(obj, "fqn"), obj.eResource(), new Provider<QualifiedName>(){ public QualifiedName get() { EObject temp = obj; QualifiedName qualifiedNameFromDispatcher = qualifiedName.invoke(temp); if (qualifiedNameFromDispatcher!=null) return qualifiedNameFromDispatcher; String name = getResolver(obj).apply(temp); if (Strings.isEmpty(name)) return null; QualifiedName qualifiedNameFromConverter = getConverter().toQualifiedName(name); while (temp.eContainer() != null) { temp = temp.eContainer(); QualifiedName parentsQualifiedName = getFullyQualifiedName(temp); if (parentsQualifiedName != null) return parentsQualifiedName.append(qualifiedNameFromConverter); } return qualifiedNameFromConverter; } }); }
public QualifiedName getFullyQualifiedName(final EObject obj) { return cache.get(Tuples.pair(obj, "fqn"), obj.eResource(), new Provider<QualifiedName>(){ public QualifiedName get() { EObject temp = obj; QualifiedName qualifiedNameFromDispatcher = qualifiedName.invoke(temp); if (qualifiedNameFromDispatcher!=null) return qualifiedNameFromDispatcher; String name = getResolver().apply(temp); if (Strings.isEmpty(name)) return null; QualifiedName qualifiedNameFromConverter = converter.toQualifiedName(name); while (temp.eContainer() != null) { temp = temp.eContainer(); QualifiedName parentsQualifiedName = getFullyQualifiedName(temp); if (parentsQualifiedName != null) return parentsQualifiedName.append(qualifiedNameFromConverter); } return qualifiedNameFromConverter; } }); }
@Override public QualifiedName getFullyQualifiedName(final EObject obj) { return cache.get(Tuples.pair(obj, getCacheKey()), obj.eResource(), new Provider<QualifiedName>() { @Override public QualifiedName get() { EObject temp = obj; String name = nameDispatcher.invoke(temp); if (Strings.isEmpty(name)) return null; QualifiedName qualifiedName = QualifiedName.create(name); if(!isRecurseParent(obj)) return qualifiedName; QualifiedName parentsQualifiedName = getFullyQualifiedName(obj.eContainer()); if (parentsQualifiedName == null) return null; else return parentsQualifiedName.append(qualifiedName); } }); }
public IScope getScope(final EObject context, final EReference reference) { ISelectable resourceContent = cache.get(Tuples.pair(SimpleLocalScopeProvider.class.getName(), reference), context.eResource(), new Provider<ISelectable>() { public ISelectable get() { return getAllDescriptions(context.eResource()); } }); IScope globalScope = getGlobalScope(context.eResource(), reference); return createScope(globalScope, resourceContent, reference.getEReferenceType(), isIgnoreCase(reference)); }
String matchedVariable = b.declareSyntheticVariable(Tuples.pair(expr, "matches"), "_matched");
protected void appendCatchAndFinally(XTryCatchFinallyExpression expr, ITreeAppendable b, boolean isReferenced) { final EList<XCatchClause> catchClauses = expr.getCatchClauses(); if (!catchClauses.isEmpty()) { String variable = b.declareSyntheticVariable(Tuples.pair(expr, "_catchedThrowable"), "_t"); b.append(" catch (final Throwable ").append(variable).append(") "); b.append("{").increaseIndentation();