package org.geotools.styling.builder; import org.geotools.Builder; import org.geotools.factory.CommonFactoryFinder; import org.geotools.styling.Description; import org.geotools.styling.StyleFactory; import org.geotools.util.SimpleInternationalString; import org.opengis.util.InternationalString; public class DescriptionBuilder<P> implements Builder<Description> { StyleFactory sf = CommonFactoryFinder.getStyleFactory(null); P parent; private boolean unset; private InternationalString title; private InternationalString description; public DescriptionBuilder(){ this(null); } public DescriptionBuilder(P parent) { this.parent = parent; reset(); } public Description build() { if( unset ){ return null; } Description descript = sf.description(title, description); if( parent == null ){ reset(); } return descript; } public DescriptionBuilder<P> reset() { unset = false; title = null; description = null; return this; } public DescriptionBuilder<P> title(InternationalString title) { this.title = title; return this; } public DescriptionBuilder<P> title(String title) { this.title = new SimpleInternationalString(title); return this; } public InternationalString title() { return title; } public DescriptionBuilder<P> description(InternationalString description) { this.description = description; return this; } public DescriptionBuilder<P> description(String description) { this.description = new SimpleInternationalString( description ); return this; } public InternationalString description() { return description; } public DescriptionBuilder<P> reset(Description original) { unset = false; title = original.getTitle(); description = original.getAbstract(); return this; } public DescriptionBuilder<P> unset() { unset = true; title = null; description = null; return this; } }