@Override public void resolve(TemplateVariable variable, TemplateContext context) { List params = variable.getVariableType().getParams(); String[] bindings = new String[params.size()]; for (int i = 0; i < params.size(); i++) { bindings[i] = params.get(i).toString(); } if (bindings.length != 0) variable.setValues(bindings); variable.setResolved(true); }
/** * Creates proper {@link TemplateVariable}s from the variable descriptions. * * @param variables the variable descriptions by variable name * @return the corresponding variables * @since 3.3 */ private TemplateVariable[] createVariables(Map<String, VariableDescription> variables) { TemplateVariable[] result= new TemplateVariable[variables.size()]; int idx= 0; for (Iterator<VariableDescription> it= variables.values().iterator(); it.hasNext(); idx++) { VariableDescription desc= it.next(); TemplateVariableType type= desc.fType == null ? new TemplateVariableType(desc.fName) : desc.fType; int[] offsets= new int[desc.fOffsets.size()]; int i= 0; for (Iterator<Integer> intIt= desc.fOffsets.iterator(); intIt.hasNext(); i++) { Integer offset= intIt.next(); offsets[i]= offset.intValue(); } fCurrentType= type; /* * Call the deprecated version of createVariable. When not overridden, it will delegate * to the new version using fCurrentType. */ TemplateVariable var= createVariable(type.getName(), desc.fName, offsets); result[idx]= var; } fCurrentType= null; // avoid dangling reference return result; }
void mergeType(TemplateVariableType type) throws TemplateException { if (type == null) return; if (fType == null) fType= type; if (!type.equals(fType)) fail(TextTemplateMessages.getFormattedString("TemplateTranslator.error.incompatible.type", fName)); //$NON-NLS-1$ } }
/** * Creates a template variable with multiple possible values. * * @param type the type of the variable * @param name the name of the variable * @param values the values available at this variable, non-empty * @param offsets the array of offsets of the variable */ public TemplateVariable(String type, String name, String[] values, int[] offsets) { this(new TemplateVariableType(type), name, values, offsets); }
/** * Returns the type name of the variable. * * @return the type name of the variable */ public String getType() { return fType.getName(); }
/** * Creates a template variable with multiple possible values. * * @param type the type of the variable * @param name the name of the variable * @param values the values available at this variable, non-empty * @param offsets the array of offsets of the variable */ public TemplateVariable(String type, String name, String[] values, int[] offsets) { this(new TemplateVariableType(type), name, values, offsets); }
/** * Returns the type name of the variable. * * @return the type name of the variable */ public String getType() { return fType.getName(); }
@Override public void resolve(TemplateVariable variable, TemplateContext context) { List<String> params= variable.getVariableType().getParams(); if (params.size() >= 1 && params.get(0) != null) { resolveWithParams(variable, context, params); } else { // No parameter, use default format: super.resolve(variable, context); } }
/** * Creates proper {@link TemplateVariable}s from the variable descriptions. * * @param variables the variable descriptions by variable name * @return the corresponding variables * @since 3.3 */ private TemplateVariable[] createVariables(Map<String, VariableDescription> variables) { TemplateVariable[] result= new TemplateVariable[variables.size()]; int idx= 0; for (Iterator<VariableDescription> it= variables.values().iterator(); it.hasNext(); idx++) { VariableDescription desc= it.next(); TemplateVariableType type= desc.fType == null ? new TemplateVariableType(desc.fName) : desc.fType; int[] offsets= new int[desc.fOffsets.size()]; int i= 0; for (Iterator<Integer> intIt= desc.fOffsets.iterator(); intIt.hasNext(); i++) { Integer offset= intIt.next(); offsets[i]= offset.intValue(); } fCurrentType= type; /* * Call the deprecated version of createVariable. When not overridden, it will delegate * to the new version using fCurrentType. */ TemplateVariable var= createVariable(type.getName(), desc.fName, offsets); result[idx]= var; } fCurrentType= null; // avoid dangling reference return result; }
private TemplateVariableType createType(String typeName, String paramString) { if (typeName == null) return null; if (paramString == null) return new TemplateVariableType(typeName); final Matcher matcher= PARAM_PATTERN.matcher(paramString); List<String> params= new ArrayList<>(5); while (matcher.find()) { String argument= matcher.group(); if (argument.charAt(0) == '\'') { // argumentText argument= argument.substring(1, argument.length() - 1).replaceAll("''", "'"); //$NON-NLS-1$ //$NON-NLS-2$ } params.add(argument); } return new TemplateVariableType(typeName, params.toArray(new String[params.size()])); }
void mergeType(TemplateVariableType type) throws TemplateException { if (type == null) return; if (fType == null) fType= type; if (!type.equals(fType)) fail(TextTemplateMessages.getFormattedString("TemplateTranslator.error.incompatible.type", fName)); //$NON-NLS-1$ } }
@Override public void resolve(TemplateVariable variable, TemplateContext context) { List<String> params= variable.getVariableType().getParams(); if (params.size() >= 1 && params.get(0) != null) { resolveWithParams(variable, context, params); } else { // No parameter, use default: super.resolve(variable, context); } }
private TemplateVariableType createType(String typeName, String paramString) { if (typeName == null) return null; if (paramString == null) return new TemplateVariableType(typeName); final Matcher matcher= PARAM_PATTERN.matcher(paramString); List<String> params= new ArrayList<>(5); while (matcher.find()) { String argument= matcher.group(); if (argument.charAt(0) == '\'') { // argumentText argument= argument.substring(1, argument.length() - 1).replaceAll("''", "'"); //$NON-NLS-1$ //$NON-NLS-2$ } params.add(argument); } return new TemplateVariableType(typeName, params.toArray(new String[params.size()])); }
@Override public void resolve(TemplateVariable variable, TemplateContext context) { List<String> params= variable.getVariableType().getParams(); if (params.size() >= 1 && params.get(0) != null) { resolveWithParams(variable, context, params); } else { // No parameter, use default: super.resolve(variable, context); } }
@Override public void resolve(TemplateVariable variable, TemplateContext context) { List<String> params= variable.getVariableType().getParams(); if (params.size() >= 1 && params.get(0) != null) { resolveWithParams(variable, context, params); } else { // No parameter, use default format: super.resolve(variable, context); } }
@Override public List<String> resolveValues(TemplateVariable variable, XtextTemplateContext castedContext) { String enumerationName = (String) variable.getVariableType() .getParams().iterator().next(); Grammar grammar = getGrammar(castedContext); if (grammar == null) return Collections.emptyList(); EEnum enumeration = (EEnum) getEClassifierForGrammar(enumerationName, grammar); if (enumeration == null) { return Collections.emptyList(); } return Lists.transform(enumeration.getELiterals(), new Function<EEnumLiteral, String>() { public String apply(EEnumLiteral enumLiteral) { return enumLiteral.getLiteral(); } }); }
@Override public void resolve(TemplateVariable variable, TemplateContext context) { List<String> params= variable.getVariableType().getParams(); String param; if (params.size() == 0) param= fDefaultType; else param= params.get(0); JavaContext jc= (JavaContext) context; MultiVariable mv= (MultiVariable) variable; String reference= jc.addImport(param); mv.setValue(reference); mv.setUnambiguous(true); }
@Override public void resolve(TemplateVariable variable, TemplateContext context) { variable.setUnambiguous(true); variable.setValue(""); //$NON-NLS-1$ if (context instanceof JavaContext) { JavaContext jc= (JavaContext) context; List<String> params= variable.getVariableType().getParams(); if (params.size() > 0) { for (Iterator<String> iterator= params.iterator(); iterator.hasNext();) { String typeName= iterator.next(); jc.addImport(typeName); } } } else { super.resolve(variable, context); } }
@Override public void resolve(TemplateVariable variable, TemplateContext context) { List<String> params= variable.getVariableType().getParams(); String param; if (params.size() == 0) param= fDefaultType; else param= params.get(0); JavaContext jc= (JavaContext) context; MultiVariable mv= (MultiVariable) variable; String reference= jc.addImport(param); mv.setValue(reference); mv.setUnambiguous(true); }
@Override public void resolve(TemplateVariable variable, TemplateContext context) { variable.setUnambiguous(true); variable.setValue(""); //$NON-NLS-1$ if (context instanceof JavaContext) { JavaContext jc= (JavaContext) context; List<String> params= variable.getVariableType().getParams(); if (params.size() > 0) { for (Iterator<String> iterator= params.iterator(); iterator.hasNext();) { String qualifiedMemberName= iterator.next(); jc.addStaticImport(qualifiedMemberName); } } } else { super.resolve(variable, context); } }