Package org.geotools.styling.builder

Source Code of org.geotools.styling.builder.HaloBuilder

package org.geotools.styling.builder;

import org.geotools.styling.Halo;
import org.opengis.filter.expression.Expression;

/**
*
*
* @source $URL$
*/
public class HaloBuilder extends AbstractStyleBuilder<org.opengis.style.Halo> {
    Expression radius;

    FillBuilder fill = new FillBuilder(this);

    public HaloBuilder() {
        this(null);
    }

    public HaloBuilder(AbstractStyleBuilder<?> parent) {
        super(parent);
        reset();
    }

    /**
     * Set the HaloBuilder to produce <code>node</code>
     *
     * @return current HaloBuilder for chaining operations
     */
    public HaloBuilder unset() {
        return (HaloBuilder) super.unset();
    }

    /**
     * Set the HaloBuilder
     * <P>
     * to produce a default Halo.
     *
     * @return current HaloBuilder
     *         <P>
     *         for chaining operations
     */
    public HaloBuilder reset() {
        unset = false; //
        radius = literal(0);
        fill.reset();

        return this;
    }

    /**
     * Set the HaloBuilder to produce the provided Halo.
     *
     * @param halo Halo under construction; if null HaloBuilder will be unset()
     * @return current HaloBuilder for chaining operations
     */
    public HaloBuilder reset(org.opengis.style.Halo halo) {
        if (halo == null) {
            return unset();
        }
        fill = new FillBuilder(this).reset(halo.getFill());
        radius = halo.getRadius();

        return this;
    }

    public HaloBuilder radius(Expression radius) {
        unset = false;
        this.radius = radius;
        return this;
    }

    public HaloBuilder radius(double radius) {
        return radius(literal(radius));
    }

    public HaloBuilder radius(String cqlExpression) {
        return radius(cqlExpression(cqlExpression));
    }

    public FillBuilder fill() {
        unset = false;
        return fill;
    }

    public Halo build() {
        if (unset)
            return null;

        Halo halo = sf.createHalo(fill.build(), radius);
        if (parent == null)
            reset();

        return halo;
    }

    protected void buildStyleInternal(StyleBuilder sb) {
        sb.featureTypeStyle().rule().text().halo().init(this);
    }

}
TOP

Related Classes of org.geotools.styling.builder.HaloBuilder

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.