case SVGUtilities.SOURCE_GRAPHIC:
return (Filter)filterMap.get(VALUE_SOURCE_GRAPHIC);
case SVGUtilities.SOURCE_ALPHA:
in = (Filter)filterMap.get(VALUE_SOURCE_GRAPHIC);
in = new FilterAlphaRable(in);
return in;
case SVGUtilities.FILL_PAINT: {
CSSStyleDeclaration cssDecl;
cssDecl = ctx.getViewCSS().getComputedStyle(filteredElement, null);
UnitProcessor.Context uctx
= new DefaultUnitProcessorContext(ctx, cssDecl);
Paint paint = convertFillToPaint((SVGElement)filteredElement,
node, ctx, cssDecl, uctx);
if (paint == null) {
// create a transparent flood
paint = new Color(0, 0, 0, 0);
}
return new ConcreteFloodRable(infiniteFilterRegion, paint);
}
case SVGUtilities.STROKE_PAINT: {
CSSStyleDeclaration cssDecl;
cssDecl = ctx.getViewCSS().getComputedStyle(filteredElement, null);
UnitProcessor.Context uctx
= new DefaultUnitProcessorContext(ctx, cssDecl);
Paint paint = convertStrokeToPaint((SVGElement)filteredElement,
node, ctx, cssDecl, uctx);
return new ConcreteFloodRable(infiniteFilterRegion, paint);
}
case SVGUtilities.BACKGROUND_IMAGE:
return new ConcreteBackgroundRable(node);
case SVGUtilities.BACKGROUND_ALPHA:
in = new ConcreteBackgroundRable(node);
in = new FilterAlphaRable(in);
return in;
default:
throw new Error(); // can't be reached
}