package org.geotools.styling.builder;
import org.geotools.Builder;
import org.geotools.factory.CommonFactoryFinder;
import org.geotools.styling.RemoteOWS;
import org.geotools.styling.StyleFactory;
public class RemoteOWSBuilder<P> implements Builder<RemoteOWS> {
private StyleFactory sf = CommonFactoryFinder.getStyleFactory(null);
private P parent;
boolean unset = true; // current value is null
private String service;
private String onlineResource;
public RemoteOWSBuilder() {
this(null);
}
public RemoteOWSBuilder(P parent) {
this.parent = parent;
reset();
}
public String resource() {
return onlineResource;
}
public RemoteOWSBuilder<P> resource(String onlineResource) {
this.onlineResource = onlineResource;
this.unset = false;
return this;
}
public String service() {
return service;
}
public RemoteOWSBuilder<P> service(String service) {
this.service = service;
this.unset = false;
return this;
}
public RemoteOWS build() {
if (unset) {
return null;
}
RemoteOWS remote = sf.createRemoteOWS(service, onlineResource);
return remote;
}
public P end() {
return parent;
}
public RemoteOWSBuilder<P> reset() {
unset = true;
this.onlineResource = null;
this.service = null;
return this;
}
public RemoteOWSBuilder<P> reset(RemoteOWS remote) {
if (remote == null) {
return reset();
}
this.onlineResource = remote.getOnlineResource();
this.service = remote.getService();
unset = false;
return this;
}
public RemoteOWSBuilder<P> unset() {
unset = true;
this.onlineResource = null;
this.service = null;
return this;
}
}