class BasicHostOperator implements ConfigOperator {

    public static HostDescription combine(BasicHostConfig cfg, HostDescription descr) {
        if (cfg == null) {
            return descr;
        }

        HostLocation location = descr.location();
        ConnectPoint cfgLocation = cfg.location();
        if (cfgLocation != null) {
            location = new HostLocation(cfgLocation, System.currentTimeMillis());
        }

        Set<IpAddress> ipAddresses = descr.ipAddress();
        Set<IpAddress> cfgIpAddresses = cfg.ipAddresses();
        if (cfgIpAddresses != null) {
            ipAddresses = cfgIpAddresses;
        }

        SparseAnnotations sa = combine(cfg, descr.annotations());
        return new DefaultHostDescription(descr.hwAddress(), descr.vlan(),
                                          location, ipAddresses, sa);
    }

    private  BasicHostOperator();

}