public TemplateMethodParser(ProcessorContext context, T template) { this.template = template; this.context = context; this.parser = new MethodSpecParser(template); }
public List<SpecializationData> getAllSpecializations() { SpecializationGroup p = this; while (p.getParent() != null) { p = p.getParent(); } return p.collectSpecializations(); }
public boolean hasFallthrough() { if (hasFallthrough) { return true; } SpecializationGroup lastChild = getLast(); if (lastChild != null) { return lastChild.hasFallthrough(); } return false; }
@SuppressWarnings("unused") protected final MethodSpec createDefaultMethodSpec(ExecutableElement method, AnnotationMirror mirror, boolean shortCircuitsEnabled, String shortCircuitName) { MethodSpec methodSpec = new MethodSpec(createReturnParameterSpec()); addDefaultFrame(methodSpec); addDefaultFieldMethodSpec(methodSpec); addDefaultChildren(shortCircuitsEnabled, shortCircuitName, methodSpec); return methodSpec; }
private E parse(int naturalOrder, ExecutableElement method, AnnotationMirror annotation) { MethodSpec methodSpecification = createSpecification(method, annotation); if (methodSpecification == null) { return null; } TemplateMethod templateMethod = parser.parse(methodSpecification, method, annotation, naturalOrder); if (templateMethod != null) { return create(templateMethod, templateMethod.hasErrors()); } return null; }
public final E create(String id, int naturalOrder, ExecutableElement methodMetadata, AnnotationMirror mirror, TypeMirror returnType, List<VariableElement> parameterTypes) { TemplateMethod method = parser.parseImpl(createSpecification(methodMetadata, mirror), naturalOrder, id, methodMetadata, mirror, returnType, parameterTypes); if (method != null) { return create(method, method.hasErrors()); } return null; } }
public boolean isLast() { SpecializationGroup p = getParent(); if (p == null) { return true; } if (p.getChildren().indexOf(this) == p.getChildren().size() - 1) { return p.isLast(); } return false; }
public SpecializationGroup getPrevious() { if (getParent() == null) { return null; } List<SpecializationGroup> parentChildren = getParent().getChildren(); int index = parentChildren.indexOf(this); if (index <= 0) { return null; } return parentChildren.get(index - 1); } }
@Override public MethodSpec createSpecification(ExecutableElement method, AnnotationMirror mirror) { return createDefaultMethodSpec(method, mirror, true, null); }
private SpecializationGroup createSpecializationGroups() { return SpecializationGroup.create(reachableSpecializations); }
@Override public SpecializationData create(TemplateMethod method, boolean invalid) { return parseSpecialization(method); }
public static SpecializationGroup create(SpecializationData specialization) { return new SpecializationGroup(specialization); }
private SpecializationGroup(List<SpecializationGroup> children, List<TypeGuard> typeGuardsMatches, List<GuardExpression> guardMatches) { assert !children.isEmpty() : "children must not be empty"; this.typeGuards = typeGuardsMatches; this.guards = guardMatches; this.node = children.get(0).node; this.specialization = null; updateChildren(children); }
@Override protected ParameterSpec createValueParameterSpec(NodeExecutionData execution) { ParameterSpec parameterSpec = super.createValueParameterSpec(execution); parameterSpec.setAllowSubclasses(false); return parameterSpec; }
private E parse(int naturalOrder, ExecutableElement method, AnnotationMirror annotation) { MethodSpec methodSpecification = createSpecification(method, annotation); if (methodSpecification == null) { return null; } TemplateMethod templateMethod = parser.parse(methodSpecification, method, annotation, naturalOrder); if (templateMethod != null) { return create(templateMethod, templateMethod.hasErrors()); } return null; }
public final E create(String id, int naturalOrder, ExecutableElement methodMetadata, AnnotationMirror mirror, TypeMirror returnType, List<VariableElement> parameterTypes) { TemplateMethod method = parser.parseImpl(createSpecification(methodMetadata, mirror), naturalOrder, id, methodMetadata, mirror, returnType, parameterTypes); if (method != null) { return create(method, method.hasErrors()); } return null; } }
public TemplateMethodParser(ProcessorContext context, T template) { this.template = template; this.context = context; this.parser = new MethodSpecParser(template); }
@Override public MethodSpec createSpecification(ExecutableElement method, AnnotationMirror mirror) { return createDefaultMethodSpec(method, mirror, true, null); }
private SpecializationGroup createSpecializationGroups() { return SpecializationGroup.create(reachableSpecializations); }
@Override public SpecializationData create(TemplateMethod method, boolean invalid) { return parseSpecialization(method); }