package org.geotools.styling.builder; import org.geotools.Builder; import org.geotools.factory.CommonFactoryFinder; import org.geotools.filter.expression.ChildExpressionBuilder; import org.geotools.styling.ShadedRelief; import org.geotools.styling.StyleFactory; public class ShadedReliefBuilder<P> implements Builder<ShadedRelief> { private StyleFactory sf = CommonFactoryFinder.getStyleFactory(null); private P parent; private ChildExpressionBuilder<ShadedReliefBuilder<P>> reliefFactor = new ChildExpressionBuilder<ShadedReliefBuilder<P>>(this); private boolean brightnessOnly; boolean unset = true; // current value is null public ShadedReliefBuilder(){ this( null ); } public ShadedReliefBuilder(P parent){ this.parent = parent; reset(); } public ShadedRelief build() { if( unset ){ return null; } ShadedRelief relief = sf.shadedRelief(reliefFactor.build(), brightnessOnly); return relief; } public P end(){ return parent; } public ShadedReliefBuilder<P> reset() { reliefFactor.reset().literal(0); brightnessOnly=false; unset = false; return this; } public ShadedReliefBuilder<P> reset(ShadedRelief relief) { if( relief == null ){ return reset(); } unset = false; return this; } public ShadedReliefBuilder<P> unset() { reliefFactor.unset(); brightnessOnly=false; unset = true; return this; } }